Wielowarstwowe aplikacje internetowe. Web Services. Autorzy wykładu: Maciej Zakrzewicz Marek Wojciechowski. Web Services

Podobne dokumenty
Wielowarstwowe aplikacje internetowe. Web Services. Autorzy wykładu: Maciej Zakrzewicz Marek Wojciechowski. Web Services

Plan wykładu. Technologia Web Services. Web Services a WWW

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

Zaawansowane aplikacje internetowe. Wykład 6. Wprowadzenie do Web Services. wykład prowadzi: Maciej Zakrzewicz. Web Services

Dostęp do komponentów EJB przez usługi Web Services

Tworzenie i wykorzystanie usług sieciowych

Programowanie komponentowe

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

Web Services. Wojciech Mazur. 17 marca Politechnika Wrocławska Wydział Informatyki i Zarządzania

1 Wprowadzenie do J2EE

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

Wybrane działy Informatyki Stosowanej

Web Service y w Javie

Usługi sieciowe (Web Services)

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Komunikacja międzysystemowa

Usługi WWW. dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska Opole zlipinski@math.uni.opole.pl

Architektury Usług Internetowych. Laboratorium 2 RESTful Web Services

public interface TravelAgent { public void makereservation(int cruiseid, int cabinid, int customerid, double price); }

Programowanie Komponentowe WebAPI

Rozdział ten przedstawia jeden ze sposobów implementacji usług sieciowych XML i aplikacji klienckich w PHP. Oprogramowanie

ABC WCF.

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Rozproszone systemy internetowe

SOAP i alternatywy. 1. WSDL. 2. Protokoły tekstowe XML-RPC. JSON-RPC. SOAPjr. 3. Protokoły binarne Google Protocol Bufers. Apache Thrift.

Komunikacja i wymiana danych

Wybrane działy Informatyki Stosowanej

Wybrane problemy modelu usługowego

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Równoległość w środowisku rozproszonym. Jarosław Kuchta Programowanie Współbieżne

JAX-RS czyli REST w Javie. Adam Kędziora

Budowa aplikacji w technologii. Enterprise JavaBeans. Maciej Zakrzewicz PLOUG

SIMON SAYS ARCHITECTURE! Usługi zdalne. Technologie, techniki i praktyki implementacji

Integracja Obieg Dokumentów - GiS Spis treści

Wprowadzenie do usług internetowych

SOA Web Services in Java

Zagadnienia Programowania Obiektowego. Usługi sieciowe w Javie EE 5

Plan prezentacji. Budowa aplikacji w technologii Enterprise JavaBeans. Przegląd architektur: CORBA. Cele budowy aplikacji rozproszonych

Katalog książek cz. 3: Web Service

XML w elektronicznej wymianie danych i integracji aplikacji

Web Services. Technologie Biznesu Elektronicznego. Konrad Kunicki. Politechnika Wrocławska, Wydział Informatyki i Zarządzania

Web Services. Bartłomiej Świercz. Łódź, 2 grudnia 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Web Services

5.14 JSP - Przykład z obiektami sesji Podsumowanie Słownik Zadanie... 86

Rozproszone systemy Internetowe

Usługi sieciowe REST. Instytut Informatyki Politechnika Poznańska

1. Uruchomić i skonfigurować środowisko tworzenia aplikacji i serwer aplikacji.

Simple Object Access Protocol

XML w elektronicznej wymianie danych i integracji aplikacji

Java JMX. Marcin Werla. Monitorowanie i zarządzanie usługami sieciowymi w Javie. mwerla@man.poznan.pl PCSS/Poznań JUG

Programowanie obiektowe

Platforma.NET Wykład 13 Tworzenie usług sieciowych SOAP i WCF. Spis treści. Marek Sawerwain. 7 czerwca Notatki. Notatki

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)

Enterprise JavaBeans

Sieciowe programowanie rozproszone SOA, WebServices i systemy gridowe. Krzysztof Banaś Systemy rozproszone 1

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

