Presentation is loading. Please wait.

Presentation is loading. Please wait.

Using CORBA To Bridge C++ and JMS Niall Stapley, CERN /

Similar presentations


Presentation on theme: "Using CORBA To Bridge C++ and JMS Niall Stapley, CERN /"— Presentation transcript:

1 Using CORBA To Bridge C++ and JMS Niall Stapley, CERN email: niall.stapley@cern.ch http://stapley.web.cern.ch/stapley/CORBAtoJMS/doc /

2 2 Overview Alarms Message Oriented Middleware Architecture MessageStruct Bridge Description The C++ client Current Status

3 3 Alarms Part of CERN SL/CO. Gather, analyze, distribute fault states. Sources from any part of CERN: –heterogeneous platforms: Servers PCs VME computers – and languages: C, C++ Java

4 4 Message Oriented Middleware What is it? –Queue-based asynchronous message exchange –Provides reliability, flexibility, portability –Allows many-to-many communication Good for event-driven communication Java Message Service is the Java standard –Includes publish and subscribe CMW project defined a MOM API –which simplifies JMS –but only implemented in Java

5 5 Architecture

6 6 MessageStruct union BodyFormatUnion switch (BodyFormatEnum) { case BYTES_FORMAT: OctetSeq octetSeqV; case TEXT_FORMAT: string stringV; case MAP_FORMAT: MapSeq mapSeqV; case STREAM_FORMAT: DataTypeUnionSeq dataTypeUnionSeqV; case ANY_FORMAT: any anyV; }; struct MessageStruct { HeaderSeq headers; PropertySeq properties; BodyFormatUnion body; };

7 7 Bridge Description

8 8 Publish Example #include using namespace everything; int main (int argc, char* argv[]) { Publisher &the_publisher = Publisher::init( argc, argv ); TextMessage message(); message.setStringProperty( "the_name", "the_value" ); message << "This is inserted into the body"; the_publisher.publish( "CERN.TEST", message ); return (EXIT_SUCCESS); } // main

9 9 Subscribe Example #include using namespace everything; void messageHandler (Message &message); int main (int argc, char* argv[]) { Subscriber &the_subscriber = Subscriber::init( argc, argv ); long long handle = the_subscriber.subscribe( jms_topic, "", messageHandler ); // do other stuff the_subscriber.unsubscribe( handle ) return (EXIT_SUCCESS); } //main

10 10 Current Status Provides Publish / Subscribe MOM API as shown. Uses JacORB and Orbix/E Potential attention areas –Increase security The long descriptor. Add user / password protection. –Add JMS Message Headers. –Dynamic Object/IDL conversion handler. –extern ‘C’ client library Start testing it with alarms

11 11 And Finally... Thanks for your attention! Any questions?


Download ppt "Using CORBA To Bridge C++ and JMS Niall Stapley, CERN /"

Similar presentations


Ads by Google