Comments
Richard Davies wrote: The UK has a good crop of technology pioneers in cloud computing - for example ElasticHosts, FlexiScale, Flexiant, OnApp - and also some strong government initiatives such as G-Cloud. We will have to see whether this kind of technical leadership converts into swift mass-market adoption or not.
Cloud Computing
Conference & Expo
November 2-4, 2009 NYC
Register Today and SAVE !..

2008 West
DIAMOND SPONSOR:
Data Direct
SOA, WOA and Cloud Computing: The New Frontier for Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
GOLD SPONSORS:
Appsense
User Environment Management – The Third Layer of the Desktop
Cordys
Cloud Computing for Business Agility
EMC
CMIS: A Multi-Vendor Proposal for a Service-Based Content Management Interoperability Standard
Freedom OSS
Practical SOA” Max Yankelevich
Intel
Architecting an Enterprise Service Router (ESR) – A Cost-Effective Way to Scale SOA Across the Enterprise
Sensedia
Return on Assests: Bringing Visibility to your SOA Strategy
Symantec
Managing Hybrid Endpoint Environments
VMWare
Game-Changing Technology for Enterprise Clouds and Applications
Click For 2008 West
Event Webcasts

2008 West
PLATINUM SPONSORS:
Appcelerator
Get ‘Rich’ Quick: Rapid Prototyping for RIA with ZERO Server Code
Keynote Systems
Designing for and Managing Performance in the New Frontier of Rich Internet Applications
GOLD SPONSORS:
ICEsoft
How Can AJAX Improve Homeland Security?
Isomorphic
Beyond Widgets: What a RIA Platform Should Offer
Oracle
REAs: Rich Enterprise Applications
Click For 2008 Event Webcasts
In many cases, the end of the year gives you time to step back and take stock of the last 12 months. This is when many of us take a hard look at what worked and what did not, complete performance reviews, and formulate plans for the coming year. For me, it is all of those things plus a time when I u...
SYS-CON.TV
SOA Web Services: Does Your SOA Achieve Agility?
SOA actualization: enterprise agility

Agility seems to be the buzzword du jour. There are "agile enterprises," "agile manifestos," "agile programmers," and "agile architectures." Slap "agile" in front of just about anything and marketers believe it will sell better. Yet, one of the primary goals of using service-based architectures was to create "agile systems." This begs the question, was it just marketing or is there something to it?

Let's cut to the chase. If you are responsible for a system and a user requests a change to that system, how long will it take to make the change and move the revised system back into production? If it takes a long time, then your system probably isn't agile. If you can do it in a matter of days - well then you have agility! Marketing bologna aside, agility is directly related to the time and effort required to create new functions or to modify existing functions - and then to re-release those functions to the customers.

Small systems are usually agile. As systems grow in size and the dependencies increase, it becomes hard to make changes and re-release. Service-oriented architectures (SOA) are thought to hold the potential to improve this scenario, but do they? More important, does your instantiation of an SOA provide agility?

Finding the Problem
Imagine a system with 100 parts. Pick a random number from 1 to 100. The number you chose was the part that needed to be changed. How many other parts used that part? How many did it use? In a random world we say that statistically all changes are equal; however, the world isn't random.

Take a software system that has been in production for an extended period of time and review all of the user-initiated change requests. Create categories for the changes, such as:

  • Create a new system function/capability
  • Capture new data in an existing function
  • Add or change a business rule
Then, determine where the time was actually spent, for instance:
  • Updating requirements, documents, and specifications
  • Locating the responsible code
  • Making the code changes
  • Building the system
  • Testing the changes
  • Redeploying the system
Now, add services to the mix and rerun your "change requests" to see if your situation improves. Today, for most organizations, the agility isn't increased - in fact it dramatically worsens. Why? It can be summed up as follows:
  • Developers don't have the proper SOA tools
  • Developers aren't designing the services properly
  • Developers aren't building the composite application "loosely"
  • Some systems are not good candidates for SOA-infused agility
Agility and Tooling
Just when most developers were getting efficient at using their platform tooling (Visual Studio, Eclipse, etc.), a whole new set of service-oriented opportunities surfaced. For the last several years the open source community and leading vendors have rushed to bring new tools to the market. However, many organizations have been slow to adopt tools that facilitate SOA. Does your organization have standardized tools for:
  • Creating XML Schemas and WSDLs?
  • Rapid Service Development (contract first)?
  • Intermediary-based routing and mediation?
  • A registry of services? A repository of service metadata?
  • Automated service testing?
Obviously, this is only a partial list of the tools needed to be productive in a service-oriented environment. The point is, don't expect developers to be productive in an SOA environment using last-generation tools. It won't happen.

Agility Techniques
Having the right tools is an easy way to increase productivity, but it will only get you so far. Ultimately, we must come back to the techniques we use to create the services, combine them, and redeploy them.

Agile Service Design
Designing services is no easy task. We are faced with many of the same questions that we saw in object-oriented design: How do we design services so that they can be easily maintained? How do we refactor for reuse? We are also faced with new questions such as, "How do we keep our platform-to-schema bindings synchronized?"

