EAI Guy.net

Enterprise Applicaiton Integration and SOA 2.0

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!

Advertisements

One response to “SOA – What is a Service?

  1. Pingback: Are you publishing IMyObjectUpdated messages? « No time to blog

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: