Masalah Desain dalam Sistem Terdistribusi

1 komentar

Banyak proyek rekayasa perangkat lunak melibatkan otomatisasi dari "dunia nyata" sistem, yang terdiri dari interaksi entitas yang bekerja sama untuk melaksanakan tugas-tugas tertentu. Ini sistem dunia nyata sering menunjukkan kualitas intrinsik yang sejajar karakteristik yang melekat pada sistem distribusi perangkat lunak.

Salah satu kualitasnya ialah persetujuan . Sebuah sistem dunia nyata memiliki kualitas ini jika itu mencakup lebih dari satu entitas pada setiap saat, yang paling lakukan. Sebagai contoh, pertimbangkan sebuah sistem untuk paket pengiriman paket di seluruh dunia. Pada setiap waktu, sistem ini dapat mencakup banyak entitas fisik (misalnya, paket, pelanggan, dan lokasi) dan konsep-konsep abstrak (misalnya, tingkat, asal-usul, dan tujuan.) Masing-masing dapat berdiri sendiri dan perilaku secara bersamaan. Sistem distribusi perangkat lunak memberikan informasi persetujuan dengan menyalurkan objek melalui jaringan sumber daya komputasi. Sebaliknya, terpusat (single-prosesor) sistem hanya dapat mensimulasikan persetujuan.

Dalam sistem dunia nyata, satu kesatuan, seperti sebuah paket atau pelanggan, bisa gagal independen dari sisa sistem. Hal yang sama berlaku untuk sistem terdistribusi karena individu sumber daya komputasi dalam jaringan dapat gagal atau menjadi tidak terjangkau. Dalam sistem terpusat, kegagalan biasanya diperlakukan sebagai semua-atau-kondisi apa-apa.

Kualitas umum ketiga adalah dinamis, perubahan yang meningkat. Sistem dunia nyata jarang memerlukan shutdown yang lengkap untuk membuat perubahan dalam cara bahwa pekerjaan dilakukan. Bahkan, perubahan sering dianggap sebagai bagian integral dari sistem dunia nyata dan bukan proses eksternal. Dapatkah Anda gambar perusahaan perkapalan di seluruh dunia menghentikan seluruh operasi setiap kali sebuah kantor yang diperlukan untuk menambah peralatan baru atau membuka saluran distribusi baru? Situasi yang sama ada untuk sistem terdistribusi. Karena ketidakpraktisannya dari mematikan seluruh sistem terdistribusi, mekanisme untuk dinamis dan perubahan yang meningkat sering dibangun ke dalam infrastruktur.

Kemiripan antara dunia nyata dan sistem terdistribusi perangkat lunak, mungkin membawa kita untuk menyimpulkan bahwa model konseptual yang akurat yang pertama dapat dengan mudah berubah menjadi desain yang baik untuk saluran kedua. Namun, hal ini tidak benar karena beberapa halus dan tidak begitu-perbedaan halus dalam apa yang model mewakili dan karena masalah desain tambahan yang berkaitan dengan sistem terdistribusi. Secara umum, proses pergi dari analisis ke desain dalam pengembangan perangkat lunak selalu terlibat pemetaan atau transformasi model konseptual. Model yang digunakan selama analisis, terlepas dari apakah mereka formal atau informal, bertujuan untuk menjelaskan sistem dunia nyata dari masalah-domain perspektif. Konsep yang ditemukan dalam sebuah model analisis harus berhubungan langsung dengan konsep-konsep dalam sistem dunia nyata. Model perangkat lunak yang digunakan untuk desain, di sisi lain, melibatkan tingkat tambahan abstraksi dan melayani tujuan yang berbeda. Mereka menjelaskan konsep perangkat lunak, seperti objek, struktur, dan proses, yang hanya secara tidak langsung berhubungan dengan konsep-konsep dari masalah-domain. Tujuan dari desain model adalah untuk menyediakan cetak biru untuk implementasi dan kerangka kerja untuk evolusi berikutnya dari sistem. Idealnya, jarak konseptual antara analisis dan desain yang sesuai harus disimpan ke minimum.

Persyaratan untuk model konseptual yang lebih baik

Meskipun beberapa masalah di atas adalah karena alat-alat pengembangan yang tidak memadai untuk sistem terdistribusi, tidak mungkin lebih baik, lebih banyak peralatan canggih akan membuat perbedaan. Pada kenyataannya, mereka mungkin bahkan membuat masalah semakin buruk. Penggunaan yang tidak tepat alat baru sengaja dapat meningkatkan komunikasi dan sumber daya yang muncul berbagi, dan dengan demikian, lebih rumit desain. Sebuah sepenuhnya terintegrasi dan meminimalkan koleksi alat pembangunan secara substansial dapat mengurangi kompleksitas desain sistem terdistribusi. Namun, dalam pasar terbuka dengan berbagai keragaman platform dan dengan infus konstan teknologi baru, seperti lingkungan pengembangan tidak realistis. Harapan terbaik kita adalah untuk memperbaiki model konseptual sistem perangkat lunak didistribusikan. Abstraksi yang diusulkan ini harus memberikan software engineer kontrol atas keputusan desain, tapi memungkinkan mereka untuk menyembunyikan rincian ketika mereka tidak berhubungan dengan diskusi tertentu.

Kesimpulan

Dengan menambahkan abstraksi yang sesuai untuk model kita, kita juga bisa mengurangi jarak antara analisis konseptual dan desain.

Sumber : http://osm7.cs.byu.edu/ER97/workshop4/sc.html

Hello World!!

0 komentar

akhirnya buat blog juga, semoga dengan blog ini jadi rajin menulis hehe