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 Jean-Jacques Dubray on Nov 13, 2007
Data Services are increasingly generating interest in Service Oriented Architectures, whether it is for Master Data Management (MDM), Customer Data Integration (CDI) or as a core SalesForce.com API.
WSO2 released last summer a Data Services Framework as part of their Web Services Application Server (WSAS) to make it easier to create data services from SQL databases.
Last week, David Webber wrote an article about the OASIS Content Assembly Mechanism (CAM) specification and its relation to data services. While most people give up on defining an XML Schema definition to validate the result of queries, CAM provides template that allow for the definition of validation data services for XML-based transactions. Dave adds:
While existing techniques using W3C XSD schema, namespaces, XSLT and other tools (such as Schematron and XMLBeans) have been in existence for some time, they provide more developer-centric and potentially brittle design options. [Traditional Schema mechanisms are] not necessarily helpful for agile information interfaces that need to respond to business context criteria.
CAM is able to define a message structure without using XML Schema. An additional feature of CAM platform is that it supplies mechanisms that facilitate service versioning and reuse. Dave explains:
Many insights can be gained by studying the well-established AWS platform that has been available now for over three years...Amazon is continually making changes to the content model, and as a result they support version requests going back several years...Amazon uses a self-service versioning approach where the version ID of the request is included in the syntax of the request itself.
The problem is compounded by the wide range of products that Amazon sells:
Each product type has different information models (broadly shown in the diagram). A query for a range of product codes will return a block of XML with varying parts. Some of these structure nuances are substantial with XML element tags appearing in different blocks of the structure and with different associated elements. Not only that, but each item has information about prices, stock levels and downstream suppliers of new and used items in addition to Amazon.com itself and the ranking of those suppliers.
Dave's article features an analysis of the context drivers for Amazon services and concludes:
Clearly when you look at W3C schema and namespace mechanisms, none of these contextual behaviors are supported. All you see is the total layout of the overall structure that could occur.
Dave then describes CAM which is using a collection of XPath statements to describe flexible and context dependent document structures. CAM shares roots with UN/CEFACT Core Component Technical Specification, but unlike CCTS, CAM is operational today. The jCAM Java open source implementation of CAM provides three distinct deployment modes for typical interactions associated with an SOA, including Web services, B2B and standalone local modes. The Eclipse editor enables local standalone use of CAM templates in support of a SOA implementation.
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