v Rendezvous Daemon
§ Background process (rvd)
§ All information that travels between processes pass through a TIBCO Rendezvous daemon as it enters a host computer or exists a sending process
§ Responsibilities
o Data transport
o Packet ordering
o Receipt acknowledgement
o Retransmission requests
o Dispatching information to the correct application process
v Rendezvous API
§ C
§ C++
§ Java
v Reliable Message Delivery
§ Standard multicast and broadcast protocols are not reliable and unable to detect loss messages
§ Receiving RVD detects missing packets and requests that the sending daemon retransmit them
§ Sending RVD stores outbound messages for a limited period of time
§ Re-transmissions
o Buffers held for a time interval
o Duplicate requests for the same packet within a window are ignored
v Subject-based addressing conventions define a simple, uniform name space for messages and their destinations decoupling programs from the network addresses of specific computers.
v Communication between programs is anonymous, decoupling consumers from producers.
§ Consumers need not know where or how data is produced
§ Producers need not know where data is consumed
v Special Characters
§ _ (underscore): Subject names beginning with underscore are reserved.
§ . (dot): Separates elements within a subject name.
§ > (greater-than): Wildcard character, matches one or more trailing elements.
§ * (asterisk): Wildcard character, matches one element.
v Wildcards
§ The asterisk (*) is a wildcard character that matches any one element. The asterisk substitutes for whole elements only, not for partial substrings of characters within an element.
§ Greater-than (>) is a wildcard character that matches all the elements remaining to the right.
v Names that begin with an underscore character (_) are special subjects
§ _INBOX.
v All inbox names begin with this prefix. Programs may not create inbox names except with inbox creation calls. Programs cannot combine inbox names with wildcards.
§ _LOCAL.
v Messages with subject names that have this prefix are only visible and distributed to transports connected to the same TIB/Rendezvous daemon as the sender.
§ _RV., _RVCM., _RVCMQ., _RVFT., _RVDS.
v Subject names with those prefixes indicate advisory messages, including informational messages, warnings and errors. Programs must not send to subjects with this prefix.
Listening to: |
Matches to: |
Does not match to: |
RUN.* |
RUN.AWAY RUN.away |
RUN.Run.run (extra element) Run.away (case) RUN (missing element) |
Yankees.vs.* |
Yankees.vs.Red_Sox Yankees.vs.Orioles |
Giants.vs.Yankees (position) Yankees.beat.Sox (vs beat) Yankees.vs (missing element) |
*.your.* |
Amaze.your.friends Raise.your.salary Darn.your.socks |
your (missing elements) Pick.up.your.foot (position) |
RUN.> |
RUN.DMC RUN.RUN.RUN RUN.SWIM.BIKE.SKATE |
HOME.RUN (position) Run.away (case) RUN (missing element) |
v TIBCO RV programs exchange self-describing data that consists of up to 6 parts:
§ Data
o The data itself
§ Type
o Indicator to interpret the data as an integer, a string, a composite message, or any other datatype
§ Size
o Number of bytes that the data occupies
§ Name
o The subject name of the message or the name of a field within a message
§ Identifier
o An optional integer that uniquely identifies a field within a message
§ Count
o The number of elements in an array datatype
v Two Types
§ Network Transport
o Delivers messages across a network to one or many hosts
o Messages pass through the RVD process
§ Intra-process Transport
o Deliver messages between program threads