ABC WCF. adam.furmanek@studentpartner.com



Podobne dokumenty
Rozproszone systemy Internetowe

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

Programowanie Systemów Rozproszonych - WCF

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

Simple Object Access Protocol

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

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

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

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

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

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

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

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

Programowanie komponentowe

Programowanie Komponentowe WebAPI

Tworzenie i wykorzystanie usług sieciowych

Komunikacja i wymiana danych

Komunikacja międzysystemowa

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

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

Wybrane działy Informatyki Stosowanej

Application Layer Functionality and Protocols

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

namespace HostedReceiver { public class Receiver: IConfigureThisEndpoint, AsA_Server {

Programowanie Systemów Rozproszonych - WCF REST

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

Programowanie Systemów Rozproszonych Laboratorium 3 WCF. Paweł Paduch

ASP.NET MVC 4 & WEB API. Jamie Kurtz

Mechanizmy pracy równoległej. Jarosław Kuchta

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

Web Service y w Javie

Michał Jankowski. Remoting w.net 2.0

Programowanie Systemów Rozproszonych Laboratorium 2 WCF. Paweł Paduch

SOAP. Autor: Piotr Sobczak

Usługi sieciowe (Web Services)

Instrukcja laboratoryjna cz.7

RESTful WCF Services. Autor ćwiczenia: Piotr Ostrowski. Kroki ćwiczenia : 1. Utworzenie nowego projektu RESTful WCF.

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

.NET NET Framework Microsoft Windows Communication Foundation Microsoft Windows Presentation Foundation Microsoft Windows Workflow Foundation

Ministerstwo Finansów

Protokoly w technologii obiektow rozproszonych - CORBA, RMI/IIOP, COM, SOAP. Paweł Kozioł p.koziol@students.mimuw.edu.pl

Aplikacje RMI

Wybrane problemy modelu usługowego

AKADEMIA GÓRNICZO-HUTNICZA Wydział Elektrotechniki, Automatyki, Elektroniki i Informatyki

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

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

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

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

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

TelCOMM Wymagania. Opracował: Piotr Owsianko Zatwierdził: IMIĘ I NAZWISKO

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

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

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Spis treści INTERFEJS (WEBSERVICES) - DOKUMENTACJA TECHNICZNA 1

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

Wywoływanie metod zdalnych

Instrukcja tworzenia aplikacji bazodanowej opartej o technologię Oracle i platformę.net

OSI Transport Layer. Network Fundamentals Chapter 4. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1

TCP/IP. Warstwa aplikacji. mgr inż. Krzysztof Szałajko

Tomasz Greszata - Koszalin

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Gatesms.eu Mobilne Rozwiązania dla biznesu

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

ESDI. WebService. Wersja 1.2. Strona 1

1 Wprowadzenie do J2EE

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

Specyfikacja techniczna. mprofi Interfejs API

Spis treci. Dzie 1. I Wprowadzenie (wersja 0911) II Dostp do danych biecych specyfikacja OPC Data Access (wersja 0911)

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

Serwery LDAP w środowisku produktów w Oracle

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

Wywoływanie metod zdalnych

Programowanie współbieżne i rozproszone

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

Web Services / Gridy

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

XML-RPC: Zdalne wykonywanie procedur

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Programowanie współbieżne i rozproszone

OpenLaszlo. OpenLaszlo

Zastosowanie informatyki w gospodarce Wykład 4

Rozproszone technologie Web Services

RPC Remote Procedural Call. Materiały do prezentacji można znaleźć na stronie:

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

Wykład 6 Dziedziczenie cd., pliki

Java Developers Day. Implementacja ESB przy użyciu Mule. ESB Mule Obsługa zamówień DEMO

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

Wprowadzenie do usług internetowych

Komponenty sterowane komunikatami

RESTful Android. Na co zwrócić uwagę przy tworzeniu aplikacji klienckich REST na Androidzie

laboratorium 2016 K.M. Ocetkiewicz, T. Goluch

Wykład 12. Programowanie serwera MS SQL 2005 w C#

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

Rozwiązanie Compuware Data Center - Real User Monitoring

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.

Ada95 przetwarzanie rozproszone

Ada95 przetwarzanie rozproszone

Transkrypt:

ABC WCF adam.furmanek@studentpartner.com

Agenda WS, SOAP, REST Czym jest WCF? ABC WCF Usługa WCF Klient WCF Demo: prognoza pogody Demo: przesyłanie plików Pozostałe aspekty WCF Podsumowanie

WS, SOAP, REST Ale o co chodzi?

O co chodzi Chcemy wystawić na świat usługę Chcemy, aby ta usługa była zjadliwa dla każdego (a przynajmniej dla jak najszerszego grona użytkowników) Chcemy, aby działała niezależnie od platformy Chcemy jak najmniej się napracować

WS WS = Web Service System zaprojektowany do wspierania międzymaszynowej komunikacji poprzez sieć Posiada interfejs opisany przy pomocy WSDL (Web Service Description Language) Przykład: http://www.webservicex.net/ws/wsdetails.aspx?c atid=12&wsid=56

SOAP SOAP - dawniej Simple Object Access Protocol SOAP!= SOA Protokół przeznaczony do wymiany informacji przy użyciu Web Service ów Opiera się na XML, działa w oparciu o inne protokoły warstwy aplikacji (głównie HTTP)

SOAP Processing model reguły przetwarzania wiadomości SOAP Extensibility model możliwości i moduły Underlying protocol binding reguły definiowania powiązań z innymi protokołami Message construct struktura wiadomości SOAP

SOAP Processing model Zdefiniowane są następujące node y: Nadawca wysyła wiadomość Odbiorca odbiera wiadomość Ścieżka node y, przez które przechodzi wiadomość Nadawca początkowy nadawca, który wysłał wiadomość na początku ścieżki Pośrednik jednocześnie nadawca i odbiorca, przekazuje wiadomość dalej Ostateczny odbiorca cel dotarcia wiadomości

SOAP używane protokoły HTTP najpopularniejszy sposób używania SOAP, głównie ze względu na popularność oraz poprawne działanie z firewallami SMTP, HTTPS, SOAP-over-UDP AMQP Advanced Message Queuing Protocol

SOAP - wiadomość Oparta o XML ze względu na popularność, łatwość przetwarzania przez maszynę i człowieka, duży zestaw narzędzi POST /InStock HTTP/1.1 Host: www.example.org Content-Type: application/soap+xml; charset=utf-8 Content-Length: 299 SOAPAction: "http://www.w3.org/2003/05/soap-envelope" <?xml version="1.0"?> <soap:envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"> <soap:header> </soap:header> <soap:body> <m:getstockprice xmlns:m="http://www.example.org/stock"> <m:stockname>ibm</m:stockname> </m:getstockprice> </soap:body> </soap:envelope>

REST REST = Representational State Transfer Wzorzec architektoniczny, wprowadza jednorodny interfejs, bezstanową komunikację Wykorzystywany np. w ROR, Django Oparty najczęściej o HTTP, wykorzystuje jego standardowe operacje: GET, POST, PUT i DELETE

Czym jest WCF?

WCF WCF = Windows Communication Foundation Jeden z czterech głównych elementów.net Model programowania Service Oriented Application

WCF WCF dostarcza o SDK do tworzenia SOA o Środowiska do uruchamiania usług dla systemu Windows Usługi wymieniają wiadomości SOAP WCF bierze na siebie opakowywanie treści

WCF Dlaczego WCF? Przenośny i oparty o standardy wspiera wiele protokołów WS Łączy poprzednie modele programowania -.NET Remoting, ASMX web services, COM+ itp. Zajmuje się żmudną częścią opakowywania wiadomości Deklaratywny (atrybuty), imperatywny (obiekty), konfigurowalny

MARKETING

ABC WCF

ABC WCF A = Address (Where) B = Binding (How) C = Contract (What) Message

ABC WCF Każda usługa WCF posiada: Adres o Gdzie usługa jest Binding o Jak rozmawiać z usługą Kontrakt o Co usługa potrafi

ABC WCF Address Binding Contract

A jak adres Połączenie transportu, nazwy serwera, portu i ścieżki Transport jest wyznaczony przez binding Przykłady http://localhost:8001 net.tcp://localhost:8002/myservice net.pipe://localhost/mypipe net.msmq://localhost/private/myservice net.msmq://localhost/myservice

B jak binding Transport o o o HTTP TCP MSMQ Format wiadomości i kodowanie o o o Plain text Binary Message Transmission Optimization Mechanism (MTOM) Bezpieczeństwo o o o o Brak Transport Wiadomość Autoryzacja użytkowników

B jak binding BasicHttpBinding WSHttpBinding WS2007HttpBinding WSDualHttpBinding WSFederationHttp Binding WS2007FederationHttp Binding NetTcpBinding NetNamedPipeBinding NetMsmqBinding NetPeerTcpBinding WebHttpBinding MsmqIntegrationBinding

C jak contract Service contracts o Definiują operacje, komunikację i zachowanie Data contracts o Definiują encje i typy parametrów Fault contracts o Definiują typy błędów Message contracts o Definiują format wiadomości

4 zasady WCF Share schema, not class. Behaviors such as passing complete classes, methods and all, across service boundaries aren t allowed. Services are autonomous. A service and its clients agree on the interface between them, but are otherwise independent. Boundaries are explicit. Hiding distribution is not a goal. Use policy-based compatibility. The ability for a client to consume a service is based on the intersection of what the client supports and what the service supports.

Usługa WCF

Usługa WCF Service class zaimplementowana w dowolnym języku opartym o CLR Host proces coś, co odpali naszą usługę Endpoint przynajmniej jedno wyjście na świat

Service contract, Operation contract Service to klasa o o opatrzona atrybutem ServiceContract Implementująca interfejs opatrzony tym atrybutem Posiada metody opatrzone atrybutem OperationContract [ServiceContract] public interface IService { [OperationContract] string GetData(int value); } public class ConcreteService : IService { public string GetData(int value) {... } } public string OtherMethod() {... }

Data contract DataContract oznacza typ jako typ kontraktu DataMember oznacza składową jako część kontraktu [DataContract] public class CustomType { [DataMember] public bool MyFlag { get; set; } [DataMember] public string MyString { get; set; } }

Hostowanie usługi IIS o Tylko HTTP WAS (Windows Activation Service) o Może używać dowolnego tranposrtu o Przynajmniej Vista i Windows Server 2008 Self-hosting o Może używać dowolnego transportu o Można hostować wewnątrz Console, WinForms, WPF itp.

Self-hosting using System.ServiceModel; public class ServiceHost { public static void Main() { ServiceHost s = new ServiceHost(typeof(MyService)); s.open(); Console.Writeline("Press ENTER to end service"); Console.Readline(); s.close(); } }

Bindingi WCF oferuje predefiniowane bindingi wykorzystujące popularne mechanizmy Jedna usługa może mieć wiele bindingów, każdy innego typu Można je konfigurować dynamicznie (z poziomu kodu) lub w appconfigach (przy pomocy xmla)

Binding z poziomu kodu using System.ServiceModel; public class ServiceHost { public static void Main() { ServiceHost s = new ServiceHost(typeof(MyService)); s.addendpoint(typeof(myservice), new BasicHttpBinding(), "http://www.example.com/sample/service.svc"); s.open(); Console.Writeline("Press ENTER to end service"); Console.Readline(); s.close(); } }

Binding w pliku konfiguracyjnym <configuration> <system.servicemodel> <services> <service type="myservice"> <endpoint contract="iservice" binding= basichttpbinding address= " http://www.example.com/sample/service.svc "/> </service> </services> </system.servicemodel> </configuration>

Metadata exchange Service może również wystawić endpoint dla Metadata Exchange (MEX) Pozwala on na poinformowanie klientów o: o Adresach pozostałych endpointów o Użytych bindingach o Użytych kontraktach

Klient WCF

Klient WCF Klient musi utworzyć proxy, które zajmie się wszystkim Może napisać je ręcznie lub wygenerować Client Proxy WCF Host Process Service Class WCF Host Process

Klient WCF Do wygenerowania proxy można użyć: o Narzędzia SvcUtil.exe (dołączony do VS) o Opcji Add Service Reference (patrz demo) Można również komunikować się bardziej niskopoziomowo przy pomocy ChannelFactory

Demo

Pozostałe aspekty WCF

Pozostałe aspekty Póki co wykorzystywaliśmy tylko RPC, WCF wspiera również: o Asynchronous RPC o Wiadomości (Fire & Forget) o Bezpośrednie manipulowanie wiadomościami SOAP

Pozostałe aspekty W WCF możemy kontrolować również wielowątkowość liczbę wątków per aplikacja lub per context Mamy też wiele opcji bezpieczeństwa: HTTPS, autoryzacja i autentykacja klienta, własne bindingi z własną autentykacją, standardowe mechanizmy.net WCF pozwala również na tworzenie transakcji czy to przez atrybuty czy też przez bezpośrednie użycie System.Transactions

Pozostałe aspekty WCF wspiera też REST [ServiceContract] interface IReservations { [OperationContract] [WebGet] bool Check(string vehicleclass, int location, string dates); } [OperationContract] [WebInvoke] string Reserve(string vehicleclass, int location, string dates); [OperationContract] [WebInvoke(Method="DELETE")] bool Cancel(string reservation);

Pozostałe aspekty WCF wspiera kolejki: o MSMQ o MSMQ-MQSeries bridge WCF jest rozszerzalny własne kanały, walidatory Dodanie usługi WCF nie łamie istniejącej aplikacji

Pytania?

Dzięki za uwagę! adam.furmanek@studentpartner.com