Web Services gjennom eksempler Johannes Brodwall.

Slides:



Advertisements
Liknende presentasjoner
1 Hjelp Ys Men å støtte lokalt arbeid for barn og unge Ys Men: Kristne verdier I praksis. Alle barn er våre barn.
Advertisements

12.Studienreise nach Finnland,
Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring.
Fremtidens IKT-løsninger i plan og byggeprosessen en demonstrasjon.
® IBM Software Group © 2004 IBM Corporation Kunnskapsforvaltning eller Ustrukturert Læring? Dag Oliver, IBM Software Group Norge.
Litt mer om PRIMTALL.
Ruby on Rails: Making simple stuff simple “Rails is a full-stack, open-source web framework in Ruby for writing real-world applications with joy and less.
Progress Brukerforening Tormod Sveli
Everyone Print Kalle Snarheim.
Grafisk design Visuell kommunikasjon
TMCore i EPiServer Leverandør av TMCore: NetworkedPlanet
Teknologi for et bedre samfunn 1 Asbjørn Følstad, SINTEF Det Digitale Trøndelag (DDT) Brukervennlig digitalisering av offentlig sektor.
Google Confidential and Proprietary 1 1 Hva kan Google fortelle deg om kundene dine? Siri G. Børsum Industry Leader Google Norway Hva kan Google fortelle.
IBM Global Services JavaOne 2007 Ole André Scheie IBM GBS.
Gruppemedlemmer Gruppa består av: Magnus Strand Nekstad – s156159
NUUG.topic = Ruby.new Johannes Brodwall Takk til Dave Thomas for bruk av enkelte slides.
1 Objektorientert samvirke - del 4 av Arne Maus, Institutt for informatikk, Universitetet i Oslo.
Ledelsesinformasjonsystem
JavaOne 2006 Markus Bjartveit Krüger
Tjenestebasert design med dynamiske proxyer og Spring Bjørn Vidar Bøe, JavaZone 2005.
Slide 2:. Forretningsmodellen forklart på engelsk og norsk
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Strategisk og taktisk SOA Fagforbundet/Sykehuspartner Johannes Brodwall, Ikke virksomhetsarkitekt Steria Norway.
Web Client Software Factory Inge StubdalLevel 300 Avanade.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Key takes from the CXPA breakfast meeting 19th of march 2013 Summarized by KOBRA – Full text from Post It notes available in notes 1.
Teknisk. Oversikt •Forskjellen på vPos systemet fra 2004 til •Mest om vPos serveren. •Også noe om SilentWings Viewer.
Tema: Introduksjon Hvorfor Velocity? Installasjon Velocity VS. JSF / JSP Eksempler Oppsumering.
Nettverk Software Protocol Hierarchies
Nettverk Software Protocol Hierarchies
Nytte og relevans av IT-studiene: Nyansattes erfaringer 30. november 2012 Tormod Fjeldberg.
Linked Data og UBiT Rurik Thomas Greenall, NTNU Library.
Web-applikasjoner Prosjekt3 Logging Gruppe 9 Malik Muhammad Naeem Kevan Qureshi.
”Virksomhetsportaler og rollestyrte arbeidsflater”
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
1 Information search for the research protocol in IIC/IID Medical Library, 2013.
XML Extended Markup Language - The ASCII of the Future.
Copyright © 2003 Systek OOs gjenfødsel? Innlegg til Systek’s teknologisamling Johannes Brodwall.
Copyright © 2003 Systek Java versus.NET The Heavyweight Championship Showdown En subjektiv sammenligning Johannes Brodwall.
Copyright © 2003 Systek J2EE Arkitektur Java Workshop CBA Johannes Brodwall, Systek as.
Copyright © 2003 Systek J2EE Teknologier Java Workshop CBA Johannes Brodwall, Systek as.
SINTEF Teknologi og samfunn PUS-prosjektet Jan Alexander Langlo og Linda C. Hald 1 Foreløpig oppsummering – underlag for diskusjon på PUS-forum
GRØNNALGER BRUNALGER RØDALGER
WHY WE’RE STRENGTHENING ROTARY. OBJECTIVES  Clarify what Rotary stands for, how it’s different and why people should care  Elevate awareness and understanding.
ADA 95 – del3 Foreleser: Olaf Hallan Graven Bok: Programming in ADA95 (2nd) John Barnes.
1 BM-dagen 29.okt BM1 Fysisk miljøplanlegging Studieprogram for Bygg- og miljøteknikk Meny Prosjektoppgaven Arealbruk og befolkning Transport og.
JavaOne oppsumering tobias k torrissen
  Den perfekte julegaven til Javakoden din Johannes Brodwall Steria.
