The Case for XMPP

From Direct Project
Jump to navigation Jump to search
The goals for NHIN Direct are stated as follows "NHIN Direct is a project to expand the standards and service definitions that, with a policy framework, constitute the NHIN. Those standards and services will allow organizations to deliver simple, direct, secure and scalable transport of health information over the Internet between known participants in support of Stage 1 meaningful use".

There are various technologies that provide the capabilities to realize the above NHIN Direct goals. In order to evaluate the various technology choices, there are few critical factors that need to be considered. These factors are as follows:
  • Does the technology features support the NHIN Direct goals ?
  • How does the technology enable and foster wide-spread adoption among the health care organization spectrum ?
  • How does the technology serve as a "Platform for Innovation" to enable vendors, software developers, providers to generate the next generation applications like an "IPhone platform". ?

The XMPP (Extensible Message and Presence Protocol) based implementation team has chosen XMPP protocol as the technology choice to meet the above criteria. The next few paragraphs outline these XMPP capabilities and how it can be leveraged to meet the evaluation factors listed above.

Technology to support NHIN Direct Specifications:

The XMPP protocol has the required features which are very essential to meet the NHIN Direct goals. Some of these features are listed below along with how it applies to the NHIN Direct goals.

NHIN Direct Goal
Direct Point to Point Messaging
(Asynchronous/Push based messaging)
One of the primary objective of NHIN Direct is to send messages between source and destination in a direct efficient manner.
Server Federation
In order to support direct "Point to Point" messaging without central directory lookup services, server federation is a critical aspect and is essential to achieving the goals of NHIN Direct. XMPP supports direct "Server to Server" single hop federation for efficient message transfers.
TLS + SASL security mechanisms
For secure transport the protocol needs to support PKI type of infrastructure. XMPP support TLS for channel encryption and supports PKI based authentication, authorization using SASL mechanisms. Encryption and Signing of the payload can be accomplished by the clients before shipping the payload and XMPP protocol is payload agnostic.
Simple Addressing Scheme
XMPP uses Jabber ID which is just like email Ids and is very easy to use for addressing end points.
Large File Transfers
As the Healthcare industry adopts electronic health records and massive amounts of data is moved around the internet, many of the traditional protocols like HTTP break because they cannot support in-band transmission of large files. XMPP provides extensions which address this specifically through a variety of out-of-band file transfers for large files.

Technology to foster Adoption:

XMPP protocol provides "Instant Messaging for Healthcare". The XMPP protocol provides a light weight communication mechanism which is in wide spread use across the internet and is the backbone of many applications such as Facebook, Google Wave, VOIP, Chat communication etc. The IT evolution has led the industry to the point where every entity demands information in real-time and XMPP provides this capability. In addition XMPP client libraries provide organization of contacts using a concept called as "Rosters" or more commonly called as "Buddy Lists" where by a person or entity can decide who their buddies are and allow them to communicate with each other. The real-time feature of locating buddies, and successfully communicating with buddies provides a personal customization, adds a layer of trust that the end user controls and makes it attractive to every adopter in the industry. Due to these features we see Social networking and instant messaging applications succeed at a rapid rate. So by making a technology choice like XMPP this real-time communication and personal customization feature can be provided to the healthcare community to enable near real-time communication to provide the best patient care possible.

In addition to the above features, XMPP has a wide range of open source libraries and products which can be used by any vendor, software developer to develop applications on their favorite platform. Most vendors and software developers can install and configure an XMPP server in less than a day and can develop a simple XMPP client that does message and file transfers in less than a couple of days. The simple nature of the technology instantiation enables the community to be innovative and create the next generation healthcare applications rather than focusing on the technology stacks.

Technology to serve as a "Platform for Innovation":

Innovation for the next generation healthcare products can be envisioned as products and services that add value to clinical workflows and improve health outcomes. These next generation applications can be created on the "Client" side or on the "Server" side in a traditional "Client-Server" environment. The XMPP protocol provides a variety of features that enable software vendors, EHR/EMR vendors and individual developers to come up with innovative solutions that can improve patient care. The following are some of these features and how it could potentially be used to innovate the next generation products:

Potential Use
Presence detection
Presence detection provides a way to determine if a source or destinationo is currently available. This feature is very useful to obtain real time information about a patient from a provider in case of an emergency. This feature can potentially be used to find patient's relatives or friends from their buddy lists and contact relatives in case of an emergency. This feature can prove valuable even if it saves one life.
Service and Feature Discovery
Service and Feature discovery provide a mechanism for vendors to add new services that can be discovered by servers and clients dynamically. This will be very useful as NHIN Direct scales up, and adds new services the compatibility of the various end points and servers can be dynamically discovered and suitable action can be taken without causing any unnecessary downtime for end users.
The simple publish-subscribe messaging pattern is supported natively by XMPP which provides a natural way for public health organizations to monitor certain events realted to pandemic outbreaks, bio-terrorism etc, and can also be used by vendors to innovate and summarize using business analytics based on event subscriptions.
Collaboration Applications
Vendors, HISP's can provide value added services which provide real time collaboration capabilities that can be used by providers to collaborate in treating a patient and exchange the necessary information and thought process in real time.
Support for various protocols
XMPP uses XML to transfer messages and is a modular protocol where interceptors can be added at any layer in the stack to create new applications that can interoperate with other technology stacks or applications that are present in the market today without much burden on the clients.

There are many practical applications where these innovations have been used some of which are "Blood bank locators" using XMPP where a user can locate the nearest blood bank on their mobile device using an XMPP protocol in real time. BMC Bioinfomatics has used XMPP to offer cloud services using XMPP as a enabling protocol to discover and invoke new services. LucentGlow has used public XMPP servers hosted by Google Talk to allow EHR's to connect with each other. These are just some examples of what could be done and by choosing XMPP as the backbone protocol for NHIN Direct, so let us make the choice now and "Start the Innovation Cycle".