Jumat, 20 Desember 2013

Pengertian Jabber

Kehadiran IM telah menjadi fenomena yang sangat besar di internet beberapa tahun kebelakang. Hal tersebut ditandai dengan besarnya jumlah pengguna IM yang terus meningkat. Tingkat penetrasi penggunaan IM yang sangat tinggi tersebut disebabkan oleh kemampuannya untuk memfasilitasi komunikasi secara cepat, serta mampu menimbulkan kesan ‘tanpa jarak’. Selain itu kemudahan penggunaannya serta tingkat kebutuhan yang cukup sederhana di sisi pengguna juga menjadi salah satu sebab meningkatnya pengguna IM..
IM tidak hanya digunakan untuk keperluan informal saja, namun juga digunakan untuk mendukung kegiatan penelitian serta kegiatan perkantoran dan industri lainnya. Saat ini terjadi fragmentasi pasar IM, beberapa protokol IM telah tersedia meskipun masing-masing protokol itu masih bekerja dengan cara yang sama. Tetapi kehadiran protokol Jabber memberikan perkembangan yang cukup besar dalam komunitas IM hal ini disebabkan karena protokol ini bersifat open source, memiliki fitur-fitur yang menarik serta memiliki kemampuan untuk dikembangkan (extensibility).
Jabber adalah sebuah protokol XML yang terbuka untuk pertukaran pesan(message) dan informasi kehadiran(presence) yang real-time antara dua user di dalam jaringan Jabber. Banyak kegunaan teknologi Jabber, pada awalnya teknologi Jabber bersifat asynchronous, platform IM yang dapat digunakan secara luas dan jaringan IM berdasarkan fungsinya hampir sama dengan sistem IM yang resmi seperti AOL Instant Messaging (AIM) dan Yahoo Instant Messaging.
Sekilas Tentang Protokol Jabber
Proyek Jabber dimulai pada awal 1998 sebagai gagasan dari Jeremie Miller. Proyek tersebut cepat berkembang pesat dan mulai mendapat perhatian publik ketika menjadi topik diskusi pada slashdot (www.slashdot.org) yaitu sebuah website diskusi popular antar developer pada bulan januari 1999. Protokol inti Jabber versi 1.0 dari referensi server jabber yang bersifat open source dirilis pada bulan mei 2000. 
Dari awal pengembangan, komunitas developer Jabber mencoba untuk membuat standart IM dan menyarankan interoperability antar sistem IM. Usaha kooperatif ini sangat kontras dengan perilaku dari provider IM lainnya yang menjaga agar sistem mereka tertutup dan terisolasi dari jaringan IM lain.
Sebagai usaha menjadikan Jabber sebagai protokol standart, pada bulan juni 2000, komunitas Jabber mempublikasikan protokol tersebut sebagai Request for Comments (RFC) kepada Internet Engeneering Task Force (IETF) sebagai bagian dari standart IMPP (Instant Messaging and Presence). tetapi IMPP ini tidak berjalan sukses. Pada bulan Mei 2001, Jabber Community dan Jabber Inc. membuat Jabber Software Foundation. Jabber Software Foundation adalah organisasi serupa dengan Apache Foundation yang keberadaannya adalah untuk menunjukkan dedikasinya terhadap dunia open source dan interoperability antar sistem IM.
Pada tahun 2002, Internet Engineering Steering Group (IESG) menyetujui formasi Extensible Messaging and Presence Protocol Working Group (XMPP) dengan Internet Engineering Task Force (IETF). Ruang lingkup working group adalah untuk mengeksplorasi dan dimana protokol tersebut digunakan, memodifikasi protokol yang sudah ada agar dapat memenuhi RFC 2799 seperti persyaratan yang ditentukan dalam spesifikasi Common Presence and Instant Messaging (CPIM). Fokus utama working group adalah membuat XML stream termasuk stream pada level security dan autentikasi, elemen data dan namespace yang dibutuhkan untuk mencapai dasar IM dan Presence. XMPP working group menerbitkan XMPP Core Internet-Draft sebagai dokumen yang menggambarkan fitur-fitur utama Extensible Messaging dan protokol Presence
Tinjauan Teknologi Protokol Jabber
Dalam banyak hal, tujuan dari Jabber adalah untuk membangun sistem IM yang lebih baik yang mendukung informasi kehadiran secara real time(presence) dan pesan(messaging). Yang dimaksud sistem IM yang lebih baik adalah :
1. Open, protokol Jabber bersifat free, terbuka, publik dan mudah dimengerti. Ini mempermudah untuk siapapun yang membuat implementasi Jabber tanpa harus mengeluarkan biaya untuk lisensinya.
2. Standart, Internet Engeneering Task Force (IETF) telah menformulasikan protokol XML sebagai instant messaging and presence technology yang disetujui dengan nama Extensible Messaging dan Presence Protocol atau XMPP. 
3. Proven, Jabber pertama kali dikembangkan oleh Jaremie Miller pada tahun 1998 dan sekarang sudah cukup stabil, ratusan developer berkerja menggunakan teknologi jabber. Ada sepuluh dari seribu Jabber server yang aktif di internet sekarang dan jutaan orang menggunakan Jabber untuk IM.
4. Decentralized, Arsitektur dari Jabber menyerupai email, sehingga setiap orang dapat membuat jabber server sendiri.
5. Secure, Jabber server dapat dibuat terisolasi dari jaringan lain. Selain itu sistem keamanan menggunakan SASL dan TLS sudah dibangun di dalam core XMPP specification
6. Extensible, menggunakan kelebihan dari XML namesapces, setiap orang dapat membangun fungsionalitas tambahan diatas protokol jabber. Untuk menjaga interoperability, extension umum diatur oleh XMPP Standart Foundation.
7. Diverse, banyak perusahaan dan project open source menggunakan protokol jabber untuk membangun real-time application. Developer tidak akan merasa “terkunci” menggunakan teknologi jabber.
Arsitektur Jabber
Jabber menggunakan arsitektur client server. client Jabber dapat berkomunikasi dengan server Jabber pada domain Jabber mereka. Domain Jabber memiliki keuntungan yaitu kemampuannya dalam memisahkan zona komunikasi, yang ditangani oleh server Jabber yang berbeda, tidak seperti kebanyakan sistem IM lainnya yang menggunakan satu server terpusat untuk seluruh zona komunikasi. Pada Jabber pesan dikirim oleh client ke server pengirim kemudian diteruskan ke server penerima baru kemudian disampaikan ke client penerima
Format data yang digunakan untuk komunikasi pada jabber adalah format data XML. XML adalah standart World Wide Web Consortium untuk format data yg standart, generic untuk sebuah dokumen. Semua komunikasi yang berlangsung pada Jabber melibatkan pertukaran paket jabber dimana setiap paket dapat berupa fragmentasi XML. Fragmentasi XML ini dapat dikatakan sebagai sub dokumen dalam komunikasi stream pada Jabber.
Komponen Utama Jabber
Ada tiga komponen utama

