Experimental Study on the Use of Semantic Web Concepts for Matching and Assembling Rich Client Composite Applications
MetadataShow full metadata
Composite applications are a line of business applications constructed by connecting, or wiring, disparate software components into combinations that provide a new level of function to the end user without the requirement to write any new code. The components that are used to build a composite application are generally built within a Service Oriented Architecture (SOA). Many of the first SOA platforms exclusively relied on web services (WSDL-based) as components in the composite application. With the emergence of new standards, such as OSGi, the components used in composite applications have grown to include more than just web services. Components can be built from web applications, portlets, native widgets, legacy software, and Java technologies. One of the most widely distributed SOA platforms is the Eclipse Rich Client Platform (RCP), which is built on the OSGi standard. Eclipse and OSGi provide a means for developers to create components in an SOA environment and declaratively extend the function of existing components. IBM Lotus Expeditor extends Eclipse’s RCP by providing a composite application framework, which allows end users to construct composite applications from separately developed components and declaratively wire those components so that they can communicate and execute together. This provides for new levels of functionality not available in any of the individual components and provides the end user with the ability to customize their applications to meet their business needs. There are challenges to combining components into composite applications, especially when components are developed at different times, by different groups, using different technologies, naming conventions, and structures. Similar to web services’ UDDI registry, a catalog of components could contain many separately developed components that use different naming conventions. A given enterprise may have hundreds of similar components available for reuse in a catalog, but manually searching and finding compatible and complementary components could be a tedious and time-consuming task. Additionally, none of the existing SOA environments, including RCP and server based implementations, provide a way to leverage the search techniques that have been developed to assist the user in locating compatible non-web service components for composite applications. Unlike web services, many components used in RCP have graphical user interfaces built from technologies such as portlets, Eclipse Views, and native application windows. Depending on the technology used or the type of user interface being presented, certain components may not be valid for use in a particular composite application. For example, in a portal based environment, such as BEA WebLogic Portal, only portlet based user interfaces would be valid selections when assembling a composite application. Discerning this could be a difficult process up front, or could result in repeated cycles of trial and error, especially when the target environment supports a variety of technologies. The main contributions of this thesis are as follows. First it is shown that existing techniques, technologies, and algorithms used for finding and matching web service components (WSDL-based) can be reused, with only minor changes, for the purpose of finding compatible and complementary non-web service based components for composite applications. These components may include graphical user interfaces, which are not an artifact in web service components. By building on the techniques initially developed for web services matching, the problems associated with finding useful and valid components for composite applications using high level concepts is possible. This enables the progressive construction of composite applications from a catalog of available components without deep knowledge of the components in the catalog. Second, it will be shown that the additional characteristics of non-web service based components, specifically graphical user interface details, can be categorized, described, and matched in a similar fashion to the programmatic inputs of the components. Though similar in some respects to web services, these additional characteristics of a component allow for further match processing logic to be used to provide better results for the novice user when searching for components to integrate into the composite application. Finally, it will be shown using sample applications and scenarios that by taking into account the unique characteristics of an RCP composite application (i.e. coexistence of user interface components), new techniques of merging descriptions can be leveraged to provide better results when searching for new components to add to the composite application.