From cooper@longshot.ds.boeing.com Wed Aug 21 17:34:11 1996 Return-Path: Received: from ida.org by csed-115.csed.ida.org (SMI-8.6/SMI-SVR4) id RAA05484; Wed, 21 Aug 1996 17:34:10 -0400 Received: from sw-eng.falls-church.va.us (ns1.sw-eng.falls-church.va.us) by ida.org (4.1/SMI-4.1) id AA18677; Wed, 21 Aug 96 17:33:52 EDT Received: from atc.boeing.com by sw-eng.falls-church.va.us (8.7.1/) id UAA25435; Wed, 21 Aug 1996 20:53:07 GMT Received: by atc.boeing.com (5.65/splinter.boeing.com) id AA11990; Wed, 21 Aug 1996 13:53:41 -0700 Received: from longshot.ds.boeing.com by splinter.boeing.com with ESMTP (1.37.109.16/16.2) id AA147010778; Wed, 21 Aug 1996 13:52:58 -0700 Received: by longshot.ds.boeing.com (SMI-8.6/SMI-SVR4) id NAA02180; Wed, 21 Aug 1996 13:54:10 -0700 Date: Wed, 21 Aug 1996 13:54:10 -0700 From: cooper@longshot.ds.boeing.com (Dan Cooper) Message-Id: <199608212054.NAA02180@longshot.ds.boeing.com> To: ASIS-technical@sw-eng.falls-church.va.us Subject: Ada, CORBA and IDL X-Sun-Charset: US-ASCII Content-Length: 2169 Status: OR FYI, Currie Colket recently wrote: > Thought you might be interested in the following. Apparently Rational > has a capability to convert an Ada 83 specification to IDL by first > converting it to the Rational ROSE Metalanguage and then making a > conversion to IDL. They are working on a capability to support Ada 95. > A prototype capability is expected in September/October with a product > released to the public in January 1997. This news sparked a series of email exchanges with Rational and other interested Boeing folks. Among the latter, an engineer who is evaluating CORBA and Ada95 shared the following experience: ----- Begin Included Message ----- > Here's a pointer to a related white paper > > http://sw-eng.falls-church.va.us/AdaIC/docs/reports/landry/landry.htm Thanks for this pointer. Rather good paper. Unfortunately the 'simple' example shown has been made too simple because it makes it look like there is no extra code to 'bind' with the CORBA service. This is NOT correct, and misleads readers of a CORBA paper. And this is the main point that makes CORBA integration not as seamless as everyone makes it out to be. It is as heavy an intrusion into the user's code as integrating to an object-oriented database. Once the correct (and specialized) code is written to get the correct object (from CORBA or OODBMS), the rest of the code is straight Ada object method calls. A server-side CORBA has much more special code to create objects and provide them as services. This is also non-standard code in OMG's sense: not as much for Ada-95 since there is only 1 implementation, but C++ has many vendor-specific ways of creating objects and providing them as services (and describing how to service them or schedule time for them to be serviced). ----- End Included Message ----- C. Daniel Cooper ==========v=================v=======================v Adv Computing Technologist | processes | All opinions are mine | 206-655-3519 | + architectures | and may not represent | Cooper@Boeing.com | = systems | those of my employer. | ===========================^=================^=======================^ From cooper@longshot.ds.boeing.com Tue Dec 17 15:20:27 1996 Return-Path: Received: from ida.org by cronus.csed.ida.org (SMI-8.6/SMI-SVR4) id PAA21403; Tue, 17 Dec 1996 15:20:27 -0500 Received: from mailgate1.boeing.com ([130.42.28.16]) by ida.org (4.1/SMI-4.1) id AA25879; Tue, 17 Dec 96 15:20:31 EST Received: from splinter.boeing.com by mailgate1.boeing.com (SMI-8.6/SMI-SVR4) id MAA13433; Tue, 17 Dec 1996 12:20:26 -0800 Received: from longshot.ds.boeing.com by splinter.boeing.com with ESMTP (1.37.109.16/16.2) id AA209493876; Tue, 17 Dec 1996 12:17:56 -0800 Received: by longshot.ds.boeing.com (SMI-8.6/SMI-SVR4) id MAA03952; Tue, 17 Dec 1996 12:20:22 -0800 Date: Tue, 17 Dec 1996 12:20:22 -0800 From: cooper@longshot.ds.boeing.com (Dan Cooper) Message-Id: <199612172020.MAA03952@longshot.ds.boeing.com> To: Roby@ida.org Subject: Issue 13 X-Sun-Charset: US-ASCII Content-Length: 5840 Status: OR Clyde: Here's some more follow-up for Issue 13: Scott Moody wrote: > > Here's a pointer to a related white paper > > > > http://sw-eng.falls-church.va.us/AdaIC/docs/reports/landry/landry.htm > > Thanks for this pointer. Rather good paper. > > Unfortunately the 'simple' example shown has been made too simple > because it makes it look like there is no extra code to 'bind' with the > CORBA service. This is NOT correct, and misleads readers of a CORBA > paper. And this is the main point that makes CORBA integration not as > seamless as everyone makes it out to be. It is as heavy an intrusion into > the user's code as integrating to an object-oriented database. Once the > correct (and specialized) code is written to get the correct object (from > CORBA or OODBMS), the rest of the code is straight Ada object method > calls. > > A server-side CORBA has much more special code to create objects and > provide them as services. This is also non-standard code in OMG's > sense: not as much for Ada-95 since there is only 1 implementation, but > C++ has many vendor-specific ways of creating objects and providing > them as services (and describing how to service them or schedule time > for them to be serviced). William Pritchett replied as follows: ----- Begin Included Message ----- Date: Thu, 22 Aug 1996 09:22:31 -0400 From: William Pritchett Subject: Ada, CORBA and IDL -Reply I was one of the authors of the paper you mentioned so I felt compelled to reply. You are very correct about the omission of a bind. Oops :-) Although the extra code you refer to is a single function call in the case of a static invocation. For example: A_Village : Village.Village_Ref := Village.Bind(":villagesrv"); Granted dynamic invocation requires a little more work. The point of the example was to demonstrate what CORBA/Ada 95 code looks like and not to present a complete example. I believe we referred readers to the original work (or at least should have. Huet Landry should have the electronic copy which we delivered to be put on DISA's web site ). I sort of disagree with your statement about CORBA being a "heavy intrusion" into the users code. Aside from binding to a server (as little as one function call) the rest of the client side code is VERY straightforward assuming a good design and well defined interface. I do agree with your observations about server side code. This can (and should be) specialized code. But clients shouldn't care about it as long as it delivers the functionality specified by the interface. That's the beauty, IMO, of CORBA. As long as the interface is stable and well defined, the server can be written in any (supported) language and using any development paradigm. Again, IMO, I think CORBA is great technology for traditional client-server systems. Further, DISA is including an ORB in a future release of the GCCS COE. They are seeing CORBA as a way to bridge the gap between OO technology and legacy C2 systems. I believe one of the recommendations is to provide an IDL interface for all of the COE APIs. In my current job (I no longer work for CACI where the work mentioned in the paper was done) we're starting to look at using CORBA in real-time embedded systems, specifically ground combat vehicles. There are a number of proposed extensions to CORBA and IDL to support real-time constraints. We'll see how that goes. But I digress. Anyway, thanks for pointing out the omission of the bind, that was an oversight. You're the only one to catch it. I assure you the original code did indeed have the bind operation. Again, if you're really interested, Huet Landry (landryh@ncr.disa.mil) has electronic copies of the original work. No longer working for CACI, I don't have the electronic copies of the work and only have my personal hardcopies, or else I'd be happy to provide them to you. As an aside, CACI is extending the original work. I believe they're trying to build a Java client (written in Ada 95 of course) that accesses a CORBA server. Lee Patton is leading that effort at CACI. His email is lpatton@std.caci.com. Hope this helped. Feel free to email me if you have additional questions/comments. Regards, Bill Pritchett DCS Corporation ----- End Included Message ----- Scott Moody replied as follows: ----- Begin Included Message ----- Date: Thu, 22 Aug 96 14:17:20 PDT From: scott@plato.ds.boeing.com (Scott Moody) Subject: Re: Ada, CORBA and IDL Thanks for the reply/rebuttal. I agree that 'heavy intrusion' into (client) user code might be a little too much, (outside of weak CORBA typing). but the entire life-cycle work amounts to a heavier intrusion. But once objects are bound, the rest of the code is straight ada. - This is very similar to language integrated OODBMS (like object-store) where once a query is performed (like binding), the objects returned are treated syntactically like the native language. Methods are then implemented as db calls, or remote calls, without the user knowing. Servers on the other hand are harder(and heavier) to build, and more intrusion of non Ada code - basically CORBA calls for creating objects, naming them, etc. Our hybrid approach (being developed) supports both a Ada-95 DSA connection as well as CORBA connections. It would be nice is to generate CORBA IDL from correct Ada-95 distributable partitions (versus just any Ada package). So using the correct pragmas (pure,remote_call_interface) and only letting an IDL support these. Thanks again with the reply. I would like more information on "DISA including an ORB in a future release of the GCCS COE", such as a time-line on when this might be. Also how thing are comming with real-time CORBA. Scott Moody Boeing Reuse Initiative scott.a.moody@boeing.com ----- End Included Message -----