11-Jun-03 (Created: 11-Jun-03) | More in 'OSCON-2003'

Preparatory Seminar on Data Access Architectures (Server side architecture, Java, JDBC, Hierarchical Data Sets)

Satya Komatineni has published well over 20 articles in reputed peer journals on server sider architectures. He will be speaking at the upcoming O'Reilly Open Source Conference at Portland in July on a topic called "Moving Beyond JDBC" focussing on a data access architecture for serverside platforms.

In preparation for the talk he is looking for an opportunity to present the content at local corporations as a 1 hour lunch exchange. The talk is generic enough and focuses on architecture and is applicable both for Java and .Net.

There will be a really neat 5 minute demo exposing the architectural principles, that the developers can actually use to their advantage immediately as a collaborative knowledge sharing tool.

You can contact me at satya@activeintellect.com

Also you can find more about Satya at his AKC Profile

Title of the talk

Moving Beynod JDBC

What does the talk cover

Server side data acces architectures, Java, JDBC, Hierarchical Data Sets, XML

What are the conference details

Url of the conference. http://conferences.oreillynet.com/os2003/

Speakers page of the conference. http://conferences.oreillynet.com/pub/w/23/speakers.html

What you will get from the talk

  • A lively discussion/commentary about server side architectures
  • You don't have to travel to portland (Could be a negative to some)
  • A 5 minute demo of a knowledge sharing portal where you can author your own documents

Minimum Requirements for the talk

  • A conference room
  • A projector
  • I will bring my laptop


  • A Windows computer connected to the internet
  • Ability to show powerpoint and internet explorer
  • And I doní»t have to lug my computer with me

Outline of the complete talk

Demo an application that will demonstrate the use of hds
	. Every web page is available in multiple formats
	. The data is obtained declaratively
	. JDBC/FileAccess knowledge is hidden in reusable parts

The most widely used/essential/successful Java API: JDBC
	. Widely used
	. Back bone of server side Java success
	. Small/clean/simple/utilitarian : Very few APIs can claim this

Why move, Why Can't I use JDBC directly?
	. There are a set of applications for which a higher level of abstractions are better suited
	. SQL embedded in Java
	. Data sources are hard coded in java
	. Connections, cursors, statements are explicitly managed by programmers
	. Transactions are controlled by programmers making it difficult to compose business logic

So What alternatives have I got: Existing sever side java data abstractions
	. JDBC - A unified abstraction for relational databases
	. Rowsets - A unified abstraction for relational content
	. Connector Architectures
	. JDO - Java Data Objects
	. Container managed Entity Beans

New kid on the block: What are hierarchical data sets
	. What is a hierarchical data set: An XML definition
	. Applying JSP and XSL to take advantage of hierarchical data sets
	. Language bindings to hierarchical data sets
	. XML Specification to retrieve a hierarchical data sets

How are Hierarchical data sets produced: Universal Data Definition (UDD)
	. A pre-designed set of relational adapters
	. A declarative mechanism for invoking the relational adapters
	. Configuration entries to compose a series of relational adapters into a hierarchical dataset
	. An example of such a data definition

How do you consume Hierarchical Data Sets
	. You can get them programmatically via a Java API
	. You can get them via a website served by Tomcat
	. You can reap the data in any format

Hierarchical data set formats
	. Classic-XML
	. Object-XML
	. Text
	. Excel
	. C#
	. VB
	. Action Script (For such things as FlashMX)

Interoperability of Hierarchical data sets
	. Can be accessed by any language
	. Can allow disparate applications to communicate together
	. Data is communicated in any format including XML
	. Language bindings can exist for type safety

Hierarchical data sets are web friendly
	. They can be obtained via the web infrastructure
	. Any front end technology can use them
	. An example is FlashMX can consume these Hierarchical Data Sets directly

Hierarchical data sets are consumer centric
	. JDBC is specific and producer centric
	. Hierarchical data sets are composed for a specific client such as a web page
	. Hence they are consumer centric
	. By additionally applying XSLT they come closest to the needs of an end consumer

Hierarchical data sets are infosets
	. Relational sets such as row sets are relational and essentially data
	. Hierarchical data sets organizes the above data in a meaningful way
	. And hence the "meaninfulness" via a parent/child relationship of data is considered "informational" and hence the name infoset

Hierarchical data sets can be efficient
	. Hierarchical data sets can stay native untile required otherwise
	. Hierarchical data sets can incorporate cursors
	. Hierarchcial data sets can be lazy loaded
	. Hierarchical data sets can be iterated either forward only or random at each node level

Hierarchical data sets are standardizable
	. Data definition for a hierarchical data sets can be standardized
	. Any language can execute these definitions to yield Hierarchical data sets
	. Once standardized such high end systems as Websites, reporting, charting can use these UDDS as if we use Stored Procs today either via programming or REST

Hierarchical data sets as the corporate middle tier
	. Hierarchical data sets are tied to a name
	. These names can be published for discovery
	. When these names are invoked via the web you will receive XML data
	. Can substitute/supplement such middle tier technologies as SessionBeans/Stored Procedures etc.

Hierarchcial data sets and REST
	. Hierarchical data sets can be tied to a URI
	. Invocation of the URL will yield an XML data set
	. The next state of a document is inherently available in the current document itself
	. Each REST URI is tied to an Object with a single method
	. Single objects are better for load balancing, transactions, interceptions in general
	. Single objects also better support migrating functionality

Hierarchical data sets are XML friendly
	. Can be retrieved as varieties of XML : classic, object etc.
	. Can be transformed using XSLT
	. Can be transformed using Java and JSP where it is difficult or unnatural for XSLT

Hierarchical data sets and SOAP
	. Hierarchical data sets can be exposed as SOAP
	. SOAP services are hence constructed declaratively

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

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

What do you mean by moving beyond JDBC?
	. Data source independence similar to rowsets
	. Externalized SQL from java
	. Data gathered declaratively using a definition as opposed to using the API
	. The final output of a data operation is hierarchical data set not relational