home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 14 Text / 14-Text.zip / IDAPI.ZIP / IDAPI.TXT
Text File  |  1992-11-25  |  24KB  |  526 lines

  1. IDAPI⌐ Architecture
  2.  White Paper
  3. (Integrated Database Application Programming Interface)
  4.  
  5.  
  6.  
  7. November 16, 1992
  8.  
  9.  
  10.                         Table of Contents
  11.  
  12.  
  13. Executive Summary. . . . . . . . . . . . . . . . . . . . . . .iii
  14.  
  15. IDAPI Concepts and Objectives. . . . . . . . . . . . . . . . .  1
  16.      What is IDAPI?. . . . . . . . . . . . . . . . . . . . . .  1
  17.      The Need for IDAPI. . . . . . . . . . . . . . . . . . . .  2
  18.           Different Operating Systems. . . . . . . . . . . . .  2
  19.           Different Computing Models . . . . . . . . . . . . .  2
  20.           Different Data Access Models . . . . . . . . . . . .  3
  21.      IDAPI Capabilities. . . . . . . . . . . . . . . . . . . .  4
  22.      IDAPI and Other Interfaces. . . . . . . . . . . . . . . .  4
  23.           IDAPI and SQL/CLI. . . . . . . . . . . . . . . . . .  4
  24.           IDAPI and ODBC . . . . . . . . . . . . . . . . . . .  5
  25.           Summary. . . . . . . . . . . . . . . . . . . . . . .  5
  26.      IDAPI Benefits. . . . . . . . . . . . . . . . . . . . . .  6
  27.  
  28. IDAPI Architecture . . . . . . . . . . . . . . . . . . . . . .  8
  29.      Architecture. . . . . . . . . . . . . . . . . . . . . . .  8
  30.           Client Applications. . . . . . . . . . . . . . . . .  8
  31.           Application Support Layer. . . . . . . . . . . . . .  8
  32.           Engine Support Layer . . . . . . . . . . . . . . . .  8
  33.           Driver Support Layer . . . . . . . . . . . . . . . .  9
  34.           IDAPI Driver Layer . . . . . . . . . . . . . . . . .  9
  35.      Environment Configuration & Session Management. . . . . .  9
  36.      Database Capabilities . . . . . . . . . . . . . . . . . .  9
  37.      Database Operations and Data Manipulation . . . . . . . .  9
  38.      Relational and Navigational Engines . . . . . . . . . . .  9
  39.      Remote Data Access. . . . . . . . . . . . . . . . . . . . 10
  40.  
  41. IDAPI Benefits . . . . . . . . . . . . . . . . . . . . . . . . 11
  42.  
  43. Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
  44.  
  45.  
  46.                       I. Executive Summary
  47.  
  48. The Integrated Database Application Programming Interface (IDAPI)
  49. environment is being promoted by a group of computer industry
  50. leaders to advance the state-of-the-art of corporate database
  51. access.  During the rapid growth of computer technology,
  52. corporations have invested billions of dollars in the collection
  53. and maintenance of various databases.  The maximum advantage of
  54. this investment cannot be realized today because data is commonly
  55. stored in many databases and on different computational
  56. architectures, often incompatible with each other.  Full
  57. utilization of these data sources is possible only by a new data
  58. access model that will present the data to users and application
  59. developers in a consistent manner that is congruent with the
  60. desired use of the data.
  61.  
  62. IDAPI's goal is to enable developers to create database
  63. applications more productively and to allow end users to easily
  64. access data stored in multiple formats on a wide variety of
  65. hardware, operation system platforms, and network environments.
  66. Developers writing to the IDAPI specification will be able to
  67. interconnect to any database driver using IDAPI technology.  This
  68. interconnectivity will be allowed in a heterogeneous computing
  69. environment, allowing an application to access multiple databases
  70. despite the underlying access method or computing architecture.
  71. This includes application access to databases that are
  72. distributed over multiple server architectures.
  73.  
  74. Applications using IDAPI will provide users with access to a far
  75. broader range of data than previously possible because these
  76. applications will be written to a consistent, platform
  77. independent Application Programming Interface (API).  The user
  78. wins because data is available despite the location or format.
  79. Developers win because their applications are able to access a
  80. wide variety of data at a much lower cost.
  81.  
  82.                 II. IDAPI Concepts and Objectives
  83.  
  84.  
  85. A. What is IDAPI?
  86.  
  87. Driven by competitive business pressures, companies increasingly
  88. need to use corporate, departmental, and personal databases as a
  89. unified corporate resource.  Often, the users' environment
  90. includes a disparate collection of database applications and
  91. servers, in different locations, from different suppliers, and on
  92. different platforms.  In this fragmented and complex environment,
  93. companies need to access data transparently from any location in
  94. order to stay competitive.
  95.  
  96. Today, the most prevalent answers to this need are customized
  97. software solutions, which are unique to given combinations of
  98. applications or operating environments.  These customized
  99. solutions present an extraordinary challenge to providers of
  100. applications and databases and to their users.  Growing costs for
  101. development, training, support, and maintenance of enterprise
  102. database applications are symptoms of this unmet need.
  103.  
  104. The Integrated Database Application Programming Interface (IDAPI)
  105. technology simplifies the development environment for database
  106. products to interoperate.  IDAPI permits databases to
  107. interoperate across different operating systems, data models, and
  108. computing architectures, creating a uniform basis for
  109. communications between disparate database applications.  This
  110. benefits developers by simplifying the task of writing and
  111. maintaining multi-platform database applications.  It benefits
  112. end users by enabling them to transparently access the myriad
  113. sources of data within their enterprises.
  114.  
  115. IDAPI is being produced by a group of computer industry leaders
  116. that include Borland International, IBM, Novell, Inc., and
  117. WordPerfect Corporation.  IDAPI will be implemented on the
  118. industry's leading computing platforms, beginning with DOS, OS/2,
  119. NetWare, and Windows.  Derived from Borland's database
  120. connectivity technology, IDAPI will eliminate fundamental
  121. obstacles that have traditionally prevented developers and users
  122. from integrating dissimilar databases.
  123.  
  124.  
  125. B. The Need for IDAPI
  126.  
  127. The most fundamental obstacles to transparent data access occur
  128. when enterprises try to integrate databases that are based on
  129. different operating systems, data models, or computing
  130. architectures.  As the installed base of technology has grown and
  131. evolved, there has been increasing diversity along three
  132. dimensions.
  133.  
  134. 1. Different Operating Systems
  135. The computing environment in most modern business enterprises
  136. today includes a variety of host, desktop, and network operating
  137. system platforms.  Although there is an increasing level of
  138. connectivity between these platforms, application
  139. interoperability requires a good deal more than connected
  140. platforms.  For independent applications to be integrated,
  141. operating systems need to support the APIs that applications use
  142. for interoperability.  Structured Query Language (SQL) has been
  143. established as a standard database access language for relational
  144. databases.  Apple's Data Access Language (DAL) addresses this
  145. need for database interoperability in the Macintosh operating
  146. system environment.  Microsoft's Open Data Base Connectivity
  147. (ODBC) also begins to address this need in Windows by providing a
  148. consistent way for developers to build the required system
  149. services into their Windows applications.  Apart from these
  150. beginnings, no APIs exists today to integrate database
  151. applications.
  152.  
  153. To justify building database products that interoperate,
  154. developers need the operating systems that their customers use to
  155. support database interoperable APIs.  Developers also want the
  156. APIs and system services to be consistent between operating
  157. systems, so that code developed for one operating system can be
  158. easily modified to run elsewhere.  To date, no API has emerged
  159. that promises to meet the need for a consistent database API that
  160. spans today's leading operating systems.
  161.  
  162. 2. Different Computing Models
  163. For many applications, customers and developers are choosing
  164. client-server computing over traditional desktop or host-centric
  165. models because of it's economy, scalability, and flexibility.
  166. Database products were among the first to implement client-server
  167. architectures, and the installed base of databases today contain
  168. a rich mixture of all three models.  Each architecture has unique
  169. strengths and weakness dictating it's use, and the mixture
  170. reflects the diversity of users' database requirements.
  171.  
  172. To be effective at integrating databases in different computing
  173. environment, database interoperabilty solutions need to be
  174. flexible to take advantage of the strengths of each environment.
  175. To date, no database interoperability standard has emerged that
  176. provides this flexibility.
  177.  
  178. 3. Different Data Access Models
  179. Databases can be classified into two groups according to the
  180. underlying model used for data access.
  181.  
  182. In the navigational model, data is stored as though it were
  183. contained in a collection of records.  Individual data elements
  184. are accessed by "navigating" through the collection until the
  185. desired record is reached.  Databases running on personal
  186. computers and networks (such as Btrieve, Paradox, dBASE, and
  187. DataPerfect) have traditionally used the navigational model and
  188. represent an enormous installed base of applications and data.
  189.  
  190. Data stored according to the relational model can be thought of
  191. as residing in tables.  In this model, each data element can be
  192. described in terms of rows and columns in tables and the
  193. relationship between them.  Access to relational model data is
  194. accomplished through set-oriented languages such as SQL.  The
  195. relational model, in which SQL is the predominant access
  196. language, has prevailed among host-based databases and has been
  197. gaining as the prominent database access model.
  198.  
  199. The differences between these two classes of databases may not be
  200. apparent to the end user.  In fact, end users employ very similar
  201. types of queries and interfaces with both models, when using
  202. today's state-of-the-art database products.  Regardless of how
  203. data is presented to the user, these two types of databases
  204. provide very different APIs to developers.  The divergence
  205. between these two sets of APIs resulted from their having
  206. originated on unrelated platforms, and does not indicate any
  207. fundamental incompatibility between the two models.
  208.  
  209. The difference between the APIs used for relational and
  210. navigational databases has made it difficult for developers to
  211. access both kinds of data from a single application.  The
  212. difficulty for developers has translated into a limited set of
  213. choices for users who need their dissimilar databases to
  214. interoperate.
  215.  
  216. C. IDAPI Capabilities
  217.  
  218. ⌐    IDAPI will integrate applications that require both
  219.      relational (SQL) and record oriented access to data.
  220.      Developers will be able to freely mix both types of access
  221.      methods as needed.
  222.  
  223. ⌐    IDAPI is based on existing standards for database access and
  224.      connectivity.
  225.  
  226. ⌐    IDAPI integrates access between databases on different
  227.      computing platforms.
  228.  
  229. D. IDAPI and Other Interfaces
  230.  
  231. 1. IDAPI and SQL/CLI
  232. The SQL Access Group (SAG) is a consortium of database vendors
  233. and applications developers working together to define an
  234. interface for SQL database interoperability (called the Call
  235. Level Interface or CLI).  The goal of CLI is to provide a
  236. standard means of accessing databases supporting the SQL query
  237. language.  A CLI compliant application can access different SQL
  238. databases without code change, provided the application does not
  239. take advantage of any extensions offered by specific SQL database
  240. systems.  The specification for CLI is now being standardized by
  241. X/Open.
  242.  
  243. IDAPI will comply with the X/Open CLI (SQL/CLI) standard.  In
  244. addition, IDAPI will allow heterogeneous access and joins to
  245. navigational record-oriented databases and set-oriented SQL
  246. databases.  IDAPI will propose navigational extensions to SQL/CLI
  247. (called NAV/CLI within the IDAPI context) for consideration by
  248. various interoperability and standards committees.  Thus, IDAPI
  249. encompasses both the set-oriented model of SQL/CLI and the
  250. navigational record-oriented model databases commonly used in
  251. desktop applications.
  252.  
  253. IDAPI application interfaces will be initially defined for use by
  254. C, C++, Pascal, and COBOL with the goal of providing a standard
  255. API to access diverse formats across varying database, operating
  256. system, and computing architectures.  The environment of
  257. corporate computing systems continually presents MIS personnel
  258. and users with this mix of diverse formats.  The goal of IDAPI is
  259. to provide an API providing a single view of data throughout the
  260. corporate environment.
  261.  
  262. 2. IDAPI and ODBC
  263. ODBC is the name given to an interface supported by Microsoft to
  264. provide interoperability between Microsoft Windows applications
  265. and different database products.  Initially this interface will
  266. support function calls based on SQL/CLI, with the intent of
  267. defining the functional areas common to many database products.
  268. Applications will be required to contain code to take advantage
  269. of specific database product features as required by the
  270. applications developer.  Navigational database access is
  271. supported by ODBC as individual drivers support it.
  272.  
  273. IDAPI supports SQL/CLI and includes navigational record-oriented
  274. environments as an integral part of IDAPI technology.  X/Open
  275. SQL/CLI will be supported by IDAPI, as well as full-function
  276. access to navigational record oriented database products
  277. (NAV/CLI). These navigational extensions will greatly simplify
  278. the task of developing applications.  Operating systems support
  279. is initially planned for OS/2 2.0, NetWare, DOS, and Windows.
  280.  
  281. Whereas ODBC provides for remote database access as a function of
  282. the driver, IDAPI provides remote database access at both the
  283. driver and IDAPI server level (Requester/Responder).  With the
  284. Requester/Responder installed in a IDAPI environment, database
  285. access may be directed to a remote database via an existing
  286. electronic transport independent of driver functionality.
  287.  
  288. 3. Summary
  289.  
  290. In summary, IDAPI will offer the following advantages over other
  291. interfaces for database interoperability to both users and
  292. developers:
  293.  
  294. ⌐    Access to more data from within the same application.
  295. ⌐    Wider selection of applications to access a given source of
  296.      data.
  297. ⌐    Freer choice of computing model.
  298. ⌐    Greater scalability.
  299. ⌐    Less code redesign from platform to platform, reducing code
  300.      testing and maintenance.
  301. ⌐    More thorough investment protection and value added in more
  302.      operating systems, across more data models, and through more
  303.      computing architectures.
  304. ⌐    Integrate ODBC drivers into IDAPI thereby making all IDAPI
  305.      functionality available to ODBC drivers.
  306.  
  307. E. IDAPI Benefits
  308.  
  309. IDAPI offers the following benefits for the full range of users
  310. and software vendors for desktop and distributed systems:
  311.  
  312. End users:
  313. ⌐    Provides transparent access to data from a broad range of
  314.      sources.
  315. ⌐    Requires little to no time delay in accessing heterogeneous
  316.      data sources.
  317. ⌐    Supports multiple sessions in one application.
  318.  
  319. SQL users:
  320. ⌐    Provides X/Open SQL/CLI functionality plus extensions.
  321. ⌐    Permits data access to most widely used PC database
  322.      products.
  323. ⌐    Provides SQL/CLI access to record-oriented databases.
  324. ⌐    Provides remote data access.
  325.  
  326. Record-oriented database users:
  327. ⌐    Permits access to SQL data with minimal application change.
  328. ⌐    Provides remote data access.
  329.  
  330. In-house and independent software developers:
  331. ⌐    Assures access to multiple database products without
  332.      application code redesign.
  333. ⌐    Gives ISVs a broader market for their applications because
  334.      of the greater number of database products that can be
  335.      accessed.
  336. ⌐    Provides greater data processing capability through
  337.      implementation of query processing and cross-table mapping
  338.      and joins across different database products.
  339.  
  340. Database vendors:
  341. ⌐    Creates a broader market for their products because
  342.      applications written for other data environments will be
  343.      usable with their products.
  344. ⌐    Permits easy implementation of database drivers for the
  345.      IDAPI environment.
  346. ⌐    Enables multiple client platforms to access DBMS products.
  347. ⌐    Provides a database/platform independent API aimed at
  348.      maximum interoperability.
  349. ⌐    Supports concurrent connection to multiple databases while
  350.      preserving uniform database access semantics across
  351.      databases, platforms, and operating systems.
  352. ⌐    Supports queries spanning multiple databases.
  353. ⌐    Supports SQL/CLI and tolerates SQL dialect idiosyncracies.
  354.  
  355. Users, database vendors, application developers, and systems
  356. integrators will all benefit from an open API that enables
  357. support in many existing databases and platforms.
  358.  
  359.  
  360.                      III. IDAPI Architecture
  361.  
  362.  
  363. A. Architecture
  364.  
  365. The IDAPI architecture is depicted
  366. in Figure 1.
  367. The architecture allows
  368. implementation extensions via
  369. three methods:
  370. ⌐  Adding new drivers
  371. ⌐  Adding new relational and
  372. navigational engines
  373. ⌐  Distributing the data model via
  374. the requester/responder (this
  375. extensibility is available even if
  376. the native data model of the
  377. database does not support it).
  378.  
  379. 1. Client Applications
  380. IDAPI conforming applications can
  381. access any set of databases for which engines or drivers are
  382. available.  IDAPI provides access to all the capabilities of the
  383. underlying engine/driver.  The client application can choose to
  384. be database independent or it can have special code for specific
  385. databases.
  386.  
  387. 2. Application Support Layer
  388. The application support layer is an object-oriented
  389. implementation of the data-model access method.  It is a set of
  390. functions that manages the state and environment of a client
  391. application.
  392.  
  393. This layer initializes the environment and configuration of the
  394. client application and requests the loading of the appropriate
  395. engine/driver dynamically as demanded by the Client Application.
  396. It hides all semantics of the underlying engine/driver.  IDAPI
  397. will allow ODBC drivers to be used without modification.  Because
  398. the ODBC drivers are integrated into the IDAPI technology, all
  399. IDAPI functions and benefits are realized by ODBC drivers.
  400.  
  401. 3. Engine Support Layer
  402. The core of the IDAPI environment is the engine support layer
  403. comprised of  relational and navigational engines and
  404. requester/responders.
  405.  
  406. 4. Driver Support Layer
  407. The driver support layer provides a consistent API for
  408. interaction between IDAPI drivers and the engine support layer.
  409.  
  410. 5. IDAPI Driver Layer
  411. Drivers for many databases will be available from various
  412. manufacturers.  New drivers may be created using an IDAPI
  413. Software Development Kit (SDK) available from participating
  414. vendors.  This toolkit provides services for isolating operating
  415. system dependencies such as file I/O and memory management.  It
  416. also provides services for internationalizing and localization.
  417.  
  418. B. Environment Configuration & Session Management
  419.  
  420. IDAPI provides extensive control of both data model and session
  421. access.  Functions to configure new IDAPI drivers and access
  422. methods, configure remote data models via the
  423. requester/responder, and add additional relational and
  424. navigational engines are provided.
  425.  
  426. Session Management allows applications to interact with the
  427. session level functions required by some database environments.
  428. Functions to initiate and terminate sessions as well as data
  429. access "login" are provided.
  430.  
  431. C. Database Capabilities
  432.  
  433. The heterogeneous nature of IDAPI allows application developers
  434. to use a single API to access data in a variety of data models.
  435. Functions within IDAPI allow the application developer to declare
  436. data types, index types, access models, referential integrity,
  437. etc.  Each function is designed to provide all information
  438. necessary for full heterogeneous interaction.
  439.  
  440. D. Database Operations and Data Manipulation
  441.  
  442. Functions for the manipulation of tables, indexes, locks, search
  443. criteria, cursor management, database information access, etc.
  444. are fully supported by IDAPI.
  445.  
  446. E. Relational and Navigational Engines
  447.  
  448. IDAPI allows special drivers to be configured that will provide
  449. specialized relational and navigational query language handling.
  450. If a database model has a query method other than SQL/CLI, the
  451. method may be integrated into IDAPI by adding a relational or
  452. navigational engine to handle the query syntax and semantics.
  453. The relational or navigational engine will then use the database
  454. driver to access the information.
  455.  
  456. F. Remote Data Access
  457.  
  458. The architecture of IDAPI naturally supports remote database
  459. access.  Remote data requests are routed via the IDAPI requestor
  460. to a corresponding IDAPI responder.  The responder acts as an
  461. application by resolving the request and then returning the
  462. response set to the requestor.  The Requestor then acts as a
  463. driver returning the response set as a reply from a driver.
  464.  
  465. Several remote database architectures can be supported by IDAPI,
  466. including Distributed Relational Database Architectures (DRDA)
  467. and NetWare.
  468.  
  469.                        IV. IDAPI Benefits
  470.  
  471. ⌐    IDAPI will support an integrated method allowing data access
  472.      to both applications that require SQL/CLI based and record
  473.      oriented navigational access.  Developers will be able to
  474.      freely mix both types of access methods in a single
  475.      applications with a consistent API.
  476.  
  477. ⌐    IDAPI will allow developers to preserve the investment they
  478.      have made in database technologies such as dBASE, Paradox,
  479.      Btrieve, and DataPerfect.  It also allows developers to
  480.      access additional sources of data using existing SQL
  481.      databases.
  482.  
  483. ⌐    IDAPI is based on standards for database access and
  484.      connectivity.  For example, it provides the ability to use
  485.      standard SQL calls based on the SQL/CLI.  The IDAPI work
  486.      group is committed to working with interoperability and
  487.      standard bodies such as ANSI, X/Open, and SAG to broaden the
  488.      scope of existing database connectivity interface standards.
  489.  
  490. ⌐    IDAPI will allow integrated access between databases on
  491.      different computing platforms, a critical user requirement
  492.      in today's heterogeneous computing environment.
  493.  
  494. ⌐    IDAPI will provide support for cross database operations,
  495.      such as joins between tables and environments maintained in
  496.      two or more disparate database servers.  Because of this
  497.      support, developers will not need to write special code to
  498.      manage these types of operations.
  499.  
  500. ⌐    IDAPI is designed for network or stand-alone
  501.      implementations.  The functionality that IDAPI provides can
  502.      be implemented on the workstation client or on the network
  503.      server or enterprise server, depending on the application
  504.      and configuration.  IDAPI addresses critical network issues
  505.      such as establishing and managing connectivity between
  506.      databases.
  507.                            V. Summary
  508.  
  509. IDAPI will propel database applications to a new level of
  510. usability.  Diverse data models will be integrated into a single
  511. model by IDAPI, thus enhancing the value of existing data stores
  512. by providing access to a wide variety of applications.  The
  513. following list details the distinct advantages of using IDAPI:
  514.  
  515. ⌐    IDAPI is an open database API embracing set- and record-
  516.      oriented data models.
  517. ⌐    IDAPI will initially have C, C++, Pascal, and COBOL APIs for
  518.      maximum portability.
  519. ⌐    IDAPI communicates with different database engines, drivers,
  520.      and servers via a single API.
  521. ⌐    IDAPI supports both client-based and client-server
  522.      environments.
  523. ⌐    IDAPI supports SQL/CLI and record-oriented query methods.
  524. ⌐    IDAPI is supported by multiple database and computing
  525.      environment vendors.
  526.