Layanan web: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Syafuan (bicara | kontrib)
Kalau baru belajar Web Service silahkan baca ini
 
Fitur saranan suntingan: 3 pranala ditambahkan.
 
(116 revisi perantara oleh 75 pengguna tidak ditampilkan)
Baris 1:
{{Underlinked|date=Januari 2023}}
{{pintas|[[WP:WBS]]}}
{{Akan dikerjakan}}
Berikut petunjuk untuk '''mulai mempelajari tentang Web Service'''.
* Wiki Markup: [[Wikipedia:Web Service|Pengertian Web Service]]
 
'''Layanan web''' merupakan fenomena yang sangat panas saat ini. Banyak kelebihan yang ditawarkan oleh Web Service, terutama interoperabilitas tinggi dan penggunaannya yang dapat diakses kapanpun dan dimanapun selama mesin kita terhubung oleh jaringan internet.
 
== Gambaran umum ==
=== JavaScript dan XML Asinkron ===
{{Main|AJAX}}
 
Asynchronous JavaScript And [[XML]] (AJAX) adalah teknologi terkemuka untuk layanan Web. Dikembangkan dari kombinasi peladen HTTP, klien JavaScript dan [[Plain Old XML]] (berbeda dari [[SOAP]] dan Layanan Web W3C), sekarang ini sering digunakan dengan [[JSON Web Token|JSON]] dan juga, atau sebagai pengganti, XML.
== '''PENDAHULUAN''' ==
 
=== LATAR BELAKANGREST ===
{{Main|REST}}
* Web Service merupakan fenomena yang sangat panas saat ini karena, banyak kelebihan yang ditawarkan oleh Web Service terutama interoperabilitas tinggi dan penggunaannya yang dapat diakses kapanpun dan dimanapun selama mesin kita terhubung oleh jaringan internet salah satunya.
 
Representational State Transfer (REST) adalah arsitektur untuk layanan Web yang dirancang baik yang dapat digunakan pada skala internet.
=== TUJUAN ===
* Tujuan dari penyusunan makalah ini adalah untuk membantu dalam proses pemahaman tentang Web Service :
 
Dalam sebuah dokumen 2004, W3C menetapkan REST berikut sebagai fitur pembeda utama layanan Web:
=== BATASAN MASALAH ===
* Isi makalah yang akan kami buat memiliki beberapa batasan, yaitu :
Hanya membahas Pengertian ,Sejarah, Mekanisme Kerja, Pengembangan dan Implikasi Bisnis.
 
