Content deleted Content added
Tags: Mobile edit Mobile web edit Advanced mobile edit |
→Software communication: para Tags: Mobile edit Mobile web edit Advanced mobile edit |
||
Line 18:
== Software communication ==
Unlike device communications, where the form of the message data is limited to protocols supported by the type and capabilities of the devices involved (for example in computer networking we have the TCP and UDP protocols, a walkie-talkie would sending radio waves in specific frequency, and a beacon would be flashing Morse code sequences that a person could read), a software can establish more complex and robust data exchange formats.
Those formats would be translated by the sending party in a form deliverable by the underlying hardware, and then decoded by the receiving party from the hardware-specific format to a form conforming to the original protocol established by the communicating software systems. This higher-level data exchange allows transferring information in a more-human readable form, and also enables usage of software encryption and decryption techniques to make messaging secure. Additionally, the software message exchange enables more variations of the ''message exchange pattern'' which are no-longer limited to the simple ''request-reply'' and ''one-way'' approaches. And last, but not least, software communication systems are capable of providing various ''channels'' for data exchange which can be used to optimize the message delivery, or to establish complex rules for ''selection'' and ''filtering'' which help deciding which parties to receive certain messages. This enables the possibility for software-orchestrated ''message routing''. As result to the later, the concepts of a ''topic'' (where all receiving parties in a targeted group would be delivered a copy of the message) and a ''queue'' (where only one party in a targeted group would receive the message) have emerged. As mentioned before, software messaging allows more options and freedom in the data exchange protocols. This, however, would not be very useful unless the communicating parties agree on the details of the protocol involved, and so a number of standardized software messaging protocols exist. This standardization allows different software systems, usually created and maintained by separate organizations, and which could be operating on different hardware devices (servers, computers, smart devices or IoT controllers), to participate in realtime data exchange.
|