| By Arnon Rotem-Gal-Oz | Article Rating: |
|
| October 2, 2008 05:00 PM EDT | Reads: |
6,401 |
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 6,401
Copyright © 2008 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By 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.
- Big Data in Telecom: The Need for Analytics
- Patterns for Building High Performance Applications
- Microsoft Tries Hadoop on Azure
- Amazon to Fix Some Kindle Fire Problems
- What Motivates Open Standards in the Cloud?
- What to Expect in 2012: Cloud Computing and Open Source Software
- Will PaaS Finally Bring Open Source Love to the Enterprise?
- Ten Hot Trends in Cloud Data for 2012
- Oracle Disaster Recovery Site Hosted by Amazon Cloud
- Cross-Platform Mobile Website Development – a Tool Comparison
- Write Once Run Anywhere or Cross Platform Mobile Development Tools
- Three Buzzwords That Every CIO Hears but One They Should Listen To
- The Future of Cloud Computing: Industry Predictions for 2012
- Make Customer On-Boarding Easy as Paint-by-Numbers for Cloud Services
- Gartner Hype Cycle for Emerging Technologies 2011
- Book Excerpt: Introducing HTML5
- Adobe Sends Flex to the Apache Foundation
- Big Data in Telecom: The Need for Analytics
- Book Excerpt: Java Application Profiling Tips and Tricks
- i-Technology in 2012: Five Industry Predictions
- Patterns for Building High Performance Applications
- Microsoft Tries Hadoop on Azure
- The Next Web Architecture
- How to Wreck a Good Product in 90 Days or Less
- The i-Technology Right Stuff
- The Top 150 Players in Cloud Computing
- Who Are The All-Time Heroes of i-Technology?
- Where Are RIA Technologies Headed in 2008?
- Get the Message
- ESB Myth Busters: 10 Enterprise Service Bus Myths Debunked
- i-Technology Viewpoint: Is Web 2.0 the Global SOA?
- i-Technology Viewpoint: Thinking Outside the VC Box
- i-Technology Viewpoint: When to Leave Your First IT Job
- SOA Web Services Edge Conference Coverage on SYS-CON.TV
- SYS-CON.TV's "SOA Web Services" and "Enterprise Open Source" Programs To Air in December
- Five Reasons Why Web 2.0 Matters

















