SOA Framework for Data Services
What is our SOA Framework?
e-Biz Technologies SOA Framework is a Data Services tier for Service Oriented Architectures that are implemented using RDBMS & object oriented languages. It is the latest addition to our AFX Frameworks, and is currently an architectural specification that is expanding under our framework development. Architecturally it is complete, following the SOA design patterns of expert Thomas Erl.
What key features are defined by the architecture?
e-Biz Technologies SOA Framework's most important architectural subject area is related to how it uses object oriented alignment patterns to push paradigm mismatch between object oriented java and relational databases deep into the database, to a point where very few developers even perceive that there is impedance. This is the opposite of the approach used by Object Relational Mappers (ORM) like Hibernate, that raise the abstraction into the object oriented language and cause significant developer effort to map object attributes to database columns.
Other key architecture features include a scalable performance architecture based on software pipelines with massively parallel execution capability, an object concurrency and versioning dictionary, and support for single network round trip retrievals even when thousands of objects are requested of data services., and a highly specialized Object Execution Plan/SQL Query writer that can accept a canonical (XML) database query and write expert SQL to perform the underlying retrieval and object composition to be passed back to the caller.
A highly specialized Object Execution Plan Writer/SQL Query Writer capability accepts canonical (XML) database query requests and dynamically writes qualified SQL to perform the underlying data retrieval, composes the objects and returns the results.
What is the architecture of the underlying database?
At the core of this design are the ideas of Oracle experts like Tom Kite, using a normalized relational repository to store decomposed objects in a very traditional and constrainable way, while abstracting that decomposition by using DBMS objects aligned perfectly with java objects that allow fetched (DBMS objects) in result sets to be converted into true java objects with only a simple CAST type operation.
The advantages of this strategy are considerable including an economy of expression (reduced code development & maintenance), and a truly scalable performance architecture that overcomes the often poor performance of ORM tools like Hibernate that make numerous calls to the database to construct objects. The SOA Framework can retrieve one complex object or thousands of complex objects in a single network round trip. Try that with any ORM!
Can I store data in Oracle XDB instead of relational tables?
Yes. In fact the architecture abstracts the underlying storage strategy deeply in the database, allowing any data architecture to be used, and allows the database architecture to change over time without impacting perceived data services. You could design a relational repository today for performance, and in the future switch to Oracle XDB.
What is the Object Execution Plan Writer/SQL Query Writer?
SOA Data Services must be able to understand dynamic inbound requests for objects that need to be resolved into SQL queries and then executed against the database to return the objects of interest.
Our SOA Framework for Data Services accepts inbound requests in an XML canonical model that contains the logical question parameters of interest, and the kind of objects that are requested to be returned (including shallow or deep object copies).
If a well formed request is received, the Object Execution Plan Writer determines the objects involved (using the framework Object Concurrency & Versioning Dictionary), and the underlying tables comprising the objects, and writes the fundamental conjunctive SQL statement with meta tags.
The SQL Query Writer parses the actual inbound request constraints into predicates and adorns the statement, resulting in well formed executable SQL, that is then submitted to the database. The database results are "wrapped" in the compatible DBMS object type (by SQL) to align perfectly with the java object type that is expected.
Looking for SOA Framework solutions, then click here to Contact e-Biz Technologies today.
|