24 October 2014

Sistem Terdistribusi [Client dengan Server]

Pengertian Client Server
Client-Server adalah pembagian kerja antara server dan client yg mengakses server dalam suatu jaringan. Jadi arsitektur client-server adalah desain sebuah aplikasi terdiri dari client dan server yang saling berkomunikasi ketika mengakses server dalam suatu jaringan.
Dari diatas, kata kuncinya adalah pada sistem client/server harus terdapat satu atau beberapa server yang menyediakan layanan dan satu atau beberapa klien yang meminta layanan tersebut (tidak perduli apakah kondisi tersebut berada pada sebuah sistem jaringan ataupun stand-alone).
Istilah server di sini bisa saja berupa komputer-komputer kelas server seperti IBM, HP, Compaq dll. Atau juga berupa software yang dapat dikategorikan berdasarkan layanannya misalnya web server, application server, file server, database server, terminal server, mail server, dll.
Server bisa juga berupa proses, seperti RPC Server yang terdapat pada sistem operasi server seperti Novell, Windows NT, Linux dll. Lebih dalam lagi, pada kernel (inti) sebuah sistem operasi juga banyak terdapat proses-proses yang bertanggung-jawab menyediakan layanan-layanan agar hardware komputer dapat bekerja sebagai mana mestiya.
Microsoft menamakan proses tersebut services sedangkan keluarga Unix/Linux menyebutnya daemons. Services/daemons tersebut umumnya menyediakan manajemen memory, akses file/jaringan, serta penjadwalan (scheduling).
Server adalah komputer yang dapat memberikan service ke client, sedangkan client adalah komputer yang mengakses beberapa service yang ada di server. Ketika client membutuhkan suatu service yang ada di server, dia akan mengirim request kepada server lewat jaringan. Jika request tersebut dapat dilaksanakan, maka server akan mengirim balasan berupa service yang dibutuhkan untuk saling berhubungan menggunakan Socket.
Model Client-Server
Ada beberapa model client/server yang penting untuk diketahui. Dimulai dari arsitektur mainframe hingga arsitektur client/server.

  1. Arsitektur Mainframe
Pada arsitektur ini, terdapat sebuah komputer pusat (host) yang memiliki sumber daya yang sangat besar, baik memori, processor maupun media penyimpanan. Melalui komputer terminal, pengguna mengakses sumber daya tersebut. Komputer terminal hanya memiliki monitor/keyboard dan tidak memiliki CPU. Semua sumber daya yang diperlukan terminal dilayani oleh komputer host. Model ini berkembang pada akhir tahun 1980-an.
  1. Arsitektur File Sharing
Pada arsitektur ini komputer server menyediakan file-file yang tersimpan di media penyimpanan server yang dapat diakses oleh pengguna. Arsitektur file sharing memiliki keterbatasan, terutama jika jumlah pengakses semakin banyak serta ukuran file yang di shaing sangat besar. Hal ini dapat mengakibatkan transfer data menjadi lambat. Model ini populer pada tahun 1990-an.
  1. Arsitektur Client/Server
Karena keterbatasan sistem file sharing, dikembangkanlah arsitektur client/server. Salah satu hasilnya yaitu berupa software database server yang menggantikan software database berbasis file server. Dikenalkan pula RDBMS (Relational Database Management System). Dengan arsitektur ini, query data ke server dapat terlayani dengan lebih cepat karena yang ditransfer bukanlah file, tetapi hanyalah hasil dari query tersebut. RPC (Remote Procedure Calls) memegang peranan penting pada arsitektur client/server.
Gambar 1. Skema Sistem Client-Server
Komponen dan Fungsi Sistem Client Server
            Gambaran umum konfigurasi Client Server diperlihatkan pada gambar 2. Dengan pendekatan Client Server setiap PC dapat melakukan secara independen sebuah pemrosesan lokal dan mensharing perangkat enterprise melalui LAN. Untuk kasus yang lebih luas kemampuan akses dapat dilakukan melalui MAN (Metropolita Area Network) atau WAN (Wide Area Network). Sebuah database dan program applikasi enterprise misalnya diletakan pada sebuah server dimana setiap end user dapat melakukan akses melalui Client Processor, LAN dan Server seperti pada gambar 3.
Gambar-2 Host Sistem dan Sistem Client Server
User
            User disini adalah end user yang mengakses client untuk mendapatkan sebuah layanan. End user bisa saja seorang manager perusahaan, professional, karyawan di sebuah perusahaan, atau pelanggan. Ada timbul sedikit kerancuan. Pelanggan dalam sebuah bisnis atau perdagangan disebut dengan client, tapi client ini adalah manusia, jangan dibingungkan dengan istilah client pada pemrosesan komputer. Dapat kita katakan sebuah user atau end user adalah ketika melakukan proses akhir menggunakan sistem client server.
