Sunday, February 8, 2015

DISTRIBUTED & PARALLEL COMPUTING

1.     DISTRIBUTED COMPUTING
Pengertian
Komputasi terdistribusi adalah bagian dari bidang ilmu komputer, yang menjelaskan tentang studi didistribusikan sistem. Sebuah sistem terdistribusi adalah sebuah sistem perangkat lunak, yang terletak pada komputer jaringan komunikasi dan mengkoordinasi dengan menggunakan pesan. Komponen dalam interaksi satu dengan lainnya bertujuan untuk mencapai tujuan yang sama.

Tujuan dan Keuntungan
Tujuan utama dari sistem komputasi terdistribusi adalah untuk menghubungkan setiap pengguna dengan sumber daya yang terpisah secara fisik ke dalam suatu sistem dengan menggunakan cara yang terkoordinasi. Dan dengan memerlukan kapasitas yang lebih besar dari kapasitas individual komponennya.
Openness merupakan properti dari sistem terdistribusi dimana setiap sub-sistem secara terus-menerus terbuka untuk berinteraksi dengan sistem yang lain. Salah satu masalah yang dihadapi dalam usaha menyatukan sumber daya yang terpisah ini antara lain adalah skalabilitas, dapat atau tidaknya sistem tersebut dikembangkan lebih jauh untuk mencakup sumber daya komputasi yang lebih banyak.
Konsekuensinya, sistem terdistribusi terbuka memberikan beberapa tantangan berikut:
·        Monotonicity.
Sesuatu yang telah dipublikasikan dalam sistem terbuka (open system) maka tidak dapat diambil kembali.

·        Pluralism.
Sub-sistem-subsistem berbeda dalam sistem open distributed dapat mempunyai informasi yang berbeda, dan mungkin menyebabkan konflik. Tidak ada pengatur kebenaran sentral dalam sistem open distributed.
·        Unbounded nondeterminism.
Subsistem-subsistem dapat naik dan turun, dan link komunikasi dapat masuk dan keluar antar sub-sistem dalam sistem open distributed. Karena itu, waktu yang diperlukan untuk menyelesaikan suatu operasi tidak dapat dibatasi dan dipastikan.

Kelemahan dan Kerugian
Jika tidak direncanakan dengan tepat, suatu distributed system dapat menurunkan reliabilitas total dari komputasi jika ketidak-tersediaan dari suatu node dapat menyebabkan gangguan bagi node-node lain. Troubleshooting dan diagnosing terhadap masalah dalam distributed system dapat menjadi lebih sulit, karena perlu analisis yang berkaitan dengan node jauh atau menginspeksi komunikasi antar node di dalam sistem.
Banyak tipe komputasi tidak cocok bagi lingkungan terdistribusi, biasanya yang berhubungan dengan jumlah komunikasi jaringan atau sinkronisasi yang dibutuhkan antar node. Jika bandwidth, latency, atau persyaratan komunikasi begitu signifikan, maka tidak ada keuntungan dari distributed computing dan kinerja dapat lebih burukk daripada lingkungan non-distributed.



Arsitektur
Terdapat banyak arsitektur dari perangkat keras dan perangkat lunak yang sangat bervariasi dan digunakan untuk distributed computing atau komputasi terdistribusi. Pada tingkat yang rendah, perlu adanya penghubung antara CPU dengan CPU lainnya yang berjumlah banyak. Pada tingkat yang lebih tinggi perlu dibutuhkannya interkoneksi untuk menghubungkan CPU yang ada dengan sistem komunikasi
Arsitektur umun yang digunakan oleh Distributed Computing atau Komputasi Terdistribusi yaitu sebagai berikut :
1.     Client-server : klien menghubungi server untuk pengambilan data, kemudian server memformatnya dan menampilkannya ke pengguna.
2.     3-tier architecture : Kebanyakan aplikasi web adalah 3-Tier.
3.     N-tier architecture : N-Tier biasanya menunjuk ke aplikasi web yang menyalurkan lagi permintaan kepada pelayanan enterprise. Aplikasi jenis ini paling berjasa bagi kesuksesanserver aplikasi.
4.     Tightly coupled (clustered) : biasanya menunjuk kepada satu set mesin yang sangat bersatu yang menjalankan proses yang sama secara paralel, membagi tugas dalam bagian-bagian, dan kemudian mengumpulkan kembali dan menyatukannya sebagai hasil akhir.
5.     Peer-to-peer : sebuah arsitektur di mana tidak terdapat mesin khusus yang melayani suatu pelayanan tertentu atau mengatur sumber daya dalam jaringan. Dan semua kewajiban dibagi rata ke seluruh mesin, yang dikenal sebagai peer.
6.     Space based : Mengacu ke suatu infrastruktur yang membuat ilusi atau virtualisasi dari satu ruang-alamat (address-space) tunggal. Data secara transparan direplikasi sesuai dengan kebutuhan aplikasi.
7.     Mobile code : berdasarkan prinsip arsitektur mendekatkan pemrosesan ke sumber data
8.     Replicated repository : Di mana repository dibuat replikanya dan disebarkan ke dalam sistem untuk membantu pemrosesan online/offline dengan syarat keterlambatan pembaharuan data dapat diterima.

