Senin, 17 Maret 2014

Konsep Objek Terdistribusi dan Objek Interface

Sistem komputer terdistribusi adalah sebuah sistem yang memungkinkan aplikasi komputer beroperasi secara terintegrasi pada lebih dari satu lingkungan yang terpisah secara fisis. Ciri khas sistem komputer terdistribusi adalah heterogenitas dalam berbagai hal: perangkat keras, sistem operasi, dan bahasa pemrograman. Adalah tidak mungkin untuk mengembangkan sistem terdistribusi yang homogen secara paksaan, karena secara alamiah sistem komputer terdistribusi tumbuh dari lingkungan yang heterogen. Kata kunci dalam menjembatani perbedaan-perbedaan yang muncul adalah interoperabilitas (interoperability).

Interoperabilitas adalah kemampuan saling bekerjasama antar sistem komputer. Dalam konteks sistem komputer terdistribusi, meskipun komponen-komponen aplikasi dibuat dengan bahasa pemrograman yang berbeda, menggunakan development tools yang berbeda, dan beroperasi di lingkungan yang beragam, mereka tetap harus dapat saling bekerjasama.

1. CORBA
CORBA (Common Object Request Broker Architecture) adalah sebuah middleware yang dihasilkan oleh sebuah konsorsium yang bernama OMG (Object Management Group). CORBA didesain agar komponen cerdas diizinkan untuk dapat saling menjelajah satu dengan yang lain dan saling berinteraksi melalui suatu objek bus yang bernama ORB (Object Request Broker). Melalui ORB inilah objek–objek yang terletak di local atau di remote pada sistem terdistribusi berbasis CORBA saling berkomunikasi. Untuk mendefinisikan sistem berbasis CORBA terlebih dahulu kita harus mendefinisikan IDL (Interface Definition Language).
CORBA dikatakan sebagai sebuah spesifikasi middleware yang ideal yang mendukung suatu sistem terdistribusi yang menerapkan teknologi berbasis objek, selain itu CORBA juga dikatakan sebagai suatu sistem yang terbuka, artinya bahwa teknologi CORBA merupakan sebuah standarisasi yang terbuka bagi siapasaja yang ingin menerapkan. Dengan adanya dua hal tersebut, pengembang dapat membangun sebuah aplikasi yang dapat berkomunikasi walaupun satu dengan yang lainnya menggunakan bahasa pemrograman yang berbeda.

2. COM
Component Object Model (COM) adalah teknologi yang diciptakan oleh Microsoft untuk memungkinkan komunikasi antaraplikasi. Teknologi ini sudah  disediakan untuk beberapa platform tetapi kebanyakan digunakan untuk platform Windows. Teknologi ini sudah diperkenalkan oleh microsoft pada tahun 1993 tetapi baru populer pada tahun 1997. Perkembangan teknologi COM ini bermula dari teknologi OLE (Object Linking and Embedding) yang dibuat untuk memungkinkan aplikasi dapat saling bertukar data.

3. DCOM
Pada tahun 1996 diperkenalkan Distributed Component Object Model (DCOM) sebagai jawaban Microsoft atas CORBA. DCOM dibandingkan dengan COM memiliki  kelebihan mampu untuk terdistribusi dan berkomunikasi antarkomponen melalui jaringan. DCOM dan CORBA saling berkompetisi untuk menjadi standar dalam distribusi komponen melalui internet. Namun dibalik kesulitan dalam hal keamanan, sebuah browser yang berjalan menggunakan teknologi http sudah dapat menggantikan teknologi tsb.

4. RMI
RMI adalah perluasan dari local method invocation yang memungkinkan sebuah objek yang hidup dalam satu proses untuk memohon method objek yang berada di proses lain. (George Coulouris hal 166).
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. Dengan dibolehkannya program Java memanggil method pada remote obyek, RMI membuat pengguna dapat mengembangkan aplikasi Java yang terdistribusi pada jaringan.
Aplikasi RMI seringkali terdiri dari dua program terpisah yaitu server dan client. Aplikasi server semacam ini biasanya membuat beberapa objek remote, menyediakan referensi terhadap objek-objek tersebut sehingga dapat diakses, serta menunggu client memanggil method dari objek-objek remote tersebut. Aplikasi client mendapatkan referensi remote ke satu atau lebih objek remote di server dan menjalankan method dari objek tersebut.
RMI menyediakan mekanisme dimana server dan client berkomunikasi dan memberikan informasi secara timbal balik. Aplikasi semacam ini seringkali disebut aplikasi objek terdistribusi.

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.
Definisi yang ada pada remote interface menentukan karakteristik methods yang disediakan server yang dapat dilihat oleh client. Client programmer harus dapat mengetahui methods apa yang disediakan server dan bagaimana memanggilnya langsung dengan melihat ke remote interface. Client mendapatkan referensi ke remote object melalui RMI registry.
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

Implementasi RMI

Perusahaan programming Avitek yang berlokasi di Amerika Serikat, membuat program sistem accounting untuk intranet yang memungkinkan klien untuk meng-update dan mengubah data dengan mudah. Tujuan dari proyek ini adalah untuk membuat dan mendukung pembuatan dari bukti nyata untuk konsep penggunaan Java yang dikombinasikan dengan database.
Perusahaan CEAS Consulting yang menyediakan jasa custom re-engineering dan otomasi proses untuk perusahaan-perusahaan manufakturing dan teknik, telah membuat program sistem terdistribusi untuk klien mereka.

Keuntungan RMI

