Windows Communication Foundation
![.NET 3.0 arhitektura](http://upload.wikimedia.org/wikipedia/commons/thumb/4/49/DotNet3.0.svg/300px-DotNet3.0.svg.png)
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
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.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/1/18/WCF_Endpoint_Diagram.png/300px-WCF_Endpoint_Diagram.png)
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
- Developing Service-Oriented Applications with WCF
- Microsoft .NET Home
- п
- р
- у
- Библиотека базних класа
- Општи језички извршни програм (CLR)
- Заштита приступа коду
- Асемблер
- Метаподаци
- COM Interop
инфраструктура (CLI)
- Општа језичка инфраструктура (CLI)
- Систем општих типова
- Општи интермедијарни језик (CIL)
- Систем виртуелног извршавања
- ADO.NET
- Entity Framework
- Data Services
- ASP.NET
- AJAX
- MVC
- Dynamic Data
- LINQ
- CardSpace
- ClickOnce
- WCF
- Dynamic Language Runtime
- Forms
- WPFn
- Remoting
- Workflow Foundation
- XAML
- Mono
- Compact Framework
- XNA Framework
- Micro Framework
- Portable .NET
- Silverlight
- SSCLI
- DotGNU
- "Acropolis"
- "Jasper"
- Parallel Extensions
- Managed Extensibility Framework