Minggu, 21 Juni 2015

Grid Computing (Komputasi Grid)

A. Pengertian Grid Computing


Secara definisi 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.





Dalam buku The Grid: Blue Print for a new computing infrastructure dijelaskan bahwa yang dimaksud dengan komputasi grid adalah infrastruktur perangkat keras dan perangkat lunak yang dapat menyediakan akses yang bisa diandalkan, konsisten, tahan lama dan tidak mahal terhadap kemampuan komputasi mutakhir yang tersedia.


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 Whats Is The Grid yang ditulis 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.


Jadi, Apa itu Grid Computing atau Komputasi Grid?


Bisa disimpulkan bahwa Grid Computing atau Komputasi Grid ini adalah penggunaan sumber daya yang melibatkan banyak komputer yang terdistribusi dan terpisah secara geografis untuk memecahkan persoalan komputasi dalam skala besar.


B. Kelemahan dan Kelebihan Grid Computing

Setelah mengetahui apa itu Grid Computing, selanjutnya pada artikel ini akan dijelaskan tentang kelebihan dan kekurang Grid Computing, berikut adalah penjelasannya.

Kelebihan Grid Computing :
  • Lebih hemat biaya dalam penggunaan sejumlah tertentu sumber daya komputer.
  • Sebagai cara untuk memecahkan masalah yang mungkin tidak dapat dipecahkan tanpa sejumlah besar daya komputasi
  • Sumberdaya dari banyak komputer dapat kooperatif dan dimanfaatkan secara sinergis, serta dikelola sebagai sebuah kolaborasi mencapai tujuan bersama
  • Perkalian dari sumber daya: Resource pool dari CPU dan storage tersedia ketika idle

  • Lebih cepat dan lebih besar: Komputasi simulasi dan penyelesaian masalah apat berjalan lebih cepat dan mencakup domain yang lebih luas
  • Software dan aplikasi: Pool dari aplikasi dan pustaka standard, Akses terhadap model dan perangkat berbeda, Metodologi penelitian yang lebih baik
  • Data: Akses terhadap sumber data global, dan Hasil penelitian lebih baik
 

Kekurangan Grid Computing
Menurut Myerson (2009), penggunaan grid computing tidak terlepas dari beberapa isu serta resiko yang mungkin dapat terjadi bagi perusahaan.

Beberapa isu yang harus dipertimbangkan dan diperhatikan, antara lain:
  • Tidak adanya interoperabilitas antar sistemInteroperabilitas adalah kemampuan dari suatu sistem untuk berinteraksi dan berfungsi dengan sistem lain, di masa kini atau di masa mendatang, tanpa batasan  akses atau implementasi. 
  • Dalam  grid computing, permasalahan yang paling sering dijumpai adalah perbedaan format data yang dapat menghambat impor dan ekspor data dari komputer satu ke  komputer lainnya. Hal ini menyebabkan tidak terjadinya interperobilitas dalam sistem  grid computingsehingga diperlukan reformat data atau penggunaan suatu aplikasi agar data tersebut bisa diubah dan dipakai dalam suatu format tertentu. 
  • Hadirnya biaya tersembunyi. Misal, suatu perusahaan bisa dikenakan biaya yang lebih tinggi dari jaringan penyedia layanan  grid computing untuk penyimpanan dan aplikasi database yang berisi terabyte data. Hal ini mungkin melampaui biaya perusahaan  yang sedang berhemat  untuk  infrastruktur baru,  training bagi karyawan, atau pembiayaan untuk lisensi baru beberapa perangkat lunak. 
  • Latency data yang besar. Latency data yang besar seringkali menjadi kendala bagi perusahaan akibat letaknya  yang jauh dari penyedia layanan atau terpisah secara geografis dengan perusahaan penyedia layanan grid computing


C. Implementasi Grid Computing
Setelah mengetahui kelebihan dan keurangan dari Grid Computing ini, selanjutnya adalah tentang Implementasi Grid Computing.

Contoh yang terkenal dari komputasi grid dalam domain publik adalah SETI yang sedang berlangsung (Search for Extraterrestrial Intelligence) @ Home proyek di mana ribuan orang berbagi siklus prosesor yang tidak terpakai dari PC mereka dalam pencarian luas untuk tanda-tanda "rasional" sinyal dari luar angkasa. Menurut John Patrick, IBM wakil presiden untuk strategi Internet, "hal besar berikutnya akan komputasi grid.

Sejumlah perusahaan, kelompok profesional, konsorsium universitas, dan kelompok lain telah mengembangkan atau sedang mengembangkan kerangka kerja dan perangkat lunak untuk mengelola proyek komputasi grid. Masyarakat Eropa (EU) mensponsori sebuah proyek untuk grid untuk fisika energi tinggi, observasi bumi, dan aplikasi biologi. Di Amerika Serikat, Teknologi Grid Nasional prototyping grid komputasi untuk infrastruktur dan akses grid untuk orang-orang. Sun Microsystems menawarkan perangkat lunak Engine Grid. Digambarkan sebagai pengelolaan sumber daya didistribusikan (DRM) alat, Grid Engine memungkinkan insinyur di perusahaan-perusahaan seperti Sony dan Synopsys ke kolam renang siklus komputer hingga 80 workstation pada suatu waktu. (Pada skala ini, komputasi grid dapat dilihat sebagai kasus yang lebih ekstrim load balancing.)

