BAB 1 Sistem Terdistribusi [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

BAB 1 Karakterisasi Sistem Terdistribusi Sebuah sistem terdistribusi adalah satu di mana komponen yang terletak di jaringan komputer berkomunikasi dan mengkoordinasikan tindakan mereka hanya dengan mengirimkan pesan. definisi ini mengarah pada karakteristik yang signifikan terutama setelah sistem terdistribusi: konkurensi komponen, kurangnya jam global dan kegagalan independen komponen. Kami melihat beberapa contoh aplikasi terdistribusi modern, termasuk web pencarian, multiplayer online game dan sistem perdagangan keuangan, dan juga memeriksa kunci mendasari tren mengemudi sistem terdistribusi hari ini: sifat meresap modern jaringan, munculnya komputasi mobile dan di mana-mana, meningkatnya pentingnya sistem multimedia terdistribusi, dan kecenderungan Kepemirsaan TV biasanya didistribusikan sistem sebagai utilitas. Bab ini kemudian menyoroti berbagi sumber daya sebagai motivasi utama untuk membangun sistem terdistribusi. Sumber Daya dapat ditangani oleh server dan diakses oleh klien atau mereka mungkin akan dikemas sebagai objek dan diakses oleh objek klien lainnya. Tantangan yang timbul dari pembangunan sistem terdistribusi adalah heterogenitas komponen mereka, keterbukaan (yang memungkinkan komponen yang akan ditambahkan atau diganti), keamanan, skalabilitas - kemampuan untuk bekerja dengan baik ketika beban atau jumlah pengguna meningkat - kegagalan penanganan, konkurensi komponen, transparansi dan menyediakan kualitas layanan. Akhirnya, Web dibahas sebagai contoh skala besar didistribusikan sistem dan fitur utama diperkenalkan.



1.Pengenalan Jaringan komputer di mana-mana. Internet adalah satu, seperti juga banyak jaringan yang itu terdiri. Handphone jaringan telepon, jaringan perusahaan, jaringan pabrik, kampus jaringan, jaringan rumah, di mobil jaringan - semua ini, baik secara terpisah dan dalam kombinasi, berbagi karakteristik penting yang membuat mereka subyek yang relevan untuk belajar di bawah sistem terdistribusi pos. Dalam buku ini kami bertujuan untuk menjelaskan karakteristik jaringan komputer yang berdampak sistem desainer dan pelaksana dan untuk menyajikan konsep-konsep



utama dan teknik yang telah dikembangkan untuk membantu dalam tugas merancang dan menerapkan sistem yang didasarkan pada mereka. Kami mendefinisikan sistem terdistribusi sebagai salah satu yang keras atau perangkat lunak komponen terletak di jaringan komputer berkomunikasi dan mengkoordinasikan tindakan mereka hanya dengan lewat pesan. Definisi sederhana meliputi seluruh range sistem di mana komputer jaringan berguna dapat digunakan. Komputer yang dihubungkan oleh sebuah jaringan dapat dipisahkan secara spasial oleh jarak. Mereka mungkin berada di benua yang terpisah, di gedung yang sama atau di ruang yang sama. Definisi kita tentang sistem terdistribusi memiliki konsekuensi yang signifikan berikut: Concurrency: Dalam jaringan komputer, pelaksanaan program konkuren adalah norma. Saya bisa melakukan pekerjaan saya di komputer saya saat Anda melakukan pekerjaan Anda pada Anda, berbagi sumber daya seperti halaman web atau file bila diperlukan. Kapasitas dari sistem untuk sumber daya menangani bersama dapat ditingkatkan dengan menambahkan lebih banyak sumber daya (misalnya. komputer) ke jaringan. Kami akan menjelaskan cara di mana kapasitas ekstra dapat berguna digunakan pada banyak titik dalam buku ini. Koordinasi secara bersamaan melaksanakan program yang berbagi sumber daya juga merupakan topik yang penting dan berulang. Tidak ada jam global: Ketika program perlu bekerja sama mereka mengkoordinasikan tindakan mereka dengan bertukar pesan. Koordinasi sering tergantung pada ide bersama waktu di mana tindakan program 'terjadi. Tapi ternyata bahwa ada batas untuk akurasi dengan mana komputer dalam jaringan dapat menyinkronkan jam mereka – ada ada pengertian global tunggal dari waktu yang tepat. Ini adalah akibat langsung dari fakta bahwa komunikasi hanya dengan mengirimkan pesan melalui jaringan. Contoh masalah waktu ini dan solusi untuk mereka akan dijelaskan dalam Bab 14. Kegagalan Independen: Semua sistem komputer dapat gagal, dan itu adalah tanggung jawab sistem desainer untuk merencanakan konsekuensi dari kegagalan mungkin. Sistem



terdistribusi bisa gagal dengan cara baru. Kesalahan dalam hasil jaringan di isolasi dari komputer yang terhubung ke sana, tapi itu tidak berarti bahwa mereka berhenti berjalan. Bahkan, program pada mereka mungkin tidak dapat untuk mendeteksi apakah jaringan telah gagal atau telah menjadi luar biasa lambat. Demikian pula, kegagalan komputer, atau penghentian tak terduga program di suatu tempat dalam sistem (crash), tidak segera diketahui oleh lain komponen dengan yang berkomunikasi. Setiap komponen dari sistem dapat gagal secara independen, meninggalkan yang lain masih berjalan. Konsekuensi dari karakteristik ini dari sistem terdistribusi akan menjadi tema yang berulang dalam buku ini. Motivasi utama untuk membangun dan menggunakan sistem terdistribusi berasal dari keinginan untuk berbagi sumber daya. Istilah 'sumber daya' adalah yang agak abstrak, tetapi ciri terbaik berbagai hal yang bermanfaat dapat dibagi dalam sistem jaringan komputer. Memanjang dari komponen perangkat keras seperti disk dan printer untuk perangkat lunak yang ditetapkan entitas seperti file, database dan objek data dari semua jenis. Termasuk aliran frame video yang muncul dari kamera video digital dan koneksi audio bahwa panggilan telepon selular mewakili. Tujuan bab ini adalah untuk menyampaikan pandangan yang jelas dari sifat didistribusikan sistem dan tantangan yang harus diatasi dalam rangka untuk memastikan bahwa mereka sukses. Bagian 1.2 memberikan beberapa contoh ilustrasi dari sistem terdistribusi, dengan Bagian 1.3 meliputi tren yang mendasari utama yang mendorong perkembangan terakhir. bagian 1.4 berfokus pada desain sumber daya berbagi sistem, sementara Bagian 1.5 menjelaskan kunci tantangan yang dihadapi oleh para perancang sistem terdistribusi: heterogenitas, keterbukaan, keamanan, skalabilitas, kegagalan penanganan, konkurensi, transparansi dan kualitas layanan. Bagian 1.6 menyajikan sebuah studi kasus rinci dari satu sistem terdistribusi sangat terkenal, World Wide Web, yang menggambarkan bagaimana desain mendukung berbagi sumber daya. 1.2 Examples of distributed system Tujuan dari bagian ini adalah untuk memberikan contoh motivasi kontemporer didistribusikan sistem yang menggambarkan kedua peran meresap sistem terdistribusi dan keragaman aplikasi yang terkait.



Seperti disebutkan dalam pendahuluan, jaringan di mana-mana dan mendukung banyak sehari-hari jasa yang sekarang kita anggap biasa: Internet dan Dunia terkait Wide Web, web pencarian game, online, email, jaringan sosial, eCommerce, dll Untuk menggambarkan hal ini lebih lanjut, mempertimbangkan Gambar 1.1, yang menggambarkan kisaran yang dipilih dari kunci komersial atau aplikasi sosial sektor menyoroti beberapa terkait didirikan atau muncul penggunaan teknologi sistem terdistribusi. Seperti dapat dilihat, sistem terdistribusi mencakup banyak paling signifikan perkembangan teknologi beberapa tahun terakhir dan karenanya pemahaman tentang teknologi yang mendasari adalah mutlak penting bagi pengetahuan tentang komputasi modern. Itu tokoh juga memberikan wawasan awal ke dalam berbagai aplikasi yang digunakan saat ini, dari sistem yang relatif lokal (seperti yang ditemukan, misalnya, di dalam mobil atau pesawat) untuk globalscale sistem yang melibatkan jutaan node, dari data-sentris layanan untuk processorintensive tugas, dari sistem yang dibangun dari sensor sangat kecil dan relatif primitif ke mereka menggabungkan elemen komputasi yang kuat, dari embedded system untuk yang yang mendukung pengalaman pengguna yang canggih interaktif, dan sebagainya. Sekarang kita melihat contoh-contoh yang lebih spesifik dari sistem terdistribusi untuk lebih menggambarkan kompleksitas keragaman dan memang dari didistribusikan penyediaan sistem hari ini.



1.2.1 Web Search Pencarian web telah muncul sebagai industri pertumbuhan besar dalam dekade terakhir, dengan terakhir angka menunjukkan bahwa jumlah global pencarian telah meningkat menjadi lebih dari 10 miliar per kalender bulan. Tugas dari mesin pencari web adalah untuk indeks seluruh isi World Wide Web, meliputi berbagai macam gaya informasi termasuk web halaman, sumber multimedia dan (scan) buku. Ini adalah tugas yang sangat kompleks, lancar memperkirakan negara bahwa Web terdiri dari lebih dari 63 milyar halaman dan satu triliun alamat web yang unik. Mengingat bahwa kebanyakan mesin pencari menganalisis konten web seluruh dan kemudian melakukan keluar



pengolahan canggih pada database yang sangat besar, ini tugas itu sendiri merupakan tantangan utama untuk desain sistem terdistribusi. Google, pemimpin pasar dalam teknologi pencarian web, telah menempatkan upaya yang signifikan ke dalam desain sebuah infrastruktur sistem canggih didistribusikan untuk mendukung pencarian (dan memang Google lainnya aplikasi dan layanan seperti Google Earth). Ini merupakan salah satu instalasi sistem terbesar dan paling kompleks didistribusikan dalam sejarah komputasi dan karenanya menuntut pemeriksaan dekat. Ikhtisar infrastruktur ini meliputi: • infrastruktur fisik yang mendasari yang terdiri dari jumlah yang sangat besar jaringan komputer terletak di pusat data di seluruh dunia; • sistem terdistribusi file yang dirancang untuk mendukung file yang besar dan sangat dioptimalkan untuk gaya penggunaan yang dibutuhkan oleh pencari dan aplikasi Google lainnya (terutama membaca dari file pada tingkat tinggi dan berkelanjutan); • sebuah terkait terstruktur didistribusikan sistem penyimpanan yang menawarkan akses cepat ke sangat dataset besar; • layanan kunci yang menawarkan fungsi sistem terdistribusi seperti penguncian didistribusikan dan perjanjian; • model pemrograman yang mendukung pengelolaan paralel yang sangat besar dan didistribusikan perhitungan seluruh infrastruktur fisik yang mendasarinya. Rincian lebih lanjut pada layanan Google didistribusikan sistem dan komunikasi yang mendasari dukungan dapat ditemukan di Bab 21, sebuah studi kasus yang menarik dari modern didistribusikan sistem dalam tindakan. Keuangan dan perdagangan: Pertumbuhan eCommerce sebagaimana dicontohkan oleh perusahaan seperti Amazon dan eBay, dan pembayaran yang mendasari teknologi seperti PayPal; munculnya terkait perbankan online dan perdagangan dan juga kompleks penyebaran sistem informasi untuk pasar keuangan. Masyarakat informasi: Pertumbuhan World Wide Web sebagai gudang informasi dan



pengetahuan, pengembangan mesin pencari web seperti Google dan Yahoo untuk mencari repositori ini luas, munculnya digital perpustakaan dan digitalisasi skala besar sumber informasi warisan seperti buku (misalnya, Google Books); meningkatnya pentingnya konten yang dibuat pengguna melalui situs seperti YouTube, Wikipedia dan Flickr; munculnya jejaring sosial melalui layanan seperti Facebook dan MySpace. Kreatif industri dan hiburan: Munculnya game online sebagai bentuk baru dan sangat interaktif hiburan; ketersediaan musik dan film di rumah melalui jaringan pusat-pusat media dan secara lebih luas di Internet melalui download atau streaming konten, peran user-generated content (Seperti yang disebutkan di atas) sebagai bentuk baru kreativitas, misalnya melalui layanan seperti YouTube, penciptaan bentuk-bentuk baru seni dan hiburan diaktifkan oleh muncul (termasuk jaringan) teknologi. Kesehatan: Pertumbuhan informatika kesehatan sebagai suatu disiplin dengan penekanan pada secara online pasien catatan elektronik dan terkait masalah privasi, sedangkan meningkatkan peran telemedicine dalam diagnosis terpencil mendukung atau lebih maju layanan seperti operasi remote (termasuk kolaboratif kerja antara tim kesehatan); aplikasi meningkatnya jaringan dan sistem teknologi tertanam dalam hidup dibantu, untuk misalnya untuk memantau orang tua di rumah mereka sendiri. Pendidikan Munculnya e-learning melalui misalnya alat berbasis web seperti lingkungan belajar virtual; terkait dukungan untuk jarak belajar; dukungan untuk pembelajaran kolaboratif atau berbasis masyarakat. Transportasi dan logistik: Penggunaan teknologi lokasi seperti GPS dalam sistem rute menemukan dan sistem manajemen yang lebih umum lalu lintas; mobil modern itu sendiri sebagai contoh dari sistem terdistribusi yang kompleks (juga berlaku untuk lainnya berbagai fasilitas transportasi seperti pesawat terbang); pengembangan berbasis web peta layanan seperti MapQuest, Google Maps dan Google Earth. Ilmu: Munculnya Grid sebagai teknologi fundamental untuk eScience, termasuk penggunaan jaringan yang kompleks dari komputer untuk mendukung penyimpanan, analisis dan pengolahan (sering jumlah yang sangat besar) data ilmiah, penggunaan yang terkait dari Grid sebagai teknologi



yang memungkinkan untuk kolaborasi di seluruh dunia antara kelompok ilmuwan. Pengelolaan lingkungan: Penggunaan (jaringan) teknologi sensor untuk memonitor dan mengelola lingkungan alam, misalnya untuk memberikan peringatan dini bencana alam seperti gempa bumi, banjir atau tsunami dan untuk mengkoordinasikan tanggap darurat; pengumpulan dan analisis global parameter lingkungan untuk lebih memahami alam yang kompleks fenomena seperti perubahan iklim.



1.2.2 Massively multiplayer online games (MMOGs) Massively multiplayer online game menawarkan immersive pengalaman dimana sangat besar jumlah pengguna berinteraksi melalui Internet dengan dunia maya persisten. Terkemuka contoh permainan tersebut termasuk Sony EverQuest II dan EVE Online dari Finlandia perusahaan PKC Games. Dunia semacam ini telah meningkat secara signifikan dalam kecanggihan dan sekarang termasuk, arena bermain kompleks (untuk EVE contoh, Online terdiri dari alam semesta dengan lebih dari 5.000 sistem bintang) dan sistem sosial dan ekonomi aneka. Itu jumlah pemain juga meningkat, dengan sistem mampu mendukung lebih dari 50.000 simultan pemain online (dan jumlah pemain mungkin sepuluh kali angka ini). Rekayasa MMOGs merupakan tantangan besar untuk sistem terdistribusi teknologi, terutama karena kebutuhan untuk waktu respon yang cepat untuk menjaga pengguna pengalaman dari permainan. Tantangan lainnya adalah penyebaran real-time acara untuk banyak pemain dan mempertahankan tampilan yang konsisten dari dunia bersama. Ini karena itu memberikan contoh yang sangat baik dari tantangan yang dihadapi sistem terdistribusi yang modern desainer. Sejumlah solusi telah diusulkan untuk desain massively multiplayer game online: • Mungkin mengejutkan, game online terbesar, EVE Online, memanfaatkan client-server arsitektur dimana satu salinan keadaan dunia dipertahankan pada server terpusat dan diakses oleh program klien yang berjalan pada konsol pemain atau perangkat lain. Untuk mendukung sejumlah besar klien, server adalah kompleks entitas yang berdiri sendiri yang terdiri dari arsitektur cluster yang menampilkan ratusan komputer node (pendekatan client-server dibahas secara lebih rinci dalam



Bagian 1,4 dan pendekatan klaster dibahas dalam Bagian 1.3.4). Para terpusat arsitektur membantu secara signifikan dalam hal pengelolaan dunia maya dan salinan tunggal juga memudahkan masalah konsistensi. Tujuannya adalah kemudian untuk memastikan cepat respon melalui optimalisasi protokol jaringan dan memastikan respon yang cepat untuk masuk acara. Untuk mendukung ini, beban dipartisi dengan mengalokasikan individu 'Bintang sistem' untuk komputer tertentu dalam cluster, dengan bintang yang sangat sarat sistem yang memiliki komputer yang didedikasikan mereka dan yang lain berbagi komputer. Peristiwa yang masuk diarahkan ke komputer yang tepat dalam cluster dengan menjaga melacak gerakan pemain antara sistem bintang. • MMOGs lain mengadopsi arsitektur lebih terdistribusi di mana alam semesta adalah dipartisi di sejumlah (berpotensi sangat besar) dari server yang mungkin juga didistribusikan secara geografis. Pengguna kemudian secara dinamis mengalokasikan tertentu server berdasarkan pola penggunaan saat ini dan juga penundaan jaringan untuk server (Berdasarkan kedekatan geografis misalnya). Gaya arsitektur, yang adalah diadopsi oleh EverQuest, secara alami diperluas dengan menambahkan server baru. • Kebanyakan sistem komersial mengadopsi salah satu dari dua model yang disajikan di atas, tetapi peneliti juga sekarang melihat arsitektur yang lebih radikal yang tidak didasarkan pada klien-server prinsip melainkan mengadopsi pendekatan sepenuhnya terdesentralisasi berdasarkan peer-to-peer teknologi di mana setiap peserta memberikan kontribusi sumber (Penyimpanan dan pengolahan) untuk mengakomodasi permainan. Selanjutnya pertimbangan peerto- solusi rekan ditangguhkan sampai Bab 2 dan 10). 1.2.3 Financial Trading Sebagai contoh terakhir, kita melihat dukungan sistem terdistribusi untuk pasar trading keuangan. Industri keuangan telah lama berada di ujung tombak sistem terdistribusi teknologi dengan kebutuhannya, khususnya, untuk real-time akses ke berbagai informasi sumber (misalnya, harga saham saat ini dan tren, ekonomi dan perkembangan politik). Industri ini mempekerjakan pemantauan otomatis dan perdagangan aplikasi (lihat di bawah). Perhatikan bahwa penekanan dalam sistem tersebut adalah pada komunikasi dan pengolahan dari item yang menarik, yang dikenal sebagai peristiwa dalam sistem terdistribusi, dengan kebutuhan juga untuk memberikan peristiwa andal dan pada waktu yang tepat ke nomor berpotensi sangat



