Article Preview
TopIntroduction
Dynamicity, agility and efficiency are concepts of the future. The World Wide Web is undergoing an evolution from a static environment to a dynamic world in which Mashups will play a central role. The Mashups are web applications developed by the combination of data, business logic, and/or user interfaces of web sources published and reused via APIs. Thus, Mashups are designed to reduce the cost and development time of web applications. Despite these advantages, engineering of Mashups applications requires the intervention of the developer which needs not only programming skills but also to understand the structure and semantics of APIs that wants to integrate. Currently, several tools Mashup (e.g., IBM WebSphere1, Convertigo2, Yahoo-pipes3, etc.) are used by end-users (i.e. with less programming skills) to facilitate the building of Mashup applications. However, the intervention of the professional developer is required when the application Mashup is complex.
In addition, the current Mashups applications are essentially static, i.e. the ingredients of Mashup application constitute a predefined set of APIs and services making Mashups applications less extensible, less dynamic and less fault-tolerance, especially if these software components become inaccessible for one reason or another. To remedy this problem, developers of Mashup are forced to manually seek and integrate APIs offering similar features to those that have become inaccessible.
Moreover, even if the problems of engineering and dynamicity of Mashups applications described above are resolved, the availability of a large number of APIs that meet the needs of a Mashup application is missing, this amounts at the cost of investment required by the owner of APIs on his infrastructure (i.e., server, storage and computing power, etc.) in order to ensure proper functioning of his business service (i.e., ERP, CRM, data warehouse, etc.) in the case of a utilization charge. One thing which prohibits service owners to open their business beyond their local environment. For example GoogleMap and Amazon support their APIs (the most used in Mashup applications) by powerful datacenter in order to ensure the quality of service (QoS) and remedy the load and complexity of exploitation, which is not feasible for medium and small businesses.
In order to address these deficiencies that impede agility and flexibility in the building of Mashups applications, we propose a new approach based on the use of semantics in order to make the building of Mashup more automatic and more dynamic, while strengthening the process of selection, discovery, and combination of APIs, the so-called ‘‘Semantic Mashups’’. Semantic Mashup is a Mashup whose combined APIs are supported (or annotated) by a semantic layer that allows to select them and compose them in an automatic way (unambiguous).
However, the key element in the Semantic Mashup approach is that the semantization of APIs cannot be realized in a simple way. This is due to the heterogeneity of different types of APIs that build the Mashup application (e.g., SOAP, REST, JavaScript, etc.). The semantization of SOAP APIs is supported by a large number of approaches (e.g., OWL, WSMO, SAWSDL) satisfying all the problems related to the web services semantization. However, there are few works dealing semantization of REST APIs that are the most commonly used as an ingredient for applying Mashup. Therefore, we propose in this work SAWADL, a novel language for the semantization of REST web services. SAWADL uses WADL (Hadley, 2006) description to enrich RESTful APIs with a semantic layer that allows the discovery and automatic superposition of APIs in order to automatically build Mashup applications. SAWADL is more flexible and adaptive with respect to other approaches of semantization such as SAWSDL (Kopecký et al., 2007) which is used to annotate the WSDL description (Christensen et al., 2001) of SOAP web services (Box et al., 2000) with ontological concepts.