------------------------------------------------- The Ada Bindings Working Group (ABWG) met all day Monday and Tuesday, 27-28 June 1994 at the Washington Ada Symposium held in McLean, Virginia at the McLean Hilton Hotel. Mr. William Loftus (WPL Laboratories), opened the meeting with a welcome. The $100 fee charged for attending the working group sessions was discussed and it was agreed that volunteers should only be asked to pay a nominal fee, if any. Mr. Loftus reviewed the Ada Bindings WG history and mission (see slides). The mission includes: o management and technical issues o form subgroups to work on specific bindings; currently, - Common GUI subgroup (Robert Leif) - MS-Windows subgroup (Steven Case) - OMG/CORBA subgroup (Erik Worth) The ABWG mailing list is available as well as mailing lists for each subgroup (see slide). Mr. Loftus noted that there has been significant interest in the Common GUI Subgroup. Mr. Loftus is collecting bindings papers that discuss bindings technology in various areas and invited other topics to be included in this collection: o C and C++ Interfaces (Michael Griffin) o Sets of Bindings for MS-Windows Applications (Steven Case) o CORBA (Erik Worth) o Binding via Data Structures (Dan Eilers) o Generalized SAME/DL Method of Binding (Marc Graham) o Government Program Management and Bindings (Stan Levine) o Software Management and Bindings (Robert Boulton) The Ada Informaation Clearinghouse has produced "Available Ada Bindings, May 1994" and is currently available from them. There is an issue about making bindings developed for government agencies available for general distribution. Apparently, there needs to be a sign off before any product can be generally available, and officials are generally reluctant to take responsibility. Stanley Levin said he required contractors to demonstrate bindings as part of proposal evaluation. An issue about versions was briefly discussed and tabled. The issue was raised about where the documents produced by this WG should be maintained and/or published. The discussion generally revolved around the pros and cons of text versus graphics. The resolution was to keep both an ASCII and postscript version. There was some discussion about using a specification language for bindings such as H2A, which uses a specification to guide it in translating a C binding (i.e., a .H file) into an Ada binding (i.e., a .A file), hence the name H2A. This produces a thin binding that could be used as a start for a thick binding. It was mentioned that the IEEE's POSIX Ada standard (i.e. 1003.5) includes a discussion about binding issues and alternatives. In addition, it was also discussed that the ISO requested the IEEE Portable Applications Standards Committee (PASC) to produce a language independent binding to the Portable Operating Interfaces (POSIX) standard. Unfortunately, PASC has decided not to require the development of an LIS as there does not exist enough volunteer support for this activity. A brief discussion about security issues concluded with a request for Ramash Venkatraman to write a paper on security issues for bindings. A discussion about portability problems concluded that vendors should be involved in defining bindings. This should help users when they need to change compiler vendors, etc. The following issue was raised: Should bindings be government funded? Does that create a company to support a standard binding instead of making use of industry standards? Disussion about this issue then followed: o DISA is trying to get vendors to move toward standards compliance. o Can you make a business case for customers to buy an application and then buy a binding for Ada? Don't forget the cost of support. o Is there a way to get Academia involved? They have their own agendas that may not match what is needed by the other communities. Late Tuesday morning (about 11:00 AM), Subgroup Presentations began. Everyone in attendance introduced themselves. Mr. Timothy W. Buescher presented an introduction to the Common Object Request Broker Architecture (CORBA) and the Ada Language Mappings to CORBA. The technical approach includes initially using Ada83 and then building Interface Design Language (IDL) compiler outputs by hand. The OMG (CORBA) subgroup is interacting with other organizations and have a Liaison agreement with the Object Management Group. After lunch, subgroup presentations continued with Huet Landry's presentation about DISA's Ada94 Mapping to OMG IDL. DISA is involved in several standards activities such as OSF, OMG, etc. Huet Landry reviewed the history of OOT in the DoD including joining the OMG in May of 1993. CIM began an OOT Migration Study in October of 1993. DISA's support for CORBA includes: o ITSI BBS (Information Technology Standards Integrated Bulletin Board System). It usually takes less that 24 hours to get an account. o Research issues as needed. o Interact with OMG (including building an XOpen interface. Questions about the Ada94 mapping can be submitted to Bill Loftus or distributed to the ABWG-OMG electronic discussion list. Mr. Bill Whitaker introduced another issue concerning the IEEE 1226 Standard, ABBET (A Broad-Based Environment Test). He noted that the former name was ABET (Ada Based Environment for Test). ATLAS is a DoD standard language used in the automated testing of electronic equipment and for field level testing used by the military and airlines. The Ada sub-committee's purpose was to make a connection between Ada (in the factory) and the ATLAS testing language (in the field). There is now an Ada binding to ATLAS. IEEE 1226.1 and .2 are approved and published and the F22 project is using these standards. IEEE 1226.3 is the test equipment description and .4 is the instrument level commands. IEEE 1226.5 specifies the standard software services for exchange with devices (i.e., busses). It specifies the Ada binding to the 488 bus and was done by Hewlett-Packard (it is very similar to HPIB). The Plug'N'Play Consortium has entered the game; it is currently getting together with HP to update IEEE 1226.5. IEEE 1226.5 must provide a CGM (Computer Graphics Metafile) interface. Currently, there are no language interfaces. It may be worthwhile to have CALS involved. Mr. Loftus began a brainstorming session to identify bindings issues: o Getting vendors to release bindings to be maintained in the public domain. There are currently good examples to work with: OMG on one end of the spectrum and Microsoft on the other end. But endorsing commercial products can be very dangerous; we could probably endorse one if the vendor was willing to put the API in the public domain. Motif is in its infancy. There's an IEEE group formed to develop the Ada binding; David Emory of MITRE is involved. o How do we keep bindings improving and maintain them? o Do we bind to Ada83 or to Ada9X? Are there going to be multiple bindings -- for both Ada83 and Ada9X (Ada83 is for legacy systems; Ada9X is for those new developments). It may be possible to develop elegant, thin bindings in Ada9X that support software engineering. o It may be preferable to produce a guidebook on how to write bindings, taking a bottom up approach. o Mid-High level bindings should be seen differently from the low-level C binding. The upper bindings are improvements to the C Binding, and are more subject to interpretation. Extremely thin bindings may improve protability by making vendors build bindings in layers. At the bottom of a thick binding is a thin binding. The thick bindings are abstractions above the thin binding to C code. o The thin binding is more a paint-over than a binding. There are other steps, languages, etc. The thin binding could be mapped one-to-one between the C header file and Ada package specifications. Another example would be the use of Ada's 'ADDRESS and/or 'SYSTEM_ADDRESS. For Ada9X, specify a thin binding. For Ada data structures, develop a mapping of how to pass strings, etc. This thin binding would include a lot of pragmas, thus it is "thin" by definition. o Possibly an Ada Bindings Quality & Style Guide is needed. o Does anyone have a definitive guide on "interfacing"? Is CORBA such a guide? Not really. Having so many possibilities on each side of an interface makes such a general guide unlikely. o What is the Charter of the Ada Bindings WG? ABWG is a forum to present bindings and binding strategies to improve the quality of bindings throughout the Ada community. (The purpose of the WG is to exchange information among its members.) A volunteer is needed to chair a subgroup on recommended approach(es) to develop an Ada language binding -- perhaps a bindings standards document which includes criteria to develop bindings. We must specify all the issues and collect them in one place; this document can be a growing document. Writing a medium-to-thick binding is to place some design on top of something that had none, e.g., POSIX .5 has all the functionality of .1 but the two bindings don't look the same. Thin bindings to a standard should be owned by the people who own the standard. Thick interfaces should be owned by the standardization group at ANSI or ISO. o Need to stimulate binding production and acceptance. Get consensus input. o Are we only interested in interfacing/binding to C? Not necessarily. OMG is interested in multiple languages -- but it is really driven by the big players. If we write a document that addresses the C problem, we could also write another one that addresses COBOL, FORTRAN, etc. Actually, there would be a list of recommendations. Marc Graham of the SEI, after doing some research, indicated that there was no literature on the issue of interfacing bindings. Perhaps one could develop a paper describing how basic data structures of C could be mapped to Ada. o The Numerics WG produced a standard that is not defined in another language. The X interface was never owned by the producers. But in most cases, the producer of the standard owned the thin binding. One of the main things that should come out of this working group is to get coordinated Ada bindings that are used widely; the bindings that are produced must be consistent. The market actually decides which bindings are needed and which (thin versus thick) wins out. After a brief discussion about balloting procedures, the attendees decided to use an informal, e-mail procedure for balloting which follows IEEE balloting informally. Mr. Bill Beckwith (OIS, Inc.) presented a talk on FRESCO, a User Interface System (UIS). The problem with using MOTIF is it still has the MOTIF bugs. He is attempting to get universities to do graphics research (he is talking with Mike Feldman). To get on the mailing list, send a message to fresco_ada_request@ois.com. SGI was interested in binding to a C++ implementation, however CORBA is a better alternative. Mr. Victor Giddings (MITRE) presented an overview of mapping OMG's IDL to Ada9X. He pointed out that the Object Management Group (OMG) is a consortium of over 350 member companies which suggests there is already strong support for CORBA. The Interface Design Language (IDL) in the standard is implementation language independent, location transparent, and operating system independent. A mapping from IDL to Ada9X could make bindings obsolete; i.e. automatically generated from IDL. Bill Beckwith of OIS made a presentation and the overview and design philosophy. On Tuesday, the Ada Bindings Working Group broke up into its subgroups. The MS-Windows Subgroup met and discussed some of the guidelines that will be used to focus the group's activities. The subgroup decided to concentrate on the development of an Ada 9X binding to Win32, OLE, ODBc, and the WinSock APIs. The use of Ada 9X Annex support will be limited in order to support as many compilers as possible. Several individuals volunteered to work on the bindings development between now and the WAdaS meeting at TRI-Ada'94. It is our objective to have draft bindings available for distribution and review at TRI-Ada'94. It is the subgroup's intent to release the bindings as an ABWG document, relying on the user community to adopt the bindings as a standard. Should the bindings then be accepted, at WAdaS'95 the working group will consider approaching WG9 for assistance in accepting the bindings as an official standard. -------------------------------------------------