240 likes | 526 Views
SmartSockets for DIP?. LDIWG 18 November 2002. Overview. SmartSockets, the sales brochure SmartSockets for the TDS SmartSockets for DIP. Was Talarian, now TIBCO. TIBCO SmartSockets Multicast TIBCO SmartMQ TIBCO SmartSockets for JMS TIBCO SmartSockets Cache TIBCO SmartSockets Gateway
E N D
SmartSockets for DIP? LDIWG 18 November 2002
Overview • SmartSockets, the sales brochure • SmartSockets for the TDS • SmartSockets for DIP
Was Talarian, now TIBCO • TIBCO SmartSockets Multicast • TIBCO SmartMQ • TIBCO SmartSockets for JMS • TIBCO SmartSockets Cache • TIBCO SmartSockets Gateway • TIBCO SmartSockets LiveDB • TIBCO SmartSockets LiveWeb • TIBCO SmartSockets SSL • TIBCO SmartSockets Monitor
SmartSockets components • Application Programming Interface • C, C++, Java • RTserver • RTmonitor • GUI for monitoring, adm, debug • Standard message types • Custom types can be defined • Sample code (C, C++, Java) • Documentation (on-line + paper)
SmartSocket communication • Publish / subscribe through servers • Peer to peer between clients (no server) • Multicast • Sequential to all clients OR • Reliable Multicast Protocol (RMP) • Asynchronous (with callbacks) • Synchronous (sort of RPC) • Thread safe
Availability and Reliability • Redundancy • Cloud of redundant servers • Quality of Service • Guaranteed Message Delivery (GMD) • Messages saved to disk until received by clients • Dynamic Message Routing • Routing tables in RTservers updated in real time • Messages sent through virtual network using shortest path algorithm
Monitoring, Administration • On-line monitoring of • Traffic • Message buffering • Memory usage • CPU usage • Subjects • Client options • …
Monitoring cont. • Monitoring using • RTmonitor (standard GUI) • Home made tools using SS API • Synchronous (polling information) • Asynchronous (watching) • Message logging to files available as standard option
SmartSocket platforms • Automatic data translation between platforms • Server support • Unix (Solaris, HPUX, DEC, Compaq True 64, Irix, linux) • Windows NT, 2000 • VxWorks • IBM OS/390
SmartSocket platforms • Client support • All the server platforms PLUS • Windows 95, 98, Me • MacIntosh • Java
Message handling • Automatic message buffering and flow control • Prioritized messages • Re-usable and extensible messages types • Load balancing
Scalability • Hiearchical name space with wildcards • Ex. /cern/sps/ba2/magnets/* • Unlimited number of levels • Routing • Dynamic • Open Shortest Path First (OSPM) • Automatic switch between servers in case of failure
Send.c #include <rtworks/ipc.h> int main(int argc, char **argv) { TipcSrvMsgWrite("/tutorial/lesson1", TipcMtLookupByNum(T_MT_INFO), TRUE, T_IPC_FT_STR, "Hello World!", NULL); /* This call is necessary to ensure the message is sent immediately */ TipcSrvFlush(); TipcSrvDestroy(T_IPC_SRV_CONN_NONE); } /* main */
Receive.c #include <rtworks/ipc.h> int main(int argc, char **argv) { T_IPC_MSG msg; T_STR msg_text; TipcSrvSubjectSetSubscribe("/tutorial/lesson1", TRUE); msg = TipcSrvMsgNext(T_TIMEOUT_FOREVER); TipcMsgSetCurrent(msg, 0); TipcMsgNextStr(msg, &msg_text); TutOut("Text from INFO message = %s\n", msg_text); TipcSrvDestroy(T_IPC_SRV_CONN_NONE); } /* main */
Technical Data Server • SmartSocket application in operation since 1996 • Today 20000+ tags defined • Delivering data to TCR, SCR and PCR • 2 redundant servers • Used for load balancing in normal conditions • 81 simultaneous data publishers • ~50 different data clients
30 UMMI CAS UMMI UMMI UMMI PVSS UMMI rtserver rtserver pong aliv Dalm ELS Rtmon tagcli listcli SCADA SCADA SCADA SCADA logDB PLC 60 PLCs 20 SCADA TDS architecture
Dutm rtserver rtserver Dsup Dcdm TDS architecture (cont.)
TDS subjects • Flat structure • Three main types • /ddaq_dg_alarm_data CAS alarms • /f_w_ba2 (sys_subs_func) Other clients • /dcdm, /I_coolba2, … System subjects • NB: Several clients may publish to same subject! (although that is not very common)
License costs • RT Server 01.01.02-31.12.02 CHF 15799