Full HTML for

Basic foilset Java Distributed Collaborative Environment as a CORBA and RMI Example

Given by Shrideep Pallickara at Tutorial: ITEA HPCC Conference Aberdeen Md. on July 13 98. Foils prepared July 15 1998
Outside Index Summary of Material


Basic Principles of CORBA and Java
Basic Principles of Java Collaboration Systems
Description of Collaboration Process and associated classes
  • Exceptions
  • Meaages and Events
Server and Set up Structure
CORBA and RMI versions of basic functions

Table of Contents for full HTML of Java Distributed Collaborative Environment as a CORBA and RMI Example

Denote Foils where Image Critical
Denote Foils where Image has important information
Denote Foils where HTML is sufficient

1 Java Distributed Collaborative Environment
2 CORBA
3 CORBA Transport Protocol: IIOP
4 CORBA Services & Facilities.
5 Simple Guidelines For Collaboration
6 2nd Generation Java-based Collaboration API's
7 Collaboration Environments - The Next Frontier
8 CORBA, RMI and Java (Convergence Of Object Models)
9 Java CORBA combination
10 JDCE Features
11 Dynamics Of Collaboration
12 Dynamics of Collaboration(contd)
13 Exception Hierarchy
14 JDCE Client Exceptions
15 Data Bahn Exceptions
16 Client Events - A Reporting mechanism.
17 JDCE Messages
18 JDCE MessageQueue
19 JDCE Worker Threads
20 Starting the servers & setting up JDCE
21 Starting the servers & setting up JDCE
22 Binding to the sessionScheduler (CORBA) Vs (RMI)
23 Getting a handle to the DataBahn (CORBA) I
24 Getting a handle to the DataBahn (CORBA) II
25 Getting a handle to the DataBahn (RMI)
26 Publishing the Client Object Reference (CORBA) I
27 Publishing the Client Object Reference (CORBA) II
28 Publishing the Client Object Reference (RMI) I
29 Publishing the Client Object Reference (RMI) II

Outside Index Summary of Material



HTML version of Basic Foils prepared July 15 1998

Foil 1 Java Distributed Collaborative Environment

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
Shrideep Pallickara NPAC Syracuse University
111 College Place
Syracuse NY 13244-4100

HTML version of Basic Foils prepared July 15 1998

Foil 2 CORBA

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
The CORBA standard tries to obviate problems resulting from boundaries such as networks, programming languages, and operating systems
An implementation of the standard defines
  • a language and
  • platform-independent object bus called an ORB (Object Request Broker), which lets objects transparently make requests to, and receive responses from, other objects located locally or remotely
Each implementation of the CORBA standard is able to communicate with any other implementation of the standard., the protocol used to achieve this end is the Internet Inter-ORB Protocol (IIOP).

HTML version of Basic Foils prepared July 15 1998

Foil 3 CORBA Transport Protocol: IIOP

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
The IIOP specification defines a set of data formatting rules, called CDR (Common Data Representation), which is tailored to the data types supported in the CORBA Interface Definition Language (IDL)
Using the CDR data formatting rules, the IIOP specification also defines a set of message types that support all of the ORB semantics defined in the CORBA core specification
The messaging formats and the CDR constitute the General Inter-ORB Protocol (GIOP).
IIOP is the GIOP message format sent over the Transmission Control Protocol/ Internet Protocol (TCP/IP).
  • Using IIOP any CORBA client can speak to any other CORBA Object.The architecture states that CORBA objects are location transparent.

HTML version of Basic Foils prepared July 15 1998

Foil 4 CORBA Services & Facilities.

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
CORBAservices are widely available object services that virtually all CORBA objects are most likely to use.
  • Event Notification, Persistence, Lifecycles, Naming, Concurrency Control, Relationships, Transactions, Collections, Externalization, Time, Security, Query Service, Licensing, Trading, Change Management, Properties
CORBAfacilities are commonly occurring object frameworks that many CORBA applications could possibly use
  • Facilities that possess a wide user-base are known as Horizontal Facilities.
    • User Interface, Information Management, Systems Management, Task Management.
  • Others that one would expect to see a wide use by the market, or by the industry, are referred to as Vertical Facilities.
    • Imagery, Internet, Computer Integrated Manufacturing, Distributed Simulation, Finance and Accounting, Application Development, Mapping, Telecommunications, Health Care Providers

