Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Legacy Information System SOFTWARE EVOLUTION AND MAINTENANCE General Idea Sistem Software Legacy adalah sistem software yang besar dan kita tidak tahu cara untuk mengatasinya namun sangat penting untuk organisasi. Fitur dari Sistem Legacy : • Sangat besar dengan jutaan baris kode • Ditulis dalam bahasa program kuno • kurangnya dokumentasi yang konsisten • manajemen data yang buruk • sangat sulit • berjalan pada prosesor lama General Idea Ada 6 kategori solusi untuk Legacy Information System (LIS) : • Freeze. • Outsource. • Carry on maintenance. • Discard and redevelop. • Wrap. • Migrate. Wrapping oWrapping adalah merangkum komponen legacy dengan lapisan software baru yang menyediakan antarmuka baru dan menyembunyikan kompleksitas komponen tua. Lapisan enkapsulasi dapat berkomunikasi dengan komponen legacy melalui socket, Remote Procedure Calls (RPCs), atau API. oBagian depan input wrapper menerima permintaan, kemudian merestrukturisasi, dan memanggil objek target dengan argument direksturisasi. oBagian depan output wrapper menangkap output dari wrapped entity, restrukturisasi output, dan mendorong ke entitas yang meminta. oWrapping bukan solusi untuk LIS Type of Wrapping Wrapper dibagi menjadi 4 kategori : ◦ Database wrappers : diklasifikasikan menjadi forward wrappers (fwrappers) and backward wrappers (b-wrappers). ◦ System service wrappers : mendukung akses layanan sistem yang umum yaitu routing, sorting, dan printing. ◦ Application wrappers : merangkum transaksi online atau sekumpulan proses ◦ Function wrappers : menyediakan antarmuka untuk memanggil fungsi pada wrapped entity. Figure 5.1Forward wrapper © ACM, 2006 Figure 5.2 Backward wrapper © ACM, 2006 Database Wrapper Figure 5.3 Levels of encapsulation ©IEEE, 1996 Level of Encapsulation Level of Encapsulation Process Level : Pekerjaan pada server dimulai dengan menerima input data, mengakses database, dan menghasilkan output data. Input dan output data terkandung dalam file. File input diciptakan oleh klien dan ditransfer ke server oleh wrapper. Setelah selesai, wrapper mengambil alih file output untuk diteruskan ke klien Transaction Level : Menangani komunikasi host ke klien Melakukan restart dan recovery task, exception handling, rollback,dan commit. Level of Encapsulation Program Level : Sekumpulan program dipanggil dalam wrapper. Wrapper mengganti program input dengan data input yang dating dari aplikasi klien. Selain itu, output dari wrapped program ditangkap, diformat ulang, dan dikirim ke klien. Module Level : Pertama, wrapper menyangga nilai-nilai yang diterima diruang alamat sendiri. Kemudian, nilai-nilai yang disangga diteruskan ke modul yang diminta. Akhirnya, nilai-nilai output dari modul yang diminta diteruskan ke klien. oProcedure Level : Membangun parameter antarmuka dan jika dibutuhkan menginisialisasi variable global sebelum memanggil prosedur. Constructing a Wrapper Sistem legacy di bungkus kedalam 3 tahapan : ◦ Sebuah wrapper dibangun ◦ Program target disesuaikan. ◦ Interaksi antara program target dengan wrapper diverifikasi Sebuah wrapper adalah program yang menerima input pesan dari program klien, mengubah input menjadi representasi internal, dan memanggil sistem target dengan pesan baru diformat. Figure 5.4 Modules of a wrapping framework Constructing a Wrapper Constructing a Wrapper External Interface : Antarmuka pada wrapper yang diakses oleh klien, wrapper dan klien berkomunikasi melalui pesan yang meliputi header dan body. Internal Interface : antarmuka yang terlihat pada server. Antarmuka internal tergantung pada bahasa dan jenis wrapped entity. Message Handler : untuk menangani pesan agar tingkat kecepatannya stabil. Interface Converter : mengubah internal interface menjadi external interface, dan sebaliknya. I/O emulator : mencegat input dan output dari wrapped entity. Adapting a Program from Wrapper & Screen Scraping Sebuah wrapped program dimodifikasi sampai batas tertentu, dan diharapkan program yang dimodifikasi terus beroperasi dalam mode normal. Program beradaptasi dengan bantuan alat, 4 bantuan alat yaitu : ◦ Transaction wrapper. ◦ Program wrapper. ◦ Module wrapper. ◦ Procedure wrapper. o Screen Scraping : Bentuk modern dari wrapping yaitu menggunakan grafis dan antarmuka yang lebih canggih menggantikan antarmuka berbasis teks. Migration oMigrasi adalah alternative terbaik ketika wrapping tidak cocok dan pembangunan kembali tidak dapat dilakukan karena beresiko tinggi. oMigrasi melibatkan perubahaan, sering termasuk restrukturisasi sistem, peningkatan fungsi, atau memodifikasi atribut, tetapi mempertahankan fungsi dasar dari sistem yang ada. oMigrasi terdiri dari 3 langkah utama : oPerubahan skema yang sudah ada menjadi skema target oPerubahan data oPerubahan program Migration Schema Conversion : menerjemahkan skema database legacy ke dalam struktur database yang setara dengan teknologi baru. Transformasi skema dilakukan dalam 2 tahap proses. Yang pertama DBRE bertujuan untuk memulihkan skema konseptual yang mengekspresikan semantic dari struktur sumber data. Yang kedua adalah straightforward yang memperoleh target physical schema dari conseptual schema. Data Conversion : Pemindahan data instansi dari legacy database ke target database. Data conversion membutuhkan 3 langkah : extract, transform, and load (ETL). Migration Program Conversion : memodifikasi program untuk mengakses database yang sudah dimigrasi, bukan legacy database. Testing and Functionality : Sangat penting untuk mengetahui bahwa output dari target sistem sama dengan output LIS. Migration Planning Kegiatan perencanaan migrasi terdiri dari 13 langkah : Step 7: Understand the target technology. Step 8: Evaluate the available technologies. Step 1: Perform portfolio analysis. Step 9: Define the target architecture. Step 2: Identify the stakeholders. Step 10: Define a strategy. Step 3: Understand the requirements. Step 11: Reconcile the strategy with the needs of the stakeholder. Step 4: Create a business case. Step 5: Make a go or no-go decision. Step 6: Understand the LIS. Step 12: Determine the resources required. Step 13: Evaluate the feasibility of the strategy. Metode Migrasi Tidak ada satu pun pendekatan yang dapat diterapkan ke seluruh jenis legacy systems, hal ini dikarenakan mereka memiliki perbedaan masing-masing pada skala, kompleksitas, dan resiko kegagalan pada saat migrasi. 7 Jenis Pendekatan -Cold turkey -Database first -Database last -Composite database -Chicken little -Butterfly -Iterative Cold Turkey Strategi Cold Turkey juga sering disebut sebagai pendekatan Big Bang. Cold Turkey menyangkut dalam redesigning dan recoding LIS mulai dari awal menggunakan platform eksekusi baru, software arsitektur modern, alat-alat baru, dan database baru. Saat pendekatan ini diterapkan, salah satu orang harus menjamin bahwa sistem yang direnovasi akan mencakup banyak fitur baru selain fungsi yang disediakan oleh legacy system. Cold Turkey (lanjutan) Resiko kegagalan meningkat karena kompleksitas migrasi. Pendekatan ini dapat diterapkan, jika legacy sistem stabil, fungsi yang telah terdefinisi dengan baik, dan dalam ukuran kecil. Database First Database first juga sering dikenal sebagai forward migration method. Method first ini memindahkan database, termasuk data, ke DBMS modern, dan kemudian secara bertahap memindahkan legacy aplikasi program dan interface-nya. LIS secara bersamaan bekerja dengan sistem baru melalui forward gateway, sementara interface dan aplikasi legacy direkayasa ulang. Database First (lanjutan) Diimplementasikan sebagai modul software, sebuah gateway yang menengahi antara komponen operational software. Database First memungkinkan aplikasi LIS untuk mengakses database pada sisi target seperti ditunjukkan pada gambar berikut. Database First (lanjutan) Forward gateway menerjemahkan panggilan aplikasi legacy ke panggilan target. Demikian pula, keluaran dari reengineered database diterjemahkan untuk digunakan oleh legacy sistem. Pendekatan ini memiliki tiga kekurangan utama: pertama, pendekatan ini hanya berlaku untuk legacy sistem yang benar-benar telah terurai. Kedua, struktur database yang baru harus didefinisikan sebelum migrasi dapat dijalankan. Ketiga, sulitnya dalam pembangunan forward gateway. Database Last Database last hanya cocok untuk LIS yang benar-benar telah terurai Dalam pendekatan ini, aplikasi legacy secara bertahap bermigrasi ke target platform, namun database legacy tetap pada platform asli. Migrasi database dikerjakan terakhir. Sama seperti pendekatan database-first, sistem informasi didukung oleh sarana gateway. Target aplikasi mengakses database LIS melalui reverse gateway. Database Last (lanjutan) Seperti diilustrasikan pada gambar, reverse gateway menerjemahkan panggilan dari aplikasi baru dan mengarahkan mereka ke legacy database. Database Last (lanjutan) Ada dua isu utama pada pendekatan Database Last: Pertama, pemetaan dari skema target database ke legacy database bisa lambat, sehingga berdampak pada aplikasi baru. Kedua, beberapa fitur yang bermanfaat dari relational database, yaitu pemicu, integritas, dan constraint tidak dapat dimanfaatkan oleh aplikasi baru, karena fitur tersebut mungkin tidak ada dalam legacy database. Composite Database Pendekatan composite database berlaku untuk sistem informasi lagacy yang fully decomposable, semidecomposable, dan nondecomposable. Dalam pendekatan composite database, sistem informasi target dijalankan secara paralel dengan legacy sistem selama proses migrasi. Pada awalnya, sistem target adalah bentuk kecil, namun tumbuh saat migrasi berlanjut. Composite Database (lanjutan) Sementara migrasi terus berlanjut, seperti yang ditunjukkan oleh gambar, dua sistem membentuk sistem informasi komposite, menggunakan kombinasi forward dan reverse gateway. Composite Database (lanjutan) Setelah menyelesaikan proses migrasi, semua fungsi dari sistem yang lama akan dikerjakan oleh sistem baru. Dalam pendekatan ini, data dapat diduplikasi di kedua database: legacy dan target. Chicken Little Strategi Chicken Little sedikit memurnikan strategi Composite Database, dengan mengusulkan solusi migrasi untuk fully decomposable, semidecomposable, dan nondecomsosable legacy sistem dengan berbagai jenis gateway. Perbedaan antara gateway tersebut didasarkan atas: Lokasi gateway di dalam sistem Derajat fungsionalitas gateway Chicken Little (lanjutan) Untuk fully decomposed LIS, gateway database diletakkan antara layanan database dan modul aplikasi. Kata gateway database dapat berupa forward gateway atau reverse gateway. Baik forward gateway dan reverse gateway juga dikenal sebagai gateway database. Aplikasi gateway digunakan untuk LIS semidecomposable. Chicken Little (lanjutan) Aplikasi gateway telah diilustrasikan pada gambar, dan berlokasi di antara user dan sistem interface dan aplikasi legacy. Chicken Little (lanjutan) Untuk sistem nondecomposable gateway sistem informasi terletak antara pengguna dan sistem informasi lain dan LIS Butterfly Metodologi Butterfly tidak membutuhkan akses secara bersamaan dari kedua sistem legacy database sistem dan target database sistem. Target sistem tidak dioperasikan dalam mode produksi, pada saat rekayasa ulang legacy sistem. Dengan kata lain, sistem lama yang direkayasa ulang tetap operasional selama tahap mirgrasi. Selama proses migrasi, data hidup tidak disimpan secara bersamaan baik dalam sistem baru maupun legacy sistem. Butterfly (lanjutan) Untuk data migrasi, metode Butterfly memperkenalkan konsep berikut: Sample DataStore, Legacy SampleData, dan Target SampleData TempStore, Data-Access-Allocator, Data-Transformer, Termination-Condition dan Threshold Value Butterfly (lanjutan) Migrasi sistem legacy diatur ke dalam enam langkah utama, yang juga disebut sebagai fase. Butterfly (lanjutan) Kelemahan Metode Butterfly Kelemahan utama metodologi Butterfly adalah bahwa legacy database digunakan untuk membaca saja, sedangkan modifikasi ditempatkan terpisah, yakni temporary database. Akibatnya, ketika ada kebutuhan untuk mengakses beberapa data, sistem membaca baik database lama maupun database target, ditambah temporary database. Sebagai hasil, ada peningkatan dalam waktu untuk mengakses data yang dibutuhkan. Itterative Metode itterative menyiratkan bahwa salah satu komponen pada suatu waktu direkayasa ulang. Dengan demikian, legacy sistem secara bertahap berkembang selama periode waktu. Metode ini memungkinkan operasi simultan dari sistem yang direkayasa ulang dan komponen dari legacy sistem. Komponen sistem yang direkayasa ulang mengakses baik legacy database or new database, berdasarkan pada lokasi data aktual. Itterative (lanjutan) Legacy metodologi membagi legacy data ke dalam dua kategori: Primary data: data primer adalah data yang sangat penting untuk fungsi bisnis sebuah aplikasi. Residual data: Data-data ini tidak diperlukan untuk melaksanakan fungsi bisnis aplikasi, tetapi digunakan oleh legacy sistem. Primari data terdiri dari dua jenis data: Data konseptual: Data ini menggambarkan konsep spesifik untuk domain aplikasi Data Struktural: Data ini diperlukan untuk mengatur dan mendukung struktur data yang digunakan untuk mengakses data konseptual Itterative (lanjutan) Migration Process -Menganalisis Legacy Sistem -Mengklasifikasikan Data -Mendesign ulang Basis Data -Me-restore Komponenkomponen Legacy -Migrasi Data -Prosedur-prosedur Rekayasa Ulang -Test Kesetaraan -Residural BD Kosong -Iterasi -Membersihkan MetaData -Merekonstruksi Dokumentasi