Windows Communication Foundation

Windows Communication Foundation (skraćeno WCF), ranije nazivan Indigo, je servisno orijentisani model razmene poruka, koji omogućava programima da komuniciraju preko računarske mreže ili lokalno, na sličan način na koji se povezuju i veb servisi[1]. WCF je alat koji u sebi uključuje set biblioteka razvijenih za distribuirano programiranje[2]. Microsoft ga je uveo sa verzijom .NET Framework 3.0

.NET 3.0 arhitektura
Deo platforme .NET Framework

Arhitektura уреди

WCF je alat često korišćen za implementaciju i razvijanje servisno orijentisane arhitekture (SOA Service Oriented Architecture). Dizajniran je da podrži razvoj distribuiranih sistema tamo gde servisi imaju udaljene potrošače (klijente). Klijenti mogu da koriste servise tako da jedan servis može upotrebljavati više klijenta. Karakteristika servisa je da je sastavljen od celina čije su komponente labavo povezane (loosely coupled). Uobičajeno je da su servisi opisani preko WSDL jezika (Web Service Descritpion Language) koji bilo koji klijent može da upotrebi kako bi uspostavio vezu sa servisom, bez obzira na kojoj se platformi nalazi klijentska aplikacija. WCF je u svoju implementaciju preneo dosta postojećeg od veb servisa. Sa pojavom verzije .NET Framework 4.0, WCF podržava RSS servise, WS-Discovey rutiranje i bolju podršku za REST servise od prethodnih verzija.

Krajnje tačke (endpoints) уреди

Klijentska WCF aplikacija se povezuje sa WCF servisom preko krajnje tačke. Svaki servis ima izložen ugovor preko jedne ili više definisanih krajnjih tačaka. Krajnja tačka je opisana adresom (URL koji specificira na kojoj adresi se nalazi krajnja tačka - address), načinom povezivanja (binding) koji spiecifikuje protokol koji će da se koristi za prenos podataka, kao i ugovorom (contract), koji predstavlja interfejs koji sadrži informacije o funkcijama koje su na raspolaganju klijentskim aplikacijama.

 
WCF Endpoint dijagram, povezivanje klijenta sa serverom

Mnemonička oznaka "ABC" se koristi radi lakšeg pamćenja za opis krajnje tačke - Address, Binding, Contract. Povezivanje (binding) određuje koji komunikacioni protokol se koristi za pristupanje servisu, da li će biti korišćen neki siguran protokol i slično. WCF tehnologija uključuje predefinisana povezivanja za najčešće upotrebljivane komunikacione protokole kao što su SOAP preko HTTP, TCP, MSMQ itd. Interkacija između WCF krajnje tačke i klijenta je urađena preko SOAP protokola (omotača). SOAP omotnice su XML formatirani dokument koji čine WCF nezavisnim od platforme. Kada klijent želi da pozove servis preko krajnje tačke, osim ugovora potrebno je i da bude povezan sa servisom preko protokola koji je određen krajnjom tačkom. Prema tome, klijent i server moraju imati kompatibilne krajnje tačke.

Sa pojavom .NET Framework 3.5 novembra 2007, Miscrosoft je podržao serijalizaciju JSON formata, što je omogućilo WCF servise dostupne pozivima iz veb aplikacija koje koriste AJAX tehnologuju korišćenjem JSON notacije.

Ponašanja (behaviors) уреди

Preko svojstva ponašanja moguće je izmeniti ili proširiti servis ili funkcionalnost klijenta. Ponašanja dozvoljavaju programerima da kreiraju korisnički definisano procesiranje poruka ili transformaciju koja je primenjena na poruke koje su poslate ili primljene. Neki primeri korišćenja ponašanja su sledeći:

  • Kontrolisanje da li će metapodaci da budu objavljeni sa servisom
  • Dodavanje sigurnosnih mehanizama servisu, kao što je impersonifikacija, autorizacija ili tokeni
  • Snimanje toka informacija o porukama (praćenje ili logovanje)
  • Validacija poruke ili parametara
  • Uključivanje svih dodatnih operacija kada je poruka primenjena - kao što je notifikacija koja se šalje korisniku da je određena poruka primljena.

Ponašanja implementiraju interfejs IServiceBehavior za proširenja servisa, IEndpointBehavior za proširenje krajnjih tačaka, IContractBehavior za ugovore ili IOperationBehavior za operacije. Servisna ponašanja su korišćenja za procesiranje poruka kroz čitav servis, kako procesiranje ne bi bilo specifično pojedinačno za operacije.

Interoperabilnost уреди

Jedna od osnovnih prednosti WCF je interoperabilnost. WCF aplikacije mogu da komuniciraju sa aplikacijama razvijenim u različitim programskim jezicima, tehnologijama i na različitim platformama.

Reference уреди

Spoljašnje veze уреди