Jumat, 10 Juni 2011

Proses TCP/IP

TCP/IP adalah sekumpulan protokol yang dirancang untuk melakukan fungsi-fungsi komunikasi data, TCP/IP ini terdiri atas sekumpulan protokol yang masing-masing bertanggung jawab atas bagian-bagian tertentu dalam komunikasi data. Protokol yang satu tidak perlu mengetahui cara kerja protokol yang lain, sepanjang ia masih bisa saling mengirim dan menerima data. Berkat penggunaan prinsip ini, TCP/IP menjadi protokol komunikasi data yang fleksibel (Onno. W. Purbo, 1998)

Beberapa lapisan-lapisan pada model TCP/IP :




Gambar : 3.1 Lapisan/Layer TCP/IP

Model arsitektur protokol TCP/IP empat lapis :
-          lapisan aplikasi, terdiri dari aplikasi dan proses yang memakai jaringan
-          lapisan transport, membuat pelayanan pengiriman data antar computer (end-to-end)
-          lapisan internet, menentukan datagram dan pengatur(handle) ruting data
-          lapisan akses jaringan (network access layer), terdiri dari routing untuk mengakses jaringan fisik

Pada dasarnya data akan dikirimkan pada dua sisi, yaitu sisi pengirim dan sisi penerima (Suryadi MT, 1997). Pada komputer pengirim, data bergerak dimulai pada lapisan tertinggi, yaitu lapisan aplikasi, lalu bergerak terus ke bawah menuju transport, network/internet dan lapisan akses jaringan/data link. Pada masing-masing lapisan ditambahan header bits satu persatu sehingga data yang sampai ke lapisan akses jaringan telah mengalami empat kali penambahan, termasuk dari lapisan akses jaringan sendiri. Kemudian data ini dikirimkan menuju lapisan akses jaringan pada sisi komputer penerima.


  

 Gambar 5: Pengemasan data dengan header bits pada tiap-tiap lapisan.

Struktur data yang melalui lapisan protokol TCP/IP diatas bisa digambarkan sebagai berikut :

Lapisan Aplikasi              TCP[stream]                    UDP[message]
 

Lapisan Transport             [segment]                          [packet]        
 

Lapisan Internet                [datagram]                       [datagram]

Lapisan Akses Jaringan     [frame]                             [frame]

Pada gambar ini aplikasi yang mempergunakan TCP adalah data stream, sedangkan aplikasi yang memakai UDP(Using Datagram Protokol) berupa data message. Pada lapisan transport, TCP menyebut data sebagai segment. Sedangkan UDP menyebut data sebagai paket. Di lapisan Internet, semua data dilihat sebagai blok data yang disebut datagram. Kemudian pada lapisan akses jaringan setiap potongan data yang dikirim disebut frame. Datagram adalah format paket yang ditentukan oleh IP. Protokol IP adalah inti dari protokol TCP/IP. Seluruh data yang berasal dari protokol pada lapisan di atas IP harus dilewatkan, diolah dan dipancarkan sebagai paket IP agar sampai ke tujuan. 

Tinjauan Sekilas Aplikasi pada Sistem Terdistribusi

Yang perlu kita sadari saat ini adalah perkembangan dalam industri perangkat lunak yang semakin hari semakin menuju pada aplikasi yang mendukung sistem terdistribusi. Idealisme yang ingin diwujudkan dengan adanya sistem terdistribusi ini adalah apapun platform yang digunakan tetap dapat mendukung suatu logika kesatuan sistem.
Sistem terdistribusi merupakan suatu bentuk arsitektur sistem dimana komputer-komputer yang berdiri secara otonom dapat saling berkomunikasi dan berbagi resource tanpa mempedulikan dimana komputer itu berada dan platform yang digunakan. Secara logika, walaupun terpisah dan berbeda namun tetap satu. (boleh dech jika disamain dengan Bhinneka Tunggal Ika :) )

Lalu bagaimana untuk mewujudkannya?

