Kamis, 15 Oktober 2015


  • Komunikasi Data

Komunikasi data adalah merupakan bagian dari telekomunikasi yang secara khusus berkenaan dengan transmisi atau pemindahan data dan informasi diantara komputer-komputer   dan   piranti-piranti   yang   lain   dalam   bentuk   digital   yang dikirimkan melalui media komunikasi data.

  • Komponen Komunikasi Data
 
           =>Pengirim, adalah piranti yang mengirimkan data
           =>Penerima, adalah piranti yang menerima data  
           =>Data, adalah informasi yang akan dipindahkan
           =>Media pengiriman,adalah media atau saluran yang digunakanuntuk mengirimkan   data
           =>Protokol, adalah aturan-aturan yang berfungsi untuk menyelaraskan hubungan.



  • Protokol
Protokol dapat diartikan sebagai sebuah aturan yang mendefinisikan beberapa fungsi yang ada dalam sebuah jaringan komputer, misalnya mengirim pesan, data, informasi dan fungsi lain yang harus dipenuhi oleh sisi pengirim dan sisi penerima agar komunikasi dapat berlangsung dengan benar, walaupun sistem yang ada dalam jaringan tersebut berbeda sama sekali. 
  •  Komponen Protokol

1. Aturan atau prosedur, mengatur pembentukan/pemutusan hubungan 
2. Format atau bentuk, mengatur proses transfer data representasi pesan  
3. Kosakata (vocabulary), jenis pesan dan makna masing-masing pesan
  • Fungsi Protokol 
Secara umum fungsi dari protokol adalah untuk menghubungkan sisi pengirim dan sisi penerima dalam berkomunikasi serta dalam bertukar informasi agar dapat berjalan dengan baik dan benar. Berikut ini beberapa fungsi protokol.
         >>Fragmentasi dan reassembly
        >>Encapsulation
        >>Connection control 
       >>Flow control
        >>Error control  
       >>Transmission service
  • Remote Procedure Call (RPC) 
Remote Procedure Call (RPC) adalah sebuah metode yang memungkinkan kita untuk mengakses sebuah prosedur yang berada di komputer lain. Untuk dapat melakukan ini sebuah server harus menyediakan layanan remote procedure.  
RPC  masih  menggunakan  cara  primitif  dalam  pemrograman,  yaitu menggunakan paradigma procedural programming. Hal itu membuat kita sulit ketika menyediakan banyak remote procedure.   
  • Kelebihan RPC  
          --: Relatif mudah digunakan:
       Pemanggilan remote procedure tidak jauh berbeda dibandingkan pemanggilan local procedure
          --: Robust (Sempurna):
       Sejak th 1980-an RPC telah banyak digunakan dlm pengembangan mission- critical
       application yg memerlukan scalability, fault tolerance, & reliability
  • Kekurangan RPC
     ~~} Tidak fleksibel terhadap perubahan:
                                        Static relationship between client & server at run-time.
    ~~}Berdasarkan prosedural/structured programming yang sudah ketinggalan jaman dibandingkan
          OOP.
  • Prinsip RPC dalam program Client-Server 



Skema  RPC  ini  dilakukan  juga  pada  proses-proses  yang  running  di  komputer berlainan


  • Langkah-langkah dalam RPC


     1.  Prosedur client memanggil client stub
     2. Client stub membuat pesan dan memanggil OS client
     3. OS client mengirim pesan ke OS server
     4. OS server memberikan pesan ke server stub
     5. Server stub meng-unpack parameter-parameter untuk memanggil server
     6. Server mengerjakan operasi, dan mengembalikan hasilnya ke server stub 
     7. Server stub mem-pack hasil tsb dan memanggil OS server
     8. OS server mengirim pesan (hasil) ke OS client
     9. OS client memberikan pesan tersebut ke client stub 
   10. Client  stub  meng-unpack  hasil  dan  mengembalikan  hasil  tersebut  ke client  


  • Object Remote 
