1 / 9

MSc Course in Advanced Distributed Systems Session 2.2: Practical CORBA Programming

MSc Course in Advanced Distributed Systems Session 2.2: Practical CORBA Programming. http://info.comp.lancs.ac.uk/msc/ads/index.htm. Resources. three problems: Echo, Time and Notifier http://www.comp.lancs.ac.uk/~leek/msc2004/ has problem specifications

walden
Download Presentation

MSc Course in Advanced Distributed Systems Session 2.2: Practical CORBA Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MSc Course in Advanced Distributed SystemsSession 2.2: Practical CORBA Programming http://info.comp.lancs.ac.uk/msc/ads/index.htm

  2. Resources • three problems: Echo, Time and Notifier • http://www.comp.lancs.ac.uk/~leek/msc2004/has problem specifications • There are 3 problems, Echo, File and Chat • we will now look at the Echo example in some detail to get you started...

  3. The Echo files (online) Echo.idl produces (mainly)... • EchoInterface.java. The IDL interface represented as a Java interface. • _EchoInterfaceImplBase.java. It implements the FileInterface.java interface • _EchoStub.java. The Stub. • Client.java. The Client Implementation • Server.java. The Server Implementation

  4. Echo.idl // // Echo.idl // /// Put the interface in a module to avoid global namespace pollution module Exercise { // A very simple interface interface EchoServer { // Return the given string string echo(in string s); }; };

  5. server.java 1 (of 2) // server.java, stringified object reference version import java.io.*; import org.omg.CORBA.*; class EchoServant extends _EchoImplBase { public String echo(String s) { return s; } } public class server { public static void main(String args[]) { try{ // create and initialize the ORB ORB orb = ORB.init(args, null); // create servant and register it with the ORB EchoServant echoRef = new EchoServant(); orb.connect(echoRef);

  6. server.java 2 (of 2) // stringify the EchoRef and dump it in a file String str = orb.object_to_string(echoRef); String filename = System.getProperty("user.home")+ System.getProperty("file.separator")+"EchoIOR"; FileOutputStream fos = new FileOutputStream(filename); PrintStream ps = new PrintStream(fos); ps.print(str); ps.close(); // wait for invocations from clients java.lang.Object sync = new java.lang.Object(); synchronized (sync) { sync.wait(); } } catch (Exception e) { System.err.println("ERROR: " + e); e.printStackTrace(System.out); } } }

  7. client.java 1 (of 2) // client.java, stringified object reference version import java.io.*; import org.omg.CORBA.*; public class client { public static void main(String args[]) { try{ // create and initialize the ORB ORB orb = ORB.init(args, null); // Get the stringified object reference and destringify it. String filename = System.getProperty("user.home")+ System.getProperty("file.separator")+"echoIOR"; BufferedReader br = new BufferedReader(new FileReader(filename));

  8. client.cpp 2 (of 2) String ior = br.readLine(); org.omg.CORBA.Object obj = orb.string_to_object(ior); Echo echoRef = EchoHelper.narrow(obj); // call the Echo server object and print results String echo = echoRef.echo("Hello, World"); System.out.println(echo); } catch (Exception e) { System.out.println("ERROR : " + e) ; e.printStackTrace(System.out); } } }

  9. Running the application Follow the instructions on the web site to download the pre-compiled classes. • running • run the server first: ‘java server’ • then run the client: ‘java server’

More Related