Tidak perlu dikuatirkan untuk menjawab pertanyaan tersebut. Saat ini sudah banyak teknologi yang dapat digunakan untuk membantu dalam pembangunan suatu sistem yang terdistribusi. Yang perlu dipahami adalah sistem terdistribusi tanpa didukung suatu sistem jaringan tidak akan berfungsi. Peran dari pengetahuan akan Jaringan Komputer dalam membangun sistem terdistribusi ini adalah menganalisa, merancang dan membangun suatu infrastruktur network dengan tujuan utama adalah agar semua komputer yang terhubung dapat saling berkomunikasi dan berbagi resource. Banyak hal yang perlu diketahui di sini, antara lain konsep stack OSI dari ISO adalah mutlak, pengetahuan akan protokol yang akan digunakan, pengetahuan akan cabling, bridge, routing.
Berangkat dari infrastruktur network yang ada, salah satu pertimbangan utama yang sangat mendukung dalam pengembangan suatu sistem terdistribusi adalah protokol yang bersifat open system. Saat ini protokol yang mendukung sifat tersebut adalah TCP/IP (Transmission Control Protocol/Internet Protocol). Pengetahuan untuk protokol ini saat ini adalah MUTLAK.Setelah infrastruktur network telah selesai, lalu apakah itu sudah membentuk suatu sistem terdistribusi? Sudah! Tapi tidak memiliki suatu fungsi yang dapat digunakan secara maksimal. Kalau hanya bisa komunikasi dan berbagi resource untuk apa?
Selanjutnya pada titik inilah peran dari Sistem informasi memegang kendali. Hasil Analisa dan Rancangan infrastruktur dari sistem yang akan dikembangkan akan menentukan apakah sistem yang akan jadi nantinya betul-betul telah membentuk suatu sistem yang terdistribusi.

Model client/server

Salah satu bentuk implementasinya nanti adalah penerapan model client/server pada Sistem Informasi yang akan dikembangkan. Prinsip utama dari model client/server ini adalah suatu proses dapat dipisahkan menjadi 2, yaitu pada proses client dan proses server, dimana kedua proses tersebut menggunakan suatu protokol tertentu agar dapat berkomunikasi dan mengontrol. Model client/server ini dikenal pula sebagai suatu bentuk arsitektur aplikasi. Arsitektur yang lama telah ada adalah arsitektur monolithic, contoh yang sederhana adalah kita membangun suatu aplikasi Sistem Informasi yang stand alone, kita membangun aplikasi dimana model file server menjadi dominan. (Sebagai catatan : File server sebenarnya lebih mengarah pada suatu layanan yang disediakan pada level Sistem Operasi bukan pada level aplikasi yang dikembangkan itu sendiri.)Berangkat dari itu, muncul model client/server 2-tier. Contohnya adalah pemakaian Database Server (contoh SQL Server, Oracle Server, Sybase, mySQL, ProgresSQL, dsb). Dengan penerapan Database server ini, mau tidak mau proses akan terbagi menjadi dua, yaitu untuk pemrosesan database dilakukan oleh Database server, sedangkan untuk antar muka pemakainya diproses pada client (mis. Form di Win95, Form di X Window, dsb.)
Model 2 tier
Gambar 1. Model Client/Server 2-tier
Untuk membangun aplikasi dengan model client/server 2-tier ini dari tiap database server telah menyediakan suatu API yang memudahkan pemrogramannya. Jika anda merupakan kerabat setia Microsoft, banyak teknologi yang dapat digunakan antara lain ADO, RDO, ODBC. Sedangkan bagi anda yang berkecimpung dalam dunia Unix/Linux, jangan kuatir, karena dari mySQL, PostgreSQL maupun Oracle telah menyediakan suatu antar muka untuk mendukung pemrogramman client/server untuk dapat mengakses database server tersebut.
Kita ambil contoh dengan teknologi ADO, RDO ataupun ODBC. Komponen tersebut harus melekat pada aplikasi client dan jika suatu permintaan dikirimkan ke database server, tentu saja semua hasil akan dikirimkan ke client, untuk kemudian client akan melakukan proses terhadap data tersebut dengan bussiness logicnya. Di sini, dengan model client/server 2 tier, bottleneck terjadi pada trafik jaringannya, walaupun trafiknya lebih sepi dibanding dengan file server.

