SlideServe
Menu
Préférences
© SlideServe · v2026

Integration of LexBIG API with caCORE: Enhancing Component Architecture and Data Access

skip avatar
17 diapositives · 289 Views · Sep 18, 2014

This case study explores the integration of the LexBIG API within the caCORE framework, focusing on its model-driven architecture that utilizes UML for API generation. The caCORE components are designed with a flexible n-tier architecture that supports open APIs, ensuring seamless data access and controlled terminology. The integration leverages a new layer for data access and mapping of domain objects, improving functionality in complex systems. Demonstrations using RESTful interfaces highlight the powerful capabilities and performance of the LexBIG integrated system.

Integration of LexBIG API with caCORE: Enhancing Component Architecture and Data Access - slide 1
01 / 17Integration of LexBIG API with caCORE: Enhancing Component Architecture and Data Access
1 / 17

Télécharger la présentation

Integration of LexBIG API with caCORE: Enhancing Component Architecture and Data Access
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. caCORE Case Study: LexBIG API integration

  2. Characteristics of caCORE Components • Model Driven Architecture • All caCORE components designed in UML and appropriate APIs generated from this information model • n-tier Architecture and Open APIs • All caCORE components publish a series of well-described APIs (Java Beans, Web Services, HTTP interface (REST)) that provide open read access to data • APIs implemented in an n-tier architecture that allows for flexibility in the persistence layer and shields end users from implementation details • Registered Metadata • All caCORE components register detailed descriptions of their object APIs in a repository - this ‘data about data’ is called metadata • Controlled Terminology • All caCORE components use controlled terminology to describe metadata and (where appropriate) data

  3. caCORE System Architecture • caCORE is based on an n-tier architecture • Provides middleware between data and presentation • Data Access Objects • Domain objects (Java Beans) • Application Service • API Interfaces (JavaAPI, Web services, XML-HTTP)

  4. Non-ORM system • LexBIG is a Non-”Object Relational Mapping” (ORM) system • caCORE EVS domain object mapped to LexBIG objects. Mapping is Object To Object Mapping (OTOM)

  5. Current vs LexBIG integrated System Current: Web App DTSRPC DTS caCORE Metaphrase DB LexBIG integrated System: Web App Index caCORE LexBIG DB

  6. How was LexBIG integrated? • New LexAdapter – “wrapper” around LexBIG • Provides: • “wrapper” for OTOM (facilitate seamless integration of down-stream applications) • LexBIG API configurations • New Data Access layer -- EVSLexBigDAOImpl • DAO used by the caCORE system. Accesses data via LexAdapter

  7. Class Diagram

  8. Why Incorporate LexBIG in caCORE? • Current terminology components are proprietary, Metaphrase is frozen • Requires complex architecture in caCORE • Difficult to enhance functionality • Lacks support for open data formats • Performance, lexical processing, graphs • Foreign language, DL support limitations

  9. Demo – NCI Terminology Browser

  10. Demo – HTML Interface (REST) http://cabio-lexbig.nci.nih.gov/cacore32/GetHTML? query=gov.nih.nci.evs.domain.DescLogicConcept &gov.nih.nci.evs.domain.DescLogicConcept[@code=C12756]

  11. Demo – XML Interface (REST) http://cabio-lexbig.nci.nih.gov/cacore32/GetXML? query=gov.nih.nci.evs.domain.DescLogicConcept &gov.nih.nci.evs.domain.DescLogicConcept[@code=C12756]

  12. Demo – Java API /************* Java API Test ***********************************************/ // 1. Search a DescLogicConcept /***************************************************************************/ System.out.println("--------------------Java API Test-----------------------"); System.out.println("1. Search for DescLogicConcepts where concept name ‘blood*'"); System.out.println("------------------------------------------------------\n"); ApplicationService appService = ApplicationService.getRemoteInstance("http://cabio-lexbig.nci.nih.gov/cacore32/http/remoteService"); EVSQuery evsQuery = new EVSQueryImpl(); String vocabularyName = "NCI_Thesaurus"; String searchTerm = “blood*"; evsQuery.searchDescLogicConcepts(vocabularyName , searchTerm, 100); List resultList = appService.evsSearch(evsQuery); for(int i=0; i< resultList.size(); i++){ gov.nih.nci.evs.domain.DescLogicConcept dlc= (gov.nih.nci.evs.domain.DescLogicConcept) resultList.get(i); System.out.println("Code: "+ dlc.getCode() +"\t"+ dlc.getName()); }

  13. Demo - CaCORE Perl #!/usr/bin/perl -w use strict; use LWP::UserAgent; use HTTP::Request::Common; use CaCORE::ApplicationService; use CaCORE::EVS; my $appsvc = CaCORE::ApplicationService->instance("http://cabio-lexbig.nci.nih.gov/cacore32/ws/caCOREService"); # Search DescLogicConcept by code # # This test searches for all DescLogicConcepts with a given code # print "Search DescLogicConcept by code.\n"; my $dlConcept = new CaCORE::EVS::DescLogicConcept; $dlConcept->setCode("C12756"); eval{ @dlcSet = $appsvc->queryObject("CaCORE::EVS::DescLogicConcept", $dlConcept); }; foreach my $dlc (@dlcSet) { print "DescLogicConcept: code=" . $dlc->getCode . ", name=" . $dlc->getName . "\n"; }

  14. Project Resources and Communication • EVS / LexBIG install http://cabio-lexbig.nci.nih.gov/NCIBrowser/Dictionary.do http://cabio-lexbig.nci.nih.gov/cacore32/Happy.jsp • EVS Homepage: http://ncicb.nci.nih.gov/NCICB/infrastructure/cacore_overview/vocabulary • EVS 3.2 Release: • Release Notes http://ncicb.nci.nih.gov/NCICB/infrastructure/caCORE3.2_notes.txt • Java API download:http://ncicb.nci.nih.gov/download/cabiolicenseagreement.jsp • Technical Guide ftp://ftp1.nci.nih.gov/pub/cacore/caCORE3.2_Tech_Guide.pdf • EVS Users Mailing List https://list.nih.gov/archives/ncievs-l.html

  15. Extras

  16. Class Diagram

  17. Sequence Diagram • Use case: user searching for an EVS object. (Note: ApplicationService layers removed for brevity.)