Generic Point to Point Communication Services (GPPC)
Reliability, resiliency, and coordination of widespread heterogeneous equipment are all concerns of application developers that are introduced by the decentralization of computation into distributed systems.
The lack of a low cost and reliable method to achieve this necessary synchronization has introduced a host of unnecessarily complex and inefficient schemes for providing application specific synchronization and fault-detection. Usually these schemes are not reusable in other applications because of the close connection between the application and its communication mechanisms. In many cases these are so interconnected that one is not distinguishable from the other. This virtually eliminates interoperability and can seriously impact future application evolution.
GPPC came about as a result of Ibridge's experience building distributed applications in heterogeneous environments. GPPC provides application developers with a consistent, fast, simple and effective means for process to process communication across different operating systems platforms.
GPPC is designed to provide a simple, easy to use means of exchanging time critical data among large numbers of heterogeneous nodes. Propagation of real-time data efficiently, with minimization of individual message latency, was of paramount concern.
The connectionless client/server model is architecturally built on top of UDP/IP layer. The word connectionless is used to identify the fact client applications do not require to connect to the server process and as such the server process is not required to maintain the connections. This scheme allows for the server process to "serve" as many clients as possible, the only limitation is bandwidth and computing power.
Different Ethernet protocols support a wide range of guarantees on packets. This concept is referred to as Quality of service (QoS) specified for packets being sent. The basic QoS levels are:
- source ordered
- totally ordered
Often, the performance benefit (decreased latency) of protocols utilizing lower QoS levels leads to their usage in real-time distributed applications. However, the reliability of these protocols can be greatly increased using time stamping, especially if the members have globally synchronized clocks. Even if higher QoS is used, clock synchronization can be used to effectively decrease the amount of error handling and fault detection that is required in distributed application development.