Dengan acuan tersebut, muncul model client/server 3-tier, dimana bussiness logic dipisahkan ke server. Jadi sekarang dengan model 3-tier ini, server menjadi semakin gemuk (banyak makanan yang diberikan padanya...:) ). Oleh karena bussiness logic dikerjakan oleh server, maka data yang terkirimkan hanyalah data hasil pengolahan bussiness logic (tidak seperti pada model 2-tier). Tentu saja dengan demikian akan mengurangi padatnya lalu lintas jalur network yang ada. Teknologi yang dapat digunakan untuk membangun model ini antara lain MTS, DCOM, CORBA, CGI, ASP, dan sebagainya.
Model 3 tier
Gambar 2. Model Client/Server 3-tier
Arah paradigma pengembangan perangkat lunak

Dari beberapa bentuk teknologi seperti yang disebutkan di atas, mau tidak mau arah paradigma pengembangan perangkat lunak harus bergeser, yang semula adalah prosedural ataupun sequence, harus diganti dengan object oriented serta multithreading (tidak mutlak. Contoh yang nyata menyangkut pemrograman multithreading ini adalah pemrograman pada Windows maupun XWindows). Teknologi seperti Active X ADO, RDO, COM dan CORBA, semuanya berbasiskan pada object. Di sini pegangan akan pengetahuan object oriented programming menjadi kuncinya.

sumber: http://budsus.freeservers.com/paper01.html

Senin, 06 Juni 2011

Pengertian Sistem Terdistribusi

Sistem terdistribusi adalah sekumpulan prosesor yang tidak saling berbagi memori atau clock dan terhubung melalui jaringan komunikasi yang bervariasi, yaitu melalui Local Area Network ataupun melalui Wide Area Network. Prosesor dalam sistem terdistribusi bervariasi, dapat berupa small microprocessor, workstation, minicomputer, dan lain sebagainya. Berikut adalah ilustrasi struktur sistem terdistribusi:

Gambar 23.1. Struktur Sistem Terdistribusi
Struktur Sistem Terdistribusi

Karakteristik sistem terdistribusi adalah sebagai berikut:
  1. Concurrency of components.  Pengaksesan suatu komponen/sumber daya (segala hal yang dapat digunakan bersama dalam jaringan komputer, meliputi H/W dan S/W) secara bersamaan. Contoh: Beberapa pemakai browser mengakses halaman web secara bersamaan
  2. No global clock.  Hal ini menyebabkan kesulitan dalam mensinkronkan waktu seluruh komputer/perangkat yang terlibat. Dapat berpengaruh pada pengiriman pesan/data, seperti saat beberapa proses berebut ingin masuk ke critical session.
  3. Independent failures of components.  Setiap komponen/perangkat dapat mengalami kegagalan namun komponen/perangkat lain tetap berjalan dengan baik.

Ada empat alasan utama untuk membangun sistem terdistribusi, yaitu:
  1. Resource Sharing.  Dalam sistem terdistribusi, situs-situs yang berbeda saling terhubung satu sama lain melalui jaringan sehingga situs yang satu dapat mengakses dan menggunakan sumber daya yang terdapat dalam situs lain. Misalnya, user di situs A dapat menggunakan laser printer yang dimiliki situs B dan sebaliknya user di situs B dapat mengakses file yang terdapat di situs A.
  2. Computation Speedup.  Apabila sebuah komputasi dapat dipartisi menjadi beberapa subkomputasi yang berjalan bersamaan, maka sistem terdistribusi akan mendistribusikan subkomputasi tersebut ke situs-situs dalam sistem. Dengan demikian, hal ini meningkatkan kecepatan komputasi (computation speedup).
  3. Reliability.  Dalam sistem terdistribusi, apabila sebuah situs mengalami kegagalan, maka situs yang tersisa dapat melanjutkan operasi yang sedang berjalan. Hal ini menyebabkan reliabilitas sistem menjadi lebih baik.
  4. Communication.  Ketika banyak situs saling terhubung melalui jaringan komunikasi, user dari situs-situs yang berbeda mempunyai kesempatan untuk dapat bertukar informasi.

Tantangan-tantangan yang harus dipenuhi oleh sebuah sistem terdistribusi:
  1. Keheterogenan perangkat/multiplisitas perangkat.  Suatu sistem terdistribusi dapat dibangun dari berbagai macam perangkat yang berbeda, baik sistem operasi, H/W maupun S/W.
  2. Keterbukaan.  Setiap perangkat memiliki antarmuka (interface) yang di-publish ke komponen lain. Perlu integrasi berbagai komponen yang dibuat oleh programmer atau vendor yang berbeda
  3. Keamanan.  Shared resources dan transmisi informasi/data perlu dilengkapi dengan enkripsi.
  4. Penangan kegagalan.  Setiap perangkat dapat mengalami kegagalan secara independen. Namun, perangkat lain harus tetap berjalan dengan baik.
  5. Concurrency of components.  Pengaksesan suatu komponen/sumber daya secara bersamaan oleh banyak pengguna.
  6. Transparansi.  Bagi pemakai, keberadaan berbagai perangkat (multiplisitas perangkat) dalam sistem terdistribusi tampak sebagai satu sistem saja.