Stan zaawansowania prac dotyczących zamówienia na opracowanie i wdrożenie rdzenia systemu e Urząd.

Programowanie współbieżne i rozproszone

Aplikacje webowe z wykorzystaniem Node.js oraz Express

Web Services (SOAP) Ćwiczenie 1

Zastosowanie informatyki w gospodarce Wykład 4

SPECYFIKACJA WYMIANY DANYCH POMIĘDZY PROGRAMEM KS-APTEKA WINDOWS I SKLEPEM INTERNETOWYM FIRMY ZEWNĘTRZNEJ

Enterprise JavaBeans. 1. Architektura EJB: komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 2. Kontenery EJB JBoss.

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Zaawansowane aplikacje internetowe - laboratorium

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

ASP.NET MVC. Grzegorz Caban 20 stycznia 2009

Usługi sieciowe laboratorium 2013 K.M. Ocetkiewicz, T. Goluch

Aplikacje RMI

76.Struktura oprogramowania rozproszonego.

Spis treúci. 1. Wstęp... 11

Część I Dostęp do danych oraz moŝliwości programowe (silnik bazy danych)

Specyfikacja API 1.0. Specyfikacja kontroli Konta systemu CashBill z wykorzystaniem API opartego na REST

Ćwiczenie dotyczące platformy Java EE zostało przygotowane z myślą o środowisku NetBeans w wersji 7.3 (do pobrania z

Paweł Rajba

SOAP. Autor: Piotr Sobczak

XML w elektronicznej wymianie danych, integracji aplikacji i bezpieczeństwie

Rozproszone systemy internetowe. Wprowadzenie. Koncepcja zdalnego wywołania procedury

Web Services wykład 9

Rozproszone technologie Web Services

Programowanie komponentowe 5

Wybrane działy Informatyki Stosowanej

Wspomaganie pracy w terenie za pomocą technologii BlackBerry MDS. (c) 2008 Grupa SPOT SJ

XML w elektronicznej wymianie danych, integracji aplikacji i bezpieczeństwie

Metody dostępu do danych

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów

Komponenty sterowane komunikatami

Mydło i spółka. Aplikacje rozproszone. Serwisy sieciowe Broker usług. Serwisy sieciowe. Serwisy sieciowe, WWW (Web Services) Internet

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

Usługi danych przestrzennych w GEOPORTAL-u. Marek Szulc , Warszawa

Rozproszone systemy internetowe 2. WS-Policy: specyfikacje wymagań dla usług WWW

Nowoczesne zastosowania XML

ASP.NET MVC 4 & WEB API. Jamie Kurtz

Michał Jankowski. Remoting w.net 2.0

Wywoływanie metod zdalnych

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

EJB 3.0 (Enterprise JavaBeans 3.0)

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

Transkrypt:

Wielowarstwowe aplikacje internetowe Web Services Autorzy wykładu: Maciej Zakrzewicz Marek Wojciechowski Web Services

Plan wykładu Wprowadzenie do technologii Web Services Architektura Web Services Protokół komunikacyjny SOAP Język opisu interfejsu WSDL Rejestr UDDI Specyfikacje WS-* Web Services na platformie Java Web Services na platformie.net REST-ful Web Services Windows Communication Foundation

Koncepcja Web Services Rozproszone komponenty usługowe Samodokumentujące się Niezależne od języka programowania Rejestrowane Odkrywane Oparta na: SOAP WSDL UDDI Web Service Interfejs (WSDL) Komunikacja (SOAP) Interfejs (WSDL) Klient Opublikowanie Katalog serwisów (UDDI) Wyszukanie

Web Services a aplikacje webowe HTML HTTP XML HTTP Warstwa prezentacji Web Service Warstwa logiki biznesowej Baza danych Serwer aplikacji

Zastosowania Web Services Komponenty aplikacji do wielokrotnego wykorzystania: Konwersja walut Weryfikacja poprawności numeru karty kredytowej Prognoza pogody Tłumaczenia... Integracja istniejącego oprogramowania interoperability Wymiana danych między różnymi aplikacjami, implementowanymi w różnych technologiach na różnych platformach

Architektura zorientowana na usługi (SOA) SOA = Service-Oriented Architecture Architektura umożliwiająca tworzenie rozproszonych aplikacji z luźno powiązanych komponentów Obejmuje: Usługi elementy logiki biznesowej, dobrze zdefiniowane, niezależne od kontekstu i stanu innych usług Powiązania połączenia między usługami SOA dawniej implementowane w oparciu o ORB/DCOM SOA obecnie oparte najczęściej na Web Services

Architektura Web Services klient Web Service call p1(2,5) serializacja wywołań deserializacja wyników komponent Web Service function p1(a,b) function p1(a,b) function p1(a,b)...<p1> <a>2</a> <b>5</b> </p>... komunikat SOAP wyślij żądanie sieciowe Internet deserializacja wywołań serializacja wyników serwer aplikacji HTTP...<p1> <a>2</a> <b>5</b> </p>...

Protokół SOAP Pierwotnie: Simple Object Access Protocol Protokół komunikacyjny oparty na XML Struktura komunikatu SOAP: <Envelope> <Header> <Body> <Fault> Tryby wywołań RPC zawsze synchroniczne Dokumentowy synchroniczne lub asynchroniczne

Przykładowe żądanie SOAP <?xml version="1.0" encoding="utf-8"?> <S:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header/> <S:Body> <ns2:multiply xmlns:ns2="http://ws/"> <p1>3</p1> <p2>4</p2> </ns2:multiply> </S:Body> </S:Envelope>

Przykładowa odpowiedź SOAP <?xml version="1.0" encoding="utf-8"?> <S:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header/> <S:Body> <ns2:multiplyresponse xmlns:ns2="http://ws/"> <return>12</return> </ns2:multiplyresponse> </S:Body> </S:Envelope>

Język WSDL Web Services Description Language Opis interfejsu komponentu Web Service Automatyczne generowanie kodu źródłowego klienta Web Service Format XML, XML Schema do opisu typów danych

WSDL Podstawowe pojęcia Service zbiór funkcji udostępnionych protokołami webowymi Endpoint (d. Port) adres usługi (typowo URL) Binding styl usługi (RPC/dokumentowy),protokół komunikacyjny Interface (d. PortType) definiuje usługę jako zbiór operacji i komunikaty związane z operacjami Typy opis struktur danych (w XML Schema) Uwaga: Zmiana niektórych terminów nastąpiła między wersjami 1.1 i 2.0. w 1.1 również pojęcie Message powiązanie typów z operacjami

Przykładowy dokument WSDL 1.1 (1/2) <definitions xmlns:... targetnamespace="http://ws/" name="newwebservice"> <types> <xsd:schema> <xsd:import namespace="http://ws/" schemalocation="http://localhost:8080/soapwebservices/newwebservice?xsd=1"/> </xsd:schema> </types> <message name="multiply"> <part name="parameters" element="tns:multiply"/> </message> <message name="multiplyresponse"> <part name="parameters" element="tns:multiplyresponse"/> </message> <porttype name="arithmetic"> <operation name="multiply"> <input wsam:action="http://ws/arithmetic/multiplyrequest" message="tns:multiply"/> <output wsam:action="http://ws/arithmetic/multiplyresponse" message="tns:multiplyresponse"/> </operation> </porttype>

Przykładowy dokument WSDL 1.1 (2/2) <binding name="arithmeticportbinding" type="tns:arithmetic"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <operation name="multiply"> <soap:operation soapaction=""/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="newwebservice"> <port name="arithmeticport" binding="tns:arithmeticportbinding"> <soap:address location="http://localhost:8080/soapwebservices/newwebservice"/> </port> </service> </definitions>

Przykładowy dokument WSDL 1.1 (3/3): XML Schema <xs:schema xmlns:tns="http://ws/" xmlns:xs="http://www.w3.org/2001/xmlschema" version="1.0" targetnamespace="http://ws/"> <xs:element name="multiply" type="tns:multiply"/> <xs:element name="multiplyresponse" type="tns:multiplyresponse"/> <xs:complextype name="multiply"> <xs:sequence> <xs:element name="p1" type="xs:int"/> <xs:element name="p2" type="xs:int"/> </xs:sequence> </xs:complextype> <xs:complextype name="multiplyresponse"> <xs:sequence> <xs:element name="return" type="xs:int"/> </xs:sequence> </xs:complextype> </xs:schema>

UDDI Universal Description, Discovery, and Integration Specjalizowane baza danych (rejestry) usług Koncepcja publicznych rejestrów szybko upadła Prywatne rejestry wewnątrz instytucji Trzy poziomy opisu komponentów White Pages Yelow Pages Green Pages rejestracja usługi UDDI JAXR-API JAXR-API wyszukanie usługi komponent JAX-RPC wywołanie usługi klient

Podejścia do tworzenia Web Services (SOAP) Bottom-up W oparciu o istniejące komponenty Np. klasy, sesyjne bezstanowe EJB, zapytania SQL, procedury składowane Podejście niewymagające biegłej znajomości WSDL i XML Schema Top-down Punktem wyjścia jest przygotowanie pliku WSDL (ewentualnie wcześniej schematów XML opisujących przesyłane wiadomości) Umożliwia zrównoleglenie prac nad implementacją serwisu i klienta

Web Services standardy uzupełniające WS-Security WS-Reliability WS-ReliableMessaging WS-Adressing WS-Transaction WS-Interoperability...

Web Services: Zestaw programisty Java Java API for XML-based RPC (JAX-RPC) Java API for XML Web Services (JAX-WS) SOAP with Attachments API for Java (SAAJ) Java API for XML Processing (JAXP) Java API for XML Messaging (JAXM) Java API for XML Registries (JAXR) Java Architecture for XML Binding (JAXB) Java API for RESTful Web Services (JAX-RS)

JAX-WS: Java API for XML Web Services Tworzenie Web Services poprzez oznaczenie klas Java lub EJB odpowiednimi adnotacjami: @WebService @WebMethod @WebParam @WebResult @SOAPBinding

JAX-WS - Przykład import javax.jws.webservice; import javax.jws.webmethod; import javax.jws.webparam; Arithmetic.java @WebService(serviceName = "NewWebService") public class Arithmetic { } @WebMethod(operationName = "multiply") public int multiply(@webparam(name = "p1") int p1, @WebParam(name = "p2") int p2) { } return p1 * p2;

Implementacja klienta Web Service Do utworzenia klienta Web Service nie jest niezbędna znajomość SOAP ani interfejsów programistycznych związanych z technologią Web Services W praktyce korzysta się z narzędzi, które w oparciu o WSDL generują klasę proxy pośredniczącą w komunikacji z usługą Web Service udostępniającą funkcjonalność serwisu w formie metod lokalnego obiektu ukrywającą szczegóły komunikacji WSDL2java http://localhost:8080/appname/newwebservice?wsdl

Generacja klasy proxy w IDE (1/2)

Generacja klasy proxy w IDE (2/2) @WebServiceRef(wsdlLocation = "WEB-INF/wsdl/localhost_8080/ SOAPWebServices/NewWebService.wsdl") private NewWebService service; service.getarithmeticport().multiply(5, 6);

Java Architecture for XML Binding (JAXB) JAX-WS deleguje odwzorowanie typów Javy na XML do standardu JAXB Parametry i wartości zwrotne operacji usługi muszą być zgodne z JAXB Java Architecture for XML Binding (JAXB) Odwzorowanie schematów XML na reprezentacje w języku Java Zapis obiektów Java do dokumentów XML (marshalling) Odczyt dokumentów XML jako obiektów Java (unmarshaling)

Przykłady odwzorowania typów XML Schema na typy Java (JAXB) xsd:string <=> java.lang.string xsd:integer <=> java.math.biginteger xsd:int <=> int xsd.long <=> long xsd:short <=> short xsd:decimal <=> java.math.bigdecimal xsd:float <=> float xsd:double <=> double xsd:boolean <=> boolean xsd:byte <=> byte xsd:datetime <=> javax.xml.datatype.xmlgregoriancalendar...

JAXB Architektura Źródło: https://docs.oracle.com

Person.java @XmlType(name = "Person") public class Person { public String name; JAXB przykład odwzorowania } @XmlElement(name="personage") public java.math.bigdecimal age; person.xsd <!-- XML Schema mapping for Person --> <xs:complextype name="person"> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="personage" type="xs:decimal"/> </xs:sequence> </xs:complextype>

REST (Representational State Transfer) Architektoniczny styl tworzenia oprogramowania dla rozproszonych systemów hipermedialnych nie tylko Web Services Kolekcja zasad dotyczących tworzenia i adresacji zasobów Zasób (ang resource) jako centralne pojęcie abstrakcja stanu i funkcjonalności aplikacji każdy zasób ma unikalny adres o uniwersalnej składni stosowanej dla hiperlinków (URI w HTTP) jednolity interfejs do transferu stanu między klientem i zasobem (wymianiane są reprezentacje zasobów) Interfejs do transmisji danych poprzez HTTP bez dodatkowej warstwy komunikacyjnej i śledzenia sesji

RESTful Web Services Usługi sieciowe implementowane w oparciu o HTTP i zbiór zasad REST Web Service jako kolekcja zasobów 3 aspekty definicji serwisu: adres URI (np. http://myservice.com/resources/products, http://myservice.com/resources/products/p12345) typ MIME obsługiwanych danych (np. XML, JSON) zbiór obsługiwanych operacji w postaci metod (rozkazów) HTTP (POST, GET, PUT, DELETE) Nie ma obowiązującego standardu opisu usług REST analogicznego do WSDL WADL (Web Application Description Language) nie został ustandaryzowany przez W3C Klientem często jest kod JavaScript w przeglądarce (Ajax)

RESTful API - Przykład http://myservice.com/resources/products GET pobranie listy produktów POST dodanie nowego produktu PUT podmiana całej kolekcji produktów (nietypowe) DELETE usunięcie całej kolekcji produktów (nietypowe) http://myservice.com/resources/products/p12345 GET pobranie konkretnego produktu POST (nieużywane) PUT modyfikacja konkretnego produktu DELETE usunięcie konkretnego produktu

RESTful API: Problem częściowych aktualizacji zasobu PUT podmienia cały zasób na nową pełną reprezentację zasobu Jak zaimplementować możliwość częściowej aktualizacji zasobu? PUT z podaniem tylko atrybutów do modyfikacji lub usunięcia Udostępnienie atrybutu jako zagnieżdżonego zasobu i jego podmiana metodą PUT http://myservice.com/resources/products/p12345/price Nowa metoda protokołu HTTP: PATCH Służy do przesłania listy zmian do zaaplikowania na zasobie

JAX-RS: Java API for RESTful Web Services Tworzenie RESTful Web Services poprzez oznaczenie klas Java odpowiednimi adnotacjami: @Path @GET, @PUT, @POST, @DELETE, @HEAD, @OPTIONS @Produces, @Consumes @PathParam, @QueryParam, @FormParam, @CookieParam, @DefaultValue Dostępny również JAX-RS Client API

JAX-RS - Przykład @Path("hello") public class HelloResource { @GET @Produces(MediaType.TEXT_PLAIN) public String getmessage() { return "Hello World!"; } }

JAX-RS Przykład CRUD (1/2) @Path("complaints") public class ComplaintFacadeREST { @GET @Path("{id}") @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) public Complaint find(@pathparam("id") Integer id) { return...; } @GET @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) public List<Complaint> findall(@queryparam("status") String status) {... return...; } }