HTML version of Basic Foils prepared July 15 1998

Foil 5 Simple Guidelines For Collaboration

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
Identification Of
  • Actions that should be exclusively under the preview of the user
  • Actions that would propagate state changes to users working on copies of a particular tool in an established collaborative environment.

HTML version of Basic Foils prepared July 15 1998

Foil 6 2nd Generation Java-based Collaboration API's

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
Habanero from NCSA
  • Habanero uses the Presentation-Abstraction-Control model to administer the session and the users visual environment.
  • The cross-platform collaboration of different tools is facilitated by sharing Java-objects which implement "The Wrapped Object Model".
JSDT (Java Shared Data Toolkit) from Javasoft
  • JSDA provides a Shared Framework for Java at the data level
  • Data objects are shared over, specific instances of Channels- between two or more Clients.
Tango from NPAC is not a "pure" Java system

HTML version of Basic Foils prepared July 15 1998

Foil 7 Collaboration Environments - The Next Frontier

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
Distributed Objects: Residing on the Distributed Engine provided by any of the following approaches to Distributed Processing.
  • CORBA: Common Object Request Broker Architecture (OMG)
  • RMI: Java Remote Method Invocation (part of the Java VM)
  • COM: Component Object Model (Microsoft).
Java Beans : The Only Component Framework for Java.

HTML version of Basic Foils prepared July 15 1998

Foil 8 CORBA, RMI and Java (Convergence Of Object Models)

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
Java with its mobile code facility handles inter-object communications within its native environment.
  • The Java RMI and Java Serialization interfaces allow Java-Objects to migrate around the network, heedless of what hardware platform they land on, and then control each other remotely.
Only the Java Programming language has an inverse mapping to IDL.
  • This allows the programmer to stay in the Java world during the developmental stage of distributed applications.
Convergence of Object models.
  • Support for the notion of abstract interfaces distinct from implementations or classes
  • Interface inheritance mechanisms are mostly identical.

HTML version of Basic Foils prepared July 15 1998

Foil 9 Java CORBA combination

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
Java's multi-threading feature facilitates the optimal framework for
  • Clients to have richer presentations and
  • Object-Implementation Servers to support more clients.
Java-CORBA greatly simplifies software upgrades of Clients in large distributed systems.
  • This is more so in Java because of the mobile byte codes.
  • In CORBA its due to the Dynamic Invocation Interface.
The onset of ORB-lets, dynamically downloadable or browser-resident as in the case of Netscape/Visigenic ORB.
  • CORBA boasts an even tighter integration with Java towards the evolving computing paradigm often referred to as the Object Web.

HTML version of Basic Foils prepared July 15 1998

Foil 10 JDCE Features

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
A distributed-approach towards Collaborative Environments.
Support for IIOP- and RMI- based Transport Protocols.
  • The environment provides for Collaboration between an RMI-Client and a CORBA-client
A Distributed Event and Exception Heirarchy.
Based on the CORBA Naming Service.

HTML version of Basic Foils prepared July 15 1998

Foil 11 Dynamics Of Collaboration

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
The Client initiates a bind to the sessionScheduler Object.
  • Given that this is successful, the Client is now ready to invoke the IDL-defined operations defined in the previous slides
It starts with the createBahn(String PartyName, String _applicationServerName) throws jdceBahnException function.
  • This would return a true in the event that a new dataBahn Object has been instantiated or
  • a jdceBahnException is raised to signify the prior existence of the desired Bahn.
The Client now has the option to decide whether he wishes to join an existing Bahn (party) or initiate the existence of a new one. In the latter case Step[2] is repeated as mentioned earlier.
  • Once the process is over, the Client gets a handle to the dataBahn Object by invoking jdce.byteways.dataBahn getDataBahnHandle(String PartyName, String _applicationServerName) throws jdceBahnException .

HTML version of Basic Foils prepared July 15 1998

Foil 12 Dynamics of Collaboration(contd)

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
Once Steps II and III are over and done with, the Client is in a Distributed Collaboration mode.
The Client can invoke operations specified in IDL definitions for the dataBahn. These operations are preceded by public int register(String _clientName, clientProxy _clientObjRef) throws jdceBahnException, jdceClientException .
  • The registration process is a pre-requisite to switching to the Collaboration mode.