{{Quote|text=Kita dapat mengidentifikasi dua kelas terbesar dari layanan Web:
----
*Layanan web [[REST]]-yang patuh, di mana tujuan utama layanan ini adalah untuk memanipulasi representasi XML dari [[sumber daya Web]] menggunakan serangkaian operasi [[Protokol independen|independen]]; dan
*layanan Web yang sewenang-wenang, di mana layanan tersebut dapat mengekspos serangkaian operasi yang sewenang-wenang.|author=W3C|source=Arsitektur layanan Web<ref>{{cite web |url=https://www.w3.org/TR/2004/NOTE-ws-arch-20040211/#relwwwrest |title=Web Services Architecture § Relationship to the World Wide Web and REST Architectures |website=[[World Wide Web Consortium|W3C]] |access-date=11 November 2017}}</ref>|title=}}
 
=== Layanan web yang menggunakan bahasa markup ===
== '''Pengertian dan Sejarah''' ==
Terdapat beberapa layanan Web yang menggunakan bahasa markup:
=== Pengertian ===
 
* [[JSON-RPC]].
----
* [[JSON-WSP]]
==== 1.1 Apa itu Web Service ? ====
* [[Representational state transfer]] (REST) melawan [[remote procedure call]] (RPC)
*Web Service Sepenuhnya berdasarkan standard web dan xml
* [[Web Services Conversation Language]] (WSCL)
* [[Web Services Description Language]] (WSDL), dikembangkan oleh [[World Wide Web Consortium|W3C]]
* [[Web Services Flow Language]] (WSFL), digantikan oleh [[Business Process Execution Language|BPEL]]
* [[Sistem templat web|Templat Web]]
* [[WS-MetadataExchange]]
* [[XML Interface for Network Services]] (XINS), menyediakan format spesifikasi layanan web bergaya [[Plain Old XML|POX]]
 
=== API Web ===
*Web Service dapat membantu:
{{Main|API Web}}
*Perantara pada integrasi platform sepanjang eksekusi mesin virtual.
Sebuah [[Web API]] adalah sebuah pengembangan layanan Web yang di mana penekanan telah beralih ke komunikasi berbasis [[representational state transfer]] (REST) yang lebih sederhana.<ref>{{cite journal|last1=Benslimane|first1=D.|last2=Dustdar|first2=S.|last3=Sheth|first3=A.|author3-link=Amit Sheth|year=2008|title=Services Mashups: The New Generation of Web Applications|url=https://works.bepress.com/amit_sheth/292/download/|journal=[[IEEE Internet Computing]]|language=en-US|volume=10|issue=5|pages=13–15|doi=10.1109/MIC.2008.110|s2cid=8124905}}</ref> Restful API tidak memerlukan protokol layanan Web berbasis XML ([[SOAP]] dan WSDL) untuk mendukung antarmuka mereka.
*Integrasi antara Web dan OO middleware.
*Integrasi dari aliran kerja terisolasi dan sevice-service (Web Services Flow Language - WSFL).
*Pertukaran data pada aplikasi yang berbeda-beda (X-Schema, XSLT ++)
 
== Fungsi layanan web ==
*(Masa depan: standarisasi dari info konteks antara web servis dan klien – integrasi servis horizontal).
 
Layanan web sepenuhnya berdasarkan standar web dan XML. Web Service dapat membantu beberapa hal, seperti:
----
* sebagai perantara pada integrasi platform sepanjang eksekusi [[mesin virtual]];
* integrasi antara Web dan OO middlewa;
* integrasi dari aliran kerja terisolasi dan sevice-service (Web Services Flow Language - WSFL);
* pertukaran data pada aplikasi yang berbeda-beda (X-Schema, XSLT ++);
* standardisasi dari info konteks antara web servis dan klien – integrasi servis horizontal di masa depan.
 
* pemain utama dan standard-standard Microsoft: .NET SUN: Open Net Environment (ONE) [[IBM]]: Web Service Conceptual Architecture (WSCA) W3C: Web Service Workshop Oracle: Web Service Broker Hewlett-Packard: Web Service Platform;
*Pemain utama dan standard-standard
Microsoft: .NET
SUN: Open Net Environment (ONE)
IBM: Web Service Conceptual Architecture (WSCA)
W3C: Web Service Workshop
Oracle: Web Service Broker
Hewlett-Packard: Web Service Platform
 
*Kemampuan ;emampuan aplikasi, fungsi atau operasi yang di ekspos untuk program lain melalui standard yang terbuka, dan interoperable.;
* “payloads” didefinisikan sebagai XML;
* “transports” melalui http atau [[Protokol Internet|Internet protocol]] terbuka lainnya;
* mengakses data dari berbagai [[bahasa pemrograman]], platform hardware atau system operasi;
* middleware dari Internet.
 
== Keuntungan penggunaan Web Service ==
*“payloads” didefinisikan sebagai XML.
* Format penggunaan terbuka untuk semua platform.
 
* Mudah di mengerti dan mudah men-debug.
*“transports” melalui http atau Internet protocol terbuka lainnya.
* Dukungan interface yang stabil.
 
* Menggunakan standard-standard “membuka service sekali” dan mempunyai pemakai banyak.
*Data diakses dari berbagai bahasa pemrograman , platform hardware atau system operasi.
* Mudah untuk menengahi pesan-pesan proses dan menambahkan nilai.
 
* Routing and pengiriman.
*Middlewear dari Internet.
* Security.
 
* management and monitoring.
----
* schema and service design.
 
* Akselerasi.
==== 1.2 Contoh implementasi ====
* mudah untuk mengembangkan dengan semantic transport tambahan.
 
* Terbuka, standard-standard berbasis teks.
*General Motors
* Pencapaian modular.
Mengintegrasikan manajemen kebutuhan pada lebih dari 8000 dealer-dealer.
* Tidak mahal untuk diimplementasikan (relatif).
*Dell
* Mengurangi biaya integrasi aplikasi enterprise.
XML-based Web Services untuk menjadwalkan penyediaan data pada form yang dapat diproses langsung untuk jaringan penyuplai.
* Implementasi yang incremental.
 
 
----
 
==== 1.3 Keuntungan penggunaan Web Service : ====
 
*Format penggunaan terbuka untuk semua platform.
*Mudah di mengerti dan mudah men-debug.
*Dukungan interface yang stabil.
*Menggunakan standard-standard “membuka service sekali” dan mempunyai pemakai banyak.
*Mudah untuk menengahi pesan-pesan proses dan menambahkan nilai.
*Routing and pengiriman.
*Security.
*management and monitoring.
*schema and service design.
*Akselerasi.
*mudah untuk mengembangkan dengan semantic transport tambahan.
*Terbuka, standard-standard berbasis teks.
*Pencapaian modular.
*Tidak mahal untuk diimplementasikan (relatif).
*Mengurangi biaya integrasi aplikasi enterprise.
*Implementasi yang incremental.
 
----
 
==== 1.4 Overview ====
 
* XML memungkinkan pengembang software untuk meng-expose sumber daya berharga pada bentuk yang memilki interoperabilitas tinggi, dimana sumber daya ini adalah semua tipe aplikasi atau pnyimpanan data yang digunakan oleh antar organisasi. Arsitektur XML Web services mendefinisikan mekanisme standard untuk menyediakan sumber daya melalui pengiriman pesan XML. Untuk mengakses sumber daya hanya dengan mentransmisikan pesan-pesan XML melalui protokol standard seperti TCP, HTTP, atau SMTP. Kata “Web Service” (singkatnya “service”) mengacu pada bagian kode yang mengimplementasikan interface XML menjadi sumber daya, dimana bias jadi sulit diakses (lihat gambar 1).
 
Gambar 1: Resources(Sumber daya) and services(Web Service)
* Arsitektur ini memungkinkan untuk konsumen dengan dukungan XML terintegrasi dengan aplikasi Web Service. Bagaimanapun, untuk memenuhi ini, konsumen harus menentukan antarmuka XML yang tepat sepanjang dengan pesan pesan yang beraneka ragam dan mempunyai detail-detail yang tepat. Skema XML XML dapat memnuhi kebutuhan ini karena mengizinkan pengembang untuk menjabarkan struktur dari pesan-pesan XML. Skema XML sendiri, bagaimanapun, tidak dapat menjabarkan detail-detail tambahan menyangkut komunikasi dengan Web Service.
* Definisi skema memberitahu pesan-pesan XML apa yang dapat digunakan tapitetapi tidak bagaimana pesan-pesan tersebut berhubungan satu sama lain. Sebagai contoh, jika ada elemen XML dinamai Add dan nama lain AddResponse, ini sepertinya kedua nama tersebut berhubungan tapitetapi tidak dapat mengindikasikan skemanya. Oleh sebab itu, sebagai tambahan untuk mengetahui pesan-pesan, konsumen harus juga mengetahui kemungkinan pertukaran pesan yang didukung oleh Web Service (contoh:., jika anda mengirim pesan Add, anda mendapatkan pesan kembali berupa AddResponse).
Pertukaran pesan dapat dimaksudkan sebagai pertukaran operasi. Operasi-operasi yang dilakukan konsumen kebanyakan pada point penting menginteraksikan service (Lihat gambar 2). Setiap kali menggunakan Web Service, akan dilakukan inspeksi daftar operasi yang didukung untuk mendapatkan semua proses yang tersedia.
 
Gambar 2: Pesan-pesan dan operasi-operasi
* Ini biasa untuk developer untuk mengelompokkan operasi-operasi terhubung menjadi antarmuka-antarmuka. Konsumen harus mengetahui pengelompokkan ini mempengaruhimemengaruhi cara mereka membuat kode. Ini sungguh penting untuk developer-developer yang bekerja dengan Web Service pada lingkup berorientasi objek karena antarmuka XML dapat memetakan menjadi antarmuka programmatis (atau kelas-kelas abstract) pada pilihan bahasa yang dipilih.
* Konsumen juga harus mengetahui protocol komunikasi apa yang digunakan untuk pengiriman pesan menuju service, sepanjang mekanisme spesifik yang terlibat saat menggunakan protokol yang ditentukan seperti pada penggunaan perintah, header-header, kode error. Pembungkusan (binding) menspesifikasikan detail-detail konkritkonkret atas apa yang terjadi pada kabel (wire) dengan mensketsakan cara penggunaan antarmuka dengan protokol komunikasi khusus. Binding juga mempengaruhimemengaruhi cara peasn-pesan abstract di enkodisasi pada wire dengan menspesifikasikan style dari service (document vs. RPC) dan mekanisme enkodisasi (literal vs. terenkodisasi).
* Service dapat mendukung binding-binding ganda pada antarmuka yang ditentukan, tapitetapi setiap binding harus dapta diakses pada alamat unik yang diidentifikasikan oleh URI, juga ditujukan sebagai titik akhir dari Web Service (lihat gambar 3).
 
Gambar 3: Antarmuka dan binding-binding
* Konsumen harus mencari tahu semua detail-detail yang dijabarkan sebelum mereka dapat berinteraksi menggunakan Web Service.
 
== Sejarah ==
* Sebelum kita memasukki sejarah tentang Web Service, adabaiknya kita terlebih dahulu mebahas masalah paradigma pekembangan bahasa pemrograman terlebih dahulu.
 
=== 1.2 Sejarah bahasa pemrograman adalah ===
* Pemrograman terstruktur.
* Pemrograman berorientasi- objek.
* Komputasi terdistribusi.
* Pertukaran data elektronik.
* World Wide Web.
* Web services.
 
=== 1.3 Ada pun perusahaan yang mengusulkan konsep web service adalah ===
* Hewlett-Packard's e-Speak pada 1999 adalah penyedia e-service.
* Microsoft memperkenalkan nama "web services" pada Juni 2000.
* Microsoft “mempertaruhkan nama perusahaan" pada strategi web service ini.
* sekarang setiap vendor mulai menjadi “pemain”.
* Untuk lebih lanjut mengenai perkembangan sejarah Web service yang mana cikal bakal terbentuknya dari arsitektur DCE, dapat dilihat pada gambar 4: Sejarah terbentuknya Web Service.
* Dari gambar tersebut dapat dilihat bahwa XML Web Service mempunyai interoperabilitas yang sangat tinggi karena pengembang Web service terdiri dari banyak [https://interbola2.com vendor] {{Webarchive|url=https://web.archive.org/web/20210510081644/https://interbola2.com/ |date=2021-05-10 }}.
 
=== SejarahMekanisme Kerja ===
*Sebelum kita memasukki sejarah tentang Web Service, adabaiknya kita terlebih dahulu mebahas masalah paradigma pekembangan bahasa pemrograman terlebih dahulu.
 
Sebelum memasuki mekanisme kerja yang terjadi pada Web Service, akan dibahas terlebih dahulu komponen-kompenen yang mempunyai peranan penting pada Web Service, komponen-komponen tersebut dapat dilihat pada standard-standard web service itu sendiri, dimana standard-standard web service adalah sebagai berikut:
----
WSDL Web Services Description Language
 
==== 1.2 Sejarah bahasa pemrograman adalah: ====
 
*Pemrograman terstruktur.
*Pemrograman berorientasi- objek.
*Komputasi terdistribusi.
*Pertukaran data elektronik.
*World Wide Web.
*Web services.
 
----
 
==== 1.3 Ada pun perusahaan yang mengusulkan konsep web service adalah: ====
*Hewlett-Packard's e-Speak pada 1999 adalah penyedia e-service.
*Microsoft memperkenalkan nama "web services" pada Juni 2000.
*Microsoft “mempertaruhkan nama perusahaan" pada strategi web service ini.
*sekarang setiap vendor mulai menjadi “pemain”.
 
*Untuk lebih lanjut mengenai perkembangan sejarah Web service yang mana cikal bakal terbentuknya dari arsitektur DCE, dapat dilihat pada gambar 4: Sejarah terbentuknya Web Service.
*Dari gambar tersebut dapat dilihat bahwa XML Web Service mempunyai interoperabilitas yang sangat tinggi karena pengembang Web service terdiri dari banyak vendor.
 
 
 
== '''Mekanisme Kerja''' ==
 
 
Sebelum memasukki mekanisme kerja yang terjadi pada Web Service, akan dibahas terlebih dahulu komponen-kompenen yang mempunyai peranan penting pada Web Service, komponen-komponen tersebut dapat dilihat pada standard-standard web service itu sendiri, dimana standard-standard web service adalah sebagai berikut:
WSDL Web Services Description Language
http://www.w3.org/TR/wsdl
Deskripsi-deskripsi dari web service
UDDI Universal Discovery, Description & Integration http://www.uddi.org/specification.html
Registry mengenai deskripsi servis
SOAP Simple Object Access Protocol
http://www.w3.org/TR/SOAP/
Protokol transport untuk berkomunikasi antar web service
Standard-standard lain: WSRP, WSIA, WSXL…….
 
Selain standard-standard Web Service, juga ada Bagian-bagian Web Service (Web Service Dumpstack) yang mendeskripsikan task-task yang akan terjadi pada proses berjalannya web service, dimana task-task tersebut antara lain: Wire Protocols, Description, Discovery. Untuk lebih lanjut mengenai bagian-bagian Web Service maka dapat dilihat ilustrasinya pada gambar 5: Bagian-bagian Web Service .
gambar 5: Bagian-bagian Web Service
 
keterangan:
 
Wire Protocols
Baris 163 ⟶ 139:
 
Discovery
Aturan utama: menyediakan standard, jalur untuk menemukan dimana web service di tempatkanditempatkan dan bagaimana mencari informasi tambahan tentang apa yang dilakukan web service dengan fleksibel
Keuntungan: interoperabilitas, integrasi yang dinamis
=== 2.3 UDDI (skema xml) ===
 
Kemampuan atribut [[metadata]] untuk service-service didaftarkan pada UDDI, dan lalu menjalankan queri-queri berdasarkan pada metadata tersebut yang menengahi secara mutlak menuju tujuan dari UDDI pada kedua waktu desain dan waktu pengekskusian.
=== 2.1 Simple Object Access Protocol (SOAP) ===
SOAP adalah:
Jalan untuk program yang berjalan pada suatu OS untuk berkomunikasi dengan program pada OS Yang sama maupun berbeda dengan menggunakan HTTP dan XML sebagai mekanisme untuk pertukaran data.
 
SOAP menspesifikan secara jelas bagaimana cara untuk meng-encoding header HHTP dan file XML sehingga program pada suatu computer dapat menmanggil program pada pada computer lain dan mengirimkan informasi, dan bagaimana program yang dipanggil memberikan response.
 
SOAP adalah protocol ringan yang ditujukan untuk pertukaran informasi struktur pada lingkup desentralisasi, dan terdistribusi. SOAP menggunakan teknologi XML utuk mendefinsiskan framework pemesanan terekstrensi. Dimana menyediakan konstruksi pesan yang dapat dipertukarkan pada protokol berbeda. Framework didesain bebas dari model pemrograman dan spesifikasi implementasi semantik.
 
 
gambar 6: Dasar pertukaran pesan SOAP.
 
Pada gambar diatas dapat dilihat proses pertukaran pesan pada SOAP, mulai dari permintaan layanan hingga Penyedia Layanan menyediakan program.
 
 
 
gambar 7: amplop SOAP
 
Amplop SOAP menerangkan isi dari grammar XML pada SOAP
 
 
 
 
 
 
 
=== 2.2 WSDL (Web Services Description Language) ===
Pengertian:
WSDL adalah grammar XML yang simple untuk menjabarkan bagaimana cara berkomunikasi dengan web service
WSDL mendefinisikan pesan-pesan (baik yang abstract dan kongkrit) yang di kirim ke dan menuju web service
WSDL mendefinisikan koleksi-koleksi digital dari pesan-pesan (“port type”, “interface”)
WSDL mendefinisikan bagaiman “tipe port” yang ditentukan dijadikan wire protokol
WSDL mendefinisikan dimana servis di tempatkan
 
Web Services Description Language (WSDL) menyediakan sebuah kamus XML untuk menjabarkan detail-detail ini. WSDL digunakan dimana skema XML tidak digunkan lagi dengan menyediakan jalur pesan-pesan group menjadi operasi-operasi dan operasi-operasi menjadi antarmuka. Ini juga menyediakan jalur untuk medefinisikan binding-binding untuk setiap antamuka dan kombinasi protokol sepanjang alamt titik akhir utnuk setaip kalinya. Definisi WSDL yang lengkap terdiri dari seluruh informasi yang dibutuhkan untuk meminta Web service. Pengembang yang mau mempermudah yang lain untuk mengakses service-servicenya harus menyediakan defisi-definisi WSDL .
WSDL memainkan peranan penting pada seluruh arsitektur Web service semenjak menjabarkan kontrak lengkap pada komunikasi aplikasi (sama seperti peran IDL pada arsitektur DCOM). Walaupun teknik-teknik lain untuk menjabarkan Web service ada, WS-I Basic Profile Version 1.0 memandati penggunaan WSDL dan skema XML (lihat gambar 4) untuk menjabarkan Web service. Ini membantu untuk memastikan interoperbilitas pada layer deskripsi service.
 
Gambar 4: teknologi WS-I Basic Profile 1.0
Karena WSDL adalah mesin yang dapat dibaca(misalnya, ini hanya file XML), tool-tool dan infrastruktur dan dengan mudah dibuat seputar ini. Saat ini pengembang-pngembang dapat definisi-definisi WSDL untuk membangun kode yang tahu dengan tepat bagaimana berinteraksi dengan Web service yang menjabrkan. Pembangunan code tipe ini menyembunyikan detail-detail membosankan yang terlibat pada pengiriman dan penrimaan pesan-pesan SOAP pada protokol-protokol yang berbeda-beda dan menyebabkan Web service dapat dicapai oleh massa.
Microsoft® .NET Framework menggunakan utilitas command-line bernama wsdl.exe yang mengenerasi kelas-kelas dari definsi WSDL. Wsdl.exe dapat meng-generasi satu kelas untuk menggunakanservice dan yang lainnya untuk mengimplementasikan service.(Apache axis menggunkaan utilitas yang sama bernama WSDL2Java yang melakukan fungsi yang sama pada kelas-kelas java.) Kelas-kelas digenerasi dari definisi WSDL sama harus mampu berkomunikasi dengan yang lain sepanjang antarmuka WSDL yang tersedia, tanpa memperhatikan bahasa pemrograman yang digunakan (Lijhat Gambar 8).
 
Gambar 8: WSDL dan generasi kode
WSDL 1.1 mempertimbangkan standard de-facto saat ini karena dukungan industri yang luas. Kebanyakkan toolkit-toolkit Web service mendukung WSDL 1.1, tapi ada sedikit masalah interoperabilitas pada implementasi berbeda. Kebanyakkanpembangun-pembangun percaya bahwa fleksibilitas yang luas dari WSDL (dan kompleksitas hasil) adalah sumber fundamental dari masalah ini. WS-I telah membantu memecahkan bebrapa dari masalah ini dengan memkasakan pengembang-pengembang untuk menggunakan bagian-bagian tepat dari spesifikasi dan tidak menganjurkan mereka untuk menggunakan yang lainnya.
W3C secara aktif bekerja pada versi WSDL “terdaftar” terakhir, WSDL 1.2, tapi saat ini hanya Working Draft dan tidak didukung oleh toolkit-toolkit mainstream, jika ada
 
Dasar WSDL
Definisi WSDL adalah dokumen XML dengan element definisi root dari http://schemas.xmlsoap.org/wsdl/ namespace. Elemen defines-definisi dapat berisis beberapa elemen-elemen lain termasuk tipe-tipe, pesan, portType, binding dan service, semua yang datang dari http://schemas.xmlsoap.org/wsdl/ namespace. Ilustrasi berikut mengilustarsikan srtuktur dari definisi WSDL:
<!-- WSDL definition structure --> <definitions name="MathService" targetNamespace="http://example.org/math/" xmlns="http://schemas.xmlsoap.org/wsdl/" > <!-- abstract definitions --> <types> ... <message> ... <portType> ... <!-- concrete definitions --> <binding> ... <service> ... </definition>
 
Melihat bahwa kita harus menspesifikasikan namespace target untuk definsi WSDL, seperti yang akan kita lakukan untuk definsi skema XML. Semua yang anda namai pada definsis WSDL (seperti pesan, portType, binding, dsb.) secara otomatis menjadi bagian dari target namespace definsi WSDL yang didefinsikan oleh atribut targetNamespace, jika kita mereferensikan sesuatu menggunakan nama pada file WSDL, kita harus mengingat nama yang memenuhi aturan.
Yang pertama dari tiga elemen (types, message, and portType) adalah seluruh definisi-definisi abstrak dari antarmuka Web Service. Elemen ini mengkonstitusikan antarmuka programatis yang biasa kita antarmukakan pada kode. Dua elemen terakhir (binding and service) menjabarkan detail-detail konkrit bagaimana antarmuka abstrak memetakan pesan pada wire. Detail-detail ini biasanya ditangani oleh infrastruktur, tidak oleh kode aplikasi. Tabel 1 menyediakan definisi-definisi untuk setiap inti elemen-elemen WSDL
Nama Element Deskripsi
types Penampung definsi tipe yang abstrak yang didefinisikan menggunkana skema XML
message Definisi dari pesan abstrak yang dapat terdiri dari banyak bagian, untuk setiap bagian mungkin dapat berbeda tipe
portType Kumpulan abstrak dari operasi yang didukung oleh satu atau lebih titik akhir (biasanya disebut antarmuka); operasi-operasi didefinsikan oleh pertukaran pesan-pesan.
binding Protocol konkrit dan spesifikasi format data pada portType
service Koleksi titikakhir terhubung, dimana titikakhir didefinsikan sebagai kombinasi dari binding dan alamat (URI)
Tabel 1. Elemen WSDL
Gambar 9: Elemen dan spesifikasi WSDL
Contoh – contoh:
Types
 
<definitions .... > <types> <xsd:schema .... />* </types> </definitions>
…..
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:y="http://example.org/math/" xmlns:ns="http://example.org/math/types/" targetNamespace="http://example.org/math/" > <types> <xs:schema targetNamespace="http://example.org/math/types/" xmlns="http://example.org/math/types/" > <xs:complexType name="MathInput"> <xs:sequence> <xs:element name="x" type="xs:double"/> <xs:element name="y" type="xs:double"/> </xs:sequence> </xs:complexType> <xs:complexType name="MathOutput"> <xs:sequence> <xs:element name="result" type="xs:double"/> </xs:sequence> </xs:complexType> <xs:element name="Add" type="MathInput"/> <xs:element name="AddResponse" type="MathOutput"/> <xs:element name="Subtract" type="MathInput"/> <xs:element name="SubtractResponse" type="MathOutput"/> <xs:element name="Multiply" type="MathInput"/> <xs:element name="MultiplyResponse" type="MathOutput"/> <xs:element name="Divide" type="MathInput"/> <xs:element name="DivideResponse" type="MathOutput"/> </xs:schema> </types> ... </definitions>
…..
Messages
<definitions .... > <message name="nmtoken"> * <part name="nmtoken" element="qname"? type="qname"?/> * </message> </definitions>
…..
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:y="http://example.org/math/" xmlns:ns="http://example.org/math/types/" targetNamespace="http://example.org/math/" > ... <message name="AddMessage"> <part name="parameter" element="ns:Add"/> </message> <message name="AddResponseMessage"> <part name="parameter" element="ns:AddResponse"/> </message> <message name="SubtractMessage"> <part name="parameter" element="ns:Subtract"/> </message> <message name="SubtractResponseMessage"> <part name="parameter" element="ns:SubtractResponse"/> </message> ... </definitions>
…..
Interfaces (portTypes)
<definitions .... > <portType name="nmtoken"> <operation name="nmtoken" .... /> * </portType> </definitions>
…..
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:y="http://example.org/math/" xmlns:ns="http://example.org/math/types/" targetNamespace="http://example.org/math/" > ... <portType name="MathInterface"> <operation name="Add"> <input message="y:AddMessage"/> <output message="y:AddResponseMessage"/> </operation> <operation name="Subtract"> <input message="y:SubtractMessage"/> <output message="y:SubtractResponseMessage"/> </operation> <operation name="Multiply"> <input message="y:MultiplyMessage"/> <output message="y:MultiplyResponseMessage"/> </operation> <operation name="Divide"> <input message="y:DivideMessage"/> <output message="y:DivideResponseMessage"/> </operation> </portType> ... </definitions>
Bindings
<wsdl:definitions .... > <wsdl:binding name="nmtoken" type="qname"> * <-- extensibility element providing binding details --> * <wsdl:operation name="nmtoken"> * <-- extensibility element for operation details --> * <wsdl:input name="nmtoken"? > ? <-- extensibility element for body details --> </wsdl:input> <wsdl:output name="nmtoken"? > ? <-- extensibility element for body details --> </wsdl:output> <wsdl:fault name="nmtoken"> * <-- extensibility element for body details --> </wsdl:fault> </wsdl:operation> </wsdl:binding> </wsdl:definitions>
MathInterface portType:
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:y="http://example.org/math/" xmlns:ns="http://example.org/math/types/" targetNamespace="http://example.org/math/" > ... <binding name="MathSoapHttpBinding" type="y:MathInterface"> ... <-- extensibility element --> <operation name="Add"> ... <-- extensibility element --> <input> ... <-- extensibility element --> </input> <output> ... <-- extensibility element --> </output> </operation> ... </binding> ... </definitions>
MathInterface portType:
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:y="http://example.org/math/" xmlns:ns="http://example.org/math/types/" targetNamespace="http://example.org/math/" > ... <binding name="MathSoapHttpBinding" type="y:MathInterface"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="Add"> <soap:operation soapAction="http://example.org/math/#Add"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> ... </binding> ... </definitions>
…..
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" > <SOAP-ENV:Body> <m:Add xmlns:m="http://example.org/math/types/"> <x>3.14159265358979</x> <y>3.14159265358979</y> </m:Add> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
…..
... <message name="AddMessage"> <part name="parameter" type="ns:MathInput"/> </message> <message name="AddResponseMessage"> <part name="parameter" type="ns:MathOutput"/> </message> ... <binding name="MathSoapHttpBinding" type="y:MathInterface"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="Add"> <soap:operation soapAction="http://example.org/math/#Add"/> <input> <soap:body use="encoded"/> </input> <output> <soap:body use="encoded"/> </output> </operation> ... </binding>
…..
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:m0="http://example.org/math/types/" > <SOAP-ENV:Body> <m:Add xmlns:m="http://example.org/math/"> <parameter xsi:type="m0:MathInput"> <x xsi:type="xsd:double">3.14159265358979</x> <y xsi:type="xsd:double">3.14159265358979</y> </parameter> </m:Add> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Services
<definitions .... > <service .... > * <port name="nmtoken" binding="qname"> * <-- extensibility element defines address details --> </port> </service> </definitions>
…..
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:y="http://example.org/math/" xmlns:ns="http://example.org/math/types/" targetNamespace="http://example.org/math/" > ... <service name="MathService"> <port name="MathEndpoint" binding="y:MathSoapHttpBinding"> <soap:address location="http://localhost/math/math.asmx"/> </port> </service> </definitions>
…..
WSDL Editors
 
Gambar 6. definsi WSDL MathService dibuat dengan XML Spy 5.0
Contoh Grammar XML lengkap : WSDL
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:y="http://example.org/math/" xmlns:ns="http://example.org/math/types/" targetNamespace="http://example.org/math/"> <types> <xs:schema targetNamespace="http://example.org/math/types/" xmlns="http://example.org/math/types/" elementFormDefault="unqualified" attributeFormDefault="unqualified"> <xs:complexType name="MathInput"> <xs:sequence> <xs:element name="x" type="xs:double"/> <xs:element name="y" type="xs:double"/> </xs:sequence> </xs:complexType> <xs:complexType name="MathOutput"> <xs:sequence> <xs:element name="result" type="xs:double"/> </xs:sequence> </xs:complexType> <xs:element name="Add" type="MathInput"/> <xs:element name="AddResponse" type="MathOutput"/> <xs:element name="Subtract" type="MathInput"/> <xs:element name="SubtractResponse" type="MathOutput"/> <xs:element name="Multiply" type="MathInput"/> <xs:element name="MultiplyResponse" type="MathOutput"/> <xs:element name="Divide" type="MathInput"/> <xs:element name="DivideResponse" type="MathOutput"/> </xs:schema> </types> <message name="AddMessage"> <part name="parameters" element="ns:Add"/> </message> <message name="AddResponseMessage"> <part name="parameters" element="ns:AddResponse"/> </message> <message name="SubtractMessage"> <part name="parameters" element="ns:Subtract"/> </message> <message name="SubtractResponseMessage"> <part name="parameters" element="ns:SubtractResponse"/> </message> <message name="MultiplyMessage"> <part name="parameters" element="ns:Multiply"/> </message> <message name="MultiplyResponseMessage"> <part name="parameters" element="ns:MultiplyResponse"/> </message> <message name="DivideMessage"> <part name="parameters" element="ns:Divide"/> </message> <message name="DivideResponseMessage"> <part name="parameters" element="ns:DivideResponse"/> </message> <portType name="MathInterface"> <operation name="Add"> <input message="y:AddMessage"/> <output message="y:AddResponseMessage"/> </operation> <operation name="Subtract"> <input message="y:SubtractMessage"/> <output message="y:SubtractResponseMessage"/> </operation> <operation name="Multiply"> <input message="y:MultiplyMessage"/> <output message="y:MultiplyResponseMessage"/> </operation> <operation name="Divide"> <input message="y:DivideMessage"/> <output message="y:DivideResponseMessage"/> </operation> </portType> <binding name="MathSoapHttpBinding" type="y:MathInterface"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="Add"> <soap:operation soapAction="http://example.org/math/#Add"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> <operation name="Subtract"> <soap:operation soapAction="http://example.org/math/#Subtract"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> <operation name="Multiply"> <soap:operation soapAction="http://example.org/math/#Multiply"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> <operation name="Divide"> <soap:operation soapAction="http://example.org/math/#Divide"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="MathService"> <port name="MathEndpoint" binding="y:MathSoapHttpBinding"> <soap:address location="http://localhost/math/math.asmx"/> </port> </service> </definitions>
Gambar 10: WSDL - overview
 
 
 
 
 
 
=== 2.3 UDDI (skema xml) ===
 
Kemampuan atribut metadata untuk service-service didaftarkan pada UDDI, dan lalu menjalankan quei-queri berdasarkan pada metadata tersebut yang menengahi secara mutlak menuju tujuan dari UDDI pada kedua waktu desain dan waktu pengekskusian.
 
UDDI (Universal Description, Discovery, and Integration) mempunyai tugas sebagai berikut:
Deskripsi yang Programmatic dari bisnis dan sevice yang didukung
Deskripsi yang Programmatic dari spesifikasi web service
Model pemrograman dan schema.
 
Gambar 11: Contoh Skema Server UDDI.
 
==''' Tahap Pengembangan dan Implikasi Bisnis''' ==
 
=== 1.TahapPengembangan. ===
 
* Sebelum melakukan pengembangan, harus diketahui dulu ruang lingkup pengembangan aplikasi berbasiskan Web Service menurut media protokolnya, adapun ruang lingkup aplikasi Web Service tersebut adalah”
Dalam korporasi firewall
Untuk aplikasi enterprise terintegrasi ringan
 
*Antar Antar korporasi firewall
Untuk digunakan pada layanan eksternal (contoh: passport)
Untuuk menyediakan data untuk partner-partner
 
* Melalui Web
Aplikasi komposit
Komponen-komponen AliranKerja
 
Sedangkan tahap-tahap pengembangan Web Service itu sendiri adalah:
----
 
*Sedangkan tahap-tahap pengembangan Web Service itu sendiri adalah:
Discover – browse registry UDDI untuk mencari Web Service yang sudah ada untuk integrasi.
Create or Transform –buat Web Service dari project-project yang ada.
Build – satukan artifak yang ada sebagai SOAP dan service HTTP dan jabarkan pada WSDL.
Deploy – Aplikasikane menjadi server aplikasi Wensphere atau Tomcat.
Test – Uji coba web service baik local (stand alone computer) atau secara remote.
Develop – Bangun contoh aplikasi untuk memberi masukkan dalam membuat aplikasi klien Web service
Publish – publikasikan / upload Web Service pada bisnis registri UDDI.
 
*Untuk keterangan mengenai toolkit-toolkit untuk pembuatan aplikasi dapat dilihat ilustrasi dibawah ini.
Gambar 12: Toolkit – toolkit Web Services
*Tahapan pembangunan Web Service pada dua platform dasar yang berbeda yaitu:
java:
Platform > JVM > servlet, jsp, jdbc, jndi, jms, rmi, corba, EJB, jax package etc.
.net
Wintel > CLR (common Language Runtime) > System.WebService, ASP.NET, DirectoryServices, System.Messaging, System.Runtime.Remoting, MSXML, SOAP, WSDL etc.
 
 
 
=== 2. Implikasi Bisnis. ===
2.1 Trend Adopsi Web Service
 
 
 
 
 
 
 
 
 
Gambar 13: Trend adopsi Web Service
Dari gambar diatas dapat diambil kesimpulan bahwa pada saat ini pada umumnya oleh developer Web Service masih dalam tahap Riset.
 
==== 1.2 Tantangan Terbesar Web Service ====
 
Gambar 14: Tantangan Terbesar Web Service
 
Dari gambar diatas dapat dilihat bahwa saat ini fokus pengembangan Web Service masih pada Nilai Bisnis, jadi salah satu tujuan di buatnya web service sudah tercapai. Sementara itu untuk dukungan vendor masih kecil, ini berarti interoperabilitas yang tinggi masih tetap dipertahankan.
 
 
 
==== 1.3 Platform yang digunakan ====
 
 
== '''Kesimpulan''' ==
Dari Makalah ini dapat diambil kesimpulan sebagai berikut:
*Web service adalah teknologi dengan resiko rendah (relatif) yang dapat digunakan untuk mengimplementasikan strategi bisnis bersiko tinggi.
*Web service berdasarkan middleware OO, XML dan onsep Internet Protokol, dan membantu pergerakkan dari sistem-sistem heterogen menuju sistem yang lebih homogen
*Banyak-vendor turut membuat standard
*Membuka semua jenis kesempatan untuk semua orang
*Incremental, non-intimidating, minimal technology play
*Kostumer memulai tanpa menunggu vendor-vendor
*Web service mentransformasikan web browser centris menjadi servis centris
*Tool-tool yang lebih baik bersifat open source
 
* ''Discover'' – browse registry UDDI untuk mencari Web Service yang sudah ada untuk integrasi.
'''MAKALAH TUGAS BESAR
* ''Create or Transform'' –buat Web Service dari project-project yang ada.
MATA KULIAH PEMROGRAMAN JARINGAN
* ''Build'' – satukan artifak yang ada sebagai SOAP dan service HTTP dan jabarkan pada WSDL.
* ''Deploy'' – Aplikasikan menjadi server aplikasi Websphere atau Tomcat.
* ''Test'' – Uji coba web service baik local (stand alone computer) atau secara remote.
* ''Develop'' – Bangun contoh aplikasi untuk memberi masukkan dalam membuat aplikasi klien Web service
* ''Publish'' – publikasikan / upload Web Service pada bisnis registri UDDI.
 
=== Implementasi ===
Umumnya layanan ini digunakan oleh organisasi yang besar dan kompleks untuk metode pertukaran datanya. Atau bisa juga oleh programmer yang "malas" dalam artian lebih senang menulis sedikit code daripada banyak baris untuk hasil yang sama, lebih senang bekerjasama daripada membangun aplikasi sendirian {{fact}}.
 
Layanan Web paling sesuai untuk
“WEB SERVICE”
* Government to Government (G2G)
* Business to Business B2B (B2B
 
== Lihat pula ==
* [[SOAP]]
* [[WSDL]]
 
== Referensi ==
DI SUSUN OLEH :
{{Reflist|30em}}
JULIANUS TATO 613020005
ABRAM DERISKO 613020012
SYAFUAN 613020095
BAGA GUSDIANA 613020105
REZQY CHANDRA 613030010
MOCH SUPRIADI 613030031
 
== Pranala luar ==
{{Commons category|Web services}}
{{Wikiversity}}
 
* [http://soapatterns.org/candidate_patterns/messaging_design_pattern Pola desain perpesanan] {{Webarchive|url=https://web.archive.org/web/20181009132036/http://soapatterns.org/candidate_patterns/messaging_design_pattern|date=2018-10-09}} documentation at [http://www.soapatterns.org/ SOA Patterns]
* [https://www.w3.org/2002/ws/ Aktivitas layanan Web] halaman pada [[W3C]]
* [https://www.w3.org/TR/ws-arch/ Arsitektur layanan Web], Catatan Kelompok Kerja W3C (11 Februari 2004)
* [http://www2008.org/papers/pdf/p795-almasriA.pdf Menyelidiki Layanan Web di World Wide Web], analisis yang dipresentasikan pada konferensi [[International World Wide Web Conference|WWW2008]].
* [https://csrc.nist.gov/publications/detail/sp/800-95/final Panduan untuk mengamankan layanan Web] (SP 800-95) pada [[National Institute of Standards and Technology|NIST]].{{Authority control}}
 
[[Kategori:Layanan web| ]]
JURUSAN TEKNIK INFORMATIKA
SEKOLAH TINGGI TEKNOLOGI TELKOM
BANDUNG
2005'''