Gambar 3. Komponen Sistem Client Server
Client
            Client dapat berupa sebuah pemproses yang powerful atau dapat juga berupa terminal tua dengan kemampuan proses yang terbatas. Secara mendasar client adalah sebuah PC dengan sistem operasinya sendiri. Sebagian besar pemrosesan banyak dilakukan di sebuah server dimana bagian-bagian dalam lingkup pekerjaannya ditentukan oleh program komputer, inilah yang menyebabkan sistem client server berbeda dengan sistem transaksi tradisional. Sistem client server memungkinkan sebuah teknologi dan applikasinya digunakan bersamaan. Applikasi disini termasuk didalamnya adalah pemroses pesan seperti e-mail, pemproses file lokal seperti DBMS untuk browsing dan penghitungan, atau sharing resource seperti sistem image processing, sistem optical character, sistem advance grafic processing, plotter warna, atau sebuah printer. Perangkat-perangkat ini bisa saja berasal dari berbagai vendor yang ada. Untuk memfasilitasi query pemprosesan dari client, sebagian besar sistem client server menggunkaan Structured Query Language (SQL) yang merupakan struktur bahasa tingkat tinggi. SQL dengan database relationalnya adalah standar de facto untuk hampir sebagian besar sistem client server. Salah satu komponen terpenting sistem client server adalah User Interface (UI), yang digunakan user untuk berkomunikasi. Bagi user yang seorang programmer, UI tidak mesti user friendly, tapi untuk end user yang bukan programmer sangat dibutuhkan UI yang user friendly. Dibutuhkan Graphical User Interface (GUI) untuk end user karena GUI menampilkan grafis untuk melakukan akses dengan icon-icon tanpa perlu memasukan perintah pemrograman. Kedepannya GUI tidak hanya digunakan untuk menggantikan akses perintah pemprograman tapi juga digunakan untuk grafik, voice, video, animasi, untuk selanjutnya menjadi sebuah teminal multimedia.
Network dan Transmisi
            Server dan client dapat terkoneksi dengan sebuah media transmisi. Media transmisi ini dapat berupa kabel, wireless, atau fiber. Dengan media ini memungkinkan sebuah perusahaan untuk melakukan enterprice network lebih besar dalam sebuah workgroup atau departemen. Untuk itu dibutuhkan interoperability sebagai contoh operasi dan pertukaran informasi yang heterogen melalui berbagai perangkat software dalam jaringan. Esensinya adalah keterbukaan dalam melakukan pertukaran baik komponen dan software yang berasal dari vendor yang berbeda-beda. Dengan interoperability baik vendor dan customer akan mendapatkan keuntungan.
Interoperability memberikan dampak pada arsitektur jaringan. Awal sebuah arsitektur jaringan adalah SNA namun arsitektur ini bersifar proprietary dan tidak terbuka dengan vendor lainnya. Kemudian sebagian besar orang beralih ke OSI yang di standarkan oleh ISO (International Standards Organization). OSI banyak di gunakan di Eropa namun kurang berkembang di Amerika Serikat. Di Amerika Serikat muncul TCP/IP yang kemudian di dukung oleh Unix User Group.
Servers
            Konektivitas adalah hal yang terpenting namun bukan satu-satunya faktor untuk mendapatkan efisiensi dan efektivitas sharing resource yang dimiliki. Dibutuhkan sebuah perangkat yang memiliki kemampuan mengontrol software, menjalankan program applikasi, dan mengakses database dengan mudah dan cepat. Untuk itulah diperlukan sebuah Server. Sebuah Server harus mendukung spesifikasi yang mendukung resource sharing seperti Network Server Operating System, Multiple User Interface, GUI (Graphic User Interface), dialog oriented cleint – server languange seperti SQL dan database arsitektur. Saat ini resuorce bisa tersebar secara spasial tidak hanya berada dalam batasan sebuah negara namun sudah antar negara yang membutuhkan interkoneksi yang tinggi.
            Beberapa software dapat diperoleh dari vendor atau software house. Software tersebut bisa bersifat mainframe centric (sentral) atau PC server centric. Namun selain semua hal yang tersedia pada paket software tersebut tetap dibutuhkan in house sofware development. Juga perlu untuk mengintegrasikan sistem client server dengan sistem informasi yang telah ada dan menggunakan sistem tersebut tidak hanya sebagai end user tapi juga bekerja diantara group end user.
            Server melakukan pemprosesan mirip dengan pemrosesan yang ada disisi client. Namun ada sedikit perbedaan, biasanya sebuah server tidak mempunyai User Interface karena didesain untuk networking, memproses database dan memproses applikasi. Pembeda antara pemrosesan client dan server ada pada tanggungjawab dan fungsi dari pemrosesan yang dilakukan. Sebagai contoh sebuah server dapat bertindak sebagai repository dan penyimpanan informasi dalam kasus pada file server. Tipe dari Server tergantung pada kebutuhan dan tujuan sistem. Dalam beberapa kasus sebuah server harus mampu melakukan multitaskting (membentuk multi fungsi secara simultan), menggunakan multiple operating system, lebih portable, memiliki skalabilitas, dan memiliki waktu respon yang cepat untuk melakukan teleprosesing. Dengan kapabilitas seperti itu menjadikan server memiliki harga yang relatif mahal. Penyebab mahalnya harga server adalah :
