Form T137-0594 IRDSBIND.TXT Available Ada Bindings Information Resource Dictionary System (IRDS) Guest Editors: Currie Colket, Space and Naval Warfare Systems Command, Attn: Code 331-1A, CPK 5, Arlington, VA 22245-5200; 703/602-3968; fax: 703/602-6805; e-mail: colket@ajpo.sei.cmu.edu Clyde Roby, Institute for Defenses Analyses, 1801 North Beauregard Street, Alexandria, VA 22311-1772; 703/845-6666; e-mail: roby@ida.org 5.1 Description and standardization efforts The Information Resource Dictionary System (IRDS) is a series of international standards that specify a software tool that can be used to describe and potentially control an enterprise's information resources. These standards define the structure and part of the content of the data to be maintained at the Information Resource Dictionary (IRD) Definition Level, and the structure of the data to be maintained at the IRD Level. It also defines the services to be provided for maintaining and retrieving data at both levels. Standards efforts involve both the American National Standards Institute (ANSI) and the International Organization for Standardization/International Electrotechnical Commission (ISO/IEC). Important IRDS international standards include: ISO/IEC 10027: 1990; Information Technology -- Information Resource Dictionary System (IRDS) Framework. ISO/IEC 10032: 1993; Information Technology -- Reference Model of Data management. ISO/IEC 10728: 1993 (E); Information Technology -- Information Resource Dictionary System (IRDS) Services Interface. The pertinent standard for Ada bindings is the IRDS Services Interface (ISO/IEC 10728). This standard specifies a services interface to give any program full access to all IRDS services through external calls provided by the language in which the program is written. This standard defines the semantics of the interface using ISO Pascal (ISO 7185). Language bindings for other ISO standard programming languages are to be provided as annexes to ISO/IEC 10728. Current work is in process for a C Binding (Annex C) and an Ada Binding (Annex D). The IRDS Services Interface standard has sections addressing IRDS concepts, IRDS facilities, abstract data structures, services concepts, service facilities, service data structures, and service formats. The Ada binding is primarily concerned with the service data structures (data types used in the interface to IRDS) and the service formats (Ada subprogram calls to the IRDS interface). The Ada binding is syntactic, using the Pascal specification and description in ISO/IEC 10728 for the semantics. The IRDS Services Interface language binding for the Ada language is presented in the form of an Ada package specification. Equivalent Ada Types are used to build data structures. It is expected that the package body will perform the necessary transformations to convert objects of Ada types to objects of IRDS types. Since Ada types are used, separators are not required. Exceptions are used in lieu of Service Return Codes. Several IRDS sessions can proceed in parallel using Ada tasking. The IRDS Ada package specification conforms to the ISO standard for IRDS Services Interface. The package specification contains: 1. Constants defining name length limits, attribute length limits, and control identifier length limits. 2. Type definitions for data types, IRD content status classes, column data types, object names, control identifiers, and column list parameters. 3. Ada Exceptions are used for the diagnostics area in preference to Service Return codes. The invoking of any service (except Get_Diagnostics) can raise the exception called IRDS_Error. The Ada error handler would then invoke the procedure Get_Diagnostics to ascertain the problem. Get_Diagnostics cannot raise exception IRDS_Error, because this would be circular. 4. Procedures are used for specifying operational services, level-independent services, and IRD definition level specific services. Strategy for the ANSI/ISO Ada Language Binding to IRDS: In the Ada language binding to IRDS, the data names and data structures defined in the IRDS Standard have been adhered to except where the Ada language does not provide an appropriate construct. The binding defined in the package specification provides an interface to the primary Ada types. Time and date abstractions are obtained from Package Calendar. It is expected that the package body will provide the necessary transformations to IRDS types. In the Ada binding, the procedure names and their parameters have been adhered to except where the Ada language does not provide an appropriate construct. All names have been spelled out with underscores between logical words. Types as used for data structures have the explicit word "type" added to the simple name. The "Irds" prefix has been removed from all types, objects, and procedure names. The desired effect is achieved through the use of a package called "IRDS". The fully qualified name will thus include IRDS (e.g., IrdsCreateIRDDefinition becomes IRDS.Create_IRD_Definition, IrdsNameLim becomes IRDS.Name_Limit, IrdsSessId becomes IRDS.Session_Id_Type). All types end with the suffix "_Type" with the exception of the Ada predefined types of Boolean, Character, and String. This approach provides a means to improve portability between IRDS implementations. Strings are passed as an access type (a pointer) allowing unbounded lengths. A list structure is used for the Column List Parameters using access types. Access types end with the suffix "Pointer_Type." Status of the ISO/ANSI Binding The base IRDS standard is approved by ANSI (X3/H4) and is currently a recommendation to ISO's Joint Technical Committee 1, Subcommittee 21, Working Group 3 (JTC1/SC21/WG3) -- reference IRDS Services Interface ISO/IEC 10728:1993(E). The base standard will include the Ada binding specified in a separate Annex. A new standard, colloquially called "IRDS2" includes improvements to IRDS and will incorporate the Ada binding. Documentation of the ISO IRDS The ISO standard, ISO/IEC 10728:1993(E), is available from ANSI at a cost of approximately $102. There are additional charges for shipping and handling. Contact: American National Standards Institute, Attn: Customer Service Department, 11 West 42nd Street, New York, NY 10036; tel: 212/642-4900. When available, the Ada Binding will be Annex D to ISO/IEC 10728. The current Ada binding to IRDS is available in electronic form on the Internet, on the Ada Joint Program Office (AJPO) host in the ../public/irds subdirectory. Historical Work The National Bureau of Standards (now National Institute of Science and Technology -- NIST) had sponsored a committee in the 1970s to develop Federal Information Processing Standards (FIPSs) for data-dictionary systems. ANSI formed a committee in 1980 to address standardization of information resource dictionary systems. These committees merged in 1983 with the combined mission to develop a FIPS and an ANSI standard. A framework for IRDS was developed and standardized. In 1985, the ANSI standard was proposed to ISO for international standardization and was rejected. For six years the ANSI and ISO IRDS communities worked independently, until 1991 when it was agreed to harmonize their efforts. ISO/IEC 10728 is a partially harmonized standard. The IRDS community is now evolving an object-oriented standard called IRDS2. The ANSI committee responsible for IRDS is JTC1/SC21/X3H4, currently chaired by Dr. Jerry Winkler (tel: 703/425-4558). The ISO IRDS Rapporteur is Mr. David Gradwell (+44 (276) 23519). 5.2 IRDS resources available from repositories/software-reuse libraries When the Ada binding to IRDS is stabilized as a standard, it will be placed into ASSET. Until then, the current version will be available on the AJPO host. 5.2.1 The Ada Joint Program Office host computer on the Internet The following information was taken from the README file in the ../public/irds subdirectory in the Ada Joint Program Office's host computer (ajpo.sei.cmu.edu). For more information on the AJPO host, see Appendix C. Information Resource Dictionary System (IRDS) The latest version of the IRDS Services Interface is the editor's draft, dated 3 July 1992, ISO/IEC 10728: 1993 (E) for the Information Resource Dictionary System (IRDS) Services Interface, Draft International Standard. This document is an editor's draft for the purpose of review by participants in the SC21 editing committee. This draft standard defines an interface to describe and control an enterprise's information resources. IRDS interfaces to a Software Query Language (SQL) type of database using services in the form of function and procedure calls. The AJPO believes that ISO IRDS will be an important standard. A draft Ada binding to IRDS has been submitted to the ISO IRDS Rapporteur Group as a proposed Annex D to ISO/IEC 10728. It is currently a working draft. It will be recommended for adoption as Annex D at the next ISO IRDS Rapporteur Meeting in June 1993. If accepted, the Ada binding will be formally incorporated into the ISO/IEC 10728 which will then be registered as a Committee Draft. This latest draft Ada binding is available in 2 files: irds_ada.ps - Revision 2, draft Ada Binding in Postscript irds_ada.asc - Revision 2, draft Ada Binding in ASCII Both files are based on the IRDS Standard Services described in ISO/IEC 10728: 1993 (E), 3 July 1992. A copy of the latest IRDS standard can be obtained from: Mr. David JL Gradwell, Data Dictionary Systems, Limited, 16, Tekels Avenue, Camberley, Surrey, GU15 2LB, United Kingdom; tel: +44 (276) 23519, fax: +44 (276) 676670. Comments on this draft Ada binding were requested by 1 March 1993. However, they are welcome thereafter. Comments can be sent to: Mr. Currie Colket, tel: 703/602-3968, fax: 703/602-6805, e-mail: colket@ajpo.sei.cmu.edu. Ada Language Binding to the ISO IRDS (Information Resource Dictionary System) Services Interface 5.2.2 Asset Source for Software Engineering Technology (ASSET) The following information was taken from the ASSET Library Repository Catalog. For more information on ASSET, see Appendix C. Ada Language Binding to the ISO IRDS (Information Resource Dictionary System) Services Interface Order Number: ASSET_A_687 Alternate Name: ADA/IRDS BINDING Release Date: 06-NOV-92 Producer: ISO IRDS Working Group Asset Type: SOFTWARE - COMPONENT Size: 25 Kbytes, 3 Files Domains: ADA STANDARDS AND BINDINGS Keywords: ADA, INTERFACE, IRDS, SQL Distribution: Approved for public release, distribution is unlimited This is a proposed Ada language binding to the IRDS Services Interface. This Ada/IRDS binding is presented in the form of an Ada package specification. The binding defined in the package specification provides an interface to the primary Ada types. Time and date abstractions are obtained from Package Calendar. It is expected that the package body will provide the necessary transformations to SQL and IRDS types. The draft IRDS standard defines an interface to describe and control an enterprise's information resources. IRDS interfaces to a Software Query Language (SQL) type of database using services in the form of function and procedure calls. 5.3 IRDS products available from vendors The AdaIC has not identified any commercial Ada binding products for IRDS. ***** The views, opinions, and findings contained in this report are those of the author(s) and should not be construed as an official Agency position, policy, or decision, unless so designated by other official documentation. Copyright 1995. IIT Research Institute. All rights assigned to the US Government (Ada Joint Program Office). Permission to reprint this flyer, in whole or in part, is granted, provided the AdaIC is acknowledged as the source. ***** Ada Information Clearinghouse(AdaIC) PO Box 1866 Falls Church, VA 22204 Telephone: 1-800-AdaIC-11, 1-800/232-4211 or 703/681-2466 Fax: 703/681-2869 Email: adainfo@sw-eng.falls-church.va.us The AdaIC is sponsored by the Ada Joint Program Office and operated by IIT Research Institute.