•  Salahsatu keuntungan RMI adalah kemampuan untuk download bytecodes (code) dari suatu object’s class, jika class tsb tidak terdefinisikan di VM-nya penerima.
•  Type-type dan metode-metode object (class), yang terletak dalam satu VM, dapat dikirim ke VM yang lain, yang mungkin saja remote.
•  Sifat-sifat object yang terkirim ini tidak berubah sama sekali

Kelemahan RMI

proses pembukaan socket yang kadang-kadang tidak dapat diimplementasikan lewat jaringan internet, tapi hal ini bisa diatasi dengan menggunakan Spring HttpInvoker, sama persis dengan RMI tapi lewat protokol HTTP.

Referensi :

Link Anggota Kelompok :

Perkembangan Komputasi dan Penerapannya

Komputasi adalah sebuah proses perhitungan, pemrosesan informasi atau pemecahan masalah dengan menggunakan algoritma. Asal muasal lahirnya proses komputasi berasal dari kegiatan hitung menghitung yang dilakukan manusia sejak berabad-abad silam. Manusia mulai mengenal angka dan cara menghitung, misalnya menghitung barang hasil barter, sistem kalender dan rasi bintang. Alat-alat yang digunakan pada masa itu juga masih sangat sederhana seperti pena, kertas dan batu. Seiring perkembangan zaman perhitungan manusia pun semakin kompleks dan banyak, maka terciptalah mesin penghitung, komputer dan komputer berkembang menjadi sebuah alat yang bisa melakukan lebih dari sekedar perhitungan.

Jadi awal perkembangan komputasi modern digagas oleh John von Neumann (1903-1957), Beliau adalah ilmuan yang meletakkan dasar-dasar komputer modern. Von Neumann menjadi salah ilmuwan terbesar pada zaman nya. Von Neumann menyumbangkan hasil karyanya dalam bidang matematika, teori kuantum, game theory, fisika nuklir, dan ilmu komputer. Berkat teori-teori nya itulah pada saat itu computer mengalami perkembangan dan kemajuan pesat terlihat saat beliau menjadi seorang konsultan pada pengembangan komputer ENIAC. Karena jasa-jasa nya John von Neumann di sebut bapak komputasi modern. Beliau juga merancang konsep arsitektur komputer yang masih dipakai sampai sekarang. Arsitektur Von Nuemann adalah seperangkat komputer dengan program yang tersimpan (program dan data disimpan pada memori) dengan pengendali pusat, I/O, dan memori.

Berikut adalah penerapan komputasi diberbagai bidang :

1. Bidang Matematika
Pada bidang ini tentunya lebih mengarah kepada pemecahan masalah pasti atau mendekati kepastian dalam perhitungan angka – angka. Metode numerik, scientific computing, metode elemen hingga, metode beda hingga, scientific data mining dan scientific process control. Pada bidang ini, biasanya masalah berupa dalam skala besar.

2. Bidang Fisika
Terdapat Computational Physics yang mempelajari algoritma numerik untuk memecah kan teori kuantitatif fisika yang ada. Contohnya menentukan besarnya medan magnet dan membandiangkan hubungan antara medan magnet dengan panjang kawat.

3. Bidang Kimia
Algoritma komputer yang merupakan solusi dari sebuah masalah dalam hal ini dapat menggabungkan senyawa – senyawa kimia untuk mendapatkan suatu senyawa baru yang bila dilakukan secara manual sudah pasti menimbulkan resiko yang lebih besar jika dibandingkan dengan proses komputasi.

4. Bidang Ekonomi
Terdapat Computational Economics yang mempelajari titik pertemuan antara ilmu ekonomi dan ilmu komputer mencakup komputasi keuangan, statistika, pemrograman yang di desain khusus untuk komputasi ekonomi dan pengembangan alat bantu untuk pendidikan ekonomi.

5. Bidang Geologi
Pada bidang geologi teori komputasi biasanya digunakan untuk pertambangan, sebuah sistem komputer digunakan untuk menganalisa bahan-bahan mineral dan barang tambang yang terdapat di dalam tanah.

6. Bidang Geografi
Terdapat penggunaan komputasi yang diterapkan pada GIS (Geographic Information System) yang berguna untuk menyimpan, memanipulasi dan menganalisa informasi geografi.

Senin, 10 Maret 2014

Contoh Sistem Terdistribusi

Sistem Terdistribusi adalah sebuah sistem yang terdiri dari beberapa komponen yang terdapat di dalam sebuah jaringan komputer.
Ada beberapa contoh sistem terdistribusi, berikut adalah contohnya :
Internet
Ø  Jaringan komputer dan aplikasi yang heterogen
Ø  Mengimplementasikan protokol Internet












Intranet
Ø  Jaringan yang teradministrasi secara lokal
Ø  Terhubung ke internet melalui firewall
Ø  Menyediakan layanan internal dan eksternal












Mobile Computing (Sistem Komunikasi Telepon Seluler)
Ø  Menggunakan frekuensi radio sebagai media transmisi
Ø  Perangkat dapat bergerak kemanapun asal masih terjangkau dengan frekuensinya
Ø  Dapat menghandle/dihubungan dengan perangkat lain












Pada sistem terdistribusi terdapat masalah yang berkaitan dengan :
Ø  Software , bagaimana merancang dan mengatur software dalam distribusi sistem
Ø  Ketergantungan pada infrastruktur jaringan
Ø  Kemudahan akses ke data yang di share, memunculkan masalah keamanan

Link anggota kelompok :

Referensi :