Q3 develops a Global Biochemistry Search Engine built on .Net 2.0 Platform and based on SOA architecture
Q3's global sourcing model gives the maximum benefit to customers in terms of cost savings, improved quality, access to highly talented professionals, flexibility of operations and reduced time to market.
Client is a leading supplier of life science desktop software, enterprise solutions, chemical databases and consulting services to the biotechnology, pharmaceutical and chemical industries.
Why use the SOA?
SOA is a paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains. It provides a uniform means to offer, discover, interact with and use capabilities to produce desired effects consistent with measurable preconditions and expectations.
The technology of Web services is the most likely connection technology of service-oriented architectures. Web services essentially use XML to create a robust connection.
The following figure illustrates a basic service-oriented architecture. It shows a service consumer at the right sending a service request message to a service provider at the left. The service provider returns a response message to the service consumer. The request and subsequent response connections are defined in a way that is understandable to both the service consumer and service provider. A service provider can also be a service consumer.
The target application was a web based search engine for Biochemical elements and structures. It provides varied options for searches.
The web services standards relevant to SOA and deployed for this application:
XML - a markup language for describing data in message payloads in a document format.
HTTPS - request/response protocol between clients and servers used to transfer or convey information
SOAP - a protocol for exchanging XML-based messages over a computer network, normally using HTTP.
Web Service Description Language (WSDL) - XML-based service description that describes the public interface, protocol bindings and message formats required to interact with a web service.
Universal Description, Discovery, and Integration (UDDI) - An XML-based registry to publish service descriptions (WSDL) and allow their discovery.
The project was initiated by gathering the high level requirements and objectives from the client. A feasibility study was done at Q3 to determine the advantages of using a SOA architecture based web service search engine versus a classical ASP based approach. A Proof of Concept successfully demonstrated the advantages of a SOA based web service approach as it definitely scored high on the performance, scalability and security aspects.
Once the scope was identified, the web services were developed based on the specific functionalities. The application was designed and developed keeping in mind the scalability and portability and functional benchmarks.
The advanced search can be done with Molecular Weight, Chemical Formula, Chemical Name or Synonym, Registry ID and Structure by entering a value in respective textboxes. A list of records is found and displayed. Details for each record can also be viewed.
The application also provides search results to other vendors such as Chemical 3D modeling applications. Termed as the live link application using the UDDI concepts, search results in the form of SOAP responses are returned to the desktop application.
The Web Service communicates the changes to the clients using Microsoft's implementation of discovery, and provides a Microsoft Web Service Description that can be used to programmatically implement client changes to adapt to changes in the services provided. For security purposes a 124 bit encryption is used for login id and password. It takes different inputs for search in SOAP XML form and sends the response in SOAP XML form.
Types of Search