-=l
2
LANDASAN TEORl
Sistem Tenlistribusi
2.1.1 
Sistem
Monolitik 
Afair,fmme
lvfairy7ame
dianggap 
mengawali 
era  sistem  terdistribusi.
Jv[aif?frante
terdiri 
dari
suatu 
basis
data
yang
tersusur: 
secara  hierark.i
daJl dumb
terminal,  ataa
yang
dlkena1
juga
sebagai
''green
screetJ ''".
r
::;,
i
,
l- 1
,
--,--.-
/
Gar:1bar 2.1
A.rsitektur Mamframe
!vfainframe 
yang 
digambarkan 
pada 
Gambar   2.1  
dapat   diadnlinistrasi  
secara
rnudah 
namun 
mampu 
melayani  sejurn1ah
besar 
penggnn(L 
Keuntungan
1airmya
(r:an1t1n
b;sa 
diE
at   juga   sebagai  
kelemahan,    tergantung
dipandarg 
dari   segi   mana)   adalah
manajemennya  
yang 
dila.l.::_ukan   secant  
terpusat   Perangkat
lunak   ya.r;g
dituHs 
untuk
Jnainfra!Yie n:emiiiki 
arsitektur 
ya."lg
monolitik,  
baik  
itu  
tarnpHan, 
business  logic,
5
  
6
r:1aupun
akses  
datanya  
terangkurn  
dalam   sebuah   ap!ikasi 
ya:tg 
besar   dar. 
kcmplek.
Karena
setiap 
du;nb 
lcrm.inal 
yang  terkoneksf 
ke  main.frame
tidak 
melakukan 
proses
sendiri; 
nelainkan   semua 
p
oses 
di1akukan
C1l  
ko;nputer 
JnairtfiYime,
maka  arsitektur
monclltik 
teiah
cukup
memadai.
Ar:;itell:tiJ'r 
Client/Server
Berbeda   denga:1
mainfrante 
dan  
s!ste1n rncno!itiknya
dimana 
setiap 
proses
dilakttkan  
di 
komppter 
mainfra!ne,
arsitektur 
client/server rnemungkinkan
beberapa
;;roses  di:akukar:
di
PC
pengguna 
(client).
l..
rsitektur
ini
sangat 
tepat 
untuk 
diterapkan 
dt
bisnis
berska!a 
kec:I 
daripada 
mainframe 
karena 
mem.ilikj efektifitas 
dari 
segi 
biaya
karena 
spesifikasi
server
tidak 
usah 
sebaik  dibandingkan 
dengan 
mainframe_
Ke!lntc:ngan
yang  
lain 
acialah  setiap   bagian  
terorganisasi  
untuk  
membangu.n 
dan
mercgatur 
servernya   
mas;ng-masing,   hasiinya  
adalah  
baglan-bagian 
tersebut   
akan
berusaha  
untuk
membangun  
aptikasinya  
Sendhi
daripada 
rr.enunggu
b.agian yang
mengo::11rol  Inahiframe
(biasanya bagian
IT)
men1bangJn 
apilkasi untuk
n1ereka.
Dalam
     
da:am 
sen,er,
tan1pilan
(user
inte1jace)
ben:;da
G_i 
client, 
sedan.g.,'kan 
businesss
logic
bisa
berada
di
sal?J1
satu
client 
atau
server
atau  bahkan 
berada 
di 
kedt:.anya. Ketika  terjadi 
peru.baPpada
komponen 
di
client
perubahan
;tu
a.kan
disebarkan 
ke setiap
pen:a.l.cai.
Revolusi
pertaiP.a
dari
arsitektur
client/server
adalah
tvp-o tier client/sen,er
yang diilustrasikan
pada Gambar
2.2.
'
I
!i
'I:
;; :
  
Dusim:ss
Logk
7
Sc:vcr laiR
!"
"
·
"I
:·-·-·--\
'
I
1\;
I
i'
il
1:
1:
I
I
1\
:
I
\!
I
II
1:
I'
l
..
PC
Gambar 2.2
Arsitektur
client/server
2.1.3 
lvlultitier
Oient/Server
Client/w:rver
d:anggap 
sebagai   ;·evolusi 
dalam 
sistem 
:erdistribusi.  
Namun,
walaupun  client/server dapat 
menutupi 
kelemahan-kelemaharr
ya..11g 
terdapat 
di 
dalam
:nainjramec
sisten 
inipun
maslh 
n1en1 liki 
keiemahan. 
Sebagai 
contoh,  -karena  akses
fungsi 
dalam 
basis 
data   (seperti   queiJ;) 
dan 
business  
logtc  
biasaitya
terdapat  
di
komponen 
client, 
segala 
perubahan 
terhadap 
business  logic
akses 
basis 
data, 
atz.u
ba.'lkan basis
data
itu
sendiri
seringkaE memer!ukan
pe:ubahan 
komponen  client
untuk
serr:ua
pengguna
dari 
ap!i..lcasi 
te
sebut   Biasanya 
perubahan 
itu  akan 
rnematikan
verst
la.m.a 
dari 
kompone.n client
itu 
yaag 
pada 
ak.hjmya 
menghasilkan  suatu 
aplikasi
yang
rapuh.
Masalah 
dari  sistem 
client/server  tradisional (atau
yang
sering 
disebut  sebagai
two tier
clientiserver)
dipecahkan 
dengan 
sebuah 
arsitektur 
yang  iebih
matang, 
yaitu
  
7
----11
mu!Utier  clienrserver.
Secara   konseptua1
8
sebuah 
aplikasi 
bisa 
memiEki  beberapa  tier,
tetapi 
yang  paling  sering  digunakan   adalah  arsitektur
three-tier
di  rnana  sistem  terbagi
1nenjadi
tlga
bagian
yaitu
user
inte;:face
layer,  bussines 
ruler
layer, 
dan
database 
access
layer
yang
digambarkan  sebagai
berikut  :
Se!Ver
Server lain
Data.bas.o 
i
'
'----------!
I
I
i  
I
Data "''"" 'l"
lr---1
'I    
c_    
-----,- 
_j
I
I
.  
_
Business Logic
_
Client
(UJ,er Interface Layer)
[iJI
I;
[I
L}:-==.J
!
=,
.  --===----"
PC
Garnbar
2.3 lvfultitier client/server
lvful!itier
client/sen)er
menggantikan
arsitektur
!Vt.JO-tier  cbent/server
dengan  dua
cara.  Pertama 
dan  rnungkin  yang 
terpenting,
arsitektur 
ini
membuat
aplikasi 
lebih stabil
dalarn  
arti  
v
'
erubahan   
dari  
aolikasi
ini 
tidak    sampai  
merubait  
komponen   
client.
Berikutnya  
adalah, 
karena   arsitektur  n1ultitier client/':lerver
membagi 
aplikasi 
menjadi
komponen-komponen 
lebih   terstmktur 
daripada    two-tier 
clientherver, 
maka  
akan
memudahkan 
dalam
·  
pengembanganaplikasi 
secara   
lebih 
fleksibei. 
Gambar   
2.3
menggambarkan  
database 
access 
layer 
dan 
business 
rules 
layer, 
walaupun   mereka
entitas  
yang
berbeda 
berada 
di 
satu    mesin/server. 
Juga    1ne1nungkink2n
untuk
  
9
rr:esra 
yar;g
berbeda.  
Se!ain itu
rangkaian
hustness
rules
ataupun   rangkaian 
kompcnen
d£ztahase  
acce.'>'S
u;( uk 
beragam   basis  data 
dapat
di!Jentuk  di  dafam  sebuah  ap!ikasi 
tunggal  
ya."lg
didistribusikan  
sebagai 
suatu 
aplikasi
vzng har:da!
Alulritier
clieiu/:::er·:<"er 
mengurangi kerapuhan suatu
apEkasi
de:::1gan  memberikrut
P
emisahaJ.1 dan o
'
embatasan antara lav
,/
er-lat_
.-
,er daia.tn
ao
"
likas. [Iser
inter "ace
lav
'
er
hru"!v
,;
a
berkorr:unikasi  
dengan  
bus-rness
rales   hryer.,
tidak   pernah 
secara  
iangsung 
dengan
darabase
access
layer.
Business
rules
layer;
berkomur:ikasi 
dengan 
user
interfr.Ke
layer
d! satu  sisi da;"I 
database 
access 
layer 
di
sisi yang
lain.
Karena 
itu 
perubahan  
pada
database
access layer
tidak
akaE
berpengaruh
pada
user
interface
layer
karena
mereka
terpisah satu
san:.a
lain.
2.2       COM
2.2.1    Pengerti:m
COM
COM
adaiah
dasar
dari
"object 
modef' 
;:ada 
ActiveX  Control 
dan
OLE, 
COM
memungkinkan  
objek 
unruk  
mempL:.blikasikan fi.mgsionalitas-f..:ngsionalitas 
kepada
kompcner:.
dan 
aplikasi  latrL  
CQ-fvf    
:.endefir:isika:l bz.gaimana 
objek  
tersebut
mempublikasikan 
dirinya 
dan 
bagaimana 
dapat 
bekerja 
pada 
proses 
ya,'1g berbeda 
dan
melewati
jaringan, Selain
itu,
COM
juga
rr,endefbiskan
sik:lus hid up dari
objek
  
!
2.2.2
irjfastruktar COM  dibuat 
untuk  mendukung 
komunikasi 
melalui
interface
cbjek
Dalam
COM, 
interface 
dapat
dimengerti sebagai
suatt:
intelface
komuPikasi 
yang
menghub:.:..ngkan dua  
objek  
yang  
berbeda  
d&r
1:1erupakan 
sekumpulan  
fhngsi-fungsi
yang disediakan untuk
hubungan_  tersebLLt. Intnface
n1en.1pakan suatu kesepakatan yang
tetap  antara  objek-objek  t.:ntuk mendefir.t1sika.."'!  
behavior  
dan 
paratneter 
yang  akan
digunakan
untuk berinteraksi.
lnterfac<! CO"vl
di!n::pleme:1tasikar1 pada stuktur
memori 
yang disebut  Vtab!e,
dimana  dapamengandung
array
dari  pointer-pointer
fungsi,
Setiap 
elemen  dari
Vtable
n1enga:1dung 
alarnat
spesifik
fu.ngsi
yang 
diimplen1entasikan 
oleh 
objek.  
Secara
sede<hana
dapat 
dikatakan 
banwa objek
COM 
mempublikasikan 
interfacenya 
sehingga
f
ngsi-!imgsinya
dapat
digt.:nakan oleh
client.
Sebuah  objek  juga
mengandung
data 
yang
teiah
dimanipdasi
oleh 
method, 
dan 
dapat 
ditentukan
data 
tersebut 
tersembLmyi
dari
client,
2.   
IUknown                                                                                                                                          !
'
Salah  satcr
hal
yang
paEng 
dasaya:Jg
harus 
ada
daiar:1
spesitlkasi 
COM 
adalah
CO ,f
hams 
rneudukurrg
suatu  inteJface
yang
disebc.t
[[]known.  Interface 
ini rr.empakan
interface  star:dar
yang
mereferensi 
ke
interface 
lain
yar1g
mungkin
dimiliki
deh  sebuah
objek  COM. 
Objek  client  tidak 
akan 
iahu 
interface 
apa 
saja yang
terdapat
pada 
objek
server" 
sebelurn
client 
ters:ebut
meminta informasi dengan menggu.na._lcan 
inte1jace 
yang
tetah didefinisikan  untuk
1nengeta:1ui
interface
yang beluzn iliketahui.
  
3. 
Reference
counting
tidak 
secara 
otomatis 
merrghapus 
cbjek  
yang 
sudah   tidak 
di[Jakai 
dari
tnemon.      
Se!ain   dengan  
menghapus   
sendiri  
objek  
yang  
sudah  
tidak  
diperlukan,
programer    dapat  
merrentukan  
kapan  
sebL!ah  objek  
dapat  
diha;rus  
tergantung  
dari
reference count.
Objek
f[_}nknown 
han.:.s rnerrgin1plementasika.'i   sebuah              
y&"'Ig
namanya
Queryfntcrface,
dimana bertUr;gsi          
1nengembalikan 
m!al
ke
client 
apakah 
sebuah
request 
d:terima. 
jika 
ya, 
kemud1an
n1enyed:akan             
kepada
objek  tersebut.  Bifa
sebuah 
pe:nanggilan  Query!nterface
berhsil
maka
akan  tersedia  pomter yang  menur.juk
Marshaling 
adalah  nama  yang  diberikan 
untuk 
proses 
packaging 
data
inle!face
ke           
forrr:at yang           
untu.k
dikirimkan 
antar 
proses  atau 
jar!ngan. 
Modul 
yang
rr:elakul<:an
tugas
ini
disebut
nu:rrsha!er 
Sed
ngk<!n
pada
client
proses
unpackage
disebut
unmarshaling.
Aggregasi  
berart:  bahwa  objek 
utarna 
membuat  
sebuah  
objek   ba1:.1   sebagai
bag:an.
dasi 
objek 
t:tamaserta
int:nface
dari 
objek 
ban1
tersebut   dipublikasikan   o1eh
objek 
uta.ma.
Sebaa;,
objek 
diatur
supa.ya
bisa
diaggregasi 
atau  cidak.
Jika
dapat,
rnaka cbjek 
tersebut 
mengikuti  
a
xran.-aturan  
yang
ada  supaya  dapat 
berjalan
ae11gan
baik.
C01t, proxy
adalah sebuah kornpor err
bincuy
kecil  yang diaktifkar.
da1am
proses 
pada.
ciientyang
berfo1ngsi rr:enghubungkan 
interface
client 
ke
interface
sen)er,
  
i2
-'
.._.
Stub  adala1
sebuah
komponen binary
kecti
yang
aktif:l(an
dalatn 
proses
pada
server,
yang
bertugas
untuk  menghu.bungkan  server denga.n proxy pada
clit:nt. Dengan
ini,
·
C01
pada 
client dan sen>er  tidak
per1u  mengetahai
di 
mana 
iokasi  se;y·er
atau  client
tersebut  
berada,  
karena 
semua 
COM 
telah 
membuat   proxy
dan 
stub  yang
membuat
semua
server
serupa
dala_rn
proses
yang sama,
Client
dapat 
dengan 
mudah 
menggunakar>
pointer pada serwr,
tapi  sebenarEya
client  
bnya 
mem;liki  
pointer   pad2- proxy      
Se!ain   itu  
CO
hams   
mendukung
interprocess  
communication     seperti 
Rernote  Procedure  Calls     
(RPC)   
ur:tuk
menghL:-bungi
stubyang
ken1udi&'1 tnenghubungi server rrelalt:i
pointer.
2.2.3   
DCOM
mendefinisikan 
bagaima:m komponen
dan  client-nya
dapat 
berinteraksi.
Interaksi      
dideftnisikan sehingga
tidak 
diperiukan
Iagi 
perantc.ra untuk  melakukan
koneksi,
Pada sistem
operas£
pada
saat
ini,
proses 
terjadi
secara 
tertutup.
Karena
itu,
cliellt
perlu
untuk 
berkomunikasi 
dengaJJ kompcnen
lain
tetapi 
tida.k dapat 
me!akukan
pemanggilan   sec:ara
langsung,  
melairL&can 
harus
rnenggunakan
rnetode 
lain 
yang 
telah
disediakar:
o!eh
sistem  onerasi.  DCO
/f 
merrvediakan
ko 11unikasi 
n! dalan1
bentuk 
van;;r
transparan.
Pemanggilan 
darl 
client 
diarGbil dan  ditefl.Jskan
ke 
komponen
yang 
ada 
di
proses
lain_
Garnbar
2.4
menunjukkar.. proses
ya-cg terjadi
antara
dua
kornpoJen.
  
13
C\ie:;t
Gambar 2.4
kompor;en
DCOM
pada
proses
yang
ber'ved-:a
Tetapi 
auabiia 
ko:nponen 
terdapat   pada 
rr,esin
yang 
berbeda, 
DCOJV1
secara
otomatis 
tnengabRh
proses
kcmunikasi 
yang
terjadi
df 
foka! dengan 
p:-otokcl
jaringan.
Hal
Iri
karena
proses
p.engembangan
.secara
cieti1 
tidak
dimasukkan
dalam
source
code,
sehingga
DCQ\{
dapat  bekerja
denga11 mudah
dimana
saja.  
DCOM 
menyembunyikan
!okasi 
dari   komponen,  
tidak   diketahui   apakah   kompcnen  
terseb:.:t  terdapat  
pada
komputer 
tersebut  atau 
terdz.pat
d1 
mesin
lain 
G-ar,1bar  2.5 rr.enunjukka:1
proses 
ya:1g
tecjad: bila
kompcnen
DCOM
diakses
dari
mesin yang berbeda.
Gambar
2.5
komponen
DCOM
pada mesin yatlg berbeda
  
14
2.3
Cmmnon
Object Request Broker (CORBA)
Common Object Request Broker
Architecture
(CORBA) cdalah suatu
arsitektur
dan 
spesifika.s: untuk 
1nembuat,
mendistribusikan,
dan 
mengolah 
program 
objek
terdistribusi pada suatu
jaringan (Orfali,
R.
et. al,
i
998, 
pvi). CORBA memungkinkan
program pada
lokasi yang berbeda dan dikembang.lcan
o:eh ver;dor yang berbeda saEng
berkomunikasi dalam suatu jaringan mela!ui "inte1jace broker". CORBA dikembangkan
oleh
Object
Management
Group
(OMG),
yang
pada
saat
ini
beranggotakan
500
perusahaan. CORBA te!ah menjadi suatu arsitektur standar untuk objek terdistribusi.
2.3.1 
Object Request Broker (ORB)
Dasar dari CORBA adalah Object Request
Broker atau ORR ORB
merupakan
sebuah bus objek.
ORB
membiarkan objek
secara
transparan
membuat
permintaan ke
atau
menerima respon dari objek
lain
baik
lokal ataupun
tidak (Orfali, R  et. al,
1998,
p7). 
ORB
adalah
komponen
perangkat
iunak yang
berfungsi
untuk
memungkinkan
komunikasi antar objek. ORB
menyediakan beberapa kemarnpuan,
salah satunya adalah
menempatkan remote object, memberikan referensi objek. Layanan lain yang diberikan
ORB
adalah
penyusunan parameter
dan
n.ilai 
baEk
ke
dan
dari
remote
method
invocations.
Untuk 
me111inta  
layanan
dan 
mengembalikannya antar 
ORB, 
program
menggunakan General
Inter-ORB
Protocol
(GIOP)
dan
untuk
Internet,
digunakan
Internet
Inter-OP.B Protocol
(IIOP). 
IIOP 
memetakan
permintaan
GIOP 
dan
mengembalikannya pada 
layer  Transmision Control
Protocol 
(TCP) 
pada  setiap
komputer. Service lain yang diberikan oieh ORB adalah pengaturan parameter dan nilai
  
kembalian 
ke 
dan 
dati 
pemanggilan 
sebuah 
remote   ohject. 
Penggunaan 
ORB 
Juga
memberikan kemampuar:plaiform independence
untuk
obyek
CORBA.
COREA
!ebih
dati
sekedar 
sebuah
ORB
,
tapi
juga
merupakan 
sebuab
platfo:m
objek 
te
distribusi  
yang 
lengkap   
CORBA  
:nempduas 
jzngkauan   aplikasi 
me!alui
jarbgan,  bahasa, batasan-batasan komponen dan
sistem operas!.
2.3.2 
Ai·sitektur
CORBA
Waiaupun
banyak ap!ikasi
CORBA
seperti  Visibroker  dari
Borland,
OrbixWeb
            namun arsitei<tur CORBA
yar.g dipakai
adalah
sam
a,
arsitektur
yang dite::apkan oleh OMG.
Secara logika,
arsitektur
CORBA
OR:.T3 b:sa di!lhat
pada
gzmbar
2.6
iNTERFACE
REPOSITORY
IMPLEMENTATION
REPOSITORY
CLIENT
l
A
I
Dll 
I
.,.
ORI!'-SPECiii"IC  
INTERFACE
STA"lD.M-<.:) 
PROTOCOL
Gambar
2.6
Arsitektur
CORBA
ORB
  
16
[.  Object
fnrpfementalion
interface  Object
fmplementation dapat ditulis dalam berbagai macam bahasa pemrograman, te!Llasuk
C, 
Java, Smalltalk,
Ada.
2. 
Client
Program 
yang 
memar:ggi! operasi 
yang  terdapat   pada  object
implen!entation.
Mengakses 
!ayanan            
terdapat 
pada  remote object harus  transparan  untuk
  sehamsrrya semudah memanggii         
pada suatu objek.
3. 
Objeci Request
Broker
(ORB)
menyediaka:r.
sebuah
mekanisme untuk
komunikasi
antara permintaan
dient 
ke
object  implementation  secara transpanm. ORB
menyed.erhanakan pemrograman
apEkasi terdistribusi dengan
memisahkan client
dari detail
pemanggilan fur si.  Hal
akar 
memb'!?.J   permintaa:. dientampak  
seperti  pemanggil<U'1  pada  prosedur
lokaL 
Ketika   client 
memanggil   .suatt! 
operas: 
bertanggungjawab 
untuk
menemuka:1
object   implementation 
secara 
t
ansparan  
dan 
mengaktie!(_z.::rJya  
jika
memarrg
dibutuhkar,, mengirimkan pennin:aan ke objek, dan mengembalikan
respon
ke pemanggiL
4
0RB
!nteJ:face
ORB 
adalah 
logik  yarg 
memung!dnka:-un:uk 
diimplementasikan dengan
berbagai cara.
Untuk  memisahkan aplikasi dari detail
im;Jlementasinya,  spesifikasi
CORBA 
mendefinisibm 
sebuah  
interface 
abstrak
untuk 
ORB. 
Interface 
ini
menyediaka<1 berbagai
fungsi
pembii<'1'.U  seperti konversi referensi objek ke ka!im2.t
dan 
sebaliknyamembuat 
daftar 
argu_men untuk 
pennintaan  
yang
d!buat 
melalui
dynamic
invocation
interface.
  
i7
5.  
COREA
!DJ"stubsandskeietons
CORBA
IDL
stubs 
dan
skeletons 
berfungsi sebagai
'pelekaf  
antara
client 
dan
appflcation 
server,
d<L'l  ORB. Transformas: an ara definisi CORBA IDL dan bahasa
pemragra:nan tujuan diatur
oleb
kompiler COREA
IDL.
Pe:;_ggunaan  clari
kompiler
akan 
mer:g rar..gi
kenw.ngkinan
ketidakkonsistenan 
antara 
client 
stubs 
dan 
server
skeletons
dan meningkatkan
optimaEsasi dari kompiler secara otomatis.
6.  
Dynamic
Invocation
lnterface(DII)
Interface 
ini 
rnerr:ungkinkan 
client 
untuk  
secara  
langsung   mengakses 
mekar.isme
layarmn yang  diseC.iaka.1
menggurrakan  
DII    
agar 
dapat
melakukan
perrnintaan  ke
objek
secara
dinamis,
tanpa
mernerlukan
interface 
IDL
stubs.
Tidak
seperti
!DL
stubs
(yang
hanya
memperbolehkan
pennintaan
jenis
RPC),
DII juga  memar:gkinkan
client 
untuk
meiakukan pemanggilan secara
non-blocking
defen·ed  synchronous 
(ope asi
kirim dan te ima
yang terpisah)
and 
one;my 
(hanya
kirim saja).
7.  Dynamic
Sk.eleton Interface
(DSI)
DSI sama ha!nya
dengarc Dli
pada sisi
client,
hanya saja berada pada sis;
server.
DSI
memLngkinkan
ORB untuk 1nengirin!<tm
pennin:aan ke
objecl
implementation
yang
tidak  mengeta2ui tipe  dar[ objek
yaDg 
diim;Jlementasik:a11. 
Client 
yang 
membuat
pern1inta:a.i-idak 
mengetahui  apakah  i1nple1nentasi  
menggu.nakan IDL 
skeletons
denga1 tipe
SiJesifik atau
mer:ggunakan
skeletons
yang
dinamis.
8.  
O
ject
Adapter
Object  Adapter  membantu
ORB  dengan  mengirirnkan permintaan
ke  objek  dan
mengakti:'Kan  objek. Hal
yang tebih pe<;ting,
sebuah objek
adapter 
me::tghubungkan
  
18
object   tmplementarion  
dengan  
ORB.  
Objek 
adapter  
dapat  
dikhususkan  
untuk
me;lyediakan dukungan untuk
object
implementation
tertentu.
2.3.3 
Interface Definition Language
(IDL)
Dasar 
lain
dari
arsitektur 
CORBA
ada!ah
pengglili>aan
lnteJ:face
Definition
Language
(IDL). 
lDL
menjelaskau
interface 
antar
cbjek
CORB/!,,
dan
rr:er..1pakan   alat
un:uk
m.emastikan
bahwa 
CORBA
tida.l.;:
bergan ur:g
pada
bahasa 
pernrcgraman
yang
dig,unakan.
Adapun  IDL
di1iustrasikan
se-perti Garahar
2.
7.
IDL compiler
lDL
Parser
'
--J>- 
Parse  T:ree
Gambar
2.7
Kcmpiler
IDL
stu!rcode
Files
Karena
interface
yang dideskripsikan pada IDL dapat dipetakan ke dalam bahasa
pemrograman
saja,  aplik.asi
dan
komponen
CORBA
tidak 
bergantung
pada 
bahasa
dengan  C++ 
dapat 
berkcmunikasi 
dengan 
senw yang
dit;liis 
dengan 
Java, 
dan  dapat
juga
berkomunikasi deagan  sen:er
lain yang
ditulis dengan
COBOL,
d!L
  
l9
lj
bukaniah
bahasa
yang digunakan
untuk 
implementasi.  Oleh 
karena 
itu 
apEkasi  tidak 
dapat 
d!tu!is
menggunakan 
IDL.
Satu.-satunya
penggunaan
IDL
adala.  ntuk   me!ldefnisikan 
inter:face,
sedangkan  untuk
me:1gimplerr:.e:1tasikan
interface 
digunaka:."l
bahasa pemrograman yang lain.
 
(Hyper Tex:t Transfer
Protocol)
Hyperlexz 
Tran  fer
Proioco!
(HTTP)
adalah
serangkaian
aturan 
per:ukaran
(teks,
g:·afik  gambar, suara,
video, dan file
muitiinedia yang lai:r) di dalam
Vorld
Wide  Web.
Berhubungan 
dengan 
protokol 
TCP/'iP 
yang 
rr:empakan 
protokol   utama
da!am
pertuka;·an inforrnasi di Internet,
Hr:·p
ada!ah
sebuah
protokol
aplil,:asi.
Kcmsep
dasar
yang
merupakan
bagian
dari
HTTP tennasuk 
babwa
di
dalarn
file  
          
rnemtcu
requests.  Beberapa
Web  server  da!am  memenuhi
iayanan 
akan
              daemon,
yaitu
didesairr untuk
mem.:n.ggu  H:'TP  requests
dan rnelay&.Tli  reque.Yt
bilatnat'1li
eq;.rest
h
verasal
,
c
,
ar:
.
.._
H
TTP
c
,.
;
en{ 
sepertl
,
1-ve-  
h
b
rowser.
untuk
membuat
sebuah
format
data
yang
ber!aku
secara
universal
bukm1lah
hal
yang
baru. 
Usaha
awal
untuk 
rnenyatukan
format 
pertukara:1
data
yang
kaya ak2.n
iPlormasi
ada!ah
SGl'vlL (Standard Generalized .Markup Lcmguage). 
SG::V1L
merupakan
bahasa
yang 
berbasis  teks 
dapat 
digu:rraka:.: untuk 
rnark
up  ciata
yang 
disertai
metadata
yang merupakan cet.ra
rmon<:ie:skJripsiican
dirinya sendirt_
  
20
L
<...
SGML   didesain   sebagai  
cara   standar  
untuk  
marking  uv 
berbagai   da
a, 
dan
berperan  sekali
da!am
sistem  manajemerr
dokumen 
berska1a
besar.  
Aplikasi
da.-<i 
SG1\1L
yang 
paling  kita  kenai  adalah 
lfyper 
ivfarA1rp  Laliguage
(HTML). 
HT:V!:L  teiah
  
     kelemahan,    yaitu. 
tiCa..je;as
bagian  
doku.:men  mana  
yang
memhHG
!
yang
satetapi  dengan  pengurangan  kon1pleksitas sebanyak
mungkinselain
itu
pula
Xlv!L dides<,in agar
kompa:ibe! dengan
SGML
XML 
merupakan 
singkatan 
dari
E>::tensible ;\;farkup 
Language
ada!ah  dokumen
yang 
·
meny rnpan  
1nfo:rnasi 
terstruk;ur   dengan  
menggt.u:akan 
markup  language
(Norman, 
1998). 
Selain
berfungsi
sebagai
suatu  format  pertu.karan
data  antar
2
entitir
:x:I'vfL             
dapat 
berperan 
daia1n
per:yimpanan
dokrJmen
agar 
dapat 
digunakan 
oleh
program 
tain
karena 
fornatnya
standar 
dan 
keman1puan
mendeskripsikan
data. 
lvfarkup
language
adalah 
suatu 
mekarisme
yang 
<Eg:.makan  untuk 
menjelaskan   struktur 
dalam
sebuah
dokun:en.  Beriku:
ini
ada!ah
sontoh 
dari
X'vlL:
<XIID= 1¹::fit taDeta"'>
-<i'2:TADA!l0-
<Atir R>Johr ,Smith</ i!TITOR>
<GE!>.'IR. TD?->Visua.i
}Jot-ep d-- JGENEP TDF.>
<Ph0-IT£PE>Re:e ence</?A.CYETYFE>
<" 1JZTRACT>Spec::.fies  a  data 
isl&-:td</AES1R&C7>
<!:lETADbTA'>
<!'XML>
Strukt::r 
infom:asi
dapat 
berupa
isi
dari
doicJ.rnen
(
ata-kata,
gambart 
dan
lain-
lain)
dan
beberapa 
indikasi  yang
menyesun 
isi
dokurner..
tersebat
X?vlL berfungsi 
untuk
penggambaran  
dan 
strukturisasi  data   (seperti 
HTML)  dimana 
tiap   e!emen, 
tag 
dan
atributnya 
dapaditentukan
sendiri 
oleh  pemlL"::ai.
Masing-masing
tag tidak mempunyai
azti
p
esentas:,  hanya
merupakan suatu  ca:ra untuk  mendeskripsikan struktur
data
  
-
)'
L
(Sitnpfe
Object
Access
Protocol)
so.
adaiah  suatu 
mekrutisme 
yang
sederhana  untJk 
pertukaran 
struktur 
dan
tipe data dalarr: !ingkungan yang tersebar dar; 'erdistribusi dengan men&,ounakan 
XIv!.L.
SO
l\l' 
t;dak dig:.makan
untuk rr:endefinisikan suam model bahasa pemrograman tertentu,
· 
n1eE1pakan
suatu  
mekanisme 
sederhana 
untui<
rnenunjukkan 
semantik 
aplikasi
Gengan menyediakan
suatu tnet::;d.e
encoding
dan suatu model paket
yg
moddar :xntuk
encoding data dati sebw.l_,apEkasi.
Berikut adalah
contoh
SOLbJ'
A1essages.
<e:tv:
:'I /wwr.w3 .. crg/2CG:/ OC-/ soapenvelope''>
<env:Heade::>
ale::tcont
o
x.mlns:
:/I
">
_ority>1</:Jq:niority>
_
.
.    
_
<n: e:xpi.-ies>2 oo-l-C6- 22T14:CD:::J0-:--05:·o 0<1
:1::
eXPi::C:S>
<f
C.:lV«t"'-t'e".?
·
<e::rv:
:I
rusg>E':.c!:: up  
1ary  
at
school ar:  
2prr:</m;::-,sg>
</m:-a=..ert>
</env:-Body>
<I e.R.v ;.:2t;.vel_9pe>
SOAP terdiri dari empat bagian, yaitu:
l
SOAP E.nve!ope
·cnruk 
rr:endefidsikan 
apa 
yang
terdapat 
Caiar:.  pesan  yang
dikirimkepada 
stapa
pesan tersebut akan digunakan<
2_   
SOAP
Encoding rules
'Vlendefinisikan  mekanisme serialisasi yang dapat
digunakan
umuk  pertukaran
tipe
data yang didetnisikan dad setiap api:..t;:asi"
3.  
SOAP "-i?PC
-&#34;&#45;i?PC
Representation
!vfenyediakrul
suatu
standar
yang
dapat
digunakan
untuk
mewakili
ren-zote
procedure
calls dan hasil kembaliannya"
  
4.  
SOAP
Binding
:V1endefinislkan  standar
yang dlgunakan
ur:tuk pertukaran
SOAP
envelope.'>·
antara
peers
de!:gan
mer.ggur:akan
protokol yang :Jm>Jn:
untuk
transportasL
?VebSendce
2.7 1
Berdasai'<an 
pendapat 
Anderson 
et 
aL
(200 l,  
p6
1
), 
web 
service   merupakan
komponen
logika
1:Jisuis
yang dapa: diprogrrull
yang bertindak sebagai kotak
hitam yang
berfungsi  
nenyediakar:
akses 
ke
suan;
fungsi 
melalui  Internet 
meng,
unakan 
protokol
standar  seperti              
Web service dibangun dengar" menggur2.kan
fonnat  Ju'\1L
yang
dlsebut  Simple  Object
Access   Protocol  
(SOAP).   
Oieh 
Icarena
hubungan 
antara 
web
service
daE pernakai dilak:ukan  dengan il'._engir!m 
dan
menerima XlvfL melaiui HTTP,
ini oera--ti
web  sen,ice 
oada
platjoml 
Windows
dapat  dipakai
olen
platform 
lain seperti
Unix atau Linux.
Safah
satu 
kelebiha!!.  web
service 
adalah
se!unrh
tveb
service
yang 
ada
di
duniil
yang
telah
dlpubEkasikan untuk
t:mum
dapat
dengan
mudah
ditemukan
lokasir:_ya.
Pencariac.>.nya
mudah
karena adanya UDDI atau
directory
service 
yang berflmgsi
sebagai
tem;:Jat
pencarian lokasi seluruh
web
service
yang
ada di dunia.
Dari
Gambm·
2.8
dapat
kita
ketahui  urutan 
dad 
pencarian
sampa!
pengg-1naan
web 
service.  
Pertfut12-tama 
pemakai 
dapat 
mencan
sen}ice  
yang 
diingink:an
melalui
()DDI 
atau
directory
service.  Setelah
mend2patkannya
iokasi
dari
Discovery
Document
yang
berisi
lokasi
dokumen-doktunen
Xlv[I..
yang
berhubungan
de_nga.l'l
1-veb 
service.
Kemudian  da:-i  
Discovery    Document   
ini  dapat  diketahui  Iokasi
deskripsilga."'llbaran
tentang
web
service 
yang bersangkutan
yang
lebih
dikenal
dengan
WSDL {Web Service
  
Discnplion 
/_anguage). 
Di  
dalam   
WSDL   
inilah  
terdapat     cara-cara  
bagaimana
berin:eraksi  
dengai'  
web  service 
tersebut 
yang  
hams  
diketahui   
web  service  client
sebelu::n
wenggunakannyz.      
DengaJl    demikian   
web   service   client  
sudah   
Slap
dihubungka:1
ke
web
ser1lice tersebut,
dengan 
menggunakan
protokol 
SOAP,.
serta 
has:li
yang
diberik211 oleh
service
yang
bersangkutan dituliskar;
dalam
form.at Xl\1L.
ilirnbar
2.8 Infrastr-L<:tur
web service
X.\1L
si1atu
carz 
representasi  data 
merupak<Ln pilihan 
yang 
paling 
baik,
oleh  
karena  
itu.  
sebagian  
besar 
spesifikasi    yang  
berkaitan   
dengan    web 
service
  
24
menggunakan
XML
untuk
representasi
data,
juga
skema
XML
untuk
pendeskripsian
tipe
data.
SOAP 
merupakan 
suatu 
protokol   yang 
digunakan 
untuk 
pertukaran 
informasi.
Sebagian
spesifikasi
SOAP 
merupakan 
suatu 
peraturan 
bagaimana
menggunakan 
XiW..
untuk 
representasi 
data.    
Sedangkan 
pada 
bagian
lain,  spesifikasi 
SOAP 
merupakan
format
pesan,
konvensi
untuk
representasi 
Remote
Procedure Calls
(RPCs)
dengan
menggunakan format
pesan SOAP, dan
pengikatan
terhadap
protokol
HTTP.
LTntuk  mendukur:g penggunaannya, 
suatu
web
service
juga mempunyai
dokumen
yang 
berisi
tentang 
pesan
yang 
diterima 
serta 
pesan 
yang  dihasilkan, 
yang 
bisa
juga
disebut
web
service contract   
Mekanisme 
standar 
akan
mempermudah 
developer
dan
developer
tools
untuk
membuat
dan
menginterpretasikan
web service
contract.  
Web
Sen,ice 
Description  Lrtnguage
(WSDL)  
merupakan  
suatu 
contract  language 
yang
berbasis XML yang
dikembangkan
oleh kerjasama
Microsoft
dan IBM.
2.
7.
3    Arsitektnr Web Service
Salah
satu
keunggulan
web service
adalah
media
pertukaran
informasinya
melalui
Internet.  
I-Ial 
ini
sangat
mendukung
pemakaian
vveb service
dengan
menggunakan
peralatan-peralatan 
telekomunikasi 
seperti 
di 
handphone, 
yang 
tentunya 
harus
mempunyai 
fasi!itas
WAP.    
Web  service  juga
dapat 
digunakan 
oleh 
aplikasi, 
yang
khusus
pemanfaataiLTlya
menggabungkan
satu
atau
iebih
web
service
lain
secara
lokal
maupun 
me!a!ui
Internet, 
baik
secara 
langsung 
atau  dengan 
menggunakan 
file
HTML
untuk
mendukung
penyampaian
informasi   
Selain
yang
telah
disebutkan
di
atas,
sebuah
web service
juga
dapat
menjadi
suatu
portal
bagi
web service
lain. 
Meskipun
dikatakan
ap!ikasi
client
tida..lc  periu
mengetahui
se!uk
beluk
internal web service
yang
digunakan,
  
banyak 
pengembang 
web  service   pedt:li akan
stmktur  
mlemaf-nya. 
Gam bar 
2. 9 
di
bawah
me:1unjukkan hubungan
web
service 
dengan
pihak
luaL
;·-------.
!
Cod
Gambar
2.9
Arsitektur
aplikasi web
service
  
web  service
dibagi 
mer
adi 
5
!apisan
logika 
(logic  layer).   
Yang
terjauh
dari
client
adalah
data
layer,
disinilah
informasi          
diperlukan 
disin1par:
oleh
web  service.  
Setelah 
itu
terdapat 
lapisar:
datyabi
data
access
layer     
Lapisan
ini
n1enyediakan 
prese:0tasi          
data 
fisik 
bagi 
business  layer.   
Data  access  layer
memastikan 
  
data.     
Business 
logic 
-,veb  
service 
dii:nple:nentasikan 
pada
business
!a;/er.   
  
pada 
ga.-nbar  2. lO  business
layer 
dibagi  menjadi
dua
':lag:aryai!u: 
business  fizcade
dan 
business  logic       
Business  ji1cade
menyediakan
interface
sederhana
yang  
secara
langsung
berhubungan
dengan
operasi
yang
dilak:ukan
web service.   Business facade
menggunakan 
service-service
yang
disediakan 
business
  
         I 1 I
26
n
hi
.
/og
"!
'
"
"'
/
;..
'
I
f'
"
"
Pada
web
serv1ce yang
seder!uma, semua
business  logic 
dapat
diterapkan
ote
,
busme.l:l'facade.
ya:r:g
secara
langsung
a.ican
berinteraksi
dengan
data
access
layer.
ApEkasi-ap!ikasi
client 
berim.eraksi
dengan  web
service 
listener      
Listener
ini
berta'1ggung
jawab 
atas 
penenmaan 
pesan 
y&'1g 
data:r:g yang  berisi 
permintaan  ak&'l
service  yang
&sediaka.'1, memi
ah 
pesan,  dan 
1nerryarnpaikan permintaan 
ke 
method
yang tepat
pada
business
facack.   
Bila
service
memberikan
response,
listener
juga
bertanggungjawab   unt:rk 
menyusun  response-response  dan 
business 
facade  
menjadi
sebuah  
pesan 
dan   mengirimkannya 
kembaii 
ke 
client.     
Listener 
Juga  
menangam
contract docu;-nent
dan
dokumen-dokw.uerr iain ter.."!:ang
web
senJfce.
Setvire
reque:t..
\f\/eb SeP/c:e
e------,
l'
I
I
I
------"'
I
I
[j]
I
I
i.....
.):
Service
re:zpome 
'
::n
c
l
!
8
!
:J) .j
I!::!)
._I
i
r
!h ;
"r'i!l
A1Uf . 
.l-
loL
Al!AL[II   
--+1 ...,,  
9
oi
"'i
1         
ill>'   
r
<!If"
ill>'     "'
•-G_ci_Co_rrr_re_ct
 
+
LI                     
------l
!
li!
1. 
I
,
I
w
I
l_jl,,
l
!
I
!
L
I
..
---l
.
',
Gambar
2.10
Arsitektur web service
  
_,7
2.8
MySQL
:v1ySQL
adalah  
Structured    Query  
Language  
database  
sercer.  
Bahasa
petnrograman
SQL
di
aplikasi
MySQL
me:1ggunakan
lata
bahasa
(>yntax)
SQL
stand?.r.
MySQL
digunakan
karena
merniliki
kecepatan
ya.ng ba;k,
reliabilitas dan kemudahan.
MySQL
mengimplementasikc.n
konsep 
client-server 
yang 
terdiri 
dari 
daemon
mysqld 
dan 
beragam 
jenis 
ap!ikasi
client 
dan  library (Anonymous, 
2001 e). 
MySQL
adalah 
sumber 
perc.ngkat
luna.k
yang 
terbuka 
(open 
source 
software). 
Open 
source
sojt111are  
dapat   diartikan   bahwa   ada   kemungkinan   untck  
pemc lmi 
menambah 
dan
memodifikasi
program tanpa ada kewajiba._'1 Un-::"'..rk 
r:ten bayar
royalti,
Wa!?"t:pun semula   dibuat  
umuk  
platform  
Linu.x
I    
u':NiX,  MySQL 
sudah
noengembangkan
versi
Windowsnya. 
Untuk
dapat 
d!akses
oleh
aplikasi
Wi:tdows
harus
mengg,makan MyODBC
sebagai inte1jirce.