Arsitektur Windows Communication Foundation

Grafik berikut menggambarkan lapisan utama arsitektur Windows Communication Foundation (WCF).

Arsitektur WCF

WCF_Architecture

Kontrak dan Deskripsi

Kontrak menentukan berbagai aspek sistem pesan. Kontrak data menjelaskan setiap parameter yang membentuk setiap pesan yang dapat dibuat atau dikonsumsi layanan. Parameter pesan ditentukan oleh dokumen bahasa definisi Skema XML (XSD), memungkinkan sistem apa pun yang memahami XML untuk memproses dokumen. Kontrak pesan mendefinisikan bagian pesan tertentu menggunakan protokol SOAP, dan memungkinkan kontrol yang lebih halus atas bagian pesan, ketika interoperabilitas menuntut presisi tersebut. Kontrak layanan menentukan tanda tangan metode aktual layanan, dan didistribusikan sebagai antarmuka dalam salah satu bahasa pemrograman yang didukung, seperti Visual Basic atau Visual C#.

Kebijakan dan pengikatan menetapkan kondisi yang diperlukan untuk berkomunikasi dengan layanan. Misalnya, pengikatan harus (minimal) menentukan transportasi yang digunakan (misalnya, HTTP atau TCP), dan pengodean. Kebijakan termasuk persyaratan keamanan dan kondisi lain yang harus dipenuhi untuk berkomunikasi dengan layanan.

Layanan Runtime

Lapisan runtime layanan berisi perilaku yang hanya terjadi selama operasi aktual layanan, yaitu perilaku runtime layanan. Pengaturan throttling mengontrol berapa banyak pesan yang diproses, yang dapat disesuaikan jika permintaan layanan meningkat hingga batas yang ditetapkan sebelumnya. Perilaku kesalahan menentukan apa yang terjadi ketika kesalahan internal terjadi pada layanan, misalnya, dengan mengontrol informasi apa yang dikomunikasikan kepada klien. (Terlalu banyak informasi dapat memberi pengguna berbahaya keuntungan dalam memasang serangan.) Perilaku metadata mengatur bagaimana dan apakah metadata tersedia untuk dunia luar. Perilaku instans menentukan berapa banyak instans layanan yang dapat dijalankan (misalnya, singleton hanya menentukan satu instans untuk memproses semua pesan). Perilaku transaksi memungkinkan pembatalan operasi yang ditransaksikan jika kegagalan terjadi. Perilaku pengiriman adalah kontrol tentang bagaimana pesan diproses oleh infrastruktur WCF.

Ekstensibilitas memungkinkan penyesuaian proses runtime. Misalnya, pemeriksaan pesan adalah fasilitas untuk memeriksa bagian pesan, dan pemfilteran parameter memungkinkan tindakan prasetel terjadi berdasarkan filter yang bertindak pada header pesan.

Pesan

Lapisan olahpesan terdiri dari saluran. Saluran adalah komponen yang memproses pesan dalam beberapa cara, misalnya, dengan mengautentikasi pesan. Sekumpulan saluran juga dikenal sebagai tumpukan saluran. Saluran beroperasi berdasarkan pesan dan header pesan. Ini berbeda dari lapisan runtime layanan, yang terutama berfokus pada pemrosesan isi pesan.

Ada dua jenis saluran: saluran transportasi dan saluran protokol.

Saluran transportasi membaca dan menulis pesan dari jaringan (atau beberapa titik komunikasi lainnya dengan dunia luar). Beberapa protokol transport menggunakan encoder untuk mengubah pesan (yang direpresentasikan sebagai Infoset XML) ke dan dari representasi aliran byte yang digunakan oleh jaringan. Contoh transport yang digunakan adalah HTTP, Named Pipes, TCP, dan MSMQ. Contoh pengodean adalah XML dan biner yang dioptimalkan.

Saluran protokol menerapkan protokol pemrosesan pesan, sering kali dengan membaca atau menulis header tambahan ke pesan. Contoh protokol tersebut termasuk WS-Security dan WS-Keandalan.

Lapisan olahpesan mengilustrasikan kemungkinan format dan pola pertukaran data. WS-Security adalah implementasi dari spesifikasi WS-Security yang memungkinkan keamanan pada lapisan pesan. Saluran Olahpesan WS-Reliable memungkinkan jaminan pengiriman pesan. Encoder menyajikan berbagai pengodean yang dapat digunakan agar sesuai dengan kebutuhan pesan. Saluran HTTP menentukan bahwa Protokol Transportasi HyperText digunakan untuk pengiriman pesan. Saluran TCP juga menentukan protokol TCP. Saluran Alur Transaksi mengatur pola pesan yang ditransaksikan. Saluran Pipa Bernama memungkinkan komunikasi antarpemrosesan. Saluran MSMQ memungkinkan interoperaksi dengan aplikasi MSMQ.

Hosting dan Aktivasi

Dalam bentuk terakhirnya, layanan adalah program. Seperti program lain, layanan harus dijalankan dalam executable. Ini dikenal sebagai layanan yang dihost sendiri .

Layanan juga dapat dihosting, atau dijalankan dalam executable yang dikelola oleh agen eksternal, seperti IIS atau Windows Activation Service (WAS). WAS memungkinkan aplikasi WCF diaktifkan secara otomatis ketika disebarkan pada komputer yang menjalankan WAS. Layanan juga dapat dijalankan secara manual sebagai file yang dapat dieksekusi (.exe). Layanan juga dapat dijalankan secara otomatis sebagai layanan Windows. Komponen COM+ juga dapat dihosting sebagai layanan WCF.

Lihat juga