smartsockets for dip? ldiwg 18 november 2002. overview smartsockets, the sales brochure smartsockets...
TRANSCRIPT
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
TDS architecture
rtserver rtserver
PLC
60 PLCs
SCADASCADASCADASCADA
20 SCADA
Dalm
CAS
ELS
logDB
PVSSUMMIUMMIUMMIUMMI
30 UMMI
Rtmonaliv pong
tagcli
listcli
TDS architecture (cont.)
rtserver rtserver
Dcdm
DutmDsup
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
Can SS do DIP?UR Requirement SmartSockets
1 The same protocol shall be used to communicate data with all the different external entities
OK
2 For technical services in TCR and some parts of cryogenics, basic service will be scheduled to run 24h/day, 365days/year
Use redundant servers and make clients reliable
3 Unscheduled loss of service should not exceed 5 minutes.
Redundancy and stable clients
Can SS do DIP?UR Requirement SmartSockets
4 Consumers must be made aware if a data source does not update its information to the outside
Add-on Dutm
5 The data provider must ensure that consumers are informed if the data source is not working
Quality stamp
[UR vague]
6 Time stamping of the data with millisecond resolution is needed
Time stamped messages
Can SS do DIP?UR Requirement SmartSockets
7 Acceptable delay 1s OK
8 Handle peak traffic of 250 KBytes/s and 100 messages/s without loss of data
OK (TDS tests showed avalanche latency, no loss)
9 subscribe without static configuration change at the producer level
OK all dynamic
10 Commonly used ind. Standard OK.
Can SS do DIP?UR Requirement SmartSockets
11 multiple platforms OK
12 ‘on-change’ communication OK
13 Grouping multiple changes OK
14 Only ‘current’ values In client or use Smart Cache?
15 browse published data items Outside SS scope
Config DB?
16 Naming scheme should be uniform
OK (SS won’t stop us)
Can SS do DIP?UR Requirement SmartSockets
17 Consumer message rate will not exceed 10 messages/second
Client’s responsibility
18 Latency no better than 0.5 N/A
19 Neither producer nor consumer should block the system
Producer, consumer problem
20 Terminate ill-mannered client Special msg
21 Security SSL + client authentication