NIF Component Web Services - PowerPoint PPT Presentation

1 / 20
About This Presentation
Title:

NIF Component Web Services

Description:

WSDL frameworks come with auto-marshalling tools - e.g., given a WSDL, the ... NIF TextPresso Search WS. Access. http://dev.textpresso.org/wsdl/textpresso.wsdl ... – PowerPoint PPT presentation

Number of Views:73
Avg rating:3.0/5.0
Slides: 21
Provided by: Maryann131
Category:
Tags: nif | component | services | web

less

Transcript and Presenter's Notes

Title: NIF Component Web Services


1
NIF ComponentWeb Services
  • William Bug, M.S., M.Phil.
  • UCSD

2
Web Services what are they?
  • Machine interface
  • Communication data exchange for Software
    components
  • Evolution of pre-Web remote procedure calls (RPC)
  • Component 1 ----(request)----gt Component 2
  • Component 2 ----(respond)----gt Component 1
  • Critical for constructing reusable
    infrastructural components
  • Interoperability
  • Enables distributed, federated infrastructure
    component reuse
  • Simplicity
  • Hides complexity and provides uniform
    communication mechanism
  • Expressivity
  • implement component-specific Application
    Programming Interfaces (API) using simple
    complex data types

3
Web Services what are they?
  • Web
  • Leverage ubiquity of web communication
    infrastructure
  • HTTP
  • Web Interfaces
  • Humans have web browsers
  • Software components have Web Services
  • Richly defined APIs using
  • common schema Web Service Description Language
    (WSDL)
  • ubiquitous extendable markup language XML
  • envelope structured messages Simple Object
    Access Protocol (SOAP)
  • Structured data exchange reduces cost to
    implement software interoperation
  • Typically use common web TCP ports
  • open web party line

4
Web Services what are they?
  • Non-WSDL web-based software RPC
  • HTTP query
  • HTTP GET HTTP POST
  • Designed to send web browser HTML Form info to a
    server receive results
  • Used to SELECT or INSERT/UPDATE/DELETE records in
    a database
  • Pros
  • HTTP query is ubiquitous on the web
  • an import method to exploit when mining web data
    repositories
  • algorithms can bypass the form to use HTTP GET or
    POST directly
  • Requires less sophisticated software engineering
    skills
  • Cons
  • Antiquated, less structured means to query web
    databases
  • Not designed for low-cost, standard software
    component integration
  • XML-based query
  • Used by Neurogateway.org
  • Client program assembles a query according to a
    defined vocabulary against a specified data
    schema (NIF BrainML registry schema)
  • Nestled between WSDL HTTP GET

5
Web Services why are they useful?
  • Common, open TCP/IP ports
  • Unlike other forms of inter-component
    communication uses open TCP ports typically not
    blocked by firewalls and processed by ubiquitous
    HTTP servers
  • Unlike ODBC/JDBC/ADO, IIOP, DCOM, Java RMI, etc.
  • These binary formats are more efficient, but
    often more complex or time-consuming to create
    and maintain
  • Structured data types
  • Complex methods require complex data
  • HTTP GET - everything is STRING-based key-value
    pairs
  • HTTP POST - can do non-STRING, but not complex
    without a lot of coding
  • WSDL
  • all types from simple through complex are
    declared explicitly which makes WS application
    logic much easier to create and maintain
  • inputs and outputs can be specified via a
    separate complex XML Schema
  • Software frameworks in most languages (C/C,
    Java, Python, Ruby, etc.) that can automatically
    translate native code objects to WSDL
    representation

6
Web Services why are they useful?
  • WSDL-based automation
  • Tools created to use WSDL much less costly for
    each programmer (service and client) creating or
    digested specific services
  • Marshalling/Unmarshalling Proxy code
  • the complex set of heuristics used to translate
    native objects (variables and structures in
    C/C, Java, Python, etc.) into a serialized form
    that can be sent over the wire via HTTP
  • Unmarshalling is the inverse of this process
  • Proxy objects handle this marshalling so remote
    methods appear local
  • When using WSDL, service provider and client
    programmers do not have to write ANY marshalling
    or proxy code
  • This is one of THE primary reasons earlier
    network-based RPC such as CORBA, IIOP, DCOM were
    costly and difficult to use. Few developers
    competent using those standards, because they
    needed to implement some object translation.
  • Marshalling/Proxies very error-prone and brittle
    (sensitive to change)
  • WSDL frameworks come with auto-marshalling tools
    - e.g., given a WSDL, the Apache Axis WS
    framework tool WSDL-to-Java automatically creates
    the Java objects for you.
  • Since WSDL frameworks handle the marshalling,
    component communication with WSDL is much more
    like non-network coding
  • Network Effect (in the marketing sense)

