Distributed Objects - including Java

Distributed Objects technology is all about having co-operating objects anywhere on a network. As such, it can (will be?) more powerful than current client/server and database technologies. True distributed objects require many features which are not readily apparent. CORBA has defined many of these and at various layers, as has OLE/COM.

So what are distributed objects? Take my course ;-) But seriously, CORBA does as good a job as any at thinking about objects. Start with services and add layers. The Corba services include: object life cycle, naming, persistence, relationships, querying, concurrency, transactions, security, collections ( abstract data types ), externalization, events, and a few others. Then you layer on integration with the UI via OpenDoc. We won't worry ourselves too much with picky details like requirements tracking, testing. As none of commercial products are available on all platforms, with Java interfaces, asynchronous messaging, integrated with OLE/COM (except OLE/COM), lightweight Java clients, an architect has quite a job to do.

A summary of some information and places to find more might be in order.

The most complete page on all facets of object-orientation is Cetus - Some Links: Object-Orientation

Contents:

CORBA
OpenDoc
Beans
Microsoft
CORBA Orbs
Java Orbs
Articles
Conferences
Persistence
Modeling Tools

CORBA explained

A Brief Tutorial on CORBA

CORBA is maintained by OMG and they have a OMG Internet SIG

OpenDoc

OpenDoc layers upon CORBA to provide structured storage and merging of UI features. Some of the same features and more as OLE.

CI Labs is responsible for the OpenDoc standard

IBM is keen on OpenDoc and has created Club OpenDoc

Java Beans

JavaWorld - June - Java Beans glue applets together

Microsoft

Bill has migrated everywhere. COM contains interfaces for how talk to objects, OLE provides the structured storage and merging of UI features. ActiveX provides a standard for integrating components using OLE together. Yeah, this is sparce.. more later.

CORBA ORBS

Iona, jointly owed by Sun, makes Orbix, a CORBA 2.0 compliant ORB for 21 platforms, including OS/2, AIX, NT, 95, etc. Tight integration with OLE/COM Few Object Services supported. Java IDL mapping

PostModern Computing Offers ORBeline, a CORBA 2.0 compliant ORB for many platforms. Web pages have not been kept up. Unknown Object Services support. Java IDL mapping via Black Widow

IBM offers SOM, a CORBA 2.0 compliant ORB for windows, OS/2. SOM is the basis for OpenDoc. No Java IDL mappping. Naming, Persistence, Event, Transaction, Concurrence, LifeCycle, Security, Externalization Common Object Services supported, as well as proprietary Collection and Binary compatibility between object versions (No fragile base class problem Microsoft..) Looks like Iona has adopted SOM

DEC offers ObjectBroker a CORBA 1.2 compliant ORB for 20 platforms, including NT, 95, All major Unixi, . DCE Security and Tight OLE/COM integration - without recompiling, objects can be treated as COM/OLE objects. Nifty Explorer of Remote objects. No Java IDL binding. Poor Web site. Unknown COS.

Expersoft offers PowerBroker, a CORBA 2.0 compliant ORB. Heavy PR for asynchronous messaging, only Life-Cycle and naming CORBA Services. Objects also comply with OLE/COM. Available for all Unixi including AIX, as well as NT, but NO 95. It really touts itself as a development environment. No Java IDL binding.

HP offers ORBPlus, a CORBA 2.0 compliant ORB with events, naming and life-cycle CORBA Services.

SunSoft's Joe provides Java/Applet access to NEO servers

Java ORB products - not including CORBA compliant ORBS

JIDL: The CORBA IDL Compiler for Java has since been discontinued
APM's Jade is a Java ORB supporting IIOP

JavaSoft's Remote Objects for Java provide two packages:

Remote Method Invocation and Object Serialization for Java(tm), a early access release suite of class providing a remote access interface to Java objects, with a mailing list
Jylu appears to be a research project for ORB/Xerox ILU mapping

HORB is yet another distributed object language(YADOL). It can be used in Java programs by importing the HORB class libraries. It supports features similar to Java RMI, but appears more advanced. While technically may be neat, the fact that it's a single professor writing it seems to make it doomed.

Articles, Magazines

A good on-line article is JavaWorld June 96 article on Remote Objects
SunWorld Online - April - Distributed objects for business
An on-line zine is Object Currents

Conferences

Object Expo New York 1996

People

Douglas C. Schmidt speaks at conferences about distributed objects

Persistent Objects, including Databases

CORBA and Databases - Do you really need both?
Object/Relational/Object-Relational/Relational-Object

Comparison Between Object Oriented and Relational Databases

OODBMS

Gemstone offers a leading OODBMS. However, you have to use Smalltalk to interface.

Modeling

Gensym's ReThink is a modeling tool, highly recommended by Kalev Ruberg, IBM's ICBC project architect.

MultiQuest makes S-CASE, supports Booch and UML, Outputs C++ using TCL ( but could be customized for Java ), Avail for 95/NT. $495 for single-user, $795 for floating license. Version 2.1 has no UML but avail for OS/2.

Verilog makes ObjectPartner, an OMT compliant CASE tool for Unixii and NT, outputs many C++ types - only Microsoft C++ 2.0 though… Has all 4 models - object, use-case, dynamic and data flow. Has template mechanism to handle language, platform, and coding standard changes. No pricing available

Dirk makes Object Domain, a $100 tool which is Booch and OMT compliant. 6 booch models, missing the data flow diagram for OMT. Very powerful Object editor though, handles many aspects of attributes, visibility, behaviour. Fonts can be a bit ugly.

Rational Rose is another modelling tool.