MODEL KOMPUTASI OBYEK TERDISTRIBUSI PADA
PERUSAHAAN RITEL
Yudhi Kusnanto, ST STMIK AKAKOM Yogyakarta
E-mail: vudhi@akakom.acid
ABSTRAK
Penelimn ini membahas tentang sunlit teknologi renirograman untuk mengeksploitasi sumber daya
2aringan komputer. Dengan teknik ini sekumpulan tomputer yang tergabung dalam suatu sistem jaringan dapat dimanjaatkan secara maksimal untuk
inengerjakan strati, aplikasi yang kompleks dan ornerapkan pola komputasi client :server. Teknologi prmrograman ini disebut CORBA (Common Object
quest Broker Architecture).
Pada penelitian, akan diimplementasikan konsep lamputasi obyek terdistribusi (KOT) penjualan barang
1t
a perusahaan rite!. Perusahaan ini mempunyai rapa toko (outlet). Semua komputer dalam setiap dilnibungkan dengan komputer pusat yang masok informasi seperti harga pokok, keterangan ng barang yang akan dicetak pada nota dll. puter pusat ini juga mengatur penjadwalan untuk ngisi stostoicpada setiap toko.
Hash l yang dicapai pada peneiltian ini adalah o CORBA sangat membantu dalam menciptakan 'ikasi obyek terdistribusi berbasis permrograman
orientasi obyek.
kunci Komputasi Obyek Terdistribusi (KOT), CORBA, ritel
LATAR BELAKANG MASALAH Hadirnya komputer dalam kehidupan ri-hari sekarang ini dirasakan semakin ruhkan. Masyarakat memanfaatkan puter untuk meringankan beban pekerjaan. iputer selalu terlibat dalam setiap jenis rjaan bahkan tuntutan kebutuhan sekarang th setiap komputer menjadi satu kesatuan
jaringan kompUter.
Kecenderungan teknologi komputer eser pada paradigma komputasi rientasi obyek. Hal ini merupakan implikasi berkembangnya pemrograman berorientasi k (PBO). PBO mendefinisikan sebuah sebagai suatu entitas yang berdiri sendiri. trur dari sebuah obyek hanya diketahui oleh si-fungsi yang ada pada obyek tersebut. ikian pula data-data pada sebuah obyek a boleh dimanipulasi oleh fungsi-fungsi mtu didalamnya. Kecenderungan ini
menyebabkan munculnya suatu teknologi baru dalam dunia komputasi yang disebut Komputasi Obyek Terdistribusi (KOT).
KOT merupakan pengembangan dari konsep client/server, yaitu adanya obyek yang berfungsi sebagai client dan adanya obyek yang berfungsi sebagai server. Perbedaan peran dari sebuah obyek, hanya didasarkan pada saat terjadinya permintaan layanan oleh sebuah obyek terhadap obyek yang lain (per-request basis). Oleh karena itu sebuah obyek dapat berfungsi sebagai client pada suatu saat namun pada saat lain dapat menajdi server bagi obyek yang lain. Pengertian ini berbeda dengan konsep client/server yang dikembangkan dengan teknik Remote Procedure Call (RPC), dimana peran sebuah fungsi/prosedur selalu tetap.
Untuk melihat pemanfaatan lebih jauh tentang KOT in akan dibuat implementasi KOT pada penjualan barang-barang di perusahaan ritel yang mempunyai beberapa toko (outlet). Sistem tersebut terdiri dari sebuah gudang bersama, beberapa toko terhubung dengan jaringan dan beberapa mesin Point Of Sales (POS) pada setiap toko. Setiap barang memiliki kode tertentu dan jumlah persediaan barang tercatat pada komputer di gudang. Setiap terminal POS memiliki perangkat pembaca kode bans dan masing-masing POS dihubungkan ke sebuah komputer yang berisi informasi yang khusus untuk toko tersebut (misalnya angka keberuntungan, tingkat pajak d11). Semua komputer dalam setiap toko dihubungkan dengan komputer pusat yang memasok informasi seperti harga pokok, keterangan tentang barang yang akan dicetak pada nota dll. Komputer pusat ini juga mengatur penjadwalan untuk mengisi stok pada setiap toko.
2. TEORI
KOT adalah suatu konsep yang memung-kinkan satu proses dijalankan pada beberapa mesin dengan tidak memandang letak mesin-mesin tersebut. Konsep ini didasarkan pada teknologi pemrograman berorientasi obyek.
Untuk tnendukung KOT, dibutuhkan sistem operasi yang melayani layanan dasar multitasking dan komunikasi layanan jaringan komputer.
IPC merupakan implementasi awal Kompu-tasi Terdistribusi. Yang menjadi dasar IPC ada-lah mekanisme yang disebut socket. Beberapa tipe domain socket adalah Unix domain, Internet Domain, dan Xerox Network System domain. Masing-masing tipe socket ini dihubungkan dengan protokol tertentu yang sesuai.
RPC dapat dipahami sebagai suatu pola komunikasi aras tinggi yang digunakan di dalam sistem operasi. RPC dikembangkan untuk mewujudkan sistem komunikasi antara client dan server guna mendukung aplikasi jaringan. RPC menganggap keberadaan mekanisme networking aras rendah (seperti TCP/IP dan UDP/IP) disediakan oleh sistem operasi.
CORBA merupakan model obyek abstract yang dikembangkan oleh OMG, dau tidak didasarkan pada teknologi tertentu. Sebuah sistern obyek adalah kumpulan obyek-obyek yang memisahkan client dari server dengan menggunakan interface yang telah didefiniskan. 3. IMPLEMENTASI KOT
Definsi Obyek Pada Sistem
Setiap obyek dianalogikan ke dalam sistem komputer sebagai berikut:
Obyek InputMedia
Obyek ini mensimulasikan perangkat papan ketik dan pembaca kode bans khusus untuk keperluan program contoh mi. Perangkat-perangkat tersebut akan disimulasikan dengan jalan mengirimkan karakter-karakter ke
"Barcodelnput" atau "KeypadInput" Obyek OutputMedia
Obyek ini mensimulasikan fungsi pencetak slip/nota pembelian dan layar penampil untuk menunjukkan status transaksi. Dalam contoh program, hal ini ditampilkan pada layar monitor. Obyek POSTerminal
POS menangani interaksi antara piranti InputMedia dan OutputMedia, mencatat keadaan penjualan, mengijikan kasir baru login dan memberikan laporan POS dan toko.
Obyek Store
Stote menangani sejumlah POS, mejaga data-data penjualan dan melaporkan total penjualan.
Obyek StoreAccess
StoreAccess adalah penghubung antara POS dan depot pusat mengenai akses ke pusat basis data item. Obyek ini dibuat untuk setiap POS yang login ke Store.
Obyek Tax
Obyek ini menentukan apakah sebuah item bernilai pajak dan melakukan perhitungan pajak atas item tersebut. Dalam melakukan perhitungan pajak adalah item pakaian dan makanan selainnya memiliki nilai pajak tertentu. Obyek Depot
Obyek ini adalah obyek yang mengatur dan mengelola stok perusahaan. Obyek ini juga merupakan sumber informasi tentang item yang dijual oelh semua toko.
Obyek PseudoNameService
Melayani query dan pendaftaran obyek.
Dalam mendukung aplikasi mi. Digunakan juga sebuah fungsi yang umum untuk semua obyek yaitu fungsi yang bertugas mencari PseudoNameService (berdasarkan object reference-nya). Fungsi tersebut adalah FindPNS() dengan konstruksi:
// //(Util/FindPNS.h] '- include <PNS.n> PseudoNameSevice_ptr FindPNS (CORBA_ORB_ptr orb);
Deklarasi Obyek CORBA (IDL)
Deklarasi obyek yang dibentuk adalab PseudoNameService, CentalOffice, Store, StoreAccess, Tax, POSTerminal, InputMedia, dan OutputMedia. Dibawah ini akan disajikan 2 (dua) IDL yaitu PseudoNameService di CentalOffice.
PseudoNameService
Obyek ini merupakan gudang informasi dari semua obyek yang disusun dalam suatu struktur:
struct PNSTruct (
CORBA_Object_var obj; Char name[80];
);
Dan i stuktur diatas tampak bahwa informasi yang diismpan adlah nama obyek serta obyek reference-nya. Sedangkan struktur datanya dibentuk dengan membuat senarai berantai :
Class TreeNode ( public:
TreeNode #m_l eft , #m_ri ght; PNStruct m_item;
TreeNode() m_l eft (0) ,
m_ri ght (0) () );
Fungsi untuk proses penggabungan (binding) sebuah obyek serta fungsi mengetahui atribut sebuah obyek adalah:
'include <PNS_skel.h> 'include "PNSData.h"
class pname_i : vi rtual public
PesudoNameServi ce_skel (PNData
ill...data); public:
pname_i (CORBA_ptr orb) ;
vi rtual void Bi ndName (const char
4'cobjectName , CORBA_Object_ptr
rib
jectRef);
. rtual void CORBA_Object_ptr
solveName (const char
jectName) ;
sehingga client dalam hal ini obyek Store mengakses nama tersebut. Deklarasi dalam bentuk IDL adalah sebagai berikut :
#include "POS.idl" #include "Store.idl" module Cent ralOffi ce (
interface Depot ( void Find (
void Fi ndItemInfo( in Astore: :Astored StoredId,
in POS : :Barcode Item, in long
Quantity, out Astore::ItemInfo
Iinfo)
raises (Astore::BarcodeNotFound); ) ;
) ;
Obyek Depot memiliki fungsi FindltemInfo() yang akan memberikan informasi tentang suatu barang. Apabila gagal dalam memberikan infortriasi yang diminta maka akan membang-kitkan eksepsi yang didefiniaikan dalam obyek lain (Astore::BarcodeNotFound).
larasi obyek ini diwujudkan dalam bentuk sebagai berikut :
terface PseudoNameServi ce
void Bi ndName(in string
lectName , in ObjectRef) ;
lect ResolveName(i n string
riectName) ;
rat Office (Depot)
t merupakan obyek yang mengelola semua tntaan informasi tentang barang baik dalam Lh stok maupun harp dasarnya. Struktur
mirip dengan PNS yaitu : s TreeNode (
ic:
TreeNode "m_left, #m_right; Astore_ItemInfo m_item;
7reeNode() m_left(0),
;ht(0) ()
contoh program ini, informasi tentang disimulasikan dengan sebuah file, namun plikasi sesuangguhnya informasi tersebut dari suatu sistem manajemen basis data.
Depot meregistrasikan din i kepada NameService dengan nama Depot
Deklarasi Obyek dengan RPC
Obyek PNS tidak diperlukan dalam teknik RPC karena client harus mengetahui letak dan keberadaan fungsi-fungsi yang diinginkan. Oleh karena itu hanya fungsi Depot, Store, Tax dan POSTerminal yang diimplementasikan pada sisi server dan sisi client. Pada sisi server langkah yang dilakukan adalah
I. Inisialisasi soket, menggunakan fungsi svctcp_create(RPC_ANYSOCK,0,0) 2. Registrasi fungsi Depot, menggunakan
fungsi svc_register()
3. Siap menerima koneksi, menggunakan fungsi svc_run().
Sedangkan langkah yang dilakukan pada sisi client adalah :
I. Inisialisasi client.
Client perlu mengetahui lokasi (mesin) yang menjalankan server. lnformasi ini dapat diperoleh pada saat kompilasi
Membangun koneksi dengan server, menggunakan fungsi cInttcp_create() dan cInt_call().
lnteraksi dengan pemakai (kasir)
Tugas kasir adalah menerima transaksi dan memasukkan informasi kodebaris barang. Ini berarti rutin-rutin yang menangani pembacaan kode bans dan pencetakkan slip transaksi , perlu disediakan.
4. HASIL
Dalam menjalankan program digunakan dua buah komputer yang terhubung jaringan untuk membuktikan konsep KOT. Komputer yang pertama berbasis omput operasi Linux sedangkan yang kedua FreeBSD.
Obyek PNS dijalankan pertama kali karena obyek inilah yang akan mencatat pendaftaran obyek lain serta memberikan informasi tentang suatu obyek bila ada yang meminta. (bani dengan tanda merupakan keluaran dilayar monitor).
$ ./PNSServer
Pseudo Name Server up
Kemudian menjalankan obyek Depot yaitu : $ ./CentralServer
pname::BindName — registering Depot
Selanjutnya men jalankan obyek Store
$ ./StoreServer 1 30; StoreServer <StoreNumber> <Markup>
pname_i::BindName — registering Store_1 pname_ir:BindName — registering Tax_1
Angka 1 memberikan identifikasi yang berarti omp nomor 1, sedangkan angka 30 berarti omp tersebut menjual dengan harga 30 X harga pokok.
Obyek berikutnya adalah obyek yang melayani keluaran transaksi :
$ ./outServer 1; outServer <POSNumber>
PNS:--> pname_i::BindName — registering OutputMedia_1
Obyek ini dijalankan dengan parameter 1 yang berarti obyek ini melayani POS terminal nomor I. Yang terakhir dijalankan adalah
$ ./POScIt 1 1; POScIt <StoreNumber> <POSNumber>
pname_i:ResolveName — looking up Tax_1 pname_i::ResolveName — looking up Store_1
pname_i::ResolveName — looking up OutputMedia_1
Arti parameter diatas adalah terminal nomor 1 yang berada dibawah toko nomor L pada layar monitor akan tampil menu seperi dibawah mi.
Command Summary :- L : Login
P : POS Sales Summary T : Total
Q : Quantity X : Exit
Enter code, command(L,P,Q,S,T) or X to exit:
Kasir hams melakukan login terlebih dulu untuk
mendapatkan akses ke menu yang lain. Anggap kasir telah melakukan login dan kemudian terjadi transaksi:
Enter code, command(L,P,Q,S,T) or X to exit: 1 Enter code, command(L,P,Q,S,T) or X to exit: 234234 Enter code, command(L,P,Q,S,T) or X to exit:q2 Enter code, command(L,P,Q,S,T) or X to exit:423552 Enter code, command(L,P,Q,S,T) or X to exit:q10 Enter code, command(L,P,Q,S,T) or X to exit:78971e Enter code, command(L,P,Q,S,T) or X to exit:t Keluarannya pada ompu obyek OuputMedin
adalah 1 234234 Pen 415.40 415.50 ' 2 423552 Pencil 117.50 235.00 ' 10 789789 Peas 367.50 3675.00 ' Taxable Sub_Total := 650.50 Taxes := 32.53 Total := 4358.02
Selanjutnya file PNS.dat (object reference
obyek PNS) disalinkan ke omputer
(FreeBSD). Pada omputer ini tidak di
obyek Store baru, namun hanya OutputMedia dan POS.
5. PENUTUP
Berdasarkan pembahasan diatas dapat bahwa:
1. CORBA sangat membantu pen . menciptakan aplikasi obyek berbasis PBO
ling dengan metode 1PC maupun RPC, A lebih mudah dihnplementasikan
Siegel, CORBA Fundamentals and imming, John Wiley & Sons, Inc, Management Group, The Common Request Broker : Architecture and .ation, September 1997
[3] Sun Microsystem Inc, Remote Procedure Call Programming Guide, 4.4BSD Programmer Suplement Documentational. [4] Steve Vinoski, CORBA: Integrating
Diverse Application Within Distributed Heterogenous Environments, Majalah IEEE Communication, Vol. 14 no. 2, Februari