CL4 Open Access ODBC Database Server Release 1.1 Overview This document describes CL4 Open Access ODBC Server, the ODBC/OLE- DB client and ODBC server for the CL4 application development environment. Release 1.1 delivers:?? The ODBC/OLE-DB Client for Windows/NT. This allows Windows based development tools and applications to access remote CL4 databases via the CL4 ODBC Server.?? The ODBC library for Unix. This allows Unix based tools and applications to access remote CL4 databases via the CL4 ODBC Server.?? CL4 ODBC Server. This Unix server manages SQL access to CL4 databases. 1
Traditional CL4 The CL4 runtime environment is conceptually two tightly integrated parts as shown in below. The CL4 4GL engine and the CL4 database manager accessing one or more CL4 databases. This traditional CL4 environment will continue to be refined and enhanced. Each CL4 procedure is running within its own CL4 runtime. This is why CL4 is so scaleable, particularly in multi-processor environments. This architecture has been very successful for CL4 and has allowed CL4 developers and clients to rapidly develop and deploy complex applications into local and remote locations and except for purging historical records and backups, to run them virtually unattended. cl4 Runtime Manager The executes the CL4 procedure on data delivered from the integrated database manager. The database manager looks after all data access including locking and unlocking logical records and acquiring and managing pools of database pages. CL4 databases contain pages which are either data or index pages. The database manager looks after these in such a way that CL4 databases are virtually self managing. 2
CL4 for the World Wide Web CL4 has the ability to run procedures as Internet Common Gateway Interface (CGI) procedures behind a web server. Unlike other CGI solutions which fail to scale successfully, CL4 has provided impressive performance and scaleability in this environment. In a forthcoming release CL4 will also be able to act as an Extensible Markup Language (XML) based Simple Object Access Protocol (SOAP) server. Each CL4 procedure is running within its own CL4 runtime opening databases and tables only when required. CGI Interface CGI or XML Web Server cl4 Runtime HTML or XML Manager A web page or other computer process connects to a web server and invokes a CL4 procedure. Information from the web page or hyper-link is passed by the web server to CL4 through CGI or a SOAP XML envelope. The CGI or XML input is presented to CL4 procedures in a standard way. The executes the CL4 procedure on data delivered from the integrated database manager and returns either HTML or XML. The database manager looks after all data access including locking and unlocking logical records and acquiring and managing pools of database pages. CL4 databases contain pages which are either data or index pages. The database manager looks after these in such a way that CL4 databases are virtually self managing. 1
ODBC/OLE-DB Client and Server for CL4 ODBC (Open DataBase Connectivity) is a standard mechanism for accessing databases from different vendors using SQL (Structured Query Language). ODBC is a common method for tools and applications, especially PC based ones to access local databases and corporate databases over internal networks. OLE-DB is a Microsoft initiative to give SQL or SQL like access to a wide variety of information stores ranging from hierarchial, network, proprietary relational and ODBC databases to flat files, mail boxes, sound and video archives. The 1.1 Release of CL4 ODBC Server delivers an ODBC/OLE-DB PC client and an ODBC server running on the most popular UNIX platforms to provide access to CL4 databases from third party products such as:?? ad-hoc query and report generators eg Crystal Reports, Cognos Impromptu, Forest & Trees?? development tools eg Visual Basic, Visual C++, Delphi, Visual Studio and InterDev.?? 3 rd party applications such as SAP and Oracle Financials The product includes technology licensed from Automation Technology Inc. The release includes an ODBC/OLE-DB client to enable connection to the server from the 32 bit Microsoft Windows platforms; Windows95, Windows 98, Windows NT and Windows 2000. A client to allow access from the 16 bit Windows 3.1 platform is not available. The release also includes an ODBC client library for the supported UNIX platforms. The relationship between traditional CL4 and the CL4 ODBC Server implemented in a traditional client/server environment is pictured below. 2
CL4 Runtime Manager Client to CL4 Server - Local Network 3 rd Party Tool or Application ODBC/OLE-DB Interface library ODBC/OLE-DB Client 3 rd party applications issue SQL instructions on the client addressed to a CL4 data source on the server. Using an optimised transport strategy, the ODBC/OLE-DB client sends these instructions to the server and receives back the results. During this process the CL4 runtime is uninvolved. However, CL4 procedures can also be acting on the target CL4 databases. The ODBC/OLE-DB client can fire off stored procedures that are CL4 procedures that execute on the server against CL4 databases ODBC Server Interface Library The ODBC server parses, interprets, optimises and executes the SQL statements through CL4 database interface routines. The complete CL4 ODBC Server product consists of the ODBC/OLE-DB Client, the network transport layer, the ODBC Server and the Interface Library. Existing or future applications written in CL4 and accessing CL4 databases will continue to be supported on the current CL4 supported platforms. These include traditional dumb terminal based systems and the existing Internet applications built using the Common Gateway Interface (CGI). 3
Planned CL4 ODBC Client This is an ambitious project to augment traditional CL4 database access with access to other popular databases. This facility is NOT provided in Release 1.1 of the CL4 ODBC Server The CL4 ODBC Client is a significant enhancement to the CL4 4GL and to the CL4 run time engine. The aim is to provide an ODBC client interface from CL4 applications running on UNIX to the CL4 ODBC Server with native interfaces to CL4, Oracle, Informix and perhaps others on UNIX as well as to any ODBC enabled databases such as:?? CL4?? Oracle?? Sybase?? Microsoft SQL Server through an NT server acting as an ODBC middleware server. The databases themselves will be able to reside on UNIX or NT. The new CL4 will incorporate the ODBC client library for the supported UNIX platforms as an extra cost add-on. The relationship between traditional CL4, the ODBC enabled CL4, the ODBC/OLE-DB client library, the CL4 ODBC Server and other ODBC data sources implemented in a traditional client/server environment is pictured below. A major design goal is to minimise the impact on existing applications. The ideal is to be able to design and deliver an application without needing to know whether it will finally be implemented on a CL4 database or on an Oracle or Sybase database. To achieve this goal, it is likely that unless there are compelling reasons to do so, we will limit data access functionality to that already delivered by CL4 and look for potential improvements and/or enhancements at a later date. However, since CL4 was designed to operate in a hosted environment, we may need to approach some statements, such as the 'join' which tests a data entry field against possible values in a database table, in a different way to maximise performance in a client/server world. One suggested approach is to develop an additional layer between the existing CL4 runtime and the CL4 database manager that either routes the requests directly to the CL4 database manager if the data is held in a CL4 database or diverts the request to routines which convert these record oriented requests to appropriate set oriented ODBC/OLE-DB calls. In the same way, these conversion routines would manage the sets of records resulting from the ODBC/OLE-DB calls and hand them out record by record to the CL4 runtime. 4
CL4 Client/CL4 Server - Local Network CL4 Application CL4 Data Mgr CL4 Runtime Manager ODBC/OLE-DB Interface library ODBC/OLE-DB Client ODBC/OLE-DB Server CL4 applications issue requests to local CL4 databases and to attached ODBC databases through the ODBC interface library. The SQL instructions on the client are addressed to a CL4 or other ODBC data source on the server. Using an optimised transport strategy, the ODBC client sends these instructions to the server and receives back the results. As much as possible, the SQL results will appear to the CL4 runtime as if they were from local CL4 databases.. Server based CL4 procedures can also be acting on the target CL4 databases. Some of these could be stored procedures executed on the server at the client's request. Interface Library other ODBC Oracle Sybase The ODBC server parses, interprets, optimises and executes the SQL statements through CL4 database interface routines. The server supports other 3 rd party databases The complete CL4 ODBC Client and CL4 ODBC Server solution consists of CL4 on a client with the ODBC Client Interface Library, the ODBC Client library, the network transport layer, the CL4 ODBC Server and the CL4 Database Interface Library. 5