7
Web Services What do they look like?
  • Component 1 ----(request)----gt Component 2
  • lt?xml version"1.0" encoding"UTF-8"?gt
  • ltSOAP-ENVEnvelope
  • xmlnsxsd"http//www.w3.org/2001/XMLSchema"
  • xmlnsxsi"http//www.w3.org/2001/XMLSchema-in
    stance"
  • xmlnsSOAP-ENC"http//schemas.xmlsoap.org/soa
    p/encoding/"
  • SOAP-ENVencodingStyle"http//schemas.xmlsoap
    .org/soap/encoding/"
  • xmlnsSOAP-ENV"http//schemas.xmlsoap.org/soa
    p/envelope/"gt
  • ltSOAP-ENVBodygt
  • ltmgetTerm xmlnsm"http//mediator.nbirn.
    net8080/axis/Ontology.jws"gt
  • ltin0 xsitype"xsdstring"gtSubstantia
    nigralt/in0gt
  • ltin1 xsitype"xsdboolean"gttruelt/in1gt
  • ltin2 xsitype"xsdstring"gtNIFSTDlt/in2
    gt
  • lt/mgetTermgt
  • lt/SOAP-ENVBodygt
  • lt/SOAP-ENVEnvelopegt

8
Web Services What do they look like?
  • Component 2 ----(repsonse)----gt Component 1
  • lt?xml version"1.0" encoding"UTF-8"?gt
  • ltsoapenvEnvelope
  • xmlnssoapenv"http//schemas.xmlsoap.org/soap
    /envelope/"
  • xmlnsxsd"http//www.w3.org/2001/XMLSchema"
  • xmlnsxsi"http//www.w3.org/2001/XMLSchema-in
    stance"gt
  • ltsoapenvBodygt
  • ltns1getTermResponse
  • soapenvencodingStyle"http//schemas.
    xmlsoap.org/soap/encoding/"
  • xmlnsns1"http//mediator.nbirn.net8
    080/axis/Ontology.jws"gt
  • ltgetTermReturn xsitype"xsdstring"gt
  • ltbiotermgt
  • lttermSetgt
  • ltterm unique__id"birnlex_
    782" name"Predominantly gray regional part of
    substantia nigra" ontology"NIFSTD"
    definition"(null)"/gt
  • ltterm unique__id"birnlex_
    775" name"Regional part of substantia nigra"
    ontology"NIFSTD" definition"(null)"/gt
  • ltterm unique__id"birnlex_
    978" name"Regional part of substantia nigra pars
    reticulata" ontology"NIFSTD" definition"(null)"/
    gt
  • ltterm unique__id"sao34994
    437" name"Substantia Nigra Dopaminergic Cell"
    ontology"NIFSTD" definition"(null)"/gt
  • ltterm unique__id"birnlex_
    789" name"Substantia nigra" ontology"NIFSTD"
    definition"Predominantly gray matter midbrain
    structure lying dorsal to the crus cerebri and
    ventral to the midbrain tegmentum. It is divided
    into a dorsal, cellularly compact region known as
    the pars compacta and a more ventrally located,
    containing more loosely packed cells, the pars
    reticulata. The most lateral region of the
    reticulata is identified as the pars lateralis
    (MM)."/gt
  • ltterm unique__id"nifext_1
    45" name"Substantia nigra dopaminergic cell"
    ontology"NIFSTD" definition"(null)"/gt

9
NIF II Web Service Interfaces
NIF II Application Infrastructural Components
Rsrc Registry
Bonfire
TextPresso
Term Index Srvc
Mediator Registry
Mediator Query
Neuroscientist UIs
Term Index Source
10
Web API for NIF data access
NIF II Application Infrastructural Components
Bonfire
Rsrc Registry
TextPresso
11
NIF Web Services
  • BONFIRE
  • http//mediator.nbirn.net8080/axis/Ontology.jws?w
    sdl
  • TextPresso
  • http//dev.textpresso.org/wsdl/textpresso.wsdl
  • NIF Resource Registry
  • http//neurogateway.org/catalog/queryXMLExec.do
  • Mediator Query
  • http//mediator.nbirn.net8080/axis/Registry.jws?w
    sdl
  • Mediator Source Dtb Registry
  • http//mediator.nbirn.net8080/axis/Registry.jws?w
    sdl
  • Term Index Service
  • http//mediator.nbirn.net8080/axis/TIS.jws?wsdl