Gambar 23.2. Local Area Network
Local Area Network

Dalam sistem operasi terdistribusi, user mengakses sumber daya jarak jauh (remote resources) sama halnya dengan mengakses sumber daya lokal (local resources). Migrasi data dan proses dari satu situs ke situs yang lain dikontrol oleh sistem operasi terdistribusi.
Berikut ini adalah fitur-fitur yang didukung oleh sistem operasi terdistribusi:
  1. Data Migration.  Misalnya, userdi situs A ingin mengakses data di situs B. Maka, transfer data dapat dilakukan melalui dua cara, yaitu dengan mentransfer keseluruhan data atau mentransfer sebagian data yang dibutuhkan untuk immediate task.
  2. Computation Migration.  Terkadang, kita ingin mentransfer komputasi, bukan data. Pendekatan ini yang disebut dengan computation migration
  3. Process Migration.  Ketika sebuah proses dieksekusi, proses tersebut tidak selalu dieksekusi di situs di mana ia pertama kali diinisiasi. Keseluruhan proses, atau sebagian daripadanya, dapat saja dieksekusi pada situs yang berbeda. Hal ini dilakukan karena beberapa alasan: Load balancing. Proses atau subproses-subproses didistribusikan ke jaringan untuk memeratakan beban kerja. Computation speedup. Apabila sebuah proses dapat dibagi menjadi beberapa subproses yang berjalan bersamaan di situs yang berbeda-beda, maka total dari process turnaround time dapat dikurangi. Hardware preference. Proses mungkin mempunyai karakteristik tertentu yang menyebabkan proses tersebut lebih cocok dieksekusi di prosesor lain.Misalnya, proses inversi matriks, lebih cocok dilakukan di array processor daripada di microprocessor Software preference. Proses membutuhkan software yang tersedia di situs lain, di mana software tersebut tidak dapat dipindahkan atau lebih murah untuk melakukan migrasi proses daripada software Data access.

Sistem operasi terdistribusi (distributed operating system) menyediakan semua fitur di atas dengan kemudahan penggunaan dan akses dibandingkan dengan sistem operasi jaringan (network operating system).
Berikut adalah dua tipe jaringan yang dipakai dalam sistem terdistribusi:
  • Local Area Network (LAN). LAN muncul pada awal tahun 1970-an sebagai pengganti dari sistem komputer mainframe. LAN, didesain untuk area geografis yang kecil. Misalnya, LAN digunakan untuk jaringan dalam sebuah bangunan atau beberapa bangunan yang berdekatan. Umumnya, jarak antara situs satu dengan situs yang lain dalam LAN berdekatan. Oleh karena itu, kecepatan komunikasinya lebih tinggi dan peluang terjadi kesalahan (error rate) lebih rendah. Dalam LAN, dibutuhkan high quality cable supaya kecepatan yang lebih tinggi dan reliabilitas tercapai. Jenis kabel yang biasanya dipakai adalah twisted-pair dan fiber-optic. Berikut adalah ilustrasi dari Local Area Network:
  • Wide Area Network.  WAN muncul pada akhir tahun 1960-an, digunakan sebagai proyek riset akademis agar tersedia layanan komunikasi yang efektif antara situs, memperbolehkan berbagi hardware dan software secara ekonomis antar pengguna. WAN yang pertama kali didesain dan dikembangkan adalah Arpanet yang pada akhirnya menjadi cikal bakal dari Internet. Situs-situs dalam WAN tersebar pada area geografis yang luas. Oleh karena itu, komunikasi berjalan relatif lambat dan reliabilitas tidak terjamin. Hubungan antara link yang satu dengan yang lain dalam jaringan diatur oleh communication processor. Berikut adalah ilustrasi dari Wide Area Network 
sumber: http://kambing.ui.ac.id/bebas/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-2/ch23.html