DB2 application development overview
Accessing data in a relational database (RDBMS) can be achieved through:
* End-user queries via Structured Query Language (SQL)
* Application interfaces, which hide the details of the SQL from the end user behind a graphical user interface (GUI).
The vast majority of DB2 applications today use GUIs to hide data access details from the end-user.
Application developers are required to learn a language dependent technique of accessing DB2 data. For example, Cobol programmers embed SQL statements in their applications and use preprocessors to convert the tagged SQL statements into native library calls that interact with the DB2 server. C programmers currently have a vast array of database access options available to them today, including embedded SQL, Call Level Interface (CLI), ODBC, ADO, OLE-DB, and ADO.Net.
Java(TM) programmers currently have JDBC and SQLj as a direct database interface for DB2. The JDBC(TM) interface details are defined within the language itself known as Java 2, Standard Edition, J2SE. Java 2, Enterprise Edition (J2EE) defines a set of language extensions for building distributed Java applications. You may have heard of many of these language extensions, including JavaServer Pages(TM), servlets, and Enterprise JavaBeans (EJBs), among others. These Java language extensions require some sort of application server environment and they use either JDBC or SQLj as the access interface for DB2 databases.
What is the promise of Web services?
Web services technology is essentially a new programming paradigm to aid in the development and deployment of loosely coupled applications within a company or across industries. In the past, developers tended to develop most of their applications "from the ground up." The term "code reuse" was used, but was very often not put into practice because developers tended to only trust the code that they developed. As software development has progressed as a discipline and as programming languages have also advanced, the ability to reuse application modules has greatly increased. For example, the Java language has many built-in class libraries that developers use frequently.
As applications grow, they need to be able to execute in a distributed environment. Distributed applications provide unlimited scalability and other benefits. Defining an interface for distributed applications has been a challenge over the years. Language-independent technologies such as CORBA (Common Object Request Broker Architecture) provide a complicated and powerful programming model. Other distributed technologies work well within a single language environment, such as Java RMI (Remote Method Invocation) and Microsoft's DCOM (Distributed Common Object Model).
In contrast, Web services provide a simple-to-understand interface between the provider and consumer of application resources using a Web Service Description Language (WSDL). Web services also enables the following technologies to help simplify the implementation of distributed applications:
* Application interface discovery using Universal Description, Discovery, and Integration (UDDI).
* Application interface description, again using UDDI.
* A standard message format using Simple Object Access Protocol (SOAP), which is being developed as a specification in W3C as XML Protocol.
* A standard transport protocol using HyperText Transport Protocol (HTTP).
* A standard network protocol using TCP/IP.