12
NIF Terminology Server WS (BONFIRE)
  • Access
  • http//mediator.nbirn.net8080/axis/Ontology.jws?w
    sdl
  • Methods
  • getSourcesByTerm(probeTerm)
  • Probe all source ontologies/terminologies for
    term - return source Id
  • getConceptByTerm(probeTerm, useSynonyms,
    ontologyId)
  • Probe ontology for term - return ID, prefLabel,
    definition if found
  • getSynonyms(conceptID, ontologyID)
  • Return synonyms for a prefLabel in a given
    knowledge source
  • showConceptProperties(conceptID)
  • Return variety of annotation properties for a
    given concept in NIFSTD
  • Concept graph exploration
  • findNeighbor(conceptId)
  • findShortestPath(conceptId1, conceptId2)
  • findDescendents(conceptId, relationType, maxLevel)

13
NIF TextPresso Search WS
  • Access
  • http//dev.textpresso.org/wsdl/textpresso.wsdl
  • Methods
  • textpressoWebService(keywords, fields,
    categories, search_scope, search_mode,
    exact_match, case_sensitive)
  • Fields citation fields - e.g., abstract, title,
    etc.
  • Categories coarse-level concepts
  • Search scope document field sentence
  • Search mode Boolean latent theme vector

14
NIF Resource Repository WS
  • Access
  • http//neurogateway.org/catalog/queryXMLExec.do
  • Methods
  • queryXMLExec
  • Client code creates an instance of BrainML that
    is customized to the NIF registry fields

15
NIF Level3 Mediator (BIRN Mediator) WS
  • Access
  • http//mediator.nbirn.net8080/axis/Mediator.jws?w
    sdl
  • Methods
  • runQuery(query)
  • Query specified in Mediator Query XML Schema
  • Response specified in Mediator Query Response XML
    Schema

16
BIRN Mediator Registry WS
  • Access
  • http//mediator.nbirn.net8080/axis/Registry.jws?w
    sdl
  • Methods
  • getRegistryData()
  • getNewDataSources(fromDate, toDate)
  • getAllSources(sourceNameWildcard)
  • returns list of all registered sources
  • getAllTablesFields(sourceNameWildcard)
  • getAllViews(viewNameWildcard)
  • getAllFields4View(viewNameWildcard)
  • getFields4SourceTable (sourceName, tableName)
  • getFields4View(ivdName)
  • returns SQL DDL like description of source
    structures

17
BIRN Term Index Source WS
  • Access
  • http//mediator.nbirn.net8080/axis/TIS.jws?wsdl
  • Methods
  • getTISdata()
  • returns all Term Index Source data in
    multi-record format ontology id, relation name,
    field name and type
  • searchDataSourceByConceptID(conceptIdList)
  • searchDataSourceByConceptName(conceptNameList)

18
NIF Web Services Team
  • Implementation
  • Vocabulary Server Term Index Source (TIS)
  • Brian Sanders, UCSD
  • NIF Resource Repository
  • Adrian Robert, Ajit Jagdale, Eliza Chan,
    Cornell
  • TextPresso
  • Arun Rangarajun Hans-Michael Muller, Cal Tech
  • BIRN Mediator Query Mediator Registry
  • Vadim Astakhov, UCSD
  • Testing
  • Luis Marenco Yuli Li, Yale
  • Xufie Qian, UCSD
  • Design
  • Architecuture
  • Jeff Grethe, Amarnath Gupta, Bill Bug, UCSD
  • Individual Components
  • implementers listed above

19
NIF Web Service Future
  • Use of web services to update NIFSTD
    lexically-enhanced ontology
  • WS connections to NLM/NCBI
  • NCBI Entrez Gene, Homologene, Unigene
  • Currently running as stand-alone program (alpha)
  • NLM MeSH Browser (HTTP API)
  • Pending
  • MyNIF Alerts
  • Auto-run saved searches
  • Not in current contract - but is very much
    compatible with current infrastructure
  • Question
  • Would this be set up as an email service,
    web-based portal, RSS?

20
FINIS
  • Thank you
Write a Comment
User Comments (0)
About PowerShow.com