A message standard defines the syntax, structure, and semantics of a family of messages that are exchanged between counterparts. A message standard contains a message definition for each type of message that it describes. A message definition describes:
- The structure of the messages of a particular type
- The elements that each message of that type can or must contain
- How a message of that type is represented in various network formats
- The validation rules that apply to a message of that type
- How a message is represented visually, for example, which field labels are used and how the message is formatted
Standardization of messages should be the end result of a process involving business process analysis, document simplification, and data harmonization. Message standards ensure that messages are robust, inter-operable, and reusable for many business sectors and governments. There are many business message or document standards in use but the main ones are published by UNCEFACT, ISO, and OASIS. These standards are split into semantic, syntax, and specifications.
It should be clear what a messaging standard is—right? Well, the first issue here is that messaging means different things to different people, and so, unfortunately, does the word standard. Most of us naturally will think about networking when discussing messaging standards; however, messaging covers anything from a local platform-specific application-programming interface (API) down to a low-level communications interface such as NDIS. Other examples of messaging interfaces include POSIX threads, NetBIOS, RMI, CORBA, DCOM, XML Web services, Microsoft Windows' Winsock, UNIX's Berkeley sockets, and open data interface (ODI). The term message itself refers to any unit of information that has to be moved. A message might be composed of just application data, or data encapsulated in your own messaging layer (if, for example, the interface to which you are writing does not support all of the functions that you need). It is useful to note that one layer's message is another layer's data. In practice, messages have been called many things, including packets, frames, events, or fancier names like protocol data units (PDUs). The term standard also is not clear-cut and is widely interpreted in practice. There are true open international standards, de facto standards, and proprietary standards. True standards are usually defined by international standards bodies or broad consortiums where "open" means that the standard has been forged by a community of interested parties, and these specifications should be available to anybody. The Internet Engineering Task Force (IETF) is perhaps the most open standards body in this area because practically anyone can contribute, and all standards—even drafts—are available online at no cost. (Note that some organizations do charge a fee for their standards, and, while one can understand that resources do need support) De facto standards have become standards typically by virtue of their momentum, installed base, or the absence of any other useful alternative. For example, the FIX protocol started life in 1992 as a bilateral communication framework for equity trading between Fidelity Investments and Salomon Brothers and has since become the de facto messaging standard for pre-trade and trade communications within the equity markets. How truly "open" and specified a de facto standard is might be highly variable and, therefore, could be open to interpretation. For example, Syslog is documented for informational use by the IETF, and several implementations have significant differences, requiring dedicated parsers.
For example, HL7 (Health Level Seven) is a messaging standard for exchanging clinical and administrative data between healthcare applications from various vendors, typically within an enterprise. HIPAA (Health Insurance Portability and Accountability Act) was enacted in 1996 and is designed to streamline healthcare transactions across enterprises and to uphold patients' privacy rights.
- Open Data-link Interface (ODI)
- Common Object Request Broker Architecture (CORBA)
- Health Level 7 (HL7)