Download presentation
Presentation is loading. Please wait.
Published byCharleen Watts Modified over 9 years ago
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?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.