JAX-RS Przykład CRUD (2/2) @Path("complaints") public class ComplaintFacadeREST { } @POST @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) public void create(complaint entity) {... } @PUT @Path("{id}") @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) public void edit(@pathparam("id") Integer id, Complaint entity) {... } @DELETE @Path("{id}") public void remove(@pathparam("id") Integer id) {... }

JAX-RS Client - Przykład Client client = ClientBuilder.newClient(); Complaint comp = client.target("http://.../complaints/resources/complaints/6").request(mediatype.application_json).get(complaint.class); comp.setstatus("closed"); Response response = client.target("http://.../complaints/resources/complaints/6").request().put(entity.entity(comp, MediaType.APPLICATION_JSON)); System.out.println("PUT Status HTTP: " + response.getstatus());

Web Services w Microsoft.NET Pierwsze Web Services na platformie.net: Implementowane w ASP.NET Obecnie przestarzałe Klasy opisane specjalnymi atrybutami Mnozenie.asmx <%@ WebService Language="C#" Class="MnozenieWS"%> using System; using System.Web; using System.Web.Services; [WebService(Namespace="http://www.poznan.pl/webservices")] public class MnozenieWS { } [WebMethod(Description="Mnozenie dwoch liczb calkowitych")] public int mnoz(int p1, int p2) { return p1 * p2; }

