Sabtu, 20 Juni 2015

GRID COMPUTING

Komputasi Grid adalah penggunaan sumber daya yang melibatkan banyak komputer yang terdistribusi dan terpisah secara geografis untuk memecahkan persoalan komputasi dalam skala besar.

Latar belakang

Perkembangan kecepatan prosesor berkembang sesuai dengan Hukum Moore, meskipun demikian bandwith jaringan komputer berkembang jauh lebih pesat. Semakin cepatnya jalur komunikasi ini membuka peluang untuk menggabungkan kekuatan komputasi dari sumber-sumber komputasi yang terpisah. Perkembangan ini memungkinkan skala komputasi terdistribusi ditingkatkan lebih jauh lagi secara geografis, melintasi batas-batas domain administrasi yang sudah ada.

Pesatnya perkembangan teknologi komputer di negara-negara maju, membuat para penelitinya semakin haus akan tenaga komputasi yang dapat menjawab tantangan dan permasalahan yang mereka hadapi. Walaupun sudah memiliki supercomputer dengan kapasitas yang sangat tinggi , apa yang sudah ada ini pun dirasa tetap kurang, karena mereka berusaha memecahkan permasalahan yang lebih besar lagi. Setelah semua komputer yg dimiliki seorang "peneliti haus tenaga komputasi" dipergunakan habis-habisan untuk memecahkan masalahnya, setelah berbagai cara untuk memecahkan masalah dicoba, dan dipilih yang paling efisien, tapi tetap masalahnya belum bisa dipecahkan juga, apa yang harus dia lakukan? Komputasi grid adalah salah satu jawaban dari pertanyaan ini.

Definisi

Menurut tulisan singkat oleh Ian Foster ada check-list yang dapat digunakan untuk mengidentifikasi bahwa suatu sistem melakukan komputasi grid yaitu :
  • Sistem tersebut melakukan koordinasi terhadap sumberdaya komputasi yang tidak berada dibawah suatu kendali terpusat. Seandainya sumber daya yang digunakan berada dalam satu cakupan domain administratif, maka komputasi tersebut belum dapat dikatakan komputasi grid.

  • Sistem tersebut menggunakan standard dan protokol yang bersifat terbuka (tidak terpaut pada suatu implementasi atau produk tertentu). Komputasi grid disusun dari kesepakatan-kesepakatan terhadap masalah yang fundamental, dibutuhkan untuk mewujudkan komputasi bersama dalam skala besar. Kesepakatan dan standar yang dibutuhkan adalah dalam bidang autentikasi, otorisasi, pencarian sumberdaya, dan akses terhadap sumber daya.

  • Sistem tersebut berusaha untuk mencapai kualitas layanan yang canggih, (nontrivial quality of service) yang jauh diatas kualitas layanan komponen individu dari komputasi grid tersebut.

Konsep Kerja Dari Grid Computing

