There are two main ways of accessing objects on a remote server, creation and connection.
A client may create a remote object with the Babel built-in static _createRemote(in string URL) method. This asks the remote server given in the URL to create an object. For example, the C function
foo_Bar b = foo_Bar__createRemote(``simhandle://pc3:9999/'');
will create an object of type foo.Bar on the server running on pc3 port 9999 using the ``Simple Protocol.''
foo_Bar b may now be passed around exactly like a normal Babel object, except that all calls on b will actually run on pc3.
However, in some cases, an object already exists on a remote server that the user just wants to access. In this case, the object can be connected to via the built-in static _connect(in string URL) method. The only difference is, in this case the URL must include an object ID to uniquely identify the object desired on the BOS. For example:
foo_Bar b = foo_Bar__connect(``simhandle://pc3:9999/Bar1025'');
here again, foo_Bar b may now be used exactly like any other Babel object. To relate back to normal Babel, connection is kind of like an active addRef. The user actively goes and gets his own reference to a given object.
_connect is actually used by Babel internally whenever objects are passed remotely as arguments. In fact, users will probably rarely use connect directly, most often it will be done automatically by Babel when objects are passed remotely. _connect is exposed to the user mostly for Web Services, where the objectID may always be the same, and for special boot strapping uses.