The Simple Object Access Protocol and an Online Health Information Infrastructure

Wayne Brandes, DO MPH and Phil Sagan, PhD
American Institutes for Research
Silver Spring, MD

 

Introduction

On June 22 Microsoft Corporation unveiled “.Net”, its Web-based strategy for the future of the company.  At the heart of .Net is a newly developed remote procedure call (RPC) technology named the Simple Object Access Protocol (SOAP).  SOAP, which was developed jointly by Userland.com, Microsoft, and DevelopMentor, creates a Web messaging paradigm in which virtually every computer connected to the Web will be able to share data and resources with virtually every other computer connected to the Web.  SOAP may enable the most significant advance in functionality of the World Wide Web since the initial development of the Web itself.  Of significance for healthcare, SOAP may also become a key enabling technology in the long-awaited development of a nationwide networked health information infrastructure. 

SOAP will move the Web away from its current server-centric Web model, with relatively few servers and vastly greater numbers of clients (browsers), and towards a distributed peer-to-peer model in which every connected device can share its resources with every other connected device.  The network will indeed become the computer.

The implications of a peer-to-peer World Wide Web for on-line health records are profound.  In a SOAP-enabled world, any doctor’s office or hospital Web-connected computer will be able to share its stored records, via automated machine-to-machine processes, with any other doctor’s office or hospital Web-connected computer (with appropriate authorization, confidentiality, and security measures of course).  An individual’s medical records, maintained in a distributed fashion across the Web, will be able to be obtained and aggregated into a complete whole automatically, immediately, and on-demand, by any authorized Web-connected computer anytime and anywhere.  In a SOAP-enabled world patients will no longer need to carry their medical records to each new doctor's office or emergency department visit.  Doctors will have always-available access to complete medical records wherever there is an Internet connection.

Importantly, SOAP enables this functionality using two existing Web standards, Hypertext Transfer Protocol (HTTP) and eXtensible Markup Language (XML).  Because SOAP is based on Web standards, the worldwide infrastructure needed to operationalize this SOAP-enabled functionality is already in place. 

It will obviously be many years and many dollars before this vision can be realized, but it may be useful to start now to understand and think about the implications of this new Web model.  Support for SOAP as a Web standard currently has the backing of industry heavyweights including Microsoft, Dell, IBM, Lotus, Sun, Intel, and Compaq.  In fact, Microsoft has such faith in the technology that, according to Chairman Bill Gates, it has “bet the company” on its SOAP-based .Net strategy.  With that kind of commitment it is likely that SOAP will be having a major impact on the Web, and possibly on on-line health information, in the not-too-distant future. 

A Little Bit of SOAP

SOAP is a protocol (a set of rules) for sending machine-to-machine messages across the Web.   Web messages are electronic files that are automatically generated and sent back and forth between Web browsers and Web servers to carry out the work that is done on the Web, e.g., Web searches.  The standard format for Web messages is established by the rules in the Hypertext Transfer Protocol (HTTP).  Every Web-connected computer, no matter what operating system (e.g., Windows, Mac, Unix) understands and accepts HTTP messages, although only Web servers can respond to HTTP messages.

A HTTP message has two major parts, a header and a payload.  The header contains, among other things, the sender’s Web address, the recipient's address, and the type of action (e.g., POST) that is being requested.  The payload carries the information needed to carryout the request, e.g., a term to search for.  A reply message payload contains the requested information, usually in the form of a Web page.  Three significant limitations of the HTTP messaging paradigm are: 1) only relatively simple actions can be carried out via HTTP messages, 2) only relatively simple data can be carried in HTTP payloads, and 3) only Web servers can respond to HTTP requests. 

SOAP was designed to overcome these obstacles, and to do so using existing Web infrastructure and standards.  A SOAP message is essentially an HTTP header with an XML-payload.  Use of the HTTP standard allows SOAP messages to pass through firewalls and be accepted by any Web-connected computer.  The use of XML in the payload greatly increases the types and complexity of services and data that can be requested via a SOAP message.

XML, which is rapidly replacing HTML as the standard language of Web programming, allows machine-understandable meaning or context to be encoded with data.  This meaning can take a number of forms.  It can include the instructions necessary for running programs on other machines.  Additionally, it can indicate the context of data, e.g., that “pneumonia” is an instance of the data type  “diagnosis”.  Providing context turns data into information.

