Ipedo Ipedo Blogs
My Photo

Main | EII Platform Performance - Part I »

The EII SOA Convergence

The convergence of EII and SOA is an interesting topic that has garnered some attention in recent times with SOA platform vendors promoting the idea of a Data Services layer as part of a service oriented architecture. For the uninitiated, EII stands for Enterprise Information Integration, a new class of Data Integration solutions that complements ETL. EII is rooted in Virtual Database technology and its accompanying disciplines like Distributed Query Processing. In a nutshell, the main purpose of an EII platform is to make a bunch of data sources look like a single database.

There are interesting parallels between SOA and EII. SOA broadly describes an architecture where loosely coupled services collaborate to implement a solution. SOA virtualizes the process space, shielding a application from details like where the services reside, how the processes are implemented, what platforms they reside etc. Technology components like UDDI for discovery, BPEL for process definition, SOAP for payload, internet standards like HTTP for transport provide a standards based foundation for SOA.

EII virtualizes the data space, shielding applications from details like the location of the data source, the data model and query mechanisms supported by the data source, protocols used to access them etc. EII platform vendors provide tools for metadata discovery and modeling the virtual database. EII’s standards foundation is made up of standard query languages like SQL and XQuery, which are used to access the virtual database through standard interfaces like ODBC, JDBC and XQJ.

So there is some conceptual harmony at an architectural level, but is there more? For some EII vendors, integration into an SOA means their product can consume web services and/or it can publish data via web services. For EII products that present a relational model for their virtual database, this means some mapping capability from XML to relational (tabular) structures and vice versa.

In the context of a Data Services Layer for an SOA, you want the EII platform to provide an abstraction (and integration) of all the data sources of interest to your services. You want your services to see a cloud of data, which can be queried using some standard language, standard interface, over standard transports. For XML Web Services, the natural data model for that data cloud will be an XML data model and the natural query language for that cloud will be XQuery.

In some cases, the results of querying a data services layer are not just meant to be passed on to another service, but are meant to be interpreted. In such cases, a developer might want to code with a more familiar interface like JDBC/ODBC and process result sets (rather than parse and process XML results). In this case, you want to see this data cloud have a relational schema and you want to query it with SQL. This is one reason the Dual Core implementation from Ipedo makes sense in these use cases. You can see your data work through your favorite colored glasses as either a bunch of relational tables and views, or as a bunch of XML trees.


EII as a data integration technology also has a major role in BI solutions. Allowing BI tools like Business Objects' WEBI and Crystal Reports seamlessly access web services is important for Operational Business Intelligence. With these EII capabilities BI tools can now report off of an instance of an SOA. Phil Wainewright has written an article at Loosely Coupled that describes how EII is bringing BI into the SOA world.

If your SOA deals with a single data source, you might not need much of a Data Services layer. JDBC as an API provides you enough of an abstraction in that case. If you need to deal with multiple data sources that are all describing different aspects of similar entities, you definitely should look into implementing a Data Services layer implemented using EII technology.