Build a DB2 pureXML application in a day

An approach to iterative development

This article describes how to build a complete IBM® DB2® application in a day using an end-to-end XML architecture. The latter means that XML is used for storing, viewing, and manipulating information. The application may be shown to colleagues and customers to get feedback on the architecture, infrastructure, and user interface. Being able to develop, augment, and modify applications through short iterations promotes an agile application development approach.

Share:

Ronny Bartsch (ronny.bartsch@gmx.net), Software Developer

Author Photo: Ronny BartschRonny Bartsch is software developer and worked for the IBM Information Management Group (part of IBM software Group). He developed industry bundles and demos related to industry standards using XML and DB2 pureXML. You can reach Ronny at ronny.bartsch@gmx.net.



Susan Malaika, Senior Technical Staff Member, IBM

Susan Malaika photoSusan Malaika is a senior technical staff member in the IBM Information Management Group (part of IBM Software Group). Her specialties include XML, the Web, and databases. She has developed standards that support data for grid environments at the Global Grid Forum. In addition to working as an IBM product software developer, she has also worked as an Internet specialist, a data analyst, and an application designer and developer. She has also co-authored a book on the Web and published articles on transaction processing and XML. She is a member of the IBM Academy of Technology.



Christian Pichler, Data Server Solutions (Co-op), IBM

Christian Pichler is a co-op from the Technical University of Vienna in Austria, where he is working on his thesis for a double Master's degree in Computer Engineering and Computer Science with a focus on health care. For IBM, Christian is working on technologies for storing XML in DB2, and accessing it through Web services, feeds, and XForms. He is specializing in XML standards for health care.



11 December 2008

Also available in Chinese Russian Japanese Vietnamese

Introduction

XML is the most popular choice for exchanging data in a structured and self-describing notation. The W3C suite of XML standards describes a set of specifications that are well accepted in business, governments, science, and other industries. Because XML's direct predecessor SGML has been in use since the 1980s, there is more than 20 years of experience and tools for working with XML.

Various industries utilize XML standards for defining industry-specific formats for standardized information exchange. Furthermore, XML is a popular notation for viewing and manipulating data, for example, through XForms or Lotus Forms. XML and hybrid database systems, such as DB2 pureXML™, provide native XML storage. The latter means that XML is stored as-is without the need to split the information encoded in the elements and attributes of XML into relational tables (also known as "shredding").

Being able to utilize XML and XML-based industry formats allows the creation of applications that utilize an end-to-end XML architecture. One major advantage of end-to-end XML applications is that the same XML-based industry format or custom notation can be used for storing (see the "Data" layer in Figure 1), for exchanging (see the "Information Exchange" layer in Figure 1), and for viewing and manipulating (see the "User Interaction" layer in Figure 1) XML.

Figure 1. End-to-end XML architecture
End-to-end XML architecture

Overview

The goal of this article is to illustrate how to create a functioning application quickly by adopting an end-to-end XML architecture for a specific industry-specific exchange format. The exchange format used as a basis for the work presented is the IRS e-File 1120 format which is an exchange format defined by the United States Department of Treasury for the purpose of reporting taxes (see the Resources). The steps for creating an end-to-end XML application include:

  • Creating a DB2 pureXML database capable of storing IRS e-File 1120 XML documents natively
  • Exposing the database using the Universal Services for accessing the database through Web services
  • Creating a user interface using the XML Forms Generator (XFG) for viewing and manipulating IRS e-File 1120 XML documents

Finally, ideas are given to show how applications utilizing an end-to-end XML architecture may be augmented with additional technology to improve their functionality. Before continuing to read the article, ensure that the software listed in the Requirements section is installed and configured properly.

Requirements

For experimenting and following these instructions, the software listed below needs to be installed properly.

Caution