Health Level 7, the leading organization for the development of healthcare data exchange standards, is utilizing XML in the development of the newest version of its healthcare data messaging standard (Version 3.0) and its Clinical Document Architecture (CDA).  When HL-7 Version 3.0 and the CDA are adopted and widely deployed, electronic health record systems will encode their data with XML.

By utilizing XML, SOAP payloads can carry vastly more complex service and data requests than what can be done with HTML, e.g., a XML-encoded health care record.  A paraphrasing of such a detailed request might be “send me the lab results for person X for all visits for which the primary diagnosis was pneumonia”.  A computer running SOAP-enabled and HL-7 compliant software will be able to respond to such a request. 

In a SOAP-enabled Web it will not be necessary to create a national electronic medical records database.  XML-encoded healthcare records will be able to be maintained in a distributed fashion across the Web, at the various locations that have custody of the different components of an individuals’ lifelong health record, yet still be collected and aggregated into a complete whole via automated Web-based processes on an as-needed basis.  Additionally, by using what is known as Intelligent Agent software, it will not even be necessary for the requesting computer to know ahead of time the addresses of the different computers across the Web that contain an individual’s information.  It will be simply a matter of entering the appropriate patient identification (and authorization) information and an Intelligent Agent “bot” will search the Web and find the locations storing the information; similar to how a Web search engine works.  The computer operator will only need to enter the patient information, the software will take care of the rest.

RPCs and the Web

Why hasn’t something like SOAP been thought of before?  It has.  Other than HTTP, the most widely deployed Web messaging, or remote procedure call (RPC), technologies are the Common Object Request Broker Architecture (CORBA) and the Distributed Common Object Model (DCOM).  Similarly to SOAP, these RPC technologies can also enable complex resource and data sharing via the Web.  However they suffer from a number of drawbacks that limit their potential relative to SOAP.   Probably the most significant drawbacks are that 1) Internet security features such as firewalls block their messages, and 2) they are platform-specific, which means that they can only run on machines with certain operating systems.  Again, SOAP overcomes these obstacles.

SOAP messages are not blocked by firewalls.  Corporate firewalls typically are configured to allow only traffic on port 80 (and a few others), which is the standard port for HTTP messages.  CORBA messages travel via ports other than port 80, and therefore are blocked by most firewalls.  SOAP messages, on the other hand, utilize the HTTP standard, and thus port 80, and so are able to pass through most firewalls. 

SOAP is platform independent.  CORBA and DCOM only work with Microsoft Windows-based software.  SOAP is built on platform-independent Web standards.  It is compliance with these standards that allows machines running Unix, Windows, Macintosh, Linux and just about any other operating system to all communicate via the Web.

The future of SOAP

Obviously SOAP by itself will not be enough to enable a national on-line health information infrastructure; but it may get us a lot closer, a lot sooner, then we would be without it.  There are significant obstacles inherent in SOAP and in the other components of a health information infrastructure that will need to be worked out.

SOAP will need to be adopted as an official Web standard.  SOAP was recently submitted to the World Wide Web Consortium (W3C), the powers-that-be for Web standards, for the consideration of the formation of a working group in the area of XML-based protocols.  Even if SOAP is accepted as a Web standard though, it will take years for the technology to mature and to be widely adopted and deployed.  In addition, other needed standards, such as HL-7 3.0, will also need to be finalized and deployed.

Other software, that will provide the interface between SOAP messages and electronic health records systems, will likewise need to be developed and deployed.  Lastly, there are significant technical and regulatory issues surrounding the privacy, security, and confidentiality of individually identifiable health information that will need to be settled. 

In the meantime, though, it is useful to begin to understand and work with SOAP and to think through the potentially revolutionary possibilities it holds for the Web and for a health information infrastructure.

More information about SOAP can be found at many sites on the Web including the Microsoft Web site at http://msdn.microsoft.com/xml/general/soap_webserv.asp and at the W3C Web site at http://www.w3.org/TR/SOAP/.  SOAP toolkits can be downloaded from Microsoft at http://www.microsoft.com/downloads/ and from the Apache XML Project at http://xml.apache.org/soap/index.html.  


© 2001 Wayne Brandes, DO MPH