BM orb
Version 1.2
Copyright 1998 Johnny Be Good! Software
John R. Ashmun:


BMorb is a shareware package for the distribution of inter-team BMessages between systems running the Be Operating System.

BMorb Version 1.2 runs under Release 4 of the BeOS, on both PowerPC and Intel platforms, and supports sending BMessages between any combination of platforms.

The package consists of:

1) The header file bmorb.h, for inclusion in client applications. bmorb.h declares the C++ class BMORB_Messenger, an extension to Be's BMessenger class, and the function OpenService( ), which client programs call to obtain a BMORB_Messenger.

2) The shared library, which contains OpenService( ) and some functions which it uses.

3) The BMessageProtocol file type, and an example BMessageProtocol file.

4) The communications daemon bmorbd, which routes a BMessage sent by a BMORB_Messenger either directly to the server application, or indirectly, via the bmorbd on another system.

How To Get BMorb

You can download BMorb by clicking on this button, or, if it isn't yet available there, send me E-mail.

Installing BMorb

Move or copy the shared library to /boot/home/config/lib.

Running the demo

1. Obtain two systems running the BeOS. Make sure that they can communicate using TCP/IP. For instance, use ftp to move a file between them.

2. Install the bmorb package on each of them.

3. Choose one where you will run the demo client program. I'll refer to this system as "Luna", and the one where you'll run the server as "Sol".

4. On Luna, open the BMessageProtocols folder in the bmorb folder.

5. In the BMessageProtocols tracker window that opens, use the Fields menu to display the TransactionName and ServerNode fields. Now change the ServerNode entry for the DemoFactorial transaction to be the actual node name of the system I'm referring to as Sol.

6. On "Sol", run the bmorb demo server program. It's in the demo/server subfolder of the bmorb folder. To run it, just double-click on its icon of cubes. It will idle, waiting for a BMessage to arrive.

7. On BOTH "Luna" and "Sol", run the bmorbd application -- double-click on its icon:

The bmorbd programs will also be idle, until a message arrives from a client.

8. On "Luna", run the Terminal program, change the current directory to ...bmorb/demo/client/<platform>, wherever you installed bmorb, and run the client program. It will print the time, in seconds, it took to send 100 messages containing the int 100 to the server program running on Sol, and receive the answers containing factorial( 100 ).

Note: BMorb works just as well when the client and server are both on the same system; in that case, use the name "localhost" in the ServerNode attribute of the BMessageProtocol file.

BeOSBounce - Graphical Demo

A somewhat livelier demo, BeOSBounce, will soon be available from BeWare.

Developing Your Own Application

Begin by designing the BMessage protocol to be used by your client and server. You can just click on the fields to change the BMessageProtocol file used in the demo. If you need more transaction requests in your protocol, you can copy the DemoFactorial file and edit the copies.

Follow the pattern of use of a protocol that was used to create the demo client and server (and see the Note: at the end of the section "Running the Demo" above).


BMorb as distributed is in no way disabled without registration; I expect that those who find it useful and would appreciate support for its use will register their copies. Registration of BMorb is handled through Kagi, as is correnspondence about BMorb.

For registration instructions, please see the text file "How to Register".


William Adams of Be, Inc. provided inspiration for the development of BMorb.

The icon for bmorbd is used by the kind permission of Be, Inc. (
For more on the history of this icon, see The Orb Icon.

For Johnny Be Good! Software
John R. Ashmun
April, 1999