Kamis, 31 Januari 2013

Challenges in Distributed Java Applications

Meskipun Java adalah bahasa platform independen, persyaratan aplikasi dalam lingkungan terdistribusi terkadang menurunkan kinerjanya. Lingkungan Terdistribusi membuatnya sulit untuk pin-titik simpul masalah penyebab karena kehadiran sejumlah besar terminal.
Berbagai jenis aplikasi perangkat lunak yang dimasukkan pada setiap tingkat industri serta praktik individu sehingga memudahkan teknologi mereka terkait tugas dan operasi. Berbagai teknologi pengembangan dan konsep yang diperkenalkan untuk membuat proses pembangunan lebih mudah dan untuk membuat perangkat lunak lebih inovatif dan efektif. Teknologi pembangunan yang berbeda dan platform yang dipilih sesuai dengan ruang lingkup aplikasi.

Java merupakan salah satu bahasa pemrograman penting yang digunakan oleh para pengembang perangkat lunak aplikasi seperti game karena mereka dapat digunakan pada platform apapun tanpa perlu memodifikasi kode. Alasan kecanggihan tersebut adalah kompilasi dari kode pada kode bit-tingkat Jawa yaitu pertama kali dikompilasi menjadi file biner dan begitu juga dieksekusi di semua platform. Hal ini juga membuat Java platform yang cocok untuk menyebarkan lebih lingkungan yang terdistribusi, di mana sistem berada melalui jaringan dengan konfigurasi hardware yang berbeda dan platform.

Java telah menjadi bahasa pemrograman utama selama lebih dari beberapa dekade karena kegunaan yang tak terbatas untuk mengembangkan perangkat lunak. Namun, untuk mengaplikasikan dalam lingkungan terdistribusi, masalah-masalah berikut dan tantangan dapat dihadapi:

Memori Manajemen Efisien: Semua tugas memori manajemen yang dilakukan oleh Virtual Machine atau JVMs hosting komponen aplikasi. Jadi bahkan setelah mengembangkan aplikasi yang efisien untuk bekerja di lingkungan yang didistribusikan, pengembang tidak bisa tepat memperkirakan berapa memori dikelola pada mesin remote. Ini menjadi tantangan ketika beberapa node melalui jaringan berkinerja buruk dalam hal alokasi memori dan pelepasan.
Kinerja: kemacetan umum terkait dengan kinerja aplikasi dalam bahasa konvensional seperti C, mudah untuk mengidentifikasi. Namun dalam kasus Jawa, digunakan dalam aplikasi terdistribusi, identifikasi masalah kinerja sulit dan terlebih lagi, yang menambahkan lingkungan yang didistribusikan overhead tambahan dalam kinerja kode karena model pelaksanaan Jawa. Aplikasi asli, di sisi lain, melayani tujuan dengan cara yang lebih produktif membuat penyebaran pada platform Java perhatian untuk mengembangkan aplikasi terdistribusi.
Keandalan: "Threads" memberikan keuntungan penting untuk mengembangkan multi-tasking software di Jawa. Namun, dalam perangkat lunak yang didistribusikan, kelebihan menggunakan benang meningkatkan kemungkinan masalah seperti pertentangan sumber daya atau mati-kunci. Masalah-masalah ini, jika terjadi, dapat membekukan sistem dan menyebabkan masalah kinerja yang serius terkait dan kesalahan run-time. Hal ini membutuhkan penilaian komponen-tingkat kode untuk fungsi yang tepat untuk berspekulasi apapun run-time error.
Pengujian komponen dalam aplikasi terdistribusi adalah sulit karena berbagai komponen berada pada sistem dan perlu diuji secara bersamaan. Dalam rangka mengoptimalkan kinerja dan keandalan aplikasi, pengembang perlu mengerahkan berbagai alat dan perangkat lunak membantu untuk meningkatkan kualitas perangkat lunak yang harus efisien serta produktif dengan minimal kesalahan-daerah rawan.

Tidak ada komentar:

Posting Komentar