besar klien yang memiliki bunga yang ditetapkan dalam item informasi tersebut. Contoh peristiwa tersebut termasuk drop dalam harga saham, pelepasan angka pengangguran terbaru, dan sebagainya. Hal ini memerlukan gaya yang sangat berbeda dari arsitektur yang mendasari dari gaya yang disebutkan di atas (untuk contoh client-server), dan sistem seperti ini biasanya menggunakan apa yang dikenal sebagai didistribusikan berdasarkan aktivitas sistem. Kami menyajikan sebuah ilustrasi tentang penggunaan khas seperti sistem di bawah ini dan kembali ke topik penting ini secara lebih mendalam dalam Bab 6. Gambar 1.2 mengilustrasikan sistem perdagangan khas keuangan. Hal ini menunjukkan serangkaian acara feed masuk ke sebuah lembaga keuangan yang diberikan. Acara seperti feed saham sebagai peristiwa pasar Reuters data dan peristiwa FIX (peristiwa mengikuti format tertentu Informasi Keuangan eXchange protocol), dan memang dari acara yang berbeda teknologi, sehingga menggambarkan masalah heterogenitas ditemui di sebagian didistribusikan sistem (lihat juga Bagian 1.5.1). Gambar ini menunjukkan penggunaan adapter yang menerjemahkan format heterogen ke dalam satu format internal umum. Kedua, perdagangan sistem harus berurusan dengan berbagai aliran acara, semua tiba pada tingkat yang cepat, dan sering membutuhkan pemrosesan real-time untuk mendeteksi pola yang mengindikasikan peluang trading. Ini digunakan untuk menjadi proses manual tetapi tekanan persaingan telah menyebabkan meningkatnya otomatisasi dalam hal apa yang dikenal sebagai Peristiwa Pengolahan Kompleks (CEP), yang menawarkan cara menyusun kejadian acara bersama menjadi logis, pola temporal atau spasial. Pendekatan ini terutama digunakan untuk mengembangkan perdagangan algoritmik disesuaikan strategi yang meliputi pembelian dan penjualan saham, khususnya mencari untuk pola yang menunjukkan peluang perdagangan dan kemudian secara otomatis merespon dengan menempatkan dan mengelola perintah. Sebagai contoh, perhatikan script berikut: WHEN MSFT price moves outside 2% of MSFT Moving Average FOLLOWED-BY ( MyBasket moves up by 0.5% AND HPQ’s price moves up by 5% OR



MSFT’s price moves down by 2% ) ) ALL WITHIN any 2 minute time period THEN BUY MSFT SELL HPQ Script ini didasarkan pada fungsionalitas yang disediakan oleh Apama [www.progress.com], sebuah produk komersial di dunia keuangan awalnya dikembangkan dari penelitian yang dilakukan di University of Cambridge. Script mendeteksi urutan temporal kompleks berdasarkan harga saham dari Microsoft, HP dan sekeranjang harga saham lainnya, sehingga dalam keputusan untuk membeli atau menjual saham tertentu. Gaya teknologi semakin banyak digunakan di area lain dari keuangan sistem termasuk pemantauan aktivitas perdagangan untuk mengelola risiko (khususnya, pelacakan paparan), untuk memastikan kepatuhan terhadap peraturan dan untuk memantau pola kegiatan yang mungkin mengindikasikan penipuan transaksi. Dalam sistem tersebut, peristiwa biasanya dicegat dan melewati apa yang setara dengan firewall kepatuhan dan risiko sebelum diproses (lihat juga pembahasan firewall dalam Bagian 1.3.1 di bawah). 1.3 Trends in distributed system Sistem terdistribusi sedang mengalami masa perubahan yang signifikan dan ini dapat ditelusuri kembali ke sejumlah tren berpengaruh: • munculnya teknologi jaringan meresap; • munculnya komputasi di mana-mana ditambah dengan keinginan untuk mendukung pengguna mobilitas dalam sistem terdistribusi; • peningkatan permintaan untuk layanan multimedia; • pandangan sistem terdistribusi sebagai utilitas.



