WS-Talk and UDDI WS-Talk and UDDI Department of Computer Science - - PowerPoint PPT Presentation

ws talk and uddi ws talk and uddi
SMART_READER_LITE
LIVE PREVIEW

WS-Talk and UDDI WS-Talk and UDDI Department of Computer Science - - PowerPoint PPT Presentation

WS-Talk and UDDI WS-Talk and UDDI Department of Computer Science Royal Holloway, University of London Fionn Murtagh, Pedro Contreras {fionn, pedro} @ cs.rhul.ac.uk UDP Introduction Whats UDDI Searches in UDDI UDDI


slide-1
SLIDE 1

WS-Talk and UDDI WS-Talk and UDDI

Department of Computer Science Royal Holloway, University of London Fionn Murtagh, Pedro Contreras {fionn, pedro} @ cs.rhul.ac.uk

UDP

slide-2
SLIDE 2

Introduction

  • What’s UDDI
  • Searches in UDDI
  • UDDI Distributions and flavours
  • Commercial Implementation vs Open Source
  • JUDDI, UDDI Browser, UDDI4J
  • Discussion WS-Talk and UDDI
slide-3
SLIDE 3

What’s UDDI

Universal Description Discovery and Integration is de facto standard web services catalogue. It consists of a directory where business can register and search for web services, centred around a WS interface described by a WSDL document. It is based on a set of specifications (OASIS standard) with public and private implementations and providing two web services: Inquiry : provide functions such as find_business, get_businessDetails Publisher : provide functions such as save_business, delete_business All these operations are based in SOAP messages.

slide-4
SLIDE 4

Searches in UDDI

Three can of searches can be performed using UDDI registry:

  • White pages search: returns basic information such as address,

contact, and identifiers about a company.

  • Yellow pages search: retrieve information according to industrial

categorization and taxonomies, such as NAICS, ISO3166, and UNSPSC

  • Green pages service search: retrieve technical information about

Web service, as well as information about how to execute these services.

slide-5
SLIDE 5

Commercial implementations

Acumen Technology, http://acumentechnologies.com BEA, WebLogic Server UDDI Registry Fujitsu, http://www.fujitsu.com/global/services/software/interstage/ IBM, http://www-306.ibm.com/software/solutions/webservices/uddi/ Infravio, http://www.infravio.com/products/ IONA, http://www.iona.com/products/artix/welcome.htm Microsoft, http://www.microsoft.com/windowsserver2003/technologies/idm/uddi/default.mspx Novell, http://developer.novell.com/uddi/ Oracle, http://www.oracle.com/technology/tech/webservices/htdocs/uddi/index.html SAP, http://www.sap.com:80/solutions/netweaver/index.epx Select Business Solutions, http://www.selectbs.com/products/select-uddiserver.htm SOA Software, http://www.soa.com/index.php/section/products/registry_manager/ Sun Microsystems, Java Web Services Developer Pack. http://java.sun.com/webservices/jwsdp/index.jsp Systinet, http://www.systinet.com/products/sr/overview

slide-6
SLIDE 6

Open Source Implementations

Apache.org, JUDDI, http://ws.apache.org/juddi/

・Open Source and Platform Independent ・Supports for JDK 1.3.1 and later ・UDDI version 2.0 compliant implementation ・Use with any relational database that supports ANSI standard SQL (MySQL, DB2, Sybase, JDataStore, HSQLDB, etc.) ・Deployable on any Java application server that supports the Servlet 2.3 specification (Jakarta Tomcat, JOnAS, WebSphere, WebLogic, Enterprise Server, JRun, etc.) ・jUDDI registry supports a clustered deployment configuration. ・Easy integration with existing authentication systems

UDDI Browser, http://uddibrowser.org/

Still early version but gives a GUI to work from the client point of view

  • ver different UDDI repositories
slide-7
SLIDE 7

Open Source Implementations

APIs

UDDI4J.org, http://uddi4j.sourceforge.net/

UDDI4J contains an implementation of the client side of UDDI from which the application needs to publish, find, and to bind a Web service. It also includes the source of the code, the complete JavaDoc documentation, and sample applications.

SOAP:LITE, http://sourceforge.net/projects/soaplite/ or http://soaplite.com/

Collection of Perl modules that provides a simple and lightweight implementation of SOAP, XML-RPC, UDDI and other webservice-related spec.

PHPUDDI, http://phpuddi.sourceforge.net/

