Ebi-Msd'S Api Project: Siamak Sobhany Email: Sobhany@Ebi - Ac.Uk Urls: HTTP://WWW - Ebi.Ac - Uk/Msd

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 35

EBI-MSD’s API Project

Siamak Sobhany
Email: [email protected]
URLs: http://www.ebi.ac.uk/msd
http://www.ebi.ac.uk/~sobhany
Database application program interface development to the EBI-
MSD is a part of:

EU-TEMBLOR (New-generation bioinformatics) Project.


TEMBLOR is a the European Community Funded
Research Programme under the “Quality of Life and
Management of Living Resources” (1998-2002).

Prof Geoffrey J Barton Dr Thomas W Hamelryck


School of Life Sciences, Dept. Ultrastructuur, Vrije
WTB/MSI Complex, University of Universiteit Brussel
Dundee Paardenstraat 65
Dow St 1640 Sint-Genesius-Rode
Dundee DD1 5EH Brussels
Scotland UK Belgium
Email: [email protected] E-mail:
[email protected]
Project description:

This project will develop an Application


Programming Interface (API) to the EBI-MSD
database consist of a series of functions that
external 3rd party software can use to allow their
systems to access the EBI-MSD database
independently.
MSD API Infrastructure:

Internet
SOAP

Web Services
MSD API Framework

Intranet

Peer to Peer
EBI-MSD
Data Warehouse
Client Server

Application
MSD API Framework Design:
SOAP MSD API Framework
Web Services
Source Files User Layer

Host Language Compiler Chemistry Layer

Data Layer
Object Files

Host Linker

Oracle XML Files


MSD Other
Distribution Data Bases
Application
Data Base

On-Line/Off-Line to the EBI-MSD’s Host


MSD API Framework Implementation:
EBI- MSD’s API Framework

gSOAP tools for Web Services


User Layer
Wrappers

Scientific Lisp Library for C++


Chemistry Layer Other existing libraries

C++ / LISP XLISP Evaluator

Data Layer Data Template library


(Data + Meta Data)
XML for C++ library
C++ / SQL
Data Layer Data Template library
(Data + Meta Data)
XML for C++ library
C++ / SQL

Data Layer: Data + Meta Data


Flexible API vs. rigid API
Data Warehouse is a Live DatBase and is changing not only from the
point of view of Data but also from the structural aspects (because of
producing and generating value added Data).
So we have to make API as dynamic and flexible to changes of data
model as possible.
API includes Meta Data and Data model reading tools.
Data Layer technical:
Oracle, ODBC C++ Template Library (OTL):

To manipulate Oracle data or any other Data Bases such as MySQL, PostgreSQL,
DB2,… through Oracle native call interfaces or ODBC bridges by SQL queries.
This library provides the following functionality:
Classes to design a scalable, shared server application that can support large
numbers of users securely SQL access functions, for managing database access,
processing SQL statements, calling stored procedures on an Oracle database
server. Datatype mapping and manipulation functions, for manipulating data
attributes of Oracle types with the best performance and efficiency.
With just a handful of concrete classes:
otl_stream, otl_connect, otl_exception, otl_long_string,This library
gets expanded into direct database function calls, so it provides ultimate
performance, reliability and thread safety in multi-processor environments
as well as traditional batch programs. Its highly portable because is a
single header file.
OTL stream concept:
Any SQL statement, PL/SQL block or a stored procedure call is
characterized by its input / output [variables].
Xerces C++ Parser

Xerces-C++ is a validating XML parser written in a portable subset of C++.


Xerces-C++ makes it easy to give Data Layer the ability to read and write XML
data. A shared library is provided for parsing, generating, manipulating, and
validating XML documents.
This part of Data Layer has not been implemented yet an is subject of nex
stage in developing API.
Lisp Library for C++
Chemistry Layer Other existing libraries
XLISP Evaluator
C++ / LISP

Symbol based dynamic object and Data container.


Making on-the-fly combined result sets.
LISP Library in C++:

Implementation of Embedded AI sub-systems in C++


This will adds an Intelligent Agent part to MSD API Framework.
Supporting any application where dynamically typed objects are needed in C++.
Gives us more of a dynamic Lisp prototyping environment than ordinary static
C++.
XLISP Evaluator:
As built in LISP evaluator to load additional
existing or new developed LISP programs and
Scripts. This feature would be optional and for
the extended phase of development:
Putting Semantic and Ontologies to Work
The scripting language comparison chart below gives you an overview of the features
available in each of the most popular scripting languages today.
Java Visual
Features Tcl Perl Python LISP
Script Basic
Speed of use Rapid development
Flexible, rapid evolution
Great regular expressions
Breadth of functionality Easily extensible
Embeddable
Easy GUIs *
Internet and W eb-enabled
Enterprise usage Cross platform
Internationalization support
Thread safe *
Database access
Dynamic Type Objects
Artificial Intelligence
Symbol Processing
Previous Resources
Popularity
advocacy

* Python notes:
Easy GUIs are achived by embedding Tcl/Tk into Python and using the Tk toolkit as
the Tkinter class.
Thread safety in Python is acheived with a single global lock around the bytecode
interpreter, which can have scaling problems on multiprocessors. Blocking I/O calls
are made outside the lock.
gSOAP tools for Web Services
User Layer
Wrappers