1.3.1 Pervasive networking and the modern internet Internet modern adalah kumpulan saling berhubungan yang luas dari jaringan komputer dari banyak berbeda jenis, dengan berbagai jenis meningkat sepanjang waktu dan sekarang termasuk, Misalnya, berbagai teknologi komunikasi nirkabel seperti WiFi, WiMAX, Bluetooth (lihat Bab 3) dan generasi ketiga jaringan telepon seluler. Hasil akhirnya adalah bahwa jaringan telah menjadi sumber daya meresap dan perangkat dapat tersambung (jika diinginkan) setiap saat dan di setiap tempat. Gambar 1.3 mengilustrasikan bagian khas dari Internet. Program yang berjalan pada komputer yang terhubung ke sana berinteraksi dengan pesan yang lewat, menggunakan sarana umum komunikasi. Desain dan konstruksi komunikasi internet mekanisme (protokol internet) adalah prestasi teknis utama, memungkinkan program berjalan di mana saja untuk mengatasi pesan ke program di tempat lain dan abstrak atas segudang teknologi yang disebutkan di atas. Internet juga merupakan sistem terdistribusi yang sangat besar. Hal ini memungkinkan pengguna, dimanapun mereka adalah, untuk menggunakan layanan seperti transfer Dunia Web, email dan file Wide. (Memang, Web terkadang salah disamakan dengan Internet.) Himpunan layanan adalah terbuka - dapat diperpanjang dengan penambahan komputer server dan jenis baru layanan. Angka ini menunjukkan koleksi intranet - subnetwork dioperasikan oleh perusahaan dan organisasi dan biasanya dilindungi oleh firewall. Peran firewall adalah untuk melindungi intranet dengan mencegah pesan yang tidak sah meninggalkan atau masuk. Firewall diimplementasikan dengan menyaring pesan masuk dan keluar. Penyaringan mungkin dilakukan dengan sumber atau tujuan, atau firewall mungkin mengizinkan hanya mereka pesan yang terkait untuk email dan akses web untuk masuk ke atau keluar dari intranet yang melindungi. Layanan Internet Penyedia (ISP) adalah perusahaan yang menyediakan link broadband dan jenis-jenis koneksi ke pengguna individu dan organisasi kecil, memungkinkan mereka untuk mengakses layanan mana saja di Internet serta memberikan layanan lokal seperti email dan web hosting. Para intranet dihubungkan oleh tulang punggung. Tulang punggung adalah link jaringan dengan kapasitas transmisi tinggi, menggunakan koneksi satelit, kabel serat optik dan bandwidth tinggi sirkuit. Perhatikan bahwa beberapa organisasi tidak mungkin ingin menghubungkan jaringan internal mereka untuk Internet sama sekali. Untuk keamanan misalnya, polisi dan badan penegak hukum



cenderung memiliki setidaknya beberapa intranet internal yang terisolasi dari dunia luar (Firewall yang paling efektif mungkin - tidak adanya koneksi fisik ke Internet). Firewall juga dapat menjadi masalah dalam sistem terdistribusi dengan menghambat sah akses ke layanan ketika berbagi sumber daya antara pengguna internal dan eksternal diperlukan. Oleh karena itu, firewall sering harus dilengkapi dengan lebih halus mekanisme dan kebijakan, seperti dibahas dalam Bab 11. Pelaksanaan Internet dan layanan yang mendukung telah mensyaratkan pengembangan solusi praktis untuk banyak masalah sistem terdistribusi (termasuk kebanyakan dari mereka didefinisikan dalam Bagian 1.5). Kita akan menyoroti solusi seluruh buku, menunjukkan ruang lingkup dan keterbatasan mereka jika sesuai. 1.3.2 Mobile and ubiquitous computing Kemajuan teknologi dalam miniaturisasi perangkat dan jaringan nirkabel telah menyebabkan semakin ke integrasi perangkat komputer kecil dan portabel ke didistribusikan sistem. Perangkat ini meliputi: • Komputer laptop. • Genggam perangkat, termasuk ponsel, ponsel pintar, GPS-perangkat diaktifkan, pager, personal digital assistant (PDA), kamera video dan kamera digital. • dpt dipakai perangkat, seperti jam tangan pintar dengan fungsi serupa dengan PDA. • Perangkat tertanam dalam peralatan seperti mesin cuci, sistem hi-fi, mobil dan lemari es. Portabilitas banyak dari perangkat ini, bersama dengan kemampuan mereka untuk menghubungkan mudah ke jaringan di tempat yang berbeda, membuat komputasi mobile mungkin. Handphone komputasi adalah kinerja tugas komputasi sementara pengguna sedang berkembang, atau mengunjungi tempat-tempat lain dari lingkungan yang biasa mereka. Dalam komputasi mobile, pengguna yang jauh dari 'rumah' intranet (intranet di tempat kerja, atau tempat tinggal mereka) masih disediakan dengan akses ke sumber daya melalui perangkat yang mereka bawa dengan mereka. Mereka bisa terus mengakses Internet, mereka dapat terus mengakses sumber daya di rumah mereka intranet, dan ada peningkatan penyediaan bagi pengguna untuk memanfaatkan sumber daya seperti printer atau bahkan titik penjualan yang berada di dekatnya ketika mereka



bergerak di sekitar. Yang terakhir ini juga dikenal sebagai komputasi lokasi-sadar atau kontekssadar. Mobilitas memperkenalkan sejumlah tantangan untuk sistem terdistribusi, termasuk kebutuhan untuk berurusan dengan konektivitas variabel dan memang pemutusan, dan kebutuhan untuk mempertahankan operasi dalam menghadapi perangkat mobilitas (lihat diskusi tentang transparansi mobilitas dalam Bagian 1.5.7). Komputasi di mana-mana adalah memanfaatkan dari banyak kecil, komputasi murah perangkat yang ada dalam lingkungan fisik pengguna, termasuk kantor, rumah dan bahkan pengaturan alam. 'Di mana-mana' Istilah ini dimaksudkan untuk menunjukkan bahwa komputasi kecil perangkat pada akhirnya akan menjadi begitu meresap dalam benda sehari-hari bahwa mereka hampir tidak perhatikan. Artinya, perilaku komputasi mereka akan transparan dan erat dengan fungsi fisik mereka. Kehadiran komputer di mana-mana hanya menjadi berguna saat mereka bisa berkomunikasi dengan satu sama lain. Sebagai contoh, mungkin nyaman bagi pengguna untuk mengendalikan mereka mesin cuci atau sistem hiburan mereka dari telepon mereka atau "universal remote control 'perangkat di rumah. Sama, mesin cuci bisa memberitahu pengguna melalui lencana pintar atau telepon ketika pencucian dilakukan. Mana-mana dan mobile komputasi tumpang tindih, karena pengguna mobile bisa pada prinsipnya manfaat dari komputer yang berada di mana-mana. Tapi mereka berbeda, secara umum. Ubiquitous komputasi dapat menguntungkan pengguna sementara mereka tetap berada di satu lingkungan seperti rumah atau rumah sakit. Demikian pula, komputasi mobile memiliki keuntungan bahkan jika itu hanya melibatkan konvensional, diskrit komputer dan perangkat seperti laptop dan printer. Gambar 1.4 menunjukkan pengguna yang mengunjungi sebuah organisasi tuan rumah. Angka tersebut menunjukkan pengguna rumah intranet dan intranet host pada situs yang pengguna mengunjungi. Kedua intranet yang terhubung ke seluruh internet. Pengguna memiliki akses ke tiga bentuk koneksi nirkabel. Laptop mereka memiliki cara menghubungkan ke LAN nirkabel inang. Jaringan ini menyediakan cakupan dari beberapa ratus meter (lantai dari sebuah bangunan, misalnya). Ini menghubungkan ke seluruh intranet tuan rumah melalui gateway atau jalur akses. Pengguna juga memiliki telepon (seluler) mobile, yang



terhubung ke Internet. Ponsel ini memberikan akses ke Web dan layanan Internet lainnya, dibatasi hanya dengan apa yang dapat disajikan pada layar yang kecil, dan juga dapat memberikan informasi lokasi melalui built-in fungsi GPS. Akhirnya, pengguna membawa digital kamera, yang dapat berkomunikasi melalui jaringan nirkabel area pribadi (dengan jangkauan hingga menjadi sekitar 10m) dengan perangkat seperti printer. Dengan infrastruktur sistem yang cocok, pengguna dapat melakukan beberapa tugas sederhana dalam host situs menggunakan perangkat yang mereka bawa. Sementara perjalanan ke host situs, pengguna dapat mengambil harga saham terbaru dari server web menggunakan ponsel dan juga dapat menggunakan built-in GPS dan perangkat lunak rute mencari untuk mendapatkan petunjuk arah ke lokasi situs. Selama pertemuan dengan tuan rumah mereka, pengguna dapat menunjukkan kepada mereka foto terbaru dengan mengirimnya dari kamera digital langsung ke printer (lokal) yang sesuai diaktifkan atau proyektor di ruang pertemuan (ditemukan menggunakan layanan lokasi). Ini hanya membutuhkan link nirkabel antara kamera dan printer atau proyektor. Dan mereka dapat pada prinsipnya mengirim dokumen dari laptop mereka untuk printer yang sama, memanfaatkan LAN nirkabel dan kabel link Ethernet ke printer. Skenario ini menunjukkan kebutuhan untuk mendukung interoperation spontan, dimana asosiasi antara perangkat secara rutin diciptakan dan dihancurkan – misalnya dengan menempatkan dan menggunakan perangkat host, seperti printer. Tantangan utama menerapkan untuk situasi seperti itu adalah untuk membuat interoperation cepat dan nyaman (yaitu, spontan) meskipun pengguna berada pada lingkungan tersebut mereka mungkin tidak pernah dikunjungi sebelumnya. Bahwa berarti memungkinkan perangkat pengunjung untuk berkomunikasi di jaringan host, dan menghubungkan perangkat dengan layanan lokal yang sesuai - proses yang disebut penemuan layanan. Komputasi mobile dan di mana-mana mewakili daerah hidup penelitian, dan berbagai dimensi yang disebutkan di atas akan dibahas secara mendalam dalam Bab 19.



1.3.3 Distibuted multimedia systems