Message 
Jabber menggunakan protokol message untuk mengirim pesan dalam bentuk XML stream. Pesan dapat dikirm antara jabber client dengan jabber server atau antara dua jabber server yang berbeda.
Protokol message sangat sederhana, paket pesan dikirim dari sender ke recepient. Secara default tidak ada acknowledge ketika recepient menerima pesan. Jika pesan dikirim dan recepient dalam keadaan offline maka server berkewajiban menyimpan pesan tersebut dan mengirimkannya ketika recepient sudah dalam keadaan online. Proses seperti ini mengacu pada proses store and foward.

Senin, 16 Desember 2013

CISC DAN RISC


CISC
Complex instruction-set computing
atau Complex Instruction-Set Computer (CISC; “Kumpulan instruksi komputasi kompleks”) adalah sebuah arsitektur dari set instruksi dimana setiap instruksi akan menjalankan beberapa operasi tingkat rendah, seperti pengambilan dari memory, operasi aritmetika, dan penyimpanan ke dalam memory, semuanya sekaligus hanya di dalam sebuah instruksi. Karakteristik CISC dapat dikatakan bertolak-belakang dengan RISC.

Sebelum proses RISC didesain untuk pertama kalinya, banyak arsitek komputer mencoba menjembatani celah semantik”, yaitu bagaimana cara untuk membuat set-set instruksi untuk mempermudah pemrograman level tinggi dengan menyediakan instruksi “level tinggi” seperti pemanggilan procedure, proses pengulangan dan mode-mode pengalamatan kompleks sehingga struktur data dan akses array dapat dikombinasikan dengan sebuah instruksi. Karakteristik CISC yg “sarat informasi” ini memberikan keuntungan di mana ukuran program-program yang dihasilkan akan menjadi relatif lebih kecil, dan penggunaan memory akan semakin berkurang. Karena CISC inilah biaya pembuatan komputer pada saat itu (tahun 1960) menjadi jauh lebih hemat.
Memang setelah itu banyak desain yang memberikan hasil yang lebih baik dengan biaya yang lebih rendah, dan juga mengakibatkan pemrograman level tinggi menjadi lebih sederhana, tetapi pada kenyataannya tidaklah selalu demikian. Contohnya, arsitektur kompleks yang didesain dengan kurang baik (yang menggunakan kode-kode mikro untuk mengakses fungsi-fungsi hardware), akan berada pada situasi di mana akan lebih mudah untuk meningkatkan performansi dengan tidak menggunakan instruksi yang kompleks (seperti instruksi pemanggilan procedure), tetapi dengan menggunakan urutan instruksi yang sederhana.
Satu alasan mengenai hal ini adalah karena set-set instruksi level-tinggi, yang sering disandikan (untuk kode-kode yang kompleks), akan menjadi cukup sulit untuk diterjemahkan kembali dan dijalankan secara efektif dengan jumlah transistor yang terbatas. Oleh karena itu arsitektur -arsitektur ini memerlukan penanganan yang lebih terfokus pada desain prosesor. Pada saat itu di mana jumlah transistor cukup terbatas, mengakibatkan semakin sempitnya peluang ditemukannya cara-cara alternatif untuk optimisasi perkembangan prosesor. Oleh karena itulah, pemikiran untuk menggunakan desain RISC muncul pada pertengahan tahun 1970 (Pusat Penelitian Watson IBM 801 – IBMs)
Contoh-contoh prosesor CISC adalah System/360, VAX, PDP-11, varian Motorola 68000 , dan CPU AMD dan Intel x86.
Istilah RISC dan CISC saat ini kurang dikenal, setelah melihat perkembangan lebih lanjut dari desain dan implementasi baik CISC dan CISC. Implementasi CISC paralel untuk pertama kalinya, seperti 486 dari Intel, AMD, Cyrix, dan IBM telah mendukung setiap instruksi yang digunakan oleh prosesor-prosesor sebelumnya, meskipun efisiensi tertingginya hanya saat digunakan pada subset x86 yang sederhana (mirip dengan set instruksi RISC, tetapi tanpa batasan penyimpanan/pengambilan data dari RISC). Prosesor-prosesor modern x86 juga telah menyandikan dan membagi lebih banyak lagi instruksi-instruksi kompleks menjadi beberapa “operasi-mikro” internal yang lebih kecil sehingga dapat instruksi-instruksi tersebut dapat dilakukan secara paralel, sehingga mencapai performansi tinggi pada subset instruksi yang lebih besar.
RISC
Konsep RISC didefinisikan pertama kali oleh IBM Fellow John Cocke pada tahun 1974. Menurut definisi ini RISC memiliki beberapa karakteristik dasar :
Arsitektur sederhana dengan set instruksi mesin yang dioptimalkan


