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 Jun 02, 2010
Despite hundreds of publications, vendors and analysts hype, the fact that SOA has been proclaimed dead and later reincarnated in an SOA manifesto, there is still a mystery surrounding this topic. Some of these mysteries are described in Joe McKendrick’s latest post.
What's the difference between SOA and cloud computing? The relationships between the two were very well defined by David Linthicum:
SOA is all about the process of defining an IT solution or architecture, while cloud computing is an architectural alternative. Thus, SOA can’t be replaced by cloud computing. In fact, most cloud computing solutions are going to be defined through SOA. They don’t compete -- they are complementary notions.
McKendrick elaborates further on this:
When you get right down to it, cloud is the acquisition or provisioning of reusable services that cross enterprise walls. Likewise, Enterprise 2.0 is accessing services that enable greater collaboration and mashing up of information by end-users. They are service oriented architecture, and they rely on SOA-based principles to function.
How could SOA be failing when nobody really has fully implemented SOA yet? If we go by the most simplistic definition:
... service-oriented architecture (SOA) is a flexible set of design principles used during the phases of systems development and integration.
Which means that an SOA is a way of architecting systems - in other words it is how not what. In McKendrick’s opinion:
SOA is an evolutionary process, and nobody really has fully completed a SOA implementation yet... most companies are still planning or considering their first service-oriented projects. In fact, the major challenge I keep hearing about these days is SOA gets too successful, and too many services are being added or launched willy-nilly - or being demanded - across enterprises that have SOA efforts underway.
How does one know when a SOA project has been successful or unsuccessful? The issue with this statement is that a success criterion for the enterprise architecture in general and SOA in particular is not well defined. According to Todd Biske
... the major difference between what companies claim as success or failure does come down to expectations and goals. When the expectations are clear and the goals are clear, claiming success or failure is also clear... Here's your litmus test. If you are adopting SOA, can you answer the question, "How will you know when you're successful?" If you can't answer it, then guess what. You're probably setting yourself up for a perceived failure.
Ugo Corda adds to this by saying:
... proper verification of SOA success in certain areas of claimed SOA benefits requires a significant amount of time (e.g. a couple of years) and those success stories are far from verifying success across that time period.
According to McKendrick:
This is one of the biting challenges of SOA to begin with - success is a long-term gain, evidenced by the sharing of services across multiple business units, in which service development time is notably cut back, or, a business is able to reconfigure and achieve faster time to market with a product or service thanks to the increased flexibility of its underlying infrastructure... the only true measures of long-term success in the market are either increased revenues or increased stock values, and many factors besides SOA will contribute to this.
How many full-functioning, true "SOA" implementations are there, exactly? Again the question is how this number can be measured? By number and granularity of services? By number of service consumers? In words of McKendrick:
When does Just a Bunch of Web Services become SOA? What is the threshold at which Web services may require some better care and feeding, with governance, registry, management, and all that good stuff - and thus become more SOAish?
Herbjörn Wilhelmsen elaborates on this by saying that the full functioned SOA requires:
- Clear strategic leadership.
- Prioritizing business value.
- Corporate culture.
- Proper incentives.
- Service discoverability.
- Interoperability.
- Opportunities for reuse.
- Making the services evolvable.
- Service level agreements.
- Testing the service-oriented architecture.
- Monitoring services.
If SOA is "not about technology," why are technologists driving it? According to McKendrick:
You hear it all the time, at every conference, in every analyst note, in every article. SOA is not, absolutely, positively, assuredly, is "not about technology." Yet, it's promoted by technology vendors, and usually falling under the aegis of IT departments.
As McKendrick points out, an SOA is a living evolving architectural approach and, despite all the buzz, many of the statements about it are driven more by emotions then actual facts.
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.
No comments
Watch Thread Reply