PESOI Process Embedded Service-Oriented Architectu
PESOI Process Embedded Service-Oriented Architectu
net/publication/228619238
CITATIONS READS
13 465
3 authors:
Chun Fan
SEE PROFILE
All content following this page was uploaded by Wei-Tek Tsai on 03 September 2014.
∗
PESOI: Process Embedded Service-Oriented Architecture
Wei-Tek Tsai+, Yinong Chen, Chun Fan
(Department of Computer Science and Engineering, Arizona State University, Tempe AZ, 85281, USA)
+ Corresponding author: Phn: +1-480-7276921, Fax: +1-480-9652751, E-mail: [email protected]
Tsai WT, Chen Y, Fan C. PESOI: Process embedded service-oriented architecture. Journal of Software, 2006,
17(6):1470−1484. http://www.jos.org.cn/1000-9825/17/1470.htm
Abstract: Service-Oriented Architecture (SOA) has drawn significant attention recently, and numerous
architecture approaches have been proposed to represent SOA-based applications. The architecture of SOA-based
applications is different from traditional software architecture, which is mainly static. The architecture of an
SOA-based application is dynamic, i.e., the application can be composed at runtime using existing services, and
thus the architecture is really determined at runtime, instead of design time. SOA applications have provided a new
direction for software architecture study, where the architecture can be dynamically changed at runtime to meet the
new application requirements. This paper proposes a Process-Embedded Service-Oriented Infrastructure to build
SOA-based applications. This infrastructure embeds the entire software lifecycle management and service-oriented
system engineering into the application developed on this infrastructure. Thus, the users can easily re-develop the
applications during operation to meet the changing environments and requirements, through the supports provided
by the embedded infrastructure.
Key words: service-oriented computing; service-oriented architecture; software architecture; architecture
classification
1 Introduction
Service-Oriented Architecture (SOA) has received significant attention recently as major computer and
software companies such as HP, IBM, Intel, Microsoft, and SAP, have all embraced SOA, as well as government
agencies such as DoD (US department of defense) and NASA. The initial focus on SOA has been the development
of interoperability standards and protocols, such as WSDL, SOAP, UDDI, and recently numerous SOA standards
have been proposed including ebSOA, ebXML, CPP, CPA, BPEL4WS, OWL-S, and RDF.
SOA is a new software development paradigm in which software developers are grouped into three parties in
terms of their responsibilities: the application builders (service requesters), the service brokers (service publishers),
and the service providers (service developers), which is referred as the standard SOA. Service providers develop
services independent of potential applications by following the open protocols and standards. Service brokers
publish the available services to the public such that the application builders can look up desired services and
compose the target application using the services. Thus a target application is built through service discovery and
service composing instead of traditional process of designing and coding software.
SOA has the following characteristics that are different from traditional software:
Integration architecture
Ref.[1], a 5-layered architectural template is suggested for Business process choreography
& monitoring
SOA applications, as illustrated in Fig.1: Presentation, Services (composite services)
Business process choreography, Services, Enterprise
Enterprise components
components, and Operational systems, with two supporting
mechanisms: Integration architecture and Management & Operational systems
Recently, several studies have focused on dynamic software architecture, i.e., the software architecture that
modifies its structure during execution[13]. The current research focuses on the formal specification techniques that
can be used to reason and analyze dynamic architectures. A variety of reconfiguration rules such as graph rewriting
rules, process algebra (such as CCS and CSP), predicate calculus, and architecture modification language (AML)[19]
have been proposed to specify and analyze dynamic architectures[13]. However, these studies have not focused on
the dynamic SOA yet. One significant difference between the existing dynamic architecture and SOA is that the
dynamic architecture of SOA is fully integrated with many aspects of software development, such as service
composition, code generation, and deployment.
Due to the dynamic nature of SOA, the architecture of SOA-based systems has the following characteristics
distinct from traditional software architectures: (1) Dynamic architecture via dynamic composition; (2) Lifecycle
management embedded in the operation infrastructure architecture.
Connectivity services
Infrastructure services
modeling, architecture, code generation, code deployment, and code execution. In .Net 2005, an SOA application
designer can select services from a service pool and define the architecture to specify how services can
communicate with each other. After completing the architecture block diagram, the designer can execute it to see if
the application can work as desired without knowing the details of the services used. The application can be easily
changed by changing the architecture model. Figure 5 illustrates the architecture block diagram of an SOA-based
application developed in .Net 2005.
of specification, Code generation for validation, Validation (simulation and testing), Assembling and deployment,
Operation and monitoring, Evaluation at runtime, and Reconfiguration.
Modeling Simulation
Requirement Verification code Validation
specification
generation
Operation Assembling
Reconfiguration Evaluation monitoring deployment
These phases form a feedback loop, where the last phase reconfiguration is connected to the first phase
modeling and specification. Each of the phases in PESOI is elaborated as follows:
• Modeling & Specification phase: This phase consists of two sub-phases. The modeling sub-phase is at
architecture or component level, similar to Microsoft architecture model shown in Figure 6 and IBM
SCA/SDO model. The specification sub-phase uses PSML-S process specification and modeling
language, which is similar to BPEL4WS, to define the flow and conditions between the components;
• Verification phase: It contains activities such as Completeness & Consistency (C&C) analysis, model
checking, test case generation based on the functional and policy specification;
• Assembling phase: It consists of automated code generation from the process specification and binding
of external services to obtain the executable code;
• Validation phase: It runs the executable in a simulation environment and validates the code via testing;
• Deployment phase: This phase deploys executable code into the execution environment. It involves
binding the addresses of real devices into the code. Monitors and data collectors will be embedded into
the code;
• Execution and monitoring phase: The executable code is executed in the real environment. The monitors
and data collectors will collect and record data for later analysis;
• Evaluation phase: It analyzes the data, evaluates reliability and performance, and provides input for the
reconfiguration phase;
• Reconfiguration phase: It takes reliability evaluation results as input and decides if a rebinding is
necessary to replace a less reliable service through rebinding a reliable services. A service farm contains
the backup spares need for rebinding. The services in the farm are tested and ranked in an independent
process such as group testing[22]. If the application requirement is revised by the user, a re-composition
or re-architecture needs to be performed. In this case, the composition or architecture of the application
will be modified. The modified application needs to go through the entire development process, and thus,
the development infrastructure needs to be embedded into the application to enable the reconfiguration.
The rest of the paper will talk about issues related to PESOI. Specifically, Section 4 will discuss the modeling
issues in PESOI, Section 5 will discuss the dynamic reconfiguration issues, and Section 6 will talk about the
verification and validation issues in PESOI.
Numerous modeling projects have been proposed to model software, ranging from informal descriptions to
semi-formal models, such as a state model, to formal models, such as process algebra CCS, CSP and ACP[1,14,16−18].
For SOA applications, informal methods are not applicable because one can not produce code from informal
1476 Journal of Software Vol.17, No.6, June 2006
descriptions automatically. However, strict formal methods will need more time to mature before they can be
applied to SOA applications. Most current approaches use lightweight formal techniques that can produce software
design and code automatically, and can be easily used by practitioners due to the visualization capabilities of these
models.
Currently, the UML from OMG [http://www.omg.org/technology/documents/formal/uml.htm] is the de factor
industry standards for specifying and analysis of software models, particularly for object-oriented programs. The
question is whether UML is suitable for SOA. Particularly, is UML suitable for SOA applications with on-demand
dynamic composition?
UML 2.0 has 13 different types of diagrams, divided into three categories:
• Structure models: Class Diagram, Object Diagram, Component Diagram, Composite Structure Diagram,
Package Diagram, and Deployment Diagram;
• Behavior models: Use Case Diagram, Activity Diagram, and State Machine Diagram;
• Interaction models: Sequence Diagram, Communication Diagram, Timing Diagram, and Interaction
Overview Diagram.
The UML has more than 20 models. While each individual model within UML is useful for modeling and
analyses for certain aspects of the system engineering, the fact that it has so many models is a concern. One problem
is that it is not possible to convert one model (for example Activity Diagram) to another model (such as State
Machine Diagram) automatically. Thus, a change in a model may need the involved engineers to manually update
the rest of models to keep these models consistent with each other. This does not bode well with on-demand
dynamic composition in SOA where code needs to be generated from the model, and possibly both the model and
the code need to be analyzed, verified, and validated dynamically at runtime using existing services.
We call the approach taken by UML the MMMA (multiple models multiple analyses) approach because it has
multiple models and each model has its own analysis techniques. In a typical MMMA approach, models are
interconnected with each other, but not fully integrated to each other, i.e., it is not possible to generate the rest of
models from one model. Thus, MMMA is error-prone during system updating, and thus it is not suitable for the
SOA environment, where models can be dynamically changed at runtime as applications are re-composed or
reconfigured.
On the other hand, if the development is based on a single model, all other models and analyses are
automatically derived from this model, the approach is called SMMA (single model multiple analyses) approach.
One of the characteristics of SMMA is that a designer can focus his/her attention on the single model only. If a
change is made, he/she can just update the primary model, and the rest of models and analyses can be automatically
generated. Specifically, once the primary model is updated, code can be automatically re-generated, completeness
and consistency analysis can be re-checked, simulation code can be automatically generated and simulation
performed, state model can be automatically updated based on the new model and so on. In this way, significant
system engineering tasks can be automatically performed. SSMA approach does not conflict with the principle of
“separation of concerns”. Instead, it makes sure that components created by other parties can interoperate
seamlessly. A demo of the SMMA approach in a network of service-oriented embedded robots can be viewed at the
website at http://asusrl.eas.asu.edu/EmbeddedExplorer/.
PESOI is the only infrastructure that has taken the SMMA approach, as shown in Fig.8, where PSML (process
specification and modeling language) is the single model and all the analyses are directly or indirectly based on this
model. PSML-S (PSML for Services) and PSML-P (PSML for Policies) are derived from PSML, which are used to
model the functionality and policies in the application, respectively[23]. Table 1 lists the operations and analyses that
Wei-Tek Tsai, et al.: PESOI: Process Embedded Service-Oriented Architecture 1477
Simulation Validation /
Simulation Reconfiguration
code generation testing
code
Function
PSML model Function
PMSL-S verification
Policy
Policy enforcement
Policy Service
model verification
unit
PSML-P Service
farm testing /
Policy Policy selection
extraction database
Service input
Generally, three levels of reconfigurations are available in SOA, once an application is developed and
deployed, as illustrated in Fig.9:
• Rebinding: A service in the application is replaced by another service that has the same functionality.
The change required is to change the binding address related to the service. Rebinding is mainly used for
fault-tolerant computing (replacing a failed service or an unavailable) or performance upgrade;
• Re-composition: In addition to rebinding, a new service can be added to or an existing service can be
removed from the application. However, the architecture style remains unchanged. Re-composition is
mainly used for functionality and performance enhancement;
• Re-Architecture: In addition to re-composition, the architecture style can be changed, for example,
changing the bus type of connection to the layered type of architecture. The former allows any two
1478 Journal of Software Vol.17, No.6, June 2006
components to communicate directly, while the latter only allows the communication between
components in the two adjacent layers. Re-architecture allows the human designer to generate a new
application at runtime time.
SOA application development starts with architecture model, in which the application is modeled by a set of
components with certain type connectivity, e.g., bus, peer to peer, and layered type, which are called architecture
patterns. The architecture model will be elaborated manually, but with the help of architectural pattern, into the
process model, in which the flows between components and selections among flows are defined. Each component in
the process model is linked to a service that can perform the required functions. To tolerate service faults, multiple
services with the same functionality can be bound to a component through a Dynamic Reconfiguration Service
(DRS) agent. Rebinding means to substitute the address of a new service for that of the service to be replaced.
Re-composition means changing the process model or the flow between the components, without changing the
architecture. Re-architecture means changing the type of connectivity among the components. To enable seamless
runtime reconfigurations, checking points are used periodically to save the status of the target system so that, when
a reconfiguration is necessary, the reconfigured system can continue its execution from the last checking point.
Service
directory Registering
Searching
…
Service testing
manager
…
…
Testing
Dynamic reconfiguration service (DRS)[28]: DRS is a framework with distributed agents which will monitor,
assess, and reconfigure the SOA application at runtime. The framework defines an agent-based, collaborative and
self-reconfigurable architecture for service-oriented distributed computing, supported by a set of DRS services and
agents, including registration service, monitoring service, and dynamic reconfiguration agents (DRS agent). DRS
agents are embedded into the application, which coordinate with each other to make the application
self-reconfigurable. In this example, two applications use the same encryption service. If one application wants to
upgrade its encryption method, it cannot simply rebinds to a different service. It has to coordinate with its
communication peers, so that they can upgrade at the same time and thus can decrypt each other’s data.
5.2 PESOI supports for re-composition
Re-Composition is a much harder problem than rebinding because not only services may be replaced, the SOA
application is actually changed. In additional to the supports listed in Section 5.1, PESOI supports the SMMA for
the re-composition, i.e., the SOA application specification can be updated by changing the model only. Once the
model is changed, it will be automatically re-verified. Then, the code can be automatically re-generated, and the
generated code can be re-validated and re-evaluated. During the code re-generation, new services may be searched,
discovered, and bound into the new application.
5.3 PESOI supports for re-architecture
In additional to the supports listed in Sections 5.1 and 5.2, PESOI uses architecture patterns to support
re-architecture. The patterns are restrictions defined in policies. The modification to the policies leads to the
architecture change and architecture patterns help the fast re-generation of the process specification in PSML-S and
PSML-P.
Because of the re-architecture, applications developed using PESOI no long have fixed architecture, such as
bus, layered, or point-to-point. The architecture can be changed after the deployment of the application.
1480 Journal of Software Vol.17, No.6, June 2006
Table 2 Relationship between N and M and the PESOI placement and replacement policies
No. of services No. of services No. of backup
N−M Replacement and replacement policies
using local using remote services using local
relation in the service cache
accesses accesses accesses per service
M=0 0 N 0 All services use remote invocation
M out of N services use local accesses.
N≥M M N−M 0 Most frequently used services will be
imported
All services use local access. The most
N<M N 0 (M−N)/N frequently used services will have more
backups
As shown in Fig.11, the cache table contains three entries: service ID, which identifies the service
corresponding to this service code; initial address where the service code is located; and the table entry number of
the next backup service. That is, for each service ID, a linked list of service code is provided to each service.
Application
Application composition
Composition Service code
Service Code
ServiceCache
Service cache Table
table
S1 S1 code 1
Service ID next Code address
S1 next Code address S1 code 2
S1 next Code address S1 code 3
S2
S2 next Code address S1 code 4
S3 S2 next Code address
S1 next Code address S2 code 1
S3 next Code address S2 code 2
S3 null Code address S2 code 3
S1 null Code address
S2 null Code address S3 code 1
S3 next Code address
S4 S3 code 2
S4 null Code address
S4 next Code address S3 code 3
S4 code 1
S4 code 2
Fig.11 Service cache table and imported service code in local memory
Wei-Tek Tsai, et al.: PESOI: Process Embedded Service-Oriented Architecture 1481
An application called Pet Shop is built for illustrating the development and operation phases in PESOI. An
integrated modeling environment for constructing the PSML-S model is provided, which allows the application
builders to specify the detailed system model information using PSML-S language, the application composition
logic, and the application configuration policies based on the users requirements. Figure 12 illustrates the PESOI
editor's window, which support convenient writing of the PSML-S and PSML-P specifications. For the pet shop
application, the PSML-S specification consists of 12 Actor elements, 16 Action elements, 3 Condition elements, 2
Data elements, 2 Event elements, 4 processes, and one default application composition configuration. A part of the
specification script is shown in the editor window in Fig.12. A PSML-S model can consist of the following model
elements: Actors, Actions, Attributes, Conditions, Data, Events and process that defines the flows among the model
elements[23].
Following the SMMA, we have performed the C&C analyses, model checking, test case generation, simulation
code generation, simulation, and testing.
Among these operations, the simulation validates the execution logic of the PSML-S model to check if it
always generates an acceptable outcome for each test case. Two user’s interfaces are implemented to observe the
simulation traces. A graphical simulation interface highlights the current point of execution in the flowchart of the
1482 Journal of Software Vol.17, No.6, June 2006
PSML-S specification. Figure 13 shows a snapshot of the execution. A text simulation interface records every trace
that has been tested and the output corresponding to each input. A snapshot of the interface is given in Fig.14.
Using the graphical interface, users can visualize the simulation execution step by step from the control flow
chart of the PSML-S model. Thus users can closely observe the behavior of the PSML-S model. This feature is
extremely useful when users want to perform debugging on the PSML-S model.
The text simulation interface records the detailed system event logs. Multiple runs of simulations with different
configurations can be performed. The simulation results stored in the event log can be analyzed later for different
purposes such as detecting reliability evaluation.
7 Conclusion
This paper presents the PESOI infrastructure for SOA application development, which has the following
Wei-Tek Tsai, et al.: PESOI: Process Embedded Service-Oriented Architecture 1483
unique features:
• PESOI takes an SMMA approach, that is, all the analyses and evaluations are based on the PSML-S
model. When the application needs to be modified, only the PSML-S model needs to be modified and the
rest of the system is automatically modified accordingly;
• PESOI supports three levels of reconfigurations, rebinding to external services, re-composition of the
application logic, and re-architecture of the application. Different level of reconfiguration requires
different level of V&V support;
• Dynamic reconfiguration needs dynamic V&V to ensure the dependability of the dynamically created
applications. PESOI enforces V&V in every phase of the development and operation.
PESOI is proposed based on the experience in several experimental and industrial projects that we have
implemented. Different mechanisms have been implemented in different projects but we have not implemented all
the V&V and evaluation mechanisms in a single project. We are currently implementing a prototype that put all
these components together in order to obtain the complete and coherent lifecycle data.
References:
[1] Arsanjani A. Service-Oriented modeling and architecture: How to identify, specify, and realize services for your SOA. Whitepaper
from IBM, Nov 2004. http://www-128.ibm.com/developerworks/webservices/library/ws-soa-design1/
[2] High RJr, Kinder S, Graham S. IBM SOA foundation: An architectural introduction and overview, Version 1.0. 2005.
[3] IBM Developers Works. New to SOA and Web services. http://www-128.ibm.com/developerworks/webservices/newto/
[4] Simmons S. Introducing the WebSphere integration reference architecture: A service-based foundation for enterprise-level business
integration. IBM WebSphere Developer Technical Journal, 2005. http://www-128.ibm.com/developerworks/websphere/techjournal/
0508_simmons/0508_simmons.html
[5] Randell BA, Lhotka R. Bridge the gap between development and operations with whitehorse. MSDN magazine, 2005.
http://msdn.microsoft.com/msdnmag/issues/04/07/whitehorse/default.aspx
[6] SAP NetWeaver product introduction. http:// www.sap.com/solutions/netweaver/index.epx
[7] Brown G, Carpenter R. Successful application of service-oriented architecture across the enterprise and beyond. Int’l Technology
Journal, 2004. http://www.intel.com/technology/itj/2004/volume08issue04/art09_successful/ p07_references.htm
[8] Krafzig D, Banke K, Slama D. Enterprise SOA: Service-oriented Architecture Best Practices. New York: Prentice Hall, PTR, 2005.
[9] Erl T. Service-Oriented Architecture: A Field Guide to Integrating XML and Web Services. New York: Prentice Hall, PTR, 2004.
[10] Mei H, Huang G, Tsai WT. Towards self-healing systems via dependable architecture and reflective middleware. In: Proc. of the
10th IEEE Int’l Workshop on Object-Oriented Real-Time Dependable Systems. Sedona, 2005. 337−344.
[11] Allen R, Douence R, Garlan D. Specifying and analyzing dynamic software architectures. In: Proc. of the ’98 Conf. on
Fundamental Approaches to Software Engineering (FASE’98). Lisbon, 1998.
[12] Dobrica L, Niemelä E. A survey on software architecture analysis methods. IEEE Trans. on Software Engineering Archive, 2002,
28(7):638-653.
[13] Bradbury JS, Cordy JR, Dingel J, Wermelinger M. A survey of self-management in dynamic architecture specifications. In: Proc. of
the Int’l Workshop on Self-Management Systems. 2004.
[14] Garlan D, Allen R. Formalizing architectural connection. In: Proc. of the 16th Int’l Conf. on Software Engineering. 1994. 71−80.
[15] Garlan D, Monroe RT, Wile D. Acme: Architectural description of component-based systems. In: Leavens GT, Sitaraman M, eds.
Foundations of Component-Based Systems. Cambridge University Press, 2000. 47−68.
[16] Inverardi P, Wolf A. Formal specification and analysis of software architectures using the chemical, abstract machine model. IEEE
Trans. on Software Engineering, Special Issue on Software Architecture, 1995,21(4):373−386.
[17] Shaw M, Garlan D. Formulations and formalisms in software architecture. Computer Science Today: Recent Trends and
Developments, LNCS 1000, Springer-Verlag, 1995.
1484 Journal of Software Vol.17, No.6, June 2006
[18] Shaw M, DeLine R, Klein DV, Ross TL, Young DM, Zelesnik G. Abstractions for software architecture and tools to support them.
IEEE Trans. on Software Engineering, 1995. 314−335.
[19] Dowling J, Cahill V. Dynamic software evolution and the k-component model. In: Proc. of the Workshop on Software Evolution,
OOPSLA. 2001.
[20] Chappell D. Enterprise Service Bus. New York: O’ Reilly Media, 2004.
[21] IBM eServer and Automatic Computing. http://www-03.ibm.com/servers/autonomic/
[22] Tsai WT, Bai X, Chen Y, Zhou X. Web service group testing with windowing mechanisms. IEEE Int’l Workshop on
Service-Oriented System Engineering (SOSE). Beijing, 2005. 213−218.
[23] Tsai WT, Paul RA, Xiao B, Cao Z, Chen Y. PSML-S: A process specification and modeling language for service oriented
computing. In: Proc. of the 9th IASTED Int’l Conf. on Software Engineering and Applications (SEA). Phoenix, 2005. 160−167.
[24] Tsai WT, Fan C, Chen Y, Paul RA. DDSOS, distributed service-oriented simulation. In: Proc. of the 39th Annual Simulation Symp.
(ANSS). Huntsville, 2006. 160−167.
[25] Henzinger TA, Jhala R, Majumdar R, Sutre G. Lazy abstraction. In: Proc. of the 29th Annual Symp. on Principles of Programming
Languages. 2002. 58−70.
[26] Huang H, Tsai WT, Paul RA, Chen Y. Automated model checking and testing for composite Web services. In: Proc. of the 8th
IEEE Int’l Symp. on Object-Oriented Real-Time Distributed Computing (ISORC). Seattle, 2005. 300−307.
[27] Tsai WT, Chen Y, Paul RA. Dynamic simulation verification and validation by policy enforcement. In: Proc. of the 38th Annual
Simulation Symp. 2005. 2005. 91−98.
[28] Tsai WT, Song W, Paul RA, Cao Z, Huang H. Services-Oriented dynamic reconfiguration framework for dependable distributed
computing. In: Proc. of the IEEE COMPSAC 2004. 2004. 554−559.
[29] Tsai WT. Service-Oriented system engineering: A new paradigm. In: Proc. of the IEEE Int’l Workshop on Service-Oriented System
Engineering (SOSE). Beijing, 2005. 3−8.
[30] Tsai WT, Wei X, Chen Y, Xiao B, Paul RA, Huang H. Developing and assuring trustworthy Web services. In: Proc. of the 7th Int’l
Symp. on Autonomous Decentralized Systems. Chengdu, 2005. 43−50.
TSAI Wei-Tek is a professor at Arizona FAN Chun received his Ph.D. degree at
State University. His research areas are Arizona State University in 2006 and is
service-oriented computing, embedded now with Motorola, USA. His research
systems, and system verification and areas are service-oriented simulation and
validation. software development life cycle.