Stand-alone PHP classes with no external dependencies, supporting basic UDDI inquiry APIs. However, not able to publish documents. Not as relevant as those above.

slide-8
SLIDE 8

JUDDI Methods

JUDDI API (proprietary) get_registryInfo find_publisher get_publisherDetail save_publisher delete_publisher JUDDI Inquiry API find_business find_service find_binding find_tModel find_relatedBusinesses get_businessDetail get_businessDetailExt get_serviceDetail get_bindingDetail get_tModelDetail JUDDI Publish API get_authToken get_registeredInfo discard_authToken save_business save_service save_binding save_tModel delete_business delete_service delete_binding delete_tModel add_publisherAssertions set_publisherAssertions get_publisherAssertions delete_publisherAssertion get_assertionStatusRepo

slide-9
SLIDE 9

JUDDI Example

Query

<?xml version="1.0" encoding="utf-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <find_publisher maxRows="100" generic="1.0" xmlns="urn:juddi-org:api_v1"> <name>***</name> </find_publisher> </soapenv:Body> </soapenv:Envelope>

Results

<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <publisherList generic="1.0" operator="jUDDI.org" xmlns="urn:juddi-org:api_v1"> <publisherInfos/> </publisherList> </soapenv:Body> </soapenv:Envelope>

Find_plublisher

slide-10
SLIDE 10

Populating JUDDI server

Two methods were tried

  • Produce a piece of source code to insert records like UDDI4J
  • r SOAP:LITE.

– Development effort needed.

  • Insert records directly into the DB using MySQL. The easiest
  • ption.

– DB reverse engineering needed to understand data structure.

slide-11
SLIDE 11

JUDDI