2.     PARALLEL COMPUTING
Pengertian
Parallel Computing merupakan teknologi yang sudah tidak baru lagi di dunia IT, kebanyakan orang sering meyebutnya sebagai Distributed Computing, dengan adanya distributed computing maka beban proses yang berat dalam perhitungan akan dapat dibagi-bagi menjadi proses proses yang lebih kecil kemudian proses-proses tersebut akan didistribusikan ke komputer-komputer yang lain atau kita kenal dengan istilah clustering.
Jadi dengan permodelan clustering kita dapat memanggil method yang ada di komputer lain secara remote, kemudian setelah di proses pada masing-masing komputer hasilnya akan di kembalikan di monputer induk/master untuk kemudian diproses menjadi suatu bagian.
Parallel processing berbeda dengan multitasking, yaitu satu CPU mengeksekusi beberapa program sekaligus. Parallel processing disebut juga parallel computing. Pada system komputasi parallel terdiri dari beberapa unit prosesor dan beberapa unit memori. Ada dua teknik yang berbeda untuk mengakses data di unit memori, yaitu shared memory address dan message passing. Berdasarkan cara mengorganisasikan memori ini computer parallel dibedakan menjadi shared memory parallel machine dan distributed memory parallel machine.

          Arsitektur
1.     Komputer SISD (Single Instruction stream-Single Data stream)
2.     Komputer SIMD (Single Instruction stream-Multiple Data stream)
3.     Komputer MISD (Multiple Instruction stream-Single Data stream)
4.     Komputer MIMD (Multiple Instruction stream-Multiple Data stream)
SOURCE





http://id.wikipedia.org/wiki/Komputasi_terdistribusi

Tuesday, January 27, 2015

Penjelasan Tentang OOT (Over The Top) , Socet Programing, dan Smart City

Pengertian OTT (Over The Top)
OTT (Over The Top) definisinya adalah penyampaian content atau layanan melalui infrastruktur jaringan. Dalam konteks yang aplikatif, OTT Application adalah aplikasi/ layanan yang dilewatkan melalui infrastruktur/jaringan telekomunikasi. OTT application ini sangat sensitif dengan bandwidth. OTT application tentu sudah sangat familiar dengan kita. Sehari-hari kita pasti menggunakan facebook, twitter, google, skype, Video On Demand, youtube. Ini adalah salah satu contoh OTT Application. Dan tentu kita menggunakannya kebanyakan dari small screen/gadgets. Adapun pengertian lainnya yaitu layanan disampaikan melalui jaringan operator, tetapi tidak secara langsung melibatkan operator.  Beberapa  contoh layanan OTT yang banyak kita tahu adalah Google, Yahoo, MySpace, Facebook, YouTube dan iTunes.

Pengertian Socet Programing
Socket adalah teknologi dasar untuk perangkat lunak pemrograman untuk berkomunikasi pada TCP / IP jaringan. soket A memberikan titik akhir komunikasi dua arah untuk mengirim dan menerima data dengan soket yang lain. koneksi Socket biasanya berjalan antara dua komputer yang berbeda pada LAN atau di Internet, tetapi mereka juga dapat digunakan untuk komunikasi interprocess pada satu komputer.
Fungsi Socket()
  • Untuk dpt mengakses I/O Network, maka proses harus memanggil fungsi socket()
  •  include 
  • int socket(int family, int type, int protocol);
  • Fungsi socket akan mengembalikan non-negatip descriptor jika sukses, dan akan mengembalikan –1 jika ada error.
  • Umumnya parameter protocol pada fungsi socket di set
