Client-Server Model Model Client-Server tidak lepas dari sistem terdistribusi Sistem Terdistribusi: "A system in which hardware or software components located at networked computers communicate and coordinate their actions only by message passing." [Coulouris] Dalam SisTer komputer-komputer yang saling terhubung, tidak terlihat secara fisik (=transparan)
Distribusi Fungsi Dengan pembagian fungsi untuk tiap komponen dalam sistem client server, berikut manfaat yang ada : Berbagi resource Berbagi beban kerja Tidak membedakan platform Meningkatkan efisiensi
Software Layer Arsitektur Software Lapisan atau modul dalam sebuah komputer tunggal Mendefinisikan layanan yang ditawarkan atau diminta antar proses pada satu atau berbeda komputer Ide dasarnya membagi sistem yang komplek dalam struktur lapisan dan layanan. Antar layer mendefinisikan antar muka
Middleware Software yang berfungsi sebagai lapisan konversi atau penerjemah. S/W penghubung yang berisi sekumpulan layanan yang memungkinkan beberapa proses dapat berjalan pada satu atau lebih mesin untuk saling berinteraksi pada suatu jaringan Juga sebagai integrator. Middleware saat ini dikembangkan untuk memungkinkan satu aplikasi berkomunikasi dengan lainnya walaupun berjalan pada platform yang berbeda. Biasa dipakai saat bermigrasi
Contoh Middleware Java s: Remote Procedure Call Object Management Group's: Common Object Request Broker Architecture (CORBA) Microsoft's COM/DCOM (Component Object Model) Also.NET Remoting
Layanan Middleware Menyediakan kumpulan fungsi API (Application Programming Interfaces) yang lebih tinggi daripada API yang disediakan sistem operasi dan layanan jaringan yang memungkinkan suatu aplikasi dapat : Mengalokasikan suatu layanan secara transparan pada jaringan Menyediakan interaksi dengan aplikasi atau layanan lain Diperluas (dikembangkan) kapasitasnya tanpa kehilangan fungsinya
Contoh Layanan Middleware Transaction Monitor Produk pertama yang disebut middleware. Menempati posisi antara permintaan dari program client dan database, untuk menyakinkan bahwa semua transaksi ke database terlayani dengan baik Messaging Middleware Menyimpan data dalam suatu antrian message jika mesin tujuan sedang mati atau overloaded Mungkin berisi business logic yang merutekan message ke ujuan sebenarnya dan memformat ulang data lebih tepat Sama seperti sistem messaging email, kecuali messaging middleware digunakan untuk mengirim data antar aplikasi
Contoh Layanan Middleware Distributed Object Middleware Contoh: RPC, CORBA dan DCOM/COM Middleware basis data menyediakan antarmuka antara sebuah query dengan beberapa database yang terdistribusi Contoh: JDBC, ODBC, dan ADO.NET Application Server Middleware J2EE Application Server, Oracle Application Server
Pengertian Client-Server Client/Server dapat diartikan sebagai kemampuan komputer untuk meminta layanan request data kepada komputer lain. Setiap instance dari komputer yang meminta layanan disebut sebagai client, sedangkan setiap instance yang menyediakan layanan disebut sebagai server. Data yang diminta oleh client dapat diambil dari database pada sisi server yang sering disebut database server, seperi misalnya MySQL, PostgreSQL, Oracle, atau SQL Server.
Three Tier Client-Server Architecture
Client-Server Characteristics Client dan Server merupakan item proses (logika) terpisah yang bekerja sama pada suatu jaringan komputer untuk mengerjakan suatu tugas: Service : Menyediakan layanan terpisah yang berbeda Shared resource : Server dapat melayani beberapa client pada saat yang sama dan mengatur pengaksesan resource Asymmetrical Protocol : antara client dan server merupakan hubungan one-to-many. Client memulai komunikasi dengan mengirim request ke server. Server menunggu permintaan dari client. Kondisi tersebut juga memungkinkan komunikasi callback.
Client-Server Characteristics Transparency Location : proses server dapat ditempatkan pada mesin yang sama atau terpisah dengan proses client. Client/server akan menyembunyikan lokasi server dari client. Mix-and-match : tidak tergantung pada platform Message-based-exchange : antara client dan server berkomunikasi dengan mekanisme pertukaran message. Encapsulation of service : message memberitahu server apa yang akan dikerjakan Scalability : sistem C/S dapat dimekarkan baik vertikal maupun horisontal Integrity : kode dan data server diatur secara terpusat, sedangkan pada client tetap pada komputer tersendiri
Client-Server Characteristics Characteristics of a client Initiates requests Waits for and receives replies Usually connects to a small number of servers at one time Typically interacts directly with end-users using a graphical user interface Characteristics of a server Passive (slave) Waits for requests from clients Upon receipt of requests, processes them and then serves replies Usually accepts connections from a large number of clients Typically does not interact directly with end-users
Advantages Client-server mampu menciptakan aturan dan kewajiban komputasi secara terdistribusi. Mudah dalam maintenance. Memungkinkan untuk mengganti, memperbaiki server tanpa mengganggu client. Semua data disimpan di server Server dapat mengkontrol akses terhadap resources, hanya yang memiliki autorisasi saja. Tempat penyimpanan terpusat, update data mudah. Pada peer-to-peer, update data sulit Mendukung banyak clients berbeda dan kemampuan yang berbeda pula.
Disadvantages Traffic congestion on the network, jika banyak client mengakses ke server secara simultan, maka server akan overload Berbeda dengan P2P network, dimana bandwidthnya meningkat jika banyak client merequest. Karena bandwidth berasal dari semua komputer yang terkoneksi kepadanya. Pada client-server, ada kemungkinan server fail. Pada P2P networks, resources biasanya didistribusikan ke beberapa node sehingga masih ada node yang dapat meresponse request.
KONSEP DASAR WEB Protocol yang digunakan: HTTP (port 80) Bahasa Web: HTML URI (Uniform Resource Identifier) Uniform Resource Identifier (URI) adalah kumpulan karakter dalam sintaks tertentu yang mengidentifikasi sebuah resource. Resource bisa merupakan file di server tapi juga bisa merupakan email address, berita, buku, host internet, dan lainlain. Sintaks : scheme:scheme-specific-part scheme bisa berupa : data, file, http, ftp, gopher, mailto, news, telnet. scheme-specific-part bisa berupa : //authority/path?query Contoh : http://www.ukdw.ac.id/index.php?a=1&b=2
URI URN (Uniform Resource Name) Tujuan URN adalah menghandle resource yang dimirror pada banyak tempat yang berbeda atau telah dipindah dari satu tempat ke tempat lain. URN mengidentifikasi resource itu sendiri, bukan tempat resourcenya. Jika terdapat sebuah URN, sebuah program FTP harus mengambil filenya dari mirror terdekat. Sebuah URN memiliki format sebagai berikut urn:namespace:resource_name. Sebuah namespace adalah nama dari koleksi dari resource. Sebuah resource_name adalah nama dari resource dari sebuah koleksi. Contohnya, URN dari urn:isbn:1565924851 mengindentifikasikan sebuah dalam ISBN dengan identifikasi 1565924851. Dan mengacu pada sebuah buku misalnya bernama : Java Network Programming. Masing-masing sintaks tergantung pada resource_name.isbn namespace terdiri dari 10 atau 13 karakter, semuanya adalah digit dengan sebuah aturan bahawa karakter terakhir berupa huruf : X (baik huruf besar / kecil).
URI URL (Uniform Resource Locator) : penunjuk ke suatu resource di Internet pada lokasi tertentu, misal: http://www.oreilly.com/catalog/javanp3/ URL ada dua macam : Absolute URL : contoh <img src= http://www.ukdw.ac.id/ukdw.jpg > Relative URL : contoh <img src= images/ukdw.gif >
MIME Multipurpose Internet Mail Extensions, RFC 2045. MIME adalah standar untuk mengirim multipart, multimedia data melalui email di Internet. Data bisa berupa data biner, ASCII atau bukan ASCII. MIME digunakan untuk mendeskripsikan isi file sehingga software client dapat mengetahui perbedaan antara data. Contoh : text/html, text/css, image/gif, video/mpeg, application/zip.
Praktikum: Browser