Meskipun teknologi RPC ini relatif sudah memberikan kenyamanan bagi developer, tapi perkembangan yang terjadi di bidang pemrograman berorientasi objek akhirnya menuntut kehadiran teknologi baru. Sederet teknologi akhirnya benar-benar muncul, antara lain; RMI (Remote Method Invocation), CORBA (Common Object Request Broker Architecture), dan SOAP (Simple Object Access Protocol).


       Remote Method Invocation (RMI) adalah sebuah teknik pemanggilan method remote yang lebih secara umum lebih baik daripada RPC. RMI menggunakan paradigma pemrograman berorientasi obyek (Object Oriented Programming). RMI memungkinkan kita untuk mengirim obyek sebagai parameter dari remote method.  


RMI menyediakan mekanisme dimana server dan client berkomunikasi dan memberikan informasi secara timbal balik. Aplikasi semacam ini seringkali disebut aplikasi objek terdistribusi.
  
Aplikasi objek terdistribusi seringkali melakukan hal berikut:
  
  1. Melokasikan  objek  remote:  Aplikasi  dapat  menggunakan  satu  dari  dua mekanisme untuk mendapatkan referensi ke objek remote.  
  2. Berkomunikasi  dengan  objek  remote:  Detail  dari  komunikasi  antara  objek remote ditangani oleh RMI, bagi programmer komunikasi remote tampak seperti invokasi method Java standar.
  3. Memanggil   (load bytecode   untuk   objek   yang   di-pass Karena   RMI mengizinkan pemanggil (caller) untuk mem-pass objek ke objek remote, RMI menyediakan mekanisme yang diperlukan objek me-load kode objek, sebagaimana juga mentransmisikan datanya.  
 
Ilustrasi  berikut  menggambarkan  aplikasi  RMI  terdistribusi  yang  menggunakan registry untuk mendapatkan referensi ke objek remote. Server memanggil registry untuk mengasosiasikan (mengikat) suatu nama dengan objek remote. Client mencari objek remote dengan namanya pada registry server dan meng-invoke method dari objek. Ilustrasi ini juga menunjukkan sistem RMI menggunakan Web server untuk memanggil class bytecodes, dari server ke client dan dari client ke server, untuk objek-objek yang diperlukan.




·     Langkah-Langkah Pembuatan Program dengan RMI
 
Dalam RMI, semua informasi tentang satu pelayanan server disediakan dalam suatu definisi remote interface. Dengan melihat pada definisi interface, seorang pemrogram dapat memberitahukan method apa yang dapat dikerjakan oleh server, meliputi data apa yang diterima dan data apa yang akan dikirim sebagai tanggapan.

Membangun  suatu  aplikasi  terdistribusi  menggunakan  RMI  meliputi  6  langkah. Keenam langkah tersebut adalah:

1.Mendefinisikan remote interface
2.Implementasi remote interface dan server
3.Pengembangan client (atau applet) yang menggunakan remote interface
4.Mengkompilasi source files dan mem-buat stub and skeletons
5.Memulai (start) RMI registry 
6.Menjalankan server dan client

Selasa, 06 Oktober 2015

sistem terdistribusi

1.      Sistem Terdistribusi terdiri dari dua kata yaitu “ Sistem” dan “Terdistribusi”. Sistem terdistribusi merupakan sekumpulan elemen yang saling berhubungan satu dengan yang lainnya dan membentuk satu kesatuan untuk menyelesaikan satu tujuan yang spesifik ataumenjalangkan sperangkat fungsi. Adapun terdistribusi berasal dari kata “distribusi” yang merupakan lawan kata “sentralisasi” yang artinya penyebaran, sirkulasi, penyerahan, pembagian menjadi bagian-bagian kecil.

2.      Persamaan keduanya adalah sekumpulan komputer yang saling terhubung dan sama-sama dapat mengakses sesuatu secara bersama-sama

3.      Manfaat sistem terdistribusi
Ø  Data sharing : mengijinkan pengguna untuk dapat mengakses data yang sama
Ø  Device sharing : mengijinkan pengguna untuk dapat mengakses perangkat keras yang sama
Ø  Communication : mengijinkan pengguna untuk dapat malakukan komunikasi jauh lebih mudah
Ø  Fleksibility
Ø  membagi beban kerja pada perangkat yang tersedia dengan cara efektif
Ø  dapat menambah komponen secara individu tanpa harus melakukan duplikasi sistem
Ø  asilitas local dapat disesuaikan  dengan kebutuhan local
Ø  memungkinkan pertumbuhan sistem secara terus menerus
Ø  susunan sistem bisa disesuaikan dengan pola organisasi perusahaan
Ø  mamungkinkan beberapa bagian/local melakukan percobaan dan konsep baru untuk mengurangi resiko kegagalan sistem secara keseluruhan
Ø  Multiuser computing : mengijinkan banyak user untuk melakukan akses dalam waktu yang bersamaan
4.      Karakterristik sistem terdistribusi

v  Resource Access and Sharing
Kemampuan menggunakan hardware, software atau data dimanapun dan kapanpun. Karakteristik ini juga yang menentukan siapa saja yang dapat mengakses sebuah resource dalam sebuah sistem terdistribusi. Salah satu contohnya dalam sebuah web, terdapat .htaccess yang hanya dapat diakses oleh user-user yang telah memiliki grant access terhadap file tersebut.
v  Openness (Keterbukaan)
Sebuah keterbukaan dalam sistem terdistribusi memiliki pengertian kemampuan sebuah sistem dalam mengembangkan fleksibilitas terhadap peningkatan kinerja sebuah sistem. Seperti penambahan module baru dan ketersediaan extension / plugin yang dapat terkoneksi dengan sistem lain. Contoh karakteristik ini misalkan sebuah aplikasi web banking yang dapat terhubung dengan sistem web milik perusahaan finance.
v  Concurrency
Semua proses dalam sistem terdistribusi dilakukan secara concurrency (secara bersama-sama). Hal ini dilakukan untuk mencegah inkonsistensi dan ketidak valid an sebuah data dan proses. Sebagai contoh dalam sebuah aplikasi web yang diakses oleh banyak user. Ketika server melakukan sebuah update. Maka semua user yang mengakses halaman web tersebut akan langsung mendapatkan update terbaru tersebut.
v  Scalability
Skalabilitas memiliki pengertian bahwa sebuah sistem terdistribusi harus dapat ditingkatkan kinerjanya tanpa mengubah komponen-komponen di dalamnya. Sebagai contoh, sebuah aplikasi web yang digunakan oleh user yang terlalu banyak. Maka untuk meningkatkan kinerja dari web tersebut agar tidak terjadi overload atau system down maka perlu dilakukan upgrade processor dan ram. Dalam proses upgrading tersebut, komponen dalam web tidak perlu diubah.
v  Fault Tolerance (Toleransi Kesalahan)
Kesalahan pasti terjadi dalam sebuah sistem. Entah itu disebabkan karena masalah jaringan, power supply, bencana alam atau human error. Sebuah sistem terdistribusi dirancang memliki kemampuan untuk menangani hal-hal tersebut. Contoh dalam hal ini adalah dibangunnya sebuah clustering server. Dimana ketika server utama mengalami down karena beberapa penyebab kesalahan, maka extended server langsung membackup sistem utama dan menggantikannya.
v  Transparency
Secara umum, transparansi disini tidak berlaku untuk user biasa yang mengutamakan fungsionalitas, apakah ia sedang menggunakan sistem yang terdistribusi atau tidak. Namun secara khusus bagi seorang pengelola baik itu developer atau administrator sistem sangat perlu untuk mengetahui arsitektur dari sistem yang sedang digunakan karena untuk mempermudah bagi mereka dalam mengembangkan dan memelihara sistem tersebut.

5.      Model dalam sistem terdistribusi:
a)      Model Arsitektur
b)      Model Interaksi
c)      Model Kegagalan


6.       Masalah Sistem Terdistribusi
ü  Kesulitan dalam membangun atau merancang perangkat lunaknya.
ü  Ketergantungan pada infrastruktur jaringan, jika infrastruktur jaringan lemah maka bisa mengganggu proses data yang sedang berjalan.
ü  Mudahnya akses data atau tingkat keamanan data yang kurang di lindungi.

7.       Contoh sistem terdistribusi
§  Intranet
*      Jaringan yang teradministrasi secara lokal
*      Terhubung ke internet melalui firewall
*      Menyediakan layanan internal dan eksterna
§  Internet
*      Jaringan komputer dan aplikasi yang heterogen
*      Mengimplementasikan protokol Internet
§  Mobile dan sistem komputasi ubiguitos
*      Menggunakan frekuensi radio sebagai media transmisi
*      Perangkat dapat bergerak kemanapun asal masih terjangkau dengan frekuensinya
*      Dapat menghandle/dihubungan dengan perangkat lain