Sunday, March 15, 2015

Penggunaan Bounded dan Unbounded TaskFlow

ADF Taskflow menyediakan pendekatan modular dalam pengembangan dan pengaturan flow dalam aplikasi. Daripada membangun 1 buah page JSF raksasa yang berisi seluruh fungsionalitas web kita, akan lebih baik apabila kita memecah-mecahkan page tersebut menjadi sekumpulan taskflow yang reusable. Hal ini memudahkan kita untuk membagi tugas dalam proses development dan juga me-reuse modul-module yang telah kita pecah menjadi task flow. 

Dalam implementasinya terdapat 2 macam task flow, yaitu Bounded Task Flow dan Unbounded Task Flow. Saya akan menjelaskan perbedaan Bounded dan Unbounded Task Flow dan kapan kedua task flow ini dapat dipakai. Task Flow terdiri dari komponen-komponen seperti Activity dan Control Flow, yang kemudian dirangkai menjadi Navigational Graph sebuah aplikasi. 


1 aplikasi besar biasanya terdiri dari 1 Unbounded Task Flow dan banyak Bounded Task Flow. Bounded task flow merepresentasikan module-module atau task spesifik (misal: registrasi, log in, cek saldo dsb), sedangkan unbounded task flow menggambarkan alur keseluruhan aplikasi (Misal: aplikasi bank dapat mengakses task flow Log In, kemudian dapat dinavigasikan ke halaman Registrasi atau Cek Saldo). 


Secara garis besar, Task Flow memiliki keuntungan berikut:
  • Aplikasi dapat dipecah menjadi flow modular yang dapat saling memanggil
  • Task flow dapat di-reuse dalam aplikasi yang sama ataupun di-export dan lalu digunakan pada aplikasi lain
  • Shared memory scope, memungkinkan pertukaran data antar task flow. Misal: variable yang didefinisikan sebagai Page Flow Scope.


Unbounded task flow digunakan untuk kebutuhan sebagai berikut:      
  • Menggunakan fitur ADF Controller yang tidak ada pada Bounded Task Flow seeprti Bookmarking.
  • Task flow tidak akan dipanggil oleh task flow lain.
  • Mempunyai berbagai macam Point of Entry/ dapat diakses dari halaman mana saja dari web page kita.

Sedangkan Bounded task flow biasanya digunakan dalam kasus berikut:
  • Module hanya memiliki 1 entry point. Misal: proses ijin cuti hanya dimulai dari pengisian data karyawan. Ini dapat dijadikan bounded task flow dengan default activity adalah pengisian data karyawan.
  • Dapat menerima input parameter. Kita dapat mendefinisikan Input parameter untuk setiap bounded task flow.
  • Memiliki return value. Kita juga dapat mendefinisikan Output parameter untuk bounded task flow.
  • Module akan direuse dalam module lain. Misal: module Request Cuti dan Request Kas Bon sama-sama memerlukan Entry Data Karyawan, maka Entry Data Karyawan dapat dijadikan Bounded Task Flow yang akan di-consume oleh 2 aplikasi lain.


Ketika mengerjakan aplikasi dalam ADF, langkah pertama adalah menentukan pembagian fungsionalitas dan module. Kita harus menentukan mana saja yang dapat dimasukkan sebagai Bounded Task Flow lalu kemudian merangkai alurnya navigasi dalam Unbounded Task Flow. Setelah kita menentukan berdasarkan kriteria diatas, proses development dapat dilakukan masing-masing developer berdasarkan Bounded Task Flow yang ada, lalu merangkainya ke dalam Unbounded Task Flow ketika proses developmentnya selesai.

Sample aplikasi akan saya contohkan dalam blog berikutnya. Semoga bermanfaat!











No comments:

Post a Comment