Overview
Foundations
Examples / Case Study
- PicWeb
- MDD4DRES
An application in the Service Oriented Architecture (SOA) paradigm is an assembly of services that implements a business process. SOA applications can be defined as orchestrations of services. A SOA application is typically defined by business specialists and can involve many services that are orchestrated in a variety of ways. Furthermore, the need to extend an SOA application with new business features (to follow market trends) arises often in practice.
Existing tools and formalisms (e.g., BPMN notation, BPEL industrial language) are technologically–driven. They use a design-in-the-large approach and considerable effort can be expended when using them to develop and adapt large applications involving many services that are orchestrated in a variety of ways.
We propose a design-in-the-small driven framework to tame the complexity of orchestration design. Experts focus on the design of small process fragments, and let the complexity of composing all the fragments into a final application to dedicated algorithms.
Several approaches fill the gap between orchestrations and Aspect Oriented Programming (AOP) (e.g., [Charfi2004], [Courbis05Ø). These approaches rely on the BPEL language and impose to use dedicated BPEL execution engines to interpret the aspects. ADORE preaches technological independence and exposes itself as a model to support composition. Instead of interpreting “aspectized” BPEL code, ADORE aims to generate complete orchestrations of services, executable in any industrial engine.
One of the strength of ADORE is to focus on the so–called “Shared Join Points” (SJP,[Nagy05]) interactions spawn. We develop a set of rules to identify conflicting interactions between orchestration fragment at composition time. Instead of re–ordering the aspects to deal with conflicts around a SJP, we use an order-independent composition process. When interactions are detected, the user will enter knowledge at a fine-grained level (where coarse-grained is fragment re-ordering) to solve the conflict and then ease the interaction.
In [Klein07], authors propose a way to weave multiple aspects in UML sequence diagrams. They propose a very precise way to identify join points and express pointcuts, but their weaving methodology relies on a sequential aspect composition, where ADORE uses an order independent composition process.
Inspired by grid–computing community, ADORE proposes an algorithm to automatically enhance a process with set concerns. Considering a process p handling a scalar data d, the algorithm can automatically transform p into a process handling a set of data d* = {d1,…,d_n}.
Moreover, ADORE allows users or programs to extract information from its internal representation. we focus on process metrics extraction, inspired by well-known indicators like [LaueG06].