Once the registration process is over and done with the Client could invoke operations such as public boolean broadcastMessage(jdceMessage _message), public boolean whisperMessage(jdceMessage _message, String _clientName) throws jdceClientException, jdceBahnException etc.

HTML version of Basic Foils prepared July 15 1998

Foil 13 Exception Hierarchy

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
class java.lang.Object
  • interface jdce.util.exception.jdceException.
class java.lang.Throwable (implements java.io.Serializable)
  • class java.lang.Exception
    • class org.omg.CORBA.UserException
      • class jdce.util.exception.jdceBahnException (implements java.io.Serializable, jdce.util.exception.jdceException)
      • class jdce.util.exception.jdceClientException (implements java.io.Serializable, jdce.util.exception.jdceException)
    • class jdce.util.exception.jdceRMIBahnException (implements java.io.Serializable, jdce.util.exception.jdceException)
    • class jdce.util.exception.jdceRMIClientException (implements java.io.Serializable, jdce.util.exception.jdceException)

HTML version of Basic Foils prepared July 15 1998

Foil 14 JDCE Client Exceptions

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
If a Client exception has occurred. The following exception types can occur:
  • NAME_IN_USE - a client with a similar name exists.
  • ALREADY_BOUND - The client & the object Reference have been registered.
  • CLIENT_NOT_REGISTERED - The registration process failed.
  • NOT_BOUND : The client has not been bound to the Session Scheduler, Collaboration mode not yet activated for Client.
  • INVALID_OPERATION: Client not authorized for the particular operation.
  • UNKNOWN : Reason unknown to the JDCE Environment.

HTML version of Basic Foils prepared July 15 1998

Foil 15 Data Bahn Exceptions

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
If a Bahn exception has occurred. The following exception types could occur.
  • BAHN_CREATION_FAILED : The Bahn was not created successfully.
  • BAHN_EXISTS : The Bahn exists, i.e. there is Bahn for a given application under the same name.
  • BAHN_JOIN_FAILED : Join to the dataBahn failed.
  • NO_SUCH_BAHN: Reference to a non-existant dataBahn.
  • PERMISSION_DENIED: One of the operations on the dataBahn (expel, invite etc ) not completed due to insufficient permissions for the client which invoked the operation.
  • UNKNOWN : Reason unknown to the JDCE Environment

HTML version of Basic Foils prepared July 15 1998

Foil 16 Client Events - A Reporting mechanism.

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
module jdce {
module util {
  • module event {
    • extensible struct jdceEvent {
  • long type; string clientName;
    • };
  • };
};
};
java.lang.Object
  • jdce.util.event.jdceEvent implements java.io.Serializable
There are three types of client changes:
  • CLIENT_JOIN - a client has joined the dataBahn.
  • CLIENT_LEAVE - a client has left the dataBahn.
  • CLIENT_EXPEL - a client has been expelled by the creator of the bahn.

HTML version of Basic Foils prepared July 15 1998

Foil 17 JDCE Messages

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
module java {
module lang { extensible struct Object;
};
};
module jdce {
module util {
module message {
extensible struct jdceMessage {
string sender;
string applicationType;
string messageType;
string protocolType;
::java::lang::Object content;
};
};
};
};
The Message Object Implementation consists of the following methods, which conform to the JavaBeans Design Patterns.
  • getApplicationType()
  • getBahnName()
  • getContent()
  • getProtocol()
  • getSender()
  • setApplicationType(String)
  • setBahnName(String)
  • setContent(Object)
  • setProtocolType(String)
  • setSender(String)

HTML version of Basic Foils prepared July 15 1998

Foil 18 JDCE MessageQueue

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
The jdceMessageQueue is implemented as a Linked List for faster operations of addition/removal of messages.
The message queue provides for reporting availability of data on the queuebesides providing for returning the queue Contents as a stream of bytes or an array of Strings.
The queue has a in-lined class the QueueEnumerator which provides an Enumeration of the QueueContents.
The queueWidget has pointers to the preceeding Element and the elements successor.
  • class QueueWidget {
  • Object object;
  • QueueWidget prev;
  • QueueWidget next;
  • QueueWidget(Object object,
  • QueueWidget queueWidget1, QueueWidget queueWidget2) {
  • this.object = object;
  • prev = queueWidget1;
  • next = queueWidget2; } }
