web services i nd7 publiser dine service på en standardiseret protokol

14
Trekronergade 147B, 2500 Valby, telefon: 35 300 700, fax: 35 300 701, web:www.semaphor.dk, email: [email protected] Web services i ND7 Publiser dine service på en standardiseret protokol Præsenteret af: Ronni Kahalani, Semaphor Udviklingschef / Systemarkitekt mail: [email protected] web: www.semaphor.dk

Upload: forrest-herrera

Post on 30-Dec-2015

21 views

Category:

Documents


4 download

DESCRIPTION

Web services i ND7 Publiser dine service på en standardiseret protokol. Præsenteret af: Ronni Kahalani, Semaphor Udviklingschef / Systemarkitekt mail: [email protected] web: www.semaphor.dk. - PowerPoint PPT Presentation

TRANSCRIPT

Trekronergade 147B, 2500 Valby, telefon: 35 300 700, fax: 35 300 701, web:www.semaphor.dk, email: [email protected]

Web services i ND7Publiser dine service på en standardiseret protokol

Præsenteret af:Ronni Kahalani, SemaphorUdviklingschef / Systemarkitektmail: [email protected]: www.semaphor.dk

Agenda

• Hvad er en web service?• Hvad er WSDL, SOAP & UDDI• Håndtering af retur datatyper• Hvorfor bruge web services• Hvor bruges web services?• Demos• Afslutning

Hvad er en web service?

• Et interface som beskriver en samling af operationer der er tilgængelige over nettet via standard XML baseret data udveksling.

• En service er beskrevet via en standard XML notation kaldet WSDL, og kommunikeres med via SOAP.

• Teknologien brugt ifm. IT arkitektur stilen SOA (Service Oriented Architecture)

Hvad er WSDL?

• WSDL står for Web Services Description Language • WSDL er et XML dokument • WSDL bruges til at beskrive Web services • WSDL bruges også til at lokalisere Web services • WSDL er endnu ikke en W3C standard

Kort sagt:WSDL en XML-baseret service beskrivelse af hvordan man kommunikerer med servicen/interfacet.

Hvad er WSDL?

SIMPLIFICERET WSDL EKSEMPEL

<message name="getTermRequest"> <part name="term" type="xs:string"/></message>

<message name="getTermResponse"> <part name="value" type="xs:string"/></message>

<portType name="glossaryTerms"><operation name="getTerm">

<input message="getTermRequest"/><output message="getTermResponse"/>

</operation></portType>

Hvad er SOAP?

• SOAP står for Simple Object Access Protocol • SOAP er en kommunikations protokol • SOAP er et format til at sende beskeder • SOAP er til kommunikation mellem applikationer• SOAP er designet til kommunikation via Internettet • SOAP er platform uafhængigt• SOAP er programmeringssprog uafhængigt • SOAP er baseret på XML • SOAP er simpelt og åben for udvidelser • SOAP muliggør det at komme uden om firewall udfordringer • SOAP vil være en W3C standard.

Kort sagt:SOAP bruges til at kalde service funktioner defineret i WSDL’en.

Hvad er SOAP?

REQUEST<?xml version="1.0"?><soap:Envelope xmlns:soap="http://…” soap:encodingStyle="http://…"><soap:Body xmlns:m="http://www.example.org/stock">

<m:GetStockPrice><m:StockName>IBM</m:StockName>

</m:GetStockPrice></soap:Body></soap:Envelope>

RESPONSE<?xml version="1.0"?><soap:Envelope xmlns:soap=”http://…” soap:encodingStyle="http://…"><soap:Body xmlns:m="http://www.example.org/stock">

<m:GetStockPriceResponse><m:Price>34.5</m:Price>

</m:GetStockPriceResponse></soap:Body></soap:Envelope>

Hvad er UDDI?

• UDDI står for Universal Description, Discovery and Integration

• UDDI = directory af web service interfaces beskrevet i WSDL • UDDI kommunikerer via SOAP • UDDI er indbygget i Microsoft .NET platformen

Kort sagt:UDDI er en directory service hvor virksomheder kan registrere og søge på Web services.

Håndtering af retur datatyper

• Simple datatyper, som:– LotusScript: String, Integer, Double….– Java: String, double, int, long….

Mappes typisk implicit / indirekte

• Komplekse datatyper som:– Klasser og andre former for strukturer (Employee, Manager,

Customer)

Kræver provider WSDL og explicit generering og brug af stub klasser, hos consumer. (via Apache Axis eller DD v7.0.2)

Hvorfor bruge web services?

• En simpel mekanisme til at sammenkoble løsninger uafhænigt af teknologi, enheder og lokationer

• Baseret på standard protokoller med universal support

• Billigere kommunikation over Internettet, ift. private og specialiserede netværk og produkter EDI o.lign.

• Fleksibilitet mht. transport mekanismer

• Løst koblede afhængigheder

• Selv beskrivende, en udvikler kan nemt forstå de beskrevne interfaces

• Automatiseret Discovery. Løsninger kan selv finde ønskede services

• Muliggør forretnings orienteret service arkitektur.

Services

Hvor bruges web services?

• Eksempler fra internettet– Google API– Yahoo MAPS– Amazon– DR – playlister og meget andet– Stock quotes

• Internt i virksomheder– Indkapsling af forrentnings entiteter

CRM System

Financial System

HR System

Inte

gra

tion

sPla

tfrom

CRM

Financial

HR

Class CRM {Customer getCustomerByName(String name);Customer getCustomerById(String id);

}

Class HR {Employee getEmployeeByName(String name);Employee getEmployeeById(String id);

}

Class Employee extends Person {Double getSalery();Projects[] getProjects();

}

Projekt SystemProject

Navn- & AdressebogNames.nsf

Javascript & Web service Demojsws.nsf

Demos

• Eksempel 1: Javascript der kalder ND7 web service.

NABManager Web service

String getPersonsByName(String name)

JS kalder WS via SOAP kald og får XML-baseret søgeresultat, som f.eks.

<items><item>

<docid>XXXXXXXXX</docid><fullname>Mickey Mouse</fullname>

</item><item>

<docid>YYYYYYYYYY</docid><fullname>Minnie Mouse</fullname>

</item></items>

Demos

• Eksempel 2: Notes klient der kalder ND7 web service.

My Web serviceMyWebservice.nsf

Web service ConsumerWebserviceConsumer.nsf

MyWebservice Web service

String getGreeting();String getGreeting(String theName); MyComplexClass getMyComplexClass();

Afslutning

• Ressourcer– W3schools om wsdl– W3schools om soap

• Tutorials & artikler– Call SOAP Web services with Ajax, Part 1: Build the Web services

client– Lotus Notes/Domino 7 Web Services– Quickly create Domino Web services: New Web services function

in Domino 7 speeds development – Consuming Web services from a Lotus Domino Java agent

TAK FOR JERES INTERESSE