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. Semakin cepat jalur komunikasi terbuka, maka peluang untuk menggabungkan kinerja komputasi dari sumber-sumber komputasi yang terpisah menjadi semakin meningkat. Dengan demikian, skala komputasi terdistribusi dapat ditingkatkan secara geografis lebih jauh lagi, melintasi batas-batas domain administrasi yang ada.

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.
"A computational grid is a hardware and software infrastructure that provides dependable, consistent, pervasive, and inexpensive access to high-end computational capabilities."Seandainya kelak dikemudian hari teknologi yang dibutuhkan untuk mewujudkan visi paradigma komputasi grid ini sudah mapan, peluang akan semakin terbuka bagi kerjasama lintas organisasi, lintas benua dan lintas bangsa. Akan terbuka peluang bagi peneliti di Indonesia yang ingin melakukan komputasi yang sangat rumit, dengan menggunakan supercomputer tercepat di dunia, tanpa harus melakukan investasi besar-besaran dalam bidang teknologi informasi.Ide awal komputasi grid dimulai dengan adanya distributed computing, yaitu mempelajari penggunaan komputer terkoordinasi yang secara fisik terpisah atau terdistribusi. Sistemterdistribusi membutuhkan aplikasi yang berbeda dengan sistem terpusat. Kemudian berkembang lagi menjadi parallel computing yang merupakan teknik komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan .Setidaknya ada dua sisi yang mendorong semakin berkembangnya grid computing saat ini. Kebutuhan akan sumber daya komputasi yang besar di berbagai bidang serta adanya sumber daya komputasi yang tersebar. Grid computing menawarkan solusi komputasi yang murah, yaitu dengan memanfaatkan sumber daya yang tersebar dan heterogen serta pengaksesan yang mudah dari mana saja. Globus    
          Toolkit adalah sekumpulan perangkat lunak dan pustaka pembuatan lingkungan komputasi grid yang bersifat open-source.
Dengan adanya lingkungan komputasi grid ini diharapkan mempermudah dan mengoptimalkan eksekusi program-program yang menggunakan pustaka paralel.Dalam tulisan What is the Grid?
A Three Point Checklist oleh Ian Foster (bapak dari Komputasi Grid) ada check-list yang dapat digunakan untuk mengidentifikasi bahwa suatu sistem melakukan komputasi grid yaitu :
       1.      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.
       2.      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.Misalnya TCP/IP .
        3.      Sistem tersebut berusaha untuk mencapai kualitas layanan yang canggih, (nontrivial quality of service) yang jauh diatas kualitas layanan komponen individu dari komputasi grid tersebut.
Berikut ini adalah beberapa konsep dasar dari Komputasi Grid :·   
  *   Sumber daya dikelola dan dikendalikan secara lokal·        
 * Sumber daya berbeda dapat mempunyai kebijakan dan mekanisme berbeda, mencakup            sumber daya komputasi dikelola oleh sistem batch berbeda,
 * Sistem storage berbeda pada node berbeda, Kebijakan berbeda dipercayakan kepada   user yang sama pada sumber daya berbeda pada Grid.·        
  * Sifat alami dinamis: Sumber daya dan pengguna dapat sering berubah·       
 Lingkungan kolaboratif bagi e-community (komunitas elektronik, di internet)Tiga hal yang di-,sharing dalam sebuah sistem grid, antara lain : Resource, Network dan Proses.
Kegunaan / layanan dari sistem grid sendiri adalah untuk melakukan high throughput computing dibidang penelitian, ataupun proses komputasi lain yang memerlukan banyak resource komputer.Secara generik,
keuntungan dasar dari penerapan komputasi Grid, yaitu:·     
*    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 baikIndonesia sudah menggunakan sistem Grid dan diberi nama InGrid (Inherent Grid).
   * Sistem komputasi grid mulai beroperasi pada bulam Maret 2007 dan terus dikembangkan sampai saat ini. Grid ini menghubungkan beberapa perguruan tinggi negeri dan swasta yang tersebar di seluruh Indonesia dan beberapa instansi pemerintahan seperti Badan Meteorologi dan Geofisika .
Secara umum, elemen-elemen dari infrastruktur Grid adalah :·         Hardware/Sumber daya (Dibuat tersedia dari site-site berbeda yang terdistribusi secara geografis, mencakup CPU/Storage/Instruments, dll…)·         Software: Sesuatu yang menghubungkan bersama-sama semua sumber daya ini: middleware. Beberapa aplikasi untuk menggunakan sumber daya komputasi yang dibuat tersedia·         Orang-orang: Siapa yang memelihara Grid, dan Siapa yang menggunakan GridMiddleware adalah lapisan atau layer perangkat lunak (software) yang terletak antara sistem operasi dan aplikasi.
 Elemen-elemen dasar dari Middleware ini adalah :·         Keamanan (security)·         Pengelolaan sumber daya (resource management)·         Pengelolaan data (data management)·         Layanan informasi (information services)Solusi bagi middleware yang telah tersedia, di antaranya adalah :·         Globus Toolkit (Argonne+ISI)·         LCG/Glite (dari proyek Uni Eropa)·         Gridbus (Melbourne, Australia)·         Unicore… (Jerman)·         Dan masih banyak lainnya…Secara generik.
    Keuntungan Utama Penggunaan Grid Computing      
       - Teknologi  grid computing mampu menjadi solusi bagi perusahaanperusahaan untuk memiliki suatu    sistem informasi yang berteknologi canggih,      yang mampu mendukung kinerja perusahaan, dengan biaya yang lebih murah.     
        - Kemampuan teknologi tersebut untuk mendukung kinerja perusahaan tidak      diragukan lagi.  Teknologi  grid computing membuka peluang bagi adanya      kerjasama lintas organisasi, lintas benua, dan lintas bangsa. Selain itu, terbuka      pula peluang untuk  melakukan komputasi yang rumit dengan menggunakan      superkomputer yang canggih, tanpa harus melakukan investasi besar-besaran         dalam bidang teknologi informasi
       Grid computing menjadi suatu hal yang menjanjikan bagi perusahaan disebabkan oleh 3 hal, yaitu:
       (1) lebih hemat biaya dalam  penggunaan sejumlah tertentu sumber daya komputer,
       (2) sebagai cara untuk memecahkan masalah yang mungkin tidak dapat dipecahkan tanpa sejumlah besar daya komputasi, dan
       (3) karena menunjukkan bahwa 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
       Kekurangan pada grid computing yang lebih saya tekankan disini adalah mengenai hambatan yang dialami oleh masyarakat Indonesia dalam mengaplikasikan teknologi grid computing. Hambatan-hambatan tersebut adalah sebagai berikut :
        1.      Manajemen institusi  yang terlalu birokratis menyebabkan mereka enggan untuk fasilitas yang dimiliki untuk digunakan secara bersama agar mendapatkan manfaat yang lebih besar bagi masyarakat luas.
        2.      Masih sedikitnya sumber daya manusia yang  kompeten dalam mengelola grid computing.
        3.      Kurangnya pengetahuan yang mencukupi bagi teknisi IT maupun user non teknisi mengenai manfaat dari grid computing itu sendiri.
Dengan adanya beberapa manfaat dan hambatan mengenai tersedianya grid computing di Indonesia, maka harus ada solusi yang berfungsi untuk mewujudkan manfaat dan menghilangkan hambatan yang muncul tersebut. Solusi itu antara lain adalah sebagai berikut :
         1.      Memberikan sosialisasi pada instansi pendidikan maupun institusi non pendidikan mengenai manfaat serta biaya dengan menggunakan sistem komputasi grid.
         2.      Kerjasama riset dan pengembangan antara departement dalam suatu perguruan tinggi dan industri.
         3.      Diberikannya mata kuliah tentang grid computing sehingga dapat menghasilkan generasi yang menguasai teknologi ini.

        4.      Adanya pengembangan aplikasi yang relevan dengan grid computing.

Kamis, 11 Juni 2015

Tugas Logika Program

 Dibawah ini ada beberapa contoh 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 program untuk mendapatkan ip yang sedang digunakan : 
Description: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjr70V0Dy16_cF9NLF1eXRycQHrdSVwFA0R6lJ17R0xfh-ALAi2GcDwJWUFWnhVtG7Kmp9zfm7DctywpQKhfs7x_U9IC6_TZ5Uhx1XMqjODlX35KVRMSBm-M4GVGVmVPtdmDSInb9_SBNk/s1600/1.JPG

            Pertama 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 program untuk mendapatkan nama komputer yang sedang dipakai : 
Description: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-Tc7Amv13pyrAFXySib-I3Acr5CsKvmpIVzcSnKZEih1ARMKnqaijazLqdzuVY4-mJVulQtQYQUMgYjj3a1v4H6vtn8T4U2EFzg79g7gpGPJ0mTU08u0rsda2nGMo81NiE1jdBwHpfwE/s1600/2.JPG

            Pertama – tama program akan mengimport java.net, lalu 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 program untuk mengganti nama komputer dengan ip yang sedang digunakan : 
Description: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOzv7U2DGqJ8D2blNwloAo7F9heqwVbRYLeynZHsL89C80kliioeQ4ljmvTMuxXwAAkHWreDNFaqYwK9XNR3-pyOS9h6hptF2300oLR_EG4oapm4ds6o-Cp98cugzVRlicoJ46QyXjADI/s1600/3.JPG

            Pertama program akan mengimport java.net 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.
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

-Berikut ini adalah program untuk menampilkan host name dan ip address pada komputer yang digunakan : 
Description: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJB56gvlg0GsLyJh2pxHZ6-m77OMuGmq3SpNK5VyOmh6Dd5pk_A6Wp1OUHRMbz-y8uwiYee8Q_HeBPlJPInMjufkGyROB-UD9dEsCgO3qfuedqCSFSvcgr4_X4FQYT9cigTSKLvznpnbs/s1600/4.JPG

        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

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 : 
Description: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMZQ1pJI1mt6Z2sVJEI-vvf4-s0AfubgqCxb-CG5cXbHL-YLU7LVMuaq24Z43kMJ_2AfZvoTBzNaKJBseow9OW9U2gcF7vlnAfdpE58LKn8Xz7NpyRMdtFTxVCPOzkKkH8z4wKelobsB8/s1600/5.JPG


-Berikut output jika kata kunci yang dimasukkan salah : 
Description: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaPUYbKYneOY5hRjPQMHakq_m3vj6D_RSeGj6-6DsxWjlX3zqmByBc2gCC6dhcjInD8pZhxOognMpbJ9geJ46emsd5kxNIHxQr6DxQEluxnb9v3Rt9st7-0YzPVn7KouZr89t8NUzhVco/s1600/6.JPG