Besides the operations mentioned above, the queue provides for handling priority messages expressed by the addItemToTop() method.

HTML version of Basic Foils prepared July 15 1998

Foil 19 JDCE Worker Threads

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
For every client (RMI or CORBA) there are worker threads assigned to handle the call-backs from the server-side.
  • The RMIWorker Thread contains references to the corresponding RMIClient.
  • The CorbaWorker contains references to the CorbaClient.
  • class java.lang.Thread (implements java.lang.Runnable)
    • class jdce.util.message.jdceRMIWorker
    • class jdce.util.message.jdceWorker
Both the RMIWorker and CORBAWorker Threads are scheduled by the jdceThreadScheduler. The fact that the ThreadScheduler schedules both the RMI and CORBA threads facilitates collaboration involving RMI and CORBA Clients.

HTML version of Basic Foils prepared July 15 1998

Foil 20 Starting the servers & setting up JDCE

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
Starting the Active Object Server, the default port it binds to is 14000 % osagent
Starting the Gatekeeper which acts as a HTTP-tunneler for Callbacks through firewalls, the default port it runs on is 15000 % gatekeeper
Starting up the RMIregistry on some port, (ports less than 1024 require administrative priveleges) say 7000 % rmiregistry 7000
Starting the Naming Service, with the nameContext Root as JDCE %java -DORBservices=CosNaming -DSVCnameroot=JDCE -DJDKrenameBug com.visigenic.vbroker.services.CosNaming.ExtFactory JDCE namingLog
Starting the main Object Server, which starts up both the RMI/CORBA sessionScheduler. %java -DORBservices=CosNaming -DSVCnameroot=JDCE jdce.impl.corba.sessionServer

HTML version of Basic Foils prepared July 15 1998

Foil 21 Starting the servers & setting up JDCE

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
The HTML file, for the JDCE applet.
<applet code=demos.chat.ChatUser.class width=400 height=350>
<param name=org.omg.CORBA.ORBClass
value=com.visigenic.vbroker.orb.ORB>
<param name=ORBservices value=CosNaming>
<param name=SVCnameroot value=JDCE>
</applet>

HTML version of Basic Foils prepared July 15 1998

Foil 22 Binding to the sessionScheduler (CORBA) Vs (RMI)

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
CORBA Binding Process. private void getSessionSchedulerHandle() {
try {
// Initialize the ORB.
org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(this, null);
// Calculate Start time
long startTime = System.currentTimeMillis();
// Bind to the Scheduler Object
/* Get a reference to the Naming Service */
org.omg.CORBA.Object nameServiceObj =
orb.resolve_initial_references("NameService");
if (nameServiceObj == null) {
System.out.println("Name Service Object = null");
return; }
org.omg.CosNaming.NamingContext nameService =
org.omg.CosNaming.NamingContextHelper.narrow (nameServiceObj);
if (nameService == null) {
System.out.println("nameService = null");
return; }
NameComponent[] collabName =
{ new NameComponent("Collaboration", "Scheduler")};
_chatSession=
jdce.scheduler.sessionSchedulerHelper.narrow (nameService.resolve(collabName));
} catch(Exception e) {
System.out.println("Exception: " + e); } }
RMI Binding Process
private void getSessionSchedulerHandle() {
try {
remoteObject =
Naming.lookup(
"rmi://jojo.npac.syr.edu:7000/Scheduler");
} catch (java.lang.Exception exec) {
System.out.println( "Unable to lookup created Scheduler");
}
_chatSession = (jdce.scheduler.RMISessionScheduler) remoteObject;
}

HTML version of Basic Foils prepared July 15 1998

