O'Reilly Open Source Convention.
Books Safari Bookshelf Conferences O'Reilly Network

Arrow Home
Arrow Registration
Arrow Speakers
Arrow Keynotes
Arrow Tutorials
Arrow Sessions
Arrow At-a-Glance
Arrow BOFs
Arrow Events
Arrow Community
Arrow Exhibitors
Arrow Sponsors
Arrow Hotel/Travel
Arrow Venue Map
Arrow See & Do
Arrow Press
Arrow Mail List

O'Reilly Open Source Convention


Looking Beyond JDBC
Satya Komatineni, Active Intellect, Inc.

Track: Java
Date: Wednesday, July 09
Time: 2:30pm - 3:15pm
Location: Eugene

Problems with explicit JDBC access from your java code
Data plays an important role in server side programming. Programmers rarely look for abstractions besides directly using JDBC for their data access. Programs that are coded using this base level abstraction have multiple issues: SQL is directly embedded in the java code. The data sources are hard coded into the java code. Connections are explicitly opened and closed by each programmer. So are Cursors and Statements are explicitly managed in the code. And lastly, the programming model is to explicitly control the transactions as well. Although EJBs can provide solutions to some of these issues but not all. Most of these issues can be resolved by introducing externalized declarative data access mechanisms based on a common set of interfaces for data access.

Raising the bar to a declaratively composable hierarchical data abstraction.
Another important innovation that I propose is the concept of a hierarchical data abstraction. In a relational abstraction, the primary unit is a row set. In a hierarchical abstraction, the primary unit is a collection of row sets that are bound by parent child relationships. The goal is to declaratively define a hierarchical data set by associating rowsets to each of the hierarchical nodes. The eventual hierarchical dataset will be obtained by executing these individual rowset adapters.

Hierarchical data sets are standardizable and better suited for multiple data streams: XML, Object, XML, Excel etc.
The advantage of hierarchical datasets (or infosets) is their suitability as data sources for page painting, web services, charts, and reports. By keeping the hierarchical data sets completely declarative it is possible to have multiple vendors support these XML based declarations (Universal Data Definition - UDDs) and thereby extending utility of database access right out of the box. In essence, a UDD will yield an InfoSet, which is then transformed to the target format. UDD will allow Java objects, SQL, Stored Procedures, EJBs or Connectors. This information level abstraction is a fitting sequel to the data level abstractions provided by JDBC and Connectors. This uniform representation of data will simplify transformational programming in JSP as well. UDD also leads the way for a declarative java middle tier that will broaden the appeal of server side to a wide variety of programmers.


  • Existing sever side java data abstractions
    • JDBC - A unified abstraction for relational databases
    • Rowsets - A unified abstraction for relational content
    • Connectors
    • JDO - Java Data Objects
  • Java middle tier is well poised to yield hierarchical data sets
    • InfoSets explained
    • Declarative access to InfoSets (UDDs)
    • Comparing InfoSets to .Nets DataSets
    • Applying InfoSets to the web platform
  • hierarchical data set (infoset) definitions
    • XML definition for this uniform InfoSet
    • Applying JSP and XSL to take advantage of InfoSets
    • Language bindings to InfoSets
    • XML Specification to retrieve an InfoSet - Universal Data Definition
  • Applying InfoSets to dramatically reduce the complexity ApplicationServers
    • Transparent Data Pipelines - AppServers seen as producers/consumers of InfoSets
    • Using InfoSets to convert B2C to SOAP based B2B applications
  • Other applications of UDD (Universal Data Definitions)
    • As a data supplier to a reporting engine such as Oracle and Crystal reports
    • As a data supplier and transformer for a charting engine such as PopCharts

Komatineni describes how he got involved with this project: "Just about the time Servlets 1.0 was released, I set out to design a data scheme to satisfy the data needs of an HTML page from any data source. The result has got refined over the last few years and led me to a formal definition of Hierarchical Data Sets that can be gathered from any data source. This has been put to use for RAD development in the J2EE space by fresh graduates and new programmers to J2EE.

"The most interesting aspect of this presentation is the idea of elevating the data abstraction layer from JDBC to a declarative hierarchical data layer. The applications of 'hierarchical data sets' are large and has the potential of transforming the data access layer. The ability to produce hierarchical data sets from 'universal data definitions' without writing any programming can pave the way for rapid development in reporting engines, charting engines, web development, middle ware development, and interoperability. I'll discuss an open source J2EE RAD tool based on these data abstractions which has the potential of bringing J2EE to a mass audience. My vision of the future is bands of high school graduates with a bit of relational training becoming IT work force.

"Attendees will learn how to write web pages that can be simultaneously delivered as HTML, XML, Text, Excel, Java objects, C# objects etc. They can liberate their programms from the details of all data access mechanisms such as: File reads/writes, JDBC, CICS etc. Learn of an architecture with MVC at its finest."

O'Reilly Home | Privacy Policy

© 2003, O'Reilly Media, Inc.