Lihat ke Halaman Asli

Membuat Fungsi Auto Updater Aplikasi

Diperbarui: 17 Juni 2015   08:14

Kompasiana adalah platform blog. Konten ini menjadi tanggung jawab bloger dan tidak mewakili pandangan redaksi Kompas.

Overview

Walaupun saat ini aplikasi berbasis web dan mobile telah marak, masih banyak bisnis yang menggunakan aplikasi desktop, oleh sebab itu masih banyak juga software house yang membuat produk aplikasi desktop. Namun sebagaimana kita ketahui, tantangan utama dalam perawatan aplikasi desktop adalah melakukan update pada aplikasi, terutama bila aplikasi merupakan sebuah mass product atau aplikasi terinstall di banyak komputer dengan lokasi yang berbeda - beda. Pada kondisi ini biasa tim support akan sangat kesulitan apabila harus meng-update aplikasi dengan menginstall secara manual langsung ke masing - masing komputer, selain memakan banyak waktu, juga akan memakan banyak biaya bila aplikasi tidak terdapat pada satu lokasi yang sama. Solusi untuk mengatasi hal ini salahsatunya adalah dengan menanamkan fungsi update otomatis seperti yang biasanya terdapat pada aplikasi - aplikasi anti virus. Tentu saja untuk dapat mengimplemenasikan dengan baik fungsi ini, tiap - tiap komputer memerlukan koneksi internet untuk dapat mendownload paket update aplikasi seperti juga yang terjadi pada aplikasi - aplikasi anti virus. Pada artikel ini saya akan memberi contoh alur fungsi update melalui FTP, artikel ini hanya membahas hingga level alur logika program, sehinga anda dapat mengimplementasikannya menggunakan bahasa program apapun yang anda sukai.

Cara Kerja Updater

Cara kerja dari fungsi updater menggunakan dua buah executable, dimana executable pertama adalah executable utama aplikasi anda yang selanjutnya akan kita sebut sebagai MainExe, dan executable kedua yaitu executable selanjutnya akan kita sebut sebagai UpdateExe yang berfungsi untuk mengextract paket update, mengeksekusi query update (bila perubahan aplikasi memerlukan perubahan pada database), dan kemudian kembali memanggil MainExe untuk menjalankan aplikasi yang sudah terupdate. untuk itu kita akan membutuhkan pembanding antara versi yang sedang berjalan dengan versi yang tersedia pada FTP, dengan demikian kita akan membutuhkan sebuah text file (*.txt) yang akan kita tempatkan di FTP sebagai acuan update yang selanjutnya akan kita sebut VersionFile. Pada FTP hanya boleh ada 1 file penanda update atau versi yang tersedia di FTP, dan file ini akan selalu anda rewrite isinya dengan nomor versi terbaru tiap kali anda upload versi terbaru ke FTP, sedangkan format dari nomor versi aplikasi bebas anda sesuaikan dengan kebutuhan fungsi pemeriksaan version aplikasi yang anda gunakan pada level pemrograman. Paket Update merupakan sebuah archive file yang berbentuk executable untuk mempermudah proses extract sehingga tidak membuyuhkan library khusus untuk proses extract. Paket update bisa berisi file - file seperti :

  1. MainExe sebagai executable utama yang terupdate
  2. Library file (*.dll) bila anda perlu mengupdate file library
  3. Query File apabila anda perlu untuk mengupadate database, file ini bisa berbentuk plain text atau format apapun sesuai kebutuhan anda.
  4. File Update Notice, apabila anda ingin menampilkan informasi fitur apa saja yang ditambahkan atau bug apa saja yang diperbaiki kepada user.

Fungsi Pemeriksaan Update

Fungsi pemeriksaan update berfungsi untuk secara berkala melakukan koneksi ke FTP dan mendownload VersionFile, membaca no versi dan membandingkan dengan no versi pada MainExe, kemudian selanjutnya apabila no versi yang ada pada VersionFile lebih besar (berarti ada update terbaru), maka funsi ini akan mendownload file paket update. Dan dikarenakan proses pemeriksaan akan dilakukan secara berkala, sebaiknya anda menuliskan fungsi ini menggunakan thread (multi threading) yang berbeda dengan thread utama aplikasi yang berinteraksi dengan user. Berikut ini adalah workflow dari fungsi pemeriksaan update.

Fungsi Notifikasi Update

Selanjutnya setelah paket update terdownload, anda dapat memunculkan notifikasi pada tampilan UI aplikasi anda bahwa ada update terbaru yang tersedi dan siap diupdate, Sebaiknya notifikasi ini dibuat menggunakan fungsi khusus yang memeriksa apakah ada paket update yang belum dieksekusi dan tetap menampilkannya selam update tersebut belum dieksekusi. gambaran sederhana dari fungsi ini adalah memeriksa apakah terdapat file paket update, dan bila ada, maka akan memunculkan notifikasi, dengan logia demikian maka tentunya kita tidak boleh lupa untuk menghapus paket update setelah update selesai dilakukan. Berikut ini adalah workflow dari fungsi notifikasi update. Pada sisi UI, notifikasi ini juga dapat kita berikan sebuah tombol agar user dapat melakukan update.

Fungsi Eksekusi Update

Setelah user mengklik tombol update atau dengan cara lainnya sehingga fungsi update ter trigger, maka selanjutnya kita akan mengeksekusi fungsi update untuk mengextrak isi paket updater dan menggantikan MainExe dengan versi yang terbaru dan meletakkan file lainnya sesuai kebutuhan, untuk hal ini maka sangat penting anda perhatikan untuk melakukan setting berupa silet file replace saat anda membuat file paket updater. Dan apabila diperlukan, anda juga dapat menambahkan sebuah fungsi untuk mengeksekusi query SQL untuk melakukan update terhadap database apabila perubahan yang terjadi pada MainExe juga membutuhkan perubahan dari sisi database, proses eksekusi update ini dilakukan oleh UpdateExe. Berikut ini adalah workflow dari proses eksekusi update.

Kesimpulan

Setelah file updater diextract dan menggantikan (replace) MainExe dengan versi terbaru dan setelah mengeksekusi file query (bila dibutuhkan), maka kita sudah dapat memanggil MainExe dari UpdaterExe untuk menjalankan versi terupdate dari aplikasi. Workflow yang ditampilkan diatas merupakan general workflow, sehingga pada workflow tersebut tidak menampilkan custom condition. Anda dapat memodifikasi dan melengkapi workflow diatas sesuai dengan proses yang anda butuhkan dan atau disesuaikan dengan fungsi - fungsi lainnya yang ada pada aplikasi anda. Dengan mengimplementasikan fungsi auto update pada aplikasi anda, baik aplikasi tersebut merupakan aplikasi internal yang didevelop oleh divisi IT internal, maupun aplikasi yang didistribusikan sebagai produk, anda telah dapat menghilangkan sebuah faktor maintenance yang yang memakann waktu dan resource yang besar terhadap aplikasi desktop anda. Semoga artikel ini bermanfaat. Surya Pradhana




BERI NILAI

Bagaimana reaksi Anda tentang artikel ini?

BERI KOMENTAR

Kirim

Konten Terkait


Video Pilihan

Terpopuler

Nilai Tertinggi

Feature Article

Terbaru

Headline