SOAP/XML Web Service and Client Applications in C and C++

SOAP(Simple Object Access Protocol):

Is a versatile,simple and light-weight message exchange format in


a distributed environment.
SOAP encapsulates RPC calls using the extensibility and flexibility
of XML.The XML-based protocol is language and platform neutral,
which means that information sharing relationships can be initiated
among disparate parties, across different platforms, languages
and programming environments.
SOAP is not a competitive technology to component systems and
object-request broker architectures such as the CORBA
component model and DCOM, but rather complements these
technologies.
CORBA, DCOM, and Enterprise Java enable resource sharing
within a single organization while SOAP technology aims to bridge
the sharing of resources among disparate organizations possibly
located behind firewalls.
SOAP applications exploit a wire-protocol (typically HTTP) to
communicate with Web Services to retrieve dynamic content.

For example, This allows real-time ``what-if'' scenarios and


enables the development of agents that access real-time
information. Other examples are control and visualization of large-
scale simulations from a desktop computer, the sharing of
laboratory results using cell phones, remote database access, and
science portals.
Interoperability
SOAP is a language- and platform-neutral RPC protocol that adopts XML as the
marshalling format. SOAP applications typically use the firewall-friendly HTTP
transport protocol.

C# Client

Java Client
WSDL

Perl Client
API Web Service

C/C++ Client
Develop
Invoke
Ubiquity. The SOAP protocol and its industry-wide support
promises to make services available to users anywhere, e.g. in
cellphones, pocket PCs, PDAs, embedded systems, and
desktop applications.
Simplicity. SOAP is a light-weight protocol based on XML. An
example of a simple SOAP service is a sensor device that
responds to a request by sending an XML string containing the
sensor readout. This device requires limited computing
capabilities and can be easily incorporated into an embedded
system.
Services. SOAP Web Services are units of application logic
providing data and services to other applications over the
Internet or intranet. A Web Service can be as simple as a shell
or Perl script that uses the Common Gateway Interface (CGI) of
a Web server such as Apache. A web service can also be a
server-side ASP, JSP, or PHP script, or an executable CGI
application written in a programming language for which an off-
the-shelf XML parser is available.
Transport. A SOAP message can be sent using HTTP, SMTP, TCP, UDP, and so on. A
SOAP message can also be routed, meaning a server can receive a message, determine
that it is not the final destination, and route the message elsewhere. During the routing,
different transport protocols can be used.
Security. SOAP over HTTPS is secure. The entire HTTP message, including both the
headers and the body of the HTTP message, is encrypted using public asymmetric
encryption algorithms. SOAP extensions that include digital signatures are also available.
Single sign-on (authentication) and delegation mechanisms required for Grid computing can
be easily built on top of SOAP.
Firewalls. Firewalls can be configured to selectively allow SOAP messages to pass
through, because the intent of a SOAP message can be determined from the message
header.
Compression. HTTP1.1 supports gzipped transfer encodings, enabling compression of
SOAP messages on the fly.
Transactions. SOAP provides transaction-handling capabilities through the SOAP
message header part. The transaction-handling capabilities allow a state-full implementation
of a Web Service by a server-side solution utilizing local persistent storage media.
Exceptions. SOAP supports remote exception handling.
The possible disadvantages of SOAP are:
GC. The absence of mechanisms for distributed garbage collection (GC) and
the absence of objects-by-reference.
Floats. Floats and doubles are represented in decimal (text) form in XML,
which can possibly contribute to a loss of precision. Other SOAP encodings
such as hexBinary and Base64 can be used to encode e.g. IEEE 754 standard
floating point values, but this may hamper the interoperability of systems that
use other floating point representations.
WSDL. The Web Service Description Language is an
XML format for describing network services as abstract
collections of communication endpoints capable of
exchanging structured information. The platform- and
language-neutral WSDL descriptions published by Web
Services enable the automatic generation of SOAP stubs
for the development of clients within a specific
programming environment. The language-specific stubs
can be used to invoke the remote methods of the Web
Service.

UDDI. The Universal Description, Discovery, and


Integration specification provides a universal service for
registry, lookup, discovery, and integration of world-wide
business services. WSDL descriptions complement
UDDI by providing the abstract interface to a service.
Ontologies
Lisp Library for C++
Chemistry Layer Other existing libraries
XLISP Evaluator
C++ / LISP

Ontologies
Find Entry ID's where Glucose (3-letter-code = GLC) has
GLC hbond LINK to ARG
and GLC hbond LINK to ASN
and GLC "ring" interacting with "ring" of a TRP
and ARG at Terminus of a STRAND
and ASN not in a HELIX
Then
For each Entry_ID get list of Residue_ID's that are
within 10Ang of the centre_of_gravity of the GLC molecule
in the Entry
Then
Foreach Entry_ID and foreach Residue_ID get ATOM properties
Supporting platforms
and compilers:
g++ gcc 3.x on Unix, Linux
all platforms and cygwin for
Windows 32
Sun OS 5.0 and Compaq
Tru64 Native compilers

You might also like