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 Apr 21, 2010
The vision for a new specification is to create a unified environment allowing to:
... publish, search for and retrieve a wide variety of technical documents which describe a customer's SOA environment. This includes such things as schemas, service descriptions, business process design models, policy documents and so on. ... [they] facilitate various activities across the life cycle of a SOA artifact, such as design, assembly, quality assurance, deployment, runtime operation and monitoring of SOA based applications and business processes.
The authors of the specification see the Repository as a foundation for managing services’ lifecycle and foresee its usage for design time:
- A designer uses an Integrated Development Environment (IDE) product to design and publish a service description (WSDL) and schemas for a service offering.
- The repository notifies a service developer when a WSDL used by her offering changes.
- A designer developing a business process offering searches for available services to use in defining his business process environment.
- A designer performs impact analysis based on changes in dependent components.
It can also be used for run time service invocation:
- A developer tests a design using a repository which contains the correct set of components.
- A design tester is notified when a component of interest is changed in the repository.
- An Enterprise Service Bus (ESB) performs a dynamic query of the repository to determine routing based upon meta-data associated with its SOA environment service components.
- A network manager edits and stores updated policies in the repository.
- Automated tooling performs policy enforcement based on policies of record stored in the repository.
And finally for service monitoring:
- An operations manager updates service meta-data in the repository with current information on performance and availability.
- A business manager makes decisions on what services to use based on quality of service information in the repository.
The specification defines a common data model for SOA repositories which facilitates the use of common tooling and data sharing. It provides a rich representation of the data model that supports semantic query. It is comprised of 10 documents including: The Foundation Document, The Atom Binding Document, Atom Binding Model Schema, Core Model Schema, Policy Model, Service Implementation Model Schema. SOA Model Schema, SOAP WSDL Model Schema, WSDL Model Schema and XSD Model Schema.
The specification is based on the following design principles:
- Use of existing standards where possible (e.g., XML, XML Schema, OWL, XPath2, APP (Atom Publishing Protocol), ASF (Atom Syndication Format), etc.).
- Vendor neutrality.
- Does not include governance models, but may be used by them.
- Driven by use cases.
- Data model extensibility for new data types, and support for system and user defined metadata.
- Inclusion of an XML Schema based serialization for its data model.
- Use of XPath 2 to describe its query grammar.
- Use of OWL Lite to describe its classification system grammar.
- Separation of the data model from the bindings which describe the interaction APIs clients use to interact with the repository.
The specification defines the following artifacts that can be stored in repository:
Each artifact can contain three major types of metadata:
The new repository specification is a huge leap forward from UDDI. While it introduces a lot of new techniques and approaches for repository usage, it seems to repeat some of the same shortcomings that UDDI had:
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