An update to the XML Forms Generator is planned. It is strongly recommended that you wait until the new year (2009), after the update takes place, before trying the XML Forms Generator.

  • IBM DB2 Express-C (FREE): A hybrid database system utilizing the pureXML technology to store XML data natively. For more information, refer to the Resources section of this article.
  • IBM Data Studio (Trial): The development environment offering a multitude of functionalities, such as exposing database operations as Web services. IBM Data Studio is also the environment needed to run the XFG. For more information, refer to the Resources section of this article.
  • XML Forms Generator (FREE): An Eclipse-based plugin that allows you to generate XForms based on an XML document instance and a Web service Description Language (WSDL) file. To fully utilize the plugin’s capabilities with IBM DB2 pureXML, it must be installed within IBM Data Studio. For more information, refer to the Resources section of this article.

Create the database (DB2 pureXML industry bundle) for storing XML

DB2 pureXML industry bundles contain vertical industry samples of XML documents, links to relevant XML schemas, and sample code to help database administrators, software developers, and architects in vertical industry businesses get started with DB2 9.x pureXML features. An industry bundle is typically created for one specific industry, such as an industry bundle for the Financial products Markup Language (FpML) or the IRS e-File 1120 format.

The industry bundle for the IRS e-File 1120 format is used in this article to create a database and populate the same with sample XML documents, providing the first layer to an end-to-end XML architecture (see Figure 2).

Figure 2. First layer providing native XML storage capabilities
First layer providing native XML storage capabilities

For setting up and populating the DB2 pureXML database, refer to the Set up a sample database section of "Universal Services for pureXML using Data Web Services" (developerWorks, May 2008). If a broader overview on industry bundles is needed, consult "Get started with Industry Formats and Services with pureXML" (alphaWorks, December 2006). (see the Resources section).

The populated database serves as a basis to continue with the next level of development: exposing the database through Web services.


Create the Web services (Universal Services) for exchanging XML

The Universal Services, based on the Data Web Services mechanism, are a fixed set of database operations, including insert, update, delete, and query for accessing the database through simple REST or SOAP requests, as illustrated in Figure 3.

Setting up the Universal Services is achieved through configuring and executing a command line script. Executing the script creates a Web archive (WAR) file that may be deployed to an application server, such as the WebSphere® Application Server or Apache Tomcat.

Figure 3. Second layer exposing the database through Web service operations
Second layer exposing the database through Web service operations

The configuration and installation of the Universal Services is not illustrated any further since it is already described in another, accompanying, article. Therefore, refer to the Install the Universal Services section of "Universal Services for pureXML using Data Web Services." If more information on Data Web Services is needed, refer to the Resources section.

Now it is possible to develop a User Interface (UI) accessing the database through simple Web service requests, as illustrated in the following section.


Create the forms (XFG) for viewing and manipulating XML

In the following section, XForms for viewing and manipulating data stored in the database are created, providing the third layer, namely the "User Interaction" layer, illustrated in Figure 4.

Figure 4. Third layer for viewing and manipulating information
Third layer for viewing and manipulating information

The XForms are created utilizing the XFG plugin installed as part of IBM Data Studio. Therefore, a brief introduction to the XFG plugin is provided followed by an illustration that shows how to create XForms using the XFG plugin.

Overview of the XFG

In the following section, an overview of the functionality of the XFG plugin is provided. However, the description contains relevant information for this article only. If a broader and more detailed overview on all the capabilities of XFG is needed, refer to the related series of articles "Integration between XML Forms Generator and Data Studio" found in the Resources section.

For generating fully functional XForms, the XFG plugin bases the generation process on various artifacts, which are: the WSDL file of the Web service to be used, a sample XML document, and optionally the XML schema according to the XML document.

Figure 5. Runtime artifacts used by the XFG plugin
Runtime artifacts used by the XFG plugin