ADDRESS : 1 BUSINESS_ KEY CONTACT_ID ADDRESS_ID USE_TYPE SORT_CODE TM ODEL_KEY v archar(41) intege r(11) intege r(11) v archar(255 ) v archar(10) v archar(41) <pk,fk 1,fk 2> <pk,fk 2> <pk> <fk3> ADDRESS_ LINE BUSINESS_KEY CONTACT_ ID ADDRESS_ ID ADDRESS_ LINE_ID LINE KEY_NAM E KEY_VALUE varc ha r(41) integer(11 ) integer(11 ) integer(11 ) varc ha r(80) varc ha r(255) varc ha r(255) <p k ,fk1,fk2,fk3> <p k ,fk1,fk3> <p k ,fk1> <p k > AUTH_TOKEN AUTH_TOKEN PUBLISHER_ID PUBLISHER_NAME CREATED LAST_USED NUMBER_OF_ USES TOKEN_STATE v a rchar(51 ) v a rchar(20 ) v a rchar(25 5) tim estam p(19) tim estam p(19) in teg er(11) in teg er(11) <pk > <fk> BINDING_ CATEGORY BINDING_ KEY CATEGORY_ID TMODEL_KEY_REF KEY_NAM E KEY_VAL UE varchar(4 1) inte ger(11) varchar(4 1) varchar(2 55) varchar(2 55) <pk,fk> <pk> BINDING_DESCR BINDING_ KEY BINDING_ DESCR_ID L ANG_CODE DESCR v archar(41) integer(11) v archar(5) v archar(255 ) <pk ,fk > <pk > BINDING_TEM PLATE SERVICE_KEY BINDING_ KEY ACCESS_ POINT_TYPE ACCESS_ POINT_URL HOSTING_REDIRECTOR L AST_UPDATE v archar(41 ) v archar(41 ) v archar(20 ) v archar(25 5) v archar(25 5) tim es tam p(19) <fk> <pk > BUSINESS_CATEGORY BUSINESS_KEY CATEGORY_ID TMODEL_KEY_REF KEY_NAM E KEY_VAL UE varchar(4 1) inte ger(11) varchar(4 1) varchar(2 55) varchar(2 55) <pk,fk> <pk> BUSINESS_DESCR BUSINESS_KEY BUSINESS_DESCR_ID L ANG_CODE DESCR varc ha r(41) integer(1 1) varc ha r(5) varc ha r(255) <p k ,fk> <p k > BUSINESS_ENTITY BUSINESS_KEY AUTHORIZED_ NAM E PUBLISHER_ID OPERATOR LAST_UPDATE varchar(4 1) varchar(2 55) varchar(2 0) varchar(2 55) tim estam p(19) <pk> <fk > BUSINESS_IDENTIFIER BUSINESS_KEY IDENTIFIER_ ID TMODEL_KEY_REF KEY_NAM E KEY_VAL UE varchar(4 1) inte ger(11) varchar(4 1) varchar(2 55) varchar(2 55) <pk,fk> <pk> BUSINESS_NAM E BUSINESS_KEY BUSINESS_NAM E_ID L ANG_CODE NAM E varc har(41) integer(11 ) varc har(5) varc har(255) <pk,fk> <pk> BUSINESS_SERVICE BUSINESS_KEY SERVICE_ KEY LAST_ UPDATE v a rchar(41 ) v a rchar(41 ) tim es tam p(19) <fk> <pk > CONTACT BUSINESS_KEY CONTACT_ ID USE_TYPE PERSON_NAM E varc ha r(41) integer(1 1) varc ha r(255) varc ha r(255) <p k ,fk> <p k > CONTACT_DESCR BUSINESS_KEY CONTACT_ID CONTACT_DESCR_ID L ANG_CODE DESCR v a rchar(4 1) in teg er(11) in teg er(11) v a rchar(5 ) v a rchar(2 55) <pk,fk1,fk 2 > <pk,fk2> <pk> DISCOVERY_URL BUSINESS_KEY DISCOVERY_ URL_ID USE_TYPE URL varc har(41) integer(11 ) varc har(255) varc har(255) <pk,fk> <pk> EM AIL BUSINESS_KEY CONTACT_ID EMAIL_ ID USE_TYPE EMAIL_ ADDRESS v archar(41 ) intege r(11) intege r(11) v archar(25 5) v archar(25 5) <pk,fk 1 ,fk 2 > <pk,fk 2 > <pk> INSTANCE_DETAILS_DESCR BINDING_KEY TMODEL_INSTANCE_INFO_ ID INSTANCE_DETAILS_DESCR_ID L ANG_CODE DESCR v a rchar(4 1) in teg er(11) in teg er(11) v a rchar(5 ) v a rchar(2 55) <pk,fk1,fk 2 > <pk,fk2> <pk> INSTANCE_DETAILS_DOC_DESCR BINDING_KEY TM ODEL_INSTANCE_INFO_ID INSTANCE_DETAIL S_DOC_ DESCR_ID LANG_CODE DESCR varc h ar(41) integer(1 1) integer(1 1) varc h ar(5) varc h ar(255) <pk ,fk1,fk2> <pk ,fk2> <pk > PHONE BUSINESS_KEY CONTACT_ID PHONE_ ID USE_TYPE PHONE_ NUM BER v archar(41 ) intege r(11) intege r(11) v archar(25 5) v archar(50 ) <pk,fk 1 ,fk 2 > <pk,fk 2 > <pk> PUBLISHER PUBLISHER_ ID PUBLISHER_ NAM E EMAIL_ ADDRESS IS_ADM IN IS_ENABLED varc h ar(20) varc h ar(255 ) varc h ar(255 ) varc h ar(5) varc h ar(5) <pk > PUBLISHER_ASSERTION FROM _KEY TO_KEY TM ODEL_KEY KEY_NAME KEY_VALUE FROM _CHECK TO_CHECK varchar(4 1) varchar(4 1) varchar(4 1) varchar(2 55) varchar(2 55) varchar(5 ) varchar(5 ) <fk > SERVICE_ CATEGORY SERVICE_KEY CATEGORY_ID TMODEL_KEY_REF KEY_NAM E KEY_VAL UE varchar(4 1) inte ger(11) varchar(4 1) varchar(2 55) varchar(2 55) <pk,fk> <pk> SERVICE_ DESCR SERVICE_KEY SERVICE_DESCR_ID L ANG_CODE DESCR varc har(41) integer(11 ) varc har(5) varc har(255) <pk,fk> <pk> SERVICE_ NAM E SERVICE_KEY SERVICE_NAME_ID L ANG_CODE NAM E varchar(4 1) inte ger(11) varchar(5 ) varchar(2 55) <pk,fk> <pk> TM ODEL TM ODEL_ KEY AUTHORIZED_NAME PUBL ISHER_ID OPERATOR NAM E OVERVIEW_URL DELETED LAST_UPDATE varchar(41) varchar(255) varchar(20) varchar(255) varchar(255) varchar(255) varchar(5) tim esta mp(19) <pk> <fk > TMODEL_CATEGORY TMODEL_KEY CATEGORY_ID TMODEL_KEY_REF KEY_NAM E KEY_VAL UE varchar(4 1) inte ger(11) varchar(2 55) varchar(2 55) varchar(2 55) <pk,fk> <pk> TM ODEL _DESCR TMODEL_KEY TMODEL_DESCR_ID L ANG_CODE DESCR v archar(41 ) intege r(11) v archar(5) v archar(25 5) <pk,fk > <pk> TM ODEL _DOC_DESCR TMODEL_KEY TMODEL_DOC_DESCR_ID L ANG_CODE DESCR v archar(41) integer(11) v archar(5) v archar(255 ) <pk ,fk > <pk > TMODEL_IDENTIFIER TMODEL_KEY IDENTIFIER_ ID TMODEL_KEY_REF KEY_NAM E KEY_VAL UE varchar(4 1) inte ger(11) varchar(2 55) varchar(2 55) varchar(2 55) <pk,fk> <pk> TM ODEL _INSTANCE_INFO BINDING_KEY TM ODEL _INSTANCE_INFO_ID TM ODEL _KEY OVERVIEW_ URL INSTANCE_PARM S v arc h ar(41) integer(11) v arc h ar(41) v arc h ar(255 ) v arc h ar(255 ) <pk ,fk 1> <pk > <fk2> TM ODEL_INSTANCE_INFO_DESCR BINDING_KEY TMODEL_INSTANCE_INFO_ ID TMODEL_INSTANCE_INFO_ DESCR_ID L ANG_CODE DESCR v a rchar(41 ) in tege r(11) in tege r(11) v a rchar(5) v a rchar(25 5) <pk,fk 1 ,fk 2 > <pk,fk 2 > <pk> ADDRESS : 2 BUSINESS_KEY CONTACT_ID ADDRESS_ID USE_TYPE SORT_CODE TMODEL_KEY v arc h ar(41) integer(11) integer(11) v arc h ar(255 ) v arc h ar(10) v arc h ar(41) <pk ,fk 1,fk 2> <pk ,fk 2> <pk > <fk3>
slide-12
SLIDE 12