Sumber :

http://thesaprol.blogspot.com.html

Logika sebuah Aplikasi Sederhana Client-Server TCP Sederhana :

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

Ø  Berikut adalah contoh listing program untuk mendapatkan ip yang sedang digunakan : 



            Pada statement diatas pertama listing program akan mengimport java.net. Kemudian kita buat class bernama getIP, selanjutnya kita mendeklarasikan 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.

Ø  Berikut adalah contoh listing program untuk mendapatkan nama komputer yang sedang dipakai : 


            Pada statement diatas Pertama – tama program akan mengimport java.net, kemudian kita buat class bernama getName. Selanjutnya kita deklarasikan InetAddress host = null; dan host = InetAddress.getLocalHost(); maksudnya adalah InetAddress host bernilai null dan host didapatkan dari nilai InetAddress pada localhost.

Ø  Berikut adalah contoh listing program untuk mengganti nama komputer dengan ip yang sedang digunakan : 



            Pada statement diatas pertama program akan mengimport java.net terlebih dahulu dan masuk pada nama class yang dibuat yaitu IPtoName. 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.
Kemudian 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 seperti tampilan diatas.

 Ø  Berikut ini adalah program untuk menampilkan host name dan ip address pada komputer yang digunakan : 



        Statement diatas pertama 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

Listing Aplikasi Client-Server TCP Sederhana :

Aplikasi Client-Server TCP sederhana
simpleServer.java
import java.io.*;
import java.net.*;
public class simpleServer {
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();
}
}
}
simpleClient.java
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);
}
}
}

1. Compile kedua program diatas pada cmd (javac simpleServer.java dan javac simpleClient.java). Jika memakai 1 pc buka 2 cmd, jika tidak bisa membuka 2 cmd sekaligus buka cmd yang lainnya denga run as administrator.

2. Jalankan server terlebih dahulu, kemudian buka cmd baru untuk menjalankan client. Pada server java simpleServer sedangkan client java simpleClient (nama pc server).

3. Pada client masukkan masukkan kata kunci “salam” dan coba ketikkan kata apa saja dan juga perhatikan pada server apakah kata tersebut masuk atau tidak.


Ø  Berikut output jika kata kunci yang dimasukkan benar : 



Ø  Berikut output jika kata kunci yang dimasukkan salah : 




Instalasi Windows Server 2012 ( Step by Step )

1. Masukkan DVD atau ISO Installer. Lalu mulai hidupkan Server / PC / VM. Proses start up akan tampil seperti gambar dibawah ini.


2. Selanjutnya kita pilih Jenis Windows Server yang akan digunakan. Kita bisa memilih Windows Server 2012 Datacenter Server with a GUI  atau Essential Server. Lebih detail akan versi Windows Server 2012 ini, silahkan simak link dibawah ini :


3. Klik “I Accept the license terms” lalu klik Next.


4. Saat muncul pilihan dibawah ini, klik “Custom : Install Windows only ( advanced )”.


5. Selanjutnya proses pemilihan harddisk, saya sarankan agar melakukan partisi lebih dulu sebelum proses installasi dengan meng-klik “Drive Option ( advanced ).



6. Lakukan partisi masing-masing harddisk.


7. Pilih harddisk yang akan kita install OS Windows Server 2012, lalu klik Next.


8. Tunggu proses seperti gambar dibawah ini hingga selesai.



9. Setelah semua proses diatas selesai, selanjutnya klik menu “Restart Now”.



10. Selanjutnya tunggu proses konfigurasi awal hingga selesai dan selanjutnya akan melakukan proses Auto Restart.



12. Saat muncul tampilan untuk mengisi produk key, kita bisa entry 
sesuai license yang kita miliki atau kita klik menu Skip.



13. Selanjutnya akan muncul tampilan untuk entry password Administrator ( Admin Local ). Masukkan password sesuai dengan yang kita inginkan lalu kita klik Finish.



14. Selanjutnya akan muncul tampilan dibawah ini, tekan tombol Ctrl + Alt + Del bersamaan.


15. Lalu masukkan password Administrator yang telah kita buat tadi.


16. Selanjutnya akan muncul tampilan seperti gambar dibawah ini yang menunjukkan bahwa kita sudah masuk ke dalam Windows Server 2012 dan siap kita konfigurasi untuk keperluan sesuai kebutuhan kita.


17. Beberapa hal yang perlu kita konfigurasi lebih dulu adalah mengenai harddisk kedua kita yang biasanya belum di Online-kan. Masuk ke menu File and Storage Services pada Server Manager. Pilihharddisk lalu Klik kanan dan pilih Online.


18. Selanjutnya setelah status harddisk Online, klik kanan lalu pilih New Volume untuk membuatpartisi dan format harddisk.


19. Kemudian kita juga perlu melakukan konfigurasi IP Address untuk server kita ini. Masuk ke menuNetwork and Sharing Center lalu kita setting IP Address untuk ethernet server kita ini sesuai jaringan LAN kita.


20. Kita juga perlu melakukan konfigurasi pada Hostname Server kita. Misalnya pada contoh ini saya berikan Hostname / Nama Komputer dengan XPS-DC-SERVER.



21. Okey, untuk tahap installasi OS Windows Server 2012 sudah selesai.