Layanan web - apa itu. Layanan Web XML. Ikhtisar teknologi

Ide layanan web dikembangkan oleh raksasa industri komputer seperti Sun, Oracle, HP, Microsoft dan IBM. Ide ini bukanlah hal baru, namun ini merupakan langkah maju yang besar menuju akses yang lebih mudah terhadap program melalui web. Berdasarkan format komunikasi standar, layanan web dapat sepenuhnya mengubah cara kita berpikir tentang cara membuat situs web.

Apa itu layanan web?

Berkat layanan web, fungsi program apa pun dapat tersedia melalui Internet. Dengan demikian, program seperti PHP, ASP, skrip JSP, JavaBeans, objek COM, dan semua alat pemrograman favorit kami lainnya sekarang dapat mengakses beberapa program yang berjalan di server lain (yaitu layanan web) dan menggunakan respons yang diterima darinya di situs webnya, atau aplikasi.

Katakanlah, jika saya perlu melakukan beberapa tugas pemrograman, dan saya terlalu sibuk (atau tidak punya pikiran untuk memikirkan kembali hal itu), saya dapat menggunakan layanan layanan web yang akan diakses situs saya melalui Internet. Dengan meneruskan permintaan dengan parameter ke layanan web, saya berharap menerima respons yang berisi hasil pelaksanaan permintaan saya.

Siapapun yang pernah bekerja di Akhir-akhir ini Dengan surat panas, telah menemukan sebagian layanan web: sistem otentikasi pengguna Paspor adalah salah satu layanan yang termasuk dalam inisiatif Microsoft .NET. Saat ini tersedia secara gratis, sehingga pembuat situs web dapat dengan mudah menerapkan otentikasi pengguna di situs mereka.

Dasar-dasar

Prinsip di balik layanan web ternyata sangat sederhana. Dan mereka tidak menambahkan hal baru ke dunia komputasi terdistribusi dan Internet:

  • orang yang bertanggung jawab atas layanan web menentukan format permintaan ke layanan webnya dan tanggapannya
  • komputer mana pun di jaringan membuat permintaan ke layanan web
  • layanan web memproses permintaan, melakukan beberapa tindakan, dan kemudian mengirimkan respons

Tindakan ini dapat berupa, misalnya, menampilkan harga saham, menampilkan harga suatu produk tertentu, menyimpan entri dalam kalender janji temu, menerjemahkan teks dari satu bahasa ke bahasa lain, atau memeriksa nomor kartu kredit.

Standar pada intinya

Alasan mengapa kita semua tiba-tiba tertarik pada layanan web adalah karena layanan tersebut didasarkan pada standar, protokol terbuka untuk pertukaran dan transfer data.

Sebelumnya, banyak perusahaan mengembangkan standar dan format miliknya sendiri. Dan sekarang untuk bekerja kita hanya perlu mengetahui XML sederhana (eXtensible Markup Language), yang ditransmisikan melalui protokol HTTP lama yang sudah dikenal. Artinya, informasi tentang cara kerja layanan web tersedia untuk semua orang, dan pengembang web yang akrab dengan teknologi ini dapat mulai bermain dengan layanan web saat ini.

Perbedaan antara layanan web dan teknologi lain yang ditemui pengembang (misalnya, DCOM, bernama pipa, RMI) adalah bahwa layanan web didasarkan pada standar terbuka, mudah dipelajari, dan standar ini didukung secara luas di seluruh dunia. dan platform Windows.

Simple Object Access Protocol (SOAP) adalah protokol standar yang dikembangkan oleh W3C. Ini mendefinisikan format permintaan ke layanan web.

Pesan antara layanan web dan penggunanya dikemas dalam amplop SOAP. Pesan berisi permintaan untuk melakukan suatu tindakan, atau tanggapan - hasil dari melakukan tindakan ini. Amplop dan isinya dikodekan dalam XML dan cukup mudah dimengerti. Ini adalah tampilan permintaan SOAP sederhana ketika dikirim melalui HTTPP ke layanan web:

xmlns:env="http://www.w3.org/2001/06/soap-envelope">


xmlns:m="http://www.somesite.com/Postcode">
WC1A8GH
Inggris


Elemen kunci dari amplop SOAP cukup mudah untuk diketahui: ini adalah dua parameter ( ("kode pos") dan ("negara")), yang terkandung dalam elemen yang disebut . Elemen ini adalah nama layanan web tempat kita membuat permintaan. Data lain dalam amplop, seperti pengkodean teks dan versi SOAP, membantu layanan web memproses permintaan dengan benar.

Dan jawabannya akan terlihat seperti ini:

xmlns:env="http://www.w3.org/2001/06/soap-envelope" >

env:encodingStyle="http://www.w3.org/2001/06/soap-encoding"
xmlns:m="http://www.somesite.com/Postcode">
Ya


Pesan ini bahkan lebih mudah untuk diuraikan. Elemen dalam permintaan kami diubah menjadi elemen sebagai jawaban atas permintaan tersebut. Elemen ini hanya berisi satu elemen , yang nilainya menunjukkan benar atau tidaknya kode pos kita. Jadi, melalui keajaiban SOAP, kami telah membuat kueri yang berguna bagi kami. Sebagai respons melalui jaringan, kami menerima jenis respons tertentu dalam XML.

Sekarang tentang UDDI

Meskipun protokol SOAP sederhana, layanan web tidak akan banyak berguna jika kita tidak dapat menemukannya. Untungnya, IBM, Microsoft dan Ariba melangkah maju dan menciptakan proyek Deskripsi Universal, Penemuan dan Integrasi (UDDI), yang mereka harap akan menjadi katalog umum dari semua layanan web di Web.

Sistem UDDI memungkinkan perusahaan untuk mengekspos layanan web mereka kepada publik. Direktori ini bertindak sebagai buku telepon untuk semua layanan web. Pendaftaran di direktori UDDI gratis, dan pendiri proyek berharap direktori ini berisi deskripsi semua, semua, semua layanan di seluruh Web, sehingga untuk menemukan layanan web yang diinginkan, Anda hanya perlu beralih ke satu UDDI direktori.

Bagaimana cara kerjanya

Jadi bagaimana cara menemukan layanan web yang tepat?

Bayangkan saya seorang pengembang situs web, dan klien saya meminta saya untuk menambahkan ke situs tersebut fitur baru: Anda perlu menambahkan pemeriksaan kode pos ke formulir pendaftaran Anda.

Untuk melakukan pemeriksaan ini, saya perlu membuat database semua kode pos di 30 negara tempat perusahaan kami menjalankan bisnis, dan kemudian memeriksa apakah kode pos tersebut sesuai dengan kota yang ditentukan dalam pendaftaran saat mendaftar. Tapi saya tidak punya datanya, dan menurut saya pengumpulan data seperti itu harus mengeluarkan banyak uang.