Kecenderungan lain yang penting adalah kebutuhan untuk mendukung layanan multimedia di didistribusikan sistem. Dukungan Multimedia berguna dapat didefinisikan sebagai kemampuan untuk mendukung berbagai jenis media secara terpadu. Satu dapat mengharapkan sistem terdistribusi untuk mendukung penyimpanan, transmisi dan presentasi dari apa yang sering disebut sebagai media diskrit jenis, seperti gambar atau pesan teks. Sebuah sistem multimedia terdistribusi harus mampu untuk melakukan fungsi yang sama untuk berbagai jenis media kontinu seperti audio dan video, yang , itu harus dapat menyimpan dan mencari file audio atau video, untuk mengirimkan mereka di jaringan (mungkin secara real time seperti sungai muncul dari kamera video), untuk mendukung penyajian jenis media untuk pengguna dan secara opsional juga untuk berbagi media jenis di kelompok pengguna. Karakteristik penting dari jenis media kontinu adalah bahwa mereka termasuk dimensi temporal, dan memang, integritas jenis media secara fundamental tergantung pada menjaga waktu-nyata hubungan antara unsur-unsur jenis media. Untuk contoh, dalam sebuah presentasi video itu perlu untuk menjaga throughput yang diberikan dalam bentuk frame per detik dan, untuk real-time sungai, penundaan maksimum yang diberikan atau latency untuk pengiriman frame (ini adalah salah satu contoh dari kualitas layanan, dibahas secara lebih rinci dalam Bagian 1.5.8). Manfaat dari komputasi terdistribusi multimedia cukup besar dalam lebar kisaran baru (multimedia) layanan dan aplikasi dapat disediakan pada desktop, termasuk akses ke siaran televisi hidup atau pra-rekaman, akses ke perpustakaan film yang menawarkan video-on-demand, akses ke perpustakaan musik, penyediaan audio dan video conferencing fasilitas dan fitur telepon terpadu termasuk IP telephony atau terkait teknologi seperti Skype, peer-to-peer alternatif untuk telepon IP ( infrastruktur sistem terdistribusi fondasi Skype dibahas dalam Bagian 4.5.2). Perhatikan bahwa teknologi ini revolusioner di produsen menantang untuk memikirkan kembali banyak konsumen perangkat. Sebagai contoh, apa adalah rumah inti hiburan perangkat dari masa depan - komputer, televisi, atau konsol game? Webcasting adalah sebuah aplikasi teknologi multimedia terdistribusi. Webcasting adalah kemampuan untuk media penyiaran terus menerus, biasanya audio atau video, melalui Internet. Itu sekarang biasa untuk olahraga besar atau acara musik yang akan disiarkan dengan cara ini, sering



menarik sejumlah besar pemirsa (misalnya, konser Live8 tahun 2005 menarik sekitar 170.000 pengguna secara simultan pada puncaknya). Distributed multimedia aplikasi seperti tempat webcasting cukup tuntutan pada infrastruktur didistribusikan mendasari dalam hal: • memberikan dukungan untuk berbagai (extensible) encoding dan format enkripsi, seperti seri standar MPEG (termasuk misalnya MP3 populer standar atau dikenal sebagai, MPEG-1 Audio Layer 3) dan HDTV; • menyediakan berbagai mekanisme untuk memastikan bahwa kualitas pelayanan yang diinginkan dapat dipenuhi; • menyediakan strategi pengelolaan sumber daya terkait, termasuk yang sesuai penjadwalan kebijakan untuk mendukung kualitas pelayanan yang diinginkan; • menyediakan strategi adaptasi untuk menghadapi situasi yang tak terelakkan di buka sistem di mana kualitas pelayanan tidak dapat dipenuhi atau berkelanjutan. Pembahasan lebih lanjut tentang mekanisme tersebut dapat ditemukan dalam Bab 20.



1.3.4 Distributed computing as a utility Dengan meningkatnya kematangan infrastruktur sistem terdistribusi, sejumlah perusahaan yang mempromosikan pandangan sumber daya didistribusikan sebagai komoditi atau utilitas, menarik analogi antara sumber daya terdistribusi dan utilitas lain seperti air atau listrik. Dengan model ini, sumber daya yang disediakan oleh penyedia jasa yang sesuai dan efektif disewa bukan untuk dimiliki oleh pengguna akhir. Model ini berlaku untuk baik fisik sumber daya dan pelayanan lebih logis: •



Sumber daya fisik seperti penyimpanan dan pengolahan dapat dibuat tersedia untuk komputer jaringan, menghilangkan kebutuhan untuk memiliki sumber daya tersebutsendiri. Di salah satu ujung spektrum, pengguna dapat memilih untuk fasilitas penyimpanan jauh untuk file penyimpanan persyaratan (misalnya, untuk data multimedia seperti foto, musik atau video) dan / atau untuk backup. Demikian pula, pendekatan ini akan memungkinkan pengguna untuk menyewa satu atau lebih node komputasi, baik untuk memenuhi



komputasi dasar mereka kebutuhan atau memang untuk melakukan perhitungan didistribusikan. Di ujung lain dari spektrum, pengguna dapat mengakses pusat data yang canggih (jaringan fasilitas menawarkan akses ke repositori volume sering besar data kepada pengguna atau organisasi) atau memang infrastruktur komputasi menggunakan jenis layanan sekarang disediakan oleh perusahaan seperti Amazon dan Google. Sistem operasi virtualisasi adalah teknologi yang memungkinkan kunci untuk pendekatan ini, menyiratkan bahwa pengguna sebenarnya bisa diberikan layanan oleh virtual daripada node fisik. Ini menawarkan fleksibilitas yang lebih besar kepada penyedia jasa dalam hal sumber daya manajemen (operasi virtualisasi sistem dibahas lebih rinci dalamBab 7). •



Layanan Software • (sebagaimana didefinisikan dalam Bagian 1.4) juga dapat dibuat tersedia di seluruh Internet global yang menggunakan pendekatan ini. Bahkan, banyak perusahaan sekarang menawarkan komprehensif berbagai layanan untuk sewa efektif, termasuk layanan seperti kalender email dan terdistribusi. Google, misalnya, bundel berbagai bisnis jasa di bawah bendera Google Apps [www.google.com I]. Perkembangan ini diaktifkan secara standar yang disepakati untuk layanan perangkat lunak, misalnya seperti yang disediakan oleh layanan web (lihat Bab 9).



Istilah cloud computing digunakan untuk menangkap visi dari komputasi sebagai utilitas. Sebuah awan didefinisikan sebagai satu set layanan berbasis Internet aplikasi, penyimpanan dan komputasi cukup untuk mendukung kebutuhan sebagian besar pengguna ', sehingga memungkinkan mereka untuk sebagian besar atau seluruhnya mengeluarkan dengan penyimpanan lokal dan aplikasi perangkat lunak data (lihat Gambar 1.5). Istilah juga mendukung pandangan dari segala sesuatu sebagai layanan, dari infrastruktur fisik atau virtual melalui perangkat lunak, sering dibayar pada basis per-penggunaan daripada dibeli. Perhatikan bahwa komputasi awan mengurangi kebutuhan pada perangkat pengguna, yang memungkinkan desktop yang sangat sederhana atau perangkat portabel untuk mengakses berbagai macam berpotensi sumber daya dan jasa.



Awan biasanya diimplementasikan pada komputer cluster untuk memberikan yang diperlukan skala dan kinerja yang diperlukan oleh layanan tersebut. Sebuah komputer cluster adalah seperangkat komputer yang saling berhubungan erat bekerja sama untuk memberikan, highperformance tunggal yang terintegrasi kemampuan komputasi. Membangun proyek-proyek seperti SEKARANG (Jaringan Workstation) Proyek di Berkeley et [Anderson al. 1995,



now.cs.berkeley.edu] dan Beowulf di NASA [www.beowulf.org], tren terhadap pemanfaatan komoditas baik untuk perangkat keras komputer dan untuk jaringan interkoneksi. Kebanyakan kelompok terdiri dari komoditas PC menjalankan versi (kadang-kadang memotong-down) standar dari sistem operasi seperti Linux, interkoneksi oleh jaringan area lokal. Perusahaan seperti HP, Sun dan IBM menawarkan solusi blade. Blade server yang minimal komputasi elemen yang berisi untuk pemrosesan contoh dan (memori utama) penyimpanan kemampuan. Sebuah sistem blade terdiri dari sejumlah berpotensi besar server blade terkandung dalam kandang pisau. Unsur lainnya seperti listrik, pendingin, gigih penyimpanan (disk), jaringan dan menampilkan, disediakan baik oleh kandang atau melalui solusi virtualisasi (dibahas dalam Bab 7). Melalui solusi ini pisau, individu server bisa jauh lebih kecil dan juga lebih murah untuk menghasilkan daripada PC komoditi. Tujuan keseluruhan dari komputer cluster adalah untuk menyediakan berbagai layanan awan, termasuk performa tinggi kemampuan komputasi, penyimpanan massa (misalnya melalui pusat data), dan layanan aplikasi yang lebih kaya seperti pencarian web (Google, misalnya bergantung pada arsitektur komputer cluster yang besar untuk mengimplementasikan mesin pencari dan layanan lainnya, seperti dibahas dalam Bab 21). Komputasi grid (seperti dibahas dalam Bab 9, Bagian 9.7.2) juga dapat dilihat sebagai bentuk komputasi awan. Istilah sebagian besar identik dan pada waktu yang tidak jelas, tapi Komputasi grid secara umum dapat dipandang sebagai awal dari paradigma yang lebih umum komputasi awan dengan bias terhadap dukungan untuk aplikasi ilmiah. 1.4 Focus on resource sharing Pengguna begitu terbiasa dengan manfaat dari berbagi sumber daya sehingga mereka dengan mudah dapat mengabaikan signifikansi mereka. Kami secara rutin berbagi sumber daya perangkat keras seperti printer, data sumber daya seperti file, dan sumber daya dengan fungsionalitas yang lebih spesifik seperti pencarian mesin. Dilihat dari sudut pandang penyediaan perangkat keras, kita berbagi peralatan seperti seperti printer dan disk untuk mengurangi biaya. Tapi signifikansi yang jauh lebih besar bagi pengguna adalah berbagi dari tingkat yang lebih tinggi sumber daya yang berperan dalam aplikasi mereka



dan dalam sehari-hari mereka pekerjaan dan kegiatan sosial. Sebagai contoh, pengguna prihatin dengan berbagi data dalam bentuk database bersama atau satu set halaman web - bukan disk dan prosesor yang mereka diimplementasikan. Demikian pula, pengguna berpikir dalam hal sumber daya bersama seperti mesin pencari atau currency converter, tanpa memperhatikan server atau server yang menyediakan. Dalam prakteknya, pola berbagi sumber daya sangat bervariasi dalam ruang lingkup mereka dan bagaimana erat pengguna bekerja sama. Pada satu ekstrim, mesin pencari di Web menyediakan fasilitas untuk pengguna di seluruh dunia, pengguna yang membutuhkan pernah datang ke dalam kontak dengan satu lain secara langsung. Pada ekstrem yang lain, di komputer yang didukung kerja koperasi (CSCW), sekelompok pengguna yang bekerja sama langsung berbagi sumber daya seperti dokumen di, kelompok kecil tertutup. Pola pembagian dan distribusi geografis pengguna tertentu menentukan mekanisme apa sistem harus memasok untuk mengkoordinasikan tindakan pengguna. Kami menggunakan layanan istilah untuk bagian yang berbeda dari sebuah sistem komputer yang mengelola koleksi sumber terkait dan menyajikan fungsi mereka kepada pengguna dan aplikasi. Sebagai contoh, kita mengakses file bersama melalui layanan file, kami mengirimkan dokumen ke printer melalui layanan pencetakan; kita membeli barang melalui layanan pembayaran elektronik. Satu-satunya akses kita harus layanan ini melalui seperangkat operasi yang mengekspor. Untuk contoh, sebuah layanan file menyediakan membaca, menulis dan menghapus operasi pada file. Fakta bahwa layanan membatasi akses sumber daya untuk satu set yang didefinisikan dengan baik operasi adalah dalam praktek rekayasa perangkat lunak bagian standar. Tetapi juga mencerminkan fisik organisasi sistem terdistribusi. Sumber daya dalam sistem terdistribusi secara fisik dikemas dalam komputer dan hanya dapat diakses dari komputer lain dengan alat komunikasi. Untuk berbagi efektif, setiap sumber daya harus dikelola oleh program yang menawarkan antarmuka komunikasi yang memungkinkan sumber daya yang akan diakses dan diperbarui andal dan konsisten. Server panjang adalah mungkin akrab bagi sebagian besar pembaca. Hal ini mengacu pada sebuah program berjalan (Proses) pada komputer jaringan yang menerima permintaan dari program yang