Foil 23 Getting a handle to the DataBahn (CORBA) I

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
public void getDataBahnHandle() {
try {
_chatSession.createBahn(partyName, "Chat");
System.out.println("New Party created");
} catch (jdceBahnException e) {
System.out.println("Exception in creations" +e);
} catch (Exception e) {
e.printStackTrace();
}
long startTime = System.currentTimeMillis();
try {
// Initialize the ORB.
org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(this, null);
/* Get a reference to the Naming Service */
org.omg.CORBA.Object nameServiceObj =
orb.resolve_initial_references("NameService");
if (nameServiceObj == null) {
System.out.println("Name Service Object = null");
return;
}
org.omg.CosNaming.NamingContext nameService =
org.omg.CosNaming.NamingContextHelper.narrow(nameServiceObj);

HTML version of Basic Foils prepared July 15 1998

Foil 24 Getting a handle to the DataBahn (CORBA) II

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
if (nameService == null) {
System.out.println("nameService = null");
return;
}
NameComponent[] collabName =
{ new NameComponent("Collaboration", partyName+"Chat"+"Coordinator")};
_chatBahn=
jdce.byteways.dataBahnHelper.narrow (nameService.resolve(collabName));
} catch(Exception e) {
System.out.println("Exception: " + e);
}
long stopTime = System.currentTimeMillis();
System.out.println("Avg Ping to invoke = "
+ ((stopTime - startTime)/1000f) + " msecs");
}

HTML version of Basic Foils prepared July 15 1998

Foil 25 Getting a handle to the DataBahn (RMI)

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
public void getDataBahnHandle() {
try {
_chatSession.createBahn(partyName, "Chat");
System.out.println("New Party created");
} catch (jdceRMIBahnException e) {
System.out.println("Exception in creations" +e);
} catch (Exception e) {
e.printStackTrace();
}
// long startTime = System.currentTimeMillis();
try {
_chatBahn = _chatSession.getDataBahnHandle(partyName, "Chat");
} catch (jdceRMIBahnException e) {
System.out.println("Exception in creations" +e);
} catch (Exception e) {
e.printStackTrace();
}
}

HTML version of Basic Foils prepared July 15 1998

Foil 26 Publishing the Client Object Reference (CORBA) I

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
{ // Initialize the ORB. org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(thisClient);
// Create the ClientControl object. ClientControlImpl control = new ClientControlImpl(thisClient); orb.connect(control);
try { /* Get a reference to the Naming Service */ org.omg.CORBA.Object
nameServiceObj = orb.resolve_initial_references("NameService");
if (nameServiceObj == null) {
System.out.println("Name Service Object = null");
return; }
org.omg.CosNaming.NamingContext nameService = org.omg.CosNaming.NamingContextHelper.narrow(nameServiceObj);
if (nameService == null) {
System.out.println("nameService = null"); return; }
NameComponent[] collabName =new NameComponent ("Collaboration", thisClient.partyName+"Chat"+"Coordinator")
};
System.out.println(thisClient.partyName+"Chat"+"Coordinator");

HTML version of Basic Foils prepared July 15 1998

Foil 27 Publishing the Client Object Reference (CORBA) II

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
try { int id= thisClient._chatBahn.register(thisClient.clientName, (jdce.client.clientProxy)control); thisClient.clientID=id; System.out.println("Registration Succeeded"); } catch (jdceBahnException e) { System.out.println(e.typeToString(e.getType())); System.out.println("Registration Failed"); } catch (jdceClientException e){}

HTML version of Basic Foils prepared July 15 1998

Foil 28 Publishing the Client Object Reference (RMI) I

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
try { control = new RMIClientControlImpl(thisClient);
identity= "rmi://jojo.npac.syr.edu:7000/" + thisClient.clientName; Naming.rebind(identity, control); System.out.println("ClientControl Export done.");
} catch (RemoteException re) { System.out.println("Exception in ClientControlImpl.main: " + re); }
catch (MalformedURLException e) { System.out.println("MalformedURLException CoordinatorImpl.main: " + e);
}

HTML version of Basic Foils prepared July 15 1998

Foil 29 Publishing the Client Object Reference (RMI) II

From Java Distributed Collaborative Environment as a CORBA and RMI Example Tutorial: ITEA HPCC Conference Aberdeen Md. -- July 13 98. *
Full HTML Index
try { int id= thisClient._chatBahn.register(thisClient.clientName, control);
thisClient.clientID=id;
System.out.println("Registration Succeeded");
} catch (jdceRMIBahnException e) {
System.out.println(e.typeToString(e.getType()));
System.out.println("Registration Failed"); }
catch (jdceRMIClientException e){}
catch (RemoteException e) {
System.out.println("OPOOOOuch!!");
}
}

© Northeast Parallel Architectures Center, Syracuse University, npac@npac.syr.edu

If you have any comments about this server, send e-mail to webmaster@npac.syr.edu.

Page produced by wwwfoil on Sat Jul 18 1998