Secara singkat, grid computing berarti menyatukan seluruh sumberdaya TI ke dalam sekumpulan layanan yang bisa digunakan secara bersama-sama untuk memenuhi kebutuhan komputing perusahaan. Infrastruktur grid computing secara kontinyu menganalisa permintaan terhadap sumberdaya dan mengatur suplai untuk disesuaikan terhadap permintaan tersebut. Dimana data disimpan atau computer mana yang memproses permintaan tidak perlu dipikirkan. Sebagaimana arus listrik; untuk memanfaatkannya, tempat pembangkit atau bagaimana pengabelan jaringan listrik tidak perlu diketahui. Dalam menyelesaikan masalah system monolitik dan sumberdaya yang terfragmentasi, grid computing bertujuan menciptakan keseimbangan antara pengaturan suplai sumberdaya dan kontrol yang fleksibel. Sumberdaya TI yang dikelola dalam grid mencakup :
  • Sumberdaya Infrastruktur. Mencakup hardware seperti penyimpan, prosesor, memori, dan jaringan; juga software yang didisain untuk mengelola hardware ini, seperti database, manajemen penyimpan, manajemen sistem, server aplikasi dan system operasi.
  • Sumberdaya Aplikasi. Adalah perwujudan logika bisnis dan arus proses dalam software aplikasi. Sumberdaya yang dimaksud bisa berupa aplikasi paket atau aplikasi buatan, ditulis dalam bahasa pemrograman, dan merefleksikan tingkat kompleksitas. Sebagai contoh, software yang mengambil pesanan dari seorang pelanggan dan mengirimkan balasan, proses yang mencetak slip gaji, dan logika yang menghubungkan telepon dari pelanggan tertentu kepada pihak tertentu pula.
  • Sumberdaya Informasi. Saat ini, informasi cenderung terfragmentasi dalam perusahaan, sehingga sulit untuk memandang bisnis sebagai satu kesatuan. Sebaliknya, grid computing menganggap informasi adalah sumberdaya, mencakup keseluruhan data pada perusahaan dan metadata yang menjadikan data bisa bermakna. Data bias berbentuk terstruktur, semi-terstruktur, atau tidak terstruktur, tersimpan di lokasi manapun, seperti dalam database, sistem file lokal.

Prinsip Kerja Grid Computing


Dua prinsip kerja utama grid computing yang membedakannya dari arsitektur komputasi yang lain, semisal mainframe, klien-server, atau multi-tier: virtualisasi dan provisioning.

Virtualisasi
Setiap sumberdaya (semisal komputer, disk, komponen aplikasi dan sumber informasi) dikumpulkan bersama-sama menurut jenisnya, lalu disediakan bagi konsumen (semisal orang atau program software). Virtualisasi berarti meniadakan koneksi secara fisik antara penyedia dan konsumen sumberdaya, dan menyiapkan sumberdaya untuk memenuhi kebutuhan tanpa konsumen mengetahui bagaimana permintaannya bisa terlayani.

Provisioning
Ketika konsumen meminta sumberdaya melalui layer virtualisasi, sumberdaya tertentu di belakang layer didefinisikan untuk memenuhi permintaan tersebut, dan kemudian dialokasikan ke konsumen. Provisioning sebagai bagian dari grid computing berarti bahwa system menentukan bagaimana cara memenuhi kebutuhan konsumen seiring dengan mengoptimasi jalannya sistem secara keseluruhan.

Manfaat Dan Hambatan Grid Computing


Penggunaan Grid Computing System untuk perusahaan-perusahaan akan banyak memberikan manfaat, baik manfaat secara langsung maupun tidak langsung. Beberapa manfaat tersebut antara lain :
  • Grid computing menjanjikan peningkatan utilitas, dan fleksibilitas yang lebih besar untuk sumberdaya infrastruktur, aplikasi dan informasi. Dan juga menjanjikan peningkatan produktivitas kerja perusahaan.
  • Grid computing bisa memberi penghematan uang, baik dari sisi investasi modal maupun operating cost–nya.
Beberapa hambatan yang dialami oleh masyarakat Indonesia dalam mengaplikasikan teknologi grid computing adalah sebagai berikut :

  • Manajemen institusi yang terlalu birokratis menyebabkan mereka enggan untuk merelakan fasilitas yang dimiliki untuk digunakan secara bersama agar mendapatkan manfaat yan lebih besar bagi masyarakat luas.
  • Masih sedikitnya Sumber Daya Manusia yang kompeten dalam mengelola grid computing. Contonhya kurangnya pengetahuan yang mencukupi bagi teknisi IT maupun user non teknisi mengenai manfaat dari grid computing itu sendiri.

Sumber :
  • https://id.wikipedia.org/wiki/Komputasi_grid
  • http://tiara-file.blogspot.com/2015/06/pengertian-grid-computing.html

Senin, 15 Juni 2015

Program Jaringan Sederhana Dengan Java


