Middleware applications merupakan istilah untuk piranti lunak yang menjembatani
antara simpanan data (data storage) yang digunakan dengan web server. Ada dua bentuk
middleware application, yaitu Common Gateway Interface (CGI) dan scripting engine.
NAME SERVICE
1. Pengenalan
Pengaksesan resource pd sistem terdistribusi memerlukan:
a. Nama resource (untuk pemanggilan).
b. Alamat (lokasi resource tsb).
c. Rute (bagaimana mencapai lokasi tsb).
Konsentrasi pada aspek penamaan, dan pemetaan antara nama & alamat, bukan pada masalah rute, yg dibahas di Jaringan Komputer. Yang dimaksud dengan resource adalah : komputer, layanan, remote object, berkas, pemakai.
Berikut contoh naming pd aplikasi sistem terdistribusi:
• URL utk mengakses suatu halaman web.
• Alamat e-mail utk komunikasi antar pemakai.
Naming sering dianggap remeh, tapi mendasar dlm sistem terdistribusi. Karena dalam hal ini name berfungsi sebagai identifier (pengenal) pada system.
2. Tujuan penamaan
• Identifikasi:
Seorang pemakai menginginkan obyek/layanan A, bukan obyek/layanan B.
• Memungkinkan terjadinya sharing
Lebih dari satu pemakai dapat mengindentifikasikan resource dengan nama yang sesuai (tidak harus nama yang sama).
• Memungkinkan location independence:
Perubahan lokasi tidak menuntut perubahan nama, asalkan lokasi tidak menjadi bagian dari nama resource tsb.
• Memberikan kemampuan keamanan (security)
Ø Jika sebuah nama dipilih secara acak dari himpunan besar interger, maka nama tsb hanya bisa diketahui dari legitimate source, bukan dari menebak.
Ø Jadi jika seseorang mengetahui nama obyek tsb, maka dia memang diberitahu, karena sulit sekali menebak nama tsb.
3. Jenis nama
User names:
• Dibuat oleh pemakai (user).
• Merujuk pada suatu obyek atau layanan.
• Terdiri dari strings of characters.
Contoh: hp201 untuk pencetak, ~bettyp/tmp/test.c untuk berkas.
System names:
v Terdiri dari bit string.
v Internal untuk sistem, tidak ditujukan untuk manusia.
v Lebih compact dari user names, shg dapat dibandingkan dengan lebih efisien.
4. Struktur nama
Primitive/‡at names (Unique Identi…ers = UIDs)
a. Tanpa struktur internal, hanya string of bits.
b. Digunakan utk perbandingan dengan UID lain.
c. Tidak membawa informasi lain -> pure names.
d. Sangat berguna & banyak digunakan karena:
• Location & application independent, shg tidak menjadi masalah bagi mobilitas obyek.
• Seragam, fixed size.
• Compact: mudah disimpan, di-pass, & jika cukup besar menjadi sulit ditebak.
a) Partitioned Names (PN)
Ø Komposisi dari beberapa nama primitif, biasanya disusun secara hirarkis. Contoh: www.gunadarma.ac.id/cs/docs/akademik/SisDis/naming.ppt.
Ø Membawa informasi -> impure names.
Ø Biasanya tidak secara unik mengidenti…kasikan obyek, beberapa nama bisa dipetakan ke satu obyek (e.g. UNIX file links).
b) Descriptive names (DN)
Ø Daftar atribut yang secara bersama-sama mengidentifikasikan obyek secara unik.
Ø Membawa informasi -> impure names.
Ø DN adalah superset dari PN.
5. Tujuan fasilitas Penamaan
a. Efisien, karena fasilitas penamaan merupakan dasar pada sisdis & digunakan secara terus menerus.
b. Terdistribusi. Renungkan jika UIDs dibangkitkan oleh centralized generator.
• Bottleneck.
• Node tempat generator tsb mengalami kegagalan.
c. Tampak seperti global space, tidak tergantung konekti…tas, topologi, dan lokasi obyek.
d. Mendukung pemetaan 1:many antara nama & obyek, untuk memungkinkan multicast.
e. Mendukung dynamic relocation of objects, jika obyek/proses potensial untuk mobile (berpindah-pindah). Jadi diperlukan dynamic binding antara nama & alamat, juga antara alamat & rute.
f. Memungkinkan local aliases, shg pemakai dapat mengekspresikan interpretasi semantik mereka thdp suatu obyek. Tentu saja diperlukan pemetaan antara aliases dan full names.
SHARING
Setelah selesai dalam proses penamaan ( naming) yang telah dibuat oleh user, memungkinkan terjadinya sharing
Lebih dari satu pemakai dapat mengindentifikasikan resource dengan nama yang sesuai (tidak harus nama yang sama).
CONCURRENCY
Salah satu fitur yang paling kuat dari bahasa pemrograman Java adalah kemampuan untuk menjalankan beberapa thread kontrol. Melakukan beberapa tugas pada saat yang sama tampaknya alam dari perspektif manusia-misalnya, secara bersamaan men-download file dari Internet, melakukan perhitungan kembali spreadsheet, atau pencetakan dokumen. Dari titik pandang programmer, bagaimanapun, mengelola concurrency tidak alami seperti yang tampak. Concurrency membutuhkan programmer untuk mengambil tindakan pencegahan khusus untuk memastikan bahwa Java objek diakses secara thread-aman.
SINKRONISASI
Setelah mengetahui bagaimana disinkronkan metode yang digunakan untuk membuat program Java thread-aman, Anda mungkin bertanya-tanya apa masalahnya adalah tentang monitor. Mereka hanya kunci objek, kan?Tidak benar! Monitor lebih dari kunci, monitor juga dapat digunakan untuk mengkoordinasikan beberapa thread dengan menggunakan menunggu () dan notify () metode yang tersedia dalam setiap obyek Java.
Availability and reability
Keandalan merupakan probabilitas komponen, suku cadang dan sistem untuk melakukan fungsi yang diperlukan mereka untuk jangka waktu tanpa kegagalan dalam lingkungan yang ditentukan dengan keyakinan yang diinginkan. Keandalan, dengan sendirinya, tidak menjelaskan tindakan perbaikan yang mungkin terjadi. Keandalan account untuk waktu yang akan mengambil komponen, bagian atau sistem gagal ketika sedang beroperasi. Itu tidak mencerminkan berapa lama waktu yang diperlukan untuk mendapatkan unit sedang diperbaiki kembali ke dalam kondisi kerja
REPLICATION
Replikasi adalah proses berbagi informasi sehingga untuk memastikan konsistensi antara sumber daya berlebihan, seperti perangkat lunak atau perangkat keras komponen, untuk meningkatkan kehandalan, kesalahan-toleransi , atau aksesibilitas. Ini bisa menjadi replikasi data jika data yang sama disimpan pada beberapa perangkat penyimpanan , atau replikasi perhitungan jika tugas komputasi yang sama dijalankan berkali-kali. Sebuah tugas komputasi biasanya direplikasi dalam ruang , yaitu dijalankan pada perangkat yang terpisah, atau bisa direplikasi di waktu , jika dieksekusi berulang kali pada satu perangkat.