Witryna i klient Web Services w.net Witryna Web Service Tworzenie klasy proxy dla klienta Web Service wsdl http://www.poznan.pl/webservices/mnozenie.asmx?wsdl lub Add Web Reference w Visual Studio 2008

Windows Communication Foundation (WCF) Nowy model programistyczny zorientowany na usługi Najważniejsze aspekty WCF Unifikacja istniejących technologii komunikacyjnych.net Framework ASP.NET Web services (ASMX).NET Framework remoting Enterprise Services WSE (Web Services Enhancements for Microsoft.NET) Microsoft Message Queuing (MSMQ) Cross-vendor interoperability z uwzględnieniem niezawodności, bezpieczeństwa i transakcji Jawna orientacja na usługi

WCF Interoperability Aplikacja oparta o WCF może współpracować z: aplikacjami WCF na tej samej maszynie Windows aplikacjami WCF na innych maszynach Windows aplikacjami zbudowanymi w dowolnych technologiach na dowolnym systemie operacyjnym wspierających standardowe Web services Komunikacja WCF-WCF jest znacząco zoptymalizowana W pozostałych scenariuszach wykorzystywane są standardowe protokoły Web services Aplikacja WCF może udostępniać swoje usługi obu typom klientów (WCF i nie-wcf)

Specyfikacje WS zapewniające WCF interoperability Przesyłanie wiadomości: SOAP WS-Addressing Message Transmission Optimization Mechanism (MTOM) Metadane WSDL, WS-Policy, WS-MetadataExchange Bezpieczeństwo WS-Security, WS-SecureConversation, WS-Trust, WS-Federation Niezawodność WS-Reliable Messaging Transakcje WS-Coordination, WS-Atomic Transaction

WCF kluczowe pojęcia message (body + headers) service wystawia endpoints endpoint (address + binding) do odbioru i wysyłania wiadomości address (URI) binding (transport + encoding) service operation contracts: service contract, operation contract, message contract, fault contract, data contract)

WCF Przykład (1/2) Plik zawartości reprezentujący usługę w aplikacji Service.svc <%@ ServiceHost Language="C#" Debug="true" Service="Service" CodeBehind="~/App_Code/Service.cs" %> Interfejs usługi (contract) IService.cs [ServiceContract] public interface IService { [OperationContract] string GetData(int value); }

WCF Przykład (2/2) Klasa implementująca usługę public class Service : IService { public string GetData(int value) { return string.format("you entered: {0}", value); } } Tworzenie klasy proxy dla klienta usługi WCF svcutil.exe /language:cs /out:generatedproxy.cs /config:app.config http://localhost:8000/servicemodelsamples/service lub Add Service Reference w Visual Studio 2008 Service.cs

Podsumowanie Web Services na tle aplikacji webowych Integracja systemów informatyznych Architektura zorientowana na usługi SOAP i RESTful Web Services Interfejsy programistyczne dla języka Java Tworzenie usług i klientów na platformach Java i.net Windows Communication Foundation