February 2006 Archives

Autonomous Orchestration

| No Comments | No TrackBacks

The decentralized approach to services can be extended to the area of orchestration. The argument for more distributed and autonomous orchestration is that as an organization's number of services and business processes grow, the more a centralized orchestration hub(s) will create unnecessary bottlenecks and increase cost. The cost increase is reflected in expensive hardware and software to support the hubs of orchestration. Rather we should move the orchestration out to the endpoints where possible.

Should there be no centralized orchestration? Well it depends. There are places where a more centralized approach might make sense - e.g. when managing B2B type orchestrations (consider Global Model of WSFL). But in this case one could argue that this centralized orchestration is relative in that the "centralized" orchestration may just be a group of processes orchestrating B2B interactions hosted together near a web server (perhaps in an App Server).

Considering that a business process itself can be considered a service, a composite service, then moving the orchestration to this composite end-point makes perfect sense. So rather than a technology specific hub (some evolved EAI technology) centrally controlling all or large groupings of business processes, we have instead autonomous orchestration, moved to the end-points.

This does not sacrifice management which can be centralized. Nor does it remove the need for a (highly available) registry or federated registry that maintains location and policy information. But it does take advantage of computing power and service intelligence at the end-points.

I think we'll see a lot more autonomous orchestration models developing. Models that take advantage of a distributed SOA model. We'll also see the continued use of central hubs - often for the wrong reasons but sometimes where they make sense. Just like some technologies are allowing transformations to occur in the end-point, we'll see technologies allowing orchestrations to be embedded in the end-point, often non-intrusively.

In terms of usage consider organizations that own various technologies like J2EE application servers and are also considering using JBI. I might make sense for them to develop some composite services in their the J2EE container and have them deployed in different geographically located servers. At the same time they might deploy a lightweight BPEL engine into a JBI service engine. The same organization might have legacy EAI or CORBA that might be utilized in the orchestrations. Deciding to put all the orchestrations into one of these technologies might not make sense for various different reasons. Instead distributing the orchestrations to where the make sense is the best choice.

At IONA's Sales Kick-off event in January this year I heard a phrase that I instantly liked. The phrase aligns exactly to what I think about SOA Adoption: Think Big, Start Slow and Scale Fast. No doubt this is probably not an original catchy phrase - even in the world of middleware. But it makes a lot of sense, especially post-Internet Bubble era.

It is amazing though how many organizations get caught either in the trap of analysis paralysis - where they can't start a project "as big as SOA", or in the big bang trap - where they feel that to adopt to an initiative like SOA they must do everything from the start and have all the pieces in place. In the former they never get started; and in the latter they either never get finished, or they finish in failure (the dreaded but all too common cancelled project).

SOA is a big investment that will take large organizations years to fully implement. Service enablement, registries, policies, high availability, security, transactions, etc. are all important architectural components for building large scale SOA implementations. However SOA adoption doesn't necessarily require large up-front costs. Implementing SOA can be, and in most cases should be, incremental. Too often we get into a bureacratic, "big government", approach to rolling out this type of initiative. And we all know how well most governments both budget and spend resources!

So let's look at this catch phrase a little closer.

  • Think Big - This is about the fact that organizations should have big dreams about how SOA can be leveraged in their organizations. There is little point in having small aspirations for deploying SOA. So even though I caution on the approach to adopting SOA, I am not trying to discourage having big ambitions for SOA. On the contrary, Think Big!
  • Start Small - In my Java != SOA (abbrev.) post I talked about some lessons learned developing successful service oriented applications using CORBA. In it I said:
    ... not all SOA implementations need all the details that we "experts" debate about in forums, on blogs and in standards bodies. These standards need to be discussed, defined and ratified for maybe the top 5% (if even that) of organizations that need them all. But there are lots of organizations that need only the basics to implement SOA. If their needs grow then the standards will be there for them but they don't need it all immediately. I think the comprehensive nature of the standards causes paralysis for those implementing SOA. We all need to tell the market to START SMALL!!! (even if you're big).
    Obvioulsy for mature IT organizations with well defined processes and a history of successful deployment, and with lots of well managed resources, one can start perhaps bigger. Start small is relative. The point here is that if SOA is so completely new to your organization, don't assume that you should or can deploy an entire conversion of all your applicaitons and business processes to a SOA. Also don't assume that you require entire SOA governance infrastructure from the start. Identify what is required to make your 'Start Small Initiative' successful while keeping in mind that it may be required to scale fast as it's success grows. E.g. you may not need a full blown service registry, such as UDDI, for your first initiaitive, but some thought as to how you will get there as your services grow is required. Don't waste time and resources on a registry until you have enough services to justify the investment.
  • Scale Fast - If the right amount of thought has gone into the Think Big process, which is always ongoing, then scaling your SOA will come much easier. Education on the enterprise qualities of service, SOA governance, and understanding how important scalable service enablement is, will help you make the right decisions that will allow you to scale later (or sooner). Remember that not all service enablement is equal. A simple Web services approach with SOAP/HTTP might seem fine today but it might not meet the performance and throughput requirements of tomorrow. Using a EAI type hub might have made sense with a handful of services and thousands of transactions a day, but with hundreds of services and millions of transations it just won't scale. For me, I see so much effort put into how we're going to manage and monitor our SOA - this is without doubt VERY important, but less thought into the enablement technology itself. But, as I learned from talking to many people over the years, if you can't get services enabled due to legacy technology or if the enablement technology is weak, then when success comes your services aren't ready for prime time. All the monitoring tools in the world will mainly just tell you "your deployment is stressed and unhealthy" and there will be little you can do, fast, to change that. And chances are it's going to cost you lots of money. Which is why the Think Big process is so important.

So how to proceed assuming that the current hype around SOA is real - that there are large cost savings to be made and time to market opportunities to be gained: Organizations should analyze some of the key business drivers for their companies and then examine where value can be achieved through SOA with an incremental approach. Look not just for "low hanging fruit" but also for high yield, high value fruit.

At IONA we've recognized that some of our most successful SOA deployments are ones that addressed high value/yield opportunities as a way of getting started. Opportunities that made significant cost savings and/or significant time-to-market gains. Hitting a home run early helps generate momentum for the next SOA rollout initiaitive. It feeds the Think Big, Start Small, Scale Fast engine.

Who is IPBabble

William Henry IP Babble is the personal blog of William Henry.

William has 20 years experience in software development and distributed computing and holds a M.Sc from Dublin City University. He is currently working in the office of CTO at Red Hat on the MRG product. This weblog is not funded by Red Hat.

Posts are intended to express independent points of view, but understand that there is probably a bias based on the influence of working with standards based middleware for over a decade. (See disclaimer below)

February 2009

Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28

Disclaimer

The views expressed in this blog are solely the personal views of the author and DO NOT represent the views of his employer or any third party.

About this Archive

This page is an archive of entries from February 2006 listed from newest to oldest.

January 2006 is the previous archive.

March 2006 is the next archive.

Find recent content on the main index or look in the archives to find all content.