berjalan pada komputer lain untuk melakukan layanan dan merespon dengan tepat. Yang meminta proses yang disebut sebagai klien, dan pendekatan secara keseluruhan dikenal sebagai client-server komputasi. Dalam pendekatan ini, permintaan dikirim dalam pesan dari klien ke server dan balasan dikirim dalam pesan dari server ke klien. Ketika klien mengirimkan meminta untuk operasi yang akan dilakukan, kita mengatakan bahwa klien memanggil operasi pada server. Sebuah interaksi lengkap antara klien dan server, dari sudut ketika klien mengirimkan permintaan untuk ketika menerima respon server, disebut terpencil doa. Proses yang sama mungkin baik klien dan server, karena server kadang-kadang memanggil operasi pada server lain. 'Klien' dan 'server' hanya berlaku untuk peran dimainkan dalam satu permintaan. Klien aktif (membuat permintaan) dan server yang pasif (hanya bangun ketika mereka menerima permintaan); server terus berjalan, sedangkan klien terakhir hanya selama aplikasi yang mereka membentuk bagian. Perhatikan bahwa meskipun secara default 'klien' dan 'server' mengacu pada proses bukan dari komputer yang mereka jalankan atas, dalam bahasa sehari-hari istilah-istilah tersebut juga mengacu ke komputer sendiri. Lain perbedaan, yang akan kita bahas dalam Bab 5, adalah bahwa dalam sistem terdistribusi ditulis dalam bahasa berorientasi objek, sumber daya mungkin dikemas sebagai objek dan diakses oleh objek klien, dalam hal ini kita berbicara tentang klien keberatan memanggil metode pada objek server. Banyak, tapi jelas tidak semua, sistem terdistribusi dapat dibangun sepenuhnya di bentuk interaksi klien dan server. Web Dunia email, Wide dan jaringan printer semua cocok dengan model ini. Kami membahas alternatif untuk sistem client-server dalam Bab 2. Sebuah web browser mengeksekusi adalah contoh dari klien. Web browser berkomunikasi dengan server web, untuk meminta halaman web dari itu. Kami menganggap Web dan terkait arsitektur client-server secara lebih rinci dalam Bagian 1.6. 1.5 Challenges Contoh dalam Bagian 1.2 dimaksudkan untuk menggambarkan ruang lingkup sistem terdistribusi dan untuk menyarankan masalah yang muncul dalam desain mereka. Dalam banyak dari mereka, signifikan tantangan yang muncul dan diatasi. Sebagai ruang lingkup dan skala didistribusikan



sistem dan aplikasi diperpanjang sama dan tantangan lainnya cenderung dihadapi. Pada bagian ini kita menjelaskan tantangan utama. 1.5.1 Heterogenetly Internet memungkinkan pengguna untuk mengakses layanan dan menjalankan aplikasi lebih heterogen kumpulan komputer dan jaringan. Heterogenitas (yaitu, variasi dan perbedaan) berlaku untuk semua hal berikut: • jaringan; • perangkat keras komputer; • sistem operasi; • bahasa pemrograman; • implementasi oleh pengembang yang berbeda. Meskipun internet terdiri dari jenis yang berbeda dari jaringan (diilustrasikan dalam Gambar 1,3), perbedaan mereka tertutup oleh fakta bahwa semua komputer yang menyertainya menggunakan protokol Internet untuk berkomunikasi satu sama lain. Misalnya, komputer terpasang ke jaringan Ethernet memiliki sebuah implementasi dari protokol Internet selama Ethernet, sedangkan komputer pada jenis jaringan yang berbeda akan membutuhkan sebuah implementasi satu protokol Internet



untuk



jaringan



tersebut.



Bab



3



menjelaskan



bagaimana



Internet



protokol



diimplementasikan melalui berbagai jaringan yang berbeda. Tipe data seperti integer dapat diwakili dengan cara yang berbeda pada berbagai jenis perangkat keras - misalnya, ada dua alternatif untuk memesan byte bilangan bulat. Perbedaan-perbedaan dalam representasi harus ditangani jika pesan yang dipertukarkan antara program yang berjalan pada hardware yang berbeda. Meskipun sistem operasi dari semua komputer di Internet harus menyertakan sebuah implementasi dari protokol internet, mereka tidak perlu menyediakan semua sama pemrograman aplikasi antarmuka untuk protokol ini. Sebagai contoh, panggilan untuk pesan bertukar di UNIX berbeda dari panggilan pada Windows.



Bahasa pemrograman yang berbeda menggunakan representasi yang berbeda untuk karakter dan struktur data seperti array dan catatan. Perbedaan-perbedaan ini harus diatasi jika program yang ditulis dalam bahasa yang berbeda untuk dapat berkomunikasi dengan satu sama lain. Program yang ditulis oleh pengembang yang berbeda tidak dapat berkomunikasi dengan satu sama lain kecuali mereka menggunakan standar umum, misalnya, untuk komunikasi jaringan dan representasi dari item data primitif dan struktur data dalam pesan. Agar hal ini terjadi, standar perlu disepakati dan diadopsi - seperti memiliki protokol internet. Middleware • The middleware istilah berlaku untuk lapisan perangkat lunak yang menyediakan pemrograman abstraksi serta masking heterogenitas yang mendasari jaringan, perangkat keras, sistem operasi dan bahasa pemrograman. Common Obyek Permintaan Broker (CORBA), yang dijelaskan dalam Bab 4, 5 dan 8, adalah misalnya. Beberapa middleware, seperti Java Remote Method Invocation (RMI) (lihat Bab 5), hanya mendukung bahasa pemrograman tunggal. Kebanyakan middleware dilaksanakan selama protokol Internet, yang menutupi diri mereka perbedaan dari mendasari jaringan, tetapi penawaran middleware semua dengan perbedaan dalam sistem operasi dan perangkat keras - bagaimana hal ini dilakukan adalah topik utama dari Bab 4. Selain memecahkan masalah heterogenitas, middleware menyediakan seragam komputasi model untuk digunakan oleh programmer server dan didistribusikan aplikasi. Model yang mungkin termasuk doa remote object, remote event pemberitahuan, remote SQL akses dan proses transaksi terdistribusi. Sebagai contoh, CORBA menyediakan objek pemanggilan jarak jauh, yang memungkinkan sebuah objek dalam sebuah program berjalan pada satu komputer untuk memanggil metode dari objek dalam sebuah program yang berjalan pada komputer lain. Pelaksanaannya menyembunyikan fakta bahwa pesan tersebut diteruskan melalui jaringan untuk mengirim permintaan doa dan membalas nya. Heterogenitas dan kode mobile • Kode ponsel istilah digunakan untuk merujuk pada kode program yang dapat ditransfer dari satu komputer ke komputer lain dan jalankan di tempat tujuan – Jawa applet adalah sebuah contoh. Kode cocok untuk berjalan pada satu komputer tidak selalu cocok untuk berjalan pada yang lain karena program yang dapat dieksekusi biasanya spesifik baik untuk set instruksi dan sistem operasi host.



Pendekatan Mesin virtual menyediakan cara untuk membuat eksekusi kode pada berbagai komputer host: compiler untuk bahasa tertentu menghasilkan kode untuk mesin virtual bukan sebuah kode untuk hardware tertentu. Sebagai contoh, Jawa compiler menghasilkan kode untuk mesin virtual Java, yang mengeksekusi dengan interpretasi. Mesin virtual Java perlu dilakukan sekali untuk setiap jenis komputer untuk memungkinkan program Java untuk dijalankan. Hari ini, bentuk yang paling umum digunakan kode mobile adalah Javascript inklusi program di beberapa halaman web dimuat ke browser klien. Perluasan dari Web teknologi dibahas lebih lanjut dalam Bagian 1.6. 1.5.2 Openness Keterbukaan sistem komputer adalah karakteristik yang menentukan apakah sistem dapat diperpanjang dan reimplemented dengan berbagai cara. Keterbukaan didistribusikan sistem ditentukan terutama oleh sejauh mana sumber daya baru-sharing dapat ditambahkan dan dibuat tersedia untuk digunakan oleh berbagai program klien. Keterbukaan tidak dapat dicapai kecuali spesifikasi dan dokumentasi antarmuka perangkat lunak utama dari komponen sistem yang dibuat tersedia untuk perangkat lunak pengembang. Singkatnya, interface kunci diterbitkan. Proses ini mirip dengan standarisasi antarmuka, tetapi sering kali melewati prosedur standarisasi resmi, yang biasanya rumit dan bergerak lambat. Namun, penerbitan interface hanya titik awal untuk menambah dan memperluas layanan dalam sistem terdistribusi. Tantangan bagi desainer adalah untuk mengatasi kompleksitas sistem terdistribusi terdiri dari banyak komponen direkayasa oleh berbeda orang. Para desainer dari protokol Internet memperkenalkan serangkaian dokumen yang disebut 'Permintaan For Comments', atau RFC, masing-masing yang dikenal dengan nomor. Itu spesifikasi protokol komunikasi internet diterbitkan dalam seri ini di awal 1980-an, diikuti dengan spesifikasi untuk aplikasi yang berjalan di atas mereka, seperti transfer file, email dan telnet dengan pertengahan 1980-an. Praktek ini terus berlangsung dan membentuk dasar dokumentasi teknis dari Internet. Seri ini meliputi diskusi serta spesifikasi protokol. Salinan dapat diperoleh dari [www.ietf.org]. Dengan demikian publikasi protokol komunikasi internet asli telah memungkinkan berbagai sistem dan aplikasi Internet termasuk web yang akan dibangun. RFC tidak satu-satunya alat publikasi. Misalnya, World Wide Web Consortium (W3C) mengembangkan dan menerbitkan standar yang berkaitan dengan pekerjaan dari Web [www.w3.org]. Sistem yang dirancang untuk mendukung berbagi sumber daya dengan cara ini disebut terbuka didistribusikan sistem untuk menekankan fakta bahwa mereka adalah extensible. Mereka dapat diperpanjang pada tingkat hardware dengan penambahan komputer ke jaringan dan pada perangkat lunak



tingkat dengan pengenalan layanan baru dan implementasi ulang dari yang lama, memungkinkan program aplikasi untuk berbagi sumber daya. Keuntungan lebih lanjut yang sering dikutip untuk terbuka sistem adalah kemerdekaan mereka dari pemasok individu.



Untuk



meringkas:



• Sistem Buka dicirikan oleh fakta bahwa antarmuka utama mereka diterbitkan. • sistem terdistribusi Terbuka didasarkan pada penyediaan komunikasi seragam mekanisme dan interface diterbitkan untuk akses ke sumber daya bersama. • sistem terdistribusi Buka dapat dibangun dari perangkat keras heterogen dan perangkat lunak, mungkin dari vendor yang berbeda. Tapi kesesuaian masing-masing komponen dengan standar diterbitkan harus hati-hati diuji dan diverifikasi jika sistem adalah untuk bekerja dengan benar.



1.5.3 Security Banyak sumber daya informasi yang tersedia dan dipelihara didistribusikan sistem memiliki nilai intrinsik tinggi untuk pengguna mereka. Keamanan mereka karena itu dari yang cukup penting. Keamanan untuk sumber daya informasi memiliki tiga komponen: kerahasiaan (perlindungan terhadap pengungkapan kepada individu yang tidak sah), integritas (perlindungan terhadap perubahan atau korupsi), dan ketersediaan (perlindungan terhadap gangguan pada alat untuk mengakses sumber daya). Bagian 1.1 menunjukkan bahwa meskipun Internet memungkinkan sebuah program dalam satu komputer untuk berkomunikasi dengan sebuah program di komputer lain terlepas dari lokasinya, risiko keamanan yang terkait dengan akses gratis yang memungkinkan untuk semua sumber daya di intranet. Meskipun firewall dapat digunakan untuk membentuk penghalang di sekitar intranet, membatasi lalu lintas yang dapat masuk dan keluar, hal ini tidak berurusan dengan memastikan penggunaan yang tepat dari sumber daya oleh pengguna dalam intranet, atau dengan penggunaan yang tepat sumber daya di Internet, yang tidak dilindungi oleh firewall.



Dalam sistem terdistribusi, klien mengirim permintaan untuk mengakses data yang dikelola



oleh



server,



yang melibatkan pengiriman informasi dalam pesan melalui jaringan. Sebagai contoh: 1. Seorang dokter mungkin meminta akses ke data pasien rumah sakit atau kirim penambahan



data



tersebut.



2. Dalam perdagangan elektronik dan perbankan, pengguna mengirim nomor kartu kredit



mereka



di



Internet. Dalam kedua contoh, tantangannya adalah untuk mengirim informasi sensitif dalam pesan jaringan



selama dengan



cara



yang



menyembunyikan



aman.



Tapi



keamanan



bukan



hanya



masalah isi



pesan - juga melibatkan mengetahui dengan pasti identitas pengguna atau agen lain pada nama siapa pesan itu dikirim. Pada contoh pertama, server perlu untuk mengetahui bahwa pengguna benar-benar dokter, dan dalam contoh kedua, pengguna perlu untuk memastikan



identitas



dari toko atau bank yang mereka hadapi. Tantangan kedua di sini adalah untuk mengidentifikasi remote user atau agen lain dengan benar. Kedua tantangan ini dapat dipenuhi dengan



menggunakan



teknik enkripsi yang dikembangkan untuk tujuan ini. Mereka digunakan secara luas di Internet dan dibahas dalam Bab 11.



Namun, berikut dua tantangan keamanan belum sepenuhnya terpenuhi: Penolakan serangan layanan: Masalah keamanan adalah bahwa pengguna mungkin ingin mengganggu layanan untuk beberapa alasan. Hal ini dapat dicapai dengan membombardir layanan dengan sejumlah besar permintaan gunanya bahwa pengguna serius tidak dapat menggunakan itu. Ini disebut serangan penolakan layanan. Ada penolakan beberapa pelayanan serangan terhadap terkenal layanan web. Saat ini serangan tersebut dimentahkan oleh mencoba untuk menangkap dan menghukum para pelaku setelah kejadian, tapi itu bukan umum solusi untuk masalah. Penanggulangan berdasarkan perbaikan dalam pengelolaan jaringan yang sedang dikembangkan, dan ini akan disinggung di Bab 3. Keamanan mobile code: Kode Handphone perlu ditangani dengan benar. mempertimbangkan seseorang yang menerima program dieksekusi sebagai lampiran surat elektronik: yang kemungkinan efek menjalankan program tidak bisa ditebak, misalnya, mungkin tampak untuk menampilkan gambar yang menarik namun pada kenyataannya dapat mengakses sumber daya lokal, atau mungkin menjadi bagian dari serangan penolakan layanan. Beberapa tindakan untuk mengamankan kode mobile diuraikan dalam Bab 11.



1.5.4 Scalability Sistem terdistribusi beroperasi secara efektif dan efisien pada skala yang berbeda, mulai dari intranet kecil ke Internet. Sebuah sistem digambarkan sebagai terukur jika akan tetap efektif bila ada peningkatan signifikan dalam jumlah sumber daya dan jumlah pengguna.



Jumlah



komputer



dan



server



di



internet



telah



meningkat



secara dramatis. Gambar 1.6 menunjukkan meningkatnya jumlah komputer dan server



web



selama sejarah 12-tahun dari Web hingga tahun 2005 [zakon.org]. Sangat menarik untuk



mencatat



signifikan pertumbuhan di kedua komputer dan server web dalam periode ini, tetapi juga bahwa persentase relatif mendatar - sebuah tren yang dijelaskan oleh pertumbuhan



tetap



dan



mobile pribadi komputasi. Satu server web juga dapat semakin menjadi host pada beberapa komputer. Desain



sistem



terdistribusi



scalable



menyajikan



tantangan



sebagai



berikut:



Mengontrol biaya sumber daya fisik: Sebagai permintaan untuk sumber daya tumbuh, harus mungkin untuk memperluas sistem, dengan biaya murah, untuk memenuhi kebutuhan frekuensi jumlah



itu. yang



pengguna



file dan



Sebagai



diakses



di



peningkatan



menambahkan



intranet komputer.



contoh,



akan Harus



tumbuh



sebagai



dimungkinkan



komputer



untuk server



untuk menghindari hambatan kinerja yang akan timbul jika file server tunggal harus menangani permintaan akses file semua. Secara umum, untuk sistem dengan pengguna



n



untuk



menjadi



scalable,



kuantitas sumber daya fisik yang diperlukan untuk mendukung mereka harus berada di



paling



O



(n)



-



yang



adalah, sebanding dengan n. Sebagai contoh, jika sebuah file server tunggal dapat mendukung



20



pengguna,



maka



dua server tersebut harus dapat mendukung 40 pengguna. Meskipun yang membunyikan



jelas



tujuan, tidak selalu mudah untuk mencapai dalam praktek, seperti yang kita tunjukkan



dalam



Bab



12.



Mengendalikan kerugian kinerja: Pertimbangkan pengelolaan sekumpulan data yang ukuran sebanding dengan jumlah pengguna atau sumber daya dalam sistem misalnya, meja



dengan



korespondensi



antara



nama



domain



komputer



dan



mereka



Internet alamat dipegang oleh Domain Name System, yang digunakan terutama untuk



melihat



nama-nama DNS seperti www.amazon.com. Algoritma yang menggunakan struktur hierarkis skala lebih baik daripada mereka yang menggunakan struktur linier. Tetapi bahkan dengan



struktur



hierarkis



peningkatan ukuran akan menghasilkan beberapa kerugian dalam kinerja: waktu yang



dibutuhkan



untuk



mengakses



Data hirarkis terstruktur adalah O (log n), dimana n adalah ukuran dari set data. Untuk sistem menjadi terukur, hilangnya kinerja maksimum harus tidak lebih buruk dari ini. Sumber daya perangkat lunak Mencegah kehabisan: Contoh dari kurangnya skalabilitas ditunjukkan oleh nomor yang digunakan sebagai Internet (IP) alamat (komputer alamat



dalam



Internet). Pada akhir tahun 1970, diputuskan untuk menggunakan 32 bit untuk tujuan ini,



tetapi



seperti



yang



akan



dijelaskan dalam Bab 3, pasokan alamat Internet yang tersedia hampir habis. Untuk alasan ini, versi baru dari protokol dengan alamat Internet 128-bit sedang diadopsi, dan ini akan membutuhkan modifikasi pada komponen perangkat lunak banyak. Agar adil kepada para desainer awal Internet, tidak ada solusi yang tepat untuk



masalah



ini.



Hal



ini



sulit untuk memprediksi kebutuhan yang akan ditempatkan pada tahun sistem ke depan.



Selain



itu,



overcompensating untuk pertumbuhan masa depan mungkin lebih buruk dari adaptasi



perubahan



ketika



kita dipaksa untuk - alamat Internet yang lebih besar akan menempati ruang ekstra



dalam



pesan



dan



dalam penyimpanan komputer.



Menghindari kemacetan kinerja: Secara umum, algoritma harus terdesentralisasi untuk menghindari kemacetan kinerja. Kita menggambarkan hal ini dengan mengacu pada pendahulu dari Domain Name System, di mana nama tabel yang disimpan dalam master file tunggal yang dapat didownload ke komputer yang membutuhkannya. itu denda ketika hanya ada beberapa ratus komputer di Internet, tetapi segera menjadi kinerja yang serius dan hambatan administratif. Nama Domain Sistem dihapus kemacetan ini dengan partisi tabel nama antara server di seluruh Internet dan dikelola secara lokal - lihat Bab 3 dan 13. Beberapa sumber daya bersama diakses sangat sering, misalnya, banyak pengguna dapat mengakses halaman web yang sama, menyebabkan penurunan kinerja. Kita akan melihat di Bab 2 bahwa caching dan replikasi dapat digunakan untuk meningkatkan kinerja sumber daya yang sangat banyak digunakan. Idealnya, perangkat lunak sistem dan aplikasi tidak perlu berubah ketika skala dari sistem meningkat, tapi ini sulit dicapai. Masalah skala adalah dominan tema dalam pengembangan sistem terdistribusi. Teknik-teknik yang telah sukses dibahas secara luas dalam buku ini. Mereka termasuk penggunaan data direplikasi (Bab 18), teknik terkait caching (Bab 2 dan 12) dan penyebaran beberapa server untuk menangani tugas yang biasa dilakukan, memungkinkan beberapa tugas serupa akan dilakukan secara bersamaan.



1.5.5 Failure Handing Sistem komputer kadang-kadang gagal. Ketika kesalahan terjadi pada perangkat keras



atau



perangkat



lunak,



program



dapat menghasilkan hasil yang salah atau mungkin berhenti sebelum mereka telah menyelesaikan



dimaksudkan



perhitungan. Kita akan membahas dan mengklasifikasikan berbagai jenis kegagalan yang



mungkin



yang



dapat



terjadi dalam proses dan jaringan yang terdiri dari sistem terdistribusi dalam Bab 2. Kegagalan dalam sistem terdistribusi adalah parsial - yaitu, beberapa komponen gagal



saat



lain terus berfungsi. Oleh karena itu penanganan kegagalan adalah sangat sulit. Teknik-teknik berikut untuk berurusan dengan kegagalan yang dibahas dalam buku ini: Mendeteksi kegagalan: Beberapa kegagalan dapat dideteksi. Sebagai contoh,



checksum



dapat



digunakan untuk mendeteksi data yang rusak dalam pesan atau file. Bab 2 menjelaskan



bahwa



itu



adalah



sulit atau bahkan tidak mungkin untuk mendeteksi beberapa kegagalan lain, seperti remote



jatuh



