SERVICE ORIENTED ARCHITECTURE (SOA) ON ORDER BOOKING ONLINE APPLICATION Tunjung Baruna Putra1, Wiratmoko Yuwono, ST.2, Dwi Kurnia Basuki, S.Si., M.Kom.3 Mahasiswa Jurusan Teknik Informatika1, Dosen Pembimbing2, Dosen Pembimbing3 Politeknik Elektronika Negeri Surabaya Institut Teknologi Sepuluh Nopember Kampus PENS-ITS Keputih Sukolilo Surabaya 60111 Telp (+62)31-5947280, 5946114, Fax. (+62)31-5946114 Email :
[email protected] ABSTRAK Aplikasi ini dijalankan pada perusahaan yang disebut “Global Company” dan proses pemesanan barang dilakukan oleh customer. Aplikasi ini menghubungkan pemesanan kepada dua supplier, yaitu Select Manufacturer dan Rapid Service untuk mendapatkan harga. Kemudian aplikasi memilih supplier yang menyediakan harga yang paling murah untuk melayani pesanan. Untuk melakukan proses pemesanan, Global Company menyediakan customer dengan aplikasi web yang disebut GlobalCompany-Client. GlobalCompany-Client memungkinkan customer untuk mencari barang dan melakukan pemesanan. Aplikasi web ini dibangun dengan teknologi Application Development Framework (ADF). Aplikasi terdapat project-project yang berbeda, masing-masing melakukan tugas tertentu. Kata Kunci : SOA Suite, Application Server, BPEL, ESB, Rule Author ABSTRACT This application run by company called “Global Company” and the processes orders doing by customers. The application routes each order to two suppliers, Select Manufacturer and Rapid Service, to get the price. The application chooses the supplier that provided the lower price to fulfill the order. To doing order process, Global Company provides customers with a web application called the GlobalCompany-Client application. The GlobalCompany-Client application enables customers to browse products and place their orders. This web application is built using Application Development Framework (ADF) technology. The application consists of different projects, each of which performs a specific function. Keyword : SOA Suite, Application Server, BPEL, ESB, Rule Author
mendukung untuk berbagai macam aplikasi dan sharing data. Service Oriented Architecture (SOA) menawarkan arsitektur yang prospektif. SOA menggabungkan business process dengan struktur aplikasi yang besar dan secara khusus mengelompokkan modul-modul disebut service. Berbagai grup baik di dalam maupun di luar organisasi bisa menggunakan aplikasi tersebut dan membangun aplikasi baru dari berbagai service global yang menawarkan fleksibilitas yang lebih besar dan keseragaman. Banyak hal yang bisa dikurangi dalam mengoperasikan sebuah proses pada SOA, sehingga lebih mudah dan
1. PENDAHULUAN 1.1 Latar Belakang Perusahaan-perusahaan sudah lama berusaha untuk mengintegrasikan sistem yang ada untuk menerapkan Teknologi Informasi (TI) untuk mendukung proses bisnis yang mencakup semua persyaratan sistem yang dibutuhkan untuk menjalankan business end-to-end. Dengan meng-update teknologi yang lama perusahaan bisa membuat sistemnya tersedia untuk internal dan eksternal customer, tetapi tidak cukup terbukti untuk business demand, yang mana membutuhkan sesuatu yang fleksibel serta
1
3. Aplikasi ini tidak mencakup kontrol proses pengiriman barang. 4. Pemesanan yang tidak diterima (reject) selanjutnya tidak ditangani. 5. Aplikasi ini hanya menggunakan aplikasi BPEL Process Manager, ESB (Enterprise Serial Bus), Oracle Business Rules, dan Application Server dari komponen SOA Suite. 6. Database Oracle 10g yang digunakan untuk aplikasi hanya pada patchset minimal 10.2.0.2. 1.4 Tujuan Tujuan dari Proyek Akhir ini adalah membangun Aplikasi pemesanan barang online yang dibuat dengan mengintegrasikan web service. Hal ini tentu akan membuat sistem menjadi lebih dinamis, secure, dan terkontrol dengan baik. Dengan adanya teknologi seperti ini diharapkan suatu sistem yang mempunyai banyak service bisa diatur dengan mudah dan lebih modular, sehingga kita bisa dengan mudah menambahkan service.
cepat untuk melakukan suatu pekerjaan. Sesuatu yang tidak perlu dilakukan berulangulang kali misalnya, seseorang mengecek, menyimpan, atau mendapatkan akun secara online padahal hanya berinteraksi dengan validasi dan data yang sama. Membangun aplikasi dengan sumber yang sama akan lebih mudah dan lebih cepat untuk perusahaan yang saling berhubungan. Service Oriented Architecture (SOA) menyediakan suatu kerangka desain dengan maksud untuk realisasi yang cepat dengan sedikit biaya pengembangan sistem untuk meningkatkan kualitas sistem secara total. SOA menggunakan standar web service dan teknologi yang cepat dan menjadi pendekatan standar untuk sistem informasi perusahaan. Adalah hal yang menentukan Service Oriented Architecture (SOA) sebagai sebuah kelompok service adalah dapat berkomunikasi satu sama lain. Proses komunikasi melibatkan simple data passing yang melewati dua atau lebih service yang mengkoordinasi beberapa kegiatan atau proses. Interaksi menunjukkan perlunya beberapa cara untuk menghubungkan dua atau lebih service ke yang lainnya. SOA membangun aplikasi dari software service. Service terdiri dari unit yang tidak terasosiasi dan pada dasarnya tidak mempunyai unit dan fungsi yang saling berhubungan. SOA mengimplementasikan fungsi yang kebanyakan manusia mengenalinya sebagai service, seperti mengisi sebuah account online, melihat data bank online, atau memesan tiket secara online. 1.2 Rumusan Masalah Berdasarkan uraian tersebut di atas, dalam pengerjaan proyek akhir ini timbul beberapa masalah diantaranya adalah : 1. Bagaimana melakukan orchestration service ke dalam business process. 2. Mengakses data dari web client ke server melalui web service. 1.3 Batasan Permasalahan Pada penyelenggaraan proyek akhir ini, batasan permasalahannya adalah : 1. Aplikasi ini hanya membangun service untuk pemesanan barang online. 2. Web client hanya digunakan untuk memesan barang, tidak mencakup administrasi customer dan barang.
2. PERANCANGAN SISTEM 2.1 Proses Kerja Sistem Aplikasi ini menggambarkan sebuah perusahaan yang menjual barang secara online. Proses pemesanan berinteraksi dengan beberapa aplikasi baik internal maupun eksternal untuk menyelesaikan pemesanan. Aplikasi ini mencakup CRM (Customer Relationship Management), validasi credit, dan dua suplier dari luar system). Dua suplier dalam aplikasi ini adalah Rapid Manufacturer dan Select Manufacturer, untuk selanjutnya informasi pemesanan akan dikirim ke kedua suplier tersebut. Sebagai bagian dari proses pemesanan, kedua suplier akan memberikan masing-masing harga untuk setiap barang yang disuplai. Kondisi ini menentukan suplier mana yang nantinya dipesan. 2.2 Instalasi Software Dalam men-develop aplikasi ini diperlukan beberapa software yang perlu diinstall. Software tersebut adalah Redhat Enterprise Linux (RHEL) 4, Oracle database 10g Release 2 Enterprise Edition, Patchset Oracle database version 10.2.0.4, Oracle JDeveloper version 10.1.3.1, Oracle SOA Suite 10g version 10.1.3.10. 2.3 Desain Database 2
Dalam program pemesanan barang online ini terdapat tabel yang digunakan untuk menyimpan data, baik data barang, data pemesanan, ataupun data pelanggan. Schema dari database adalah sebagai berikut. Nama Tabel Keterangan ADDRESS Menyimpan alamat customer CUSTOMER Menyimpan data customer CUSTOMER Memetakan antara tabel _ADDRESS CUSTOMER dan ADDRESS. Customer bisa memiliki lebih dari satu alamat. ORDERS Menyimpan informasi pemesanan. ITEMS Menyimpan jenis item barang. PRODUCT Menyimpan produk/barang yang tersedia untuk customer. FEDEXSHIP Menyimpan informasi MENT cara pengiriman. SSN Menyimpan customer ID dan security number. EJB_TAB_ID Digunakan secara _GEN internal oleh Enterprise JavaBeans. Dalam program ini juga digunakan sequence untuk men-generate auto number. Nama Keterangan Sequence ADDRESS_E Men-generate ID address. JB_SEQ_ID_ GEN EJB_SEQ_ID Men-generate ID _GEN customer. ORDER_SE Men-generate ID order. Q_ID_GEN 2.4 Flow Program Berikut adalah flow dari aplikasi pemesanan barang online ini.
Gambar 2.1 Flow Program Ketika customer baru mendaftar dari client, web client mengirim informasi ke aplikasi Customer Service, yang mana informasi tersebut di simpan di dalam database. Customer yang sudah terdaftar kemudian bisa melihat produk yang disediakan, kemudian bisa menambahkannya dalam shopping cart untuk dipesan. Ketika user yang sudah terdaftar mencoba untuk login dari client/web client, aplikasi Customer Service menyediakan proses autentikasi. Setelah user bisa login, dan melakukan pesanan, maka proses yang terjadi adalah sebagai berikut. 1. Web client mengirim informasi pemesanan ke aplikasi OrderBookingESB dan kemudian meneruskan pemesanan ke dalam BPEL process. 2. BPEL Process mengeset pemesanan ke dalam pending process dan kemudian menyimpan informasi pemesanan tersebut ke dalam database. Secara default customer yang baru melakukan registrasi mempunyai status Gold. Database administrator bisa mengeset apakah status customer menjadi Platinum, Gold, Silver. 3. BPEL Process memanggil aplikasi CustomerService untuk mendapatkan 3
4.
5.
6.
7.
disebabkan karena Rapid Service memberikan penawaran harga secara otomatis yang dikirim secara synchronous. • dfsadsa 8. BPEL process mengumpulkan penawaran dan memilih penawaran yang paling rendah dari suplier untuk menerima pesanan. 9. BPEL process menggunakan aplikasi FulfillmentESB untuk menyelesaikan pemesanan menggunakan flow dengan ketentuan sebagai berikut. • Jika total nominal pemesanan kurang dari $500, informasi pemesanan dikirim ke USPS. Aplikasi mengambil informasi pemesanan dari direktori yang telah ditentukan. Oleh karena itu digunakan file adapter untuk menulis informasi pemesanan ke file di dalam direktori yang telah ditentukan tersebut. • Jika total nominal pemesansn sama dengan atau lebih besar dari $500, informasi dikirim ke Fedex. Aplikasi menggunakan database untuk menyimpan informasi pemesanan. Oleh karena itu digunakan database adapter untuk menulis informasi pemesanan ke dalam tabel yang ada dalam database. • Semua pesanan dengan mengabaikan vendor pengiriman disimpan di dalam temporary queue dan meng-upload ke fulfillment system dengan batch mode. JMS adapter digunakan untuk menulis informasi pemesansn ke JMS queue yang telah ditentukan. 10. Setiap satu pesanan dilayani, BPEL process mengeset informasi pemesanan bahwa pemesanan terrsebut sudah selesai, kemudian mengirim notifikasi kepada customer melalui email yang berisi informasi pembayaran. 2.5 Mendesain Program Tampilan service application pada application server
informasi customer id, name, address, dan credit card dari customer. BPEL Process kemudian mengecek validasi credit card dengan aplikasi CreditService untuk menentukan apakah credit card valid atau tidak. Jika credit card tidak valid, maka proses dibatalkan. Jika valid, proses akan dilanjutkan dengan pengambilan total nominal pesanan dan customer status untuk kemudian menentukan jenis pelayanan yang akan diberikan, apakah diterima secara manual atau otomatis. Untuk menentukan jenis pelayanan tersebut, aplikasi menggunakan Oracle Rules Engine. BPEL Proses menggunakan Oracle Rules Engine untuk mengambil keputusan dengan ketentuan sebagai berikut. • Jika status customer adalah Platinum, maka pesanan akan diterima secara otomatis. • Jika status customer adalah Gold dan nilai nominal pemesanan diatas $1000, maka perlu dilakukan penerimaan pesanan secara manual. Jika nilai nominal pesanan dibawah $1000 maka pesanan akan diterima secara otomatis. • Jika status customer adalah Silver, maka penerimaan pesanan dilakukan secara manual untuk semua pesanan dengan tidak memperhatikan nilai nominal pesanan. Untuk pemesanan yang membutuhkan penerimaan secara manual BPEL Process menggunakan human workflow, yang mana kemudian mengirimkan pesan kepada manager/administrator. Jika pesanan diterima, maka informasi pemesanan akan dikirim ke kedua suplier untuk memperoleh harga penawaran. Adapun ketentuannya adalah sebagai berikut. • Jika menggunakan/memilih layanan Select Manufacturer, maka harga yang didapatkan lebih rendah. Ini disebabkan karena Select Manufacturer adalah sebuah produsen langsung, tetapi lambat untuk melakukan respon, karena Select Manufacturer mengirim secara asynchronous. • Jika menggunakan/memilih layanan Rapid Service, maka harga yang didapatkan akan lebih tinggi. Ini
4
• Rapid Service RapidService project menggambarkan sebuah supplier yang memberikan penawaran harga kepada customer Tampilan service hasil deploy pada BPEL Console
Gambar 2.2 Application Server • CustomerService Pada program ini CustomerService project digunakan untuk mendapatkan informasi customer dari database dan menambahkan data customer ke dalam database. Hal-hal yang dilakukan CustomerService project antara lain. 1. Project ini digunakan secara langsung oleh aplikasi. Ketika customer login dari client, CustomerService project memberikan data yang diperlukan kepada client yang digunakan untuk validasi customer. 2. CustomerService project menggunakan Java Persistence API entity object untuk mengatur tabel CUSTOMER dan ADDRESS di dalam schema TUNJUNG. 3. Customer service project menggunakan EJB 3.0 stateless session bean with JSR-181 Web Services annotations. Ini berarti bahwa application server yang support JSR-181 dimungkinkan untuk mem-publish bean sebagai web service selama proses deployment. Method di dalam CustomerService project yang diinginkan untuk di publish didefinisikan di dalam bean ini. Aplikasi client kemudian bisa menggunakan method ini melalui web service. 4. CustomerService project digunakan oleh BPEL process untuk memperoleh informasi tentang customer, misalnya status customer. • Credit Service CreditService project digunakan untuk mengecek apakah customer credit card valid atau tidak
Gambar 2.3 BPEL Console • SOAOrderBooking Order project yang merupakan BPEL Project adalah project utama dari aplikasi ini, dimana dalam project ini digambarkan keseluruhan alur/flow dari aplikasi pemesanan barang online ini.
Gambar 2.4 SOAOrderBooking • SelectManufacturer 5
SelectManufacturer Project menggambarkan supplier yang disebut Select Manufacturer. Karena SelectManufacturer adalah sebuah BPEL project, maka aktifitas yang dilakukan di dalamnya adalah aktifitas yang ditulis ke dalam BPEL process flow. Proses diawali dengan menerima input dari SelectService partner link oleh Receive_1 process activity, kemudian dilanjutkan dengan Assign_1 assign activity yang didalamnya sudah ada proses yang harus dilakukan. Setelah selesai dilakukan proses oleh Assign_1, hasilnya akan diterima oleh Invoke_1 process activity untuk selanjutnya dikembalikan pada SelectService partner link.
Gambar 3.4 Tabel Orders
Gambar 3.5 Tabel Items
Gambar 3.6 Tabel Product
Gambar 3.7 Tabel Fedexshipment 3.2 Web Client Pada program ini aplikasi pada client melayani beberapa service untuk customer. Contoh hal yang ditangani pada client antara lain digunakan untuk pemesanan barang, registrasi customer, melihat data customer, dll. Contoh desain interface pada client adalah sebagai berikut.
Gambar 2.5 Select Manufacturer 3. HASIL DAN ANALISA 3.1 Hasil input table Gambar 3.8 Halaman Login Customer Setelah user login, maka user akan dapat melihat semua barang yang ditawarkan.
Gambar 3.1 Tabel Customer
Gambar 3.2 Tabel Customer_Address
Gambar 3.3 Tabel Address
6
Gambar 3.9 Halaman Daftar Barang
Gambar 3.10 Halaman Daftar Pesanan 3.3 BPEL Console Setelah user dari client melakukan pemesanan, maka informasi pemesanan akan bisa dilihat pada BPEL Flow. Informasi ini digunakan untuk audit pemesanan.
Gambar 3.12 BPEL Flow
Gambar 3.11 BPEL Console
Gambar 3.13 BPEL Audit Trail 3.4 Desain BPEL Worklist BPEL Worklist digunakan menerima/approve pemesanan. 7
untuk
3.6 Memonitor OC4J Instance Oracle Enterprise Manager 10g Application Server Control console adalah sebuah JMX-compliant, dimana user interfarce berupa web, yang menyediakan user untuk memonitor melalui OC4J. Untuk memonitor diperlukan pemahaman mengenai OC4J Environment, instance didalam OC4J Environment, dan aplikasi yang digunakan didalamnya. Untuk memonitor OC4J, masuk pada halaman OC4J: home. Lihat Response and Load pada grafik untuk mendapatkan informasi berapa banyak user yang mengakses instance dan seberapa cepat instance melakukan respon terhadap request. Pilih View Data untuk melakukan refresh otomatis.
Gambar 3.14 BPEL Worklist 3.5 Desain Oracle Business Rules Oracle Business Rules menggunakan sebuah repository yang berisi sebuah dimana rule tersebut aturan/rule mendefinisikan keputusan dalam Oracle BPEL Process Manager, apakah keputusan diterima secara otomatis atau manual oleh admin/manager. Oracle Business Rules terpisah dari aplikasi, sehingga bisa dirubah tanpa memodifikasi program aplikasi. Adapun rule yang dibuat telah didefinisikan pada flow poin 5 diatas. Supaya bisa membuat file repository untuk Oracle Business Rules diperlukan Oracle Business Rules Author yang merupakan tool berbasis web. Alamat rule author adalah http://hostname:port/ruleauthor.
Gambar 3.17 Memonitor OC4J Instance 4. KESIMPULAN DAN SARAN 4.1 Kesimpulan Dari hasil uji coba perangkat lunak ini dapat ditarik beberapa kesimpulan: • Dengan aplikasi pemesanan barang online ini, service-service bisa diintegrasikan dengan terstruktur serta mudah untuk dilakukan update. • Administrator lebih mudah untuk melakukan audit karena setiap transaksi pemesanan yang berjalan akan melalui BPEL process flow. • Jika diperlukan kebijakan/pergantian dalam rule sistem tidak perlu merubah keseluruhan sistem, karena rule sudah bisa didefinisikan dalam rule author. • Dengan aplikasi ini, akan lebih memudahkan service eksternal untuk diintegrasikan ke dalam sistem. 4.2 Saran • Service untuk validasi credit card seharusnya dibuat seperti service pada bank. • Supplier seharusnya mempunya database sendiri untuk barang yang ditawarkan..
Gambar 3.15 Lokasi Rule Repository Sebelum membuat rule, terlebih dulu dibuat variabel yang dijadikan acuan dalam membuat rule. Sebagai contoh dibuat sebuah variabel float dengan nilai 1000.00 dengan nama alias adalah AUTOMATED_ORDER_LIMIT.
Gambar 3.16 Membuat variabel pada rule repository
8
5. DAFTAR PUSTAKA [1] Apress, Jeff Davies, David Schorow, Samrat Ray, and David Rieber, 2008, The Definitive Guide to SOA, Oracle Corp. [2] Packt Publishing, Benny Mathew and Poornachandra Sarang, 2006, Business Process Execution Language for Web Services, Birmingham-Mumbai. [3] O'Reilly Media, David Chappell, 2004, Enterprise Service Bus, United States of America. [4] Packt Publishing, Matt Wright, Antony Reynolds, 2009, Oracle SOA Suite, Birmingham-Mumbai. [5] Prentice Hall PTR, Sanjiva Weerawarana, Francisco Curbera, Frank Leymann, Tony Storey, Donald F. Ferguson, 2005, Web Services Platform Architecture.
9