Socket Programing Terbagi menjadi 2 macam yaitu : Socket Stream dan Socket DatagramFungsi-fungsi yang sering digunakan pada Socket Programing :
0.      socket(), membuat socket.
1.      htonl(), meng-convert unsigned integer ke network byte order.
2.      inet_ntoa(), ntoa singkatan ‘network to ascii’,
nilai return-nya berupa string dari alamat yang dilewatkan.
3.      inet_addr(), meng-convert string menjadi network byte order.
4.      bind(), digunakan pada pihak server, untuk membuka ‘port’ komunikasi.
5.      write(), send(), bertugas mengirimkan data.
6.      read(), recv(), bertugas menerima data.
7.      connect(), digunakan pada pihak client, untuk mengadakan koneksi ke server.
8.      listen(), menunggu koneksi socket.
9.      accept(), menerima koneksi socket.
10.    close(), shutdown() menutup atau mengakhiri koneksi.
kesimpulannya Socket Programing dapat di gunakan dalam pembuatan Algoritma untuk menentukan jalur data pada koneksi Ethernet.

Pengertian Smart City
Smart City adalah sebuah konsep kota cerdas yang membantu masyarakatnya dengan mengelola sumber daya yang ada dengan efisien dan memberikan informasi yang tepat kepada masyarakat atau mengantisipasi kejadian yang tak terduga.SmartCity dapat disimpulkan bahwa memanfaatkan sumber informasi dan menggunakan teknologi yang canggih untuk mempermudah kehidupan.

Teknologi pendukung:
·        Komunikasi Nirkabel
·        Desain algoritma, Signal Prediksi & Klasifikasi, teori Informasi,
·        Berlapis-lapis Software Architecture, Corba, middleware
·        speech recognition
·        Pengolahan citra, gambar pengakuan
·        Sensor desain, kalibrasi, Motion deteksi, suhu, sensor tekanan, accelerometers
·        Adaptif kontrol, filter Kalman
·        Jaringan Komputer
·        pemrosesan paralel
·        Sistem operasi
Teknologi Penunjang:
·        Sumber energi => itu bukan hanya energi listrik, tetapi juga energi mekanik. Beberapa sumber energi terdapat di alam antara lain adalah gerak, sumber cahaya, panas, dan gravitasi. Untuk sumber energi buatan dapat menggunakan baterai atau bahkan sumber energi eksternal seperti PLN.
·        Sensor =>Terdapat perangkat sensor yang membutuhkan perangkat lain dalam beroperasi. Misalnya, peralatan GPS yang bisa dipakai membutuhkan teknologi lainnya seperti satelit atau triangulasi BTS.
·        Aktuator => Berbeda dengan sensor, aktuator adalah peralatan yang aktif. Ia membutuhkan sumber daya yang relatif lebih besar dibandingkan dengan sensor karena ia harus melakukan sebuah aksi. Selain itu, ia memerlukan pemrosesan sederhana agar bisa menampilkan informasi yang dibutuhkan.
·        Jaringan => Yang termasuk dalam jaringan adalah infrastruktur penghubung dan protokol pertukaran data. Infrastruktur penghubung erat kaitannya dengan topologi jaringan dan berbagai masalah yang terkait di dalamnya. Protokol pertukaran data adalah bagaimana aplikasi antar perangkat (sensor, aktuator, dan middleware) saling berkomunikasi satu sama lain.
·        Middleware => Middleware adalah infrastruktur pelayan yang memroses data-data dalam lingkungan pintar sehingga dapat dinterpretasikan. Contoh middleware adalah data center, server, dan layanan antara.
·        Aplikasi => Salah satu tantangan dalam aplikasi adalah bagaimana aplikasi dapat beradaptasi terhadap keadaan yang berubah-ubah.
Source   :

Sunday, January 25, 2015

WEB SERVER

·        Pengertian Web Server
Dalam kehidupan sehari-hari saat ini kemajuan teknologi sangatlah terlihat dan dengan jelas mempengaruhi setiap manusia yang menggunakannya, akan tetapi banyak pengguna teknologi yang sampai saat ini mungkin hanya sering mendengar istilah Webserver akan tetapi tikak mengetahui dengan benar apa yang dimaksud dengan webserver tersebut.
Web server merupakan software yang memberikan layanan data yang berfungsi untuk menerima instruksi atau perintah dari HTTP dan HTTPS dari client dan mengirim kembali hasil permintaan berbentuk halaman-halaman we yang umumnya berbentuk dokumen HTML. Adapun beberapa pengertian lain yaitu :
1.      Menurut Wikipedia web server adalah Server web atau peladen web dapat merujuk baik pada perangkat keras ataupun perangkat lunak yang menyediakan layanan akses kepada pengguna melalui protokol komunikasi HTTP atau HTTPS atas berkas-berkas yang terdapat pada suatu situs web dalam layanan ke pengguna dengan menggunakan aplikasi tertentu seperti peramban web. Penggunaan paling umum server web adalah untuk menempatkan situs web, namun pada prakteknya penggunaannya diperluas sebagai tempat peyimpanan data ataupun untuk menjalankan sejumlah aplikasi kelas bisnis.
2.      Menurut Nugroho (2004) secara umum server dapat diartikan sebagai pusat dan difungsikan sebagai “Pelayan” yang berguna untuk pengiriman data dan / atau penerimaan data serta mengatur pengiriman dan permintaan data diantara komputer- komputer yang tersambung atau dengan kata lain server berfungsi menyediakan pelayanan terhadap klien. Sedangkan Web Server menurut Nugroho adalah sebuah bentuk server yang khusus digunakan untuk menyimpan halaman website atau home page. Suatu komputer dapat dikatakan sebagai webserver jika komputer tersebut memiliki suatu program server yang disebut Personal Web Server (PWS) .

·        Sejarah Web Server
Tahun 1989, Tim Berners-Lee mengajukan pada perusahaannya, CERN (European Organization for Nuclear Research) sebuah proyek yang bertujuan untuk mempermudah pertukaran informasi antar para peneliti dengan menggunakan sistem hiperteks. Sebagai hasil atas implementasi proyek ini, tahun 1990 Berners-Lee menulis dua program komputer:
·        sebuah peramban yang dinamainya sebagai WorldWideWeb
·        server web pertama di dunia, yang kemudian dikenal sebagai CERN httpd, yang berjalan pada sistem operasi NeXTSTEP.
Dari tahun 1991 hingga 1994, kesederhanaan serta efektifitas atas teknologi yang digunakan untuk berkunjung serta bertukar data melalui World Wide Web membuat kedua aplikasi tersebut diadopsi pada sejumlah sistem operasi agar dapat digunakan oleh lebih banyak individu, ataupun kelompok. Awalnya adalah organisasi penelitian, kemudian berkembang dan digunakan di lingkungan pendidikan tinggi, dan akhirnya digunakan dalam industri bisnis.
Tahun 1994, Tim Berners-Lee memutuskan untuk membakukan organisasi World Wide Web Consortium (W3C) untuk mengatur pengembangan-pengembangan lanjut atas teknologi-teknologi terkait lainnya (HTTP, HTML, dan lain-lain) melalui proses standardisasi.

·        Cara Kerja Web Server
1.      Cara kerja Web Server Web server merupakan mesin dimana tempat aplikasi atau software beroperasi dalam medistribusikan web page ke user, tentu saja sesuai dengan permintaan user.
2.      Hubungan antara Web Server dan Browser Internet merupakan gabungan atau jaringan Komputer yg ada di seluruh dunia. Setelah terhubung secara fisik, Protocol TCP/IP (networking protocol) yg memungkinkan semua komputer dapat berkomunikasi satu dengan yg lainnya. Pada saat browser meminta data web page ke server maka instruksi permintaan data oleh browser tersebut di kemas di dalam TCP yg merupakan protocol transport dan dikirim ke alamat yg dalam hal ini merupakan protocol berikutnya yaitu Hyper Text Transfer Protocol (HTTP). HTTP ini merupakan protocol yg digunakan dalam World Wide Web (WWW) antar komputer yg terhubung dalam jaringan di dunia ini.
Untuk mengenal protocol ini jelas sangan mudah sekali dimana setiap kali anda mengetik http://… anda telah menggunakannya, dan membawa anda ke dunia internet. Data yg di passing dari browser ke Web server disebut sebagai HTTP request yg meminta web page dan kemudian web server akan mencari data HTML yg ada dan di kemas dalam TCP protocol dan di kirim kembali ke browser. Data yg dikirim dari server ke browser disebut sebagai HTTP response. Jika data yg diminta oleh browser tidak ditemukan oleh si Web server maka akan meninbulkan error yg sering anda lihat di web page yaitu Error : 404 Page Not Found.
Hal ini memberikan cita rasa dari suatu proses yang tridimensional, artinya pengguna internet dapat membaca dari satu dokumen ke dokumen yang lain hanya dengan mengklik beberapa bagian dari halaman-halaman dokumen (web) itu. Proses yang dimulai dari permintaan webclient (browser), diterima web server, diproses, dan dikembalikan hasil prosesnya oleh web server ke web client lagi dilakukan secara transparan. Setiap orang dapat dengan mudah mengetahui apa yang terjadi pada tiap-tiap proses. Secara garis besarnya web server hanya memproses semua masukan yang diperolehnya dari web clientnya.