Pembuatan beberapa contoh program untuk mengecek ip, nama komputer, mengganti nama komputer dengan ip, menampilkan host name dan ip address, aplikasi client-server TCP sederhana menggunakan bahasa pemrograman java.

Program Untuk Mendapatkan Ip Yang Sedang Digunakan

import java.net.*;
public class getIP {
public static void main(String args[]) throws Exception {
InetAddress host = null;
host = InetAddress.getLocalHost();
byte ip[] = host.getAddress();
for (int i=0; i
if (i > 0) {
System.out.print(".");
}
System.out.print(ip[i] & 0xff);
}
System.out.println();
}
}

LOGIKA PROGRAM:
Untuk listing program yang pertama ini digunakan untuk menampilkan IPaddress yang ada pada komputer saya. Dimana penjelasan perintah java seperti berikut, untuk langkah yang pertama program akan mengimport java.net. Kemudian program membuat class dengan nama coba1, perintah yang selanjutnya program akan mendeklarasikkan InetAddress host benilai null kemudian host akan didapatkan dari nilai InetAddress host dan terakhir pada byte ip didapatkan nilai dari hostAddress. Langkah terkahir terdapat suatu perulangan for dimana di bagian ini akan terjadi pada saat variabel i bernilai 0, dan nilai variabel i lebih kecil dari IP jika kondisi ini terpenuhi maka nilai i akan bertambah.

Program Untuk Mendapatkan Nama Host PC Yang Sedang Digunakan

import java.net.*;
public class getName {
public static void main(String args[]) throws Exception {
InetAddress host = null;
host = InetAddress.getLocalHost();
System.out.println("Nama komputer Anda: " +
host.getHostName());
}

}

LOGIKA PROGRAM:
digunakan untuk mencetak host name dari komputer, dimana penjelasan dari program adalah sebagai berikut. Program awal akan menginport java.net, untuk program ini menggunakan nama class NamaPC. Selanjutnya masuk pada pendeklarasian dimana bagian pendeklarasian adalah InetAddress host = null; dan host = InetAddress.getLocalHost(); maksudnya adalah InetAddress host bernilai null dan host didapatkan dari nilai InetAddress pada localhost. Kemudian masukkan perintah yang digunakan untuk menampilkan host name dari komputer tersebut.

Program Untuk Mendapatkan IP Lain Yang Ada Dikomputer Yang Sedang Digunakan


import java.net.*;
public class IPtoName {
public static void main(String args[]) {
if (args.length == 0) {
System.out.println("Pemakaian: java IPtoName ");
System.exit(0);
}
String host = args[0];
InetAddress address = null;
try {
address = InetAddress.getByName(host);
} catch (UnknownHostException e) {
System.out.println("invalid IP - malformed IP");
System.exit(0);
}
System.out.println(address.getHostName());
}
}

LOGIKA PROGRAM:
Program diatas digunakan untuk IP lokal dengan IP komputer yang lain dimana penjelasannya adalah berikut ini. Program akan menginport java.net dan masuk pada nama class yang dibuat yaitu AmbilIPLain. Untuk program ini terdapat kondisi if dimana jika program nilainya lebih besar sama dengan 0 maka cetak nama pemakai dan IPtoName lalu program akan kembali ke semula dan program akan mendeklarasikkan String host yaitu 0 dan InetAddress address bernilai null. Kemudian program akan mengulang ke bagian address yang terdapat di InetAddress pada host kemudian apabila perulangan tersebut tidak terpenuhi maka akan mencetak invalid IP – malformed ip.
Untuk hasil output ini pada saat menjalankan program masukkan terlebih dulu IPAddress kemudian host name dari komputer. Jika sudah maka jalankan kembali program java tersebut maka host name tersebut akan terganti dengan IP. Dan akan mencetak IP komputer yang lain yaitu 10.189.46.244 dengan host name 10.189.46.244

Program Untuk NSLookup


