Pemrograman Jaringan modern sekarang ini berbasis pada model client/serer. Pada sebagian besar kasus, serer biasanya mengirim data, sedangkan client menerimanya. Pembahasan tentang model Client/Serer tidak akan lepas dari konsep sistem terdistribusi. Sebab client/serer merupakan model dasar dari sistem terdistribusi. Pengertian !Sistem "erdistribusi# $A system in %hich hard%are or so&t%are components located at net%orked computers communicate and coordinate their actions only by message passing.$ 'Coulouris( )engan pembagian &ungsi untuk tiap komponen dalam suatu sistem, man&aatnya* + Berbagi resource + Berbagi beban ker,a + "idak membedakan plat&orm + -eningkatkan e&isiensi Ada dua organisasi yang menstandarisasi pemrograman ,aringan dan protokol di internet, yaitu * + .nternet /ngineering "ask 0orce 1./"02 * "CP/.P, -.-/, dan S-"P + 3orld 3ide 3eb Consortium 134C2 * 5""P, 5"-6, 75"-6, -ath-6, dan 7-6 )okumen+dokument ./"0 dipublikasikan sebagai .nternet dra&ts dan re8uests &or comments 1R0Cs2. R0Cs and .nternet dra&ts berasal dari in&ormational dokumen dari keinginan umum sampai spesi&ikasi detail dari .nternet protokol seperti 5""P. )okumen R0Cs dipublikasikan ,ika disetu,ui oleh .nternet /ngineering Steering 9roup 1./S92 dari ./"0. Semua dokumen standar ./"0 yang disetu,ui adalah R0Cs, tetapi tidak semua R0Cs adalah standar ./"0. R0Cs banyak terdapat di .nternet, misalnya http*//%%%.&a8s.org/r&c/ dan http*//%%%.iet&.org/r&c.html RFC Title Maturity level Requirement level Description R0C :;< R0C ;<; R0C ;== R0C ;>? S") > .nternet Protocol Standard Re8uired "he .P internet layer protocol. R0C :@A S") @ Bser )atagram Protocol Standard Recommended An unreliable, connectionless transport layer protocol. R0C :;4 S") : "ransmission Control Protocol Standard Recommended A reliable, connection+oriented, streaming transport layer protocol. R0C =A=< Simple -ail "rans&er Protocol Proposed standard Recommended "he application layer protocol by %hich one host trans&ers email to another host. "his standard doesnCt say anything about email user inter&acesD it coers the mechanism &or passing email &rom one computer to another. R0C A== S") << 0ormat o& /lectronic -ail -essages Standard Recommended "he basic syntaE &or ASC.. teEt email messages. -.-/ is designed to eEtend this to support binary data %hile ensuring that the messages trans&erred still con&orm to this standard. R0C A>F R0C A>> S") A "elnet Protocol Standard Recommended An application+layer remote login serice &or command+line enironments based around an abstract net%ork irtual terminal 1GH"2 and "CP. R0C ;>; S") ; 0ile "rans&er Protocol Standard Recommended An optionally authenticated, t%o+socket application layer protocol &or &ile trans&er that uses "CP. R0C ;:: Get%ork Ge%s "rans&er Protocol Proposed standard /lectie "he application layer protocol by %hich Bsenet ne%s is trans&erred &rom machine to machine oer "CPD used by both ne%s clients talking to ne%s serers and ne%s serers talking to each other. R0C <?4F R0C <?4> S") <4 )omain Game System Standard Recommended "he collection o& distributed so&t%are by %hich hostnames that human beings can remember, like %%%.oreilly.com, are translated into numbers that computers can understand, like <;A.<<=.=?A.<<. "his S") de&ines ho% domain name serers on di&&erent hosts communicate %ith each other using B)P. R0C <:4A Bni&orm Resource 6ocators Proposed standard /lectie 0ull BR6s like http*//%%%.amnesty.org/ and &tp*//&tp.ibiblio.org/pub/multimedia/chinese+ music/)reamIJ&IRedI-ansion/56-?F .5andkerchie&.au. R0C <A?A Relatie Bni&orm Resource 6ocators Proposed standard /lectie Partial BR6s like /,aa&a8/books/ and ../eEamples/?:/indeE.html used as alues o& the HREF attribute o& an 5"-6 A element. R0C <;4; S") >4 Post J&&ice Protocol, Hersion 4 Standard /lectie An application+layer protocol used by sporadically connected email clients such as /udora to retriee mail &rom a serer oer "CP. R0C <;F> 5yperteEt "rans&er Protocol 15""P <.?2 .n&ormational G/A Hersion <.? o& the application layer protocol used by %eb bro%sers talking to %eb serers oer "CPD deeloped by the 34C rather than the ./"0. R0C =?F> R0C =?F@ R0C =?F: -ultipurpose .nternet -ail /Etensions )ra&t standard /lectie A means o& encoding binary data and non+ ASC.. teEt &or transmission through .nternet email and other ASC..+oriented protocols. R0C =?@A 5yperteEt "rans&er Protocol 15""P <.<2 Proposed standard /lectie Hersion <.< o& the application layer protocol used by %eb bro%sers talking to %eb serers oer "CP. R0C =4:4 .P Hersion @ Proposed /lectie "he &ormat and meaning o& .P@ addresses. Addressing Architecture standard R0C =4;@ Bni&orm Resource .denti&iers 1BR.2* 9eneric SyntaE Proposed standard /lectie Similar to BR6s but cut a broader path. 0or instance, .SBG numbers may be BR.s een i& the book cannot be retrieed oer the .nternet. R0C 4>?< .nternet -essage Access Protocol Hersion Fre< Proposed standard /lectie A protocol &or remotely accessing a mailboE stored on a serer including do%nloading messages, deleting messages, and moing messages into and out o& di&&erent &olders. Sedangkan 34C hanya boleh terdiri dari perusahaan+perusahaan sa,a. ARSITEKTUR CLIENTSER!ER Client/Serer dapat diartikan sebagai kemampuan komputer untuk meminta layanan request data kepada komputer lain. Komputer yang meminta layanan disebut sebagai client, sedangkan yang menyediakan layanan disebut sebagai server. Pengertian lain, client melakukan permintaan suatu in&ormasi atau mengirim perintah ke serer. Serer akan menerima permintaan dan perintah client. Kemudian serer akan memproses memproses berdasarkan permintaan tersebut, dan mengembalikan kepada client sebagai hasil pemrosesan yang sudah dilakukan. Arsitektur -odel Client/Serer Client K 3eb Bro%ser -iddle%are P5P, JSP,ASP Serer K Apache, ..S Serice Re8uest Serices Response )atabase* -ySL6, Jracle )ata Re8uest Service Request adalah permintaan dari client baik berupa permintaan data maupun perintah ke serer. Service Response berupa balasan dari serer atas permintaan dari client berupa hasil proses. )ata yang diminta oleh client dapat diambil dari database pada sisi serer yang sering disebut database serer, seperi misalnya -ySL6, PostgreSL6, Jracle, atau SL6 Serer. Karakteristik Client+Serer* Client dan Serer merupakan item proses 1logika2 terpisah yang beker,a sama pada suatu ,aringan komputer untuk menger,akan suatu tugas Service * -enyediakan layanan terpisah yang berbeda Shared resource * Serer dapat melayani beberapa client pada saat yang sama dan mengatur pengaksesan resource Asymmetrical Protocol * antara client dan serer merupakan hubungan one+to+ many. Client memulai komunikasi dengan mengirim re8uest ke serer. Serer menunggu permintaan dari client. Kondisi tersebut ,uga memungkinkan komunikasi callback. Transparency Location * proses serer dapat ditempatkan pada mesin yang sama atau terpisah dengan proses client. Client/serer akan menyembunyikan lokasi serer dari client. Mix-and-match * tidak tergantung pada plat&orm Message-based-exchange * antara client dan serer berkomunikasi dengan mekanisme pertukaran message. Encapsulation o service * message memberitahu serer apa yang akan diker,akan Scalability * sistem C/S dapat dimekarkan baik ertikal maupun horisontal !ntegrity * kode dan data serer diatur secara terpusat, sedangkan pada client tetap pada komputer tersendiri -.))6/3AR/ So&t%are yang ber&ungsi sebagai lapisan konersi atau pener,emah. Juga sebagai konsolidator dan integrator. -iddle%are saat ini dikembangkan untuk memungkinkan satu aplikasi berkomunikasi dengan lainnya %alaupun ber,alan pada plat&orm yang berbeda. ARS."/K"BR SJ0"3AR/ + )ata, menyediakan struktur dan &ungsi untuk manipulasi in&ormasi, yang terdiri dari banyak ob,ek data. Sebagai contoh * relational )atabase, &ile gra&ik, &ile suara atau multimedia data stream + Processing, ter&okus pada pemrosesan ob,ek data, yang biasanya disebut sebagai middle%are. + Presentation, ter&okus untuk membuat data tersedia untuk user dan menangani interaksi dengan user. Ada dua leel * Bser inter&ace Presentation management, menyediakan operasi dasar untuk membangun dan mengontrol user inter&ace di ba%ah kontrol aplikasi. -eliputi * layanan tampilan, kontrol dialog dan AP.. Contoh * 7+3indo%s, -S 3indo%s KJGS/P )ASAR 3/B 5yperteEt "rans&er Protocol 15""P2 adalah standar untuk mende&iniskan bagaimana client berkomunikasi dengan serer dan bagaimana data ditransmisikan dari serer kembali ke client. <. BR. 1"niorm Resource !dentiier2 "niorm Resource !dentiier 1BR.2 adalah kumpulan karakter dalam sintaks tertentu yang mengidenti&ikasi sebuah resource. Resource bisa merupakan &ile di serer tapi ,uga bisa merupakan email address, berita, buku, host internet, dan lain+lain. Sintaks * scheme*scheme-specific-part scheme bisa berupa * data, &ile, http, &tp, gopher, mailto, ne%s, telnet. scheme-specific-part bisa berupa * //authority/pathMquery Contoh * http*//%%%.ukd%.ac.id/indeE.phpMaN<ObN= BR. ada = yaitu * + BRG 1Bni&orm Resource Game2 "u,uan BRG adalah menghandle resource yang dimirror pada banyak tempat yang berbeda atau telah dipindah dari satu tempat ke tempat lain. BRG mengidenti&ikasi resource itu sendiri, bukan tempat resourcenya. Jika terdapat sebuah BRG, sebuah program 0"P harus mengambil &ilenya dari mirror terdekat. Sebuah BRG memiliki &ormat sebagai berikut urn:namespace:resource_name. Sebuah namespace adalah nama dari koleksi dari resource. Sebuah resourceIname adalah nama dari resource dari sebuah koleksi. Contohnya, BRG dari urn*.SBG*<>@>;=FA>< mengindenti&ikasikan sebuah .SBG dengan identi&ikasi <>@>;=FA><. )an mengacu pada sebuah buku misalnya bernama * Jaa Get%ork Programming. -asing+masing sintaks tergantung pada resourceIname..SBG namespace terdiri dari <? atau <4 karakter, semuanya adalah digitPdengan sebuah aturan baha%a karakter terakhir berupa huru& * 7 1baik huru& besar / kecil2. + BR6 1Bni&orm Resource 6ocator2 * penun,uk ke suatu resource di .nternet pada lokasi tertentu, misal* http*//%%%.oreilly.com/catalog/,aanp4/ BR6 ada dua macam * Absolute BR6 * contoh Qimg srcN#http*//%%%.ukd%.ac.id/ukd%.,pg#R Relatie BR6 * contoh Qimg srcN#images/ukd%.gi&#R =. 5"-6, S9-6, dan 7-6 5"-6 digunakan untuk mem&ormat dokumen %eb. 5"-6 digunakan untuk presentasi data dan menyediakan linking antar halaman. S9-6 adalah ide untuk mendeskripsikan sematik teks daripada penampilannya yang disebut ,uga Standard 9eneraliSed -arkup 6anguage. S9-6 ditemukan pada pertengahan tahun <;:?an oleh Charles 9old&arb, /d%ard -osher, dan Raymond 6orie di .B-. S9-6 merupakan standar .nternational Standards JrganiSation 1.SJ2, yaitu .SJ AA:;*<;A@. 7-6 adalah suatu bahasa Mar#up, yaitu bahasa yang berisikan kode+kode berupa tanda+tanda tertentu dengan aturan tertentu untuk mem&ormat dokumen teks dengan tag sendiri agar dapat dimengerti. 7-6 menyediakan &ormat untuk mendeskripsikan data terstruktur. 7-6 menyebabkan isi data mudah dimengerti dan memungkinkan pende&inisian kumpulan tag yang tidak terbatas. 4. -.-/ 1-ultipurpose .nternet -ail /Etensions2, R0C =?F>. -.-/ adalah standar untuk mengirim multipart, multimedia data melalui email di .nternet. )ata bisa berupa data biner, ASC.. atau bukan ASC... -.-/ digunakan untuk mendeskripsikan isi &ile sehingga so&t%are client dapat mengetahui perbedaan antara data. Contoh * teEt/html, teEt/css, image/gi&, ideo/mpeg, application/Sip. R/"5.G9K.G9 JAHA + Siapkan ,aa sdk yang bisa dido%nload dari http*//,aa.sun.com + /ditor ,aa bisa menggunakan teks editor apa sa,a* notepadM edit plusM Ka%aM GetbeansM JbuilderM JCreatorM + Prinsip+prinsip dasar * o Satu buah &ile ,aa harus berekstensi .,aa, satu &ile boleh terdiri dari banyak kelas, namun hanya bisa terdiri dari satu public class. o Gama &ile ,aa harus sama dengan nama public class nya. -isal nama public class adalah * public class 5ello3orld, berarti nama &ilenya adalah 5ello3orld.,aa o .ngat di Jaa case+sensitie, termasuk nama &ile dan &older nya. Jaa sangat memperhatikan susunan &older/direktori, terutama untuk sebuah package. o Satu buah class sederhana minimal ada kata kunci class namaIclass. Sebuah class boleh tidak memiliki atribut dan method. Sebuah aplikasi ,aa harus berupa class, dan ,ika di compile dengan ,aac akan menghasilkan &ile berekstensi .class untuk masing+masing class yang ada. o Sebuah class hanya dapat dieksekusi ,ika di dalamnya ada method public static oid main. Jika tidak ada method main maka class tersebut hanya bisa dicompile dan tidak bisa dieksekusi. o Sintaks ,aa rata+rata mirip dengan bahasa C. + "erdapat beberapa konensi 1aturan2 dalam ,aa* o nama ariabel primiti& biasanya ditulis dalam huru& kecil. Contoh * int o nama ariabel berupa Jb,ect / Class ditulis dimulai huru& besar. Contoh * String, .nteger, Byte, Boolean. o nama method untuk mengambil data bisanya diberi a%alan getGama-ethod12, sedangkan method untuk mengeset data biasanya diberi a%alan setGama-ethod1tipedata ariabelset2. Contoh* Public oid setGama1String nama2D Public String getGama12 o nama ariabel biasanya dimulai dengan huru& kecil dan ,ika lebih dari satu kata, disambung dan ditulis dengan huru& pertama huru& besar. Contoh* int angkaRandom N ?, String nama-ahasis%a + Ada 4 ,enis modi&ier ariabel dalam Jaa* priate * hanya dapat diakses oleh kelas itu sendiri protected * hanya dapat diakses oleh kelas itu dan kelas turunannya atau masih dalam satu package. public * dapat diakses oleh seluruh kelas yang ada. + Jaa mengenal operasi control &lo% * Percabangan * i&+else, s%itch+case Perulangan * &or, %hile+do, do+%hile Penanganan /Eception * try+catch+&inally, thro%s KJGS/P JJP Class * prototipe yang mende&inisikan atribut dan method secara umum. Jb,ect * segala sesuatu yang dapat dilihat dan dirasa. Sebuah instansiasi dari Class. Jb,ect dapat memiliki atribut dan method. Atribut / ariabel / properties adalah apa yang dimiliki oleh sebuah ob,ect. Sedangkan method / behaiour / eent adalah apa yang dapat dilakukan oleh sebuah ob,ect. /nkapsulasi * pembungkusan atribut dan method pada suatu ob,ect. -an&aatnya adalah* modularitas dan in&ormation hiding. -essage * mekanisme yang digunakan oleh ob,ect ,aa untuk berkomunikasi dengan ob,ect lain. Sehingga dimungkinkan ter,adi aplikasi terdistribusi dan berinteraksi melalui ,aringan. Contoh * Jaa+CJRBA dan Jaa+R-.. .nheritance * pe%arisan atribut dan method dari class induk ke class anaknya, yang mengeEtends padanya. Superclass adalah class induk, subclass adalah class anak. Subclass akan me%arisi seluruh si&at super class, namun ,uga memungkinkan dapat ,uga memiliki atribut dan method yang lain, yang membedakannya dengan induknya. Abstract * kelas yang hanya terdiri dari method yang abstract yang digunakan untuk mendukung inheritance. .nter&ace * kelas yang hanya terdiri dari kumpulan method+method sa,a tanpa implementasi coding.