shia@dset.UUCP (Dan Shia) (06/28/90)
This mail was posted on 6/22. But it seems that it never reached the net. I am posting it one more time. Please ignore it if you have seen it. Dan ------- Greg, You asked for a comparison of remote operations in ISODE with other "popular" rpc systems on your 6/6/90 posting. Here is a list of our survey: 1. Non-OSI-compatible RPCs a) Sun RPC This is probably the oldest commercial RPC compiler. It does not support user defined data types very well. You need to hand-code an encoding and a decoding routine for each complex data type you define. A more serious problem is that the request PDU does NOT have an invocation identifier to differentiate one invocation from another. This prevent it from making multiple invocations of the same operation type. b) Netwise RPC Tools Netwise RPC eliminates the above encoder and decoder problem by automatically generating encoding and decoding routines. However, it is NOT ACSE/ROSE based. The only OSI standard used by Netwise is the ASN.1 Basic Encoding Rules (BER). It requires a proprietary layer on top of a variety of Transport layer protocols, including SPX, TCP/IP, NetBIOS, Named Pipes, DECnet. This layer of proprietary protocol prevents it from inter-operating with X.500, X.400, and CMIS services. It is also NOT Object-oriented. There is NO concept of grouping routines into Objects, which has been recognized as the most suitable way for distributed computing. The basic unit of distribution is a routine in Netwise RPC. c) HP/Apollo NCS 2.0 NCS is object-based, which supports the Object concept, but there is NO concept of Class and Inheritance. It uses a flat space UID for naming objects. Its NIDL compiler compiles an interface specification and generates stub routines for both the client and server. It provides a more complete distributed computing environment than Netwise RPC. It supports threads. It has a name server, called Location Broker. However, like Netwise RPC, NCS 2.0 requires a proprietary layer on top of ISO Session layer. Again this prevents it from inter-operating with X.500, X.400, and CMIS services. And finally, not all ASN.1 data types are supported. 2. OSI-based RPC a) ISODE ROSY ISO ROSE provides a super set of services provided by all above RPC protocols. It is also required by other standards such as X.400, X.500 and CMIP. It supports both asynchronous and synchronous operation invocations. It supports all ASN.1 data types. Marshall Rose has a true vision of what can be built using ISO/CCITT ROSE. He pioneered many tools to take advantage of the flexibility of ROSE and provides services similar to an RPC compiler. To summarize, ROSY is equivalent to an RPC compiler, POSY is equivalent to an ASN.1 compiler, while PEPY automatically generates encoder/decoder routines. b) Distributed Systems Generator (DSG) by Distributed Software Engineering Tools Corp. This is probably the only OSI-based RPC system Commercially available. DSG is an integrated set of tools built on top of ISODE. It provides a Transparent Operations (TOP) service which transparently maps remote operations on top of ACSE/ROSE (both full ISODE and LPP), while using other more efficient ways for local invocations. TOP is fully integrated with a Threads library so that ISODE can be used in a multi-thread environment. There is an Abstract C (AC) compiler. It extends the C language to support full ASN.1 data types. Any ASN.1 data, including unbounded arrays, can be manipulated as easily as other ordinary C data types. An ASN.1 data type can also be defined using the familiar C syntax. For users who are NOT proficient in ASN.1 notation, this reduces a great deal of the learning effort. A typical ASN.1 compiler requires the user to write code using pointers of pointers of pointers to access unbounded array elements. This has been a tedious and error-prone task. AC eliminates this problem. DSG supports distributed and concurrent objects in a heterogeneous environment. It is fully compatible with the Object Management Architecture (OMA) recently published by Object Management Group (OMG). DSG is Object-oriented. It supports Objects, Classes and Multiple Inheritance. DSG can generate code to support Structured Finite State Machines (SFSM) in an Object-oriented environment. I have a more detailed list of comparisons for anyone who may be interested. Dan Shia UUCP: uunet!dset!shia DSET Corp. INTERNET: dset!shia@uunet.UU.NET 182-S Old Driftway Lane Tel: (201) 832-6533 Lebanon, NJ 08833 Fax: (201) 832-6523
tebbutt@RHINO.NCSL.NIST.GOV (John Tebbutt) (06/29/90)
>b) Distributed Systems Generator (DSG) > by Distributed Software Engineering Tools Corp. > >Dan Shia UUCP: uunet!dset!shia >DSET Corp. INTERNET: dset!shia@uunet.UU.NET >182-S Old Driftway Lane Tel: (201) 832-6533 >Lebanon, NJ 08833 Fax: (201) 832-6523 > Thanks for the impartial and purely informational plug, Dan. JT ;^)