Daripada mengeluarkan uang untuk membeli database, menulis kode sendiri, memastikan integritas dan kebenaran semua data dan men-debug skrip, saya hanya pergi ke direktori UDDI dan melihat apakah ada layanan web yang dapat melakukan pekerjaan itu. Saya . Sesampainya di www.uddi.org, saya menjalankan pencarian dan menemukan layanan terbaik dari XYZ Corp.

Saya meninjau dengan cermat definisi format layanan web (definisinya ditulis dalam WSDL (Bahasa Deskripsi Layanan Web), memastikan bahwa layanan tersebut melakukan apa yang saya perlukan. Kemudian saya menanyakan rekan-rekan saya tentang reputasi XYZ Corp., dan mencari tahu bahwa itu solid, dan kemudian menghubungi XYZ Corp tentang harga. Jika harga untuk mengakses layanan ini sesuai anggaran saya, saya menulis halaman JSP sederhana untuk situs saya yang memanggil layanan web XYZ Corp., dan lihatlah, verifikasi instan muncul di kode pos situs.

Ini sepadan dengan waktu Anda

Meskipun Anda tidak ada hubungannya dengan pemrograman atau teknologi pengembangan situs web, layanan web layak untuk dipelajari lebih lanjut. Bayangkan gambaran bagaimana Anda mendiskusikan situs web baru dengan klien, mendiskusikan semua fungsi proyek baru. Semuanya berjalan baik: anggaran memenuhi harapan pelanggan, dia menyukai sketsa rencana lokasi, dan menyukai contoh antarmuka. Segalanya tampak berfungsi.

Dan tiba-tiba mereka teringat suatu fungsi yang sangat kompleks. Hanya dengan menyebutkannya saja, wajah pengembang web Anda berubah menjadi hijau dan dia mulai tersedak dan batuk. Ini adalah pengembang yang memberi Anda sinyal bahwa mengembangkan fitur ini akan membutuhkan banyak uang dan waktu atau tidak mungkin dilakukan dengan anggaran sebesar itu.

Hilangkan rasa takutmu! Saya siap menjamin bahwa sudah ada layanan web di Internet yang siap memberi Anda fungsi yang diperlukan, dan biaya penggunaan layanan web ini akan jauh lebih rendah daripada biaya pengembangan analognya secara mandiri. Dengan cara ini Anda menyelamatkan pengembang Anda dari sakit kepala yang tidak perlu, klien Anda pemborosan yang tidak perlu uang hanya dengan menghabiskan beberapa menit menelusuri direktori UDDI.

Pengembangan layanan

Tentu saja, pengembang tidak harus puas hanya dengan layanan web yang dibuat oleh orang lain. Dengan menggunakan salah satu perangkat berikut, Anda dapat membuat layanan web Anda sendiri dan menyediakan layanannya kepada pengguna Internet lainnya.

Pilihan alat untuk mengembangkan layanan web sangat luas. Ini mencakup alat dari perusahaan seperti Sun (Open Net), Microsoft (.NET), (e-services), dan IBM (Web Services). Ada juga kerangka kerja sumber terbuka. Misalnya, Proyek Mono bertujuan untuk menggantikan toolkit .NET Microsoft dengan menyediakan kompiler, runtime, dan perpustakaan untuk menjalankan layanan web yang sama di semua platform, termasuk Unix.

Meskipun beragam server dan alat pengembangan layanan web, semuanya mendukung protokol SOAP, bahasa XML, dan sistem UDDI yang sama.

Minus

Sebelum saya benar-benar meninggalkan karir saya sebagai programmer dan mengabdikan diri untuk menggunakan layanan web, saya harus bertanya pada diri sendiri pertanyaan: "Gambarannya terlalu bagus. Apa yang salah dengan itu?" Sayangnya, potensi besar layanan web harus dibayar dengan:

  • Menggunakan XML sebagai format transfer data berarti pesan Anda akan berukuran sangat besar: tag XML itu sendiri memakan banyak ruang, dan ini membebani kami dalam membuat, mengirimkan, dan menafsirkan pesan.
  • Sejak kita menggunakan komputer jarak jauh Kami sepenuhnya bergantung pada Internet untuk menjalankan fungsi tertentu, yang menciptakan terlalu banyak tautan yang tidak dapat diandalkan dalam rantai antara server web kami dan layanan web.
  • Saat ini, hanya sedikit perusahaan yang membuat layanan web, dan hanya sedikit perusahaan yang menggunakannya. Debugging dan perbaikan sistem web services masih memerlukan waktu yang cukup lama.
  • Sistem perizinan dan penagihan atas penggunaan layanan web belum dapat diterima oleh pengembang. Karena jumlah layanan web yang masih terlalu sedikit, sebagian besar perusahaan berusaha memberikan kesan yang baik kepada klien potensial mereka dengan sengaja mengurangi biaya layanan dan menawarkan persyaratan lisensi yang menguntungkan. Masih perlu waktu sebelum biaya sebenarnya dari layanan web menjadi jelas.

Ketika layanan web mengambil tempat dan tersedia untuk semua orang, mereka akan menjadi bantuan yang sangat berharga bagi pengembang web. Mereka akan memberi kita akses fleksibel ke kekuatan penuh semua komputer di Jaringan. Sudah waktunya bagi pembuat situs web untuk tertarik pada layanan web dan mempelajari lebih lanjut tentang apa yang bisa mereka peroleh dari layanan tersebut.

Anotasi: Area penggunaan. Keuntungan. Fitur pengembangan layanan web untuk platform .NET. Deskripsi dan penemuan layanan web

Apa itu Layanan Web XML?

Seiring berkembangnya teknologi informasi, pendekatan berbeda untuk menulis program muncul: modular pemrograman, didorong oleh peristiwa pemrograman, berorientasi pada komponen pemrograman dan desain. Kelanjutan logis dari pendekatan ini adalah berorientasi pada layanan pengembangan perangkat lunak.

Penggunaan pendekatan berorientasi layanan memungkinkan kita berbicara tentang penggunaan kembali di tingkat makro (tingkat layanan), dan bukan di tingkat mikro (tingkat objek). Pendekatan berorientasi layanan menggunakan standar sederhana dan diterima secara umum, yang memungkinkan berbagai macam aplikasi untuk berbagi fungsionalitas satu sama lain. Layanan dapat ditulis menggunakan berbagai bahasa pemrograman, pada berbagai platform. Selain itu, layanan dapat diterapkan secara terpisah atau sebagai bagian dari paket perangkat lunak di mana saja bola dunia dan dengan demikian akan memberikan akses ke fungsinya melalui jaringan.

Mari kita menelepon melayani sumber daya yang mengimplementasikan fungsi bisnis dan memiliki properti berikut:

  • dapat digunakan kembali;
  • ditentukan oleh satu atau lebih antarmuka eksplisit yang tidak bergantung pada teknologi;
  • digabungkan secara longgar dengan sumber daya serupa lainnya dan dapat digunakan melalui protokol komunikasi yang memungkinkan sumber daya berinteraksi satu sama lain.

Kasus khusus dari suatu layanan adalah layanan web XML.

layanan Web XML adalah jenis aplikasi web khusus yang:

  • dikerahkan di server web;
  • menerbitkan metode web yang dapat dipanggil oleh klien eksternal;
  • menunggu penerimaan permintaan HTTP, yang merupakan perintah untuk memanggil metode web;
  • mengeksekusi metode web dan mengembalikan hasil.

Berbeda dengan aplikasi web tradisional, layanan web tidak memiliki antarmuka pengguna. Sebaliknya, ia memiliki antarmuka pemrograman, yaitu layanan web yang memaparkan fungsi (metode web) yang dapat dipanggil dari jarak jauh (misalnya, melalui Internet). Layanan web tidak dimaksudkan untuk melayani pengguna akhir. Tugasnya adalah memberikan layanan kepada aplikasi lain, baik itu aplikasi web, aplikasi GUI, atau aplikasi konsol.

Layanan Web dapat memberikan informasi real-time mengenai harga saham, memeriksa kartu kredit, atau melaporkan ramalan cuaca. Layanan web sama beragamnya dengan aplikasi biasa.

Layanan web bukan milik perusahaan tertentu. Ini adalah standar industri berdasarkan protokol terbuka (SOAP, HTTP, dll.). Layanan web digunakan pada berbagai platform (termasuk server yang menjalankan Windows atau UNIX). Layanan web dapat dikembangkan menggunakan banyak alat pengembangan (dari editor teks ke keluarga Microsoft Visual Studio).

Metode sebagian besar layanan web dipanggil dengan permintaan HTTP yang berisi pesan SOAP SOAP adalah bahasa XML (kosa kata XML) untuk memanggil prosedur jarak jauh melalui HTTP dan protokol lainnya (deskripsi lengkap SOAP http://www.w3.org/TR/SOAP) .

Tempat layanan web di antara teknologi panggilan jarak jauh lainnya

Ada beberapa protokol dan teknologi pemanggilan jarak jauh: Microsoft Distributed Component Object Model (DCOM), Common Object Request Broker Architecture (CORBA) dari Object Management Group, Sun's Remote Method Invocation (RMI), . Jarak Jauh .NET, Layanan Web XML.

Semua teknologi berbasis komponen (DCOM, CORBA, dan RMI) telah berhasil digunakan dalam aplikasi Intranet selama bertahun-tahun. Mereka menyediakan arsitektur yang andal dan terukur. Namun, ada dua masalah serius dalam penggunaan teknologi ini di Internet. Pertama, mereka tidak berinteraksi dengan baik satu sama lain. Semua teknologi beroperasi pada objek, tetapi detailnya berbeda secara signifikan: manajemen siklus hidup, dukungan konstruktor, dan tingkat dukungan warisan. Aspek kedua yang lebih penting adalah bahwa fokus pada interaksi RPC mengarah pada konstruksi sistem yang digabungkan secara erat berdasarkan panggilan eksplisit ke metode objek.

Berbeda dengan teknologi ini, Layanan Web XML dan. NET Remoting diterapkan sepenuhnya pendekatan berorientasi objek untuk pemrograman web.

Layanan Web XML- komponen yang menyediakan serangkaian fungsi API atau metode web kepada klien Internet. XML disertakan dalam namanya karena layanan web dan kliennya menggunakannya untuk bertukar data. Layanan web didasarkan pada standar terbuka seperti HTTP, XML (Extensible Markup Language), SOAP (Simple Object Access Protocol - standar Intenet yang menjelaskan bagaimana aplikasi dapat berinteraksi, yaitu memanggil metode satu sama lain, menggunakan HTTP dan protokol lainnya). Tugas utama layanan web adalah memastikan interaksi antar program. Banyak yang bekerja di server UNIX dan diakses oleh klien Windows. Data yang dikirim ke layanan web diserialkan dalam XML dan dikirim dalam paket SOAP. Metadata tentang isi pesan tersebut disimpan dalam kontrak layanan web WSDL dan skema XSD. Keuntungan utama dari pendekatan ini adalah keterbacaan metadata. Pengembang dapat dengan mudah melihat keseluruhan deskripsi layanan web dan bahkan membuat modulnya sendiri yang mem-parsing paket SOAP.

.NET Jarak Jauh menyediakan infrastruktur untuk objek terdistribusi. Ini jauh lebih kompleks daripada arsitektur layanan web penyampaian pesan sederhana. . NET Remoting mencakup penerusan parameter berdasarkan referensi dan nilai, panggilan balik, aktivasi beberapa objek, dan kebijakan manajemen siklus hidup. Untuk menggunakan fitur ini, aplikasi klien harus mahir dalam semua teknologi. Data c. NET Remoting ditransmisikan dalam format biner atau SOAP. Namun, bagaimanapun juga, metadata tentang struktur informasi yang dikirimkan terkandung dalam lingkungan eksekusi bahasa umum. Tanpa runtime bahasa umum (CLR), aplikasi klien tidak akan dapat mengurai bahasa tertentu. NET Remoting header SOAP. Itu adalah. NET Remoting memberlakukan persyaratan yang jauh lebih tinggi dibandingkan dengan layanan web.

Pengembangan layanan web pada platform .NET

Ada banyak cara untuk menulis layanan web. Mereka dapat dikembangkan secara manual atau menggunakan alat SOAP yang disediakan oleh Microsoft, IBM, dll. Menulis layanan web menggunakan Microsoft. NET memiliki dua keunggulan:

  • .NET Framework sangat menyederhanakan proses pengembangan dengan menyediakan perpustakaan kelas dan mengotomatiskan tahapan pengembangan individu;
  • Layanan web yang ditulis dengan .NET Framework adalah aplikasi yang dikelola. Artinya, aplikasi tersebut tidak memiliki masalah dengan kebocoran memori, pointer yang diinisialisasi secara salah, dan masalah pemrograman umum lainnya.

Penciptaan

Mari kita kembangkan layanan web AdditionService sederhana yang menambahkan dua angka. Ini hanya akan memiliki satu metode Tambah, yang mengambil dua bilangan bulat sebagai parameter dan juga mengembalikan bilangan bulat. AdditionService menunjukkan beberapa prinsip penting pemrograman layanan web menggunakan Microsoft .NET Framework.

  • Layanan web diimplementasikan sebagai file ASMX. ASMX adalah ekstensi nama file khusus yang terdaftar ke ASP .NET (lebih khusus lagi, ASP.NET HTTP Handler) di file konfigurasi ASP .NET Machine.config utama.
  • File ASMX dimulai dengan arahan @WebService. Direktif ini harus berisi setidaknya atribut Class, yang menentukan kelas layanan web tersebut.
  • Kelas layanan web dapat memiliki atribut WebService opsional. DI DALAM dalam contoh ini Atribut ini menentukan nama dan deskripsi layanan web yang ditampilkan pada halaman HTML saat pengguna memanggil AdditionService.asmx di browser.
  • Metode web dideklarasikan dengan menetapkan atribut WebMethod ke metode publik kelas layanan Web. Untuk metode pembantu yang digunakan secara internal tetapi tidak tersedia untuk klien eksternal, atribut ini tidak ditentukan.
  • HTTP, XML dan SOAP "tidak terlihat". .NET Framework menangani data XML dan pesan SOAP.

Layanan Tambahan.asmx<%@ WebService language="C#" Class="AddService" %>menggunakan Sistem menggunakan System.Web.Services kelas AddService ( public int Add (int a, int b) ( return a + b ) )

Meskipun ukurannya kecil, AdditionService.asmx adalah layanan web lengkap jika diinstal pada server web dengan ASP.NET. Metodenya dipanggil menggunakan SOAP, HTTP GET dan HTTP POST, dan dapat mengembalikan hasil sebagai respons SOAP atau sebagai pembungkus XML sederhana.

Menggunakan kode latar belakang, kelas layanan web dapat dipindahkan dari file asmx ke file terpisah.

Layanan web mendukung penggunaan tipe data yang kompleks sebagai parameter masukan atau keluaran. Tipe data kompleks didukung karena XML memungkinkan sebagian besar tipe data dibuat serial dengan mudah. Namun, ketika secara otomatis menguji layanan web, ASP .NET tidak menghasilkan halaman pengujian untuk metode yang menerima tipe kompleks data. Hal ini terjadi karena Anda tidak dapat meneruskan tipe data kompleks ke metode web menggunakan HTTP GET dan POST.

Layanan web memungkinkan Anda memanggil metode mereka secara asinkron. Panggilan asinkron segera mengembalikan kontrol, terlepas dari berapa lama layanan web memproses panggilan tersebut. Panggilan asinkron berguna ketika pemrosesan panggilan memerlukan banyak waktu. Aplikasi melakukan panggilan, lalu terus berjalan tanpa menunggu hasil panggilan, dan kemudian menerima hasil panggilan asinkron. Hasilnya diperoleh dengan memanggil kembali metode web pada waktu yang sesuai untuk aplikasi atau dengan berlangganan pemberitahuan tentang akhir pemrosesan panggilan oleh layanan web (mekanisme delegasi).

Layanan web dapat dibuat menggunakan alat seperti Microsoft Visual Studio 2005. Untuk membuat layanan web yang disediakannya tipe terpisah Proyek Layanan Web ASP .NET. Visual Studio menghasilkan file asmx, file dengan kode latar belakang untuk menggambarkan kelas layanan web, file konfigurasi layanan web, dll. Ketika proyek diluncurkan untuk dieksekusi, kelas layanan dikompilasi dan file asmx dibuka di jendela browser .

Deskripsi layanan web menggunakan kontrak

Agar pengembang lain dapat menggunakan AdditionService, mereka perlu mengetahui metode apa yang disediakan, protokol apa yang didukung, tanda tangan metode, dan alamat layanan web (URL). Semua ini dan informasi lainnya dapat dijelaskan dalam WSDL (bahasa Deskripsi Layanan Web).


Penemuan layanan web

Bagaimana pengembang lain mengetahui keberadaan AdditionService?

Pertama, menggunakan DISCO (kependekan dari kata penemuan) - mekanisme berbasis file untuk mencari layanan web lokal, yaitu mekanisme untuk mendapatkan daftar layanan web yang tersedia dari file DISCO yang terletak di server web. Selain itu, file DISCO berisi catatan lokasi kontrak WSDL dari layanan yang tersedia. File DISCO adalah file XML dengan catatan.

Dimungkinkan juga untuk menggunakan file VSDISCO, yang mirip dengan file DISCO, tetapi isinya adalah hasil pencarian dinamis untuk layanan web di direktori tertentu dan semua subdirektori. ASP .NET memetakan ekstensi nama file .vsdisco ke pengendali HTTP, yang mencari direktori tertentu dan subdirektorinya untuk asmx dan disco dan mengembalikan dokumen DISCO yang dihasilkan secara dinamis. Untuk alasan keamanan, pencarian dinamis dinonaktifkan di beberapa versi .NET Framework, namun Anda dapat mengaktifkannya dengan mengedit entri di file Machine.config.

Bagaimana Anda mencari layanan web di jaringan global? Untuk mencari layanan web di jaringan global, Microsoft, IBM, dan Ariba bersama-sama mengembangkan UDDI (Universal Description Discovery and Integration) - spesifikasi untuk membangun database terdistribusi yang memungkinkan Anda mencari layanan web. UDDI didukung oleh ratusan perusahaan. Situs UDDI sendiri adalah layanan web. Siapa pun dapat mempublikasikan registri berbasis UDDI mereka. Kebanyakan pengembang tidak pernah menggunakan UDDI API secara langsung. Sebaliknya, registri UDDI diakses oleh alat pengembangan. Mereka juga menghasilkan kelas pembungkus untuk layanan web yang ditemukan dan dipilih.

Hasil

Layanan Web XML adalah komponen perangkat lunak yang menyediakan fungsionalitas yang dapat digunakan oleh sebagian besar orang sistem yang berbeda, mendukung standar seperti XML dan HTTP. Klien layanan web dapat berupa aplikasi lokal dan jarak jauh. Layanan web memungkinkan Anda membuat struktur yang memudahkan integrasi sistem yang berbeda berdasarkan standar sederhana yang diterima secara umum.

Ide layanan web dikembangkan oleh raksasa industri komputer seperti Sun, Oracle, HP, Microsoft dan IBM. Ide ini bukanlah hal baru, namun ini merupakan langkah maju yang besar menuju akses yang lebih mudah terhadap program melalui web. Berdasarkan format komunikasi standar, layanan web dapat sepenuhnya mengubah cara kita berpikir tentang cara membuat situs web.

Apa itu layanan web?

Berkat layanan web, fungsi program apa pun dapat tersedia melalui Internet. Dengan demikian, program seperti PHP, ASP, skrip JSP, JavaBeans, objek COM, dan semua alat pemrograman favorit kami lainnya sekarang dapat mengakses beberapa program yang berjalan di server lain (yaitu layanan web) dan menggunakan respons yang diterima darinya di situs webnya, atau aplikasi.

Katakanlah, jika saya perlu melakukan beberapa tugas pemrograman, dan saya terlalu sibuk (atau tidak punya pikiran untuk memikirkan kembali hal itu), saya dapat menggunakan layanan layanan web yang akan diakses situs saya melalui Internet. Dengan meneruskan permintaan dengan parameter ke layanan web, saya berharap menerima respons yang berisi hasil pelaksanaan permintaan saya.

Siapa pun yang pernah bekerja dengan Hotmail baru-baru ini pasti sudah mengenal layanan web: sistem otentikasi pengguna Paspor adalah salah satu layanan yang termasuk dalam inisiatif Microsoft .NET. Saat ini tersedia secara gratis, sehingga pembuat situs web dapat dengan mudah menerapkan otentikasi pengguna di situs mereka.

Dasar-dasar

Prinsip di balik layanan web ternyata sangat sederhana. Dan mereka tidak menambahkan hal baru ke dunia komputasi terdistribusi dan Internet:

  • orang yang bertanggung jawab atas layanan web menentukan format permintaan ke layanan webnya dan tanggapannya
  • komputer mana pun di jaringan membuat permintaan ke layanan web
  • layanan web memproses permintaan, melakukan beberapa tindakan, dan kemudian mengirimkan respons

Tindakan ini dapat berupa, misalnya, menampilkan harga saham, menampilkan harga suatu produk tertentu, menyimpan entri dalam kalender janji temu, menerjemahkan teks dari satu bahasa ke bahasa lain, atau memeriksa nomor kartu kredit.

Standar pada intinya

Alasan mengapa kita semua tiba-tiba tertarik pada layanan web adalah karena layanan tersebut didasarkan pada standar, protokol terbuka untuk pertukaran dan transfer data.

Sebelumnya, banyak perusahaan mengembangkan standar dan format miliknya sendiri. Dan sekarang untuk bekerja kita hanya perlu mengetahui XML sederhana (eXtensible Markup Language), yang ditransmisikan melalui protokol HTTP lama yang sudah dikenal. Artinya, informasi tentang cara kerja layanan web tersedia untuk semua orang, dan pengembang web yang akrab dengan teknologi ini dapat mulai bermain dengan layanan web saat ini.

Perbedaan antara layanan web dan teknologi lain yang ditemui pengembang (misalnya, DCOM, bernama pipa, RMI) adalah bahwa layanan web didasarkan pada standar terbuka, mudah dipelajari, dan standar ini didukung secara luas di seluruh dunia. dan platform Windows.

Simple Object Access Protocol (SOAP) adalah protokol standar yang dikembangkan oleh W3C. Ini mendefinisikan format permintaan ke layanan web.

Pesan antara layanan web dan penggunanya dikemas dalam amplop SOAP. Pesan berisi permintaan untuk melakukan suatu tindakan, atau tanggapan - hasil dari melakukan tindakan ini. Amplop dan isinya dikodekan dalam XML dan cukup mudah dimengerti. Ini adalah tampilan permintaan SOAP sederhana ketika dikirim melalui HTTPP ke layanan web:

Xmlns:env="http://www.w3.org/2001/06/soap-envelope">


xmlns:m="http://www.somesite.com/Postcode">
WC1A8GH
Inggris

Elemen kunci dari amplop SOAP cukup mudah dikenali: ini adalah dua parameter ("kode pos") dan ("negara")), yang terdapat di dalam elemen di bawah nama. Elemen ini adalah nama layanan web tempat kita membuat permintaan. Data lain dalam amplop, seperti pengkodean teks dan versi SOAP, membantu layanan web memproses permintaan dengan benar.

Dan jawabannya akan terlihat seperti ini:

Xmlns:env="http://www.w3.org/2001/06/soap-envelope" >

Env:encodingStyle="http://www.w3.org/2001/06/soap-encoding"
xmlns:m="http://www.somesite.com/Postcode">
Ya

Pesan ini bahkan lebih mudah untuk diuraikan. Elemen dalam permintaan kami telah berubah menjadi elemen dalam respons terhadap permintaan tersebut. Elemen ini hanya berisi satu elemen, yang nilainya menunjukkan apakah kode pos kita benar atau tidak. Jadi, melalui keajaiban SOAP, kami telah membuat kueri yang berguna bagi kami. Sebagai respons melalui jaringan, kami menerima jenis respons tertentu dalam XML.

Sekarang tentang UDDI

Meskipun protokol SOAP sederhana, layanan web tidak akan banyak berguna jika kita tidak dapat menemukannya. Untungnya, IBM, Microsoft dan Ariba melangkah maju dan menciptakan proyek Deskripsi Universal, Penemuan dan Integrasi (UDDI), yang mereka harap akan menjadi katalog umum dari semua layanan web di Web.

Sistem UDDI memungkinkan perusahaan untuk mengekspos layanan web mereka kepada publik. Direktori ini bertindak sebagai buku telepon untuk semua layanan web. Pendaftaran di direktori UDDI gratis, dan pendiri proyek berharap direktori ini berisi deskripsi semua, semua, semua layanan di seluruh Web, sehingga untuk menemukan layanan web yang diinginkan, Anda hanya perlu beralih ke satu UDDI direktori.

Bagaimana cara kerjanya

Jadi bagaimana cara menemukan layanan web yang tepat?

Bayangkan saya seorang pengembang situs web, dan klien saya meminta saya untuk menambahkan fitur baru ke situs: Saya perlu menambahkan tanda centang kode pos pada formulir pendaftaran.

Untuk melakukan pemeriksaan ini, saya perlu membuat database semua kode pos di 30 negara tempat perusahaan kami menjalankan bisnis, dan kemudian memeriksa apakah kode pos tersebut sesuai dengan kota yang ditentukan dalam pendaftaran saat mendaftar. Tapi saya tidak punya datanya, dan menurut saya pengumpulan data seperti itu harus mengeluarkan banyak uang.

Daripada mengeluarkan uang untuk membeli database, menulis kode sendiri, memastikan integritas dan kebenaran semua data dan men-debug skrip, saya hanya pergi ke direktori UDDI dan melihat apakah ada layanan web yang dapat melakukan pekerjaan itu. Saya . Sesampainya di www.uddi.org, saya menjalankan pencarian dan menemukan layanan terbaik dari XYZ Corp.

Saya meninjau dengan cermat definisi format layanan web (definisinya ditulis dalam WSDL (Bahasa Deskripsi Layanan Web), memastikan bahwa layanan tersebut melakukan apa yang saya perlukan. Kemudian saya menanyakan rekan-rekan saya tentang reputasi XYZ Corp., dan mencari tahu bahwa itu solid, dan kemudian menghubungi XYZ Corp tentang harga. Jika harga untuk mengakses layanan ini sesuai anggaran saya, saya menulis halaman JSP sederhana untuk situs saya yang memanggil layanan web XYZ Corp., dan lihatlah, verifikasi instan muncul di kode pos situs.

Ini sepadan dengan waktu Anda

Meskipun Anda tidak ada hubungannya dengan pemrograman atau teknologi pengembangan situs web, layanan web layak untuk dipelajari lebih lanjut. Bayangkan gambaran bagaimana Anda mendiskusikan situs web baru dengan klien, mendiskusikan semua fungsi proyek baru. Semuanya berjalan baik: anggaran memenuhi harapan pelanggan, dia menyukai sketsa rencana lokasi, dan menyukai contoh antarmuka. Segalanya tampak berfungsi.

Dan tiba-tiba mereka teringat suatu fungsi yang sangat kompleks. Hanya dengan menyebutkannya saja, wajah pengembang web Anda berubah menjadi hijau dan dia mulai tersedak dan batuk. Ini adalah pengembang yang memberi Anda sinyal bahwa mengembangkan fitur ini akan membutuhkan banyak uang dan waktu atau tidak mungkin dilakukan dengan anggaran sebesar itu.

Hilangkan rasa takutmu! Saya siap menjamin bahwa sudah ada layanan web di Internet yang siap memberi Anda fungsi yang diperlukan, dan biaya penggunaan layanan web ini akan jauh lebih rendah daripada biaya pengembangan analognya secara mandiri. Dengan cara ini Anda menyelamatkan pengembang Anda dari sakit kepala yang tidak perlu, klien Anda dari membuang-buang uang hanya dengan menghabiskan beberapa menit menelusuri katalog UDDI.

Pengembangan layanan

Tentu saja, pengembang tidak harus puas hanya dengan layanan web yang dibuat oleh orang lain. Dengan menggunakan salah satu perangkat berikut, Anda dapat membuat layanan web Anda sendiri dan menyediakan layanannya kepada pengguna Internet lainnya.

Pilihan alat untuk mengembangkan layanan web sangat luas. Ini mencakup alat dari perusahaan seperti Sun (Open Net), Microsoft (.NET), HP (e-services), dan IBM (Web Services). Ada juga kerangka kerja sumber terbuka. Misalnya, Proyek Mono bertujuan untuk menggantikan toolkit .NET Microsoft dengan menyediakan kompiler, runtime, dan perpustakaan untuk menjalankan layanan web yang sama di semua platform, termasuk Unix.

Meskipun beragam server dan alat pengembangan layanan web, semuanya mendukung protokol SOAP, bahasa XML, dan sistem UDDI yang sama.

Minus

Sebelum saya benar-benar meninggalkan karir saya sebagai programmer dan mengabdikan diri untuk menggunakan layanan web, saya harus bertanya pada diri sendiri pertanyaan: "Gambarannya terlalu bagus. Apa yang salah dengan itu?" Sayangnya, potensi besar layanan web harus dibayar dengan:

  • Menggunakan XML sebagai format transfer data berarti pesan Anda akan berukuran sangat besar: tag XML itu sendiri memakan banyak ruang, dan ini membebani kami dalam membuat, mengirimkan, dan menafsirkan pesan.
  • Karena kami menggunakan komputer jarak jauh untuk menjalankan fungsi tertentu, kami bergantung sepenuhnya pada Internet, yang menciptakan terlalu banyak tautan yang tidak dapat diandalkan dalam rantai antara server web kami dan layanan web.
  • Saat ini, hanya sedikit perusahaan yang membuat layanan web, dan hanya sedikit perusahaan yang menggunakannya. Debugging dan perbaikan sistem web services masih memerlukan waktu yang cukup lama.
  • Sistem perizinan dan penagihan atas penggunaan layanan web belum dapat diterima oleh pengembang. Karena jumlah layanan web yang masih terlalu sedikit, sebagian besar perusahaan berusaha memberikan kesan yang baik kepada klien potensial mereka dengan sengaja mengurangi biaya layanan dan menawarkan persyaratan lisensi yang menguntungkan. Masih perlu waktu sebelum biaya sebenarnya dari layanan web menjadi jelas.

Ketika layanan web mengambil tempat dan tersedia untuk semua orang, mereka akan menjadi bantuan yang sangat berharga bagi pengembang web. Mereka akan memberi kita akses fleksibel ke kekuatan penuh semua komputer di Jaringan. Sudah waktunya bagi pembuat situs web untuk tertarik pada layanan web dan mempelajari lebih lanjut tentang apa yang bisa mereka peroleh dari layanan tersebut.

Terjemahan: Alexander Kachanov (http://webmascon.com)

Kami telah meninjau konsep umum penggunaan mekanisme tersebut « jaring-jasa". Mari menyegarkan kembali pengetahuan.

Layanan web digunakan untuk bertukar data antara server dan klien; Format XML digunakan untuk “mengemas” data dengan tujuan saling pengertian antara kedua peserta komunikasi.

BABSAYA

CONTOH PELAKSANAANWEB- LAYANAN DALAM SISTEM 1C:ENTERPRISE

TUGAS: Penting untuk membuat layanan web, dengan mengakses klien mana yang dapat menentukan semua informasi yang diperlukan pada aplikasi mereka.

Tugas tersebut merupakan demonstrasi dan hanya berfungsi sebagai contoh untuk memahami dan mengajarkan mekanismenyaweb-jasa.

LARUTAN:

Langkah 1. Mari buat basis informasi baru tanpa konfigurasi untuk mengembangkan konfigurasi baru.

Langkah 2. Mari tambahkan beberapa objek baru ke konfigurasi

Direktori "Klien";

Dokumen "Aplikasi";

Pencacahan "Status Permintaan".

Langkah 3. Mari buat paket XDTO baru.

Mengapa dan untuk tujuan apa kita membuat paket XDTO? Informasi lebih lanjut tentang penggunaan mekanisme XDTO dapat ditemukan di “Bab 16. Panduan Pengembang” dan .

Mari kita perhatikan secara singkat bahwa mekanisme XDTO adalah cara universal menyajikan data untuk berinteraksi dengan berbagai sumber data eksternal dan sistem perangkat lunak.

Dalam kasus kami, paket XDTO dibuat untuk menggambarkan nilai kembalian layanan web.

Mari kita perluas cabang “Umum” → “Paket XDTO” → Tambahkan…

Mari tentukan nama paket XDTO " Data Dokumen"dan namespace-nya http://localhost/request atau http://192.168.1.76/request (untuk memudahkan pemahaman dan proses pembelajaran, kami menunjukkan alamat IP lokal komputer tempat server web diinstal (server web yang didukung: IIS atau Apache)). Setiap layanan Web dapat diidentifikasi secara unik berdasarkan namanya dan URI namespace miliknya.

Paket kami berisi dua jenis objek XDTO:

1) Pelanggan- untuk mentransfer data dari elemen direktori “Klien”.

- Nama ;

2) Dokumen- untuk mentransfer data dari dokumen "Aplikasi".

Tipe objek XDTO ini akan berisi properti berikut:

- Pelanggan- Tipe pelanggan dari namespace http://192.168.1.76/request ; mewakili referensi ke objek XDTO yang kita definisikan di atas;

- Status- tipe string dari namespace http://www.w3.org/2001/XMLSchema ;

- Nomor- ketik string dari namespace http://www.w3.org/2001/XMLSchema.

Langkah 4. Mari tambahkan layanan Web baru ke konfigurasi

Mari kita perluas cabang “Umum” → “Layanan web” → Tambahkan…

Untuk layanan Web, kami menentukan nilai properti berikut:

Nama - Data Dokumen

URI ruang nama - http://192.168.1.76/permintaan

Paket XDTO - Data Dokumenatauhttp://192.168.1.76/permintaan

Nama file publikasi - permintaan.1cws

Langkah 5. Untuk layanan Web yang dibuat kami akan mendefinisikan operasi “ DapatkanData»

Nilai properti operasi:

Jenis pengembalian - Dokumen (http://192.168.1.76/request)

Nilai mungkin kosong - BENAR

Nama prosedur - DapatkanData.

Langkah 6. Di operasi DapatkanData mari kita tentukan parameter Pelanggan dengan dengan nilai-nilai berikut properti:

Tipe nilai – tipe rangkaian dari namespace http://www.w3.org/2001/XMLSchema;

Arah transmisi - memasukkan.

Langkah 7 Mari kita buka modul layanan Web yang dibuat dan tempatkan fungsi Get() di dalamnya, yang akan dijalankan ketika layanan Web ini dipanggil.

Fungsi GetData(Pelanggan) // Mendapatkan tipe objek XDTO ClientType = FactoryXDTO.Type("http://192.168.1.76/request", "Customer"); RequestType = FactoryXDTO.Type("http://192.168.1.76/request", "Dokumen"); // Dapatkan klien ClientLink = Direktori.Klien.FindByName(Pelanggan); Jika Tidak ValueFilled(ClientRef) Kemudian Kembalikan Tidak Terdefinisi; berakhir jika; Permintaan = Permintaan Baru; Request.Text = "PILIH TOP 1 | Application.Link, | REPRESENTATION(Application.Status) SEBAGAI Status, | Application.Number |FROM | Document.Request AS Application |WHERE | Application.Client = &Client"; Request.SetParameter("Klien", ClientLink); RequestResult = Permintaan.Eksekusi(); Jika QueryResult.Empty() Kemudian Kembalikan Tidak Terdefinisi; berakhir jika; Pilihan = QueryResult.Select(); Seleksi.Berikutnya(); Dokumen = Seleksi.Link.GetObject(); // Membuat objek XDTO dari pesanan Order = FactoryXDTO.Create(OrderType); Aplikasi.Nomor = Contoh.Nomor; Klien = PabrikXDTO.Buat(Jenis Klien); Klien.Nama = ClientLink.Nama; Aplikasi.Pelanggan = Klien; Aplikasi.Status = Pilihan.Status; // Kembalikan permintaan Kembalikan Aplikasi; Fungsi Akhir

Langkah 8 Mari publikasikan layanan Web yang dibuat di server web.

Item menu Configurator: “Administrasi” → “Penerbitan di server Web”.

Pada tab “Layanan Web”, setel kotak centang “Publikasikan Layanan Web” dan centang juga kotak di sebelah layanan Web baru kami.

BABII

CONTOH BANDING KEPADAWEB-KEPADA 1C: LAYANAN SISTEM PERUSAHAAN DARI APLIKASI PIHAK KETIGA

Tujuan utama mekanisme layanan Web dalam sistem 1C:Enterprise adalah untuk mentransfer data yang diperlukan ke aplikasi pihak ketiga.

Mari kita perhatikan contoh pengembangan aplikasi di Delphi yang memanggil layanan web kita dari bagian pertama artikel ini.

Langkah 1. Ayo berkreasi proyek baru dan tempatkan beberapa kontrol pada formulir

Bidang teks - digunakan untuk menampilkan informasi yang diterima dari layanan web;

Dua tombol - mengosongkan bidang teks dan mengakses layanan web;

Bidang masukan adalah parameter yang diteruskan ke layanan web.

Langkah 2. Mengimpor file WSDL

Hasilnya, kami mendapatkan modul baru meminta(kami mendefinisikan nama ini secara langsung di 1C). Modul ini berisi semua informasi yang diperlukan pada layanan web.

Langkah 3. Mari kita menulis pengendali panggilan layanan web

Variabel DocumentDataPortType sudah ditentukan dalam modul meminta

Langkah 4. Luncurkan aplikasi dan jalankan pengujian.

BABAKU AKU AKU

CONTOH BANDING KEPADAWEB-LAYANAN DALAM SISTEM 1C:ENTERPRISE

Langkah 1. Mari kita buat pemrosesan eksternal baru dengan nama "WEB_Service"

Langkah 2. Mari kita tentukan formulir baru untuk diproses

Langkah 3. Kami akan menunjukkan beberapa detail pada formulir

Klien - ketik "String"

ClientReturn - ketik "String"

NumberReturn - ketik "String"

StatusReturn - ketik "String".

Kami akan menampilkan detailnya di formulir.

Langkah 4. Mari tambahkan perintah formulir " Untuk mendapatkan data»

Mari tentukan pengendali perintah

&Prosedur OnClient GetData(Perintah) GetDataOnServer(Klien); Akhir Prosedur Prosedur GetDataOnServer(Klien) // Buat proksi WS berdasarkan tautan dan lakukan operasi Get() Definisi = New WSDefinitions("http://192.168.1.76/WEB_Service/ws/request.1cws?wsdl") ; Proxy = WSProxy Baru(Definisi, "http://192.168.1.76/request", "DocumentsData", "DocumentsDataSoap"); Data Aplikasi = Proxy.GetData(Klien); Jika Data Aplikasi = Tidak Terdefinisi Maka ClientReturn = "Tidak Terdefinisi"; StatusReturn = "Tidak ditentukan"; ReturnNumber = "Tidak ditentukan"; Kembali; berakhir jika; CustomerReturn = Data Aplikasi.Nama Pelanggan; StatusReturn = Data Aplikasi.Status; Nomor Pengembalian = Data Aplikasi.Nomor; Akhir Prosedur

Sistem 1C:Enterprise dapat menggunakan layanan web yang disediakan oleh penyedia lain dengan dua cara:

Dengan menggunakan statis tautan yang dibuat di pohon konfigurasi;

"plus": kecepatan tinggi;

"kurang": mengimpor ulang deskripsi WSDL menggunakan konfigurator dan menyimpan konfigurasi yang diubah.

Dengan menggunakan dinamis tautan yang dibuat oleh alat bahasa bawaan

(sejalan dengan itu, “kekurangan” dari yang statis dan yang dinamis adalah “kelebihan”)

BABIV

DEBUGGING LAYANAN WEB PADA SISTEM 1C:ENTERPRISE

Untuk layanan web lokal, Anda memerlukan:

Langkah 1. Tempatkan file di klien tempat sistem 1C berjalan layanan webcfg.xml dengan konten berikut

Langkah 2. Untuk mengajukan bawaan. vrd terbitkan baris tambahan konfigurasi

Langkah 3. Di konfigurator, pilih item menu

“Debug” → “Koneksi” → “Koneksi otomatis” → “Layanan web di server”

Langkah 4. Klik tombol "OK".

Untuk opsi server, Anda juga perlu menjalankan server 1c dalam mode debugging dengan kuncinya /debug

layanan web, layanan web - sistem perangkat lunak yang diidentifikasi berdasarkan alamat web dengan antarmuka standar.

Layanan web dapat berkomunikasi satu sama lain dan dengan aplikasi pihak ketiga melalui pesan berdasarkan protokol tertentu =

  • XML-RPC
  • dll.

Layanan web adalah unit modularitas ketika menggunakan arsitektur aplikasi berorientasi layanan.

Dalam bahasa umum, layanan web adalah layanan yang disediakan di Internet.
Dalam penggunaan ini istilah tersebut memerlukan klarifikasi, apakah kita berbicara tentang pencarian, webmail, penyimpanan dokumen, file, bookmark, dll.
Layanan web tersebut dapat digunakan di mana pun Anda mengakses Internet, komputer, atau browser.

Arsitektur

Seperti yang ditunjukkan pada gambar, ada tiga contoh yang berinteraksi dalam layanan web. Mari kita terjemahkan nama mereka sebagai pelanggan, kontraktor, dan direktori (Pemohon Layanan, Penyedia Layanan, dan Pialang Layanan).

Ketika suatu layanan dikembangkan, kontraktor mendaftarkannya di direktori di mana calon pelanggan dapat menemukannya. Pelanggan, setelah menemukan layanan yang sesuai di katalog, mengimpor spesifikasi WSDL-nya dari sana dan mengembangkan layanannya sendiri sesuai dengan layanan tersebut. perangkat lunak. WSDL menjelaskan format permintaan dan tanggapan yang dipertukarkan antara pelanggan dan kontraktor selama proses pekerjaan. Standar berikut digunakan untuk memastikan interoperabilitas:

  • Bahasa markup yang dapat diperluas yang dirancang untuk menyimpan dan mengirimkan data terstruktur;
  • Protokol perpesanan berbasis XML;
  • : Bahasa untuk mendeskripsikan antarmuka eksternal layanan web berdasarkan XML;
  • Antarmuka Penemuan Universal, Deskripsi dan Integrasi.

Direktori layanan web dan informasi tentang perusahaan yang menyediakan layanan web kepada publik atau perusahaan tertentu. Sejauh ini, UDDI hanya ada di jaringan berpemilik kecil dan belum digunakan secara luas di Internet terbuka.

Metode Pengembangan

Ada alat untuk mengotomatisasi pengembangan layanan web, terbagi menjadi dua kelompok utama.

Dalam pengembangan bottom-up, kelas implementasi ditulis terlebih dahulu, dan file WSDL yang mendokumentasikan layanan dihasilkan dari kode sumbernya. Kerugian dari metode ini adalah Kelas Java sering mengalami perubahan. Dalam pendekatan top-down, WSDL pertama kali disiapkan, dan dari situ kerangka kelas Java yang mengimplementasikan layanan dihasilkan. Jalur ini dianggap lebih sulit, namun mengarah pada solusi yang lebih bersih dan terlindungi. Selama format pesan yang dipertukarkan antara pelanggan dan kontraktor tidak berubah, perubahan pada masing-masing pesan tidak mengganggu interaksi. Teknik ini kadang-kadang disebut "kontrak pertama", karena titik awalnya adalah WSDL ("kontrak" antara pelanggan dan kontraktor).

Keuntungan

  1. Layanan web menyediakan interaksi sistem perangkat lunak apa pun platformnya. Misalnya, klien Windows C# dapat berkomunikasi dengan server Java yang berjalan di Linux.
  2. Layanan web didasarkan pada basis standar dan protokol terbuka. Berkat penggunaan XML Kemudahan pengembangan dan debugging layanan web tercapai.
  3. Penggunaan protokol Internet menyediakan Interaksi HTTP sistem perangkat lunak melalui firewall. Ini merupakan keunggulan signifikan dibandingkan teknologi seperti CORBA, DCOM atau Java RMI. Di sisi lain, layanan web tidak terikat erat dengan HTTP - protokol lain dapat digunakan.

Kekurangan

  1. Produktivitas kurang dan ukuran yang lebih besar lalu lintas jaringan dibandingkan dengan teknologi RMI, CORBA, DCOM karena penggunaan pesan teks XML. Namun, beberapa server web dapat dikonfigurasi untuk mengompresi lalu lintas jaringan.
  2. Aspek Keamanan. Layanan web yang bertanggung jawab harus menggunakan enkripsi dan mungkin memerlukan otentikasi pengguna. Apakah penggunaan HTTPS sudah cukup di sini, atau apakah solusi seperti XML Signature, XML Encryption, atau SAML lebih disukai, harus diputuskan oleh pengembang.

Contoh

Kerjasama antara maskapai penerbangan dan agen perjalanan. Yang pertama disediakan melalui layanan web informasi berguna, yang digunakan terakhir saat mencari penawaran optimal untuk klien mereka.

Google, dari tahun 2002 hingga 2009, menyediakan layanan web yang memungkinkan pelanggan mencari informasi di Internet dengan cara yang sama seperti yang mereka lakukan. pengguna biasa. Dari segi kenyamanan, hal ini tidak ada bandingannya, misalnya dengan penguraian otomatis teks HTML di halaman Google.

Amazon.com memiliki layanan web yang menyediakan berbagai layanan berbasis web (sesuatu "sebagai layanan" - teknologi cloud)