Set instruksi hanay berisikan operasi dasar ( kurang dari 100 instruksi dan panjangnya tetap) untuk mengurangi kompleksitas dari penter-jemah instruksi (instruction decoder). Sehingga CPU dapat meng-eksekusinya dengan kecepatan maksimum dan lebih efisien. Perang-kat lunak membuat operasi komplek dengan mengkombinasikan beberapa instruksi mesin sederhana.

Kecepatan eksekusi instruksi yang tinggi
Tujuan dari arsitektur RISC adalah untuk dapat dieksekusi dengan cepat.
Optimalisasi penggunaan kompilasi


Unjuk kerja arsitektur RISC sangat tergantung pada optimalisasi kompilator. Untuk itu kompilator harus dapat mengeksplorasi arsitektur hardware dengan menyusun urutan instruksi yang dapat mengambil kelebihan dari kemampuan dan unjuk kerja processor.
Arsitektur load/store


Dalam arsitektur RISC akses memori dipisahkan dari manipulasi data sehingga CPU tidak terhambat oleh kelambatan memori. Data di muatkan (prefetched) pada register dan instruksi hanya bekerja dengan register.
Sebagai perbandingan, CISC mencoba untuk mengurangi jumlah instruksi pada program sedangkan RISC mencoba mengurangi siklus instruksi

Perbedaan antara RISC dengan CISC
CISC RISC
Penekanan pada
perangkat keras
Penekanan pada
perangkat lunak
Termasuk instruksi
kompleks multi-clock
Single-clock, hanya
sejumlah kecil instruksi
Memori-ke-memori:
“LOAD” dan “STORE”
saling bekerjasama
Register ke register:
“LOAD” dan “STORE”
adalah instruksi2 terpisah
Ukuran kode kecil,
kecepatan rendah
Ukuran kode besar,
kecepatan (relatif) tinggi
Transistor digunakan untuk
menyimpan instruksi2
kompleks
Transistor banyak dipakai
untuk register memori
Prosesor RISC hanya menggunakan instruksi-instruksi sederhana yang bisa dieksekusi dalam satu siklus. Dengan demikian, instruksi ‘MULT’ sebagaimana dijelaskan sebelumnya dibagi menjadi tiga instruksi yang berbeda, yaitu “LOAD”, yang digunakan untuk memindahkan data dari memori ke dalam register, “PROD”, yang digunakan untuk melakukan operasi produk (perkalian) dua operan yang berada di dalam register (bukan yang ada di memori) dan “STORE”, yang digunakan untuk memindahkan data dari register kembali ke memori. Berikut ini adalah urutan instruksi yang harus dieksekusi agar yang terjadi sama dengan instruksi “MULT” pada prosesor RISC (dalam 4 baris bahasa mesin):
LOAD A, 2:3
LOAD B, 5:2
PROD A, B
STORE 2:3, A

