Sunday, September 27, 2009

Towards a Programming Model for Service-Oriented Computing

composition model is built on top of component models. We look for a customization without source code modification.

Composition
  • behavioral
  • adaptation -> point of variability
  • structural
  • mediation -> message processing
Dynamic Binding
  • dependency injection -> automatic dependency resolution
  • Mediation Model -> dynamic mediation -> dynamic binding
IMPORTANT DEFINITION: a service is a visible access point to a component. A component can offer multiple services or reference multiple services

service specification -> access channel
  • interface -> WSDL
  • policies
  • behavioral description -> BPEL
service component implementation (similar to the SCA model in which we have comonent, composite, reference, services, properties)
  • service spec: characteristics of a service
  • required services
  • service properties
  • container directives
  • implementation artefacts
service component
  • Name
  • implementation
  • values for properties
  • specification + resolution for services
  • wires + queries + QoS policies
directives for service composition could be instructed using either Pragmas or Control files
  • Control Files: BPEL or other workflow descriptions
  • Pragmas: Annotations within the code
Structural Composition (Mediation)
  • wiring: wires represent the flow of messages
  • Bundle -> a collection of services
  • Event-Driven Composition
  • Mediation
  • Content-based Routing
  • Transformation -> transform and map messages
  • Augmentation -> adding additional information to the message
  • Side Effect -> extra operation on the messages
Behavioral Composition - Process Oriented (Adaptation)
  • workflow oriented
  • state machine
  • UML state diagram
  • BPEL -> DAG activity nodes
  • short running
  • long running
  • has one or more interfaces
  • different implementations for canceling
SDO (Service Data Object) = a uniform way of representing service data + the abstract tree is used to access data irrespective of how it is provided

IMPORTANT

SOA component model improves over CORBA/J2EE/COM
  • control language
  • XSD & WSDL are more tolerant of interface evaluation
  • call/return + one way messaging
  • rich contracts
  • QoS
  • behavioral description
  • mediation + intermediaries
SCA -> abstraction of implementation concerns
Web Services -> abstraction for interoperability concerns

No comments: