Extending Laboratory Data Management with Web Services


Extending Laboratory Data Management with Web Services

by John H. Jones

 

LABLynx, Inc.

jhjones@lablynx.com

www.lablynx.com


Today there is much written and talked about when it comes to “Web Services”, but what does it mean to you and your laboratory data management systems.  This article will address a specific technology that makes “Web Services” possible and useful to the laboratory.  We will also describe example applications and benefits of Web Services for laboratories.  In addition we will provide a web address for additional information and links to information about Web Services.

 

 

What is a Web Service?

 

A Web Service is programmable application logic or entire application functionality, accessible using standard Internet protocols. Web Services combine the best aspects of component-based development and the Web. Like components, Web Services represent black-box functionality that can be reused without worrying about how the service is implemented. Unlike current MS-Windows component based technologies, Web Services are not accessed via object-model-specific protocols, such as the distributed Component Object Model (DCOM). Instead, Web Services are accessed via the ubiquitous and very standard Web protocols and data formats, such as Hypertext Transfer Protocol (HTTP) and Extensible Markup Language (XML). Furthermore, a Web Service interface is defined strictly in terms of the messages the Web Service accepts and generates. Consumers of the Web Service can be implemented on any platform in any programming language, as long as they can create and consume the messages defined for the Web Service interface.

 

There are a few key specifications and technologies you are likely to encounter when building or consuming Web Services. These specifications and technologies address five requirements for service-based development:

 

¨        A standard way to represent data

¨        A common, extensible, message format

¨        A common, extensible, service description language

¨        A way to discover services located on a particular Web site

¨        A way to discover service providers

 

XML is the obvious choice for a standard way to represent data. Most Web Service-related specifications use XML for data representation, as well as XML Schemas to describe data types.

 

The Simple Object Access Protocol (SOAP) defines a lightweight protocol for information exchange. Part of the SOAP specification defines a set of rules for how to use XML to represent data. Other parts of the SOAP specification define an extensible message format, conventions for representing remote procedure calls (RPCs) using the SOAP message format, and bindings to the HTTP protocol. (SOAP messages can be exchanged over other protocols, but the current specification only defines bindings for HTTP).  Both IBM and Microsoft have provided technical information and statements that reasonably anticipates that SOAP will be the standard message format for communicating with Web Services.

 

Given a Web Service, it would be nice to have a standard way to document what messages the Web Service accepts and generates—that is, to document the Web Service contract. A standard mechanism makes it easier for developers and developer tools to create and interpret contracts.

 

The Web Services Description Language (WSDL) is an XML-based contract language jointly developed by Microsoft and IBM. It is reasonable to expect that WSDL will be widely supported by developer tools for creating Web Services.

 

Developers will also need some way to discover Web Services. The Discovery Protocol (Disco) specification defines a discovery document format (based on XML) and a protocol for retrieving the discovery document, enabling developers to discover services at a known URL. However, in many cases the developer will not know the URLs where services can be found. Universal Description, Discovery, and Integration (UDDI) specifies a mechanism for Web Service providers to advertise the existence of their Web Services and for Web Service consumers to locate Web Services of interest.

 

 

Examples & Benefits to the Lab?

 

So far you have been given a purely technical definition of what a Web Service is and what techno babble makes it up, but what can it do for your lab?  The very first sentence defining a Web Service was:   A Web Service is programmable application logic or entire application functionality…  This is the important aspect for labs.  Laboratories have many data management needs and applications such as:

 

¨        LIMS – Laboratory Information Management Systems

¨        SDMS – Scientific Data Management Systems

¨        CDMS – Chromatography Data Management Systems

¨        Instrument Interfacing / Automation

¨        Instrument Calibration / Maintenance

¨        Inventory & Procurement

¨        Personnel Training and Certification Tracking

¨        Time Tracking

¨        Employee Recruiting

¨        Accounting

¨        CRM – Customer Relationship Management

¨        Document Management

¨        Facilities & Asset Management

 

Most all of the applications listed above can make use of Web Services as either a Consumer or a Publisher or both.

 

To illustrate how Web Services can be used practically, we will provide a real world example that has been implemented in our LABLynx line of software products.

 

Example Use – EPA Rounding Rules Function for LIMS

 

At LABLynx we offer nothing but web enabled applications that are built and run as Web Services.  To that end, we make extensive use of XML to contain our data to exchange between our applications such as for instrument interfacing and in particular for special data processing functions for our Environmental line of LIMS applications.

 

It is well known in the environmental world that the EPA has its own algorithms for performing rounding on results data.  The figure below shows one instance of the definition of the rules for rounding as defined by the EPA and pulled directly off of their web site. 

 

w3markets > LIMSfinder >  Image3″ src=”http://w3markets.smugmug.com/photos/3402863-M.jpg” width=416 height=314></P>  <P style= 

Figure 1. – EPA web site describing results rounding rules

 

In the LABLynx LIMS, we have a collection of Web Services for performing calculations and results rounding.  One of those services is an EPA Rounding Web Service.  By providing this rounding function as a Web Service many other applications on the users network can interoperate with the Web Service so that the rounding algorithm need be implemented one time and shared by various heterogeneous systems such as traditional Windows applications like Excel or other independent systems. 

 

If the EPA were to provide its rules and regulations as Web Services, systems such as LABLynx would be able to “Consume” those services as opposed to having to create them programmatically.

 

This really begins to stretch your imagination to the point where instead of Government putting out written regulations, those regulations that are suitable such as “Rounding Rules” could be provided as Web Services and regulations would be programmatically used by the regulated industry’s systems but controlled by the regulator.  A further simple example would be web enabled cash registers that would make use of sales tax tables and algorithms that would be published as a Web Service.  The merchant no longer has to update tax tables in the cash register.  The possibilities are infinite.

 

 

Additional Information

 

There are a number of resources available on the web for learning more about web services.  The best I have found are on the Microsoft web site.

 

     Soap Toolkit 2.0 SP2

http://download.microsoft.com/download/xml/soap/2.0/W98NT42KMe/EN-US/SoapToolkit20.exe

    Soap Toolkit 2.0 SP2 Samples

http://download.microsoft.com/download/xml/soap/2.0/W98NT42KMe/EN-US/SoapToolkit20Samples.exe

    SOAP Toolkit 2.0 SP2 Redistributable Files

http://download.microsoft.com/download/xml/install/2.0/W98NT42KMeXP/EN-US/SoapToolkit20redist.exe

    Discuss in Newsgroups

http://msdn.microsoft.com/newsgroups/default.asp

    Using SOAP   

     This is a good online multimedia discussion on SOAP.

http://msdn.microsoft.com/theshow/Episode010/default.asp