| By Arnon Rotem-Gal-Oz | Article Rating: |
|
| October 2, 2008 05:00 PM EDT | Reads: |
2,196 |
This article is based on the book SOA Patterns (http://www.manning.com/rotem) scheduled to print February 2009. This article is courtesy of Manning Publications (http://www.manning.com). The ebook is available and sold exclusively through Manning Publications.
Service-oriented architecture (SOA) has become the leading solution for complex, connected business systems. While it's easy to grasp the theory of SOA, implementing well-designed, practical SOA systems can be a difficult challenge. SOA Patterns provides detailed, technology-neutral solutions to the challenges by providing architectural guidance through patterns and anti-patterns. Part 1 of this excerpt focuses on two patterns that address matters of services. These are the patterns you are most likely to use even if your service has modest requirements. The patterns in this excerpt are relevant to implementing the Services (see Figure 1).
There are five patterns in this chapter; Table 1 lists all of them along with the problems they address. In this excerpt we will cover two of them: ServiceHost and Active Service.
|
Pattern name |
Problem address |
|
ServiceHost |
How can you make your services adaptable to different configurations easily and save yourself the repetitive and mundane tasks of setting listeners, wiring components etc. |
|
Active Service |
How can I increase service autonomy and handle temporal concerns? |
|
Transactional Service |
How to handle messages reliably? |
|
Workflodize |
How to increase the service's adaptability to changing business processes ? |
|
Edge Component |
How to isolate the business functionality of the service, from the non-related cross-cutting concerns like security, logging etc.. |
Table 1: List of patterns
ServiceHost
The first pattern we will talk about is one of the most basic patterns if not the most basic one. The ServiceHost Pattern deals with the environment that runs the services instances and handles some of the rote tasks associated with that.
The Problem
Pick a service, any service (don't tell me what it is :). You have some code that sets up listeners for incoming messages or requests. You have some code to wire up components, and you have some code that initializes and activates the service. You probably also have some code to configure your service Well? How did I do? Chances are you have most of if not all these pieces of code somewhere in your service.
There are quite a few tasks that are repetitive and common. Maybe there is something we can do about it.
How can you make your services adaptable to different configurations easily and save yourself the repetitive and mundane tasks of setting listeners, wiring components, etc.
The first option, or actually non-option, is to rewrite the wiring and the rest of the repetitive code for each and every service. Obviously, this is not a good option - for one you are likely to introduce bugs as you write something again and again. The multiple copies of the same code problem are even worse when we consider maintaining this code. During maintenance you not only need to make bug fixes and changes for each service, but also make sure that you didn't miss any of them and all the services are up to date.
Published October 2, 2008 Reads 2,196
Copyright © 2008 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
About Arnon Rotem-Gal-Oz
For the past 10 years Arnon Rotem-Gal-Oz has been an architecture and system designer of large distributed systems including C4ISR systems, IP customer care and billing systems, and BI engines. He has experience with a variety of technologies (.Net, J2EE, CORBA, COM+, X-Windows) on diverse platforms (Unix, Windows, Dos, AS/400). He currently works for Rafael as the Biometric line development manager.
- Universal Middleware: What's Happening With OSGi and Why You Should Care
- An A to Z of Cloud Computing Companies in 2009
- SOA and eXtreme Transaction Processing (XTP)
- Ulitzer’s Amazing First 30 Days in Public Beta
- SYS-CON Announces Government IT Conference & Expo
- Why an Application Grid?
- 2nd International Cloud Computing Expo New York Photo Album
- "Government IT Expo" to Highlight Cloud Computing and SOA
- Building a Composite Application Using Multiple Web Services
- Commercial vs Federal Cloud Computing
- Universal Middleware: What's Happening With OSGi and Why You Should Care
- An A to Z of Cloud Computing Companies in 2009
- Blending Discovery, Governance, Security, and Management in SOA
- SOA and eXtreme Transaction Processing (XTP)
- Ulitzer’s Amazing First 30 Days in Public Beta
- Enterprise Mashups: The New Face of Your SOA
- SYS-CON Announces Government IT Conference & Expo
- Why an Application Grid?
- Web Application Management
- 2nd International Cloud Computing Expo New York Photo Album
- The i-Technology Right Stuff
- Get the Message
- Success, Arrogance, Rise and Fall
- i-Technology Viewpoint: Is Web 2.0 the Global SOA?
- i-Technology Viewpoint: Thinking Outside the VC Box
- ESB Myth Busters: 10 Enterprise Service Bus Myths Debunked
- i-Technology Viewpoint: When to Leave Your First IT Job
- SOA Web Services Edge Conference Coverage on SYS-CON.TV
- Five Reasons Why Web 2.0 Matters
- SYS-CON.TV's "SOA Web Services" and "Enterprise Open Source" Programs To Air in December







