1.      Network Management
2.      Gateway function termasuk akses keluar dan e-mail publik
3.      Penyimpanan
4.      File Sharing
5.      Batch processing
6.      Bulletin Board access
7.      Facsimile transmission
Pemrosesan Database
            Beberapa prinsip pemrosesan data pada server termasuk didalamnya adalah integritas, sekuriti, dan recovery data. Enterprise data yang dibutuhkan oleh sebuah perusahaan membutuhkan sebuah integrasi, pengaksesan data yang di kendalikan dan kelola dengan securiti yang baik, dan recovery data dapat dilakukan jika terjadi kegagalan sistem.
            Beberapa data management dilakukan secara otomatis. Biasanya dilakukan oleh DBMS yang berada di Server yang mengontrol akses diantara pemprosesan multiple sistem dan mengintegrasikan akses data melalui network management.
Pemrosesan Applikasi
            Data digunakan oleh program applikasi yang mana sebagian besarnya berada di server. Ada beberapa applikasi client server yang disediakan oleh vendor. Tools applikasi ini menjadikan pengembangan sistem client-server menjadi lebih kompetitif. Pengembangan applikasi client-server dapat dilakukan dengan beberapa cara yakni :
1.      Fungsi pemprosesan didistribusikan diantara client dan server. Porsi dari client dijalankan oleh end user dengan menggunakan bahasa pemrograman database seperti SQL yang memberikan semacam request data dan kemudian mengekstrak data tersebut dari lokasinya dimana semua proses tersebut dikontrol oleh sistem operasi.
2.      UI dan GUI menjadi lebih sering digunakan karena tingkat kemudahan penggunaan menjadi lebih penting.
3.      Digunakannya Advance networking seperti LAN
4.      Code generator juga digunakan, Metodelogi Objeck Oriented akan menambah tingkat penggunan.
5.      Tools pengembangan seperti SQL Server, FLOWMARK, Progress, ObjectView, Oracle menjadi sangat diperlukan
            Ketika sebuah applikasi diproses dan permintaan akan data dilakukan oleh client, maka hasilnya dikirimkan melalui LAN. Hasil dari applikasi tersebut dapat saja dilakukan perubahan bentuk untuk mendapatkan tampilan yang lebih baik. Semuanya ini dilakukan di sisi client oleh end user melalui UI (User Interface). Diagram skematik pendekatan client server ditunjukan pada gambar 4.
Gambar 4- Applikasi Sistem Client Server
Keuntungan Sistem Client Server
1.      Mengurangi tanggung jawab dan biaya overhead
2.      Kontrol biaya operasional dan pengembangan yang lebih mudah
3.      Waktu respon yang lebih baik dalam pemrosesan.
4.      Akses data yang lebih besar bagi perusahaan. Sistem Client server mengamankan transaksi data dan menyimpannya pada server untuk kemudian dapat di sharing, dimanipulasi, dianalisa secara lokal.
5.      Memungkinkan pendistribusian proses dari tersentralisasi menjadi desktop computing
6.      Menawarkan kooperatif prosesing antara individu dan group antar departemen, geografis dan zona waktu.
7.      Rewriting software pada sistem client server memberikan keuntungan untuk mendapatkan sistem yang terintegrasi dan memberikan efisiensi.
8.      Menawarkan friendlu interface pada end user khususnya pada knowledge worker dan customer.
9.      Keterlibatan yang lebih untuk end user pada implementasi IT.
10.  Arsitektur terbuka dan sistem terbuka memberikan fleksibilitas dalam memilih konfigurasi hardware yang berbeda, network, dan DBMS dari berbagai vendor.
Hambatan Implementasi Sistem Client Server
Organisasi
1.      Skill personel yang kurang memadai untuk implementasi sistem client server.
2.      Anti perubahan terhadap teknologi baru.
3.      Biaya konversi
4.      Membutuhkan koordinasi dan kontrol yang lebih pada end user.
Teknologi
1.      Membutuhkan infrastruktur LAN dan WAN
2.      Skill dan peralatan yang belum memadai
3.      Belum adanya pemahaman dan pengalaman dalam merencanakan sistem client server
4.      Tidak tersedianya produk dan tools pengembangan sistem client server
5.      Sedikitnya applikasi client server
6.      Sedikitnya standar nasional dan internasional untuk sistem client server.
Refrensi:
http://dennycharter.wordpress.com/2008/05/21/konsep-sistem-client-server/