To generate XForms, the XFG plugin at first analyzes the WSDL file describing all the Web service operations available through a particular Web service (see Figure 5, Number 1). After the user chooses one of the available operations, the XFG plugin analyzes the different input parameters of the operation, since for each input parameter an appropriate input field in the forms needs to be generated. The latter is simple for data types, such as integer or characters, but more complex for input parameters of type XML. The generation of the input fields for the XML data type is based on a sample XML document (see Figure 5, Number 2) and optionally also on the backing XML schema (see Figure 5, Number 3) of the XML document used. Therefore, the plugin automatically retrieves a set of sample XML document instances from the database (see Figure 5, Number 2). Out of the sample XML documents retrieved, the user may choose one sample XML document serving as a basis to generate the XForms. If a backing XML schema reference by the XML document is available in the XML Schema Repository (XSR) of DB2, the user may choose to utilize XML schema information in the XForms generation.

The description above may sound like a complex process but is, as illustrated below, a straight-forward task. Before proceeding, ensure that a workspace containing all the artifacts needed by the XFG plugin is available. It is also described in the following section.

Create and prepare the workspace in Data Studio

As mentioned above, one of the artifacts needed by the XFG plugin to generate XForms is the WSDL file describing the Web service to be used. In particular, this means that it is necessary to have a workspace available containing the WSDL of the describing Universal Services. To do so, the Universal Services are typically imported into a new or an existing workspace. Since the Universal Services are pre-configured for a particular sample database, it is also necessary to adjust the services to fit the database details used in the scenario of this article. Before continuing to read the instructions below, note that it is possible to either import and adjust the project as described below or to import a pre-configured project without the need to make any particular adjustments. The latter is recommended.

Option 1: Import original Universal Services data development project

To import and adjust the original data development project of the Universal Services, follow the instructions provided in the Modify the Universal Services section of "Universal Services for pureXML using Data Web Services" (developerWorks, May 2008).

Option 2 (recommended): Import the pre-configured Universal Services data development project

In order to use the pre-configured data development project utilizing the correct database connection details, table names, and database schema name, first locate the archive file universal_services_data_studio_project_irs1120.zip, available in the Download section of this article. To import the archive file, follow the instructions described in the Import Universal Services Data Development Project section of "Universal Services for pureXML using Data Web Services." Note that after importing the archive file, no further adjustments are required.

Use the XFG

This section illustrates how to generate XML forms for the IRS e-File 1120 message format utilizing the XFG. Generating XForms requires Data Studio to be launched using the workspace that contains the Universal Services data development project imported in the previous step. The user of XFG in Data Studio is guided through the generating XForms process by a wizard. All the steps performed through the wizard are described in more detail below.

Step 1: To launch the wizard that guides you through the process of creating XForms, navigate to the WSDL file describing Universal Services in the data project explorer of Data Studio followed by right-clicking the WSDL file. The latter causes a submenu to appear. In the submenu choose Generate XHTML/XForm to launch the wizard, as illustrated in Figure 6.

Figure 6. Launch the wizard
Launch the wizard

Step 2: As mentioned in previously, the XFG plugin utilizes a sample XML document and a WSDL file to create XForms. To retrieve sample XML documents from the database, the XFG plugin needs user credentials to access the database. Therefore, as shown in Figure 7, a valid username and password need to be provided. Furthermore, the option "Retrieve PureXML instance from Database" needs to be checked to trigger the XFG plugin to actually retrieve samples from the database. Click Next to continue.

Figure 7. Configure database access information
Configure database access information

Step 3: After the XFG analyzed the WSDL file and recognized all the operations available, the wizard allows the selection of one of the operations. Since the XForms are used to insert new information into the database, the operation named "insertXML()" is chosen, as illustrated in Figure 8. Click Next to continue.

Figure 8. Choose the Web service operation
Choose Web service operation

Step 4: Since the operation chosen in the previous step contains one input parameter of type XML, the wizard allows you to choose a sample XML document used as a basis to create appropriate input fields and controls. Retrieving sample XML documents is triggered through clicking the button located in the column "Reference Instance" (see Figure 9).

Figure 9. Choose reference sample XML document
Choose reference sample XML document

