This article is based on previous
This article is based on previous research work  in the field of distributed development of information systems . In that work, the system infrastructure focusing on the three-level data model used in the different layers of our architecture is described. The work presented in this manuscript focuses on the technological infrastructure based on web services and cloud computing used for the deployment of COTS component-based architectures.
The rest of the paper is organized as follows: Section 2 shows an example of an scenario where the most important concepts used in the rest of the article are explained. Section 3 describes the languages proposed (using an MDE perspective) for describing COTSget-based architectures. Section 4 explains how the COTSgets-as-a-Service is provided using a cloud service. Section 5 illustrates the process used to validate and evaluate the cloud service and its performance. Section 6 presents the related work and, finally, Section 7 summarizes the conclusions and discusses the future work.
An example scenario This section describes a web-based application as a sample scenario to explain many of the concepts used in the rest of the article. This application (Fig. 2) was dynamically constructed from COTSgets components for the abovementioned ENIA research project. The application deals with a geographic information query system, with which visual layers with this type of information can be loaded. These layers provide data acquired from a set of Open Geospatial Consortium (OGC) services provided by the REDIAM (Environmental Information Network of Andalusia). The components in this application are not assembled alone (independently of each other), but rather coupled, as described below, to help designers build complex interactive applications. In the upper right-hand corner of the figure, there are two components: UserInfo and Logout. The first one is responsible for identifying the user who has connected and showing user-specific information, such as the profile they RNase Inhibitor are currently using in the system, and the Logout component closes that user\'s session. These two components are not isolated from each other. In fact, there is a component called Header, which in addition to controlling the display in the top bar of the user interface, joins the two components. Thus, the Header manages the access to the system. Below the menu bar are components specific to the user profile and their role in the system. One is the Map component, which is responsible for displaying the geographical information found in layers from OGC services. Nevertheless, this component does not let the user indicate which layers are to be displayed. For this, this component is related to the LayerList (top left) which provides it with the required information. In addition, the web application displays certain information about the layers being viewed on the map at any given moment. This is done by the Legend component (left center), and as with the Map component, it acquires the necessary information from the LayerInfo component. Continuing examination of the figure, at the bottom there is a report (in table format) in the middle and two graphs (a pie chart and a bar chart) on the left. Both the report (ReportResults component) and the graphs (Piechart and Barchart components) only display information. Another component (TableParser) is responsible for generating the information and providing it where it is needed. Finally, on the right, there is an external RSS service for REDIAM notices. This service, which has been encapsulated in a component (called RSS), is an example of how services or external components can be seamlessly integrated in our architecture, although with some limitations. As seen in the example, it is possible to build web applications where the components can be used for several purposes, e.g., to interact with the user, display information, for background activities (with no user interaction), to group others and form more complex components, or to integrate third-party resources. This diversity is analyzed in detail in Subsection 3.1. All the components that can be used in an application can be described by a set of abstract components . The right-hand side of Fig. 2 shows an abstract representation of the sample web application scenario. This figure shows only the components which include a user interface. Therefore, the TableParser component does not appear in it. The proposed component-based architecture model with which the visual component mode can be disabled so only their features can be worked with, is more easily understood in this figure. Having described the example scenario, the structure of our component architecture and the relationships that exist between the various elements involved in this architecture are examined below.