import java.net.*;
public class NsLookup {
public static void main(String args[]) {
if (args.length == 0) {
System.out.println("Pemakaian: java NsLookup ");
System.exit(0);
}
String host = args[0];
InetAddress address = null;
try {
address = InetAddress.getByName(host);
} catch(UnknownHostException e) {
System.out.println("Unknown host");
System.exit(0);
}
byte[] ip = address.getAddress();
for (int i=0; i
if (i > 0) System.out.print(".");
System.out.print((ip[i]) & 0xff);
}
System.out.println();
}
}

LOGIKA PROGRAM:
Pada aplikasi ini akan menampilkan NsLookup yaitu menampilkan host name dan ip address yang ada pada laptop saya. Untuk penjelasan dari program adalah sebagai berikut ini, program akan mengimport java.net kemudian program akan masuk ke dalam class program yang bernama NsLookup. Pada program utama ini akan mencetak Pemakai : Java NsLookup hostname kemudian aka mendeklarasikan String host adalah 0 dan InetAddress address bernilai null kemudian apabila host tidak dikenal maka akan tampil Unknown host. Untuk bagian listing byte ip nilainya didapat dari address lalu apabila i > 0 dan i
Sehingga pada output akan mencetak host name yaitu hpmini-pc dan ip address yaitu 10.189.46.255

Program Server

import java.io.*;
import java.net.*;
public class CobaServer {
public final static int TESTPORT = 5000;
public static void main(String args[]) {
ServerSocket checkServer = null;
String line;
BufferedReader is = null;
DataOutputStream os = null;
Socket clientSocket = null;
try {
checkServer = new ServerSocket(TESTPORT);
System.out.println(“Aplikasi Server hidup …”);
} catch (IOException e) {
System.out.println(e);
}
try {
clientSocket = checkServer.accept();
is = new BufferedReader(new
InputStreamReader(clientSocket.getInputStream()));
os = new DataOutputStream(clientSocket.getOutputStream());
} catch (Exception ei) {
ei.printStackTrace();
}
try {
line = is.readLine();
System.out.println(“Terima : ” + line);
if (line.compareTo(“salam”) == 0) {
os.writeBytes(“salam juga”);
} else {
os.writeBytes(“Maaf, saya tidak mengerti”);
}
} catch (IOException e) {
System.out.println(e);
}
try {
os.close();
is.close();
clientSocket.close();
} catch (IOException ic) {
ic.printStackTrace();
}
}
}

LOGIKA PROGRAM:
Listing programvdiatas merupakan listing untuk sebuah komputer yang dijadikan server dimana server sebagai pusat dari semua client. Saat program server berhasil untuk dijalankan maka akan muncul pesan “Aplikasi Server Hidup…”

Program Client

import java.io.*;
import java.net.*;
public class simpleclient{
public final static int REMOTE_PORT = 5000;
public static void main(String args[]) throws Exception {
Socket cl = null;
BufferedReader is = null;
DataOutputStream os = null;
BufferedReader stdin = new BufferedReader(new
InputStreamReader(System.in));
String userInput = null;
String output = null;
// Membuka koneksi ke server pada port REMOTE_PORT
try {
cl = new Socket(args[0], REMOTE_PORT);
is = new BufferedReader(new
InputStreamReader(cl.getInputStream()));
os = new DataOutputStream(cl.getOutputStream());
} catch(UnknownHostException e1) {
System.out.println(“Unknown Host: ” + e1);
} catch (IOException e2) {
System.out.println(“Erorr io: ” + e2);
}
// Menulis ke server
try {
System.out.print(“Masukkan kata kunci: “);
userInput = stdin.readLine();
os.writeBytes(userInput + “\n”);
} catch (IOException ex) {
System.out.println(“Error writing to server…” + ex);
}
// Menerima tanggapan dari server
try {
output = is.readLine();
System.out.println(“Dari server: ” + output);
} catch (IOException e) {
e.printStackTrace();
}
// close input stream, output stream dan koneksi
try {
is.close();
os.close();
cl.close();
} catch (IOException x) {
System.out.println(“Error writing….” + x);
}
}
}