Atomikos and the Service Component Architecture (SCA) – Enabling A Next Generation SOA Programming Model at MetaForm Systems
While it remains the standard for building and deploying applications online, JEE is frequently found by developers and architects to be too complex for virtualized or cloud computing scenarios. J2EE also suffers from limitations in the area of code reuse, especially across process boundaries.
To address these limitations, work began a number of years ago on a new programming model, called the Service Component Architecture (SCA). SCA allows developers to build distributed applications and reuse components more efficiently and effectively. While not explicitly anointed as the future of J2EE by the vendors behind its creation, SCA certainly moves the SOA market in that direction, taking active steps to simplify features for reuse, composition, policy administration and loosely coupled services which were only fuzzily defined in earlier models.
SCA attempts to provide SOA programming features in a way that is a lot simpler than traditional approaches. It offers an easier and more lightweight approach that is designed specifically to promote loose coupling – a model that is embraced by organizations with virtualization and Cloud computing projects.
SCA was first developed at BEA, by Jim Marino, author, founder of Metaform Systems Inc., and former director of technology at BEA ( M.Phil from Oxford University and a Ph.D. from Johns Hopkins University) along with co-author and BEA director of technology counterpart Mike Rowley (Ph.D. in Computer Science from UCLA), and now CTO of ActiveEndpoints. From that work, performed in partnership with IBM, Marino and Rowley brought SCA forward to the open source community as a next generation alternative to J2EE, publishing initial specifications in 2005. Today, SCA project members include IBM, Oracle (acquired BEA in 2008), Red Hat, SAP, and TIBCO among many others. With SCA now in the hands of the broader market, Marino went on to co-found Fabric3, an open source runtime implementation of of SCA.
In 2008 Jim Marino left BEA to found Metaform Systems, to further develop a commercial product offering around Fabric3, which remains in development today.
The Challenge – A Lightweight Transaction Model Suited to SCA and the Cloud
Transactions in SOA environments provide their own set of challenges. Managing long transactions across a series of loosely coupled components is difficult, and can impact data integrity and roll back ability. Past SOA models did not effectively address transactions, leaving implementation of transactions in SOA environments completely up to the architect. SCA takes a different and more prescriptive approach, and specifically cites transaction support within its list of requirements. SCA incorporates transaction knowledge within its framework, allowing transactions to reliably occur across various discrete components – even when the components themselves have no transaction knowledge.
“SCA mandates certain ways to express reliability in your application and to satisfy that requirement; we needed a transaction manager in order to implement reliability guarantees. One option available to us was to run our run-time environment on an application server, such as Websphere or JBOSS. However much of our early customer interest is coming from Cloud-like virtualized markets, including telecommunications and financial services, and traditional application servers don’t’ lend themselves well to cloud environments. We didn’t want to force our users to install an application server, so we were looking for a more lightweight, modular, run-time application for transactions.
In his quest for a transaction manager that could deliver transaction reliability with the run-time guarantees required for his company’s product, Marino chose Atomikos, a Belgian based firm specializing in transaction management.
Atomikos as the Solution
“We were specifically seeking a lightweight transaction manager that would philosophically align with SCA and Fabric3. Many of the solutions we reviewed in the market presented implementation challenges. Often they required an application server, which presents an additional hardware and software burden to our clients. Application servers are also not well suited to virtualization or cloud environments – and companies in this area form our early client base. Additionally, many of the transaction managers we tried were a nightmare to configure – which runs counter to SCA’s lightweight approach. Finally, many of the transaction managers we reviewed did not handling provisioning well – putting limitations on our customers’ ability to rapidly scale capacity to meet spikes in demand.
Marino’s experience after downloading Atomikos’ open source transaction management solution, called Atomikos TransactionsEssentials® was the exact opposite.
“We needed a transaction solution that could satisfy the following core requirements. It needed to be easily configurable, reliable, embeddable, and occupy a small footprint – with no requirement for an application server. Atomikos checked every box. We also liked that the Atomikos technology provided Spring and Jetty integrations. It was very aligned philosophically with SCA and Fabric3.”
Implementation and Results to Date
Once downloaded, the integration of Atomikos into Metaform’s commercial offering was very quick. Says Marino, “I like to plunge in and roll up my sleeves, and the software was logical and laid out in a way that was very easy to follow and to get up and running. Atomikos TransactionsEssentials is designed as you would expect. One of the first things I do is look at the source, and it was nice, clean and well laid out - a very good first sign.”
The relationship between Atomikos and Metaform Systems is still in its early days. Marino’s customers are only beginning to build products around Fabric3, so have not yet presented a requirement for a formal transaction manager.
As Marino further investigates Atomikos technology and delves into forging a deeper relationship between the two companies, he’s keen to explore compensation with respect to SCA. Both companies are attracting interest from the financial services and telecommunication markets, as these industries explore virtualization and cloud computing, and Marino is excited about the possibilities of ‘compensating transactions in the cloud.’
About Jim Marino
Jim Marino is a Principal at Metaform Systems Ltd. Jim has been involved with SCA since its inception and is one of the leads for the open source Fabric3 SCA runtime. Prior to Metaform Systems, Jim was Director of Technology at BEA Systems, where he and Michael Rowley lead the development of SCA. Jim holds an M.Phil from Oxford University and a Ph.D. from Johns Hopkins University. Michael Rowley, Ph.D., is the CTO of Active Endpoints, Inc. He has been involved in the development of SCA from very early in its development and has contributed to 12 of the 15 SCA specifications that were published as part of the Open Service Oriented Architecture (OSOA) collaboration. He was also an original member of the Open Component Service Architecture (OpenCSA) steering committee, which is the OASIS steering committee that oversees the work of the various SCA technical committees. Before joining Active Endpoints, he was a Director of Technology at BEA Systems where, in addition to working on SCA, he also helped to develop the BPELJ extension to BPEL and was involved in the early development of BEA's event processing and service bus products. Michael received his Ph.D. in Computer Science from UCLA in 1994.
Atomikos is a market leader in transaction management for eXtreme Transaction Processing (XTP), Service Oriented Architecture (SOA) and open source environments. Atomikos’ software safeguards your critical transactions and prevents costly data loss or corruption in the event of a system failure or crash by automating the cancellation of failed business transactions.