JUDDI Data Model

ADDRESS : 1 ADDRESS_ID USE_TYPE SORT_CODE <pi> I VA255 VA10 <M > ADDRESS_LINE ADDRESS_LINE_ID LINE KEY_ NAM E KEY_ VAL UE <pi> I VA80 VA255 VA255 <M > <M > AUTH_TOKEN AUTH_TOKEN PUBLISHER_NAM E CREATED LAST_USED NUMBER_OF_USES TOKEN_ STATE <pi> VA5 1 VA2 55 TS TS I I <M > <M > <M > <M > <M > <M > BINDING_CATEGORY CATEGORY_ID TMODEL_ KEY_REF KEY_ NAM E KEY_ VAL UE <pi > I VA41 VA25 5 VA25 5 <M> <M> BINDING_ DESCR BINDING_ DESCR_ID LANG_CODE DESCR <p i> I VA5 VA25 5 <M> <M> BINDING_TEMPLATE BINDING_ KEY ACCESS_ POINT_TYPE ACCESS_ POINT_URL HOSTING_ REDIRECTOR L AST_UPDATE <pi > VA41 VA20 VA255 VA255 TS <M> <M> BUSINESS_CATEGORY CATEGORY_ID TMODEL_ KEY_REF KEY_ NAM E KEY_ VAL UE <pi > I VA41 VA25 5 VA25 5 <M> <M> BUSINESS_DESCR BUSINESS_ DESCR_ ID L ANG_ CODE DESCR <p i> I VA5 VA2 55 <M> <M> BUSINESS_ENTITY BUSINESS_KEY AUTHORIZED_NAME OPERATOR LAST_UPDATE <pi> VA4 1 VA2 55 VA2 55 TS <M> <M> <M> <M> BUSINESS_IDENTIFIER IDENTIFIER_ID TMODEL_ KEY_REF KEY_ NAM E KEY_ VALUE <pi> I VA41 VA255 VA255 <M > <M > BUSINESS_ NAM E BUSINESS_ NAM E_ID L ANG_ CODE NAME <pi > I VA5 VA25 5 <M> <M> BUSINESS_SERVICE SERVICE_KEY LAST_UPDATE <p i> VA4 1 TS <M> <M> CONTACT CONTACT_ ID USE_ TYPE PERSON_NAM E <pi > I VA255 VA255 <M> <M> CONTACT_ DESCR CONTACT_ DESCR_ID L ANG_ CODE DESCR <p i> I VA5 VA25 5 <M> <M> DISCOVERY_URL DISCOVERY_URL_ID USE_TYPE URL <pi > I VA25 5 VA25 5 <M> <M> <M> EM AIL EMAIL _ID USE_TYPE EMAIL _ADDRESS <p i> I VA25 5 VA25 5 <M> <M> INSTANCE_ DETAILS_ DESCR INSTANCE_DETAILS_ DESCR_ ID LANG_CODE DESCR <pi> I VA5 VA2 55 <M > <M > INSTANCE_ DETAILS_DOC_DESCR INSTANCE_ DETAILS_DOC_DESCR_ID LANG_ CODE DESCR <pi > I VA5 VA255 <M> <M> PHONE PHONE_ID USE_TYPE PHONE_NUMBER <p i> I VA25 5 VA50 <M> <M> PUBLISHER PUBLISHER_ID PUBLISHER_NAME EMAIL _ADDRESS IS_ADMIN IS_ENABLED <pi> VA2 0 VA2 55 VA2 55 VA5 VA5 <M > <M > PUBLISHER_ASSERTION FROM_KEY TO_ KEY KEY_NAME KEY_VALUE FROM_CHECK TO_ CHECK VA4 1 VA4 1 VA2 55 VA2 55 VA5 VA5 <M> <M> <M> <M> <M> <M> SERVICE_CATEGORY CATEGORY_ID TMODEL_ KEY_REF KEY_ NAM E KEY_ VALUE <pi> I VA41 VA255 VA255 <M > <M > SERVICE_ DESCR SERVICE_ DESCR_ID L ANG_CODE DESCR <p i> I VA5 VA25 5 <M> <M> SERVICE_ NAM E SERVICE_ NAM E_ID L ANG_CODE NAME <pi> I VA5 VA255 <M > <M > TMODEL TMODEL_ KEY AUTHORIZED_NAM E OPERATOR NAME OVERVIEW_URL DELETED L AST_UPDATE <p i> VA41 VA25 5 VA25 5 VA25 5 VA25 5 VA5 TS <M> <M> <M> <M> <M> TM ODEL_CATEGORY CATEGORY_ID TMODEL _KEY_REF KEY_NAM E KEY_VAL UE <p i> I VA25 5 VA25 5 VA25 5 <M <M TMODEL_ DESCR TMODEL_ DESCR_ ID L ANG_CODE DESCR <pi > I VA5 VA25 5 <M> <M> TMODEL _DOC_DESCR TMODEL _DOC_DESCR_ID LANG_CODE DESCR <pi> I VA5 VA255 <M > <M > TMODEL_ IDENTIFIER IDENTIFIER_ID TMODEL_KEY_ REF KEY_NAME KEY_VALUE <pi> I VA255 VA255 VA255 <M > <M > TMODEL_ INSTANCE_INFO TMODEL_INSTANCE_INFO_ID OVERVIEW_URL INSTANCE_ PARMS <p i> I VA25 5 VA25 5 <M> TM ODEL_INSTANCE_ INFO_DESCR TM ODEL_INSTANCE_ INFO_DESCR_ID LANG_CODE DESCR <pi > I VA5 VA255 <M> <M> ADDRESS : 2 ADDRESS_ID USE_TYPE SORT_CODE <pi> I VA255 VA10 <M >
slide-13
SLIDE 13

JUDDI Advantages

  • Free and Open Source
  • It works
  • Supports a variety of Data Bases
  • Can be deployed in any Servlet container that supports spec. 2.3
  • Clustering method can be used to integrate different JUDDI
slide-14
SLIDE 14

JUDDI Problems

  • Poor documentation, just an e-mail list is available
  • Could be a little tricky to make it work at the
  • beginning. But we got that documented
  • UDDI spec. 2 is supported at the moment
slide-15
SLIDE 15

UDDI Browser

slide-16
SLIDE 16

Open questions

Which UDDI version? JUDDI supports UDDI standard version 2, but currently the specification is v. 3.

  • V. 3. Specifies a series of UDDI flavours.

Corporate/private: internal registry behind a firewall Affiliated: controlled environment where limited access is granted Public: open registry UDDI in WS-Talk? Are we going to use a single centralised repository, or a set of distributed ones. The solution for this may be in the use of ActiveBPEL engine.

Others issues?