A separate window opens showing sample XML documents retrieved from the database. One of the sample XML documents needs to be chosen (see Figure 10). Click OK to proceed.

Figure 10. Choose reference sample XML document
Choose reference sample XML document

The sample XML document chosen in the previous step is now used as a basis to generate the input fields and controls for the XForms (see Figure 11). Click Next to continue.

Figure 11. Choose reference sample XML document
Choose reference sample XML document

Step 5: The XFG plugin needs an appropriate file name and location for storing the generated XForms. Therefore, either leave the default settings unmodified (see Figure 12) or choose the customized file name and location. Click Next to proceed.

Figure 12. Choose a file name and location for the XForms
Choose a file name and location for the XForms

Step 6: To generate fully functional XForms, the XFG plugin allows you to specify the endpoint of the Web service to be used. In the current scenario, the endpoint is the SOAP endpoint of the Universal Services (http://localhost:8080/UniversalServices/services/UniversalServices). To specify the custom endpoint, uncheck Use default submit target. and enter the SOAP endpoint of the Universal Services into the input field named "Use this submit target." (see Figure 13).

Figure 13. Specify the submit target to be used
Specify the submit target to be used

Step 7: Another artifact used by the XFG plugin is the XML schema associated with the XML document instance. Since an XML schema describing the structure of XML document instances allows you to define mandatory as well as optional elements and attributes, the wizard allows to choose between: generated input fields for all elements and attributes (optional as well as mandatory) or required elements and attributes only. Leave all settings unchanged and click Next to proceed (see Figure 14).

Figure 14. Choose the type of elements and attributes to be generated
Choose type of elements and attributes to be generated

Step 8: Also, the XFG plugin allows you to store the XML schema and the sample XML document used as a basis for generating the XForms. Therefore, choose a file name and location for the XML document (see Figure 15) as well as for the XML schema (see Figure 16). In each of the steps, click Next to continue.

Figure 15. Choose the file name and location for the sample XML document
Choose file name and location for the sample XML document
Figure 16. Choose the file name and location for the XML schema
Choose file name and location for the XML schema

According to the settings chosen throughout the different pages of the wizard, the XForms have been generated (see Figure 17).

Figure 17. Completely generated XForms
Completely generated XForms

Run the application

After completing all three major tasks, it is time to see the generated XForms in action. For rendering XForms properly, Mozilla Firefox is required. In addition, Mozilla Firefox needs the Mozilla XForms plugin installed. Note that not all versions of the Mozilla XForms plugin are compatible with each versions of Mozilla Firefox. The software used in the current scenario is Mozilla Firefox, Version 2.0.0.18 together with the Mozilla XForms plugin, Version 0.8.6ff2. Rendering the XForms may look similar to the XForms illustrated in Figure 18.

Figure 18. XForms rendered in Mozilla Firefox with input data entered
XForms rendered in Mozilla Firefox with input data entered

To continue, enter information into the available input fields. Note that two particular input fields, referenced as "P1" and "P2", are two input parameters of the Web service operation that were used to generate the XForms. The input parameter named "P1" is of data type integer, the other input parameter "P2" is of type character. The sample data entered to illustrate the XForms in this scenario is the number "24" for parameter "P1" and the text "data entered through XForms" for the parameter "P2." The two input fields for the parameters "P1" and "P2" are followed by a number of input fields that were created based on the attributes end elements of the sample XML document used to generate the XForms. Sample data may be entered in any of the input fields.

After entering the data needed, scroll all the way down to the end of the forms where the Submit button is located (see Figure 19).

Figure 19. Submit button to invoke the submit function of the XForms
Button Submit to invoke the submit function of the XForms

Click Submit to invoke the submit functionality of the XForms, inserting the data entered into the DB2 pureXML database through the Universal Services. Therefore, the response message from the Web service is shown (see Figure 20) indicating a successful insert into the database.

Figure 20. Response from the Web service
Response from the Web service

To ensure that the new record was inserted into the database, the test page included as part of the Universal Services may be used again. If more information on accessing the test page is needed, refer to the Test the Universal Services section of "Universal Services for pureXML using Data Web Services." The URL to access the Universal Services is typically http://localhost:8080/UniversalServices/wsdl. Note that hostname and port may change due to the local system configuration used.

On the test page, navigate to the operation getXMLDocumentByKey, and enter the identifier of the newly created record (for example, the number "24" entered in the XForms input field "P1"), and click Invoke to invoke the Web service operation.

As a result, the data previously entered into the XForms is shown, as illustrated in Figure 21.

Figure 21. Information previously entered into the XForms
Information previously entered into the XForms

Augment the application

The article has shown the ease, simplicity, and speed of creating an application utilizing an end-to-end XML architecture. The user interface and the Universal Services can then be adjusted in response to feedback. In addition, there are a number of possibilities for extending the application with additional functionality.

One possible extension is the validation of data entered into the XForms. Currently, the XForms generated through the XFG plugin may contain simple validation rules generated based on the metadata of the input parameters of the Web service operation used and based on the XML schema used as a basis to generate the XForms. However, an additional technology to validate XML content is Schematron, which may be used in combination with XForms. An example of how to incorporate Schematron validation rules into XForms can be found in the article "Apply Schematron constraints to XForms documents automatically" (developerWorks, June 2006).

Another option, most likely appropriate in a more complex application, is to offload structure and content validation to an external device, such as the IBM WebSphere DataPower SOA appliance. The latter is an XML-processing hardware offering a number of functionalities, such as XML schema validation and Schematron validation. An example scenario is to submit the data entered into the XForms to the IBM WebSphere DataPower SOA appliance which, if validation succeeds, forwards the data to the Universal Services to finally insert the data into the database. Otherwise, the data should be rejected. To see an actual example how the appliance may be used in the context of the Universal Services, refer to "WebSphere DataPower and DB2 pureXML, Part 1" (developerWorks, May 2008) and "WebSphere DataPower and DB2 pureXML, Part 2" (developerWorks, June 2008).


Conclusions

This article has shown that, with fairly small effort, it is possible to create a fully functional application utilizing an end-to-end XML architecture. Creating the application consists, as illustrated in the article, of three basic steps where each of the steps is supported through already available artifacts.

One of the major advantages of creating an application utilizing XML in all levels of the application architecture is to avoid the need to transform data from one format to another. In fact, the same format of information may be used to store information, exchange information, and view and manipulate information.

It is hoped that the article helps you to kick-start projects taking full advantage of an end-to-end XML architecture.


Download

DescriptionNameSize
Universal Services data development projectuniversal_services_data_development_project_irs1120.zip204KB

Resources

Learn

Get products and technologies

  • IBM Data Studio: Download the development environment used to develop Data Web Services, for free.
  • DB2 Express-C: Download the free version of DB2, which includes the core functionality as the other data servers, such as the pureXML technology. DB2 Express-C is free to develop, deploy, and distribute.
  • XML Forms Generator: Create functional, standards-compliant forms with a click of the mouse using this Eclipse-based tool from alphaWorks.
  • Mozilla XForms: Render your standards-compliant forms in Mozilla Firefox using this plugin.
  • FormsPlayer: Find a plug-in for Internet Explorer that renders XForms.
  • Visual XForms Designer: Check out the home page, with links to installation instructions, prerequisites, and the forum.
  • Compound XML Document Toolkit: Explore other open-standard XML markups, including Scalable Vector Graphics (SVG), MathML, VoiceXML, and Synchronized Multimedia Integration Language (SMIL).
  • Build your next development project with IBM trial software, available for download directly from developerWorks.

Discuss

Comments

developerWorks: Sign in

Required fields are indicated with an asterisk (*).


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name



The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


All information submitted is secure.

Dig deeper into Information management on developerWorks


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Information Management, XML
ArticleID=358024
ArticleTitle=Build a DB2 pureXML application in a day
publish-date=12112008