Model-Driven Integration of Software and
Service Components
Abstract
Building applications by composing pre-developed components has a
promise for reuse and software engineering industrialization. As there is an
ongoing demand and trend of exposing software applications as IT services and
utilities, a new efficient way of building application is by integrating
service components. Expressing integration requirements in a model and its
supporting tools not only elevates the abstraction of the development of
integration and automates reoccurring low-level integration code, but also
leverages the integration tools for various supporting functionality such as
analysis, transformation, simulation, optimization, and monitoring. This dissertation addresses integration of software and service
components using two model-driven approaches.
1.
We first discuss a
model-driven approach to integration of service components. The integration
requirements are depicted as a domain neutral graphical process model in a
Business Process Management (BPM) server. A transformation framework, called
Regular Expression Language (REL), is offered which transforms graphical
business process models to Business Process Execution Language (BPEL) so that
the business processes (the integration of services components) can be
executed. The theoretical and technical difficulty of transforming a process
model to BPEL is that when the process model presents irreducibility, the
generated code is either exponential or non-structure preserving. REL solves
this problem and generates BPEL code of size O(n) for any arbitrary process
model. Static analysis and compile-time optimizations are performed along with
transformation. The REL framework also provides the capability of reverse
engineering and efficient reengineering. In addition, we present methods for
process monitoring and dynamic process adaptation, two other important aspects
for business process management.
2.
Based on the second
model-driven approach, the integration requirements are represented in a
domain-specific application model, an instance of domain feature model. A
feature model represents possible identified ways components in a particular
domain can be composed. Two-Level Grammar++ (TLG++) is used to specify feature
models so that the integration requirements can be validated against feature
model specification. Glue/wrapper code is generated from the application model
if components are developed in different component models and programming
languages. A language paradigm named Model-driven Domain-specific Integration
Language (MoDIL) is proposed to formalize the process of software components
integration under this model-driven approach.
Two model-driven approaches presented in this dissertation show that it
is possible and viable to use model-driven approach in integration of software
and service components.
I started the Ph.D. study in January 2002.
I passed the qualifying exam in January 2003.
I passed the Ph.D. thesis proposal defense in November 2003.
My committee: Dr.
Barrett Bryant, Dr. Jeff Gray, Dr.
Anthony Skjellum, Dr. Rajeev Raje, Dr.
Mikhail Auguston, Ms. Carol Burt
This work has been supported in part by U. S.
Office of Naval Research under the award number N00014-01-1-0746 and
the IBM 2004 internship program.
Selected
publications on this work:
Zhao, W., Hauser, R., Bhattacharya, K., Bryant,
B.R. and Cao, F. (2006) ‘Compiling business processes:
untangling unstructured loops in irreducible flow graphs’,
Int. J. Web and Grid Services, Vol. 2, No. 1, pp.68–91.
W. Zhao, B. R.
Bryant, R. R. Raje, M. Auguston, C. C. Burt, A. M. Olson, “Automated Glue/Wrapper Code
Generation in Integration of Distributed and Heterogeneous Software Components”,
Proc. of the 8th IEEE International Enterprise Distributed Object
Computing Conference (EDOC2004), IEEE Press, pp. 275-285, Monterey, California,
USA, 2004.
W. Zhao, B. R.
Bryant, F. Cao, R. R. Raje, M. Auguston, C. C. Burt, M. Olson, “Grammatically Interpreting
Feature Compositions”, Proceedings of the 16th
International Conference on Software Engineering and Knowledge Engineering
(SEKE’04), pp. 185-191, Alberta Canada, 2004.
Source code for download:
Click here to download REL transformation engine.
Test file inputs are named
as testN.txt; the corresponding graph is shown in the file tests.ppt.
The architecture of the
system is shown as the follows:


Click here to download the parser for TLG++ according to its
grammar in BNF and EBNF.
The parser is generated by
using JLex and CUP. The CUP specification is named tpp.cup.
The running script is in this file.
Click here to download the glue/wrapper
code generator.
Packages JAVA RMI and
CORBA(orb2) are needed to run the system. setup.bat contains set up scripts
examples. Comandes.txt contains commands to
run the system.
The architecture of
glue/wrapper code generation is as follows:


Last modified: September 2006 .