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. the course website ( http://info.comp.lancs.ac.uk/msc/AdvDistSys/frames_index.htm ) has the problem specifications... there are 3 problems: Echo

kostya
Télécharger la présentation

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 • the course website (http://info.comp.lancs.ac.uk/msc/AdvDistSys/frames_index.htm) has the problem specifications... • there are 3 problems: • Echo • File • Notify • we will now look at the Echo example in some detail to help get you started...

  3. The files for ‘Echo’ • compiling Echo.idl produces (mainly)... • _EchoInterfaceImplBase.java – the class your skeleton will inherit from • Echo.java – the type-specific object ref you will use locally at the client • EchoInterface.java –the IDL interface represented as a Java interface • you need to provide these: • Client.java – the client ‘main’ program • Server.java – the servant, together with a containing ‘main’ (server) program

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

  5. server.java 1 (of 2) // server.java, version with stringified object reference 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 the servant and ‘register’ it with the ORB EchoServant echoRef = new EchoServant(); orb.connect(echoRef);

  6. server.java 2 (of 2) // stringify the EchoRef and save it in a file String str = orb.object_to_string(echoRef); FileOutputStream fos = new FileOutputStream(“server.ior”); PrintStream ps = new PrintStream(fos); ps.print(str); ps.close(); // finally, 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, version with stringified object reference 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 de-stringify it BufferedReader br = new BufferedReader( new FileReader(“server.ior”));

  8. client.java 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 Echo application • follow instructions on the website to download the pre-compiled classes • when you need to run the application… • run the server first: ‘java server’ • then run the client: ‘java client’ • then go on to exercises 2 and 3... • good luck!

More Related