Layanan Web - Panduan Cepat
Buku yang berbeda dan organisasi yang berbeda memberikan definisi yang berbeda untuk Layanan Web. Beberapa di antaranya tercantum di sini.
Layanan web adalah perangkat lunak apa pun yang tersedia melalui internet dan menggunakan sistem pesan XML standar. XML digunakan untuk menyandikan semua komunikasi ke layanan web. Misalnya, klien memanggil layanan web dengan mengirimkan pesan XML, lalu menunggu respons XML yang sesuai. Karena semua komunikasi dalam XML, layanan web tidak terikat pada satu sistem operasi atau bahasa pemrograman mana pun — Java dapat berbicara dengan Perl; Aplikasi Windows dapat berbicara dengan aplikasi Unix.
Layanan web adalah aplikasi mandiri, modular, terdistribusi, dinamis yang dapat dijelaskan, dipublikasikan, ditempatkan, atau dipanggil melalui jaringan untuk membuat produk, proses, dan rantai pasokan. Aplikasi ini dapat bersifat lokal, didistribusikan, atau berbasis web. Layanan web dibangun di atas standar terbuka seperti TCP / IP, HTTP, Java, HTML, dan XML.
Layanan web adalah sistem pertukaran informasi berbasis XML yang menggunakan Internet untuk interaksi aplikasi-ke-aplikasi secara langsung. Sistem ini dapat mencakup program, objek, pesan, atau dokumen.
Layanan web adalah kumpulan protokol dan standar terbuka yang digunakan untuk bertukar data antara aplikasi atau sistem. Aplikasi perangkat lunak yang ditulis dalam berbagai bahasa pemrograman dan berjalan pada berbagai platform dapat menggunakan layanan web untuk bertukar data melalui jaringan komputer seperti Internet dengan cara yang mirip dengan komunikasi antar proses pada satu komputer. Interoperabilitas ini (misalnya antara Java dan Python, atau aplikasi Windows dan Linux) disebabkan oleh penggunaan standar terbuka.
Untuk meringkas, layanan web lengkap, oleh karena itu, adalah layanan apa pun yang -
Tersedia melalui Internet atau jaringan pribadi (intranet)
Menggunakan sistem pesan XML standar
Tidak terikat pada satu sistem operasi atau bahasa pemrograman
Mendeskripsikan diri sendiri melalui tata bahasa XML umum
Dapat ditemukan melalui mekanisme temukan sederhana
Komponen Layanan Web
Platform layanan web dasar adalah XML + HTTP. Semua layanan web standar bekerja menggunakan komponen berikut -
SOAP (Protokol Akses Objek Sederhana)
UDDI (Deskripsi Universal, Penemuan dan Integrasi)
WSDL (Bahasa Deskripsi Layanan Web)
Semua komponen ini telah dibahas di bab Arsitektur Layanan Web .
Bagaimana Cara Kerja Layanan Web?
Layanan web memungkinkan komunikasi di antara berbagai aplikasi dengan menggunakan standar terbuka seperti HTML, XML, WSDL, dan SOAP. Sebuah layanan web membutuhkan bantuan -
XML untuk menandai data
SOAP untuk mentransfer pesan
WSDL untuk menggambarkan ketersediaan layanan.
Anda dapat membangun layanan web berbasis Java di Solaris yang dapat diakses dari program Visual Basic Anda yang berjalan di Windows.
Anda juga dapat menggunakan C # untuk membangun layanan web baru di Windows yang dapat dipanggil dari aplikasi web Anda yang didasarkan pada JavaServer Pages (JSP) dan berjalan di Linux.
Contoh
Pertimbangkan manajemen akun sederhana dan sistem pemrosesan pesanan. Personel akuntansi menggunakan aplikasi klien yang dibangun dengan Visual Basic atau JSP untuk membuat akun baru dan memasukkan pesanan pelanggan baru.
Logika pemrosesan untuk sistem ini ditulis di Java dan berada di mesin Solaris, yang juga berinteraksi dengan database untuk menyimpan informasi.
Langkah-langkah untuk melakukan operasi ini adalah sebagai berikut -
Program klien menggabungkan informasi pendaftaran akun ke dalam pesan SOAP.
Pesan SOAP ini dikirim ke layanan web sebagai isi permintaan HTTP POST.
Layanan web membongkar permintaan SOAP dan mengubahnya menjadi perintah yang dapat dipahami aplikasi.
Aplikasi memproses informasi yang diperlukan dan merespons dengan nomor akun unik baru untuk pelanggan tersebut.
Selanjutnya, layanan web mengemas respons ke dalam pesan SOAP lain, yang dikirim kembali ke program klien sebagai respons atas permintaan HTTP-nya.
Program klien membongkar pesan SOAP untuk mendapatkan hasil dari proses pendaftaran akun.
Berikut adalah keuntungan menggunakan Layanan Web -
Mengekspos Fungsi yang Ada di jaringan
Layanan web adalah unit kode terkelola yang dapat dipanggil dari jarak jauh menggunakan HTTP. Artinya, ini dapat diaktifkan menggunakan permintaan HTTP. Layanan web memungkinkan Anda untuk mengekspos fungsionalitas kode Anda yang ada melalui jaringan. Setelah terekspos di jaringan, aplikasi lain dapat menggunakan fungsionalitas program Anda.
Interoperabilitas
Layanan web memungkinkan berbagai aplikasi untuk berbicara satu sama lain dan berbagi data serta layanan di antara mereka sendiri. Aplikasi lain juga dapat menggunakan layanan web. Misalnya, aplikasi VB atau .NET dapat terhubung ke layanan web Java dan sebaliknya. Layanan web digunakan untuk membuat platform aplikasi dan teknologi mandiri.
Protokol Standar
Layanan web menggunakan protokol standar industri standar untuk komunikasi. Keempat lapisan (Service Transport, XML Messaging, Service Description, dan Service Discovery layer) menggunakan protokol yang ditentukan dengan baik dalam tumpukan protokol layanan web. Standarisasi tumpukan protokol ini memberi bisnis banyak keuntungan seperti pilihan yang luas, pengurangan biaya karena persaingan, dan peningkatan kualitas.
Komunikasi Berbiaya Rendah
Layanan web menggunakan SOAP melalui protokol HTTP, sehingga Anda dapat menggunakan internet murah yang ada untuk mengimplementasikan layanan web. Solusi ini jauh lebih murah dibandingkan dengan solusi berpemilik seperti EDI / B2B. Selain SOAP melalui HTTP, layanan web juga dapat diimplementasikan pada mekanisme transportasi yang dapat diandalkan lainnya seperti FTP.
Layanan web memiliki karakteristik perilaku khusus berikut -
Berbasis XML
Layanan web menggunakan XML pada representasi data dan lapisan transportasi data. Menggunakan XML menghilangkan pengikatan jaringan, sistem operasi, atau platform apa pun. Aplikasi berbasis layanan web sangat dapat dioperasikan pada tingkat intinya.
Hubungan renggang
Konsumen layanan web tidak terikat dengan layanan web itu secara langsung. Antarmuka layanan web dapat berubah dari waktu ke waktu tanpa mengorbankan kemampuan klien untuk berinteraksi dengan layanan. Sistem yang sangat erat menyiratkan bahwa logika klien dan server terkait erat satu sama lain, menyiratkan bahwa jika satu antarmuka berubah, yang lain harus diperbarui. Mengadopsi arsitektur yang digabungkan secara longgar cenderung membuat sistem perangkat lunak lebih mudah dikelola dan memungkinkan integrasi yang lebih sederhana antara sistem yang berbeda.
Berbutir Kasar
Teknologi berorientasi objek seperti Java memaparkan layanan mereka melalui metode individual. Metode individu adalah operasi yang terlalu bagus untuk memberikan kemampuan yang berguna di tingkat perusahaan. Membangun program Java dari awal memerlukan pembuatan beberapa metode terperinci yang kemudian disusun menjadi layanan berbutir kasar yang digunakan oleh klien atau layanan lain.
Bisnis dan antarmuka yang mereka tampilkan harus bersifat kasar. Teknologi layanan web menyediakan cara alami untuk menentukan layanan berbutir kasar yang mengakses logika bisnis dalam jumlah yang tepat.
Kemampuan untuk menjadi Synchronous atau Asynchronous
Sinkronisasi mengacu pada pengikatan klien untuk pelaksanaan layanan. Dalam pemanggilan sinkron, klien memblokir dan menunggu layanan menyelesaikan operasinya sebelum melanjutkan. Operasi asinkron memungkinkan klien untuk menjalankan layanan dan kemudian menjalankan fungsi lainnya.
Klien asinkron mengambil hasilnya di lain waktu, sementara klien sinkron menerima hasilnya saat layanan telah selesai. Kemampuan asinkron adalah faktor kunci dalam mengaktifkan sistem yang digabungkan secara longgar.
Mendukung Panggilan Prosedur Jarak Jauh (RPC)
Layanan web memungkinkan klien untuk menjalankan prosedur, fungsi, dan metode pada objek jarak jauh menggunakan protokol berbasis XML. Prosedur jarak jauh mengekspos parameter input dan output yang harus didukung oleh layanan web.
Pengembangan komponen melalui Enterprise JavaBeans (EJBs) dan .NET Components semakin menjadi bagian dari arsitektur dan penyebaran perusahaan selama beberapa tahun terakhir. Kedua teknologi tersebut didistribusikan dan dapat diakses melalui berbagai mekanisme RPC.
Layanan web mendukung RPC dengan menyediakan layanannya sendiri, setara dengan komponen tradisional, atau dengan menerjemahkan panggilan masuk ke dalam pemanggilan komponen EJB atau .NET.
Mendukung Pertukaran Dokumen
Salah satu keunggulan utama XML adalah cara generiknya untuk tidak hanya merepresentasikan data, tetapi juga dokumen yang kompleks. Dokumen-dokumen ini bisa sesederhana merepresentasikan alamat saat ini, atau bisa serumit merepresentasikan keseluruhan buku atau Request for Quotation (RFQ). Layanan web mendukung pertukaran dokumen yang transparan untuk memfasilitasi integrasi bisnis.
Ada dua cara untuk melihat arsitektur layanan web -
- Yang pertama adalah untuk memeriksa peran individu dari setiap aktor layanan web.
- Yang kedua adalah memeriksa tumpukan protokol layanan web yang muncul.
Peran Layanan Web
Ada tiga peran utama dalam arsitektur layanan web -
Penyedia layanan
Ini adalah penyedia layanan web. Penyedia layanan mengimplementasikan layanan dan membuatnya tersedia di Internet.
Pemohon Layanan
Ini adalah setiap konsumen layanan web. Pemohon menggunakan layanan web yang ada dengan membuka koneksi jaringan dan mengirimkan permintaan XML.
Registri Layanan
Ini adalah direktori layanan yang terpusat secara logis. Registri menyediakan tempat sentral di mana pengembang dapat menerbitkan layanan baru atau menemukan layanan yang sudah ada. Oleh karena itu, ini berfungsi sebagai clearing house terpusat untuk perusahaan dan layanan mereka.
Tumpukan Protokol Layanan Web
Pilihan kedua untuk melihat arsitektur layanan web adalah memeriksa tumpukan protokol layanan web yang muncul. Tumpukan masih berkembang, tetapi saat ini memiliki empat lapisan utama.
Layanan Transportasi
Lapisan ini bertanggung jawab untuk mengangkut pesan antar aplikasi. Saat ini, lapisan ini mencakup Hyper Text Transport Protocol (HTTP), Simple Mail Transfer Protocol (SMTP), File Transfer Protocol (FTP), dan protokol yang lebih baru seperti Blocks Extensible Exchange Protocol (BEEP).
Pesan XML
Lapisan ini bertanggung jawab untuk menyandikan pesan dalam format XML umum sehingga pesan dapat dipahami di kedua ujungnya. Saat ini, lapisan ini mencakup XML-RPC dan SOAP.
Deskripsi Layanan
Lapisan ini bertanggung jawab untuk mendeskripsikan antarmuka publik ke layanan web tertentu. Saat ini, deskripsi layanan ditangani melalui Web Service Description Language (WSDL).
Penemuan Layanan
Lapisan ini bertanggung jawab untuk memusatkan layanan ke dalam registri umum dan menyediakan fungsionalitas terbitkan / temukan dengan mudah. Saat ini, penemuan layanan ditangani melalui Deskripsi Universal, Penemuan, dan Integrasi (UDDI).
Saat layanan web berkembang, lapisan tambahan dapat ditambahkan dan teknologi tambahan dapat ditambahkan ke setiap lapisan.
Bab selanjutnya menjelaskan komponen layanan web.
Beberapa Kata tentang Transportasi Layanan
Bagian bawah tumpukan protokol layanan web adalah pengangkutan layanan. Lapisan ini bertanggung jawab untuk benar-benar mengangkut pesan XML antara dua komputer.
Hyper Text Transfer Protocol (HTTP)
Saat ini, HTTP adalah opsi paling populer untuk transportasi layanan. HTTP itu sederhana, stabil, dan digunakan secara luas. Selain itu, sebagian besar firewall mengizinkan lalu lintas HTTP. Ini memungkinkan pesan XMLRPC atau SOAP menyamar sebagai pesan HTTP. Ini bagus jika Anda ingin mengintegrasikan aplikasi jarak jauh, tetapi ini menimbulkan sejumlah masalah keamanan. Menimbulkan sejumlah masalah keamanan.
Memblokir Protokol Exchange yang Dapat Diperluas (BEEP)
Ini adalah alternatif yang menjanjikan untuk HTTP. BEEP adalah kerangka kerja Internet Engineering Task Force (IETF) baru untuk membangun protokol baru. BEEP dilapiskan langsung pada TCP dan mencakup sejumlah fitur bawaan, termasuk protokol jabat tangan awal, autentikasi, keamanan, dan penanganan kesalahan. Dengan menggunakan BEEP, seseorang dapat membuat protokol baru untuk berbagai aplikasi, termasuk olahpesan cepat, transfer file, sindikasi konten, dan manajemen jaringan.
SOAP tidak terikat pada protokol transport tertentu. Sebenarnya, Anda bisa menggunakan SOAP melalui HTTP, SMTP, atau FTP. Oleh karena itu, satu ide yang menjanjikan adalah menggunakan SOAP daripada BEEP.
Selama beberapa tahun terakhir, tiga teknologi utama telah muncul sebagai standar dunia yang membentuk inti dari teknologi layanan web saat ini. Teknologi ini dibahas di bawah.
XML-RPC
Ini adalah protokol berbasis XML yang paling sederhana untuk bertukar informasi antar komputer.
XML-RPC adalah protokol sederhana yang menggunakan pesan XML untuk melakukan RPC.
Permintaan dikodekan dalam XML dan dikirim melalui HTTP POST.
Respons XML disematkan di badan respons HTTP.
XML-RPC tidak bergantung pada platform.
XML-RPC memungkinkan beragam aplikasi untuk berkomunikasi.
Klien Java dapat menggunakan XML-RPC ke server Perl.
XML-RPC adalah cara termudah untuk memulai layanan web.
Untuk mempelajari lebih lanjut tentang XML-RPC, kunjungi Tutorial XML-RPC kami .
SABUN MANDI
SOAP adalah protokol berbasis XML untuk bertukar informasi antar komputer.
SOAP adalah protokol komunikasi.
SOAP adalah untuk komunikasi antar aplikasi.
SOAP adalah format pengiriman pesan.
SOAP dirancang untuk berkomunikasi melalui Internet.
SOAP adalah platform independen.
SOAP tidak bergantung pada bahasa.
SOAP sederhana dan dapat dikembangkan.
SOAP memungkinkan Anda untuk menjelajahi firewall.
SOAP akan dikembangkan sebagai standar W3C.
Untuk mempelajari lebih lanjut tentang SOAP, kunjungi Tutorial SOAP kami .
WSDL
WSDL adalah bahasa berbasis XML untuk menjelaskan layanan web dan cara mengaksesnya.
WSDL adalah singkatan dari Web Services Description Language.
WSDL dikembangkan bersama oleh Microsoft dan IBM.
WSDL adalah protokol berbasis XML untuk pertukaran informasi dalam lingkungan terdesentralisasi dan terdistribusi.
WSDL adalah format standar untuk menggambarkan layanan web.
Definisi WSDL menjelaskan cara mengakses layanan web dan operasi apa yang akan dilakukannya.
WSDL adalah bahasa untuk menjelaskan cara berinteraksi dengan layanan berbasis XML.
WSDL merupakan bagian integral dari UDDI, registri bisnis dunia berbasis XML.
WSDL adalah bahasa yang digunakan UDDI.
WSDL diucapkan sebagai 'wiz-dull' dan dieja sebagai 'WSD-L'.
Untuk mempelajari lebih lanjut tentang WSDL, kunjungi Tutorial WSDL kami .
UDDI
UDDI adalah standar berbasis XML untuk mendeskripsikan, menerbitkan, dan menemukan layanan web.
UDDI adalah singkatan dari Universal Description, Discovery, and Integration.
UDDI adalah spesifikasi untuk registri layanan web yang terdistribusi.
UDDI adalah kerangka kerja terbuka yang independen dan platform.
UDDI dapat berkomunikasi melalui SOAP, CORBA, dan Java RMI Protocol.
UDDI menggunakan WSDL untuk menggambarkan antarmuka ke layanan web.
UDDI dilihat dengan SOAP dan WSDL sebagai salah satu dari tiga standar dasar layanan web.
UDDI adalah inisiatif industri terbuka yang memungkinkan bisnis untuk menemukan satu sama lain dan menentukan cara mereka berinteraksi melalui Internet.
Untuk mempelajari lebih lanjut tentang UDDI, kunjungi Tutorial UDDI kami .
Berdasarkan arsitektur layanan web, kami membuat dua komponen berikut sebagai bagian dari implementasi layanan web -
Penyedia Layanan atau Penerbit
Ini adalah penyedia layanan web. Penyedia layanan mengimplementasikan layanan dan membuatnya tersedia di Internet atau intranet.
Kami akan menulis dan menerbitkan layanan web sederhana menggunakan .NET SDK.
Pemohon Layanan atau Konsumen
Ini adalah setiap konsumen layanan web. Pemohon menggunakan layanan web yang ada dengan membuka koneksi jaringan dan mengirimkan permintaan XML.
Kami juga akan menulis dua pemohon layanan web: satu konsumen berbasis web (aplikasi ASP.NET) dan konsumen berbasis aplikasi Windows lainnya.
Diberikan di bawah ini adalah contoh layanan web pertama kami yang berfungsi sebagai penyedia layanan dan memperlihatkan dua metode (tambah dan SayHello) sebagai layanan web yang akan digunakan oleh aplikasi. Ini adalah template standar untuk layanan web. Layanan web .NET menggunakan ekstensi .asmx. Perhatikan bahwa metode yang diekspos sebagai layanan web memiliki atribut WebMethod. Simpan file ini sebagai FirstService.asmx di direktori virtual IIS (seperti yang dijelaskan dalam konfigurasi IIS; misalnya, c: \ MyWebSerces).
FirstService.asmx
<%@ WebService language = "C#" class = "FirstService" %>
using System;
using System.Web.Services;
using System.Xml.Serialization;
[WebService(Namespace = "http://localhost/MyWebServices/")]
public class FirstService : WebService{
[WebMethod]
public int Add(int a, int b) {
return a + b;
}
[WebMethod]
public String SayHello() {
return "Hello World";
}
}
Untuk menguji layanan web, itu harus diterbitkan. Layanan web dapat dipublikasikan di intranet atau Internet. Kami akan menerbitkan layanan web ini di IIS yang dijalankan pada mesin lokal. Mari kita mulai dengan mengkonfigurasi IIS.
Buka Mulai → Pengaturan → Panel Kontrol → Alat administratif → Manajer Layanan Internet.
Luaskan dan klik kanan pada situs web default; pilih Baru & # rarr; Direktori Virtual. Wizard Pembuatan Direktori Virtual terbuka. Klik Next.
Layar "Virtual Directory Alias" terbuka. Ketik nama direktori virtual. Misalnya, MyWebServices. Klik Next.
Layar "Direktori Konten Situs Web" terbuka.
Masukkan nama jalur direktori untuk direktori virtual. Misalnya, c: \ MyWebServices. Klik Next.
Layar "Izin Akses" terbuka. Ubah pengaturan sesuai kebutuhan Anda. Mari kita pertahankan pengaturan default untuk latihan ini.
Klik tombol Next. Ini menyelesaikan konfigurasi IIS.
Klik Selesai untuk menyelesaikan konfigurasi.
Untuk menguji apakah IIS telah dikonfigurasi dengan benar, salin file HTML (Misalnya, x.html) di direktori virtual (C: \ MyWebServices) yang dibuat di atas. Sekarang, buka Internet Explorer dan ketikhttp://localhost/MyWebServices/x.html. Ini harus membuka file x.html.
Note- Jika tidak berhasil, coba ganti localhost dengan alamat IP mesin Anda. Jika masih tidak berhasil, periksa apakah IIS sedang berjalan; Anda mungkin perlu mengkonfigurasi ulang IIS dan Direktori Virtual.
Untuk menguji layanan web ini, salin FirstService.asmx di direktori virtual IIS yang dibuat di atas (C: \ MyWebServices). Buka layanan web di Internet Explorer (http: //localhost/MyWebServices/FirstService.asmx). Ini harus membuka halaman layanan web Anda. Halaman tersebut harus memiliki link ke dua metode yang diekspos sebagai layanan web oleh aplikasi kita. Selamat! Anda telah menulis layanan web pertama Anda!
Menguji Layanan Web
Seperti yang baru saja kita lihat, menulis layanan web itu mudah di .NET Framework. Menulis konsumen layanan web juga mudah dalam kerangka .NET; Namun, ini sedikit lebih terlibat. Seperti yang dikatakan sebelumnya, kami akan menulis dua jenis konsumen layanan, satu konsumen berbasis web dan konsumen berbasis aplikasi Windows. Mari kita tulis konsumen layanan web pertama kita.
Konsumen Layanan Berbasis Web
Tulis konsumen berbasis web seperti yang diberikan di bawah ini. Sebut saja WebApp.aspx. Perhatikan bahwa ini adalah aplikasi ASP.NET. Simpan ini di direktori virtual layanan web (c: \ MyWebServices \ WebApp.axpx).
Aplikasi ini memiliki dua bidang teks yang digunakan untuk mendapatkan nomor dari pengguna yang akan ditambahkan. Ini memiliki satu tombol, Jalankan, yang ketika diklik mendapatkan layanan web Tambah dan SayHello.
WebApp.aspx
<%@ Page Language = "C#" %>
<script runat = "server">
void runSrvice_Click(Object sender, EventArgs e) {
FirstService mySvc = new FirstService();
Label1.Text = mySvc.SayHello();
Label2.Text = mySvc.Add(Int32.Parse(txtNum1.Text), Int32.Parse(txtNum2.Text)).ToString();
}
</script>
<html>
<head> </head>
<body>
<form runat = "server">
<p>
<em>First Number to Add </em>:
<asp:TextBox id = "txtNum1" runat = "server" Width = "43px">4< /asp:TextBox>
</p>
<p>
<em>Second Number To Add </em>:
<asp:TextBox id = "txtNum2" runat = "server" Width = "44px">5</asp:TextBox>
</p>
<p>
<strong><u>Web Service Result -</u></strong>
</p>
<p>
<em>Hello world Service</em> :
<asp:Label id = "Label1" runat = "server" Font-Underline = "True">Label< /asp:Label>
</p>
<p>
<em>Add Service</em> :
& <asp:Label id = "Label2" runat = "server" Font-Underline = "True">Label</asp:Label>
</p>
<p align = "left">
<asp:Button id = "runSrvice" onclick = "runSrvice_Click" runat = "server" Text = "Execute"></asp:Button>
</p>
</form>
</body>
</html>
Setelah konsumen dibuat, kita perlu membuat proxy untuk layanan web yang akan dikonsumsi. Pekerjaan ini dilakukan secara otomatis oleh Visual Studio .NET untuk kami saat mereferensikan layanan web yang telah ditambahkan. Berikut langkah-langkah yang harus diikuti -
Buat proxy untuk Layanan Web yang akan digunakan. Proksi dibuat menggunakan utilitas WSDL yang disertakan dengan .NET SDK. Utilitas ini mengekstrak informasi dari Layanan Web dan membuat proxy. Proksi hanya berlaku untuk Layanan Web tertentu. Jika Anda perlu menggunakan Layanan Web lain, Anda perlu membuat proxy untuk layanan ini juga. Visual Studio .NET membuat proksi secara otomatis untuk Anda saat referensi Layanan Web ditambahkan. Buat proxy untuk Layanan Web menggunakan utilitas WSDL yang disertakan dengan .NET SDK. Ini akan membuat file FirstSevice.cs di direktori saat ini. Kita perlu mengkompilasinya untuk membuat FirstService.dll (proxy) untuk Layanan Web.
c:> WSDL http://localhost/MyWebServices/FirstService.asmx?WSDL
c:> csc /t:library FirstService.cs
Letakkan proxy yang telah dikompilasi di direktori bin dari direktori virtual Layanan Web (c: \ MyWebServices \ bin). Layanan Informasi Internet (IIS) mencari proxy di direktori ini.
Ciptakan konsumen layanan, dengan cara yang sama seperti yang telah kita lakukan. Perhatikan bahwa objek proxy Layanan Web dibuat di konsumen. Proksi ini menangani interaksi dengan layanan.
Ketik URL konsumen di IE untuk mengujinya (misalnya, http: //localhost/MyWebServices/WebApp.aspx).
Konsumen Layanan Web Berbasis Aplikasi Windows
Menulis pengguna layanan web berbasis aplikasi Windows sama dengan menulis aplikasi Windows lainnya. Anda hanya perlu membuat proxy (yang telah kami lakukan) dan mereferensikan proxy ini saat menyusun aplikasi. Berikut ini adalah aplikasi Windows kami yang menggunakan layanan web. Aplikasi ini membuat objek layanan web (tentu saja, proxy) dan memanggil SayHello, dan menambahkan metode di atasnya.
WinApp.cs
using System;
using System.IO;
namespace SvcConsumer {
class SvcEater {
public static void Main(String[] args) {
FirstService mySvc = new FirstService();
Console.WriteLine("Calling Hello World Service: " + mySvc.SayHello());
Console.WriteLine("Calling Add(2, 3) Service: " + mySvc.Add(2, 3).ToString());
}
}
}
Kompilasi menggunakan c:\>csc /r:FirstService.dll WinApp.cs
. Ini akan membuat WinApp.exe. Jalankan untuk menguji aplikasi dan layanan web.
Sekarang, muncul pertanyaan: Bagaimana Anda bisa yakin bahwa aplikasi ini benar-benar memanggil layanan web?
Ini mudah untuk diuji. Hentikan server web Anda sehingga layanan web tidak dapat dihubungi. Sekarang, jalankan aplikasi WinApp. Ini akan mengaktifkan pengecualian runtime. Sekarang, mulai server web lagi. Ini harus berhasil.
Keamanan sangat penting untuk layanan web. Namun, spesifikasi XML-RPC atau SOAP tidak membuat persyaratan keamanan atau otentikasi yang eksplisit.
Ada tiga masalah keamanan khusus dengan layanan web -
- Confidentiality
- Authentication
- Keamanan jaringan
Kerahasiaan
Jika klien mengirimkan permintaan XML ke server, dapatkah kami memastikan bahwa komunikasi tetap rahasia?
Jawabannya ada di sini -
- XML-RPC dan SOAP dijalankan terutama di atas HTTP.
- HTTP memiliki dukungan untuk Secure Sockets Layer (SSL).
- Komunikasi dapat dienkripsi melalui SSL.
- SSL adalah teknologi yang terbukti dan digunakan secara luas.
Layanan web tunggal dapat terdiri dari rangkaian aplikasi. Misalnya, satu layanan besar mungkin mengikat layanan dari tiga aplikasi lainnya. Dalam kasus ini, SSL tidak memadai; pesan perlu dienkripsi di setiap node di sepanjang jalur layanan, dan setiap node mewakili potensi tautan lemah dalam rantai. Saat ini, tidak ada solusi yang disepakati untuk masalah ini, tetapi satu solusi yang menjanjikan adalah Standar Enkripsi XML W3C. Standar ini menyediakan kerangka kerja untuk mengenkripsi dan mendekripsi seluruh dokumen XML atau hanya sebagian dari dokumen XML. Anda dapat memeriksanya di www.w3.org/Encryption
Autentikasi
Jika klien terhubung ke layanan web, bagaimana kami mengidentifikasi pengguna? Apakah pengguna diizinkan untuk menggunakan layanan ini?
Opsi berikut dapat dipertimbangkan tetapi tidak ada konsensus yang jelas tentang skema otentikasi yang kuat.
HTTP menyertakan dukungan bawaan untuk otentikasi Dasar dan Intisari, dan oleh karena itu layanan dapat dilindungi dengan cara yang sama seperti dokumen HTML yang saat ini dilindungi.
SOAP Digital Signature (SOAP-DSIG) memanfaatkan kriptografi kunci publik untuk menandatangani pesan SOAP secara digital. Ini memungkinkan klien atau server untuk memvalidasi identitas pihak lain. Lihat di www.w3.org/TR/SOAP-dsig .
Organisasi untuk Kemajuan Standar Informasi Terstruktur (OASIS) sedang mengerjakan Security Assertion Markup Language (SAML).
Keamanan jaringan
Saat ini tidak ada jawaban yang mudah untuk masalah ini, dan ini telah menjadi bahan perdebatan. Untuk saat ini, jika Anda benar-benar bermaksud memfilter pesan SOAP atau XML-RPC, salah satu kemungkinannya adalah memfilter semua permintaan HTTP POST yang menyetel tipe kontennya ke teks / xml.
Alternatif lain adalah memfilter atribut header HTTP SOAPAction. Vendor firewall juga sedang mengembangkan alat yang dirancang secara eksplisit untuk memfilter lalu lintas layanan web.
Bab ini memberi Anda gambaran tentang semua standar terbaru yang terkait dengan layanan web.
Transportasi
BEEP, Block Extensible Exchange Protocol (sebelumnya disebut sebagai BXXP), adalah kerangka kerja untuk membangun protokol aplikasi. Ini telah distandarisasi oleh IETF dan itu dilakukan untuk protokol Internet apa yang telah dilakukan XML untuk data.
Memblokir Protokol Exchange yang Dapat Diperluas (BEEP)
Perpesanan
Standar dan spesifikasi perpesanan ini dimaksudkan untuk memberikan kerangka kerja untuk bertukar informasi dalam lingkungan terdesentralisasi dan terdistribusi.
SOAP 1.1 (Catatan)
SOAP 1.2 (Spesifikasi)
Profil Lampiran Layanan Web 1.0
Mekanisme Optimasi Transmisi Pesan SOAP
Deskripsi dan Penemuan
Layanan web berarti hanya jika pengguna potensial dapat menemukan informasi yang cukup untuk memungkinkan pelaksanaannya. Fokus dari spesifikasi dan standar ini adalah definisi dari serangkaian layanan yang mendukung deskripsi dan penemuan bisnis, organisasi, dan penyedia layanan web lainnya; layanan web yang mereka sediakan; dan antarmuka teknis yang dapat digunakan untuk mengakses layanan tersebut.
UDDI 3.0
WSDL 1.1 (Catatan)
WSDL 1.2 (Draf kerja)
WSDL 2.0 (Kelompok Kerja)
Keamanan
Dengan menggunakan spesifikasi keamanan ini, aplikasi dapat terlibat dalam komunikasi aman yang dirancang untuk bekerja dengan kerangka layanan web umum.
Web Services Security 1.0.2 Memperbarui
Security Assertion Markup Language (SAML)
Pengelolaan
Pengelolaan layanan web didefinisikan sebagai sekumpulan kemampuan untuk menemukan keberadaan, ketersediaan, kesehatan, kinerja, penggunaan, serta kontrol dan konfigurasi layanan web dalam arsitektur layanan web. Karena layanan web menjadi menyebar dan penting untuk operasi bisnis, tugas mengelola dan menerapkannya sangat penting untuk keberhasilan operasi bisnis.
Manajemen Terdistribusi Layanan Web
Dalam tutorial ini, Anda telah mempelajari cara menggunakan layanan web. Namun, layanan web juga menyertakan komponen seperti WSDL, UDDI, dan SOAP yang berkontribusi untuk membuatnya aktif. Langkah selanjutnya adalah mempelajari WSDL, UDDI, dan SOAP.
WSDL
WSDL adalah bahasa berbasis XML untuk menjelaskan layanan web dan cara mengaksesnya.
WSDL menjelaskan layanan web, bersama dengan format pesan dan detail protokol untuk layanan web tersebut.
Untuk mempelajari lebih lanjut tentang WSDL, kunjungi Tutorial WSDL kami .
UDDI
UDDI adalah standar berbasis XML untuk mendeskripsikan, menerbitkan, dan menemukan layanan web.
Untuk mempelajari lebih lanjut tentang UDDI, kunjungi Tutorial UDDI kami .
SABUN MANDI
SOAP adalah protokol berbasis XML sederhana yang memungkinkan aplikasi untuk bertukar informasi melalui HTTP.
Untuk mempelajari lebih lanjut tentang SOAP, kunjungi Tutorial SOAP kami .