BAB II
TINJAUAN PUSTAKA
2.1. TCP/IP
Salah satu elemen penting dari teknologi internet dan elemen yang membuat intranet begitu mudah untuk di-set up¬ dan dipergunakan yaitu protokol jaringan yang memberikan pondasi ke internet. Protokol ini dikenal sebagai TCP/IP dan merupakan bagian besar dari keluarga protokol, dimana nama tersebut diambil dari dua bagian yaitu Transmission Protocol dan Internet Protocol.
Hingga saat ini TCP/IP terus berkembang. Salah satu aspek penting yang mendukung pertumbuhan ini yaitu berkait dengan pengembangan sertifikasi dan testing program yang dijalankan oleh pemerintah Amerika Serikat. Departemen Pertahanan Amerika Serikat mendefinisikan protokol jaringan TCP/IP dengan beberapa tujuan utama yaitu :
1. TCP/IP haruslah independen pada hardware maupun software manufaktur.
2. TCP/IP harus memiliki built-in failure recovery. Hal ini karena pada awalnya dipergunakan di militer, sehingga protokol tersebut harus tetap mampu beroperasi meskipun sebagian besar jaringan telah menghilang.
3. TCP/IP harus mampu mengatasi tingkat error yang tinggi dan harus tetap berjalan stabil.
4. TCP/IP haruslah efisien dan data yang melewatinya harus tetap kecil. Mayoritas paket data pada protokol IP sangat sederhana, memiliki header sebesar 20 byte, yang mana hal ini sangat meningkatkan performansi bila dibandingkan dengan jaringan yang lain.
5. TCP/IP harus membolehkan penambahan jaringan baru tanpa ada gangguan terhadap service-nya.
Maka sebagai hasilnya, TCP/IP dikembangkan dengan tiap komponen yang memiliki performa yang unik dan memiliki fungsi vital yang mengatasi semua masalah dalam memindahkan data antar mesin melalui jaringan dengan cara yang elegan dan efisien.
2.1.1. Keunggulan TCP/IP
TCP/IP tidak tumbuh menjadi besar begitu saja dengan sendirinya, atau karena Departemen Pertahanan (DoD) Amerika Serikat memandatkan penggunaannya. Satu hal yang paling penting dan menjadi kunci sukses digunakannya TCP/IP pada Internet adalah, ia muncul pada waktu yang tepat dan merupakan protokol pertama yang dapat memenuhi kebutuhan komunikasi data pada saat itu. Selain itu, sebagai protokol yang dirancang untuk internetworking, TCP/IP jelas memiliki berbagai kelebihan yang membuat TCP/IP digunakan oleh kebanyakan komunitas pengguna jaringan. Keunggulan-keunggulan ini meliputi beberapa hal, antara lain :
Beberapa keuntungan penggunaan protokol jaringan TCP/IP :
1. TCP/IP dipublikasikan secara luas sebagai standar terbuka dan independen pada manufaktur hardware dan software.
2. TCP/IP dapat mengirimkan data antar komputer, meskipun komputer tersebut berjalan dengan sistem operasi yang berbeda.
3. TCP/IP terpisah dari hardware dan akan berjalan melalui Ethernet, Token Ring, atau jaringan X.25 dan bahkan melalui jaringan telepon dial-up.
4. TCP/IP merupakan protokol yang routable, dimana protokol ini dapat mengirim diagram
2.1.2. Arsitektur dan Protokol TCP/IP
Dalam arsitektur jaringan komputer, kita mengenal adanya lapisan-lapisan (layer) yang memiliki tugas spesifik. Setiap lapisan memiliki protokol tersendiri sesuai fungsi yang telah didefinisikan bagi lapisan tersebut. International Standard Organization (ISO) telah mengeluarkan suatu standard untuk arsitektur jaringan komputer yang dikenal dengan nama Open System Interconnection (OSI). Standar ini terdiri dari 7 lapisan protokol yang menjalankan fungsi komunikasi antara dua komputer. Namun dalam jaringan TCP/IP, hanya didefinisikan 5 lapisan seperti yang dapat kita lihat pada gambar berikut :
Gambar 2.1. Perbandingan OSI Layer dengan TCP/IP Layer
Perbedaan ini tidaklah bersifat ekstrim, karena sebenarnya fungsi fungsi beberapa lapisan pada suatu sistem telah tercakup dalam satu lapisan pada sistem yang lain. Berikut merupakan definisi lapisan pada TCP/IP :
1. Lapisan Fisik (Physical Layer) merupakan lapisan terbawah yang mendefinisikan besaran fisik seperti media komunikasi, tegangan/arus, interface RS-232 dsb. Lapisan ini dapat berbeda-beda pada setiap jaringan, sesuai dengan media komunikasi yang dipergunakan. Kelebihan jaringan TCP/IP terutama adalah karena sifatnya yang sangat fleksibel dalam implementasi, yakni dapat mengintegraikan berbagai jaringan dengan media fisik yang berbeda-beda.
2. Lapisan kedua adalah Network Access Layer (identik dengan Lapisan Data Link layer pada OSI). Pada lapisan ini, didefinisikan bagaimana penyaluran data dalam bentuk frame-frame data pada media fisik yang digunakan secara handal. Lapisan ini biasanya memberikan servis untuk deteksi dan koreksi kesalahan dari data yang ditransmisikan. Beberapa contoh protokol yang digunakan pada lapisan ini adalah X.25 jaringan publik, Ethernet untuk jaringan Ethernet, AX.25 untuk jaringan Paket Radio dsb.
3. Lapisan ketiga adalah Internet Layer (Network Layer pada OSI). Jika lapisan pertama dan kedua hanya mengatur komunikasi antara dua pihak secara langsung, maka pada lapisan ini didefinisikan pula bagaimana hubungan dapat terjadi antara dua pihak yang berada pada jaringan yang berbeda. Pada jaringan Internet yang terdiri atas puluhan juta host dan ratusan ribu jaringan lokal, lapisan ini bertugas untuk menjamin agar suatu paket yang dikirimkan dapat menemukan tujuannya dimana pun berada. Oleh karena itu, lapisan ini memiliki peranan penting terutama dalam mewujudkan internetworking yang meliputi wilayah luas (worldwide Internet).
2.1.3. Mekanisme Transfer Data
Lapisan-lapisan dan protokol yang ada di dalamnya pada arsitektur jaringan TCP/IP menggambarkan fungsi-fungsi dalam komunikasi antara dua buah komputer. Setiap lapisan menerima data dari lapisan di atas atau dibawahnya, memproses data sesuai fungsi protokol yang ada padanya dan meneruskannya ke lapisan berikutnya. Apakah yang terjadi ketika dua komputer berkomunikasi? Untuk lebih memahami proses yang terjadi ketika dua buah komputer berhubungan, mari kita lihat gambar berikut :
Gambar 2.2. Proses Tranfer Data
Proses transfer datanya sebagai berikut :
1. Terjadi aliran data antara pengirim dan penerima melalui lapisan-lapisan tadi. Pada pengirim, aliran data adalah dari atas ke bawah. Data dari user maupun suatu aplikasi dikirimkan ke Lapisan Transport dalam bentuk paket-paket dengan panjang tertentu. Protokol menambahkan sejumlah bit pada setiap paket sebagai header yang berisi informasi mengenai urutan segmentasi untuk menjaga integritas data dan bit-bit pariti untuk deteksi dan koreksi kesalahan.
2. Dari Lapisan Transport, data yang telah diberi header tersebut diteruskan ke Lapisan Network/Internet. Protokol pada lapisan ini juga menambahkan header yang berisi informasi alamat tujuan, alamat pengirim dan informasi lain yang dibutuhkan untuk melakukan routing. Selain itu, diambil pula keputusan routing, yakni ke network yang mana (lewat interface mana) data akan dikirimkan, jika terdapat lebih dari satu interface pada host. Pada lapisan ini juga dapat terjadi segmentasi data, karena panjang paket yang akan dikirimkan harus disesuaikan dengan kondisi media komunikasi pada network yang akan dilalui.
3. Setelah itu, data diteruskan ke Lapisan Network Access (Data Link). Lapisan ini mengolah data menjadi frame-frame, menambahkan informasi keandalan dan address pada level link. Protokol pada lapisan ini menyiapkan data dalam bentuk yang paling sesuai untuk dikirimkan melalui media komunikasi tertentu.
4. Setelah itu, barulah Lapisan Fisik mengirimkan data dalam bentuk besaran-besaran listrik/fisik seperti tegangan, arus, gelombang radio maupun cahaya, sesuai media yang digunakan.
5. Pada penerima, proses pengolahan data berlangsung dari lapisan paling bawah ke lapisan paling atas. Sinyal yang diterima pada lapisan fisik akan diubah dalam bentuk data (logic). Protokol pada link layer akan memeriksa integritas data pada level link dan mencopot header yang ditambahkan protokol link layer pada pengirim, jika tidak ada kesalahan pada data.
6. Selanjutnya data diteruskan ke lapisan network. Pada lapisan ini, address tujuan dari paket data yang diterima akan diperiksa. Jika address tujuan merupakan address host yang bersangkutan, maka header lapisan network akan dicopot dan data akan diteruskan ke lapisan yang diatasnya. Namun jika tidak, data akan di forward ke network tujuannya, sesuai dengan informasi routing yang dimiliki.
7. Pada lapisan Transport, kebenaran data akan diperiksa kembali, menggunakan informasi header yang dikirimkan oleh pengirim. Jika tidak ada kesalahan, paket-paket data yang diterima akan disusun kembali sesuai urutannya pada saat akan dikirim dan diteruskan ke lapisan aplikasi pada penerima.
8. Proses yang dilakukan tiap lapisan tersebut dikenal dengan istilah enkapsulasi data. Enkapsulasi ini sifatnya transparan. Maksudnya, suatu lapisan tidak perlu mengetahui ada berapa lapisan yang ada diatasnya maupun dibawahnya. Masing-masing hanya mengerjakan tugasnya. Pada pengirim, tugas ini adalah menerima data dari lapisan diatasnya, mengolah data tersebut sesuai dengan fungsi protokol, menambahkan header protokol dan meneruskan ke lapisan di bawahnya.
9. Pada penerima, tugas ini adalah menerima data dari lapisan di bawahnya, mengolah data sesuai fungsi protokol, memisahkan header protokol tersebut dan meneruskan ke lapisan di atasnya.
2.2. Konsep IP Address V4
IP Address terdiri dari 32 bit, yang biasanya dalam penulisan dibagi atas 4 segmen Muhamad Haekal(8 bit tiap segmen). Variasi address yang dapat digunakan host dalam jaringan TCP/IP, jika direpresentasikan dalam bilangan biner adalah dari 00000000.00000000.00000000.00000000 sampai dengan 11111111.11111111.11111111.11111111. Jadi, jaringan TCP/IP secara teoritis mampu mengintegrasikan sebanyak 232 (4 milyar lebih) komputer. Pada kenyataannya ada address-address khusus yang dipakai untuk keperluan tertentu, sehingga tidak boleh dipakai oleh host.
2.2.1. Pembagian Kelas Address
IP Address yang berjumlah 4 milyar lebih itu diklasifikasikan menjadi beberapa kelas tertentu. Pembagian kelas-kelas ini ditujukan untuk mempermudah alokasi IP Address, baik untuk host/jaringan tertentu maupun untuk keperluan tertentu. Untuk memudahkan pembacaan dan penulisan, IP address biasanya direpresentasikan dalam bilangan desimal. Jadi, range address di atas dapat diubah menjadi address 0.0.0.0 sampai address 255.255.255.255. Nilai desimal dari IP Address inilah yang dikenal dalam pemakaian sehari-hari. Beberapa contoh IP address adalah:
• 44.132.1.20
• 167.205.9.35
Ilustrasi IP address dalam desimal dan biner dapat dilihat pada gambar berikut :
Desimal 167 205 206 100
Biner 10100111 11001101 11001110 01100100
Tabel 2.1. IP Address dalam Desimal dan Biner
IP Address dapat dipisahkan menjadi 2 bagian, yakni bagian network (bit-bit network/network bit) dan bagian host (bit-bit host/host bit). Network bit berperan dalam identifikasi suatu network dari network yang lain, sedangkan host bit berperan dalam identifikasi host dalam suatu network. Jadi, seluruh host yang tersambung dalam jaringan yang sama memiliki network bit yang sama. Sebagian dari bit-bit bagian awal dari IP Address merupakan network bit/network number, sedangkan sisanya untuk host. Garis pemisah antara bagian network dan host tidak tetap, bergantung kepada kelas network. Ada 3 kelas address yang utama dalam TCP/IP, yakni kelas A, kelas B dan kelas C. Perangkat lunak Internet Protocol menentukan pembagian jenis kelas ini dengan menguji beberapa bit pertama dari IP Address. Penentuan kelas ini dilakukan dengan cara berikut :
Jika bit pertama dari IP Address adalah 0, address merupakan network kelas A. Bit ini dan 7 bit berikutnya (8 bit pertama) merupakan network bit sedangkan 24 bit terakhir merupakan host bit. Dengan demikian hanya ada 128 network kelas A, yakni dari nomor 0.xxx.xxx.xxx sampai 127.xxx.xxx.xxx, tetapi setiap network dapat menampung lebih dari 16 juta host (256). Sebagai ilustrasi dapat dilihat pada gambar berikut :
Gambar 2.4. Struktur IP Address Kelas A
Jika 2 bit pertama dari IP Address adalah 10, address merupakan network kelas B. Dua bit ini dan 14 bit berikutnya (16 bit pertama) merupakan network bit sedangkan 16 bit terakhir merupakan host bit. Dengan demikian terdapat lebih dari 16 ribu network kelas B (64 x 256), yakni dari network 127.2.xxx.xxx - 191.255.xxx.xxx. Setiap network kelas B mampu menampung lebih dari 65 ribu host (2562). Ilustrasinya dapat dilihat pada gambar berikut.
Gambar 2.5. Struktur IP Address Kelas B
Jika 3 bit pertama dari IP Address adalah 110, address merupakan network kelas C. Tiga bit ini dan 21 bit berikutnya (24 bit pertama) merupakan network bit sedangkan 8 bit terakhir merupakan host bit. Dengan demikian terdapat lebih dari 2 juta network kelas C (32 x 256 x 256), yakni dari nomor 192.0.0.xxx sampai 223.255.255.xxx. Setiap network kelas C hanya mampu menampung sekitar 256 host. Ilustrasinya dapat dilihat pada gambar berikut :
Gambar 2.6. Struktur IP Adress kelas C
Kelas berikutnya dari IP Address adalah kelas D dan E. Kelas D merupakan IP Address yang dialokasikan sebagai multicast address. Alokasi nomor untuk address multicast ini adalah dari 224.0.0.0 sampai dengan 239.255.255.255. Kelas address ini akan dibicarakan lebih dalam pada bagian berikut, karena kelas inilah yang digunakan sebagai address pada multicast backbone untuk aplikasi video conference. Sedangkan kelas E merupakan sisanya (240.0.0.0 sampai 255.255.255.255) yang dialokasikan untuk eksperimen. Sebelum membahas multicast address, akan dibahas lebih dahulu beberapa address khusus untuk tujuan tertentu.
2.2.2. Address Khusus
Selain address yang dipergunakan untuk pengenal host, ada beberapa jenis address yang digunakan untuk keperluan khusus dan tidak boleh digunakan untuk pengenal host. Address tersebut adalah:
1. Network Address
Network Address digunakan untuk mengenali suatu network pada jaringan Internet. Misalkan untuk host dengan IP Address kelas B 167.205.9.35. Tanpa memakai subnet, network address dari host ini adalah 167.205.0.0. Address ini didapat dengan membuat seluruh bit host pada 2 segmen terakhir menjadi 0. Tujuannya adalah untuk menyederhanakan informasi routing pada Internet. Router cukup melihat network address (167.205) untuk menentukan ke router mana datagram tersebut harus dikirimkan.
Contoh untuk kelas C, network address untuk IP address 202.152.1.250 adalah 202.152.1.0. Analogi yang baik untuk menjelaskan fungsi network address ini adalah dalam pengolahan surat pada kantor pos. Petugas penyortir surat pada kantor pos cukup melihat kota tujuan pada alamat surat (tidak perlu membaca seluruh alamat) untuk menentukan jalur mana yang harus ditempuh surat tersebut. Pekerjaan “routing” surat-surat menjadi lebih cepat. Demikian juga halnya dengan router di Internet pada saat melakukan routing atas datagram.
3. Broadcast Address
Address ini digunakan untuk mengirim/menerima informasi yang harus diketahui oleh seluruh host yang ada pada suatu network. Seperti diketahui, setiap datagram IP memiliki header alamat tujuan berupa IP Address dari host yang akan dituju oleh datagram tersebut. Dengan adanya alamat ini, maka hanya host tujuan saja yang memproses datagram tersebut, sedangkan host lain akan mengabaikannya. Bagaimana jika suatu host ingin mengirim datagram kepada seluruh host yang ada pada networknya ? Tidak efisien jika ia harus membuat replikasi datagram sebanyak jumlah host tujuan. Pemakaian bandwidth akan meningkat dan beban kerja host pengirim bertambah, padahal isi datagram-datagram tersebut sama. Oleh karena itu, dibuat konsep broadcast address. Host cukup mengirim ke alamat broadcast, maka seluruh host yang ada pada network akan menerima datagram tersebut. Konsekuensinya, seluruh host pada network yang sama harus memiliki broadcast address Muhamad Haekal yang sama dan address tersebut tidak boleh digunakan sebagai IP Address untuk host tertentu.
Jadi, sebenarnya setiap host memiliki 2 address untuk menerima datagram : pertama adalah IP Addressnya yang bersifat unik dan kedua adalah broadcast address pada network tempat host tersebut berada Broadcast address diperoleh dengan membuat bit-bit host pada IP Address menjadi 1. Jadi, untuk host dengan IP address 167.205.9.35 atau 167.205.240.2, broadcast addressnya adalah 167.205.255.255 (2 segmen terakhir dari IP Address tersebut dibuat berharga 11111111.11111111, sehingga secara desimal terbaca 255.255). Jenis informasi yang di-broadcast umumnya adalah informasi routing.
4. . Multicast Address
Multicast Address. Kelas address A, B dan C adalah address yang digunakan untuk komunikasi antar host, yang menggunakan datagram-datagram unicast. Artinya, datagram/paket memiliki address tujuan berupa satu host tertentu. Hanya host yang memiliki IP address sama dengan destination address pada datagram yang akan menerima datagram tersebut, sedangkan host lain akan mengabaikannya. Jika datagram ditujukan untuk seluruh host pada suatu jaringan, maka field address tujuan ini akan berisi alamat broadcast dari jaringan yang bersangkutan. Dari dua mode pengiriman ini (unicast dan broadcast), muncul pula mode ke tiga. Diperlukan suatu mode khusus jika suatu host ingin berkomunikasi dengan beberapa host sekaligus (host group), dengan hanya mengirimkan satu datagram saja. Namun berbeda dengan mode broadcast, hanya host-host yang tergabung dalam suatu group saja yang akan menerima datagram ini, sedangkan host lain tidak akan terpengaruh. Oleh karena itu, dikenalkan konsep multicast. Pada konsep ini, setiap group yang menjalankan aplikasi bersama mendapatkan satu multicast address.
Untuk keperluan multicast, sejumlah IP Address dialokasikan sebagai multicast address. Jika struktur IP Address mengikuti bentuk seperti dibawah ini
1110xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx
(bentuk decimal 224.0.0.0 sampai 239.255.255.255), maka IP Address merupakan multicast address. Alokasi ini ditujukan untuk keperluan group, bukan untuk host seperti pada kelas A, B dan C. Anggota group adalah host-host yang ingin bergabung dalam group tersebut. Anggota ini juga tidak terbatas pada jaringan di satu subnet, namun bisa mencapai seluruh dunia. Karena menyerupai suatu backbone, maka jaringan muticast ini dikenal pula sebagai Multicast Backbone (Mbone).
2.2.3. Subnetting
Untuk beberapa alasan yang menyangkut efisiensi IP Address, mengatasi masalah topologi network dan organisasi, network administrator biasanya melakukan subnetting. Esensi dari subnetting adalah “memindahkan” garis pemisah antara bagian network dan bagian host dari suatu IP Address. Beberapa bit dari bagian host dialokasikan menjadi bit tambahan pada bagian network. Address satu network menurut struktur baku dipecah menjadi beberapa subnetwork. Cara ini menciptakan sejumlah network tambahan, tetapi mengurangi jumlah maksimum host yang ada dalam tiap network tersebut.
Subnetting juga dilakukan untuk mengatasi perbedaan hardware dan media fisik yang digunakan dalam suatu network. Router IP dapat mengintegrasikan berbagai network dengan media fisik yang berbeda hanya jika setiap network memiliki address network yang unik. Selain itu, dengan subnetting, seorang Network Administrator dapat mendelegasikan pengaturan host address seluruh departemen dari suatu perusahaan besar kepada setiap departemen, untuk memudahkannya dalam mengatur keseluruhan network.
Suatu subnet didefinisikan dengan mengimplementasikan masking bit (subnet mask) kepada IP Address. Struktur subnet mask sama dengan struktur IP Address, yakni terdiri dari 32 bit yang dibagi atas 4 segmen. Bit-bit dari IP Address yang “ditutupi” (masking) oleh bit-bit subnet mask yang aktif dan bersesuaian akan diinterpretasikan sebagai network bit. Bit 1 pada subnet mask berarti mengaktifkan masking (on), sedangkan bit 0 tidak aktif (off). Sebagai contoh kasus, mari kita ambil satu IP Address kelas A dengan nomor 44.132.1.20. Ilustrasinya dapat dilihat pada gambar di bawah ini:
Gambar 2.7. Subnetting pada kelas A
Dengan aturan standard, nomor network IP Address ini adalah 44 dan nomor host adalah 132.1.20. Network tersebut dapat menampung maksimum lebih dari 16 juta host yang terhubung langsung. Misalkan pada address ini akan akan diimplementasikan subnet mask sebanyak 16 bit 255.255.0.0. (Hexa = FF.FF.00.00 atau Biner = 11111111.11111111.00000000.00000000). Perhatikan bahwa pada 16 bit pertama dari subnet mask tersebut berharga 1, sedangkan 16 bit berikutnya 0. Dengan demikian, 16 bit pertama dari suatu IP Address yang dikenakan subnet mask tersebut akan dianggap sebagai network bit. Nomor network akan berubah menjadi 44.132 dan nomor host menjadi 1.20. Kapasitas maksimum host yang langsung terhubung pada network menjadi sekitar 65 ribu host.
Subnet mask di atas identik dengan standard IP Address kelas B. Dengan menerapkan subnet mask tersebut pada satu network kelas A, dapat dibuat 256 network baru dengan kapasitas masing-masing subnet setara network kelas B. Penerapan subnet yang lebih jauh seperti 255.255.255.0 (24 bit) pada kelas A akan menghasilkan jumlah network yang lebih besar (lebih dari 65 ribu network) dengan kapasitas masing-masing subnet sebesar 256 host. Network kelas C juga dapat dibagi-bagi lagi menjadi beberapa subnet dengan menerapkan subnet mask yang lebih tinggi seperti untuk 25 bit (255.255.255.128), 26 bit (255.255.255.192), 27 bit (255.255.255.224) dan seterusnya.
Subnetting dilakukan pada saat konfigurasi interface. Penerapan subnet mask pada IP Address akan mendefinisikan 2 buah address baru, yakni Network Address dan Broadcast Address. Network address didefinisikan dengan menset seluruh bit host berharga 0, sedangkan broadcast address dengan menset bit host berharga 1. Seperti yang telah dijelasakan pada bagian sebelumnya, network address adalah alamat network yang berguna pada informasi routing. Suatu host yang tidak perlu mengetahui address seluruh host yang ada pada network yang lain. Informasi yang dibutuhkannya hanyalah address dari network yang akan dihubungi serta gateway untuk mencapai network tersebut. Ilustrasi mengenai subnetting, network address dan broadcast address dapat dilihat pada tabel di bawah ini. Dari tabel dapat disimpulkan bagaimana nomor network standard dari suatu IP Address diubah menjadi nomor subnet/subnet address melalui subnetting.
Subnetting hanya berlaku pada network lokal. Bagi network di luar network lokal, nomor network yang dikenali tetap nomor network standard menurut kelas IP Address.
2.3 Web service
2.3.1 Definisi Web service
Web service merupakan sebuah aplikasi logika program yang memanfaatkan protokol internet standard. Web service mengkombinasikan komponen pengembangan terbaik dan web. Seperti halnya sebuah komponen, web service direpresentasikan sebagai sebuah kotak hitam dimana dapat dimanfaatkan tanpa harus takut terhadap hasil implementasinya. Berbeda dengan teknologi komponen yang lain, sebuah web service tidak dapat diakses melalui object model-specific protocol, seperti halnya DCOM (Distributed Component Object Model), RMI (Remote Method Invocation), atau IIOP (Internet Inter-ORB Protocol). Sebaliknya, web service diakses melalui protokol web dan format data yang dipergunakan berupa HTTP dan XML. Lebih jauh lagi, web service dapat disebut sebagai penerima pesan dan pemroses pesan. Konsumen sebuah web service dapat melakukan implementasi pada berbagai jenis platform dan bahasa pemrograman, sejauh mampu merancang dan mengkonsumsi pesan yang telah didefinisikan untuk interface web service.
Terdapat beberapa spesifikasi dan teknologi kunci pada web service, antara lain :
1. Sebuah cara standard untuk merepresentasikan data
2. Format pesan yang ekstensibel.
3. Sebuah bahasa yang mampu mendeskripsikan service.
4. Sebuah cara untuk menemukan dimana service berada pada sebuah web site.
5. Sebuah cara untuk menemukan service provider.
XML menjadi pilihan terbaik sebagai cara untuk merepresentasikan data. Umumnya spesifikasi sebuah web service mempergunakan XML untuk representasi data, dengan skema XML untuk mendeskripsikan tipe data.
SOAP didefinisikan sebagai protokol untuk melakukan proses pertukaran informasi. Bagian tertentu dari spesifikasi SOAP mendefinisikan sebuah format pesan SOAP, dimana tata cara tersebut dipergunakan untuk melakukan RPC (Remote Procedure Call) dan proses binding ke protokol HTTP. Dimasa yang akan datang pesan SOAP akan menjadi sebuah standarisasi pesan untuk berkomunikasi dengan web service.
2.3.2. Arsitektur Web service
Dengan teknologi web service, sumber informasi menjadi sebuah komponen yang dapat digunakan, dirubah, dan digabungkan dalam suatu aplikasi intranet dari aplikasi yang sederhana hingga aplikasi yang kompleks. Web service ini dibangun berdasarkan arsitektur yang diilustrasikan sebagai tumpukan layer, atau format narasi.
Setiap vendor, standard organization, atau perusahaan marketing memiliki definisi tersendiri tentang web service. Sebagai contoh, Gartner mendefinisikan web service sebagai komponen software yang loosey coupled yang berinteraksi dengan yang lain secara dinamis melalui teknologi standard internet. Forrester Research mendefinisikan hal yang berbeda untuk web service, yaitu sebuah koneksi otomatis antara manusia, sistem, dan aplikasi yang mengekspose elemen fungsional bisnis sebagai sebuah software service sehingga menciptakan sebuah business value yang baru.
Dari definisi tentang web service yang berbeda, maka muncullah banyak varietas arsitektur web service. Pada level basic, web service dapat dikatakan sebagai arsitektur client/server yang universal.
2.3.3. SOAP
SOAP merupakan protokol komunikasi untuk XML Web service. SOAP pada awalnya dirancang untuk mendukung mekanisme RPC melalui HTTP. Namun saat ini SOAP tidak hanya beorientasi pada operasi RPC tetapi juga pada operasi yang berorientasi pada pesan. Selain itu SOAP dapat dikatakan sebagai bentuk transport protocol yang independent.
Framework pesan SOAP terdiri dari 3 bagian :
1. Spesifikasi struktur pesan Spesifikasi standard encoding.
2. Spesifikasi mekanisme RPC.
Berikut akan dijelaskan secara terperinci mengenai framework pesan SOAP.
a) Struktur Pesan
Pesan SOAP merupakan dokumen XML yang terdiri dari envelope yang berisi header dan body. Struktur pesan digambarkan pada gambar 2.8.
Gambar 2.8 Struktur Pesan SOAP
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<SOAP-ENV:Header>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Gambar 2.9. Kerangka Pesan SOAP dimana tidak terdapat informasi didalamnya.
Elemen <SOAP-ENV:Envelope> merupakan root elemen dari pesan SOAP. Root elemen berisi spefisikasi global pesan, layaknya sebuah parameter aturan untuk melakukan encoding pesan. <SOAP-ENV:Header> merupakan elemen yang sifatnya opsional yang memberikan mekanisme kepada partisipan untuk menambahkan informasi tentang pemanggilan (call) pesan SOAP. Umumnya berisi informasi konstekstual yang berhubungan dengan keamanan, transaksi, pembayaran, dan sebagainya. Elemen <SOAP-ENV:Body> disebut sebagai mandatory, dimana isi pesan yang sebenarnya berada. Pada bagian ini paramater metode dilakukan encoding dan packaged. Terdapat juga sebuah pesan SOAP bertipe fault, pesan tipe ini dipergunakan untuk mengindikasikan ketika request terjadi kegagalan untuk beberapa alasan, seperti halnya tidak dikenalinya field header, gagal melakukan autentikasi, atau kegagalan yang lain ketika melakukan pemrosesan pesan.
b. Encoding Rules
SOAP telah mendefinisikan rules untuk melakukan encoding struktur data yang kompleks seperti array dan strutktur. Berikut merupakan contoh string bertipe array yang di-encode-kan pada pesan SOAP.
<SOAP-ENC:Array SOAP-ENC:arrayType="xsd:string[4]">
<SOAP-ENC:string>Item 1</SOAP-ENC:string>
<SOAP-ENC:string>Item 2</SOAP-ENC:string>
<SOAP-ENC:string>Item 3</SOAP-ENC:string>
</SOAP-ENC:Array>
Gambar 2.10. Kerangka Pesan SOAP dimana terdapat
informasi didalamnya.
Sebagai tambahan, juga SOAP telah mengadopsi sejumlah tipe pada skema XML.
c. Mekanisme RPC SOAP
Rules encoding pesan SOAP juga menyediakan mekanisme marshaling dan unmarshaling yang dibutuhkan untuk mendukung operasi yang berorientasi pada RPC. Mekanisme RPC pada SOAP yaitu membolehkan aplikasi untuk memakai fungsi yang nantinya diterima melalui pesan SOAP.
SOAP mespesifikasikan sebuah mekanisme RPC (Remote Procedure Call) yang membolehkan aplikasi untuk memakai fungsi pada webservice dimana hasilnya akan diperoleh dalam pesan SOAP. Argumen pada fungsi diimplementasikan mempergunakan aturan encoding yang standar sebagai bagian dari tubuh (body) pesan SOAP. Sebagai contoh, berikut merupakan metode C#: public int GetValue( int Arg1, int Arg2 ); dapat dirangkai menjadi sebuah pesan SOAP, seperti berikut:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3c.org/2001/XMLSchema/"/>
<SOAP-ENV:Body>
<GetValue>
<Arg1 xsd:type="xsd:int"></Arg1>
<Arg2 xsd:type="xsd:int"></Arg2>
</GetValue>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Gambar 2.11. Contoh Pesan SOAP
Sebagai catatan nama metode GetValue di-encode-kan sebagai elemen anak dari elemen <SOAP-ENV:Body>.
2.4. Web Service Security
2.4.1. Gambaran Umum
Mekanisme kerja web service telah menjadi sebuah model solusi yang tepat dalam melakukan integrasi aplikasi. Namun dengan mudahnya sebuah pesan SOAP XML yang dipergunakan untuk proses pertukaran dapat dimanfaatkan oleh berbagai macam aplikasi, sehingga web service perlu untuk mengimplementasikan sebuah model sistem keamanan.
Beberapa model sistem keamanan yang dapat diterapkan pada web service tergantung pada letak dimana kita akan mengimplementasikan model sistem keamanan tersebut. Jika kita menginginkan enkripsi pada saat melakukan proses pertukaran data, kita dapat mempergunakan SSL (Secure Socket Layer) atau VPN (Virtual Private Network) untuk menjaga bit-bit data tersebut aman. Untuk proses autentifikasi, dapat dipergunakan Muhamad Haekal HTTP Basic atau Digest Authentication untuk mengetahui client yang melakukan request pada web service. Kedua metode sistem keamanan tersebut dapat melakukan penyembunyian data dari eavesdropper dan identifikasi terhadap caller. Namun kedua metode tersebut tidak dapat melakukan beberapa hal sebagai berikut :
1. melakukan parsing SOAP jika request valid.
2. melakukan autentikasi akses pada level metode web (dapat diautentikasi jika berada pada level web service).
3. menghentikan layanan jika diketahui request invalid.
Spesifikasi web sevice security memberikan sebuah mekanisme untuk membantu developer web service untuk mengamankan pertukaran pesan SOAP. Terutama untuk memberikan sebuah quality of protection melalui integritas pesan, kepentingan pesan, dan sebuah pesan autentikasi pada pesan SOAP. Mekanisme dasar ini dapat dikombinasikan dalam beberapa cara dalam mengakomodasi pengembangan berbagai model sistem keamanan web service dengan berbagai varietas teknologi kriptografi.
Web service security juga menyediakan sebuah general-purpose mechanism untuk menggabungkan security token pada pesan. Web service security dirancang menjadi sangat ekstensibel (mendukung berbagai macam format security token), sehingga tidak ada spesifikasi khusus security token yang dibutuhkan web service security untuk mengakomodasi varietas mekanisme autentikasi dan autorisasi.
Web service security juga mendeskripsikan bagaimana melakukan encoding pada binary security token dan meletakan token tersebut pada pesan SOAP. Secara spesifik, web service security juga mendeskripsikan bagaimana melakukan encoding sertifikat X.509 dan tiket Kerberos. Hingga saat ini tiket Kerberos dan sertifikat X.509 dipergunakan oleh para developer untuk menambahkan mekanisme autentikasi pada berbagai aplikasi web. Dengan web service security, domain mekanisme dapat diperluas dengan mengikutsertakan informasi autentikasi didalam pesan SOAP.
Tidak ada komentar:
Posting Komentar
KOMENTAR DAN SARAN ANDA DIHARAPKAN DEMI MEMBANGUN BLOG INI !