Rendezvous Daemon

TIBCO rendevous_decoupling

§  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

Rendezvous API

§  C

§  C++

§  Java

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.

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

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.

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.

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)

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

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