With regard to refactoring for reuse, it is clear that we must implement the same basic rules of commonality that we applied to object-oriented design - that is, using Venn diagrams to identify commonality and carve it out. It is clear that "fat services," or services that contain too much logic, are likely to have lots of change requests issued against them. This has a ripple effect that causes the entire service to be versioned as well as all of the clients, depending on that service to be versioned. This doesn't sound very agile, does it?

Alternatively, server-side code that is specific to a client can be refactored into a service that reduces the impact of changes required by a client. The goal is to reduce the impact of a change while leveraging common code. If we refactor our scenario into four services (one common and three services containing client-specific features), we are able to preserve the reuse and reduce the impact of making a change.

Now we all know that this type of extension mechanism won't always work. Luckily, the software community has seen this type of problem on more than one occasion and the design patterns to remedy the variations of this problem are abundant. For virtually every "Gang of Four" pattern that discussed an object-oriented solution, there is a minor modification that can be applied to create a service-oriented variation. Remember though, on occasion - the answer isn't service-oriented at all. Don't go throwing out your favorite OO patterns and trying to solve problems in a service-oriented way. Services are a mechanism to complement your current bag of tricks. Implementing best practices in design (service, object, or otherwise) is essential to creating systems that are easily modifiable.

Composite Applications
Service-oriented systems are composed of three primary elements: the service infrastructure (SOAP routers, firewalls, etc.), the services, and the clients. However, there is a special breed of the client that is worth observing - the composite application. In loosely coupled systems, we identify certain portions of the system that seem to pull it all together. Aside from executing the business services, composite applications interact with the user interface and external gateways. The composite application is the brain of the service-oriented system.

Composite solutions focus on three different areas: agile controllers, reflective metadata, and WYSIWYG/RAD.

Agile Controllers
The agile controller is a piece of business logic that dictates business logic relative to code that is likely to change. Typically, agile controllers focus on the flow of information between humans (workflow) or systems (orchestration). The goal of the agile controller is to give the programmer an easy way to make a change to the portion of the code that is most likely to change!

Reflective Metadata
As the enterprise continues to refactor substrate out of applications and put it in common infrastructure, it becomes more important to gain access to that infrastructure. Modern enterprise IDEs place a significant emphasis on accessing enterprise metadata - everything from simple WSDLs to semantic message descriptions and run-time policies. Metadata is the new data.

About Jeff Schneider
Jeff Schneider is founder and CEO of MomentumSI, a consulting firm that specializes in transforming organizations into a service-oriented enterprise.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

SOA Web Services: Does Your SOA Achieve Agility? Agility seems to be the buzzword du jour. There are 'agile enterprises,' 'agile manifestos,' 'agile programmers,' and 'agile architectures.' Slap 'agile' in front of just about anything and marketers believe it will sell better. Yet, one of the primary goals of using service-based architectures was to create 'agile systems.' This begs the question, was it just marketing or is there something to it?


Your Feedback
SOA Web Services Journal News Desk wrote: SOA Web Services: Does Your SOA Achieve Agility? Agility seems to be the buzzword du jour. There are 'agile enterprises,' 'agile manifestos,' 'agile programmers,' and 'agile architectures.' Slap 'agile' in front of just about anything and marketers believe it will sell better. Yet, one of the primary goals of using service-based architectures was to create 'agile systems.' This begs the question, was it just marketing or is there something to it?
SOA World Latest Stories
Yahoo’s critical negotiations with Alibaba to sell part of its stake in Alibaba back to the Chinese company have collapsed according to All Things Digital, a report later confirmed by CNBC. Apparently the collapse includes Yahoo’s parallel and intertwined negotiations with Softbank t...
Can you bring services from the cloud to your customers faster and have them adopt it with ease of use or bring the power of bundled services to the fingertips of your clients without creating new rigid ‘apps stove pipes'? Do you want to prevent your business running away to public and...
The Internet highway may start looking like a proverbial New York traffic jam at rush hour soon. Feel free to substitute any town you like because Cisco says there’s going to be a faster-than-expected 18x surge in worldwide mobile data traffic between 2011 and 2016. That’s when mob...
OCZ Technology Group, a provider of high-performance solid-state drives (SSDs) for computing devices and systems, on Tuesday announced the Z-Drive R4 CloudServ PCI Express (PCIe) flash storage solution, designed to accelerate cloud computing applications and reduce operating expenses i...
Many organizations have embraced, or are considering, the benefits of cloud computing – speed, flexibility, increased expertise, shared workload, reduced costs, etc. The benefits are many – but so are the risks. What are the threats to cloud security? Which parties assume responsibilit...
SoftLayer Technologies on Tuesday announced the immediate worldwide availability of SoftLayer Object Storage, a redundant and highly scalable cloud storage service that allows users to easily store, search and retrieve data across the Internet, with optional CDN connectivity, or across...
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021


SYS-CON Featured Whitepapers
ADS BY GOOGLE