Wizard API updated!
Tim Boudreau has released a new version of the Swing Wizard library (version 0.997) that fixes the WizardException bug reported in JavaWorld's recent Open Source Java Project profile. The article's examples have been reworked to test out the new, improved WizardException. Thanks, Tim, for this helpful fix!
Open Source Java Projects: The Wizard API

Newsletter sign-up

Sign up for our technology specific newsletters.

Enterprise Java
View all newsletters

Email Address:

Use XML databases to empower Java Web services

Integrate a native XML operational data store into your enterprise application

With Web services now becoming a viable technology, enterprises are beginning to see real return on investment from this technology. Web services represent a less invasive, less costly, and loosely-coupled approach to integrating heterogeneous, distributed applications and processes. Web services and service-oriented architectures (SOAs) address the integration of business processes and applications; therefore, it becomes necessary to understand how Web services interact with the data layer.

At the heart of any software architecture resides information, or data as we know it, that can span multiple locations, applications, and usage scenarios. If this data can be represented in a pervasive and standards-based manner, it becomes that much easier to enable the flow of this information throughout an enterprise and also across trading partners.

We believe XML databases provide a schema-agnostic and ubiquitous representation of information and can enable enterprise information integration (EII). By the end of this article, you will have enough information to deduce that XML databases combined with Web services enable the flow of information across loosely-coupled applications, resulting in a more responsive architecture and compelling return on investment.

Before we move on to specific examples, you will need to understand what a native XML database (NXD) is all about.

What is a native XML database?

Native XML databases are designed especially for storing XML documents. Like other databases, their basic supported features include transactions, security, multiuser access, programmatic APIs, query languages, and so on. NXDs differ from other databases in that their internal data models are based on XML only.

NXDs are most useful for storing document-centric data because they preserve document order, processing instructions, comments, CDATA sections, and entity usage, while XML-enabled databases do not. Furthermore, NXDs support XML query languages, allowing you to pose requests like, "Get me all documents in which the third paragraph after the start of the section contains a bold word." Such queries are clearly difficult to ask in a language like SQL.

In addition, NXDs prove useful for storing documents with a natural format of XML, regardless of what those documents contain. For example, consider XML messages in an SOA environment. Although these documents are probably data-centric, their natural format as messages is XML. Thus, when they are stored in a message queue, it makes more sense to use a message queue built on a native XML database than a non-XML database. The NXD offers XML-specific capabilities, such as XML query languages, and usually retrieves whole messages faster. Another example of this usage is a Web or enterprise data cache.

Uses for a native XML database include:

  • Enabling EII
  • Providing a unified master data-access layer across the enterprise
  • Validating, persisting, querying, and repurposing XML
  • Becoming XML-standards compliant
  • Aggregating content from a variety of systems (Java Database Connectivity (JDBC), HTTP, filesystem, Web services)
  • Serving as an enterprise data cache and operational datastore to improve data-access response times and relieve burden on backend systems
  • Supporting an enterprise data bus solution


Native XML database features may include:

  • Internal identity management systems and integration with external identity management systems like LDAP (lightweight directory access protocol)
  • Seamless, schema-independent persistence/caching of Java Web service messages, XML, SOAP, and WSDL (Web Services Description Language)
  • Built-in support for security standards such as Security Assertion Markup Language (SAML), Web Services Security (WSS), and XML Encryption
  • Built-in support for workflow management based on Business Process Execution Language (BPEL)
  • Built-in support for ebXML Registry functionality
  • Seamless persistence of unstructured content
  • Robust and lightning-fast querying by an engine with "pure-play" XQuery implementation, where, instead of mapping XQuery to another query language, it is used directly against a database designed from the ground up for XQuery
  • Interactive and intuitive graphical environment
  • Intelligent tools to repurpose the data (using XSLT (Extensible Stylesheet Language Transformations) and XQuery)
  • Seamless integration with external JDBC sources with ability to read, query, insert, update, and delete all within an XA-compliant transaction
  • Seamless integration with HTTP and SOAP sources
  • Transactions with all available datasources using XQuery
  • Standards compliance by enforcing schema validation and data aggregation mapped to a required schema
  • A single source of identity management and authorization
  • Backup, restore, and replicate capabilities

Figure 1 illustrates an NXD server's components.

Figure 1. Components of an NXD server. Click on thumbnail to view full-sized image.

Two primary uses of an XML database are to enable EII or provide a midtier operational datastore (ODS) platform.

Enterprise information integration

XML databases enable EII by providing a platform for querying across heterogeneous datasources, resulting in one 360-degree view of all common entities spread across enterprise systems or services. EII provides huge benefits to business users. For example, imagine a doctor-patient encounter and a system where a doctor can enter a patient chart number, name, or other form of identification and obtain information on that patient's history of illnesses, allergies, medications (current and past), X-rays, past surgeries, and doctor summary reports, all in one screen, irrespective of the originating datasources.

Operational datastore

A midtier ODS can provide the necessary infrastructure for managing enterprise data and bringing it closer to the consuming business application, while simultaneously reducing the burden on backend systems of record. XML databases are an ideal technology to serve as an ODS because of their ability to maintain schemas and to bind heterogeneous datasources. Furthermore, XML databases' support for XA-compliant transactions make them an ideal ODS and EII technology that enables both read and write capabilities across heterogeneous systems.

1 | 2 | 3 | 4 | 5 |  Next >

Discuss

Start a new discussion or jump into one of the threads below:

Subject Replies Last post
. Use XML databases to empower Java Web services
By JavaWorldAdministrator
10 05/08/08 07:18 AM
by Anonymous


Resources