Innledning om HTML IT20 oktober Bakgrunn Konseptet WWW ble født i 1983 i CERN, Geneve Opphavsmann: Tim Berners-Lee, MIT Spre informasjon uavhengig.
Kort om XML Språket om språket. XML: Eksempel Hans Tømmerholt.
Kort om HTML ML meg her og ML meg der. En SV’er til og med.
PARLAY/OSA Referanser: Referanser Foredraget er i all hovedsak basert på to artikler. Disse kan finnes på:
Web Services Generell introduksjon til WS, UDDI (Universal Description Discovery and Integration) og Business Process Execution Language (BFEL4WS)
OOT Seminar H-97 CORBA Praktisk del. Valg av ORB implementasjon n Har valgt å bruke Visigenic sin ORB implementsjon n ORB’en er 100% Java kodet n Bygger.
02 - Java datatyper Grundlæggende om datatyper og variable.
Telecom and Informatics Oblig og verktøy
1 | 2010 Internetteknologi 2 (ITNET2) Kort teknisk ASP.NET introduktion Mandag den 4/ Jesper Tørresø.
State Of The Union – Backend & Desktop –
Tabeller Dette er en tabell, eller array. Den kan defineres sånn som dette: public int[] heltallsTabell = new int[11]; //Her er 11 tabellens lengde for.
Inflation og produktion 11. Makroøkonomi Teori og beskrivelse 4.udg. © Limedesign
.NET og Progress Samspill og styrker, GUI og forretningslogikk.
1 GeoPortal – Rammeverk Introduksjon. 2 Teknisk rammeverk - Interoperabilitet Interoperabilitet evne til å kommunisere, kjøre programmer, eller overføre.
X10 webservices/IM -> mobilklient. Oppdragsgiver:
Object  Klassen i java  Alle klasser arver fra denne om ikke noe annet blir spesifisert  ArrayList.add(Object instans)  Alle elementer formes til Object.
Befolkning og arbejdsmarked 7. Mikroøkonomi Teori og beskrivelse © Limedesign
Copyright © 2003 Systek Java Safari Java Workshop CBA Johannes Brodwall, Systek as.
Protokoller Pensum: Olsen, kap. 5 og 6. Kommunikasjonsprotokoll Rutiner for å administrere og kontrollere oversending av data Telefonsamtale (”Hallo”,
XML og JDOM Helge Furuseth XML  XML = Extensible Markup Language Basert på SGML – Standard Generalized Markup Language  HTML =
LO2 – Understand Computer Software
Behind the scene Anders Hattestad ,
Utskrift av presentasjonen:

Web Services gjennom eksempler Johannes Brodwall

Copyright 2004 – Brodwall IT Services (BITS) Slide 2 Innhold •Hvorfor – integrasjon, det tjenesteorienterte nettet •Hva – XML, SOAP, WSDL og HTTP •Hvordan – Visual Studio.NET, Axis, J2EE 1.4, Ruby

Copyright 2004 – Brodwall IT Services (BITS) Slide 3 Viktige organisasjoner •OASIS (Organisation for the Advancement of Structured Information Standards) –Viktigste bidrag: ebXML •W3C (World Wide Web Consortium) •WS-I (Web-Services Interoperability) •IBM, Microsoft: –Utvikler de fleste delstandardene

Copyright 2004 – Brodwall IT Services (BITS) Slide 4 Fra tcp til the semantic web Sockets FTP/telnet/ gopher Sockets FTP/telnet/ gopher Web Browser http/html Web Browser http/html The Semantic Web Integrasjon av bedriftens siloer 1980-tallet Fremtiden Kommunikasjon Web Service http/soap Web Service http/soap Discovery Samarbeid med partnere Dynamisk transformasjon

Copyright 2004 – Brodwall IT Services (BITS) Slide 5 Hva er Web Services ”A Web Service is application logic that is accessible using standard Internet protocols.” [ Keith Ballinger ] Like components, Web Services represent black-box functionality that can be used and reused without regard to how the service is implemented.

Copyright 2004 – Brodwall IT Services (BITS) Slide 6 Fordeler •INTEGRASJON •Hetrogene parter •Debugbar protokol •Nettverksvennlig teknologi

Copyright 2004 – Brodwall IT Services (BITS) Slide 7 To ting •Arkitektur •Komponentbasert •Distribuert •Åpen •Innkapslet •Tjenesteorientert •Teknologier •SOAP •WSDL •HTTP

Copyright 2004 – Brodwall IT Services (BITS) Slide 8 Tjenesteorientert • Grovkornet • Verdi til ”kunder” • Standardisert grensesnitt In an SOA, resources are made available to other participants in the network as independent services that are accessed in a standardized way. This provides for more flexible loose coupling of resources than in traditional systems architectures. [ ]

Copyright 2004 – Brodwall IT Services (BITS) Slide 9 Bokstavsuppe •XML – eXtensible Markup Language –Standard for å strukturere tekst-dokumenter –Presenterer en hierarkisk struktur •SOAP – Simple Object Access Protocol –XML standards for metodekall –Data som utveksles mellom tjenestene •WSDL – Web Services Definition Language –XML standard for tjenestebeskrivelse –Brukes for å finne ut hvordan en tjeneste skal kalles

Copyright 2004 – Brodwall IT Services (BITS) Slide 10 Eksempel.NET klient.NET server J2EE Server Ruby Server J2EE klient Ruby klient

Copyright 2004 – Brodwall IT Services (BITS) Slide 11 Web Service Servere •Støtte i utviklingsmiljø tar hånd om det meste – nesten som å skrive vanlige klasser •Utvikles som stateless klasser eller metoder i språket •Publiseres automatisk, via en descriptor, eller programmatisk •Normalt vil servermiljøet generere WSDL automatisk

Copyright 2004 – Brodwall IT Services (BITS) Slide 12 Arkitektur (Axis) HTTP applikasjonsserver (Tomcat) Web Service Container (Axis) Our Service Marshall/ unmarshal Management WSDL generation Transport Custom handlers

Copyright 2004 – Brodwall IT Services (BITS) Slide 13 Java Server // HelloWebService.jws // is placed in axis webapp directory // Axis autocompiles JWS-files public class HelloWebService { public String sayHelloTo(String name) { System.out.println("Hello web services says hello to " + name); return "Hello from Axis, " + name; }

Copyright 2004 – Brodwall IT Services (BITS) Slide 14.NET Server using System; using System.Diagnostics; using System.Web.Services; namespace KompisDotNetService { [WebService(Namespace=" ")] public class HelloService : WebService { [WebMethod] public string sayHelloTo(string name) { Debug.WriteLine ("Hello web services says hello to " + name); return "Hello from.NET, " + name; }

Copyright 2004 – Brodwall IT Services (BITS) Slide 15 Ruby Server require 'soap/rpc/standaloneServer' class HelloWorldServer < SOAP::RPC::StandaloneServer def on_init add_method(self, 'hello_world', 'from') end def hello_world(from) puts "Hello web services says hello to " + from "Hello from Ruby, #{ from }" end

Copyright 2004 – Brodwall IT Services (BITS) Slide 16 Web Service klienter •Automatisk genererte ”stubs” for enklere bruk –Nesten som vanlig bruk av klasser •Dynamisk kall •Dynamisk ”discovery” – ikke vist

Copyright 2004 – Brodwall IT Services (BITS) Slide 17.NET Client... private void buttonExec_Click(object sender, System.EventArgs e) { HelloAxis.HelloWebServiceService service = new HelloAxis.HelloWebServiceService(); textBoxResponse.Text = service.sayHelloTo(textBoxName.Text); }...

Copyright 2004 – Brodwall IT Services (BITS) Slide 18 Java Client (JAX-RPC style) // Generated with the Axis WSDL2Java tool import no.brodwall.demo.kompis2004_01_20.HelloServiceLocator; import no.brodwall.demo.kompis2004_01_20.HelloServiceSoap; public class JavaClientOfDotNet { public static void main(String[] args) throws Exception { HelloServiceLocator locator = new HelloServiceLocator(); HelloServiceSoap service = locator.getHelloServiceSoap(); System.out.println(service.sayHelloTo("JAX-RPC client")); }

Copyright 2004 – Brodwall IT Services (BITS) Slide 19 Java Client import java.rmi.RemoteException; import javax.xml.rpc.ServiceException; import org.apache.axis.client.Call; import org.apache.axis.client.Service; public class LowLevelClient { public static void main(String[] args) throws Exception { Service service = new Service(); Call call = (Call)service.createCall(); call.setTargetEndpointAddress( " call.setOperationName("sayHelloTo"); String result = (String)call.invoke(new Object[] { "Simple Axis client" }); System.out.println("Result: " + result); }

Copyright 2004 – Brodwall IT Services (BITS) Slide 20 Ruby Clients # HelloWebService stub is created by wsdl2ruby require 'defaultDriver.rb' service = HelloWebService.new() puts service.sayHelloTo("Ruby") # Manual calling require 'soap/rpc/driver' endpoint = " service = SOAP::RPC::Driver.new(endpoint, nil) service.add_method("sayHelloTo", "name") service.sayHelloTo("Ruby")

Copyright 2004 – Brodwall IT Services (BITS) Slide 21 Invocation Framework •I praksis er den manuelle metoden vanskelig å bruke –Forskjellige servere trenger forskjellig informasjon –Det kan være tidkrevende å sette opp •WSIF ( løser dette ved å dynamisk generere kall- objekter fra WSDLhttp://ws.apache.org/wsif

Copyright 2004 – Brodwall IT Services (BITS) Slide 22 Første inntrykk •Enkel integrasjon av homogene miljøer •Blir mer problematisk med: –Utveksling av komplekse datastrukturer –Bruk av standard typer i forskjellige språk –Exceptions fra serveren

Copyright 2004 – Brodwall IT Services (BITS) Slide 23 SOAP

Copyright 2004 – Brodwall IT Services (BITS) Slide 24 SOAP - request <env:Envelope xmlns:xsd=" " xmlns:env=" " xmlns:xsi=" "> Ruby

Copyright 2004 – Brodwall IT Services (BITS) Slide 25 SOAP - response Hello from Axis, Ruby

Copyright 2004 – Brodwall IT Services (BITS) Slide 26 SOAP meldinger •Består av Envelope, Header og Body •Header kan inneholde protokollutvidelser –Transaksjoner –Sikkerhet –Logging –Kryptering •Body inneholder selve meldingen –Kan også inneholde Faults •Multipart – kan inneholde flere deler

Copyright 2004 – Brodwall IT Services (BITS) Slide 27 Web Services Definition Language •Beskriver tjenester, dataformater og endepunkt •Skal definere ”alt som trengs” for å kunne kommuniserer med tjenesten

Copyright 2004 – Brodwall IT Services (BITS) Slide 28 WSDL - outline

Copyright 2004 – Brodwall IT Services (BITS) Slide 29 WSDL - interface

Copyright 2004 – Brodwall IT Services (BITS) Slide 30 WSDL - implementation

Copyright 2004 – Brodwall IT Services (BITS) Slide 31 WSDL

Copyright 2004 – Brodwall IT Services (BITS) Slide 32 UDDI •Universal Discovery, Directory Integration •Tenkt som ”gule sider” for web services •Forutsetter standardisering på WSDL-nivå • ebservices/library/ws-eight/ ebservices/library/ws-eight/

Copyright 2004 – Brodwall IT Services (BITS) Slide 33 Begrensninger •Datainnhold –Struktur –Spesifikke typer –Standardiserte grensesnitt •Request-response-basert –Ingen callbacks (WS-Callback) –(Normalt) Synkront (S070-S071) •Standarder sent og ikke generelt implementert –Sikkerhet (WS-Security) –Transaksjoner (WS-Transactions, WS-Coordination) –Se

Copyright 2004 – Brodwall IT Services (BITS) Slide 34 Fremtiden slik jeg ser den •WS-Security, WS-Transactions får bredere implementasjoner •UDDI forblir en kuriositet –Bransjestandarder lar vente på seg •Semantic web forblir en drøm

Copyright 2004 – Brodwall IT Services (BITS) Slide 35 Diskusjon •Når er SOAP verd overheaden? •Vil det fungere i våre situasjoner? •Hvordan komme i gang? •Kommer det til å bli standardisering av tjenester? •I hvilken grad ønsker vi dynamisk discovery? –Stoler vi på at programmet velger riktig leverandør? –Vil automatiske ”meglere” krasje ”det frie marked”?

Copyright 2004 – Brodwall IT Services (BITS) Slide 36 Konklusjon •Web services integrerer hetrogene tjenester •Fungere bra for enkle tjenester •Krever mer jobb med komplekse tjenester •Web Services er ment til å være en del av dynamisk discovery

Copyright 2004 – Brodwall IT Services (BITS) Slide 37 •Axis – Apache Web Service rammeverk •JAX-RPC – Java API for XML Remote Procedure Calls •J2EE 1.4 – viktige forbedringer i JAX-RPC •WS-I, WS-Security •The Semantic Web Stikkord