Awalnya memang kelihatan gak efisien iya khan? Hal ini dikarenakan semakin banyak baris instruksi, semakin banyak lokasi RAM yang dibutuhkan untuk menyimpan instruksi-instruksi tersebut. Kompailer juga harus melakukan konversi dari bahasa tingkat tinggi ke bentuk kode instruksi 4 baris tersebut.
strategi pada RISC memberikan beberapa kelebihan. Karena masing-masing instruksi hanya membuthukan satu siklus detak untuk eksekusi, maka seluruh program (yang sudah dijelaskan sebelumnya) dapat dikerjakan setara dengan kecepatan dari eksekusi instruksi “MULT”. Secara perangkat keras, prosesor RISC tidak terlalu banyak membutuhkan transistor dibandingkan dengan CISC, sehingga menyisakan ruangan untuk register-register serbaguna (general purpose registers). Selain itu, karena semua instruksi dikerjakan dalam waktu yang sama (yaitu satu detak), maka dimungkinkan untuk melakukan pipelining.
Memisahkan instruksi “LOAD” dan “STORE” sesungguhnya mengurangi kerja yang harus dilakukan oleh prosesor. Pada CISC, setelah instruksi “MULT” dieksekusi, prosesor akan secara otomatis menghapus isi register, jika ada operan yang dibutuhkan lagi untuk operasi berikutnya, maka prosesor harus menyimpan-ulang data tersebut dari memori ke register. Sedangkan pada RISC, operan tetap berada dalam register hingga ada data lain yang disimpan ke dalam register yang bersangkutan.

Pengertian Cloud Computing dan Perkembangannya

pengertian cloud computing Istilah cloud tentunya sudah tidak asing lagi bagi kita karena teknologi dari cloud ini sering kita gunakan. Misalnya saja, saat ini kita tidak perlu lagi membawa flashdisk kemana-mana, cukup terkoneksi dengan internet kita dapat menyimpan data di cloud. Data tersebut aman, dan tersedia dimanapun kita berada.
Tetapi apakah cloud computing hanya berfungsi seperti itu saja? Tentu saja tidak, teknologi cloud computing dapat lebih dari itu.

Pengertian Cloud Computing

Cloud computing adalah kumpulan dari beberapa resources yang terintegrasi menjadi satu dan digunakan melalui web.
Sebenarnya, cloud computing ini didasarkan pada teknologi grid computing yang membuat skalabilitas suatu sistem komputasi menjadi sangat besar dengan cara menggabungkan beberapa sumber daya komputer menjadi satu resource.
Sehingga tidak salah jika ada orang yang megnatakan cloud computing adalah grid computing yang digabungkan dengan virtualisasi.

Perkembangan Cloud Computing

Cloud computing telah berkembang sejak tahun enam puluhan berdampingan dengan perkembangan internet dan web. Internet lebih cepat berkembang karena perkembangan bandwidth yang semakin besar. Perkembangan internet inilah yang menjadi pendorong berkembangnya teknologi cloud computing
pengertian cloud computing
Pada tahun di tahun 1999, Salesforce.com menjadi pencetus pertama aplikasi perusahaan yang dijalankan melalui internet. Selanjutnya diikuti oleh Amazon Web Services di tahun 2006 yang menggunakan teknologi Elastic Compute Cloud (EC2). Teknologi EC2 menyebabkan adanya situs layanan web yang dikomersialkan, sehingga memungkinkan perusahaan kecil / individu untuk menyewa komputer atau server agar dapat menjalankan aplikasi komputer mereka.
Di tahun 2009, Google memulai menawarkan aplikasi berbasis browser melalui Google Appsnya, yang salah satunya adalah Google Docs yang sering kita gunakan. Sampai saat ini, cloud computing masih terus berkembang dengan pesat mengingat manfaatnya yang begitu besar jika teknologi ini digunakan.
Menurut Jamie Turner, perkembangan cloud computing ini dipengaruhi oleh matangnya teknologi visual, perkembangan bandwidth berkecepatan tinggi, dan software yang bersifat universal.