Windows Communication Foundation (WCF)

Download Report

Transcript Windows Communication Foundation (WCF)

Windows Communication Foundation
(WCF)
Mocanasu Nicolae 342 C5
Ce este WCF?
• Windows Communication Foundation (WCF) este un
kit de dezvoltare software pentru dezvoltarea şi
implementarea unor servicii pe Windows.
• WCF oferă un mediu de execuţie pentru serviciile
noastre, fiind un Common Language Runtime (CLR)
pentru servicii care ne permite sa folosim atat
serviciile noastre ca servicii Windows cat si alte
servicii Windows.
• Prin urmare, WCF oferă interoperabilitate între
servicii.
Servicii
• Serviciul este o unitate de funcţionalitate expusa lumii. În această
privinţă, este urmatorul pas al evoluţiei, de la funcţii la obiecte la
componente la servicii.
•
Serviciile pot fi locale sau la
distanţă, pot fi dezvoltate de mai
multe persoane folosind orice
tehnologii, pot fi versiuni
independente, si se pot executa
chiar si pe termene diferite. În
interiorul unui serviciu, veţi găsi
concepte cum ar fi limbaje,
tehnologii, platforme, versiuni, şi
cadre, dar între servicii sunt
permise numai modelele standart
de comunicare .
Clienti vs. Servicii
• Clienţii şi serviciile interacţionează prin trimiterea şi primirea
de mesaje.
• Mesajele pot fi transferate direct de la client la serviciu, sau
pot fi trimise printr-un intermediar. Cu WCF, mesajele sunt de
obicei mesaje SOAP. Aceste mesaje sunt independente de
protocoale de transport, serviciile WCF pot comunica printr-o
varietate de protocoale de transport (nu doar HTTP). clientii
WCF pot interopera cu servicii non-WCF, si serviciile WCF pot
interactiona cu clientii non-WCF. Acestea fiind spuse, în cazul
în care se va dezvolta atât clientul, cât şi serviciul,se poate
construi o aplicatie, astfel încât ambele capete sa utilizeze
avantaje specifice WCF.
Servicii
• WCF permite clientului sa
comunice cu un serviciu în
toate limitele de executie.
Pe aceeaşi maşină, clientul
poate consuma servicii în
acelasi domeniu sau în
domenii diferite în cadrul
aceluiaşi proces, sau între
procese diferite.
Servicii
• Clientul poate interacţiona cu serviciile sale local
sau pe Internet.
Adrese
• În WCF, fiecare serviciu este asociat cu o adresa unica. Adresa oferă două
elemente importante: locul de serviciu, şi protocolul de transport, sau
schema de transport, utilizate pentru a comunica cu serviciul. Partea cu
locaţia adresei indică numele de masina tinta, site-ul, sau reţeaua, un port
de comunicaţie, canal, sau coadă, sau URI (Universal Resource Identifier).
Un URI poate fi orice şir unic, cum ar fi numele serviciului sau un
identificator unic global (GUID).
• WCF suporta urmatoarele protocoale
de transport :
–
–
–
–
–
HTTP
TCP
Peer network
IPC (Inter-Process Communication)
MSMQ
•Adresa de bază este întotdeauna în acest
format:
[transport]://[machine or domain][:optional port]
•Exemple de adrese :
http://localhost:8001
http://localhost:8001/MyService
net.tcp://localhost:8002/MyService
net.pipe://localhost/MyPipe
net.msmq://localhost/private/MyQueue
net.msmq://localhost/MyQueue
Contracts
• Contractul este o modalitate de a descrie ceea ce face serviciul. WCF
defineşte patru tipuri de contracte:
– Message contracts
Permite serviciilor sa interacţioneze direct cu mesajele
–
Fault contracts
Defineste care erori sunt prinse de serviciu, şi modul în care serviciul utilizeaza şi propaga erorile clientilor sai.
– Service contracts
Descrie operaţiunile pe care clientul le poate efectua pe un serviciu.
– Data contracts
Defineste tipuri de date care sunt transmise la şi de la serviciu. WCF defineşte pentru contracte tipuri implicite,
cum ar fi int si string, dar se pot defini cu uşurinţă explicit tipurile personalizate.
Hosting
•
•
Principalul avantaj al unui serviciu de hosting în serverul de web
Microsoft IIS este că procesul gazdă este lansat automat la cererea
clientului şi se bazeaza pe IIS 5 / 6 pentru a gestiona ciclul de viaţă al
procesului gazdă. Principalul dezavantaj al IIS 5 / 6 hosting este că putem
folosi doar HTTP. Cu IIS 5, suntem în continuare limitati la un singur port
pentru toate serviciile.
Exemplu fisier .svc:
<%@ ServiceHost
Language = "C#"
Debug = "true"
CodeBehind = "/App_Code/MyService.cs"
Service = "MyService“
%>
•
Fisierul de configurare(Web.Config):
<system.serviceModel>
<services>
<service name ="MyNamespace.MyService">
...
</service>
</services>
</system.serviceModel>
Servicii WEB
•
Un serviciu web este un software care se pune la dipoziție pe Internet și care
folosește un sistem de mesaje standardizat bazat pe XML. Trebuie să existe
mecanisme simple de a găsi un serviciu și interfața publică a acestuia.
•
Aplicațiile software scrise în limbaje de programare diferite și care rulează pe diverse
platforme pot folosi serviciile Web pentru a face schimb de date pe rețea (Internet),
într-o manieră oarecum asemănătoare comunicării inter-procese pe un singur
calculator. Interoperabilitatea se datorează folosirii unor standarde publice adecvate.
 In cele ce urmeaza o sa prezint utilizarea unor astfel de servicii pe o solutie WMS .
Aplicabilitate
•
Modulul BO (Back Office) ruleaza pe calculatoarele cu sisteme de operare Winows Xp,Vista
sau Windows 7 avand roluri de administrare, introducere comenzi, monitorizare activitati si
raportare.
Exemplu de utilizare
Exempul de utitlizare(2)
Exemplu de utilizare (3)
Exemplu de utilizare (4)
Exemplu de utilizare (5)
Exemplu de utilizare (6)
Discutie
Exemplu de utilizare (7)
Exemplu de utilizare (8)
Exemplu de utilizare (9)
Exemplu de utilizare (10)
Recapitulare
• WCF = Common Language Runtime (CLR) pentru servicii.
•
Serviciile pot fi locale sau la distanţă.
• Serviciile pot fi dezvoltate de mai multe persoane folosind orice
tehnologii.
• Interacţionează prin trimiterea şi primirea de mesaje XML.
Intrebari
Multumesc frumos de atentie !.