New-age Transactional Systems - Not Your Grandpa's OLTP
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Boris Lublinsky on Sep 26, 2008
According to Jonathan Mack, SOA adoption is "not nearly as ubiquitous as many of the analyst organizations and webinar publishers would suggest" today. The reason for that is very simple: successful SOA implementation is extremely challenging. The three main challenges, outlined by Jonathan, are:
While the majority of SOA practitioners advocate building services as a thin layer on top of the existing enterprise applications, reusing functionality already in place as much as possible, such implementation is often more challenging than usually acknowledged. As Jonathan points out:
Legacy systems are built as fragments of batch and online steps that must be combined in a specific sequence to produce meaningful business functionality... The legacy steps were designed to meet pragmatic needs, often driven by practicalities of the development process, rather than mapping to discrete functions. Each individual step lacks coherence and meaning from a service perspective
The practical approach to this problem, outlined by Jonathan, includes the following:
- Build a thin service tier to be the on-ramp/off-ramp to the services you will build. Create the components that will enable legacy programmers to do what they’ve always done - i.e., to design programs with clearly defined inputs and outputs - that will very easily plug into your service layer.
- Incorporate monitoring and exception-handling hooks into the service tier from the start. One of the most important benefits of SOA is the ability to accurately monitor application activity.
- Build specific services where there is a clear advantage to a service over a point-to-point interaction. Define and publish clear criteria for building a new component as a service. The primary criterion is the existence of multiple clients for the service.
- Don’t go overboard with Centers of Excellence. Do have a small team specifically selected for their ability to work with other developers in your environment. Work collaboratively from the beginning to build the common services that will be the foundation of your service layer.
- Wherever possible, build atomic services to interact directly with the mainframe, and build composite services using ESB software. Keep the atomic service layer and composite service layers separate.
A typical SOA selling point is reusability. Unfortunately this is often more an emotional than a factual argument. There is a very little data supporting this argument. According to Jonathan:
To convince the major stakeholders, you need to be much more specific. Drawings of how SOA untangles the rat’s nest of intertwined systems are nice, but business stakeholders want far more concrete details of how this effort will yield benefits that justify its costs. They’re also skilled at sifting soft from hard numbers in ROI estimations. Regardless of how you approach SOA, you must provide very realistic figures if you want to be taken seriously.
When it comes to the SOA roadmap, the two most popular approaches to SOA implementation have emerged lately:
Alternative approach, proposed by Jonathan is:
...to build SOA incrementally. Most vendors have come around to recognizing that this is the most reasonable approach. Nevertheless, it’s not simple to accomplish. The key elements of an Enterprise Server Bus (ESB) - the ability to translate and transform information from one system to another and the ability to route messages - as well as the messaging infrastructure to transmit the information must be in place from the beginning. Common (shared) services such as logging, monitoring, and exception handling also should be Day 1 implementations.
After nearly 10 years of SOA buzz around IT industry, there is still no guaranteed solution for successful implementations due to the overall complexity. Every new SOA project "must be taken on with a clear sense of realism and a well-researched understanding of the steps - and cost - necessary to achieve success."
On the point of needing to provide a realistic ROI, the difficulty is that organisations that are riddled with fragile legacy systems will usually not have sufficient metrics to enable a decent ROI to be proposed. In such cases, the business case will usually have to be based on industry stats showing the benefits of SOA in other companies.
Robert
soaprobe.blogspot.com
"Common (shared) services such as logging, monitoring, and exception handling also should be Day 1 implementations."
That's really true but I think that this can be accomplish without the need of an ESB in place. SOA Governance could be accomplished without an ESB ... Themes like runtime governance...
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
2 comments
Watch Thread Reply