Newsgroups: comp.object,comp.answers,news.answers Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!hookup!news.join.ad.jp!news.imnet.ad.jp!usenet.seri.re.kr!news.cais.net!news.jsums.edu!gatech!newsfeed.internetmci.com!ncar!uchinews!news From: Bob Hathaway Subject: Comp.Object FAQ Version 1.0.9 (04-02) Part 3/13 X-Nntp-Posting-Host: ford.uchicago.edu Message-ID: Followup-To: comp.object Summary: Frequently Asked Questions (FAQ) List and Available Systems For Object-Oriented Technology Sender: news@midway.uchicago.edu (News Administrator) Organization: Geodesic Systems References: Date: Wed, 3 Apr 1996 04:08:54 GMT Approved: news-answers-request@MIT.Edu Lines: 1191 Xref: senator-bedfellow.mit.edu comp.object:46837 comp.answers:17912 news.answers:68444 Archive-name: object-faq/part3 Last-Modified: 04/02/96 Version: 1.0.9 Contact Person: Richard Soley (technical director) soley@omg.com FTP Sites: omg.org:pub/* omg.org:pub/NEC_DII/93-1-2.tar... *CORBA (DII) (corba.ps.Z) omg.org:pub/OMG_IDL_CFE_1.2/bin* idl.SunOS4.x, idl.Solaris2.x claude.ifi.unizh.ch:under pub/standards/spec CORBA Spec WWW: http://www.omg.org/ http://conf4.darpa.mil/corba-ada/ORBs.html http://www.acl.lanl.gov/sunrise/DistComp/Objects/corba.html http://www.cs.wustl.edu/~schmidt/corba.html http://www.dstc.edu.au/AU/research_news/omg/corba.html Headquarters: Marketing Office: 492 Old Connecticut Path 3823 Birchwood Drive Framingham, MA 01701 Boulder, CO 80304 Tel: 508-820-4300 Tel: 303-444-8129 Fax: 508-820-4303 Fax: 303-444-8172 3.8.2 OMG Summary __________________ From: soley@emerald.omg.ORG (Richard Mark Soley) Subject: OMG In answer to your general question about the OMG, here's a brief overview. Feel free to call, fax or email for more information. -- Richard Soley Vice President & Technical Director Object Management Group, Inc. and coincidentally, MIT '82, SM '85, PhD '89 (EECS) The Object Management Group (OMG) is an international software industry consortium with two primary aims: (*) promotion of the object-oriented approach to software engineering in general, and (*) development of command models and a common interface for the development and use of large-scale distributed applications (open distributed processing) using object-oriented methodology. In late 1990 the OMG published its Object Management Architecture (OMA) Guide document. This document outlines a single terminology for object-oriented languages, systems, databases and application frameworks; an abstract framework for object-oriented systems; a set of both technical and architectural goals; and an architecture (reference model) for distributed applications using object-oriented techniques. To fill out this reference model, four areas of standardization have been identified: 1) the Object Request Broker, or key communications element, for handling distribution of messages between application objects in a highly interoperable manner; 2) the Object Model, or single design-portability abstract model for communicating with OMG-conforming object-oriented systems; 3) the Object Services, which will provide the main functions for realising basic object functionality using the Object Request Broker - the logical modeling and physical storage of objects; and 4) the Common Facilities will comprise facilities which are useful in many application domains and which will be made available through OMA compliant class interfaces. The OMG adoption cycle includes Requests for Information and Proposals, requesting detailed technical and commercial availability information from OMG members about existing products to fill particular parts of the reference model architecture. After passage by Technical and Business committees to review these responses, the OMG Board of Directors makes a final determination for technology adoption. Adopted specifications are available on a fee-free basis to members and non-members alike. In late 1991 OMG adopted its first interface technology, for the Object Request Broker portion of the reference model. This technology, adopted from a joint proposal (named "CORBA") of Hewlett-Packard, NCR Corp., HyperDesk Corp., Digital Equipment Corp., Sun Microsystems and Object Design Inc. includes both static and dynamic interfaces to an inter- application request handling software "bus." Unlike other organizations, the OMG itself does not and will not develop nor sell software of any kind. Instead, it selects and promulgates software interfaces; products which offer these interfaces continue to be developed and offered by commercial companies. In order to serve OMG membership interested in other object-oriented systems arenas besides the distributed system problem, the Group supports Special Interest Groups for discussion of possible standards in other areas. These groups at present are: 1) Object Oriented Databases; 2) OO Languages; 3) End-User Requirements; 4) Parallel Processing; 5) Analysis & Design Methodologies; 6) Smalltalk; and 7) Class Libraries. Any company, university/research institution or individual, whether end-user or vendor, can become a member of this body. Administrative details are given at the end of this paper. 3.8.3 Mail Server Access _________________________ Information via Mail Server: Send the following commands in a letter to the mail server. mail omg_server@omg.org help (how to use file server) index (return a list of all available files) get (get files returned by index) log (logs info on server) address [match] (index a directory, pattern 'match' files) size (max file size to send) list mail list docs get docs/doclist.txt get docs/91-12-1.ps CORBA spec [although it looks a little old] Recommended (from the net): mail omg_server@omg.org Subject: help index list list mail list docs get docs/doclist.txt 3.8.4 OMG Publications _______________________ Below is from omg.org:pub/CORBA > First Class (Bi-Monthly Newsletter) First Class is OMG's non-commercial bi-monthly 28-page newsletter. First Class provides current information on Object Technology developments, both technically and commercially. First Class offers an open editorial forum on numerous Object Technology topics and issues. This publication features commentaries from software industry leaders, informative user case histories, OT training information and the latest object- oriented product announcements. All OMG activities and the ongoing development of the Object Management Architecture are regularly reported. > Object Management Architecture Guide (OMA) The members of the OMG have a shared goal of developing and using integrated software systems. These systems should be built using a methodology that supports modular production of software; encourages reuse of code; allows useful integration across lines of developers, operating systems and hardware; and enhance long- range maintenance of that code. As an organization, OMG believes that the object-oriented approach to software construction best supports their goals. The OMA publication outlines the groundwork for technology response to Request for Proposals (RFP) and the adoption of specifications. > The Common Object Request Broker: Arch. and Spec. (Corba) The CORBA, as defined by the OMG's Object Request Broker (ORB), provides the mechanisms by which objects transparently make requests and receive responses. The ORB provides interoperability between applications on different machines in heterogeneous distributed environments and seamlessly interconnects multiple object systems. The Common Object Request Broker Architecture and Specification described in this published document is a self- contained response to the Request for Proposals (RFP) issued by the ORB Task Force of the OMG. > Pricing [Here's why you don't see the specifications posted to the net or available via ftp! These are from the list of literature and periodicals listed in omg.org:pub/CORBA] o I would like a one year subscription to First Class ______ for $40 U.S., ______ for $50 outside U.S. o I would like to order ______ copy(s) of the Object Management Architecture (OMA) Guide for $50 each. o I would like to order ______ copy(s) of the CORBA for $50 each. o [Combinations] Contact documents@omg.org or omg_documents@omg.org for more of the same... 3.8.5 Implementations (Brief) ______________________________ > DEC ObjectBroker Version 2.5 (Version 2.1 was ACA) Full implementation of OMG CORBA 1.1. Digital's ObjectBroker is a 100 % compliant implementation of CORBA and is available on these platforms: IBM AIX, IBM MVS(port in progress), HP-UX, Macintosh, MS-Windows 3.1, NT, OSF/1, SunOS, ULTRIX, Digital VAX/VMS, Digital OpenVMS Contact: Andrew Comas comas@nyo.dec.com (212) 856-2507 Digital Equipment Corporation. ObjectBroker 110 Spit Brook Road Nashua, New Hampshire 03062-2698 > DOME - The C++ Object Request Broker runs on VAX/VMS, Unix, PC http://www.octacon.co.uk/onyx/external/oot.co.uk Anon ftp: ftp.octacon.co.uk/external/oot/domedemo.exe; also from http. > HP ORB Plus and HP Distributed Smalltalk Full implementation of the OMG CORBA 1.1 Object Request Broker. Also DOMF. Hewlett-Packard Distributed Computing Group 19447 Pruneridge Avenue Cupertino, CA 95014-9974 (USA) Ian Fuller ian@cup.hp.com (408) 447-4722 > HyperDesk (Westborough MA) HD-DOMS, rich_fraser@hyperdesk.com Runs on SPARC, HP/UX, IBM RS-6000, Data General Aviion, MS-Windows (client API only), NetWare (planned, Novell owns part of HyperDesk). > IBM SOM (System Object Model) Available on AIX and OS/2. See Distributed Computing Monitor, March 93 for a detailed review. > ILU (free, see APPENDIX E entry 59) Object RPC compatible with OMG CORBA 1.2 spec (will compile OMG IDL and generate OMG compliant code for OMG-specified languages). parcftp.parc.xerox.com:/pub/ilu/ilu.html > IONA Technologies, Dublin Orbix, info@iona.ie First full and complete implementation of OMG's CORBA. > NCR 'Cooperative Frameworks' -- a Distributed Object Foundation (1) C++ ORB toolkit consisting of over 300 C++ classes and runtime libraries (2) CORBA 1.1 toolkit > ORBELINE - The SMART Object Request Broker - PostModern Computing Complete implementation of CORBA. Free academic; com. eval licence avail. SunOS 4.x, Solaris 2.3, and OSF/1 versions of ORBeline available; will consider making other platforms available if enough interest. See Appendix E. http://www.pomoco.com/ > ROLSCH CONSULTING (RC-ORB) Implements ORB spec, DOS/Windows 3.1, 12 user license: $99. Ref: Datamation, LOOK AHEAD Section, August 1. German Company. > SUITESOFTWARE (SuiteDOME) - an open system, standards compliance, object-oriented architecture, support for heterogeneous environments, support for Remote Data Access (RDA), Remote Procedure Calls (RPC), Message-Oriented Middleware (MOM), and Object Request Broker (ORB). > Sun DOE > Tivoli > CS Dept. University of Zurich, Switzerland. maffeis@ifi.unizh.ch The ELECTRA Toolkit (not finished) 3.8.6 Implementation Descriptions ___________________________________ The OMG also has a (Corporate) Membership list and "known CORBA supporters" list with their info package. > The ELECTRA Toolkit CS Dept. University of Zurich, Switzerland. maffeis@ifi.unizh.ch The ELECTRA Toolkit Subject: ORB Implementations Date: Tue, 4 May 1993 13:12:36 +0200 (MET DST) From: Silvano Maffeis something like an Object Broker, but it is *not* CORBA compatible (yet). Electra is a research project and not available yet. Its a toolkit for building failure resilient, distributed applications in C++. It supports object-groups, virtual synchrony, multithreading etc. Electra is based on the HORUS toolkit (which is "the new ISIS implementation" developed at Cornell, Ithaca NY.) An overview paper to electra is available from: ftp.ifi.unizh.ch: pub/techreports/electra.ps.Z > HD_DOMS HD-DOMS (HyperDesk Distributed Object Management System). A CORBA-compliant DOMS. Includes a GUI API driver for prototyping and exercising objects, a bundled object database for persistent object storage, a Kerberos-based authentication service, a location service, a set of base classes to speed development, and a test script language. Revision 1.0 has been shipping since beginning of '92. Revision 1.1 (which includes support for CORBA's static client interface) is available now, and a NetWare version is in the works. Submitted a C++ language mapping for IDL to the OMG recently. HyperDesk Corporation 2000 West Park Drive Westboro, MA 01581 (508)366-5050 > HP ORB Plus and HP Distributed Smalltalk ============================================================================ SUBJECT: HP INTRODUCES DISTRIBUTED-COMPUTING SOLUTION FOR BUILDING SCALABLE, OBJECT-ORIENTED APPLICATIONS DATE: September 27, 1993 ---------------------------------------------------------------------------- PALO ALTO, Calif.--(BUSINESS WIRE) via First! -- Hewlett-Packard Company today introduced a distributed-computing solution for building scalable, object-oriented applications. With HP ORB Plus, programmers can develop scalable, object-based applications that can be distributed throughout the enterprise. HP also introduced an enhanced version of HP Distributed Smalltalk. HP ORB Plus and HP Distributed Smalltalk are major components of HP's overall distributed-computing strategy, which is designed to give customers integrated, desktop access to enterprise-wide information and resources in distributed heterogeneous systems environments. Of all computer companies, HP believes it is best positioned to help customers take advantage of distributed computing. HP provides a wide variety of distributed-computing products, understands how to help customers adopt new technology for maximum business benefit, and offers worldwide support and training programs, ranging from analysis and design to deployment. HP ORB PLUS: CORBA AND DCE COMBINED HP ORB Plus is the only environment that combines the complete CORBA 1.1 specification from the Object Management Group with the DCE standard from the Open Software Foundation(tm) as its transport mechanism. DCE is designed to let developers write one application and then deploy it -- without modification -- on any other system that supports DCE. HP ORB Plus reduces the complexity of developing distributed applications so programmers can concentrate on the application itself without needing to know multiple operating systems, networking protocols or where application objects are stored. The DCE (Distributed Computing Environment) standard provides an integrated set of services that can be used separately or together to provide a distributed computing environment that's easy to administer. The CORBA (common-object-request-broker architecture) specification provides a standard for how objects (in applications, repositories or class libraries) make requests and receive responses across a distributed network. HP ORB PLUS DETAILS HP ORB Plus consists of several components: the Distributed Object Management Facility (DOMF), object services, developers' and administrative tools, and sample applications. HP's DOMF provides a location-transparent object-communication mechanism across heterogeneous networks by using the DCE standard. This object- enabling technology specification was jointly developed with SunSoft. By following a common specification, HP and SunSoft have made it easier for their customers to port applications between their platforms. In addition, HP is working with IBM to integrate HP's DOMF with IBM's System Object Model with extensions for distribution. This integration will eventually provide users with complete scalability, portability and interoperability of distributed applications across HP and IBM platforms. This is part of the companies' planned approach toward a standards-based, "plug-and-play" object-oriented environment. This will give developers, system administrators and end users language-neutral, enterprise-wide, heterogeneous support for building, managing and using distributed object- oriented applications. "We're so convinced of the value of object technology that we're staking our entire company on it," said Richard Tanler, president and chief executive officer of Information Advantage, Inc. "Our object-based applications for retailers provide the means to a competitive business edge. We plan to use HP ORB Plus to develop new object-based products that retailers can distribute to end users throughout headquarters, all chain stores, and warehousing and distribution operations." HP DISTRIBUTED SMALLTALK 2.0 In a related announcement, HP introduced Version 2.0 of HP Distributed Smalltalk. This toolset works with VisualWorks from ParcPlace Systems to provide programmers with a rapid development environment for creating and running distributed applications. These applications can use object databases (currently OpenODB from HP and Gemstone from Servio) as their storage mechanism to facilitate the reuse of objects. Applications built using HP Distributed Smalltalk currently run without modification on HP, Sun and IBM UNIX(R) system-based workstations. They also will run on Apple Macintosh computers and on any PC running the Windows 3.1 or Windows NT operating systems from Microsoft(R) Corp., once VisualWorks 2.0 is released (expected within two months.) New HP Distributed Smalltalk 2.0 features include the following: -- easier deployment, with the ability to run multiple HP Distributed Smalltalk-based applications on a single system; -- up to 400 percent increased performance, through quicker sending and receiving of remote messages, and reusable object libraries; -- run-time version, for full production deployment; and -- easier development, with remote object browsing so developers can find and use objects more quickly. TECHNICAL DETAILS AND AVAILABILITY HP's DOMF includes the object request broker, interface- definition- language compiler, static and dynamic invocation interface and interface repository. In addition to these OMG-specific features, most developers writing distributed, object-oriented applications require additional interfaces to use objects effectively. So developers don't need to create their own, HP has supplied several object-service interfaces for developers to use. That's why HP ORB Plus includes OMG interfaces and implementations for properties, life cycle, associations, event notification and naming. HP's limited release of HP ORB Plus to key developers is designed so that customer input can be incorporated into the product early in its development cycle. The initial version will work with the C++ programming language. For the generally available Developer's Kit, C++, C and Smalltalk interoperability is planned so objects written in different languages can be combined into one application. The Developer's Kit is scheduled to be available mid- 1994; prices will be announced then. HP ORB Plus runs on the HP Apollo 9000 Series 700 workstations and HP 9000 Series 800 business servers. Hewlett-Packard Company is an international manufacturer of measurement and computation products and systems recognized for excellence in quality and support. The company's products and services are used in industry, business, engineering, science, medicine and education in approximately 110 countries. HP has 94,900 employees and had revenue of $16.4 billion in its 1992 fiscal year. EDITORIAL CONTACTS: Hewlett-Packard Company Lynne Hanson, 408/447-1415, Cupertino, Calif. Jill Kramer, 408/447-4275, Cupertino, Calif. ================== For more information about HP ORB Plus, contact Kathy Litch (litch_k@apollo.hp.com). For more information about HP Distributed SmallTalk, contact Jerry Boortz (jerry_boortz@hp4000.desk.hp.com). > Iris RDOM From: rcbc@cs.cornell.edu (Robert Cooper) Subject: Re: DCE vs. CORBA Reply-To: rcbc@isis.com Product: Isis Reliable Distributed Object Manager(tm) (RDOM) Company: Isis Distributed Systems, Inc., Ithaca NY, USA. Isis RDOM(tm) is a fault tolerant distributed ORB platform for reliable multi-lingual object-oriented applications. RDOM provides an "object group" paradigm for constructing complex applications out of collections of cooperating objects. RDOM is built on top of the Isis Distributed Toolkit(tm). RDOM provides interfaces from Smalltalk (Parcplace), Objective-C, and C++, and runs on most Unix workstations. RDOM is currently not CORBA compliant, but will be brought to compliance during 3Q93. Status: RDOM has been at beta test sites since January. General release of the Smalltalk and Objective-C language interfaces is expected in June. The C++ interface in August. Customers include AMD, Consilium and Swiss Bank Corp). > Object-Oriented Technologies DOME Product: DOME - Distributed Object Management Environment Company: Enquiries: info@oot.co.uk Object Oriented Technologies Ltd, 1st Floor, Lawrence House, 1A Morrell St, Leamington Spa, England CV32 5SZ Telephone: +44 (0) 1926 833488 Fax: +44 (0) 1926 883370. Short Description: DOME provides heterogenous distribution across many platforms and networks, including: UNIX, Windows, Windows NT, OS/2, OSF/1 (AXP), OpenVMS, SunOs, Solaris, HP-UX, SGI Unix, Stratus FTX, TCP/IP, NetBIOS, XTI As a fully peer-to-peer product DOME can be used to build systems using any combination of the above. Long Description: DOME is an ORB toolkit for the production of user-configured ORBs and servers. It is a multi-threaded high performance ORB suitable for use in large scale commercial systems and embedded real-time systems. DOME is non-intrusive, meaning that the application development is separated from the means of distribution and the problem of distributed object management; this allows the application to be built and tested on a single machine using local resources. Existing software can also be incorporated easily, providing integration for legacy systems. DOME is constructed as a C++ class library, from which ORBs can be configured and constructed to best suit the runtime environment. This provides great flexibility since new classes can be derived from existing ones and the resulting configurations implemented to user-specific requirements. Database distribution can be as simple persistent files, RDBMSs, OODMS, or a combination of these. DOME has a CORBA-conformant interface, and is CORBA 1.0 compliant with the following divergences - additions: - full C++ binding, - integral support for GUI development, - network monitoring & analysis, - transaction management, - location broking, - enhanced security; ommissions: - dynamic invocation, which is seen as detrimental to performance and network security; however, DOME does allow stream operators to perform the same function. DOME was first released in August 1993; version 2 in May 1994. > ORBELINE - The SMART Object Request Broker ORBeline is a complete implementation of OMG's Common Object Request Broker Architecture (CORBA). ORBeline goes beyond the standard specification to provide a SMART communication framework allowing you to easily develop large distributed applications that are robust, scalable, flexible and maintainable. ORBeline incorporates PostModern's proven communication framework that links thousands of nodes. See Appendix E:65 for a complete description and anon FTP info. > Orbix Orbix Iona Technologies Ltd. 8-34 Percy Place Dublin 4 Ireland The latest release of Orbix, Version 1.2, includes an Object Loader function for the first time, as well as an upgraded Interface Repository, a new approach to filtering, and more code examples to guide programmers. Orbix was launched in June 1993 as the first full and complete implementation of the Object Management Group's (OMG's) Common Object Request Broker Architecture (CORBA) standard. With Orbix, programmers can develop distributed, object oriented applications following a consistent and straightforward, standards-based model. With Orbix Version 1.2 IONA has added the ability to dynamically load objects at runtime through its Object Loader function. This enables developers to more easily integrate Orbix applications with existing data stores be they traditional flat file databases, relational databases or object oriented databases. The improved Interface Repository is an integral part of IONA's CORBA implementation. The Interface Repository operates as a dynamic browser which is populated with all objects or services available at runtime keeping programmers informed of the functions, attributes and characteristics of objects and services. In version 1.2 IONA has also extended the whole approach to filtering of requests, and has made it easier for users to integrate Orbix with their security systems providing for improved reliability of distributed systems built using Orbix. IONA has also extensively extended the number, and scope, of code examples it ships with the product to help developers learning how to use the system. IONA released Orbix for SunSoft Solaris and SunOS at the Object World exhibition in San Francisco, Calif., June 1993. Since then it has rolled out versions of Orbix for Microsoft Windows NT, Silicon Graphics IRIX and HP/UX. IONA demonstrated a version of Orbix for Microsoft Windows 3.1 at Object World in London, England last October. Orbix for Microsoft Windows 3.1 is now in beta. In January 1994, IONA and SunSoft Inc. signed an agreement to align their implementations of CORBA. The two companies demonstrated interoperability between IONA's Orbix running on Microsoft Windows 3.1 and SunSoft's Distributed Objects Everywhere (DOE) on Solaris. In addition Orbix-TP, integration with Tuxedo for transaction processing, has just entered beta testing. Work is underway on Orbix-FT, integration with the Isis distributed system, will deliver a fault-tolerant ORB. Paul Hickey, tel: +353-1-6686522 Iona Technologies Ltd., fax: +353-1-6686573 8-34 Percy Place, email: pth@iona.ie Dublin 4 Ireland Availability ------------ The full Orbix availability and release schedule looks like: Operating System C++ Compiler Release Date ------------------------------------------------------- SunOS 4.1 SPARCompiler 2.1 NOW SunOS 4.1 SPARCompiler 3.0.2 NOW SunOS 4.1 Lucid 3.1 NOW SunOS 4.1 GNU 2.5.8 NOW Solaris 2.x SPARCompiler 3.0.2 NOW Solaris 2.x SPARCompiler 4.0 NOW Solaris 2.x GNU 2.5.7 NOW IRIX 4.0.5H Native NOW IRIX 5.x Native NOW HP-UX Native NOW Microsoft Windows NT Visual C++ NOW Microsoft Windows NT Borland NOW Microsoft Windows 3.1 Visual C++ In Beta IBM AIX C Set++ 4th Qtr OSF/1 DEC C++ 4th Qtr SCO Native 4th Qtr UnixWare Computer Innovations 4th Qtr Ultrix DEC C++ 4th Qtr Release of Orbix on OS/2 is also imminent. Documents Available from IONA ----------------------------- electronic mail server - server@iona.ie anonymous ftp file server - ftp ftp.iona.ie World Wide Web - http://www.iona.ie/ > NCR 'Cooperative Frameworks' -- a Distributed Object Foundation From: Randy Volters Subject: re-post: NCR Cooperative Frameworks (new phone no.) November 19, 1993 NCR ANNOUNCES BETA AVAILABILITY OF 'Cooperative Frameworks' -- a Distributed Object Foundation Product Background - NCR Cooperative Frameworks(TM) were first released for sale in 10/1991 as "the frameworks" part of the NCR COOPERATION(TM) product, and are based on NCR's submission to OMG. Cooperative Frameworks release 3.0 makes the product available apart from COOPERATION. Product Description - Cooperative Frameworks is a distributed object foundation for building computing applications and services on networks of heterogeneous computers. Cooperative Frameworks consists of an integrated suite of C++ class libraries that: - defines and implements a comprehensive enterprise architecture and methodology for creating distributed implementations of C++ classes over networks - allows customers to build and use object services over a network - supports TCP/IP, NetBIOS, Lan Manager NetBEUI and OSI protocols, X.25 NCR Cooperative Frameworks currently has two portable ORB toolkits (others are planned for future release) -- (1) C++ ORB toolkit consisting of over 300 C++ classes and runtime libraries (2) CORBA 1.1 toolkit Both are for: - wrapping existing databases and legacy applications for improved availability and maintainability on systems of heterogeneous computers, operating systems and networks - building next-generation, object-oriented, distributed computing applications for networks of heterogeneous computers, operating systems and network operating systems Cooperative Frameworks come with predefined object services for implementing distributed systems: - Naming - network implementation of X.500 directory provides object naming service - Logging - provides local and server based error logging - Fine-grain Data Management - class libraries are designed around fine grained objects, developers can build distributed objects as large or as small as needed - Persistence - the same object stream model for communication between internal ORB functions is used to support object persistence. Persistent objects can be files, relational or object databases - Dynamic Service Location - provides a mechanism for registering services and entities in a distributed system and invoking targeted services based on service characteristics -- rather than names - Dynamic Service Activation - provides a mechanism for object activation when method invocations are required, and deactivation when not needed - Event Service (Release 3.1) - Implements an OMG/JOSS compliant event service - Network Configuration Tools - simplifies creation of directory entries required for cross domain operation in a multiple domain heterogeneous network. NCR Cooperative Frameworks run on multiple UNIX platforms, including HP-UX, Sun Solaris, NCR 3000 UNIX and NCR StarServer UNIX SVR4; and on MS Windows 3.1. Cooperative Frameworks has been demonstrated on Novell NetWare v3.11, and was originally developed on MS OS/2 v1.x. Development environments supported include CFRONT and C++ Workbench from NCR, HP Softbench Sun SPARCworks and Borland IDE. Implementation - implementation is for client/server system architectures as a set of DLL and shared libraries Languages used for IDL mapping - IDL bindings for C, (or object services can be implemented directly in C++) Release date - Release 3.0 is available now to early developers with general availability set for December, 1993; Release 3.1 will be available to early developers 1Q 1994 with general availability set for 2Q 1994 Product interoperability - Full interoperability between NCR Cooperative Framework implementations on supported platforms is available now; interoperability with selected CORBA 1.1 ORBs and CORBA 2.0 ORBs is planned Company Name - NCR Corporation (An AT&T Company) Address -- Software Products Division-Columbia 3245 Platt Springs Road West Columbia SC 29170 Phone (803) 939-7500 FAX (803) 939-7745 Contact Name Randy Volters, Sr. Product Manager Cooperative Frameworks Email: Randy.Volters@ColumbiaSC.NCR.COM Ext. 7774 Company Description - NCR, AT&T's computer business, brings computing and communications solutions together to provide people easy access to information and to each other -- anytime, anywhere. > SUITESOFTWARE (SuiteDOME) Overview Variety may make life more interesting, but it only complicates the task of connecting employees with the information they need. In a world of heterogeneous, distributed computer systems, it's an ongoing struggle to provide easy access to data while maintaining and updating a collection of incompatible hardware platforms, operating systems, applications, databases, network protocols, and the like. To simplify the technical challenges, reduce the time and effort required, and still be able to exploit all of an organization's on-line data, information technology (IT) managers are turning to middleware - run-time system software that is layered between an application program and the operating system and that, in a distributed, heterogeneous environment, supplies the functions that would have been provided by the application's native operating system. To do this effectively, middleware must be able to interpret the differences between operating systems, network protocols, databases, and file systems; access and distribute data; guarantee system security; and scale up to accommodate even the largest systems. When middleware achieves this, it makes enterprise computing a reality. As a result, middleware is quickly emerging as the best solution for overcoming system incompatibilities, and middleware such as SUITESOFTWARE's Distributed Object Management Environment (DOME) Software System makes it possible for organizations to build large scale, heterogeneous, distributed systems that can run virtually any application in the enterprise, accessing virtually any data. DOME - Covering the Enterprise The DOME Software System is comprehensive middleware that provides all of the essential services necessary to unify distributed applications and data into a single system. With DOME, companies can develop applications on any platform they choose and then easily distribute them across heterogeneous environments throughout the enterprise. The DOME system can accomplish this complex task because it offers: - an open system - standards compliance - object-oriented architecture - support for heterogeneous environments - and support for Remote Data Access (RDA), Remote Procedure Calls (RPC), Message-Oriented Middleware (MOM), and Object Request Broker (ORB). o Open System DOME is an open system that provides an interface between all of a customer's applications, making it possible to share information between new and legacy applications. DOME provides a solution today and its open platform structure accommodates future technologies. o Standards Compliant DOME is compliant with the following standards: - OMG/CORBA - SAG - MOMA - ISO - OLE Microsoft - CCITT X.500 - Kerberos 5.4 (Security) DOME allows message transfer from one object to another object, provides the ability to find an object, register an object, register the message interface to an object, and dynamically invoke an object. DOME also provides object services beyond the Object Request Broker (ORB) and contains a directory and name service that provides more functionality than specified by the X.500 standard. Because DOME goes beyond what many of the standards require, it makes the task of creating distributed applications, especially in very large distributed environments, even easier. SUITESOFTWARE is a member of various standards groups and conforms its products to industry standards as they are adopted. o Object-Oriented Architecture Because DOME's architecture is object-oriented, there are significant benefits. - True messaging for workflow management and EDI - Queue- and bus-based (rather than send-based) design provides store-and-forward, broadcasting, and subscribing functionality - Full recovery capabilities - Different levels of messaging service for positive/negative acknowledgment and start-on-demand - Hierarchical namespace with true domains for complete scalability - Concern registration and event notification - Logical name translation for true aliasing - Kerberos 5.4 compatible security/authentication and access control - Implementation of additional protocols through a communications layer - Co-existence of multiple development and/or production environments on a single node - Platform independent time services and exception handling These beneficial functions have resulted in measurable time and labor savings while freeing systems personnel to concentrate on critical issues. o Support for Heterogeneous Environments DOME runs on the major UNIX platforms as well as in other interactive computing environments, such as OS/2 and Windows. DOME Software System Components The DOME software system is composed of the core DOME product, DOME SecurityTM, DOMEshellTM scripting and prototyping language, and the DOME Data Manager (DDMTM) database access manager. [...] The DOME Data Manager is a complete relational DBMS engine that provides access to distributed data. Features DDM provides autonomy for distributed data sites, but it also supplies the means for consolidating data for specific applications. It can read and write data across numerous DBMSs, and it makes distributed data management transparent, so that the user never needs to know the physical location of data, the server of access, or the underlying vendor in order to process requests. From the user's perspective, the enterprise is a single logical database located in its entirety on the local machine. This is possible because DDM maps the application's logical view of the environment into the enterprise's physical environment of multiple nodes, disparate operating systems, and multiple DBMSs. DDM can manipulate data across a large number of databases and data locations, and it is also interoperable. By conforming to the SQL Access Group's Call Level Interface standard, DDM can interoperate with any number of third-party GUI and CASE tools. Among the GUIs are Powerbuilder,, Visual Basic,, and Uniface,. Among the CASE tools are ERwin,, Popkin,, and Knowledgeware,. ? 1995 SUITESOFTWARE DOME, DOMEshell, DOME Security, DOME Data Manager, and DDM are trademarks of SUITESOFTWARE. All other products and product names are copyrighted by, trademarks of, or registered trademarks of their respective owners. Support and Deliverables Customer Support SUITESOFTWARE places particular emphasis on support and continuing education. The broad technical and business systems background of our staff of fully trained professionals ensures "real world" responses to problems. SUITESOFTWARE `s support staff is available by telephone, FAX, and e-mail to help customers maximize the use of the DOME Software System and obtain quick resolutions to problems. Deliverables Optical or magnetic media containing all files required to load and execute DOME plus PostScriptTM versions of DOME documentation. Hardcopy versions of all DOME documentation are available for a nominal additional cost. Configuration Requirements Disk space and memory requirements are dependent on the installation platform. SUITESOFTWARE sales representatives are available to help determine configuration requirements for particular computer systems. SUITESOFTWARE 801 East Katella Ave., Suite 210, Anaheim, CA 92805 Telephone: (714) 938-8850 FAX: (714) 978-1840 E-mail: customer_support@suite.com 3.8.7 Books, Articles, And Literature -------------------------------------- This section is expected to grow considerably in the future. "Distributed Object Computing With CORBA", C++ Report, July/August 1993 The Object Database Standard: ODMG-93 edited by: R.G.G. Cattell published by Morgan Kaufmann Publishers, San Mateo, California [Covers CORBA standards with respect to OODBs] 3.9) Why is Garbage Collection A Good Thing? ------------------------------------------------------------------------- There are two entries on garbage collection, the first is an excellent entry written for the FAQ by Paul Johnson and the second is from the FAQ author's company on the necessity of garbage collection for object-oriented programming and technique. From: Paul Johnson (paj@gec-mrc.co.uk) Garbage collection (GC) is a facility in the run-time system associated with a language which will automatically reclaim objects which are no longer used. OO Languages which require garbage collection include Eiffel, Smalltalk and CLOS. C and C++ can have garbage collection retrofitted (see [3] and [4] below). [Ada has switchable GC, too -bob] Without GC programmers must explicitly deallocate dynamic storage when it is no longer needed (in C this is done by a call to free(3)). There are a number of problems with this: 1: Bugs due to errors in storage deallocation are very hard to find, although products are available which can help. 2: In some circumstances the decision about whether to deallocate storage cannot be made by the programmer. Drawing editors and interpreters often suffer from this. The usual result is that the programmer has to write an application-specific garbage collector. 3: An object which is responsible for deallocating storage must be certain that no other object still needs that storage. Thus many modules must co-operate closely. This leads to a tight binding between supposedly independent modules. 4: Libraries with different deallocation strategies are often incompatible, hindering reuse. 5: In order to avoid problems 3 and 4, programmers may end up copying and comparing whole objects rather than just references. This is a particular problem with temporary values produced by C++ overloaded operators. 6: Because keeping track of storage is extra work, programmers often resort to statically allocated arrays. This in turn leads to arbitrary restrictions on input data which can cause failure when the assumptions behind the chosen limits no longer apply. For instance many C compilers limit expression nesting, identifier length, include file nesting and macro stack depth. This causes problems for programs that generate C. One partial solution to a lack of GC is reference counting. In this scheme each object keeps a count of references to it. When this count drops to zero the object is automatically deallocated. However this is inefficient (swapping two references will result in three decrements, three increments and six comparisons) and cannot reclaim circular data structures. Two systems that use a reference count GC are the Interviews C++ graphics library and the Unix file system (the link count). Opponents of GC reply that it introduces an overhead which is unacceptable in some applications. However the overhead of manual storage deallocation is probably as high as GC. GC algorithms are also available with good real-time behaviour. [Further, GC can perform compaction improving locality of reference.] Further Reading: [1] "Object-Oriented Software Construction" by Meyer puts the argument for GC. [2] "Uniprocessor Garbage Collection Techniques," by Paul R. Wilson, in Memory Management (proceedings of 1992 Int'l Workshop on Memory Management, Sept. 1992, St. Malo, France, Yves Bekkers and Jacques Cohen, eds.), Springer Verlag Lecture Notes in Computer Science #637. This is an excellent summary of the state of the art in GC algorithms. This and other papers about garbage collection are available in PostScript via anonymous ftp (cs.utexas.edu:pub/garbage/gcsurvey.ps. [See APPENDIX E] [3] "Garbage Collection in an Uncooperative Environment" by Boehm and Weiser. Software --- Practise and Experience vol 18(9), pp 807-820. Sept 1988. This describes GC in C and C++. ftp://parcftp.xerox.com/pub/gc/gc.html [4] Geodesic Systems provides GC for C and C++. See http://www.geodesic.com and Appendix G. 3.9b) Why is Garbage Collection Necessary for Object-Oriented Programming? -------------------------------------------------------------------------- Michael Spertus Geodesic Systems mps@geodesic.com There are several reasons why true object-oriented programming requires garbage collection. 1. Manual Memory Management Breaks Encapsulation. Program components frequently need knowledge of an entire program to determine the last use of an object and provide deletion. This makes reuse of the component nearly impossible. For example, methods and functions taking a container as an argument need to know of or make assumptions about the rest of the program to determine ownership of the objects in the container. Attempts to encapsulate memory management with reference counting, the "poor man's garbage collector", are usually misguided. Reference counting has worse performance than GC, awkward syntax, and poor semantics, which typically include failure to reclaim cycles, inability to handle stack and static objects, lack of polymorphism, and problems with interior pointers (e.g. arrays and multiple inheritance). Intensive research [1] in garbage collection has completely solved the above problems and made reference counting an inadequate substitute for true GC. 2. Implementation Hiding is not Compatible with Manual Memory Management Implementation hiding is a pillar of object-oriented programming, but explicit memory management requires implementation-dependent low-level knowledge of how memory is structured. For example, programmers often use "copy on write" to efficiently implement pass-by-value semantics. However, to manage memory explicitly, a program has to know if it has a copy of an object or the object itself. Programmers sometimes use reference counting to encapsulate copy-on-write memory management. However, this only works well in simple cases like strings where the data is not polymorphic and does not contain pointers. 3. Message Passing Leads to Dynamic Execution Paths Manual memory management must make assumptions about a program's order of execution to make a compile-time determination of the last user of an object. While this is often possible in procedural languages, the object- oriented paradigm of objects sending messages to each other (possibly from different threads) makes it impossible to statically determine the last user of an object. For example, event driven GUI programs frequently have no clear order of execution. Other dynamic control structures, such as exceptions, also make static analysis of memory usage at compile-time impossible. 4. Differing Memory Management Schemes Hinder Reuse Because no memory management scheme is universal enough for all applications, manually managed components and libraries often use incompatible memory management schemes. For example, there are common container libraries using each of the following schemes: a) Doubly specified empty and remove methods with one including a memory delete, placing the memory management burden on the client, who must call the appropriate method. b) Switches indicating deletion. Many applications must clear the switch to support long-lived data and keep track of ownership of data shared by multiple containers, leaving many memory management issues unaddressed. c) Value semantics store objects rather than references, inhibiting data sharing and carrying expensive performance costs when complex objects are copied by value. d) Reference counting, which was already discussed. Any components or libraries that use containers with different memory management strategies are difficult to use with each other. 5. Garbage Collection Works It is not enough to merely find fault with manual memory management. One also has to show that garbage collection provides a better alternative. Early versions of garbage collection were merely crude implementations of mark-and-sweep that left much to be desired. However, garbage collection has advanced as rapidly as most computer-related technologies and is now a robust, mature technology.[1] Many object-oriented languages specify garbage collection for all or part of their memory. Even C and C++ have at least one commercially supported garbage collector that can transparently and compatibly manage both new and existing programs. [2] Garbage collected programs are usually as fast and responsive as their manually managed brethren. [3] In fact, multi-media programmers sometimes choose treadmill collectors [4] over hand-management because of its superior real-time performance as manual management usually has difficulty scheduling destructor calls smoothly. Of course, garbage collected programs are generally more reliable and easier to develop, maintain, and reuse than manually managed programs. Finally, garbage collection can be mixed with manual management to provide the programmer with the broadest set of tools, and garbage collection is much too important a tool to be absent from any object-oriented programmer's toolbox. References [1] Paul R. Wilson, "Uniprocessor Garbage Collection Techniques", 1992 International Workshop on Memory Management, Springer-Verlag Lecture Notes in Computer Science series. [2] Geodesic Systems, Great Circle(TM) Automatic Memory Management System. http://www.geodesic.com/GreatCircle/index.html. [3] Detlefs, Dosser, and Zorn, "Memory Allocation Costs in Large C and C++ Programs". ftp://cs.colorado.edu/pub/techreports/zorn/CU-CS-665-93-ps.Z. [4] Henry Baker, "The Treadmill: Real-Time Garbage Collection without Motion Sickness". ftp://ftp.netcom.com/pub/hb/hbaker/NoMotionGC.html 3.10) What Can I Do To Teach OO To The Kids? --------------------------------------------- Smalltalk (in its original 1972 version) was initially intended to make computer programming easy enough for children. The idea was that manipulating objects was something more intuitive and natural than coding procedures. Other entries or suggestions are welcome, please send to the author of the FAQ. 3.11) What Is Available On Object-Oriented Testing? --------------------------------------------------- [This entry was donated by Doug Shaker and is certainly a FAQ] Testing of Object-Oriented Programming (TOOP) FAQ/Resource Summary Posted to comp.object, comp.lang.c++, comp.lang.smalltalk and comp.software.testing. Last revised on 93.10.27. The most notable change is in the additions to the Software section. Also a couple of articles added to the Written Material section. > What?