Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Bagian ini menunjukkan kepada Anda cara menentukan dan menerapkan kontrak WCF. Kontrak layanan menentukan apa yang dikomunikasikan oleh titik akhir kepada pihak eksternal. Pada tingkat yang lebih konkret, ini adalah pernyataan tentang sekumpulan pesan tertentu yang diatur ke dalam pola pertukaran pesan dasar (MEP), seperti permintaan/balasan, satu arah, dan dupleks. Jika kontrak layanan adalah kumpulan pertukaran pesan yang terkait secara logis, operasi layanan adalah pertukaran pesan tunggal. Misalnya, Hello operasi harus jelas menerima satu pesan (sehingga pemanggil dapat mengumumkan salam) dan mungkin atau mungkin tidak mengembalikan pesan (tergantung pada kesantunan operasi).
Untuk informasi selengkapnya tentang kontrak dan konsep Inti Windows Communication Foundation (WCF) lainnya, lihat Konsep Dasar Windows Communication Foundation. Topik ini berfokus pada pemahaman kontrak layanan. Untuk informasi selengkapnya tentang cara membangun klien yang menggunakan kontrak layanan untuk menyambungkan ke layanan, lihat Gambaran Umum Klien WCF.
Gambaran Umum
Topik ini memberikan orientasi konseptual tingkat tinggi untuk merancang dan menerapkan layanan WCF. Subtopik memberikan informasi yang lebih rinci tentang spesifikasi desain dan implementasi. Sebelum merancang dan menerapkan aplikasi WCF Anda, disarankan agar Anda:
Pahami apa itu kontrak layanan, cara kerjanya, dan cara membuatnya.
Pahami bahwa kontrak menyatakan persyaratan minimum yang mungkin tidak didukung oleh konfigurasi runtime atau lingkungan hosting.
Kontrak Layanan
Kontrak layanan menentukan hal-hal berikut:
Operasi yang diekspos kontrak.
Ciri khas operasi dalam hal pesan yang dipertukarkan.
Jenis data dari pesan-pesan ini.
Lokasi operasi.
Protokol dan format serialisasi tertentu yang digunakan untuk mendukung komunikasi yang berhasil dengan layanan.
Misalnya, kontrak pesanan pembelian mungkin memiliki CreateOrder operasi yang menerima input jenis informasi pesanan dan mengembalikan informasi keberhasilan atau kegagalan, termasuk pengidentifikasi pesanan. Ini mungkin memiliki operasi GetOrderStatus yang juga menerima pengidentifikasi pesanan dan mengembalikan informasi status pesanan. Kontrak layanan dari jenis ini akan menentukan:
Bahwa kontrak pemesanan pembelian terdiri dari operasi
CreateOrderdanGetOrderStatus.Bahwa operasi telah menentukan pesan input dan pesan output.
Data yang dapat dibawa pesan-pesan ini.
Pernyataan kategoris tentang infrastruktur komunikasi yang diperlukan untuk berhasil memproses pesan. Misalnya, detail ini mencakup apakah dan bentuk keamanan apa yang diperlukan untuk membangun komunikasi yang berhasil.
Untuk menyampaikan informasi semacam ini ke aplikasi lain di banyak platform (termasuk platform non-Microsoft), kontrak layanan XML dinyatakan secara publik dalam format XML standar, seperti Web Services Description Language (WSDL) dan XML Schema (XSD), antara lain. Pengembang untuk banyak platform dapat menggunakan informasi kontrak publik ini untuk membuat aplikasi yang dapat berkomunikasi dengan layanan, baik karena mereka memahami bahasa spesifikasi dan karena bahasa tersebut dirancang untuk memungkinkan interoperaksi dengan menjelaskan formulir publik, format, dan protokol yang didukung layanan. Untuk informasi selengkapnya tentang cara WCF menangani informasi semacam ini, lihat Metadata.
Kontrak dapat diekspresikan dengan banyak cara, dan sementara WSDL dan XSD adalah bahasa yang sangat baik untuk menggambarkan layanan dengan cara yang dapat diakses, mereka adalah bahasa yang sulit digunakan secara langsung dan hanya deskripsi layanan, bukan implementasi kontrak layanan. Oleh karena itu, aplikasi WCF menggunakan atribut, antarmuka, dan kelas terkelola untuk menentukan struktur layanan dan untuk mengimplementasikannya.
Kontrak yang dihasilkan yang ditentukan dalam jenis terkelola dapat diekspor sebagai metadata—WSDL dan XSD—jika diperlukan oleh klien atau pelaksana layanan lainnya. Hasilnya adalah model pemrograman langsung yang dapat dijelaskan (menggunakan metadata publik) ke aplikasi klien apa pun. Detail pesan SOAP yang mendasar, informasi terkait transportasi dan keamanan, dan sebagainya, dapat diserahkan ke WCF, yang melakukan konversi yang diperlukan ke dan dari sistem jenis kontrak layanan ke sistem jenis XML secara otomatis.
Untuk informasi selengkapnya tentang merancang kontrak, lihat Merancang Kontrak Layanan. Untuk informasi selengkapnya tentang menerapkan kontrak, lihat Menerapkan Kontrak Layanan.
Pesan di Depan dan Tengah
Menggunakan antarmuka terkelola, kelas, dan metode untuk memodelkan operasi layanan cukup mudah ketika Anda terbiasa dengan penandatanganan metode gaya panggilan prosedur jarak jauh (RPC), di mana meneruskan parameter ke dalam metode dan menerima nilai pengembalian merupakan cara biasa untuk meminta fungsionalitas dari objek atau jenis kode lainnya. Misalnya, pemrogram yang menggunakan bahasa terkelola seperti Visual Basic dan C++ COM dapat menerapkan pengetahuan mereka tentang pendekatan gaya RPC (baik menggunakan objek atau antarmuka) ke pembuatan kontrak layanan WCF tanpa mengalami masalah yang melekat dalam sistem objek terdistribusi gaya RPC. Orientasi layanan memberikan manfaat pemrograman berorientasi pesan yang digabungkan secara longgar sambil mempertahankan kemudahan dan keakraban pengalaman pemrograman RPC.
Banyak programmer lebih nyaman dengan antarmuka pemrograman aplikasi berorientasi pesan, seperti antrean pesan seperti Microsoft MSMQ, System.Messaging namespace di .NET Framework, atau mengirim XML yang tidak terstruktur dalam permintaan HTTP, untuk beberapa nama. Untuk informasi selengkapnya tentang pemrograman di tingkat pesan, lihat Menggunakan Kontrak Pesan, Pemrograman Channel-Level Layanan, dan Interoperabilitas dengan Aplikasi POX.
Memahami Hierarki Persyaratan
Kontrak layanan mengelompokkan operasi; menentukan pola pertukaran pesan, jenis pesan, dan jenis data yang dibawa pesan tersebut; dan menunjukkan kategori perilaku runtime implementasi harus mendukung kontrak (misalnya, mungkin mengharuskan pesan dienkripsi dan ditandatangani). Kontrak layanan itu sendiri tidak menentukan dengan tepat bagaimana persyaratan ini terpenuhi, hanya saja harus. Jenis enkripsi atau cara di mana pesan ditandatangani terserah implementasi dan konfigurasi layanan yang sesuai.
Perhatikan cara kontrak memerlukan hal-hal tertentu dari implementasi kontrak layanan dan konfigurasi runtime untuk menambahkan perilaku. Persyaratan yang harus dipenuhi untuk mengekspose layanan agar dapat digunakan membangun di atas kumpulan persyaratan sebelumnya. Jika kontrak membuat persyaratan implementasi, implementasi dapat memerlukan lebih banyak konfigurasi dan pengikatan yang memungkinkan layanan berjalan. Terakhir, aplikasi host juga harus mendukung semua persyaratan yang ditetapkan oleh konfigurasi dan pengikatan layanan.
Proses persyaratan aditif ini penting untuk diingat saat merancang, menerapkan, mengonfigurasi, dan menghosting aplikasi layanan Windows Communication Foundation (WCF). Misalnya, kontrak dapat menentukan bahwa perlu mendukung sesi. Jika demikian, maka Anda harus mengonfigurasi pengikatan untuk mendukung persyaratan kontraktual tersebut, atau implementasi layanan tidak akan berfungsi. Atau jika layanan Anda memerlukan Autentikasi Terintegrasi Windows dan dihosting di Layanan Informasi Internet (IIS), aplikasi Web tempat layanan berada harus mengaktifkan Autentikasi Terintegrasi Windows dan dukungan anonim dimatikan. Untuk informasi selengkapnya tentang fitur dan dampak dari berbagai jenis aplikasi host layanan, lihat Layanan Hosting.
Lihat juga
- Merancang Kontrak Layanan
- Menerapkan Kontrak Layanan