·        Macam – macam Contoh Web server
A.      IIS atau Internet Information Services atau Internet Information Server adalah sebuah HTTP web server yang digunakan dalam sistem operasi server windows, mulai dari Windows NT 4.0 Server, Windows 2000 Server atau Windows Server 2003. Layanan ini merupakan layanan terintegrasi dalam Windows 2000 Server, Windows Server 2003 atau sebagaiadd-on dalam Windows NT 4.0. Layanan ini berfungsi sebagai pendukung protokol TCP/IP yang berjalan dalam lapisan aplikasi (application layer).
IIS juga menjadi fondasi dari platform internet dan Intranet Microsoft, yang mencakup Microsoft Site Server, Microsoft Commercial Internet System dan produk-produk Microsoft BackOffice lainnya.
Kelebihannya :
1.      Lebih kompatibel dengan Windows karena memang IIS adalah keluaran Microsoft
2.      Unjuk kerja untuk PHP lebih stabil, handal, dan cepat
3.      Adanya kemampuan diagnostik untuk pelacakan kesalahan (bisa dikustomisasi)
4.      Untuk platform .NET, user hanya bisa menggunakan IIS
5.      Memiliki score tertinggi dari web server lainnya untuk masalah bug
B.      Apache merupakan web server yang paling banyak dipergunakan di Internet. Program ini pertama kali didesain untuk sistem operasi lingkungan UNIX. Namun demikian, pada beberapa versi berikutnya Apache mengeluarkan programnya yang dapat dijalankan di Windows NT. Apache mempunyai program pendukung yang cukup banyak. Hal ini memberikan layanan yang cukup lengkap bagi penggunanya.
Kelebihannya :
6.      Apache termasuk dalam kategori freeware.
7.      Apache mudah sekali proses instalasinya jika dibanding web server lainnya seperti NCSA, IIS, dan lain-lain.
8.      Mampu beroperasi pada berbagai platform sistem operasi.
9.      Mudah mengatur konfigurasinya. Apache mempunyai hanya empat file konfigurasi.
10.    Mudah dalam menambahkan peripheral lainnya ke dalam platform web servernya.
C.     Litespeed web server merupakan teknologi baru yang diciptakan untuk menggantikan Apache Web Server di masa mendatang. Litespeed menurut hasil riset mempunyai kelebihan yaitu 50% lebih cepat dalam memproses PHP dan lebih cepat 6x dibandingkan Apache Web Server.
Kelebihannya :
1.      Performa PHP mampu meningkat 50%
2.      Mampu melebihi performa Apache hingga 6x lebih cepat
3.      Pembatasan validasi HTTP request
4.      Pencegahan System Overloading
5.      Recover dari kegagalan secara langsung dan otomatis
D.     Nginx dengan cepat memberikan konten statis dengan penggunaan efisien sumber daya sistem.Hal ini dapat menyebarkan dinamis HTTP konten di jaringan menggunakan FastCGI handler untuk script , dan dapat berfungsi sebagai perangkat lunak yang sangat mampu penyeimbang beban .
Nginx menggunakan asynchronous -event pendekatan untuk menangani permintaan yang diprediksi memberikan kinerja yang lebih bawah beban, kontras dengan Apache HTTP server model yang menggunakan berulir atau proses yang berorientasi pada pendekatan-permintaan penanganan.
Kelebihannya :
1.      Performanya yang tinggi, stabil, memiliki banyak fitur
2.      Mudah dikonfigurasi
3.      Menggunakan hanya sedikit sumberdaya pada server

4.      Tidak bergantung kepada thread untuk melayani klien