Skip to Content

The Web, as an  ubiquitous distributed computing platform, has changed dramatically the way we  build information systems evolving from monolithic applications to an open model  that enables real-time and federated information access, unifying the user  experience across business processes. The industry has coined a new term for  this latest evolution: Connected Systems. Unlike Distributed Systems,they are not just about distributing work load or ensuring fail-over, but  rather about leveraging connectivity to enable specialized software agents to  perform units of work cooperatively and opportunistically by exposing and  consuming each other’s services to fulfill a common goal.

To reach their  fullest benefits, Connected Systems require a new application model, a  Service Oriented Composite Application model, that relies exclusively on the  consumption and composition of autonomous services. SAP has been both a though  leader and a market leader with its Composite Application Framework, and more  recently, with the Service Component Architecture specification, co-published  with BEA, IBM and Oracle.

The goal of this  post is to introduce a pattern, the REASC pattern, to help you reason about and  design effectively Service Oriented Composite Applications. REASC stands for  Resource, Event, Activity, Service and Coordinator.

         

  •      

    A resource is       a piece of information identifiable by a URI. It is under the control of a       single service, but can share representations with other services. A       resource has an identity, some content, one or more states, some policies       (such as a privacy or replication policy). It addition, it might keep track       of services that requested a resource representation based on their       replication policies. A resource representation may be as simple as its URI.      

  •      

  •      

    A service       represents one service implemented by a software agent. Services follow       principles of autonomy and interact with other services, as peer, via the       exchange of messages, synchronously or asynchronously. Messages may contain       requests for resource representations and resource representations, as well       as events which may also contain resource representations. One major       difference between a service and an object for instance is the       conversational aspect supported by services. In other words, an object is       described by a class. Object technologies have the greatest difficulty to       deal with concurrency problems, and in general OO run-time are not equipped       to support multiple conversations between objects. On the contrary,       services, may have service types, as specified by the SCA specification, but       in addition and most often, a service implementation is capable of       supporting multiple simultaneous conversations as part of different units of       work.

  •      

  •      

    Events       represents the occurrence of a particular state or content within a       resource. Events are issued by services upon state and/or content changes.

         

  •      

  •      

    Activity       represent assemblies of services and coordinators (in the SCA sense) geared       towards the performance of specific type of unit of work. An activity may       expose a service interface and interact with other services and coordinators       as part of a broader activity. 

  •      

  •      

    A coordinator       ensure supporting (technical) services necessary to the performance of       various types of units of work. Coordinators can provide services such as:       transaction management, transformation, message routing, publish/subscribe…      

image

Figure  1 Pattern Resource Event Activity Service  Coordinator (REASC)

In this model, user interactions are modeled  as services, i.e. a software agent acts as a user proxy, which provide services  on behalf of users.

We argue that all Composite Applications can  be decomposed in REASC elements.

To report this post you need to login first.

Be the first to leave a comment

You must be Logged on to comment or reply to a post.

Leave a Reply