EAI Guy.net

Enterprise Applicaiton Integration and SOA 2.0

Monthly Archives: April 2011

Distributed-Design Yahoo Group

Here is a link to the Yahoo group for alumni of Udi’s course. Peruse this group for practical SOA discussion material:

http://tech.groups.yahoo.com/group/AdvancedDistributedSystemsDesign/

SOA – What is a Service?

Webservices often come to mind when we hear Service-Oriented Architecture: webservices implementing interfaces connecting a web tier, an application tier, and a data tier, or some variation. In the SOA world, the concept of a service is an entirely different animal.

An SOA “system” is composed of multiple autonomous “services” that communicate asynchronously. Each service has UI logic, business logic, and some means of storing data. Yes, you heard that right – services to not share a common data store; they are each responsible for their own data. Udi Dahan defines a service as, “the technical authority for a specific business capability”, and specifies that “all data and business rules reside within the service” (Advanced Distributed Systems Design course-slides).

Asynchronous communication in SOA consists of services publishing events to which other services subscribe. If ¬†it appears that service A needs to synchronously access service B’s data as part of its business logic, then the service boundaries should be re-evaluated. It is probable that A and B are either ¬†managing the same business capability and should be combined, or that we technologists have synchronously chained steps of a business process into a transaction, and we need to split up the steps add re-evaluate the role of time in the business process.

Attributes of a service

  • Business-centric
  • Technical authority a business capability
  • Stores all data needed for the business capability it owns
  • Communicates asynchronously with other services
  • Contains UI logic, business logic, and a datastore

Examples of services

System: Online book-sales website
Possible service breakdown:

  • Sales
  • Marketing
  • Customer Care

System: Hotel reservation system
Possible service breakdown:

  • Billing
  • Guest Services
  • Marketing
  • IT/Infrastructure

Summary

Disclaimer: I do not claim to be an expert in the subject of SOA, so these are just thoughts based on my experiences with building my first SOA system over the past year plus some theory assimilated from attending Udi Dahan’s Advanced Distributed Systems Design course.

More to come if I have time!