server di Internet. Tantangannya adalah mengelola dengan adanya kegagalan yang tidak Masking



dapat kegagalan:



dideteksi Beberapa



disembunyikan parah. 1.



bisa



kegagalan



contoh



dipancarkan



kembali



dapat



yang



atau Dua



Pesan



tetapi



pernah



diduga.



terdeteksi



dapat



dibuat



kurang



kegagalan



bersembunyi:



ketika



mereka



gagal



untuk



tiba.



2. File data dapat ditulis ke sepasang disk sehingga jika salah satu rusak, yang lain mungkin masih benar. Hanya menjatuhkan pesan yang rusak adalah contoh dari membuat kesalahan yang lebih



ringan



- Itu bisa dipancarkan kembali. Pembaca mungkin akan menyadari bahwa teknikteknik dijelaskan untuk menyembunyikan kegagalan tidak dijamin untuk bekerja dalam kasus-kasus



terburuk,



karena



Misalnya, data pada disk kedua dapat rusak juga, atau pesan tidak dapat melewati dalam waktu yang wajar namun sering itu dipancarkan kembali. Toleransi kegagalan: Sebagian besar layanan di Internet melakukan pameran kegagalan



-



itu



akan



tidak praktis bagi mereka untuk mencoba untuk mendeteksi dan menyembunyikan semua



kegagalan



yang



mungkin



terjadi sedemikian jaringan besar dengan begitu banyak komponen. Klien mereka dapat dirancang untuk mentolerir kegagalan, yang umumnya melibatkan pengguna toleransi



mereka



sebagai



baik. Misalnya, ketika web browser tidak dapat menghubungi server web, itu tidak membuat pengguna



menunggu



selamanya



sementara



itu



terus



mencoba



-



itu



menginformasikan



pengguna



tentang



masalah



ini,



meninggalkan mereka bebas untuk mencoba lagi nanti. Layanan yang mentoleransi kegagalan ayat



yang di



dibahas



redundansi



di



dalam bawah



ini.



Pemulihan dari kegagalan: Pemulihan melibatkan desain perangkat lunak sehingga keadaan data permanen dapat dipulihkan atau 'memutar kembali' setelah server telah jatuh. Di umum,



perhitungan



dilakukan



oleh



beberapa



program



akan



lengkap



bila



kesalahan terjadi, dan data permanen yang mereka memperbarui (file dan bahan lainnya



yang



disimpan



dalam penyimpanan permanen) mungkin tidak dalam keadaan konsisten. Pemulihan ini



dijelaskan



dalam



Bab



17.



Redundansi: Layanan dapat dibuat untuk mentolerir kegagalan oleh penggunaan berlebihan komponen.



Perhatikan



contoh



berikut:



1. Harus selalu ada setidaknya dua rute yang berbeda antara dua router di Internet. 2. Dalam Domain Name System, setiap nama tabel direplikasi dalam setidaknya dua berbeda



server.



3. Sebuah database dapat direplikasi di beberapa server untuk memastikan bahwa data diakses



tetap setelah



kegagalan



server



tunggal,



server



dapat



dirancang



untuk



mendeteksi kesalahan dalam rekan-rekan mereka, ketika kesalahan yang terdeteksi di diarahkan



satu



server,



ke



server



klien yang



tersisa.



Desain teknik yang efektif untuk menjaga replika cepat mengubah data uptotanggal tanpa kehilangan kinerja yang berlebihan adalah sebuah tantangan. Pendekatan dibahas



yang dalam



Bab



18.



Sistem terdistribusi menyediakan tingkat tinggi dari ketersediaan dalam menghadapi kesalahan



hardware.



Ketersediaan sistem adalah ukuran dari proporsi waktu yang tersedia untuk



digunakan. Ketika salah satu komponen dalam sistem terdistribusi gagal, hanya pada pekerjaan



yang



sangat



menggunakan komponen gagal terpengaruh. Seorang pengguna dapat memindahkan ke



komputer



lain



jika



yang



bahwa mereka menggunakan gagal, sebuah proses server dapat dimulai di komputer lain.



1.5.6 Concurrency Kedua layanan dan aplikasi menyediakan sumber daya yang dapat digunakan bersama



oleh



klien



dalam



didistribusikan sistem. Oleh karena itu ada kemungkinan bahwa beberapa klien akan mencoba untuk mengakses sumber daya bersama pada saat yang sama. Sebagai contoh,



struktur



data



yang



mencatat



tawaran



untuk lelang dapat diakses sangat sering ketika sampai dekat dengan waktu deadline. Proses yang mengelola sumber daya bersama bisa mengambil satu permintaan klien pada



suatu



waktu.



Tapi bahwa pendekatan batas throughput. Oleh karena itu layanan dan aplikasi umumnya



memungkinkan



permintaan beberapa klien untuk diproses secara bersamaan. Untuk membuat ini lebih



konkret,



menganggap bahwa setiap sumber daya dirumuskan sebagai objek dan bahwa doa dieksekusi di benang bersamaan. Dalam hal ini ada kemungkinan bahwa beberapa thread dapat melaksanakan secara bersamaan dalam suatu objek, dalam hal operasi mereka pada objek dapat bertentangan satu sama lain dan menghasilkan hasil yang tidak konsisten. Sebagai contoh, jika dua bersamaan



tawaran



di lelang adalah 'Smith: $ 122' dan 'Jones: $ 111, dan operasi terkait adalah disisipkan tanpa kontrol, maka mereka mungkin akan disimpan sebagai 'Smith: $ 111' dan $



'Jones: 122



'.



Moral dari cerita ini adalah bahwa objek apapun yang merupakan sumber daya bersama



dalam



sistem terdistribusi harus bertanggung jawab untuk memastikan bahwa ia beroperasi dengan



benar



dalam



bersamaan lingkungan. Ini berlaku tidak hanya untuk server tetapi juga untuk bendabenda



di



aplikasi. Oleh karena itu setiap programmer yang mengambil sebuah implementasi dari



sebuah



benda



yang



tidak dimaksudkan untuk digunakan dalam sistem terdistribusi harus melakukan apapun



yang



aman



diperlukan



di



Untuk



objek



untuk



lingkungan



aman



di



lingkungan



membuat



yang yang



bersamaan,



bersamaan. operasinya



harus



disinkronkan dalam sedemikian rupa sehingga data tetap konsisten. Hal ini dapat dicapai



dengan



standar teknik seperti Semaphore, yang digunakan dalam kebanyakan sistem operasi.



ini



topik dan ekstensi untuk koleksi benda-benda bersama terdistribusi dibahas dalam Bab 7 dan 17.



1.5.7 Transparency Transparansi didefinisikan sebagai penyembunyian dari pengguna dan aplikasi programmer pemisahan komponen dalam sistem terdistribusi, sehingga sistem dianggap sebagai keseluruhan bukan sebagai kumpulan komponen independen. itu implikasi dari transparansi adalah pengaruh besar pada desain perangkat lunak sistem. Para



ANSA



Reference



Manual



[ANSA



1989]



dan



Organisasi



Internasional



untuk Model Referensi Standardisasi untuk Pengolahan Terdistribusi Terbuka (RMODP) [ISO 1992] mengidentifikasi delapan bentuk transparansi. Kami telah diparafrasekan asli Definisi ANSA, menggantikan transparansi migrasi mereka dengan mobilitas kita sendiri transparansi



yang



cakupannya



lebih



luas:



Transparansi Akses memungkinkan sumber daya lokal dan remote untuk diakses menggunakan operasi



identik.



Transparansi Lokasi memungkinkan sumber daya untuk diakses tanpa pengetahuan mereka fisik



atau



lokasi



jaringan



(misalnya,



yang



bangunan



atau



alamat



IP).



Transparansi Concurrency memungkinkan beberapa proses untuk beroperasi secara bersamaan



menggunakan



berbagi sumber daya tanpa gangguan antara mereka. Transparansi Replikasi memungkinkan beberapa contoh dari sumber daya yang akan digunakan



untuk



meningkatkan kehandalan dan kinerja tanpa pengetahuan tentang replika oleh pengguna



atau



aplikasi



programmer.



Transparansi



Kegagalan



memungkinkan



memungkinkan



penyembunyian



kesalahan,



pengguna



yang dan



program aplikasi untuk menyelesaikan tugas mereka meskipun kegagalan perangkat keras



atau



perangkat



lunak



komponen.



Transparansi Mobilitas memungkinkan pergerakan sumber daya dan klien dalam suatu tanpa



sistem mempengaruhi



Transparansi



kinerja



operasi



memungkinkan



sistem



pemakai untuk



atau



dikonfigurasi



program. ulang



untuk



meningkatkan kinerja



sebagai



beban



bervariasi.



Transparansi Scaling memungkinkan sistem dan aplikasi untuk memperluas dalam skala



tanpa



mengubah struktur sistem atau algoritma aplikasi.



Dua transparansi paling penting adalah akses dan transparansi lokasi; mereka ada atau tidak adanya paling kuat mempengaruhi pemanfaatan sumber daya terdistribusi. Mereka kadang-kadang disebut bersama sebagai transparansi jaringan. Sebagai gambaran transparansi akses, pertimbangkan antarmuka pengguna berbasis grafik dengan folder, yang adalah sama apakah file dalam folder bersifat lokal atau remote. Lain contoh adalah sebuah API untuk file yang menggunakan operasi yang sama untuk mengakses baik



lokal dan remote file (lihat Bab 12). Sebagai contoh dari kurangnya transparansi akses, mempertimbangkan sistem terdistribusi yang tidak memungkinkan Anda untuk mengakses file pada komputer remote kecuali Anda menggunakan program ftp untuk melakukannya. Nama sumber daya web atau URL adalah lokasi-transparan karena bagian dari URL yang mengidentifikasi nama web server domain mengacu pada nama komputer di domain, bukan untuk alamat Internet. Namun, URL tidak mobilitas-transparan, karena halaman web pribadi seseorang tidak dapat pindah ke tempat baru kerja mereka dalam berbeda domain penuh - semua link di halaman lain masih akan menunjuk ke halaman asli. Secara umum, pengidentifikasi seperti URL yang menyertakan nama domain komputer mencegah transparansi replikasi. Meskipun DNS memungkinkan nama domain untuk mengacu pada beberapa komputer, itu mengambil hanya salah satu dari mereka ketika mendongak nama. Sejak replikasi skema umumnya perlu untuk dapat mengakses semua komputer yang berpartisipasi, itu akan perlu mengakses setiap entri DNS dengan nama. Sebagai gambaran adanya transparansi jaringan, pertimbangkan penggunaan sebuah alamat surat elektronik seperti Fred.Flintstone @ stoneit.com. Alamatnya terdiri dari pengguna nama dan nama domain. Mengirim email ke pengguna tersebut tidak melibatkan mengetahui fisik atau lokasi jaringan. Juga tidak prosedur untuk mengirim pesan email tergantung pada lokasi penerima. Dengan demikian surat elektronik dalam Internet menyediakan baik lokasi dan transparansi akses (yaitu, transparansi jaringan). Transparansi Kegagalan juga dapat digambarkan dalam konteks surat elektronik, yang pada akhirnya disampaikan, bahkan ketika server atau link komunikasi gagal. Kesalahan adalah bertopeng dengan mencoba mengirim ulang pesan sampai mereka berhasil dikirim, bahkan jika itu membutuhkan beberapa hari. Middleware umumnya mengubah kegagalan jaringan dan proses ke dalam program tingkat pengecualian (lihat Bab 5 untuk penjelasan). Untuk menggambarkan transparansi mobilitas, pertimbangkan kasus ponsel. Menduga bahwa kedua pemanggil dan callee bepergian dengan kereta api di berbagai bagian negara, bergerak dari satu lingkungan (sel) yang lain. Kami menganggap telepon pemanggil sebagai klien dan callee itu telepon sebagai sumber daya. Para pengguna telepon dua membuat panggilan tidak menyadari mobilitas ponsel (klien dan sumber daya) antar sel. Transparansi menyembunyikan dan membuat anonim sumber daya yang tidak langsung dari relevansi dengan tugas di tangan untuk pengguna dan pemrogram aplikasi. Sebagai contoh, adalah umumnya diinginkan untuk sumber daya perangkat keras yang sama untuk dialokasikan secara bergantian untuk melakukan tugas - identitas prosesor digunakan untuk menjalankan proses umumnya tersembunyi dari pengguna dan tetap anonim. Seperti yang ditunjukkan dalam Bagian 1.3.2, ini mungkin tidak selalu apa yang diperlukan: misalnya, seorang pengelana yang menempel komputer laptop ke jaringan lokal di kantor yang dikunjungi harus menggunakan layanan lokal seperti mengirim layanan pesan, menggunakan server yang berbeda di setiap lokasi. Bahkan di dalam sebuah gedung, maka



normal untuk mengatur dokumen yang akan dicetak di printer, khusus bernama: biasanya satu yang dekat ke pengguna.



1.5.8 Quality of Service Setelah pengguna disediakan dengan fungsi yang mereka butuhkan dari layanan, seperti File layanan dalam sistem terdistribusi, kita dapat melanjutkan untuk bertanya tentang



kualitas



layanan



disediakan. The nonfunctional sifat utama dari sistem yang mempengaruhi kualitas layanan yang dialami oleh klien dan pengguna keandalan, keamanan dan kinerja. Kemampuan



beradaptasi



untuk



ketersediaan diakui



sebagai



memenuhi



konfigurasi



sumber aspek



penting



sistem



berubah



daya lebih



lanjut



dari



dan telah



kualitas



pelayanan.



Keandalan dan masalah keamanan sangat penting dalam desain sistem komputer yang Aspek



paling. kinerja



kualitas



pelayanan



pada



awalnya



didefinisikan



dalam



istilah



respon dan throughput komputasi, tetapi telah didefinisikan kembali sebagai kemampuan untuk memenuhi jaminan ketepatan waktu, seperti yang dibahas dalam paragraf



berikut.



Beberapa aplikasi, termasuk aplikasi multimedia, menangani waktu-kritis data aliran data yang diperlukan untuk diproses atau ditransfer dari satu proses ke lain pada tingkat bunga tetap. Sebagai contoh, sebuah layanan film mungkin terdiri dari



sebuah



program



klien



yang mengambil film dari server video dan menyajikannya di layar pengguna. Untuk hasil yang memuaskan frame yang berurutan dari video perlu ditampilkan kepada pengguna



dalam



beberapa Bahkan,



batas singkatan



QoS



waktu telah



efektif



yang dikomandoi



untuk



ditentukan. merujuk



pada



kemampuan sistem untuk memenuhi tenggat waktu tersebut. Pencapaiannya tergantung



pada



ketersediaan



dari komputasi yang diperlukan dan sumber daya jaringan pada waktu yang tepat. Hal



ini



menunjukkan



persyaratan untuk sistem untuk menyediakan komputasi terjamin dan komunikasi



sumber daya yang cukup untuk memungkinkan aplikasi untuk menyelesaikan setiap tugas



pada



Misalnya,



tugas



waktunya menampilkan



(untuk frame



video).



Jaringan yang umum digunakan saat ini memiliki kinerja tinggi - misalnya, BBC iPlayer umumnya melakukan diterima - tapi ketika jaringan sangatlah bias mereka kinerja dapat memburuk, dan tidak ada jaminan yang disediakan. QoS berlaku untuk operasi sistem serta jaringan. Setiap sumber daya yang penting harus disediakan oleh aplikasi yang membutuhkan QoS, dan harus ada sumber daya manajer yang memberikan jaminan. Reservasi permintaan yang tidak dapat dipenuhi ditolak. Masalah ini akan ditangani lebih lanjut dalam Bab 20.



1.6 Case Study: The World Wide Web World Wide Web [www.w3.org I, Berners-Lee 1991] adalah sebuah sistem untuk berkembang penerbitan dan mengakses sumber daya dan jasa di Internet. Melalui umum web browser yang tersedia, pengguna mengambil dan melihat dokumen dari berbagai



jenis,



mendengarkan



audio stream dan lihat streaming video, dan berinteraksi dengan seperangkat tak terbatas Web



mulai



layanan. hidup



di



pusat



Eropa



untuk



penelitian



nuklir



(CERN),



Swiss, pada tahun 1989 sebagai kendaraan untuk pertukaran dokumen antar komunitas fisikawan terhubung oleh internet [Berners-Lee 1999]. Fitur utama dari Web adalah bahwa ia menyediakan struktur hypertext antar dokumen yang toko, mencerminkan 'pengguna kebutuhan untuk mengorganisir pengetahuan mereka. Ini berarti bahwa dokumen berisi



link



(atau



hyperlink) - referensi ke dokumen lain dan sumber daya yang juga disimpan dalam Web.



Hal ini penting untuk pengalaman pengguna dari Web bahwa ketika mereka menghadapi



diberikan



gambar atau bagian teks dalam dokumen, ini akan sering disertai dengan link ke terkait dokumen dan sumber daya lainnya. Struktur link dapat sewenang-wenang kompleks



dan



set sumber daya yang dapat ditambahkan tidak terbatas - 'web' link memang di seluruh



dunia.



Bush [1945] dikandung struktur hypertextual lebih dari 50 tahun lalu, melainkan dengan Perkembangan internet bahwa gagasan ini bisa diwujudkan pada skala dunia. Web adalah sistem terbuka: dapat diperpanjang dan dilaksanakan dengan cara baru tanpa mengganggu fungsi yang ada (lihat Bagian 1.5.2). Pertama, operasi adalah berdasarkan standar komunikasi dan standar dokumen atau konten yang bebas diterbitkan dan banyak diterapkan. Sebagai contoh, ada banyak jenis browser, masing-masing dalam banyak kasus diimplementasikan pada beberapa platform, dan ada banyak implementasi dari server web. Browser konforman dapat mengambil sumber daya dari setiap konforman server. Jadi pengguna memiliki akses ke browser pada sebagian besar perangkat yang



mereka



dari



ponsel



gunakan,



ke



komputer



desktop.



Kedua, Web adalah terbuka terhadap jenis-jenis sumber daya yang dapat dipublikasikan dan berbagi di atasnya. Pada sederhana, sumber daya di Web adalah halaman web atau



beberapa



jenis



lain



konten yang dapat disajikan kepada pengguna, seperti file media dan dokumen dalam Portable Document Format. Jika seseorang menciptakan, katakanlah, sebuah format gambar-penyimpanan



baru,



maka



gambar dalam format ini segera dapat dipublikasikan di Web. Pengguna memerlukan sarana dari



melihat



gambar



dalam



format



baru,



tetapi



browser



dirancang



untuk



mengakomodasi



baru



konten-fungsi presentasi dalam bentuk aplikasi 'pembantu' dan 'plug-in'.



Web telah bergerak di luar sumber daya data sederhana untuk mencakup jasa, seperti pembelian barang elektronik. Hal ini telah berkembang tanpa mengubah dasar arsitektur. Web ini didasarkan pada tiga komponen utama teknologi standar: • HyperText Markup Language (HTML), bahasa untuk menentukan isi dan tata letak halaman seperti yang ditampilkan oleh web browser; • Uniform Resource Locators (URL), juga dikenal sebagai Uniform Resource Identifier (URI), yang mengidentifikasi dokumen dan sumber daya lainnya disimpan sebagai bagian dari Web; • klien-server arsitektur sistem, dengan aturan standar untuk interaksi (yang HyperText Transfer Protocol - HTTP) dengan yang browser dan klien lainnya mengambil dokumen dan sumber daya lainnya dari server web. Gambar 1.7 menunjukkan beberapa web server, dan browser membuat permintaan kepada mereka. Ini merupakan fitur penting bahwa pengguna dapat mencari dan mengelola server web mereka sendiri di mana saja di Internet.



Kita sekarang membahas komponen ini pada gilirannya, dan dengan demikian menjelaskan



pengoperasian



browser dan server web saat pengguna mengambil halaman web dan klik pada link dalam mereka. HTML • The HyperText Markup Language [www.w3.org II] digunakan untuk menentukan



teks



dan gambar yang membentuk isi suatu halaman web, dan untuk menentukan bagaimana



mereka



meletakkan



keluar dan diformat untuk presentasi ke pengguna. Sebuah halaman web berisi item terstruktur



seperti



sebagai judul, paragraf, tabel dan gambar. HTML juga digunakan untuk menentukan link yang



dan sumber



daya



yang



terkait



dengan



mereka.



Pengguna dapat menghasilkan HTML dengan tangan, menggunakan editor teks standar,



tetapi



mereka



lebih



biasanya menggunakan HTML-aware 'wysiwyg' editor yang menghasilkan HTML dari sebuah bahwa mereka membuat grafis. Sepotong khas dari teks HTML berikut:



layout



1

2 Welcome to Earth! Visitors may also be interested in taking a look at the 3 Moon. 4





Ini teks HTML disimpan dalam file yang web server dapat mengakses - katakan saja file earth.html. Browser mengambil isi file ini dari server web - dalam hal ini server di komputer yang disebut www.cdk5.net. Browser membaca isi dikembalikan oleh server dan menerjemahkannya ke dalam teks diformat dan gambar diletakkan pada halaman web di akrab mode. Hanya browser - bukan server - menafsirkan teks HTML. namun Server tidak menginformasikan browser jenis konten itu kembali, untuk membedakannya dari, katakanlah, dokumen Portable Document Format. Server dapat menyimpulkan isi jenis dari ekstensi nama file. html '. Perhatikan bahwa arahan HTML, yang dikenal sebagai tag, diapit oleh tanda kurung sudut, seperti

. Baris 1 dari contoh mengidentifikasi file yang berisi gambar untuk presentasi. URL-nya adalah http://www.cdk5.net/WebExample/Images/earth.jpg~~V. baris 2 dan 5 adalah petunjuk untuk memulai dan mengakhiri sebuah paragraf, masing-masing. Baris 3 dan 4 berisi teks yang akan ditampilkan pada halaman web dalam format paragraf standar.



dua tag HTML terkait, dan . Teks di antara tag ini adalah apa muncul di link seperti yang disajikan pada halaman web. Kebanyakan browser yang dikonfigurasi



untuk



menampilkan teks link digarisbawahi secara default, jadi apa pengguna akan melihat dalam



ayat



bahwa



adalah: Selamat Datang di Bumi! Pengunjung juga mungkin tertarik mengambil melihat Bulan. Browser



mencatat



hubungan



antara



teks



link



yang



ditampilkan



dan



URL



terkandung pada tag HREF...>