Anda di halaman 1dari 125

TUGAS MATA KULIAH

ARSITEKTUR DAN APLIKASI ENTERPRISE

TEKNIK INFORMATIKA
FAKULTAS ILMU KOMPUTER
UNIVERSITAS BRAWIJAYA

3
DAFTAR ISI

BAB 1 Pengertian, Konsep,Dan Tantangan Arsitektur Aplikasi


Enterprise ........................................................................................... 3
BAB 2 Distribusi sistem informasi ....................................................... 7
BAB 3 Teknik – Teknik Enterprise Architecture................................. 15
BAB 4 Enterprise Aplication Integration (EAI) Middleware ............... 22
BAB 5 Service Oriented Arsitektur .................................................... 33
BAB 6 Arsitektur dan Framework ..................................................... 39
BAB 7 Database For Enterprise......................................................... 47
BAB 8 XML Technology 1 .................................................................. 61
BAB 9 XML Technology 2 .................................................................. 73
BAB 10 Web Service ......................................................................... 80
BAB 11 Web Service Technologies ................................................... 88
BAB 12 Web Service Definition Language (WSDL) ............................ 96
BAB 13 REST Web Services ............................................................. 105
BAB 14 Implementasi WS pada .NET .............................................. 107
BAB 15 Manajemen Proses Bisnis .................................................. 112
BAB 16 Service Composition .......................................................... 117
DAFTAR PENULIS ........................................................................... 124
DAFTAR PUSTAKA .......................................................................... 125

2
BAB 1
Pengertian, Konsep, Dan Tantangan Arsitektur Aplikasi Enterprise
1. Pengetian Aplikasi Enterprice

Definisi Enterprise Menurut kamus “enterprise” berarti: Keberanian


berusaha, kegiatan memulai usaha Perusahaan, firma.

Menurut Developing Enterprise Java Applications with J2EE and UML by


Khawar Zaman Ahmed, Cary E. Umrysh, istilah enterprise mengacupada suatu
organisasi atau individu sebagai suatu kesatuan, yangbekerja bersama-sama
untuk mencapai beberapa tujuan umum.Enterprise berkaitan erat dengan
B2B (Business to Business ) danB2C (Business to Customer). Kata enterprise
biasa digunakan untukmenyebut perusahaan dalam skala besar, seperti
Microsoft, Intel,Yahoo!, atau Ebay.

- Elemen Enterprise
Enterprise / Perusahaan mempunyai delapan elemen yaitu :
1. Masyarakat Keuangan
2. Pemerintah
3. Masyarakat Global
4. Pemasok
5. Pelanggan
6. Pesaing
7. Pemegang saham/Pemilik Global
8. Serikat Buruh

- Defenisi Apikasi Enterprise


Aplikasi Enterprise adalah aplikasi / perangkat lunak yang dapat
digunakan untuk menyelesaikan masalah perusahaan dan elemen –
elemennya dan biasanya dibuat dengan Arsitektur Perangkat Lunak
Enterprise. Berikut adalah gambaran dari arsitektur aplikasi enterprise :

3
Gambar 1.1 Arsitektur Aplikasi Enterprise

2. Enterprise Software & Enterprise Application


A. Enterprise Software
Enterprise Software adalah software pengorganisasian logika untuk inti
proses bisnis suatu perusahaan dan kemampuan IT dalam serangkaian
prinsip, kebijakan dan pilihan teknis untuk mencapai standarisasi bisnis
dan model integrasi operasi suatu perusahaan.

B. Enterprise Application

Kebutuhan dari aplikasi enterprise adalah sebagai berikut :

 Mengintegrasikan customer support dan in house


productknowledge melalui WEB.
 Dengan menghubungkan semua mesin-mesin server dan
datamelalui internet secara online, marketing perusahaan itu
akanbertambah baik karena bisa menjangkau
pelangganpelanggan darimana-mana.
 Perusahaan akan menghemat biaya sales manajemen
danmempermudahnya, disamping itu dapat meraih pasar
baru.
 Enterprise software dapat membantu pekerjaan para pekerja
diperusahaan sehingga mempermudah, mempercepat
pekerjaan,mengefisiensikan pekerja, sekaligus memperkecil
biayapengeluaran perusahaan.

Contoh penerapana aplikasi enterprise adalah payroll (penggajian),


patient records (daftar pasien rumah sakit), shipping tracking (data

4
pengiriman barang), cost analysis (analisis keuangan), credit scoring
(analisis penerimaan kredit), insurance (asuransi), supply chain
(pemenuhan kebutuhan), accounting (akuntansi), customer service, and
foreign exchange trading (valas).

Ciri – ciri aplikasi enterprise :

 Butuh persistent data, karena data digunakan secara


bersama olehbanyak aplikasi, bahkan digunakan untuk
jangka waktu yang lama.Walaupun sangat mungkin terjadi
perubahan sistem perusahaan,data tidak boleh berubah.
 Enterprise application menghandle data yang sangat
besar.Dulu digunakan konsep file system (standalone)
sekarangdigunakan databaserelasional.
 Memiliki banyak macam user interface di masing-masing
client
 Bagaimana agar seluruh data yang ada dapat
direpresentasikan keseluruh user dengan semudah mungkin
dan bermacam-macamuser interface tergantung
kebutuhannya.
 Butuh terintegrasi dengan aplikasi lain.
 Mampu memisahkan business logic dengan presentasi

3. Tantangan Enterprise Application


 Hardware yang masih mahal, yang mungkin juga tidak
(belum)berkembang sesuai keadaan dan kebutuhan sekarang.
 Kesulitan mencari pekerja yang dapat memiliki kemampuan kerjayang
baik, dan dapat mengikuti perkembangan teknologi.
 Kesulitan dalam pembuatan software yang mampumengintegrasikan
seluruh sistem dan bersifat “Distributed Software ”. (Distribution )
 Adanya multiple vendor juga mempersulit pembuatan program.(Vendor
Diverse )
 Contohnya: Perusahaan A menggunakan SQL Server dan
klienperusahaan A menggunakan Oracle. Dalam hal ini
dibutuhkansuatu software yang mampu mengatasi “lintas
vendor”.
 Adanya kebutuhan keamanan sistem dan integritas data.(Security )
Misalnya:
 Mampu menghandle “system failure” dengan “system
failurerecovery”
 Rollback transaction untuk transaksi yang salah atau batal
 Transaction locking yang mampu mengatasi keamanan
data.Contohnya pada saat ada transaksi yang hampir bersamaan.
 Mampu menghandle “multi user situation”.

5
 Menjaga kekonsistensian data walau ada error, delay, dantransaksi yang
jauh.

4. Pengukuran Enterprise Application


 Respone Time adalah total waktu yang dibutuhkan sistem untuk
memproses sebuah request dari luar ke sistem tersebut. Mungkin sebuah
aksi terhadap UI, atau sebuah pemanggilan API.
 Responsiveness adalah seberapa seberapa cepat sistem mengenali
mengenali sebuah request sebagai sesuatu untuk diproses dan kemudian
mengembalikan feedback walaupun proses belum selesai.
 Latency adalah waktu minimum yang dibutuhkan untuk mendapatkan
segala bentuk response.
 Throughput adalah berapa hasil yang diperoleh dalam suatu satuan
waktu tertentu. Misalnya :
 Jika kita mengukur mengukur copy file, throughput copy file,
throughput diukur dalam berapa bytes per second.
 Untuk enterprise applications pengukuran berdasarkan
transactions per second (tps), tapi masalahnya bergantung pada
kompleksitas transaksi.
 Capacity adalah indikasi seberapa maximum dari throughput.
 Load adalah tingkat tekanan / stress sebuah sistem.
 Misalnya diukur dengan berapa banyak user yang sedang
terhubung saat itu
 Misalnya response time untuk suatu request pada saat peak
adalah 0.5 seconds dengan 10 users dan 2 seconds dengan 20
users.
 Load sensitivity adalah bagaimana response time bervariasi dengan load.
 Misalnya sistem A memiliki response time 0.5 seconds untuk 10 -
20 users dan sistem B memiliki response time 0.2 seconds untuk
10 users yang naik menjadi 2 seconds untuk 20 users.
 Efficiency adalah performa dibagi dengan resources.
 Misalnya sebuah sistem yang memiliki 30 tps pada 2 CPU akan
lebih efisien dibanding dengan sebuah sistem yang memiliki 40
tps pada 1 CPU.
 Scalability adalah ukuran bagaimana penambahan resources (biasanya
hardware) mempengaruhi performance. Terdiri dari 2, yaitu :
 Vertical scalability atau scaling up, berarti menambahkan lebih
banyak tenaga terhadap single server, seperti penambahan
memory.
 Horizontal scalability atau scaling out, berarti menambahkan
lebih banyak server.

6
BAB 2
Distribusi sistem informasi
2.1 Evolusi Enterprise Application
 Pada awalnya aplikasi enterprise masih menggunakan sistem Centralized
Approach yaitu kebutuhan untuk setiap user view diubah menjadi
sekumpulan kebutuhan.
- Hanya menggunakan satu sistem untuk semua proses yang
dibutuhkan
- Memiliki batasan scalabilitas fisik dan batas aksesibilitas
 Bersifat single-tier dimana presentasi, logic bussines, code, dan datttaaa
menjadi satu dan tidak terpisah
 Namun dari singllle-tire memlikiki kekurangggan, yaitu
- Tidak bisa merubah hanya salah satu komponen saja karna
dapat mempengaruhi komponen lainya
- Tidak bisa melakukan reusable atau pengalihan fungsi dari
setiap komponen
 Beberapa contoh dari Enterprise Application :
- Payroll
- Patient record
- Shipping tracking
- Cost analysis
- credit scoring
- supply chain
 namun sekarang aplikasi enterprise lebih bersifat Distributed Approach
yaitu dimana sebuah sistem bersifat lebih tersebar dan multiproses,
sistem
Distributed Approach memiliki dua sifat :
- On Demand Software : software dapat mendukung
terdistribusi sehingga dapat diakses dimana saja melalui
internet
- Software as a Service : software menjadi server yang bertugas
melayani customer melalui internet
- Multi-tier : presentasi, logic, bussines, dan data terpecah
menjadi beberapa komponen

2.2 Keberagaman mekanisme komunikasi


 Komunikasi adalah sebuah proses penyampaian informasi dari satu pihak
kepada pihak lainnya dimana proses komunikasi dapat dilakukan kepada
orang, kelompok, dan masyarakat.

7
 Komunikasi memiliki beberapa komponen yang menjadikan komunikasi
berjalan dengan baik, yaitu :
- Pengirim (sender) yang mengirimkan pesan
- Pesan (message) berupa hal yang akan disampaikan
- Saluran (Channel) media untuk mengirimkan pesan
- Penerima (receive) pihak yang menerima pesan
- Umpan balik (feedback)
 Protokol adalah sebuah aturan yang mengatur dan mengijinkan
terjadinya suatu hubungan, komunikasi, dan perpindahan suatu data
 Untuk membantu proses komunikasi antar komputer dari vendor yang
berbeda ISO (International Standards Organization) membuat suatu
arsitektur kominikasi yang dikenal sebagai OSI ( Open System
Interconnection).
 Model OSI tersebut terdiri dari beberapa layer yaitu
- Physical Layer
- Data Link
- Network
- Transport
- Session
- Presentation
- Application

2.3 Layering
 layering adalah teknik umum yang biasa digunakan oleh para Software
Designer untuk menyelesaikan sebuah sistem kedalam bagian-bagian
yang lebih sederhana
 contoh layering : Layer pada OSI dan TCP/IP
 ketika sistem terpecah didalam layer, maka principal subsystem dalam
software akan diatur dalam layer juga dimana setiap layer nantinya upper
layer akan bergantung pada lower layer(layer terendah)
 dalam penggunaan Layering terdapat beberapa kelebihan dan kelemahan
 Kelebihan
- Tidak perlu mengetahui layer-layer lainnya cukup hanya satu
single layer saja
- Dapat mengganti layer-layer dengan aplikasi lain yang memiliki
implementasi service dasar yang sama
- Dapat meminimalisir ketergantungan antar layer
- Sangat mendukung standarisasi
- Dapat menggunakan bermacam-macam service lainnya
setelah layer terbentuk
 Kelemahan

8
- Dapat menambah kompleksitas proses karena terdiri dari
beberapa layer jadi setiap layer harus memiliki fungsi masing-
masing dan prosesnya harus melalui setiap layer tanpa
melewatkan satu layerpun agar dapat menghasilkan output
- Layer mengekapsulasi fingsinya sehingga tidak dapat diketahui
secara detail
- Dapat terpengaruh oleh salah satu layer yang bermasalah
 Layer memiliki beberapa prinsip yang digunakan yaitu:
 Presentation logic : menghandle interaksi antara user dan
software
ex : simple command-line, rich-client graphics UI
 Data source logic : mengatur komunikasi antar sistem yang
mengerjakan tugas yang berkaitan dengan kepentingan aplikasi
ex :Database, XML, text
 Domain logic : mengatur aturan bisnis suatu aplikasi
ex : kalkulasi berdasarkan input data

2.4 Komunikasi middleware


 Middleware adalah software yang menghubungkan bagian-bagian pada
sebuah aplikasi atau rangkaian aplikasi
 Middleware berupa sebuah aplikasi yang secara logic berada diantara
layer aplikasi dan lapisan data dari sebuah arsitektur layer-layer
 Middleware dari segi programming abstractions dianggap sebagai kunci
utama dalam mempermudah pembuatan software development bagi
para software developers
 Beberapa hal yang bisa dilakukan programming dengan abstraction yaitu :

9
- Menyembunyikan detail dari hardware/platform
- Menyediakan building blocks yang kuat
- Mengurangi error pada proses programming
- Mengurangi biaya pengembangan dan pemeliharaan
 Ada beberapa contoh proses dalam penggunaan middleware yaitu :
a) Remote Communication mechanisms (RCM)
Ex : Web service, COBRA, java RMI, DCOM
b) event notification and messaging service
Ex : Java Messaging Service
c) transaction services
Ex : TP Monitor
d) naming service
Ex : Naming, LDAP
e) database connectivity
Ex : JDBC, ODBC

2.5 Transactions
 Transaction Processing System (TPS) adalah sebuah sistem yang
menjadi pintu utama dalam pengumpulan dan pengolahan data
padasuatu organisasi
 Sistem ini berinteraksi langsung dengan sumber data
 Tugas utama dr TPS yaitu mengumpulkan dan mempersiapkan data
untuk keperluan sistem informasi yang lain dalam organisasi misalnya
untuk kebutuhan sistem informasi manajemen

 Ada 2 metode dalam pengolahan transaction yaitu :


- Batch Processing
Yaitu suatu bentuk pengolahan data dimana transaction
yang terakumulasi selama periode waktu diproses sebagai satu
kesatuan
- Online Transaction process (OLTP)

10
Suatu bentuk pengolahan data dimana setiap transaction
diproses segera, tanpa penundaan transaction yang terakumulasi
dalam batch
 Tujuan TPS adalah :
1. Capture, proses, dan update database dibutuhkan untuk
mendukung kegiatan transaction
2. Memastikan data telah diproses dengan akurat
3. Menghindari memproses transaksi penipuan
4. Menghasilka laporan tepat waktu
5. Mengurangi kebutuhan tenaga kerja administrasi
6. Membantu meningkatkan layanan pelanggan
 Komponen transaction terdiri dari :
- Volume yang diproses relatif besar
- Kapasitas database besar
- Kecepatan pengolahan tinggi
- Sumber data umumnya internal
- Pengolahan data periodik
- Orientasi data yang dikumpulkan mengacu pada data masa lalu
- Dan komputasi tidak terlalu rumit
 Komponen pemrosesan transaction
1. Input
- Input adalah dokumen sumber yang dapat berupa
formulir atau bukti transaksi
- Tujuan formulir dibuat untuk mencatat tindakan yang
telah dilakukan
2. Proses
- Dalam sistem manual. Proses terdiri dari kegiatan
pemasukan data kedama jurnal
- Dalam sistem komputer, proses dilakukan dengan
memasukan data kedalam file transaksi
3. Penyimpanan
- Media penyimpanan dari transaksi secara manual di
sebut buku besar
- Proses pemasukan data dari jurnal kedalam buku besar
disebut POSTING
- Untuk sistem komputer, posting dilakukan dengan
mengupdate file master menggunakan file transaksi
4. Keluaran
- Ada beberapa macam jenis keluaran dari proses yang
telah dihasilkan, yaitu laporan keuangan, laporan
operasional, dokmen pengiriman, dsb

11
2.6 Middleware dan sinkronisasi
A. Kategori dari middleware
1. Remote Procedure Call (RPC based middleware
Adalah sebuah metode yang memungkinkan kita untuk
mengakses sebuah prosedur yang berada pada komputer lain
dengan cara pendekatan kesebuah server yang membuka socket
lalu menunggu client yang meminta prosedure yang tersedia oleh
server, bila client tidak mengetahui port mana yang harus
dihubungkan maka client bisa merequest kepada sebuah
matchmarker pada RPC port

2. Message Oriented middleware (MOM-based middleware)


 Adalah sebuah pesan yang dikirim ke client dikumpulkan dan
disimpan sampai ditindaklanjuti, sementara client terus dengan
pengolahan lainnya
 MOM-based mendukung asynchronous model message berbasis
protocol TCP/IP
 MOM-based memiliki kemampuan message queue, storage,
routing message (pengirim pesan lebih dari satu penerima), dan
transformasi pesan ke format standard secara otomatis
 MOM-based memiliki dua basic model
- Point to point
- Publish/subscribe

12
B. Sinkronisasi
 Blocking or Synchronous interaction
 Traditionally, information systems use Blocking calls :
The client sends a request to a service and waits for a
response of the service to come back before continuing doing
its work
 Synchronouss interaction requires both parties to be on-line :
The caller makes a request, the receiver gets the request,
processes the request, send a response, the caller receives the
response

 Disadvantages of synchronous :
- Connect overhead
- Higher probability of failures
- Difficult to identify and react to failures
- It is s one-to-one system, it is not really practical for
nested calls and complex interactions
 Failures in synchronous calls
 if the client or the server fail, the context is lost and
resynchronization might be difficult
- if the failure occurred before 1, nothing has happened
- if yje failure occurs after 1 but before 2 then the
request is lost
- if the failyre happens after 2 but before 3, side effects
may cause inconsistencies
- if the failure occurs after 3 but before 4, the response
is lost but action has been performed

13
14
BAB 3
Teknik – Teknik Enterprise Architecture
A. ORGANIZING BUSINESS LOGIC
Terdapat tiga metode untuk mengorganisir bisnis logic, yaitu:
1. Transaction Script
Transaction script merupakan script yang digunakan untuk menghandle aksi-
aksi yang dilakukan user baik dalam bentuk fungsi/prosedur. Transaction script
mengambil input dari presentation layer untuk diproses menggunakan validasi
serta kalkulasi, selain itu transaction script juga menyimpan data dalam sebuah
database dan melakukan operasi dari sistem lain.

Contoh dari transaction script yaitu script untuk check out barang, menampilkan
status delivery dll.

Kelebihan dan kekurangan dari Transaction Script


Kelebihan:
 Merupakan prosedur yang sederhana serta mudah dimengerti para
developer
 Mudah untuk digunakan serta digabungkan dengan data source layer.
Penggabungan ini menggunakan database gateway.
 Batas transaksi dari transaction script mudah untuk dibatasi. Yaitu dari
opening transaction lalu diakhiri dengan closing transaction.

Kekurangan
 Tidak cocok digunakan untuk domain logic yang komplek karena tidak
dikelompokkan berdasarkan domain masalah.
 Ketergantungan satu transaksi dengan transaksi lain tinggi.
 Duplikasi kode dapat terjadi.

2. Domain Model
Domain model merupakan suatu sistem dengan pendekatan berorientasi objek
untuk mengorganisir bisnis logik. Pada domain model, domain permasalahan

15
harus dijadikan dalam bentuk model. Semua logika yang ada harus dimasukkan
kedalam method dari objek yang telah dibuat.

Perbedaan Transaction Script dengan Domain Model


Pada Transaction Script dan Domain model terdapat perbedaan dalam segi
pendekatannya. Transaction Script menggunakan pendekatan berorientasi
method/fungsi. Seluruh logic yang ada dijadikan satu di dalam fungsi serta tidak
memperhatikan domain masalah. Sedangkan pada Domain Model
menggunakan pendekatan berorientasi objek dimana seluruh logic yang ada
dibuat dalam bentuk objek kemudian dikelompokkan berdasarkan domain
permasalahan yang terkait.

3. Table Module
Table Module merupakan sistem pengorganisasian bisnis logic menggunakan
class dan objek seperti Domain Model

Perbedaan Domain Model dengan Table Module


Pada Domain Model memiliki 1 instansiasi untuk setiap kelas di dalam database.
1 tabel di dalam database di representasikan dengan 1 class. Sedangkan pada
table module hanya memiliki 1 instansiasi saja untuk seluruh class yang ada.
Table module bekerja dengan record set/result set/data set. Setiap 1 database
akan di representasikan oleh 1 class.
Pendekatan untuk menghandle bisnis logic:

- Service Layer: digunakan ketika menggunakan Domain Model atau Table


Module. Service layer beraksi seperti API service.
- Domain Layer: digunakan ketika menggunakan Transaction Script. Lebih dekat
dengan data layer.

B. MAPPING TO RELATIONAL DATABASE


Untuk dapat menghubungkan business logic dengan database maka akses SQL dari
business logic harus dipisahkan dan ditempatkan dalam kelas yang terpisah karena
SQL tidak seragam. Contoh: membuat satu class untuk mewakili satu table. Class
yang telah dibuat tersebut akan membentuk database gateway ke dalam table
sehingga programmer tidak harus mengetahui tentang SQL. Selain itu bisa
menggunakan Object Relational Model seperti LINQ, Subsonic, Hibernate.

16
Model Pengaksesan data:
1. Row Data Gateway: memilikai satu instansiasi dalam setiap baris.
2. Table Data Gateway: memiliki sati instansiasi dalam setiap table.

Object Relational Mapping (ORM)

Adalah teknik memetakan database menggunakan object yang pertama populer di


Java kemudian diikuti oleh bahasa lainnya seperti .NET . ORM menjembatani antara
OOP dengan RDBMS.

KELEBIHAN ORM
Kelebihan dari ORM yaitu dapat memisahkan kode SQL dari logika aplikasi dengan
cara dibungkus menggunakan method dan class. Selain itu juga dapat
mempermudah untuk proses maintenance program serta dapat menghindari
ketergantungan aplikasi dari vendor database. Kode SQL dapat di generate oleh
sebuah aplikasi untuk berbagai macam database. Hal ini dapat menghindarkan
programmer dari kode SQL yang bermacam-macam. Pada source code tidak terdapat
kode SQL sehingga baris kode menjadi lebih sedikit.

CARA KERJA
Pada ORM, database akan terlebih dahulu dipetakan menggunakan Plain Object Java
Object. Kemudian proses CRUD akan dilakukan menggunakan Data Access Object.

CONTOH CODE ORM DAN NON ORM

CODE ORM

17
CODE NON ORM

C. WEB PRESENTATION
PRESENTATION MODEL
Interaksi user interface (UI) dibagi menjadi tiga bagian yaitu Model, View, serta
Controller.
1. MODEL
Model berupa non-visual object yang digunakan untuk menampilkan informasi
yang berhubungan dengan domain data dan tingkah lakunya. Serta digunakan
untuk mengatur business policies dan database.
2. VIEW
View merupakan representasi dari layout sebuah model yang berinteraksi
dengan user. View juga dapat merepresentasikan data dalam tampilan tertentu.
3. CONTROLLER
Controller digunakan untuk mengatur segala permintaan atau perubahan yang
terjadi terhadap suatu informasi atau data akibat adanya aksi tertentu.
Controller mengambil inputan user kemudian memanipulasinya dan meminta
view untuk mengupdate data tersebut.

Contoh hubungan antara Model-View-Controller

18
Contoh hubungan antar class dan fungsinya pada MVC

MVC memisahkan presentasi dari model. Presentasi dan model memiliki fokus serta
ketergantungan yang berbeda. Presentasi lebih berfokus ke tampilan, sedangkan
model lebih berfokus ke data. Serta presentasi bergantung pada model, akan tetapi
model tidak bergantung pada presentasi. Oleh karena itu kita dapat
mengembangkan berbagai presentasi menggunakan 1 model yang sama. Selain itu
MVC juga memisahkan controller dari view.
 Page Controller
Page controller merupakan object/controller yang digunakan untuk
menghandle sebuah request untuk page yang spesifik atau aksi yang didapat
dari sebuah website. Contoh: ketika terdapat page untuk menginputkan nama
serta menampilkan nama yang telah diinputkan. Pada saat pengguna
menginputkan nama lalu mengeklik tombol submit maka pada saat itu lah
terjadi aksi ataupun request untuk memproses data berupa nama untuk
kemudian ditampilkan pada page ersebut.
 Front Controller
Front Controller merupakan controller yang menghandle segala macam request
dari aksi yang dijalankan untuk sebuah website
 Template view
Template view digunakan untuk merender informasi yang didapat dari sebuah
request ke dalam sebuah halaman web. Ketika request dari sebuah aksi
diterima, maka markup(tanda-tanda) yang ada didalamnya akan diganti dengan
hasil komputasi untuk kemudian ditampilkan ke dalam halaman web. Contoh:
page untuk menampilkan hasil perhitungan berat badan ideal.
 Transform View
Transform View merupakan sebuah view yang digunakan untuk memproses
domain data serta elemen-elemen dan merubahnya ke dalam bentuk HTML.
Proses transformasi ini tidak dilakukan ke semua domain data, melainkan hanya
pada elemen yang diperlukan saja.

19
D. CONCURRENCY
Permasalahan yang terjadi ketika terdapat dua atau lebih proses yang mengakses
data/informasi yang sama yaItu terjadinya Lost Update serta Inconsistent Read.
Kondisi ini akan berdampak menjadi Race Condition.
 Lost Update
Ketika terdapat dua atau lebih update data, maka yang terakhir melakukan
update lah yang akan mengupdate.
 Inconsistent Read
Kondisi dimana ketika terdapat dua atau lebih pembacaan data yang dilakukan
dengan salah satu pembacaan data disertai dengan proses penyimpanan data,
maka pembacaan data menjadi tidak konsisten.

TRANSACTION
Transaction (transaksi) yang terjadi harus memiliki beberapa sifat dibawah ini:
 Atomicity
Kondisi dimana setiap langkah dalam suatu waktu tidak boleh dilakukan
bersamaan ataupun terjadi interupt dan harus bergantian. Dalam artian ketika
terdapat suatu kejadian, maka kejadian tersebut harus diselesaikan terlebih
dahulu kemudian dilanjutkan dengan kejadian berikutnya.
 Consistency
Kondisi dimana sumber daya sistem tidak boleh corrupt dan harus konsisten
sampai transaksi yang dilakukan selesai.
 Isolation
Hasil dari suatu transaksi yang dilakukan tidak diperbolehkan diketahui oleh
proses atau transaksi yang lain sampai hasil tersebut telah berhasil di commit.
 Durability
Hasil dari suatu transaksi yang telah di commit harus bersifat permanen dan
harus bisa melakukan recorvery(perbaikan) ketika terjadi crash.

STATELESS DAN STATEFUL SERVER


Stateless server adalah ketika server tidak pernah menyimpan data/informasi dari
request yang didapat setelah proses respon berakhir. Sedangkan stateful server
menjaga semua statenya ketika menunggu user menyelesaikan requestnya.

E. SESSION
Session merupakan server object yang berfungsi untuk menyimpan semua
data/informasi user dalam suatu waktu tertentu. Session yang dimiliki oleh setiap
user berbeda-beda. Session yang telah di commit disebut sebagai record data.

PENYIMPANAN SESSION
1. Client Session State

20
Pada client sessiont state penyimpanan data serta informasi user disimpan pada
sisi client. Biasanya penyimpanan session tipe ini hanya digunakan untuk data
yang kurang penting serta berukuran kecil seperti cookies dan hidden field.
2. Server Session State
Pada server session state penyimpanan data serta informasi user disimpan di
memori server pada saat request dilakukan. Penyimpanan session tipe ini sulit
untuk menangani crash pada sebuah sistem. Contoh: session object dengan
session_id
3. Database Session State
Pada database session state penyimpanan data serta informasi user disimpan
pada database. Penyimpanan session tipe ini lebih komplek daripada tipe
lainnya, namun pada tipe ini sudah dapat mengatasi crash yang terjadi pada
sistem.

21
BAB 4
Enterprise Aplication Integration (EAI) Middleware
Ketika merenungkan EAI dalam organisasi Anda, Anda harus terlebih
dahulu memahami jumlah dan isi dari proses bisnis dan data dalam
organisasi Anda. TI juga perlu memahami bagaimana proses bisnis
tersebut otomatis (dan kadang-kadang tidak otomatis) dan pentingnya
semua proses bisnis. Tergantung pada perusahaan Anda, ini mungkin
menuntut sejumlah besar waktu dan energi. Banyak organisasi mencari
metodologi baru untuk membantu mereka dalam proses ini dan melihat
secara dekat praktik terbaik.

Singkatnya, organisasi harus memahami kedua proses bisnis dan data.


Mereka harus memilih yang memproses dan elemen data memerlukan
integrasi. Proses ini dapat mengambil beberapa dimensi, termasuk:
• Tingkat Data
• Level Interface Aplikasi
• Tingkat Metode
• Tingkat User interface

Meskipun buku ini termasuk bab yang ditujukan untuk setiap jenis
EAI, gambaran singkat dari berbagai jenis yang disediakan di sini.

Data tingkat EAI adalah proses - dan teknik dan teknologi -


memindahkan data antara menyimpan data. Hal ini dapat digambarkan
sebagai penggalian informasi dari satu database, mungkin memproses
informasi yang diperlukan, dan memperbarui itu dalam database lain.
Sementara ini terdengar langsung dan mudah, dalam sebuah perusahaan

22
yang khas EAI-diaktifkan, mungkin berarti menggambar dari sebanyak
seratus database dan beberapa ribu tabel. Hal ini juga dapat mencakup
transformasi dan penerapan logika bisnis dengan data yang sedang
diambil dan dimuat.

Keuntungan dari data tingkat EAI adalah biaya menggunakan


pendekatan ini. Karena kita sebagian besar meninggalkan aplikasi saja,
dan tidak mengubah kode, kita tidak perlu mengeluarkan biaya yang
berubah, pengujian, dan menggunakan aplikasi. Terlebih lagi, teknologi
yang menyediakan mekanisme untuk memindahkan data antara
database, serta memformat informasi, relatif murah mengingat tingkat
lain EAI dan teknologi yang memungkinkan diterapkan mereka.

Selain mereplikasi dan memformat ulang data antara dua atau


lebih database, kita juga memanfaatkan software federasi database
untuk mendukung database-tingkat EAI. software Data federasi
memberikan EAI arsitek dan pengembang dengan kemampuan untuk
melihat banyak database fisik yang berbeda, tidak peduli merek atau
model, sebagai database dan database logis model tunggal. Pendekatan
dan teknologi yang memungkinkan Anda memanfaatkan tergantung pada
persyaratan dari domain masalah.

Antarmuka tingkat aplikasi EAI mengacu pada leveraging dari


antarmuka terpapar oleh adat atau aplikasi dikemas. Pengembang
memanfaatkan antarmuka ini untuk mengakses kedua proses bisnis dan
informasi sederhana. Menggunakan antarmuka ini, pengembang dapat
bundel banyak aplikasi bersama-sama, yang memungkinkan mereka
untuk berbagi logika bisnis dan informasi. Satu-satunya keterbatasan
yang dihadapi pengembang adalah fitur khusus dan fungsi antarmuka
aplikasi.

Jenis EAI yang paling berlaku untuk aplikasi dikemas seperti SAP,
PeopleSoft, dan Baan, yang semua mengekspos antarmuka ke dalam
proses dan data mereka, tetapi melakukannya dengan cara yang sangat
berbeda. Untuk mengintegrasikan sistem mereka dengan orang lain di
perusahaan, kita harus menggunakan antarmuka ini untuk mengakses
kedua proses dan data, mengekstrak informasi, tempatkan dalam format
dimengerti oleh aplikasi target, dan mengirimkan informasi. Sementara

23
berbagai jenis teknologi dapat melakukan hal ini, broker pesan
tampaknya menjadi solusi pilihan.

Metode-tingkat EAI adalah berbagi logika bisnis yang mungkin


ada dalam perusahaan. Misalnya, metode untuk memperbarui catatan
pelanggan dapat diakses dari sejumlah aplikasi, dan aplikasi dapat
mengakses metode masing-masing tanpa harus menulis ulang setiap
metode dalam aplikasi masing-masing.

Mekanisme untuk berbagi metode antara aplikasi banyak,


termasuk objek terdistribusi, server aplikasi, TP (pemrosesan transaksi)
monitor, kerangka kerja, dan hanya menciptakan aplikasi baru yang
kombinasi dari dua atau lebih aplikasi. Ada dua pendekatan dasar: Anda
dapat membuat satu set bersama server aplikasi yang ada pada server
fisik bersama, seperti server aplikasi, atau Anda dapat berbagi metode
yang sudah ada di dalam aplikasi yang menggunakan didistribusikan
teknologi metode-sharing seperti objek terdistribusi.

Metode-tingkat EAI adalah sesuatu yang kita sudah berlatih


selama bertahun-tahun karena kami berusaha untuk menggunakan
kembali upaya pengembangan aplikasi dalam perusahaan. Kami sudah
tidak banyak berhasil karena kedua masalah manusia dan teknologi.
Mungkin dengan EAI, kita mungkin bisa melakukannya dengan benar.

User interface-tingkat EAI adalah pendekatan yang lebih primitif,


tapi tetap diperlukan,. Menggunakan skenario ini, arsitek dan
pengembang dapat bundel aplikasi dengan menggunakan antarmuka
pengguna mereka sebagai titik umum integrasi (juga dikenal sebagai
menggores layar). Sebagai contoh, aplikasi mainframe yang tidak
menyediakan database-atau akses bisnis proses-tingkat dapat diakses
melalui antarmuka pengguna aplikasi.

Meskipun banyak yang menganggap memanfaatkan antarmuka


pengguna sebagai titik integrasi untuk menjadi pendekatan yang tidak
stabil dan kuno, faktanya adalah bahwa kita telah melakukan ini selama
bertahun-tahun dan telah bekerja di luar banyak masalah, seperti kinerja,
kehandalan, dan skalabilitas. Meskipun tidak disukai, mungkin satu-

24
satunya solusi yang Anda miliki dalam banyak hal. Ingat, EAI pada intinya
adalah kemampuan untuk memanfaatkan sistem yang ada dengan
mencari yang handal point-of-integrasi. Ada 3270 antarmuka middleware
yang biasanya dibundel dengan emulator adalah teknologi yang
memungkinkan untuk melayani antarmuka tingkat pengguna EAI.

◦ From middleware to Application Integration

Pada hari sebelumnya, perusahaan membeli solusi


perangkat lunak seperti SAP, PeopleSoft, Oracle ERP, IDEdwards,
Siebel dll dan mereka solusi perangkat lunak akan bekerja dengan
baik secara individu tetapi menciptakan silo informasi. Dalam
banyak kasus, setiap sistem individu menghasilkan informasi yang
berlebihan. Ketika informasi umum berubah, kami memperbarui
informasi dalam setiap sistem manual dan proses menjadi sulit
untuk menangani. Pada akhirnya beberapa data di seluruh sistem
menjadi tidak konsisten. Ketika orang melihat inkonsistensi yang
mengakibatkan data dan entri data ganda, mereka memutuskan
untuk melihat ke dalam cara-cara untuk mengintegrasikan sistem.
Dari EAI bahwa (Enterprise Application Integration)
dikembangkan.

EAI memungkinkan arus informasi di seluruh sistem yang


berbeda. Dengan menghubungkan proses yang berbeda,
perangkat lunak dan perangkat keras dari banyak perusahaan
dapat menjadi salah satu sistem perusahaan. Moto utama dari
Aplikasi Enterprise Integrasi adalah untuk menyingkat upaya yang
diperlukan untuk merancang dan coding. Dan memungkinkan
penggunaan kembali konfigurasi atau kode untuk sistem baru. Ini
mengurangi biaya pemeliharaan dan kesulitan dari custemers.

◦ EAI Middleware

Middleware adalah istilah umum untuk setiap program


yang berfungsi untuk "lem bersama-sama" atau mediasi antara
dua program terpisah dan biasanya sudah ada. Sebuah aplikasi
umum dari middleware adalah untuk memungkinkan program
yang ditulis untuk akses ke database tertentu (seperti DB2 atau

25
SQLServer) untuk mengakses database lain (seperti VSAM, IMS,
Oracle, Adabas), atau bahkan aplikasi seperti SAP tanpa perlu
kustom coding.

Middleware umumnya dikenal sebagai "pipa" dari suatu


sistem informasi seperti rute data dan informasi secara transparan
antara sumber data back-end yang berbeda dan aplikasi pengguna
akhir. Ini tidak seksi - biasanya tidak memiliki banyak jika ada
terlihat front-end sendiri - tapi itu adalah komponen penting dari
infrastruktur IT karena memungkinkan sistem yang berbeda untuk
bergabung bersama dalam kerangka umum.

Middleware menyembunyikan kompleksitas sistem operasi


yang mendasari dan jaringan untuk memfasilitasi integrasi yang
mudah dari berbagai sistem dalam perusahaan. Pengembang,
secara umum, berurusan dengan API pada setiap sistem, dan
middleware menangani berlalunya informasi melalui sistem yang
berbeda atas nama aplikasi. API ini adalah tujuan umum data
pergerakan atau proses doa mekanisme. Mereka biasanya tidak
tahu mana aplikasi dan database mereka mengikat bersama-
sama. Pengembang harus membuat link untuk middleware;
Namun, kita bergerak ke arah yang lebih plug-and-play set solusi
di mana middleware ini mampu mengintegrasikan aplikasi cerdas
dengan sedikit atau tanpa pemrograman.

Middleware menyediakan pengembang dengan cara


mudah untuk mengintegrasikan sumber daya eksternal
menggunakan seperangkat layanan aplikasi. sumber eksternal
mungkin termasuk server database, antrian, terminal 3270,
Enterprise Resource Planning (ERP) aplikasi, kustom API, atau
akses ke informasi real-time. Dalam dunia komputasi terdistribusi,
middleware biasanya merupakan sarana untuk menghubungkan
klien ke server, klien untuk klien, dan server ke server tanpa harus
menavigasi melalui banyak sistem operasi, jaringan, atau lapisan
sumber daya server.

26
◦ Teknologi web untuk integrasi aplikasi;

Sebagai kompleksitas sistem informasi meningkat,


pembangunan harus disederhanakan. Ini membawa bunga di
Enterprise Application Integration (EAI). Namun, perusahaan
harus melengkapi EAI dengan layanan bisnis dan cara yang
fleksibel untuk mengakses dihasilkan, aplikasi yang terintegrasi.

Arsitektur berbasis antarmuka saat ini alamat ini


kebutuhan yang meningkat untuk akses fleksibel untuk layanan
bisnis dan kemandirian klien. arsitektur berbasis antarmuka
mencakup teknologi seperti layanan web, J2C Connector
Architecture (JCA; lihat Topik terkait untuk informasi lebih lanjut)
dan Java Message Service (JMS). Mereka juga termasuk semua
variasi pola perintah, yang mengisolasi kode klien dari
pelaksanaan layanan bisnis. Anda dapat menghubungi kerangka
doa tersebut dari EAI middleware, dan sebaliknya.

Kita pertama membahas karakteristik utama dari setiap


teknologi antarmuka, dan kemudian persyaratan yang
menyarankan satu atau yang lain. Setelah membaca artikel ini,
Anda akan memahami bagaimana posisi berbagai teknologi dan
bagaimana memilih di antara mereka untuk implementasi
tertentu.

o Web Technologies for Application Integration

Layanan web adalah implementasi Arsitektur Services


Oriented (SOA). Sebuah SOA memiliki tiga pihak: penyedia,
broker, dan pemohon, yang longgar ditambah. provider
menawarkan layanan bisnis yang merupakan implementasi
tertentu, yang tidak langsung terlihat oleh pemohon. pemohon
belajar dari broker struktur informasi bahwa ia memiliki untuk
mengirim dan menerima dari penyedia dan apa protokol yang
digunakan untuk mengakses layanan tersebut. pemohon tidak
memiliki pengetahuan tentang cara provider
mengimplementasikan layanan bisnis.

27
Layanan web didefinisikan sebagai diperlukan antarmuka
bisnis antara pemohon dan penyedia, dan bukan sebagai pipa
umum untuk semua permintaan bisnis. Ada beberapa variabel
yang dapat mencirikan layanan web, termasuk bahwa:
• Mereka dapat erat, dan penyebaran mereka dapat didasarkan
pada penggunaan kerangka doa.
• Mereka dapat melakukan baik dalam permintaan sinkron /
balasan modus atau dalam modus asynchronous.
• Mereka bisa terkena oleh J2EE atau non-J2EE penyedia.
• Mereka mungkin atau mungkin tidak menawarkan dukungan
untuk transaksi dan keamanan.

 JCA

Java Connector Architecture terutama membahas kebutuhan


untuk mengakses logika bisnis dari Sistem Informasi Enterprise
(EIS) dengan cara erat-coupled. arsitektur konektor memberikan
dukungan untuk adaptasi sumber daya, yang memetakan
keamanan J2EE, transaksi, dan komunikasi penyatuan teknologi
EIS yang sesuai.

Awalnya, konektor dimaksudkan untuk mengakses server


transaksi warisan dari mainframe dalam modus permintaan /
balasan sinkron, dan ini adalah bagaimana sebagian dari konektor
bekerja hari ini. standar saat ini berkembang ke arah yang lebih
asynchronous dan dua arah konektivitas.
Beberapa varian yang ditetapkan pengguna konektor yang lebih
canggih dan bekerja pada mode koneksi logis. Dengan demikian,
mereka dapat berperilaku sebagai kerangka doa, memilih fisik EIS
target dan operasi bisnis yang tepat dalam cara yang mirip dengan
layanan web.

 JMS

JMS adalah antarmuka berbasis pesan asynchronous. Anda


juga dapat menggunakan JMS untuk mengakses logika bisnis
didistribusikan di antara sistem heterogen. Memiliki antarmuka
berbasis pesan memungkinkan fungsi-fungsi berikut:

28
Titik ke titik dan mempublikasikan / berlangganan mekanisme.
kerangka berbasis pesan dapat mendorong informasi ke aplikasi
lain tanpa mereka meminta secara eksplisit. Informasi yang sama
dapat disampaikan ke banyak pelanggan secara paralel.

Rhythm kemerdekaan. JMS kerangka fungsi dalam modus


asynchronous tetapi juga menawarkan kemampuan simulasi
modus permintaan / tanggapan sinkron. Hal ini memungkinkan
sumber dan target sistem untuk bekerja secara bersamaan tanpa
harus menunggu untuk satu sama lain.

Dijamin pengiriman informasi. kerangka JMS dapat mengatur


pesan dalam modus transaksi dan memastikan pengiriman pesan
(tetapi tanpa jaminan ketepatan waktu pengiriman).

Interoperabilitas antara kerangka heterogen. Sumber dan


target aplikasi dapat beroperasi dalam lingkungan heterogen
tanpa harus menangani masalah komunikasi dan eksekusi terkait
dengan kerangka kerja masing-masing.
Membuat bursa lebih cair. Beralih ke modus pesan
memungkinkan pertukaran informasi lebih halus-halus.

 Memilih teknologi antarmuka

Cara Anda telah menerapkan logika bisnis dalam sistem Anda


secara alami akan membawa Anda menuju salah satu teknologi
tersebut. Sebagai langkah pertama menuju membuat pilihan,
menganalisis infrastruktur yang ada. Apakah ada sistem pesan
yang ada, atau sistem warisan seperti CICS atau IMS?

Dalam banyak kasus cara yang paling alami untuk mengakses


mainframe EIS seperti CICS atau IMS adalah melalui Connector
Architecture Java. Jika di sisi lain, Anda perlu untuk mengakses
aplikasi .NET, Anda mungkin akan cenderung ke arah antarmuka
layanan web. Dalam kasus lainnya lagi Anda mungkin
menggunakan antarmuka JMS, yang memungkinkan pertukaran
pesan dengan sedikit kendala pada bahasa implementasi.
Gunakan ringkasan berikut poin keputusan:

29
 Anda telah ada aplikasi Java atau berencana yang baru:
menggunakan JMS atau JCA.
 Anda perlu berinteraksi dengan mitra: menggunakan
layanan web untuk transportasi dan koneksi.
 Anda perlu untuk menyeberangi penghalang antara
bahasa: penggunaan JMS atau layanan web.

Faktor lain dalam pengambilan keputusan adalah ruang


lingkup jaringan: apakah Internet, intranet, atau extranet. lingkup
ini menentukan fleksibilitas Anda dalam memilih protokol
transport. Deployment di Internet mungkin menuntut layanan
web longgar-ditambah melalui HTTP. Ini akan bekerja dengan
firewall yang ada dan infrastruktur zona demiliterisasi (DMZ), dan
Anda dapat meminimalkan biaya. JMS dan JCA lebih masuk akal
sebagai Intranet atau protokol Extranet. JMS cocok untuk mode
asynchronous atau simulasi mode sinkron, dan JCA cocok untuk
kopling ketat.

◦ Service Oriented Architecture


Gaya arsitektur mendefinisikan SOA menggambarkan satu
set pola dan pedoman untuk menciptakan longgar digabungkan,
layanan-blok bisnis yang, karena pemisahan keprihatinan antara
deskripsi, implementasi, dan mengikat, memberikan fleksibilitas
belum pernah terjadi sebelumnya di tanggap terhadap ancaman
bisnis baru dan peluang.

Sebuah SOA adalah arsitektur TI perusahaan skala untuk


menghubungkan sumber daya pada permintaan. Dalam SOA,
sumber daya yang tersedia untuk peserta di jaring nilai,
perusahaan, bidang usaha (biasanya mencakup beberapa aplikasi
dalam suatu perusahaan atau di beberapa perusahaan). Ini terdiri
dari satu set layanan IT-blok bisnis yang secara kolektif memenuhi
proses bisnis organisasi dan tujuan. Anda dapat koreografi
layanan ini ke dalam aplikasi komposit dan memanggil mereka
melalui protokol standar, seperti yang ditunjukkan pada Gambar 2
di bawah ini.

Layanan adalah sumber daya perangkat lunak (ditemukan)


dengan deskripsi layanan externalized. deskripsi layanan ini

30
tersedia untuk pencarian, mengikat, dan doa oleh konsumen
layanan. Penyedia layanan menyadari pelaksanaan deskripsi
layanan dan juga memberikan kualitas persyaratan pelayanan
kepada konsumen layanan. Layanan idealnya harus diatur oleh
kebijakan deklaratif dan dengan demikian mendukung gaya
arsitektur dinamis re-dikonfigurasi.

Figure : Attributes of a SOA

Kelincahan bisnis diperoleh oleh sistem TI yang fleksibel,


terutama oleh pemisahan interface, implementasi, dan mengikat
(protokol) yang ditawarkan oleh SOA, yang memungkinkan
penangguhan pilihan layanan yang penyedia untuk memilih pada
suatu titik waktu tertentu berdasarkan persyaratan baru bisnis,
(fungsional dan non-fungsional (misalnya, kinerja, keamanan,
skalabilitas, dan sebagainya) persyaratan).

Anda dapat menggunakan kembali layanan di seluruh unit


bisnis internal atau seluruh rantai nilai antara mitra bisnis dalam
pola realisasi fraktal. realisasi fraktal mengacu pada kemampuan
suatu gaya arsitektur untuk menerapkan pola-pola dan peran yang
terkait dengan peserta dalam model interaksi secara komposit.

Anda dapat menerapkannya ke satu tingkat di arsitektur


dan beberapa tingkatan di seluruh arsitektur enterprise. Di antara
proyek-proyek, dapat antara unit bisnis dan mitra bisnis dalam
rantai nilai dalam seragam dan cara konseptual terukur.

31
◦ Software Architecture
Pandangan abstrak SOA menggambarkan sebagai
arsitektur sebagian berlapis layanan komposit yang sesuai dengan
proses bisnis. Gambar dibawah menggambarkan representasi dari
jenis arsitektur.

Hubungan antara layanan dan komponen adalah bahwa


komponen perusahaan skala (besar-grained perusahaan atau
bidang usaha komponen) mewujudkan pelayanan dan
bertanggung jawab untuk menyediakan fungsi mereka dan
mempertahankan kualitas layanan mereka. arus proses bisnis
dapat didukung oleh koreografi dari layanan ini terkena ke dalam
aplikasi komposit. Arsitektur integrasi mendukung routing,
mediasi, dan terjemahan dari layanan ini, komponen, dan arus
menggunakan Enterprise Service Bus (ESB). layanan yang
dikerahkan harus dipantau dan dikelola untuk kualitas layanan
dan kepatuhan terhadap persyaratan non-fungsional.

Figure : The layers of a SOA

Untuk masing-masing lapisan, Anda harus membuat desain


dan keputusan arsitektur. Oleh karena itu, untuk membantu
mendokumentasikan SOA Anda, Anda mungkin ingin membuat
dokumen yang terdiri dari bagian-bagian yang sesuai dengan
masing-masing lapisan.

32
BAB 5
Service Oriented Arsitektur

SOA adalah sebuah kerangka kerja untuk mengintegrasikan proses bisnis


dan mendukung infrastruktur teknologi informasi dan menstandarisasi
komponen-komponen layanan yang dapat digunakan kembali dan digabungkan
sesuai dengan prioritas bisnis. SOA bersifat loosely coupled (tingkat
kebergantungan antar komponen rendah), highly interoperable (mudah
dioperasikan), reusable (dapat digunakan kembali), dan interoperability (dapat
berkomunikasi antar platform).

Service oriented architecture (SOA) merupakan sebuah konsep arsitektur


perangkat lunak yang mendefinisikan penggunaan layanan untuk memenuhi
kebutuhan suatu perangkat lunak. Layanan ini tidak hanya dapat digunakan oleh
sistem yang menaunginya namun dapat digunakan juga oleh sistem lain yang
berbeda, sehingga integrasi antarsistem dapat dicapai. Dibandingkan dengan
arsitektur berorientasi objek terdistribusi, SOA lebih sesuai untuk
mengintegrasikan system yang heterogen dan lebih mudah beradaptasi dengan
perubahan lingkungan.

Web service merupakan salah satu bentuk implementasi SOA yang dapat
memberikan banyak keuntungan bagi sebuah organisasi. Web service
menggunakan seperangkat teknologi standar terbuka yang memungkinkan
sebuah aplikasi dapat berkomunikasi dan menyediakan layanan bagi aplikasi lain
melalui jaringan komputer.

Web service memberikan kemudahan upaya integrasi antarsistem dengan


latar belakang teknologi yang heterogen. Sebuah aplikasi berbasis teknologi Web
service dapat menyediakan data maupun fungsi tertentu bagi aplikasi lain
meskipun berbeda sistem operasi, perangkat keras, maupun bahasa
pemrograman yang digunakan untuk membangunnya.

33
Kelebihan SOA
Implementasi SOA pada perusahaan relative membutuhkan biaya yang
cukup besar. Akan tetapi, dengan perencanaan yang baik, SOA dapat memberikan
keuntungan yang lebih besar. Keuntungan dapat dirasakan dari segi biaya dan
waktu, antara lain:
1. Penghematan
Dengan membangun suatu koleksi services, penghematan dapat dimulai. Jika pada
proyek yang pertama, waktu dan tenaga yang dihabiskan paling besar, maka
proyek selanjutnya, usaha yang dikeluarkan akan makin kecil karena sudah banyak
tersedia services sebagai hasil dari proyek sebelumnya yang dapat di-reuse.
2. Kecepatan
Dalam SOA, proses bisnis dipecah dan disederhanakan dalam bentuk service yang
lebih kecil. Ketergantungan yang ada antar service harus diminimalisir. Sehingga
apabila terjadi perubahan pada suatu proses bisnis, cukup service yang berkaitan
saja yang mengalami perubahan. Tidak perlu seluruh sistem. Dengan begini,
sistem dapat merespon perubahan dengan cepat.
3. Real-time responsive
Dalam service-service tersimpan business rules dan batasan-batasan dalam bisnis.
Dan service-service ini disimpan dan dikelola dalam sebuah server aplikasi yang
disebut ESB. Sehingga berbagai jenis aplikasi dapat mengakses business rules
tersebut. Apabila terjadi suatu perubahan terhadap business rules, ESB akan
mengelolanya secara otomatis. Sehingga business rules yang baru akan berlaku
saat itu juga.
4. Channel independent
Bisnis berkaitan dengan banyak pihak, Baik pelanggan maupun supplier. Berbagai
pihak yang behubungan dengan organisasi tentu saja memungkinkan adanya
berbagai jenis aplikasi yang berbeda-beda. Dengan adanya service dan ESB,
memungkinkan untuk berbagai aplikasi tersebut untuk mengakses business rules

34
yang telah kita definisikan. Sehingga pihak-pihak yang berkaitan dengan organisasi
tidak tergantung lagi terhadap suatu aplikasi tertentu yang telah kita definisikan.
5. Waktu pengembangan yang lebih singkat
Dalam SOA, bisnis proses yang dipecah dalam bentuk service yang lebih kecil
memungkinkan perubahan dan pengembangan pada service yang tertentu saja.
Karena pengembangan dilakukan secara terfokus, waktu yang dibutuhkanpun
menjadi lebih sedikit.
6. Mengurangi duplikasi
Service dalam SOA dikelola dalam server aplikasi yang disebut ESB. Karena service
dikelola secara terpusat, hal ini akan mengurangi kemungkinan adanya duplikasi
sistem. Selain itu, bentuk service yang memungkinkan reuseability juga
mengurangi adanya fungsi yang sama yang ada didalam sebuah sistem.
SOA dengan berbagai macam standarnya yang tersedia luas, memiliki
beberapa keuntungan [Raghu R. Kodali] :
 SOA memungkinkan reusability (mengunakan kembali) aset-aset atau
investasi yang sudah ada dalam perusahaan dan memungkinkan
dibuatnya aplikasi-aplikasi baru diatas aplikasi yang sudah ada.
 SOA memungkinkan dilakukannya perubahan atas aplikasi dengan tetap
menjaga clients atau service konsumen terisolasi dari perubahan
evolusioner yang terjadi dalam implementasi service.
 Dengan SOA, dapat dilakukan pengembangan baru pada services individu
atau services konsumen tanpa perlu menulis ulang seluruh aplikasi atau
tetap menyimpan sistem yang ada yang sudah tidak lagi berhubungan
dengan kebutuhan bisnis yang baru.
 SOA memberikan perusahaan kemampuan fleksibilitas yang lebih baik
dalam membangun aplikasi dan proses bisnis secara cepat dengan
mengembangkan infrasturktur aplikasi yang sudah ada dalam
membuat services baru.

35
Elemen-elemen Pendukung

1. ESB (Enterprise Service Bus)


 ESB adalah sebuah platform untuk meletakan
abstraksi service atau service wrapper, sehingga services tersebut
nantinya dapat digunakan BPM (Business Process Management)
untuk membentuk bisnis proses yang menggunakan
banyak service. Sebuah ESB memiliki bus yang bertugas untuk
menyalurkan informasi antara client, server, dan device yang
terhubung.
 Tugas utama dari ESB adalah untuk saling
menghubungkan service dengan aplikasi yang ada, dengan
demikian dapat menghilangkan ketergantungan komunikasi point-
to-point antara service dengan aplikasi.
2. BPM (Business Process Management)
 Business Process Management adalah sebuah studi manajemen
yang berfokus pada pengorganisasian kebutuhan dan
permintaan client sehingga menghasilkan output yang efektif dan
efisien, juga membuat inovasi yang berintegrasi dengan teknologi.
3. Service
 Service yang digunakan dalam SOA harus memiliki sifat loose
coupling dan memiliki fungsi yang dapat dipanggil dari
luar service itu sendiri. Loose coupling berarti sebuah service itu
tidak bergantung pada bahasa yang membangunnya, bebas dari
ketergantungan platform, dan tidak bergantung pada lokasi dan
juga dapat di-integrasikan dengan sistem yang ada. Tujuan utama
dari loose coupling ini adalah untuk mempermudah proses lepas /
pasang pada sistem yang sudah berjalan, dan arti kata mudah
disini adalah, bahwa pada saat sebuah service di-lepas/pasang,
tidak ada perubahan yang berarti pada sistem yang sedang
berjalan.
4. User Interface : untuk menjalankan bisnis proses yang ada di BPM.
Menurut Raghu R. Kodali SOA memiliki beberapa karakter kunci:
 SOA services memiliki pendeskripsian sendiri atas interfaces dalam
platform-independent dokumen XML. Web Services Description
Language (WSDL) adalah standar yang biasa digunakan dalam
mendeskripsikan services.
 SOA services berkomunikasi menggunakan pesan yang secara
formal didefinisikan via XML Schema (sering juga dikenal dengan
XSD). Komunikasi antar konsumen
dan providers atau services biasanya terjadi dalam lingkungan
heterogen dengan sedikit atau tanpa pengetahuan

36
mengenai provider. Pesan antar services dapat dipandang sebagai
kunci dokumen bisnis yang diproses dalam suatu perusahaan.
 SOA services dalam perusahaan dijaga oleh sebuah registry yang
bersikap sebagai suatu directory listing. Aplikasi-aplikasi dapat
mencari services dalam registry dan memanggil service yang
diinginkan. Universal Description, Definition, and
Integration (UDDI) adalah standar yang biasa digunakan
untuk service registry.
 Setiap SOA service memiliki quality of service (QoS) yang
berasosiasi dengan SOA services tersebut. Beberapa elemen QoS
adalah security requirements, seperti autentikasi dan
autorisasi, reliable messaging, dan polis mengenai siapa yang
dapat menggunakan atau memanggil services tersebut.
5. Application and Database
Dalam SOA, Service akan dibuat dan diletakkan di atas Database dan
Aplikasi. Dari tabel dan field yang ada dapat dibentuk Service.
6. Governance and Management Tool
Berfungsi untuk mengelola dan menjaga keamanan dari hardware,
middleware, aplikasi, database, transaksi dan operating system yang ada.
Dalam SOA, kedua hal ini juga dibutuhkan agar setiap service dapat
berfungsi sesuai dengan tugasnya masing masing.
Enterprise architects percaya bahwa SOA dapat membantu bisnis dalam
merespon lebih cepat dan lebih cost-effectively dalam menghadapi situasi pasar
yang selalu berubah-ubah. SOA memungkinkan reuse dalam level makro (services)
dibandingkan pada level mikro (classes). Selain itu SOA juga dapat
menyederhanakan hubungan interkoneksi kepada –dan penggunaan dari- aset-
aset IT yang sudah ada.

37
Tingkat Ketergantungan
SOA adalah suatu desain arsitektur yang bersifat loosely-coupled (tingkat
kebergantungan antar komponen rendah), highly interoperable (mudah
dioperasikan), reusable (dapat digunakan kembali), dan interoperability (dapat
berkomunikasi antar platform) untuk mendukung tercapainya tujuan bisnis dalam
suatu organisasi.

Binding dan Invocation


Hubungan antara provider dan consumer bersifat dinamis dan hubungan
itu dibuat pada saat runtime berdasarkan mekanisme binding.

38
BAB 6
Arsitektur dan Framework

Menurut Mary Shaw dan David Garlan, Arsitektur Software mencakup


seperangkat keputusan signifikan tentang pemilihan struktural dan antarmuka
sistem, serta perilaku sistem .

Framework Software merupakan suatu pedoman dan spesifikasi yang


menyediakan suatu platform, tools, dan programming environments yang
bertujuan untuk menangani Desain, Integrasi, Performa, Keamanan, dan
Kehandalan dari aplikasi multi-tiered
Ada 2 framework fundamental yang dapat digunakan untuk membangun
aplikasi enterpise, yaitu .NET dan Java 2 Enterprise Edition (J2EE).

APA ITU .NET?


.NET adalah Produk dari Microsoft yang digunakan untuk menghubungkan
antara informasi, orang, sistem, dan devices, sehingga tercipta intergerasi antara
Desktop, Web, dan Mobile Devices. .NET sendiri sudah lama diperkenalkan oleh
Microsoft, lebih tepatnya pada awal Tahun 2002. .NET mendukung beberapa jenis
Bahasa pemrograman, diantaranya : C#, VB, perl, PHP, Pascal, Delphi, Smalltalk,
dll. .NET sendiri dapat dijalankan hampir disemua platform . Mensupport
pengembangan berbagai jenis aplikasi, seperti pengembangan aplikasi Web
Services XML.

ORIENTASI .NET FRAMEWORK


Untuk memudahkan para programmer, maka orientasi dari .NET Framework
adalah sebagai berikut :

1. Mendukung pemrograman berorientasi objek (OOP), dengan cara


menyediakan environment yang konsisten.

2. Kode Program dapat dieksekusi secara lokal, atau distribusikan melalui


internet.

3. Menyediakan environment kerja yang aman dalam pengeksekusian kode


program.

4. Mengurangi masalah terkait performa kode yang muncul akibat


interpreternya.

39
5. Mengintegerasikan seluruh aplikasi yang menerapkan .NET Framework.

6. Mengurangi adanya konflik pada saat sofrware deployment.

ARSITEKTUR .NET FRAMEWORK


.NET disusun dari 2 komponen utama :
1. CLR (COMMON LANGUAGE RUNTIME)
2. BCL (BASE CLASS LIBRARY) atau disebut juga Class Library saja

CLR (COMMON LANGUAGE RUNTIME)


CLR bertanggung-jawab dalam hal :
1. Mangelola memori
2. Eksekusi kode program
3. Keamanan kode program
4. Hak akses terhadap kode program

5. Kompalisi kode program dan Service System.

Aplikasi – aplikasi yang berbasis .NET disebut dengan managed code. Untuk
aplikasi – aplikasi yang tidak berbasis .NET, disebut dengan un-manage code.
CLR akan mengkompilasi kode-kode aplikasi menjadi MSIL (Microsoft
Intermediate Language). Kompilasi sendiri dilakukan oleh komponen yang
disebut dengan Just In Time (JIT). Hasil kompilasi akan menjadi cache dalam
mesin dan dapat dikompilasi kembali apabila ada perubahan pada aplikasi .
Kode – kode yang dikompalasi oleh JIT, hanya kode – kode yang diperlukan
atau yang sedang dijalankan oleh aplikasi.

Data TYPES pada CLR


Ada dua Kategori :
1. Value Types :

a. Relatively Simple Types

b. Allocated on The Stack

2. Reference Types :
a. More Complex Types

40
b. Allocated on The Heap
c. Destroyed Through Garbage Collection

BCL (BASE CLASS LIBRARY)


Menyediakan Types dan fungsi – fungsi pada aplikasi – aplikasi managed
code atau aplikasi yang berbasis pada .NET. BCL juga merupakan kumpulan
dari reusable type yang terintegerasi dengan CLR. Dapat menghubungkan
komponen dari pihak ketiga dengan aplikasi yang sedang dikembangkan,
sehingga memberikan kemudahaan kepada programmer, namun terkadang
mempengaruhi waktu eksekusi dari kode program. BCL dapat dimanfaatkan
untuk membuat berbagai jenis aplikasi, semisal : Console Application,
Windows Form Application, ASP .NET Application, Web Service XML
Application, Windows Service Application.

APA ITU J2EE?


J2EE (Java 2 Enterprise Edition) atau Java EE (J2EE versi 5 keatas) merupakan
suatu kumpulan spesifikasi atau yang menggambarkan standard untuk
mengambangkan multi-tier aplikasi enterprise dengan menggunakan bahasa
pemrograman Java. J2EE menyediakan suatu framework lengkap yang dapat
digunakan untuk design, development, assembly, dan deployment aplikasi –
aplikasi Java yang dibangun berdasar multi-tiered distributed application model
(MDAM). Ada banyak vendor atau komunitas yang mengembangkan application
server berdasar standar Java EE, sehingga sering disebut dengan Java EE Compliant
Application Server.

Application Server mendukung pembuatan aplikasi enterprise, hal ini


dikarenakan adanya berbagai fasilitas yang sudah siap untuk dapat dimanfaatkan
didalam aplikasi yang akan kita buat. Fasilitas – fasilitas yang dimaksud, seperti
halnya : web container, web service, directory service, distributed transaction,
messaging dll.

41
J2EE ARCHITECTURE

Apabila biasanya aplikasi menggunakan 2 – Tier atau yang sering kita sebut
dengan Client – Server, maka JAVA EE lebih mengarah kepada 3 - Tier Application
Design. Hal ini bertujuan untuk memisahkan antrara bussines logic dan
presentation. Sehingga aplikasi tersusun dari user interface, business logic server,
dan juga enterprise information server (EIS).

User Interface

User Interface dapat dipresentasikan dengan 2 cara, yaitu :

1. Thin, dimana web browser pada sisi client akan merender komponen
interface (Servlet, JSP, JSF) yang berada disisi server, yang kemudian akan
dipresentasikan kepada user.

2. Thick, pada cara ini presentasi UI menggunakan GUI (Graphical User


Interface) . Komponen interface (Java Swing, AWT) akan sepenuhnya
berjalan pada sisi client.

42
Bussines Logic Server

Pada bagian ini, akan dilakukan pemrosesan business logic dari aplikasi.
Sehingga bagian ini akan menentukan bagaimana performa dari pemrosesan
bussines logic. Sebagai contoh, komponen ini akan bertanggung jawab terhadap
proses transfer uang pada bank, atau proses pembatalan peminjaman buku pada
perpustakaan. Untuk menangani business logic, Java Enterprise Edition
menyediakan EJB.

Enterprise Information Server


Enterprise information server atau EIS bertanggung jawab dalam hal
pengelolaan data. Namun EIS ini, berada diluar boundary dari Java Enterprise
Edition. Java EE hanya akan menyediakan API yang dapat dimanfaatkan untuk
mengakses EIS. Berikut adalah API yang diseidakan Java EE : Java Persistence API
(JPA), Java Transaction API (JTA), Java Messagin Service (JMS), Web Service, Java
Mail, Java Mangement, dll.

KOMPONEN J2EE

J2EE Server memiliki 2 container yaitu EJB Container dan Web Container. EJB
Container bertugas dalam hal eksekusi dan pengelolaan Enterprise Bean (Bussines
Logic). Web Container bertugas dalam hal eksekusi dan pengelolaan servlet
(Presentation Logic).

EJB CONTAINER
EJB container terdiri dari 3 bagian :

1. Session Bean, bertanggung jawab dalam hal eksekusi proses. Ada dua
jenis Session Bean :

a. Stateless Session Bean (SLSB), setiap kali eksekusi Session Bean


tidak akan menyimpan state dari client.

b. Statefull Session Bean (SFSB), setiap kali eksekusi Session Bean


akan menyimpan state dari client.

2. Entity Bean, mirip dengan JPA (Java Persistence API), dimana bagian ini
bertugas dalam hal manipulasi database. Saat ini, kebanyakan orang lebih
suka menggunakan JPA, JPA lebih sederhana dibanding dengan Entity
Bean.

43
3. Message Driven Bean (MDB), memiliki tugas untuk messaging yang
memanfaatkan Java Messaging Service (JMS).

WEB CONTAINER
Terdiri dari beberapa komponen :

1. Servlet, bagian ini bertugas untuk melayani request dari client,


meneksekusi request, dan hasil eksekusi akan dikirim kepada client yang
melakukan request.

2. Java Server Page (JSP), apabila kita sudah mengenal PHP ataupun ASP,
maka JSP akan terlihat mirip dengan PHP ataupun ASP. Didalam JPS akan
tersusun HTML dan juga source code Java (Sciplet).

PERBEDAAN .NET DENGAN J2EE

44
45
46
BAB 7
Database For Enterprise
 JDBC-.Java
JBDC Kit -Introduction
 JDBC Driver diperlukan bila kode Java ingin berkomunikasi dengan
database.
 Diperlukan untuk mengalokasikan dan me-load (locate and load)
driver class kedalam Java program untuk database tertentu.
 Java dan JDBC bersifat platform independent dan vendor
independent.
 Menyediakan pure Java API untuk mengakses SQL melalui driver
manager untuk mengijinkan third-party drivers connect ke spesifik
database.
 JDBC API (for application developers and programmers) and SPI
(Service Provider Interface containing rules for database vendors and
database tool providers to develop drivers).

Java Database Connectivity


 JDBC adalah Application Programming Interface (API) yang
menyediakan fungsi-fungsi dasar untuk akses data.
 JDBC API terdiri atas sejumlah class dan interface yang dapat
digunakan untuk menulis aplikasi database dengan menggunakan
Java.
 Class dan Interface JDBC terdapat pada package java.sql
 Conenction dibentuk melalui 1 class java.sql.DriverManager dan 2
interface, yaitu java.sql.Driver dan java.sql.Connection.
 JDBC adalah Application Programming Interface (API) yang
menyediakan fungsi-fungsi dasar untuk akses data.
 JDBC API terdiri atas sejumlah class dan interface yang dapat
digunakan untuk menulis aplikasi database dengan menggunakan
Java.
 Class dan Interface JDBC terdapat pada package java.sql
 Contoh standard API JDBC:
1. Membuat koneksi ke database
2. Mengakses data dengan query
3. Membuat stored (parameterized) query
4. Mendapatkan struktur data dari result query (tabel) :
5. Menyatakan jumlah kolom
6. Mendapatkan nama kolom, dll
7. dll
 JDBC dikembangkan dengan memperhatikan aspek kompatibilitas
dan interoperabilitas dengan database software seperti Oracle, DB/2
dan lainnya.

47
 Untuk mengakses database dengan DBMS yang berbeda dan
platform yang berbeda – beda juga (Unix, Windows, AS400) maka
JDBC memerlukan Driver.
 Untuk mengakses database MS-Access misalnya, JDBC memerlukan
Driver yang menjembatani Aplikasi dengan ODBC (Open Database
Connectivity) yang ada di lingkungan Microsoft Windows. Teknik ini
disebut juga sebagai bridging.
 Aplikasi Java  JDBC  ODBC  MS-Acces
JBDC Driver
 Masing-masing database server memiliki arsitektur dan sistem yang
berbeda  cara komunikasi berbeda.
 Sehingga tiap database server memiliki driver sendiri.
 Untuk aplikasi Java, driver database disebut dengan JDBC Driver.
 JDBC Driver adalah software library yang diperlukan agar program JDBC
dapat berkomunikasi dengan database tertentu
 Masing-masing database server memiliki arsitektur dan sistem yang
berbeda  cara komunikasi berbeda.
 Sehingga tiap database server memiliki driver sendiri.
 Untuk aplikasi Java, driver database disebut dengan JDBC Driver.
 JDBC Driver adalah software library yang diperlukan agar program JDBC
dapat berkomunikasi dengan database tertentu
 Masing-masing driver memiliki implementasi dari spesifikasi JDBC secara
berbeda.
 Perbedaan:
 Kecepatan
 Kestabilan
 Fasilitas
Database Communication

Two Layers of JDBC API involved in communication


Type Driver
Type 1: JDBC-ODBC Bridge and ODBC Driver
 Sebelum JDBC  ODBC sudah ada.
 Bisakah pakai ODBC dari Java untuk koneksi JDBC?
 bisa yaitu dengan bantuan JDBC API yang berupa JDBC-ODBC bridge

48
 Kombinasi ini menghasilkan akses JDBC melalui driver ODBC. Kode binari
ODBC harus di load pada masing-masing mesin klien yang menggunakan
JDBC-ODBC bridge.
 Sun menyediakan sebuah driver JDBC-ODBC bridge, yang cocok untuk
keperluan eksperimental dan untuk situasi-situasi dimana tidak ada driver
yang sesuai.
 Tipe driver ini juga paling cocok untuk jaringan korporat dimana instalasi
klien bukan masalah besar, atau untuk aplikasi server yang ditulis dalam
bahasa Java dalam arsitektur 3-tier.
Karakteristik JDBC – ODBC
 ODBC tidak cocok untuk dipakai langsung dari bahasa pemrograman Java
karena ODBC menggunakan bahasa C. Pemanggilan dari Java ke kode
native C memiliki beberapa masalah dalam sekuritas, implementasi,
robustness, dan portabilitas aplikasi.
 Penerjemahan secara literal dari ODBC C API kedalam Java API bukanlah
hal yang baik. Contoh: Java tidak memiliki pointer.
 ODBC sulit untuk dipelajari. ODBC memiliki option-option yang kompleks
walaupun untuk query-query sederhana. Sebaliknya JDBC didesain tetap
sederhana meski mengerjakan hal-hal kompleks.
 Jika menggunakan ODBC, driver manager harus diinstall secara manual
pada tiap mesin klien. Jika menggunakan JDBC driver, kode JDBC secara
otomatis diinstall.
Type Driver Type 2: Native-API Partly Java Drivers
 Tipe driver ini mengkonversi JDBC call kedalam client API untuk Oracle,
Sybase, Informix, DB2, dan DBMS yang lain.
 Seperti bridge driver, tipe ini memerlukan kode binari yang spesifik
terhadap sistem operasi yang diload kedalam masing-masing mesin klien.
Type Driver Type 3: JDBC-Net pure Java Drivers
 Model driver ini menerjemahkan JDBC call kedalam protokol middleware
vendor, yang kemudian diterjemahkan ke protokol
DBMS oleh server middleware. Middleware menyediakan konektivitas
keberbagai jenis database yang berbeda.
Type 4: Native-Protocol All-Java Drivers
 Model driver ini mengonversi JDBC call langsung kedalam protokol
network yang digunakan oleh DBMS, mengijinkan direct call dari mesin
klien ke server DBMS dan memberikan solusi praktis untuk akses intranet.
Secara garis besar, teknologi JDBC melakukan:
 Membangun sebuah koneksi ke sumber data (data source).
 Mengirim statement ke sumber data.
 Memproses hasil dari statement tersebut.

49
Typical JDBC Use

Model 2 Tier
 Sebuah applet atau aplikasi java berbicara langsung ke database.
 Sebuah perintah atau statement dari user dikirim ke database dan hasil
dari statement dikirim balik ke user.
 Database dapat terletak pada mesin yang sama atau berbeda dengan
klien.
 Jika letak database berbeda dengan mesin klien maka disebut dengan
client/server. Mesin user  client dan mesin dimana database berada 
server.

Model 3 Tier
 User mengirimkan perintah ke sebuah middle tier.
 Selanjutnya middle tier mengirimkan perintah tersebut ke database.
 Database memproses perintah tersebut dan mengirim balik hasilnya ke
middle tier.
 Kemudian middle tier mengirimkannya ke user.

50
 Keuntungan: mempermudah aplikasi untuk dideploy dan meningkatkan
performansi.

JDBC Data Types

Langkah Penggunaan JDBC


1. Load driver JDBC
2. Definisikan URL database
3. Membuat dan melakukan koneksi
4. Membuat obyek statement
5. Mengeksekusi query
6. Memproses result
7. Menutup koneksi
JDBC : Load Driver
 Driver :
 library yang digunakan untuk berkomunikasi dengan database
server
 Dengan menggunakan driver, program Java yang menggunakan
API JDBC dapat berinteraksi dan dapat dimengerti oleh database
server.
 Untuk database yang berbeda dibutuhkan driver yang berbeda.

51
Contoh di bawah jika yang kita gunakan adalah JDBC-ODBC driver

Nama Driver Database


 JDBC-ODBC :
sun.jdbc.odbc.JdbcOdbcDriver
 Oracle :
oracle.jdbc.driver.OracleDriver
 Sybase :
com.sybase.jdbc.SybDriver
 MySQL:
com.mysql.jdbc.Driver
 PostgreSQL:
org.postgresql.Driver
 Microsoft SQLServer 2000 :
com.microsoft.jdbc.sqlserver.SQLServerDriver
2. JDBC : Definisikan koneksi URL
 Menspesifikasikan lokasi database server
 Gunakan dokumentasi driver
 Untuk penggunaan JDBC di applet:
 database server harus berada pada node yang sama dengan letak
applet.
 Menggunakan proxy server yang me “reroute” request database
ke actual server.
 Contoh:

Nama URL database:


 JDBC-ODBC :
jdbc:odbc:nama_database

52
 Oracle :
jdbc:oracle:thin:@nama_host:1521:namaDB
 MySQL:
jdbc:mysql://nama_host:3306/namaDB
 PostgreSQL:
jdbc:postgresql://nama_host:5432/namaDB
 Microsoft SQLServer 2000 :
jdbc:microsoft:sqlserver://nama_host:1433;DatabaseName=namaDB

3. JDBC : Membuat Koneksi


 Cara : memanggil method getConnection dari class DriverManager
dengan melewatkan URL (hasil langkah dua) sebagai argumen.
 getConnection akan melempar SQLException
 Contoh:

4. JDBC : Membuat Obyek Statement


 Object Statement digunakan untuk mengirim query dan perintah ke
database.
 Object Statement dibuat dengan cara bekerjasama dengan class
Connection.
 Cara: memangil method createStatement() dari obyek Connection.
 Contoh:
Statement statement = connection.createStatement();
5. JDBC : Mengeksekusi Query
 Memanfaatkan object Statement untuk memproses query.
 Cara: memanggil method executeQuery() dari object Statement. 
memberikan return value bertipe ResulSet
 Returns: ResulSet.
String sql=“select col1, col2, col3 from sometable”;
ResultSet rs=statement.executeQuery(sql);
 Note : Untuk memodifikasi database, gunakan
statement.executeUpdate(sql); yang mendukung string sql UPDATE,
INSERT INTO, DELETE

53
ResultSet
 ResultSet memberikan bermacam2 method getXxx dengan parameter
indek kolom atau nama kolom dan mengembalikan data.
 Method lain object ResultSet:
 findColumn()
mendapatkan index (integer value) berdasarkan
nama kolom.
Kolom pertama mempunyai index 1 bukan 0.
 getMetaData()
retrieve informasi mengenai ResultSet, returns object
6. JDBC : Memproses result
ResultSetMetaData.
 wasNull()
Mengetahui apakah getXxx() menghasilkan SQL null.
 Dengan menggunakan method next() pada object ResultSet 
mendapatkan results per satu baris.
 Contoh:
String nrp;
String nama;
while (rs.next()){
nrp=rs.getString(1);
nama=rs.getString(2);
System.out.println("NRP : " +nrp);
System.out.println("NAMA : " +nama);
System.out.println("-------------");
}
 Kolom pertama mempunyai index 1 bukan 0.
 Object ResultSet otomatis akan ditutup bila ada object ResultSet baru
7. JDBC : Menutup Koneksi
 Harus didefinisikan secara eksplisit.
connection.close();
 Karena membuka koneksi adalah mahal, maka penundaan langkah
terakhir ini hanya jika masih ada operasi database yang dilakukan.
Contoh :

54
7.2LINQ-.net
 Apa itu LINQ? LINQ merupakan kependekan dari Language Integrated
Query. Sesuai dengan kepanjangan tersebut, dapat kita artikan LINQ
merupakan “Query yang terintegrasi pada Bahasa Pemrograman”.
Integrasi Query dalam hal ini tidak hanya pada bahasa C#, tapi juga Visual
Basic, maupun bahasa lain yang terintegrasi dalam framework .NET.
 Query merupakan sintaks atau kode atau perintah – perintah yang
berhubungan dengan “Data”.
 “Data” ini bisa diambil dari DATA SOURCE yang bisa berupa “Sql
Database”, Arrays”, “Collections”, “Relational Data”, dan “XML”.
 Dengan menggunakan LINQ kita akan mendapatkan keunggulan seperti
berikut ini:

55
Keunggulan Menggunakan LINQ

 LINQ terintegrasi otomatis pada bahasa pemrograman, dalam hal ini


adalah C# dan Visual Basic sehingga memiliki sintaks highlinghting dan
intellisense bahkan kita bisa mendebug query kita dengan debugger yang
sudah terintegrasi dengan Visual Studio.
 .Penggunaan kode jauh lebih simple dan lebih cepat dibandingkan dengan
cara lama seperti pada tutorial ADO.NET kita di atas.
 Dengan menggunakan LINQ, kita bisa dengan mudah melihat hubungan
antar table, bahkan kita bisa dengan mudah membuat query untuk
menggabungkan beberapa table.
 Transformasi data jauh lebih mudah, misalnya kita bisa meng-convert Sql
data kedalam XML data.
 Dan lain – lain.

Arsitektur LINQ

 LINQ memiliki arsitektur 3-lapis di mana lapisan paling atas terdiri


dari ekstensi bahasa dan lapisan bawah terdiri dari sumber data
yang biasanya benda menerapkan IEnumerable <T> atau
IQueryable <T> antarmuka generik.

Restriction Where

Projection Select, SelectMany

Ordering OrderBy, ThenBy

Grouping GroupBy

Joins Join, GroupJoin

56
Quantifiers Any, All

Partitioning Take, Skip, TakeWhile, SkipWhile

Sets Distinct, Union, Intersect, Except

Elements First, Last, Single, ElementAt

Aggregation Count, Sum, Min, Max, Average

Conversion ToArray, ToList, ToDictionary

Casting OfType<T>, Cast<T>

Tipe/Jenis LINQ
Terdapat beberapa jenis LINQ :
LINQ to Object, contoh: LINQ and ArrayList, LINQ and Strings, LINQ and
File Directories.
LINQ to ADO.NET, contoh: LINQ and DataSet.
LINQ to XML
LINQ to SQL
LINQ to Dataset
Dan lain – lain
LINQ to Objects
LINQ to Objects dapat mengakses sumber data IENumerable atau
IEQueryable secara langsung tanpa membutuhkan LINQ Provider atau
API, seperti pada LINQ to SQL atau LINQ to XML. IENumerable atau
IEQueryable collection contohnya adalah array string (string()), array
integer (integer()), bisa pula generic List.
LINQ to SQL today

LINQ to SQL untuk melakukan komunikasi dengan data yang tersimpan disistem
basis data Microsoft SQL server

57
LINQ to SQL Accessing data with LINQ

LINQ to SQL
 Language integrated data access
 Maps tables and rows to classes and objects
 Builds on ADO.NET and .NET Transactions
 Mapping
 Encoded in attributes or external XML file
 Relationships map to properties
 Persistence
 Automatic change tracking
 Updates through SQL or stored procedures
LINQ to SQL mapping

58
LINQ to SQL Architecture

Key Points
 Flexible mapping
 “Classes first” or “data first”, attributes or mapping file
 DataContext
 Strongly typed database connection
 Entity classes
 Identity mapping and change tracking
 Relationships
 One-to-one, one-to-many
 Change tracking
 Updates through dynamic SQL DML or stored procedures
 Optimistic concurrency
 Stored procedures
 Represented as methods on DataContext
 Dynamic queries
 Expression trees and dynamic parser

59
LINQ to XML programming XML today

LINQ to XML Programming XML with LINQ


Key Points
 Identity mapping
 Maps primary keys onto object references
 Relationships
 Pre-defined joins, lazy or eager fetching
 Ad hoc joins
 Inner joins and grouped joins
 Deferred execution
 Cost-free query composition

60
BAB 8
XML Technology 1

Web Saat Ini


Sebagian besar konten Web saat ini cocok untuk digunakan manusia. Bahkan
konten Web yang dihasilkan secara otomatis dari database, biasanya disajikan
tanpa informasi yang struktural. Ciri khas dari Web ialah digunakan untuk mencari
dan dimanfaatkan setiap hari oleh masyarakat, mencari dan mendapatkan infomasi
yang berhubungan dengan orang lain, melihat-lihat katalog toko online, dan
memesan produk dengan mengisi formulir.

Banyak kegiatan dalam menggunakan Web saat ini didukung oleh perangkat
lunak, yaitu mesin pencari berbasis kata kunci (misalnya Google, AltaVista, Yahoo).
Web tidak akan menjadi sukses sebesar itu, kalau bukan karena mesin pencari.
Namun, ada masalah serius terkait dengan penggunaan mereka:

 High recall, low precision. Jika halaman utama yang relevan akan diambil,
mereka menggunakan sekitar 28.758 dokumen ringan yang relevan atau
tidak relevan juga diambil. Terlalu banyak dokumen dapat dengan mudah
menjadi lebih buruk.
 Low or no recall. Sering terjadi bahwa kita tidak mendapatkan jawaban yang
relevan untuk hasil pencarian atau halaman yang penting dan relevan tidak
diambil. Low recall adalah masalah yang jarang terjadi dengan mesin pencari
saat ini, akan tetapi hal itu masih terjadi.
 Results are highly sensitive to vocabulary. Seringkali kata kunci yang
dimasukan tidak mendapatkan hasil yang diinginkan, dalam kasus ini
dokumen yang relevan menggunakan terminologi yang berbeda dari query.
 Results are single Web pages. Jika memerlukan informasi yang tersebar di
berbagai dokumen, kita harus melakukan beberapa pertanyaan untuk
mengumpulkan dokumen yang relevan, dan kemudian kita harus secara
manual mengekstrak informasi yang terbagi-bagi dan meletakkannya
bersama-sama.
Kendala utama dalam memberikan dukungan yang lebih baik kepada pengguna
Web adalah saat ini, makna dari konten-konten Web bukan dari pengaksesan mesin
pencari. Tentu saja, ada alat yang dapat mengambil teks, membagi menjadi bagian-
bagian, memeriksa ejaan, jumlah ulasan kata-kata. Tapi ketika datang untuk
menafsirkan kalimat dan penggalian informasi yang berguna bagi pengguna,
kemampuan perangkat lunak saat ini masih sangat terbatas. Itu sulit untuk
memahami arti

I am a professor of computer science.

dari kalimat

I am a professor of computer science,

61
you may think. Well, . . .

Pendekatan Web Semantik adalah mewakili setiap konten Web dalam bentuk
yang lebih mudah machine-processable. Dengan menggunakan teknik cerdas untuk
mengambil keuntungan dari representasi ini. Web Semantik secara bertahap akan
berkembang dari Web yang ada, itu bukan kompetisi untuk WWW saat ini.

Dampak Web Semantik


Perhatian Manajemen Pengetahuan itu sendiri dengan memperoleh,
mengakses, dan memelihara pengetahuan dalam sebuah organisasi. Kegiatan
utama dari perusahaan besar: pengetahuan internal sebagai aset intelektual. Hal
ini sangat penting untuk organisasi geografis internasional. Kebanyakan informasi
saat ini tersedia dalam bentuk yang terstruktur lemah (misalnya teks, audio, video).

Dari perspektif manajemen pengetahuan, teknologi saat ini memiliki


keterbatasan dalam bidang berikut:

 Searching information. Perusahaan biasanya bergantung pada mesin pencari


berbasis kata kunci, keterbatasan yang kita telah digariskan.
 Extracting information. Waktu dan usaha manusia yang diperlukan untuk
menelusuri dokumen yang diambil untuk informasi yang relevan. Agen cerdas
saat ini pun tidak dapat melaksanakan tugas ini dengan memuaskan.
 Maintaining information. Saat ini ada masalah, seperti inkonsistensi dalam
terminologi dan kegagalan untuk menghapus informasi lama.
 Viewing information. Sering digunakan dalam membatasi akses ke informasi
tertentu kepada kelompok tertentu. "Views," yang menyembunyikan
informasi tertentu, tetapi sulit untuk mewujudkannya dengan melalui
intranet (atau Web).
Tujuan dari Web Semantik adalah untuk memungkinkan lebih banyak sistem
manajemen pengetahuan:

 Pengetahuan akan dikelola di sebuah ruang yang konseptual sesuai dengan


maknanya.
 Alat otomatis untuk pemeliharaan dan penemuan pengetahuan
 Semantik penjawab permintaan
 Query, dapat menjawab kebutuhan untuk kbeberapa dokumen
 Dapat melihat bagian-bagian tertentu dari informasi (bahkan bagian dari
dokumen).

62
1. Structured Web Documents in XML
Sekarang HTML (hypertext markup language) adalah bahasa standar di mana
halaman Web yang ditulis. HTML, pada permulaannya, berasal dari SGML (standard
generalized markup language), sebuah standar internasional (ISO 8879) untuk
definisi metode perangkat dan sistem-independen yang mewakili informasi, baik
manusia dan dapat dibaca oleh mesin. Contoh sederhana, sebuah halaman Web yang
berisi informasi tentang buku tertentu.

<h2>Nonmonotonic Reasoning: Context-Dependent


Reasoning</h2>
<i>by <b>V. Marek</b> and <b>M. Truszczynski</b></i><br>
Springer 1993<br>
ISBN 0387976892

Sebuah representasi XML yang khas dari informasi yang sama akan terlihat
seperti ini:

<book>
<title>Nonmonotonic Reasoning: Context- Dependent Reasoning</title>
<author>V. Marek</author>
<author>M. Truszczynski</author>
<publisher>Springer</publisher>
<year>1993</year>
<ISBN>0387976892</ISBN>
</book>

Before we turn to differences between the HTML and XML representations, let us
observe a few similarities. First, both representations use tags, such as <h2> and
</year>. Indeed both HTML and XML are markup languages: they allow one to write
some content and provide information about what role that content plays. Like HTML,
XML is based on tags. These tags may be nested (tags within tags). All tags in XML must
be closed (for example, for an opening tag ), whereas in HTML some tags, such as, may
be left open.

A less formal observation is that human users can read both HTML and XML
representations quite easily. Both languages were designed to be easily understandable
and usable by humans. But how about machines? Imagine an intelligent agent trying to
retrieve the names of the authors of the book in the previous example. Authors’ names
could appear immediately after the title or immediately after the word by are there two
authors? Or just one, called “V. Marek and M. Truszczynski”?

HTML documents do not contain structural information: pieces of the document and
their relationships. XML more easily accessible to machines because Every piece of
information is described. Relations are also defined through the nesting structure. E.g.,
the <author> tags appear within the <book> tags, so they describe properties of the
particular book.

63
A machine processing the XML document would be able to deduce that the author
element refers to the enclosing book element rather than by proximity considerations.
XML allows the definition of constraints on values E.g. a year must be a number of four
digits

The HTML representation provides more than the XML representation: The formatting
of the document is also described

 Τhe main use of an HTML document is to display information: it must define


formatting

 XML: separation of content from display

– same information can be displayed in different ways

Let us now consider another example, a famous law of physics. Consider the HTML text

<h2>Relationship force-mass</h2>
<i> F = M × a </i>

dan representasi XML

<equation>
<meaning>Relationship force-mass</meaning>
<leftside> F </leftside>
<rightside> M × a </rightside>
</equation>

If we compare the HTML document to the previous HTML document, we notice that
both use basically the same tags. In contrast, the second XML document uses completely
different tags from the first XML document. HTML representations are intended to
display information, so the set of tags is fixed: lists, bold, color, and so on. In XML we
may use information in various ways, and it is up to the user to define a vocabulary
suitable for the application. XML meta markup language: language for defining markup
languages.

1.1. The XML Language


1.1.1. Prolog
Prolog terdiri dari deklarasi XML dan referensi opsional untuk dokumen
penataan eksternal. Berikut adalah contoh dari deklarasi XML :

<?xml version="1.0" encoding="UTF-16"?>


Ini menentukan bahwa dokumen saat ini adalah dokumen XML, dan
mendefinisikan versi dan pengkodean karakter yang digunakan dalam sistem
tertentu (seperti UTF-8, UTF-16, dan ISO 8859-1). Sebuah referensi untuk dokumen
penataan eksternal terlihat seperti ini :

<!DOCTYPE book SYSTEM "book.dtd">

64
Berikut struktur informasi dalam file lokal yang disebut book.dtd. Sebagai ganti
referensi mungkin URL. Jika hanya nama yang digunakan secara lokal atau hanya
URL yang digunakan, maka SYSTEM label digunakan.

1.1.2. Element
Elemen XML mewakili "sesuatu" dokumen XML membicarakan tentang, seperti
buku, penulis, dan penerbit. Mereka menyusun konsep utama dokumen XML.
Sebuah elemen terdiri dari tag pembuka, isi, dan tag penutup. Sebagai contoh,

<lecturer>David Billington</lecturer>

Nama tag dapat dipilih hampir secara bebas; ada sedikit pembatasan. Yang paling
penting adalah bahwa karakter pertama harus berupa huruf, garis bawah, atau titik
dua “;” dan bahwa tidak ada nama dapat dimulai dengan string "xml" di kombinasi
kasus (seperti "Xml" dan "XML").
Isi konten mungkin teks, atau elemen lain, atau tidak. Sebagai contoh,

<lecturer>
<name>David Billington</name>
<phone>+61-7-3875 507</phone>
</lecturer>

Jika tidak ada konten, maka elemen ini disebut kosong. Elemen kosong seperti :

<lecturer></lecturer>

dapat disingkat :

<lecturer/>

1.1.3. Atribut
Sebuah elemen kosong belum tentu tidak berarti, karena mungkin memiliki
beberapa sifat dalam hal atribut. Atribut adalah pasangan nama-nilai di dalam tag
pembukaan elemen :

<lecturer name="David Billington" phone="+61-7-3875 507"/>

berikut adalah contoh dari atribut untuk elemen tidak kosong :

<order orderNo="23456" customer="John Smith" date="October 15, 2002">


<item itemNo="a528" quantity="1"/>
<item itemNo="c817" quantity="3"/>
</order>

Informasi yang sama bisa saja ditulis sebagai berikut, menggantikan atribut
dengan elemen bersarang:

<order>

65
<orderNo>23456</orderNo>
<customer>John Smith</customer>
<date>October 15, 2002</date>
<item>
<itemNo>a528</itemNo>
<quantity>1</quantity>
</item>
<item>
<itemNo>c817</itemNo>
<quantity>3</quantity>
</item>
</order>

1.1.4. Komentar
Sebuah komentar adalah bagian dari teks yang akan diabaikan oleh parser.
Memiliki bentuk :

<!-- This is a comment -->

1.1.5. Processing Instructions (PIs)


PIs menyediakan mekanisme untuk menyampaikan informasi kepada aplikasi
tentang bagaimana menangani elemen. Bentuk umumnya adalah :

<?target instruction?>

Sebagai contoh,

<?stylesheet type="text/css" href="mystyle.css"?>

1.1.6. Dokumen XML Well-Formed


Sebuah dokumen XML dinyatakan well-formed jika sintaksis benar. Berikut ini
adalah beberapa aturan sintaksis :

 Hanya ada satu elemen terluar dalam dokumen (disebut elemen root).
 Setiap elemen berisi pembukaan dan tag penutup yang sesuai.
 Tags mungkin tidak tumpang tindih.
 Atribut dalam elemen memiliki nama yang unik.
 Elemen dan tag nama harus diperbolehkan.
1.1.7. Model Tree Dokumen XML
Hal ini dimungkinkan untuk membuat model tree dokumen well-formed XML;
sehingga tree menyediakan model data formal untuk XML. Sebagai contoh,
dokumen berikut:

<?xml version="1.0" encoding="UTF-16"?>


<!DOCTYPE email SYSTEM "email.dtd">
<email>
<head>

66
<from name="Michael Maher"
address="michaelmaher@cs.gu.edu.au"/>
<to name="Grigoris Antoniou"
address="grigoris@cs.unibremen.de"/>
<subject>Where is your draft?</subject>
</head>
<body>
Grigoris, where is the draft of the paper
you promised me last week?
</body>
</email>

Gambar 2.1 menunjukkan representasi tree dokumen XML ini. Pada tree ini
terdapat :

• Ada satu akar.

• Tidak ada siklus.

• Setiap node, selain akar, memiliki tepat satu parent.

• Setiap node memiliki label.

• Urutan elemen penting.

Gambar Error! No text of specified style in document..1 Contoh Hirariki Sistem Akademik Perusahaan

1.2. Struktur DTD


Untuk tujuan ini perlu untuk mendefinisikan semua elemen dan atribut nama yang
dapat digunakan. Selain itu, struktur juga harus didefinisikan: nilai-nilai atribut yang
dapat mengambil, unsur-unsur yang mungkin atau harus terjadi dalam unsur-unsur
lain, dan sebagainya. Ada dua cara untuk mendefinisikan struktur dokumen XML:

67
DTD, cara yang lebih tua dan lebih terbatas, dan XML Schema, yang menawarkan
kemungkinan diperpanjang, terutama untuk definisi tipe data.

DTDs

Komponen dari DTD dapat didefinisikan dalam file terpisah (DTD eksternal) atau
dalam dokumen XML itu sendiri (DTD internal). Biasanya lebih baik menggunakan
DTD eksternal, karena definisi mereka dapat digunakan di beberapa dokumen.
Sebaliknya duplikasi tidak bisa dihindari, dan pemeliharaan konsistensi dari waktu
ke waktu menjadi sulit.

1.2.1. Elemen
Elemen :

<lecturer>
<name>David Billington</name>
<phone> +61 − 7 − 3875 507 </phone>
</lecturer>

dari bagian sebelumnya. Sebuah DTD untuk elemen type1 ini terlihat seperti ini:

<!ELEMENT lecturer (name,phone)>


<!ELEMENT name (#PCDATA)>
<!ELEMENT phone (#PCDATA)>

Penjelasan DTD diatas :

• Jenis-jenis elemen lecturer, name, dan phone dapat digunakan dalam


dokumen
• Unsur lecturer mengandung unsur name dan elemen phone, dalam urutan
(sequence)
• Unsur name dan elemen phone mungkin memiliki konten apapun
• Dalam DTD, #PCDATA adalah satu-satunya jenis atom untuk elemen
Kami menyatakan bahwa unsur lecturer mengandung elemen name atau
elemen phone sebagai berikut:

<!ELEMENT lecturer (name|phone)>

Elemen lecturer mengandung unsur name dan phone dalam urutan apapun.

<!ELEMENT lecturer((name,phone)|(phone,name))>

1.2.2. Atribut
Elemen

<order orderNo="23456" customer="John Smith" date="October 15, 2002">


<item itemNo="a528" quantity="1"/>

68
<item itemNo="c817" quantity="3"/>
</order>

Dari bagian sebelumnya. DTD akan terlihat seperti ini:

<!ELEMENT order (item+)>


<!ATTLIST order
orderNo ID #REQUIRED
customer CDATA #REQUIRED
date CDATA #REQUIRED>
<!ELEMENT item EMPTY>
<!ATTLIST item
itemNo ID #REQUIRED
quantity CDATA #REQUIRED
comments CDATA #IMPLIED>

Dibandingkan dengan contoh sebelumnya, suatu hal yang baru sebuah jenis
item elemen didefinisikan kosong. Aspek baru lainnya adalah munculnya “+”
setelah item dalam definisi jenis urutan elemen. Ini adalah salah satu operator
kardinalitas:

 ? : Muncul nol kali atau sekali


 * : Muncul nol atau lebih
 + : Muncul satu kali atau lebih
Tidak ada operator kardinalitas berarti tepat sekali. Selain elemen didefinisikan,
kita harus mendefinisikan atribut. Hal ini dilakukan dalam daftar atribut. Komponen
pertama adalah nama dari jenis elemen yang daftar berlaku, diikuti dengan daftar
kembar tiga nama atribut, atribut jenis, dan jenis nilai. Nama atribut adalah nama
yang mungkin digunakan dalam dokumen XML menggunakan DTD.

1.2.3. Attribute Types


Jenis atribut mirip dengan tipe data yang telah ditetapkan, tapi pilihan sangat
terbatas. Jenis atribut yang paling penting adalah :

– CDATA, sebuah String

– ID, sebuah nama yang unik di seluruh dokumen XML

– IDREF, sebuah referensi ke elemen lainnya degan sebuah atribut ID


yang membawa nilai yang sama sebagai atribut IDREF

– IDREFS, Serial dari IDREFs

– (v1| . . . |vn), Sebuah enumerasi semua nilai yang mungkin.

69
1.2.4. Attribute Value Types
Ada 4 jenis nilai atribut :

 #REQUIRED

Atribut harus muncul di setiap terdapatnya jenis atribut di dokumen XML.

 #IMPLIED

Kemuncul atribut bersifat opsional.

 #FIXED "value"

Setiap elemen harus memiliki atribut ini

 "value"

Menentukan nilai default untuk atribut

1.2.5. Referensi
Ini merupakan contoh dalam penggunan ODREF dan IDREFS. Pertama-tama
membuat DTD:

<!ELEMENT family (person*)>


<!ELEMENT person (name)>
<!ELEMENT name (#PCDATA)>
<!ATTLIST person
id ID #REQUIRED
mother IDREF #IMPLIED
father IDREF #IMPLIED
children IDREFS #IMPLIED>

Berikut sebuah elemen XML yang terdapat pada DTD diatas :

<family>
<person id="bob" mother="mary" father="peter">
<name>Bob Marley</name>
</person>
<person id="bridget" mother="mary">
<name>Bridget Jones</name>
</person>
<person id="mary" children="bob bridget">
<name>Mary Poppins</name>
</person>
<person id="peter" children="bob">
<name>Peter Marley</name>
</person>
</family>

70
1.2.6. Entitas
Entitas XML dapat memainkan beberapa peran, seperti tempat untuk karakter
berulang, bagian dari data eksternal (misalnya, XML atau lainnya), atau sebagai
bagian dari deklarasi untuk elemen. Sebuah penggunaan yang khas dari entitas
internal, dan satu digunakan dalam bab-bab selanjutnya dari buku ini, mirip dengan
konstanta dalam bahasa pemrograman. Misalnya, dokumen memiliki beberapa
pemberitahuan hak cipta yang mengacu pada tahun berjalan. Maka masuk akal
untuk menyatakan entitas.

<!ENTITY thisyear " 2007 " >

1.2.7. Contoh Penutup


Contoh terakhir, berikut DTD untuk elemen email :

<!ELEMENT email (head,body)>


<!ELEMENT head (from,to+,cc*,subject)>
<!ELEMENT from EMPTY>
<!ATTLIST from name CDATA #IMPLIED
address CDATA #REQUIRED>
<!ELEMENT to EMPTY>
<!ATTLIST to name CDATA #IMPLIED
address CDATA #REQUIRED>
<!ELEMENT cc EMPTY>
<!ATTLIST cc name CDATA #IMPLIED
address CDATA #REQUIRED>
<!ELEMENT subject (#PCDATA)>
<!ELEMENT body (text,attachment*)>
<!ELEMENT text (#PCDATA)>
<!ELEMENT attachment EMPTY>
<!ATTLIST attachment
encoding (mime|binhex) "mime"
file CDATA #REQUIRED>

Penjelasan atribut pada DTD diatas :

 Elemen head terdapat :


– Sebuah elemen from

– Sedikitnya 1 elemen to

– 0 atau lebih elemen cc

– Sebuah elemen subject

 Di dalam elemen from, to, dan cc

– Atribut name tidak wajib

– Atribut address wajib

71
 Elemen body terdapat :

– Elemen text

– Mungkin diikuti dengan nomor elemen attachment

 Atribut encoding pada sebuah elemen attachment harus memiliki antara


nilai “mime” atau “binhex”

– “mime” adalah nilai default

Penjelasan DTD diatas :

 DTD dapat diartikan sebagai Extended Backus-Naur Form (EBNF) :

– <!ELEMENT email (head,body)> sama dengan email ::= head body

 Mungkin melakukan rekursif pada DTD

<!ELEMENT bintree ((bintree root bintree)|emptytree)>

72
BAB 9
XML Technology 2

XML Schema
Pengertian XML Schema

XML Schema adalah sebuah bahasa yang digunakan untuk


mengekspresikan sebuah dokumen XML. XML Schema dapat digunakan untuk
membuat sebuah dokumen XML untuk berbagai keperluan yang spesifik seperti
penyimpanan data dalam format standar. XML Schema menjelaskan struktur dari
sebuah dokumen XML.

Macam – macam bahasa Schema

Terdapat banyak bahasa Schema yang digunakan pada saat ini,


diantaranya seperti Document Type Definitions (DTD), Relax-NG, Schematron dan
W3C XSD (XML Schema Definitions). Dari beberapa bahasa Schema diatas, yang
paling sering dipakai adalah XSD. XSD lebih diunggulkan ketimbang DTD karena
mendukung konsep tipe data.

Fungsi XML Schema

Sebuah Schema dapat digunakan untuk :


 Untuk memberikan elemen dan atribut dalam sebuah vocabulary
 Mengasosiakan jenis data, seperti integer, string, dll, atau yang lebih
khusus seperti ukuran, warna, dll, dengan nilai nilai yang ditemukan dalam
sebuah dokumen
 Untuk membatasi mana elemen dan atribut yang dapat muncul dan yang
tidak boleh muncul dalam elemen tersebut, seperti judul bab yang ada
dalam sebuah bab, dan sebuah bab harus memiliki atau terdiri dari sebuah
judul bab dan satu atau lebih paragraf
 Untuk menyediakan dokumen yang dapat dibaca oleh manusia, serta
dapat diproses oleh mesin
 Untuk memberikan deskripsi formal dari satu atau lebih dokumen.

Keunggulan XML Schema

Berikut adalah beberapa keunggulan XML Schema :


 Lebih mudah dalam pemetaan isi dokumen
 Lebih mudah untuk mengvalidasi kebenaran data
 Lebih mudah dalam memberi batasan pada data

73
 Lebih mudah dalam menentukan pola data
 Lebih mudah untuk mengkonversi data kedalam tipe data lain
 XML Schema ditulis menggunakan dalam format XML

Penggunaan dan Perbandingan XML Schema

XML Schema memiliki beberapa built-in tipe data. Jenis yang paling umum adalah:
 xs: string
 xs: decimal
 xs: integer
 xs: boolean
 xs: date
 xs: time

Berikut syntax untuk mendefinisikan sebuah elemen sederhana :


<xs:element name="xxx" type="yyy"/>

Contoh :

XML :
<lastname>Refsnes</lastname>
<age>36</age>
<dateborn>1970-03-27</dateborn>

XSD :
<xs:element name="lastname" type="xs:string"/>
<xs:element name="age" type="xs:integer"/>
<xs:element name="dateborn" type="xs:date"/>

Berikut syntax untuk mendefinisikan sebuah atribut sederhana :


<xs:attribute name="xxx" type="yyy"/>

Contoh :

XML :
<lastname lang="EN">Smith</lastname>

XSD :
<xs:attribute name="lang" type="xs:string"/>

Restrictions pada XSD bertujuan untuk menfilter value yang boleh digunakan dan
yang tidak boleh digunakan oleh elemen maupun atribut. Contoh sebagai berikut
:

Contoh berikut yaitu untuk membatasi elemen bernama “age” . Nilai dari “age”
tidak boleh bernilai dibawah 0 atau lebih dari 120

74
XSD :
<xs:element name="age">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="120"/>
</xs:restriction>
</xs:simpleType>
</xs:element>

Berikut perbandingan DTD dan XSD

XML:
<?xml version="1.0"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

DTD:
<!ELEMENT note (to, from, heading, body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>

XSD:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com"
elementFormDefault="qualified">

<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>

</xs:schema>

Dokumen XML memiliki referensi ke sebuah DTD:

75
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM
"http://www.w3schools.com/dtd/note.dtd">

Dokumen XML memiliki referensi ke XML Schema:


<?xml version="1.0"?>
<note xmlns="https://www.w3schools.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://www.w3schools.com note.xsd">

<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

XPath
Pengertian

XPath (XML Path Language) adalah bahasa kueri untuk memilih bagian -
bagian (nodes) dari sebuah dokumen XML. XPath menggunakan path expression
untuk memilih node yang akan diambil nilainya dalam sebuah dokumen XML. Path
expression pada XPath terlihat hampir sama seperti direktori pada windows
explorer.

Syntax

Sebuah ekspresi XPath dievaluasi sehubungan dengan node konteks.


Sebuah penentu axis seperti 'anak' atau 'keturunan' menentukan arah untuk
menavigasi dari node konteks. Node test dan predikat digunakan untuk menyaring
node - node yang ditentukan oleh penentu axis: Sebagai contoh node test 'A'
mewajibkan bahwa semua node yang akan dinavigasi harus memiliki label 'A'.
Sebuah predikat dapat digunakan untuk menentukan bahwa node - node yang
terpilih memiliki beberapa properti tertentu, yang ditentukan oleh XPath sendiri.

Ada dua macam sintaks XPath : sintaks yang dipendekkan, lebih ringkas dan
memungkinkan XPath dapat ditulis dan dibaca dengan mudah dan, dalam banyak
kasus, konstruksi dan karakter yang tidak asing lagi. Sintaks penuh lebih detil dan
deskriptif serta memungkinkan lebih banyak pilihan yang dapat ditentukan.

Diberikan suatu dokumen XML seperti :


<A>
<B>
<C>
</C>

76
</B>
</A>

Bentuk XPath paling sederhana berbentuk seperti

/A/B/C

Yang memilih elemen C yang merupakan anak dari elemen B yang juga merupakan
anak dari elemen A yang membetuk elemen terluar dari dokumen XML tersebut.
Sintaks XPath dibuat meniru |URI (pengidentifikasi sumber seragam) dan sintaks
letak file Unix.

Ekspresi yang lebih rumit dapat dibuat dari menentukan axis selain dari axis 'anak'
yang standar, dan sebuah node test selain nama sederhana maupun predikat,
yang dapat ditulis dalam kurung siku dalam banyak langkah. Sebagai contoh,
ekspresi

A//B/*[1]

memilih elemen pertama ('[1]'), apapun namanya ('*'), yang merupakan anak ('/')
dari elemen B yang merupakan anak dari apapun yang merupakan anak dari
elemen A, dengan berbagai macam tingkat kedalaman ('A//'). Elemen A adalah
anak dari node konteks sekarang (ekspresi XPath diatas tidak diawali dengan '/').
Jika ada lebih dari satu elemen B yang cocok dengan ekspresi diatas, ekspresi
XPath diatas akan memilih semua elemen pertama dari anak elemen B yang cocok
tersebut. ("(A//B/*)[1]" hanya akan memilih elemen pertama dari hasil ekspresi
diatas).

Selecting Nodes

Berikut adalah Path Expression yang dapat digunakan dalam Xpath :

Expression Description

nodename Memilih semua node dengan nama “noname”

/ Memilih dari root node

// Mencari semua ke semua node dalam dokumen

. Memilih node saat ini

.. Memilih parent dari node saat ini

@ Memilih atribut

Contoh :

77
bookstore/book

Memilih semua elemen “book” yang merupakan anak dari elemen “bookstore”
//@lang

Memilih semua atribut yang bernama “lang”


/bookstore/book[price>35.00]/title

Memilih semua judul pada elemen “book” yang memiliki atribut “price” lebih dari
35.00 dari elemen “bookstore”.

Contoh penggunaan XPath pada dokumen XML

XML :
<?xml version="1.0" encoding="UTF-8"?>

<bookstore>

<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>

<book category="children">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>

<book category="web">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>

<book category="web">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>

78
</book>

</bookstore>

Path :
/bookstore/book/title

Hasil :
Everyday Italian
Harry Potter
XQuery Kick Start
Learning XML

Path :
/bookstore/book[1]/title

Hasil :
Everyday Italian

Path :
/bookstore/book/price[text()]

Hasil :
30.00
29.99
49.99
39.95

Path :
/bookstore/book[price>35]/title

Hasil :
XQuery Kick Start
Learning XML

79
BAB 10
Web Service
A. APA ITU WEB SERVICE
Menurut W3C definisi web service adalah sebuah software aplikasi
yang dapat teridentifikasi oleh URI dan memiliki interface yang didefiniskan,
dideskripsikan, dan dimengerti
oleh XML dan juga mendukung interaksi langsung dengan software aplikasi yang
lain dengan menggunakan message berbasis XML melalui protokol internet.
Web service merupakan
perangkat lunak yang tidak terpengaruh oleh platform, ia akan menyediakan
method-method
yang dapat diakses oleh network dan juga akan menggunakan XML untuk
pertukaran data, khususnya pada dua entities bisnis yang berbeda. Definisi lain
dari Web service adalah sistem Dalam pengertian yang sederhana , XML Web
Services dapat di definisikan sebagai software yang dirancang untuk mendukung
interopabilitas mesin-ke-mesin yang dapat berinteraksi melalui jaringan. Web
service memiliki antarmuka yang dijelaskan dalam format mesin-processable
(khusus WSDL). Sistem lain berinteraksi dengan Web service dalam cara
ditentukan oleh deskripsi dengan menggunakan pesan SOAP, biasanya
disampaikan menggunakan HTTP dengan serialisasi XML dalam hubungannya
dengan Web lainnya yang terkait standar aplikasi yang diakses oleh aplikasi yang
lain. Mungkin orang berpendapat itu semacam web site, tetapi itu bukan
demikian. Ada perbedaan – perbedaan yang membedakan dengan web site.

Web service adalah aplikasi sekumpulan data (database), perangkat lunak


(software) atau bagian dari perangkat lunak yang dapat diakses secara remote
oleh berbagai piranti dengan sebuah perantara tertentu. Secara umum,web
service dapat diidentifikasikan dengan menggunakan URL seperti hanya web pada
umumnya. Namun yang membedakan web service dengan web pada umumnya
adalah interaksi yang diberikan oleh web service. Berbeda dengan URL web pada
umumnya, URL web service hanya menggandung kumpulan informasi, perintah,
konfigurasi atau sintaks yang berguna membangun sebuah fungsi-fungsi tertentu
dari aplikasi.
Web service dapat diartikan juga sebuah metode pertukaran data, tanpa
memperhatikan dimana sebuahdatabase ditanamkan, dibuat dalam bahasa apa
sebuah aplikasi yang mengkonsumsi data, dan di platform apa sebuah data itu
dikonsumsi. Web service mampu menunjang interoperabilitas. Sehingga web
service mampu menjadi sebuah jembatan penghubung antara berbagai sistem
yang ada.
Jadi, Apa itu Web Service?

80
• Mempertukarkan data dalam format XML.
• Tersedia dan dikomunikasikan melalui Internet atau intranet.
• Bersifat operating system/programming language independent.
• Berupa web application yang tidak memiliki web interface.
• Web service mempertukarkan data antara service requestor (aplikasi
yang menggunakan data/service) dan service provider (server penyedia
data/service) menggunakan service registry (yang berisi kumpulan
service-service), dengan salah satu teknologi:
- XML-RPC
- SOAP
- REST
Kapan Kita Gunakan Web Services ?
Web Services itu digunakan saat kita akan mentransformasi sebuat bisnis
logik / sebuah class dan object yang terpisah dalam 1 ruang lingkup yang menjadi
satu, sehingga tingkat keamanan dan security dapat di tangani dengan baik. Selain
itu Web Service juga lebih mudah dalam process deploymentnya, karena tidak
memerlukan registrasi khusus ke dalam sistem operasi. Web Service cukup
diupload ke Web Server dan siap diakses oleh pihak-pihak yang telah diberikan
otorisasi. Web Service berjalan di port 80 yang merupakan protokol standar HTTP,
dengan demikian mengurangi resiko terblokir oleh firewall. Kendala arsitektur
COM/DCOM adalah memerlukan konfigurasi khusus di sisi firewall, dan ini tidak
perlu dilakukan untuk mengakses Web Service.
Contoh nyata web service

Perbedaan website dan web service :

81
 Website :
Web pada umumnya digunakan untuk melakukan respon dan request yang
dilakukan antara client dan server. Sebagai contoh, seorang pengguna
layanan web tertentu mengetikan alamat url web untuk membentuk
sebuahrequest. Request akan sampai pada server, diolah dan kemudian disajikan
dalam bentuk sebuah respon. Dengan singkat kata terjadilah hubungan client-
server secara sederhana.
- Dibuat untuk berinteraksi langsung dengan user
- Dibuat untuk bekerja pada web browser
- Bersifat front-end
- Bersifat human-centric: manusia menjadi actor utama
- Memiliki web interface

 Web Service :
Web service hubungan antara client dan server tidak terjadi secara langsung.
Hubungan antaraclient dan server dijembatani oleh file web service dalam format
tertentu. Sehingga akses terhadap databaseakan ditanggani tidak secara langsung
oleh server, melainkan melalui perantara yang disebut sebagai web service. Peran
dari web service ini akan mempermudah distribusi sekaligus integrasi database
yang tersebar di beberapa server sekaligus.
- Dibuat untuk berinteraksi langsung dengan applikasi yang lain,
baik berbeda OS sekalipun, bukan dengan user.
- Dibuat untuk bekerja pada semua tipe client applikasi / perangkat
device
- Bersifat behind the scene.
- Bersifat application-centric: komunikasi terjadi antar Aplikasi
- Tidak memiliki interface yang baik

B. KEUNGGULAN DAN KEGUNAAN WEB SERVICE


 Keunggulan :
- Web Service menyediakan interoperabilitas antar berbagai
aplikasi perangkat lunak yang berjalan pada platform yang
berbeda.
- Web Service menggunakan standard dan protocol yang bersifat
terbuka.
- Pemanfaatan HTTP, Web Service dapat bekerja melalui banyak
pengukuran keamanan firewall yang umum tanpa menuntut
perubahan bagi aturan firewall filtering.
- Web Service mengijinkan perangkat lunak dan service dari
perusahaan dan lokasi yang berbeda untuk dikombinasikan.
- Web service mengijinkan penggunaan kembali service dan
komponen didalam suatu infrastruktur.

82
- Web service dapat secara bebas digunakan (loosely coupled)
dengan demikian memudahkan suatu pendekatan terdistribusi ke
peintegrasian aplikasi.
 Kegunaan :
- Web service dapat membantu perantara pada integrasi platform
sepanjang eksekusi mesin virtual, integrasi antara Web dan OO
Middleware, integrasi dari aliran kerja terisolasi dan seviceservice,
pertukaran data pada aplikasi yang berbeda-beda.
- Format penggunaan terbuka untuk semua platform.
- Menggunakan standard-standard “membuka service sekali” dan
mempunyai pemakai banyak
- Routing and pengiriman.
- Security.
- Management and monitoring.
- Schema and service design.
- Akselerasi.
- Terbuka, standard-standard berbasis teks.
- Pencapaian modular.
- Tidak mahal untuk diimplementasikan (relatif).
- Mengurangi biaya integrasi aplikasi enterprise.
- Implementasi yg incremental.
- Salah satu kelebihan yang ditawarkan oleh Web Service adalah
terutama terletak pada interoperabilitas tinggi dan
penggunaannya yang dapat diakses kapanpun dan dimanapun
selama mesin kita terhubung oleh jaringan internet.
- Web Services dapat diakses melalui protocol terbuka yang
memanfaatkan Web melalui Simple Object Access Protocol (SOAP)
dengan Bahasa Web Services Description Language (WSDL) dan
teregistrasi dalam Universal Discovery Description and Integration
(UDDI).

C. PENGEMBANGAN DAN EVOLUSI WEB SERVICE


Pondasi Web Service

83
 Pengembangan Service Requestor (Client) :

 Pengembangan Service Provider (Server) :

D. XML-RPC

Pengertian XMLRPC menurut http://www.xmlrpc.com adalah suatu spesifikasi


dan set implementasi yang mengijinkan perangkat lunak yang sistem operasi
terpisah, berjalan di lingkungan yang berbeda untuk membuat procedure call di
internet.
XMLRPC menggunakan HTTP sebagai transport dan XML sebagai encoding.
XMLRPC dirancang sesederhana mungkin namun dapat mentransmisikan,
memproses dan mengirim balik struktur data yang kompleks.

84
Dalam spesifikasinya, XMLRPC didefinisikan sebagai suatu protokol
pemanggilan prosedur secara remote yang bekerja di lingkungan internet. suatu
pesan XMLRPC adalah suatu request HTTP-POST. Body dari request adalah XML.
Suatu prosedur mengirimkan pesan ke server dan nilai balikannya juga terformat
sebagai XML. Parameter prosedur dapat berupa skalar, angka, string, tanggal dan
seterusnya. Dapat pula berupa complex record maupun list structure.

Berikut adalah contoh request XMLRPC :


POST /RPC2 HTTP/1.0
User-Agent: Frontier/5.1.2 (WinNT)
Host: betty.userland.com
Content-Type: text/xml
Content-length: 181
<?xml version=”1.0″?>
<methodCall>
<methodName>examples.getStateName</methodCall>
<params>
<param>
<value><string>Hello Server !</string></value>
</param>
</params>
</methodCall>

yang perlu diperhatikan :


- semua request XMLRPC secara default dikirimkan dengan method POST dan
pasti di atas HTTP/1.0,
- bila server yang dituju tidak hanya menangani pemanggilan XMLRPC saja
maka format URI-nya harus dituliskan /RPC2 yang akan memberitahukan
server untuk mengarahkan request tersebut ke RPC2 responder,
- bila server hanya menangani pemanggilan XMPRPC saja maka URI ini boleh
dikosongkan atau hanya berupa slash (karakter garis miring ke kanan),
- User-Agent dan Host harus dituliskan,
- Content-Type adalah text/xml,
- Content-Length harus dituliskan dan harus benar,
- versi XML yang digunakan adalah 1.0,
- dalam sekali pengiriman request XMLRPC hanya dijinkan mengirim satu
<methodCall>,
- sebuah <methodCall> dipanggil berdasarkan namanya yang ditulis
dalam tag <methodName> yang merupakan suatu string. String ini hanya
boleh mengandung karakter-karakter indentifier yaitu : huruf besar dan kecil
(A-z), karakter angka (0-9), karakter garis bawah (underscore),
titik, colon dan slash,

85
- jika pemanggil prosedur memiliki parameter maka <methodCall> harus
mengandung sebuah sub-items <params>. Sebuah <params> dapat terdiri
dari beberapa <param> yang masing-masing memiliki sebuah nilai <value>,
- Tipe data yang dikirimkan ditulis dalam bentuk tag dengan
penjelasan masing-masing tipe data seperti berikut ini :
- <i4> atau <int> adalah 4 byte signed integer,
- <bolean> adalah tipe data bolean, 1 untuk true dan 0 untuk false,
- <string> yang tentu anda sudah tahu yaitu tipe data string,
- <double> yaitu double-precision signed floating point number,
- <dateTime.iso8601> adalah tipe data date/time,
- <base64> adalah base64-encoded binary.

Berikut adalah contoh response dari server :


HTTP/1.1 200 OK
Connection: Close
Content-Length: 158
Content-Type: text/xml
Date: Fri, 12 Jan 2007 14:30:32 GMT
Server: UserLand Frontier/5.1.2-WinNt
<?xml version=”1.0″?>
<methodResponse>
<params>
<param>
<value><string>Hello Client !</string></value>
</param>
</params>
</methodResponse>

yang perlu diperhatikan :


- Kecuali ada lower-level error selalu dikembalikan 200 OK,
- Content-Type adalah text/xml,
- Content-Length harus ada dan harus benar,
- Body dari response adalah sebuah struktur XML tunggal
<methodResponse>,
- sebuah <methodeResponse> hanya mengandung sebuah <params> yang
mengandung sebuah <param> dengan sebuah <value>,
- tipe data dari <value> mungkin berupa <struct>, <int> ataupun <string>.

RPC merupakan suatu teknik untuk mendistribusikan secara konstruktif


aplikasi berbasis client-server. Sebelum membahas RPC lebih mendalam, akan
sedikit diulas perihal client-server. Kebanyakan dari kita menganggap
bahwa client-server mengandung pengertian bahwa ada program yang dijalankan
di komputer server yang dapat memberikan layanan atas request oleh program

86
yang dijalankan di komputer client yang beda dengan komputer server namun
saling terhubung dengan media/link, tata cara jalur komunikasi /protokol, port dan
tata cara/aturan pemanggilan tertentu. Asumsi ini sama sekali tidak salah. Tata
cara/aturan pemanggilan inilah yang bisa dikatakan sebagai RPC.
Namun demikian sebenarnya RPC dikembangkan dari
pemanggilan prosedur lokal/konvensional pada satu sistem komputer yang biasa
disebut sebagai Procedure Call saja. Procedure Call sendiri adalah suatu
mekanisme pemanggilan/penanganan antar proses dalam satu sistem komputer.
Jadi diperlukan ruang pengalamatan yang sama (the same address space)
agar dimungkinkan pemanggilan suatu prosedur. Dua proses mungkin saja
berjalan dalam satu sistem yang sama namun bisa juga berada pada sistem yang
berbeda yang terhubung melalui network seperti asumsi diatas.
Dengan RPC, para programmer aplikasi terdistribusi dapat menghindarkan
diri dari kerumitan antar muka/interface pada network. Kebebasan transport dari
suatu RPC dapat melindungi aplikasi dari elemen-elemen fisk dan logik atas
mekanisme komunikasi dan mengijinkan aplikasi menggunakan variasi
sistem transport. RPC membuat model client/server menjadi powerful dan mudah
diprogram.
Pada bab implementasi, nantinya akan kita buat program yang dapat melakukan
pemanggilan prosedur lokal maupun yang memiliki kemampuan Remote
Procedure Call dengan bahasa pemrograman Delphi.
Adapun tujuan akhirnya adalah membuat program yang bisa menerapkan
sistem komputasi client-server dengan Remote Procedure Call dimana data yang
dipertukarkan terformat sebagai dokumen XML. Hal inilah yang dikenal sebagai
XMLRPC.

87
BAB 11
Web Service Technologies

A. Definisi Web Service


Berdasarkan W3C Web services Architecture Working Group, definisi web
service adalah sebuah sistem software yang di desain untuk mendukung
interoperabilitas interaksi mesin ke mesin melalui sebuah jaringan. Interface web
service dideskripsikan dengan menggunakan format yang mampu diproses oleh
mesin (khususnya WSDL). Sistem lain yang akan berinteraksi dengan web service
hanya memerlukan SOAP, yang biasanya disampaikan dengan HTTP dan XML
sehingga mempunyai korelasi dengan standar Web (Web Services Architecture
Working Group, 2004). Sistem lain yang akan berinteraksi dengan web service
hanya memerlukan SOAP, yang biasanya disampaikan dengan HTTP dan XML
sehingga mempunyai korelasi dengan standar Web (Web Services Architecture
Working Group, 2004).

Definisi lain dari web service yaitu sebuah software aplikasi yang dapat
teridentifikasi oleh URL dan memiliki interface yang didefinisikan dan dimengerti
oleh XMLdan juga mendukung interaksi langsung dengan software aplikasi yang
lain dengan menggunakan message berbasis XML melalui protocol internet. Web
service merupakan perangkat lunak yang tidak terpengaruh oleh platform, ia akan
menyediakan method-method yang dapat diakses oleh network dan juga akan
menggunakan XML untuk pertukaran data, khususnya pada dua entities bisnis
yang berbeda.

Dalam pengertian yang sederhana, XML Web Service dapat difeinisikan


sebagain aplikasi yang lain. Banyak yang berpendapat bahwa web service
semacam web site tetapi dua hal tersebut sangat berbeda. Ada perbedaan yang
membedakan web service dengan web site.

Web pada umumnya digunakan untuk melakukan respon dan request yang
dilakukan antara client dan server. Sebagai contoh, seorang pengguna layanan

88
web tertentu mengetikan alamat url web untuk membentuk sebuah request.
Request akan sampai pada server, diolah dan kemudian disajikan dalam bentuk
sebuah respon. Dengan singkat kata terjadilah hubungan client-server secara
sederhana.

Sedangkan pada web service hubungan antara client dan server tidak terjadi
secara langsung. Hubungan antara client dan server dijembatani oleh file web
service dalam format tertentu. Sehingga akses terhadap databaseakan ditanggani
tidak secara langsung oleh server, melainkan melalui perantara yang disebut
sebagai web service. Peran dari web service ini akan mempermudah distribusi
sekaligus integrasi database yang tersebar di beberapa server sekaligus.

Web Site Web Service


- Memiliki web interface - Tidak memiliki interface yang
- Dibuat untuk berinteraksi bagus
langsung dengan user - DIbuat untuk berinteraksi
- DIbuat untuk bekerja pada langsung dengan aplikasi yang
web browser lain baik beda dengan
OS/konsep sekalipun

Web service bertujuan untuk meningkatkan kolaborasi antar pemrogram


dan perusahaan, yang memungkinkan sebuah fungsi di dalam Web Service dapat
dipinjam oleh aplikasi lain tanpa perlu mengetahui detil pemrograman yang
terdapat di dalamnya.

Beberapa alasan mengapa digunakannya web service adalah sebagai berikut:

1. Web service dapat digunakan untuk mentransformasikan satu atau


beberapa bisnis logic atau class dan objek yang terpisah dalam satu ruang
lingkup yang menjadi satu, sehingga tingkat keamanan dapat ditangani
dengan baik.
2. Web service memiliki kemudahan dalam proses deployment-nya, karena
tidak memerlukan registrasi khusus ke dalam suatu sistem operasi. Web
service cukup di-upload ke web server dan siap diakses oleh pihak-pihak
yang telah diberikan otorisasi.
3. Web service berjalan di port 80 yang merupakan protokol standar HTTP,
dengan demikian web service tidak memerlukan konfigurasi khusus di sisi
firewall.

89
B. Arsitektur Web Service

Web service memiliki tiga entitas dalam arsitekturnya, yaitu:

1. Service Requester (peminta layanan)


Peminta layanan yang mencari dan menemukan layanan yang dibutuhkan
serta menggunakan layanan tersebut.
2. Service Provider (penyedia layanan)
Berfungsi untuk menyediakan layanan/service dan mengolah sebuah
registry agar layanan-layanan tersebut dapat tersedia.
3. Service Registry (daftar layanan)
Berfungsi sebagai lokasi central yang mendeskripsikan semua
layanan/service yang telah di-register.

C. Tipe Web Service


Terdapat dua tipe web service, yaitu :

1. SOAP Based Service


Layanan web service berbasis SOAP terdiri dari tiga element, yaitu :
a. SOAP (Simple Object Access Protocol)
b. UDDI (Universal Description, Discovery and Integration)
c. WDSL (Web Service Description Language)

90
2. Restful Based Service
Suatu web service yang diimplementasikan menggunakan prinsip HTTP
dan REST (Representational State Transfer)
D. SOAP (Simple Object Access Protocol)
Berdasarkan w3schools SOAP (Simple Object Access Protocol) adalah standar
untuk bertukar pesan-pesan berbasis XML melalui jaringan komputer atau sebuah
jalan untuk program yang berjalan pada suatu sistem operasi (OS) untuk
berkomunikasi dengan program pada OS yang sama maupun berbeda dengan
menggunakan HTTP dan XML sebagai mekanisme untuk pertukaran data, maka
SOAP dapat berkomunikasi dengan berbagai aplikasi meskipun terdapat
perbedaan sistem operasi, teknologi, dan bahasa pemrogramannya.

Sebenarnya peran SOAP di dalam teknologi web service sebagai protokol


pemaketan untuk pesan-pesan (messages) yang digunakan secara bersama oleh
aplikasi-aplikasi penggunanya serta menspesifikan secara jelas bagaimana cara
untuk meng-encode header HTTP dan file XML sehingga program pada suatu
komputer dapat memanggil program pada komputer lain dan mengirimkan
informasi, dan bagaimana program yang dipanggil memberikan tanggapan.

Kelebihan Kekurangan
 Bahasa, platform, dan  Secara konseptual lebih sulit,
transport agnostic lebih "heavy-weight" dibanding
 Dirancang untuk menangani REST
lingkungan komputasi  Lebih "verbose"
terdistribusi (membutuhkan lebih banyak
 Merupakan standar yang pernyataan/kode program)
berlaku untuk web servis,  Sulit untuk dikembangkan,
sehingga mempunyai mebutuhkan tools
dukungan yang lebih baik dari
standar yang lain (WSDL, WS-
*) dan tools dari berbagai
vendor
 Built-in error handling (faults)
 Extensibility

Struktur Dokumen SOAP Sebuah pesan SOAP adalah sebuah dokumen XML
yang berisi elemen-elemen berikut:

91
1. Envelope element yang mengidentifikasi dokumen XML sebagai sebuah
pesan SOAP.
2. Header element yang berisi informasi header.
3. Body element yang berisi panggilan dan merespon informasi.
4. Fault element yang berisi pesan kesalahan yang terjadi pada waktu
proses.
Struktur dokumen SOAP seperti berikut :

E. UDDI (Universal Description, Discovery and Integration)


UDDI adalah sebuah service registry bagi pengalokasian web service. UDDI
mengkombinasikan SOAP dan WSDL untuk pembentukan sebuah registry API bagi
pendaftaran dan pengenalan service. Service registry ini menyediakan sebuah
area umum dimana sebuah organisasi dapat mengiklankan keberadaan mereka
dan service yang mereka berikan (web service).

UDDI adalah sebuah framework yang mendefinisikan sebuah XML-based


registry dimana sebuah organisasi dapat meng-upload informasi mengenai service

92
yang mereka berikan. XML-based registry berisi nama-nama dari organisasi tsb,
beserta service dan deskripsi dari service yang mereka berikan.

Kemampuan atribut metadata untuk service-service didaftarkan pada UDDI,


dan lalu menjalankan quei-queri berdasarkan pada metadata tersebut yang
menengahi secara mutlak menuju tujuan dari UDDI pada kedua waktu desain dan
waktu pengekskusian.

UDDI (Universal Description, Discovery, and Integration) mempunyai tugas


sebagai berikut: Deskripsi yang Programmatic dari bisnis dan sevice yang didukung
Deskripsi yang Programmatic dari spesifikasi web service Model pemrograman
dan schema.

UDDI mendefinisikan sebuah set interface untuk mengakses registry UDDI


sebagai berikut :

a. UDDI Inquiry : melihat service


b. UDDI Publication : mempublikasikan dan modifikasi published
service
c. UDDI Security : mendefinisikan control akses dari published
service
d. UDDI Custody Transfer : Mengubah kepemilikan informasi dalam
registry dan memindahkannya dalam node yang berbeda
e. UDDI : Replication : fungsi untuk memberikan respon
terhadapentri registry antara node UDDI

F. WDSL (Web Service Description Language)


WSDL menggunakan XML untuk mendeskripsikan Web services dan
bagaimana untuk mengaksesnya. WSDL membantu pengguna web service dalam
memakai/menggunakan layanan web service. Web service akan terkunci dan tidak
berguna jika tanpa WSDL ini. WSDL menspesifikasikan lokasi service dan operasi
(methods) yang disediakan oleh web service.

Sebagai protokol komunikasi dan format pesan yang distandarkan pada


komunitas web, WSDL menjadi lebih tepat dan penting untuk mendeskripsikan
model komunikasi di beberapa langkah yang terstruktur (dalam memprogram web

93
service). WSDL menyediakan kebutuhan ini dengan mendefinisikan bentuk XML
untuk mendeskripsikan layanan jaringan sebagai kumpulan-kumpulan titik akhir
(endpoints) komunikasi yang mampu melakukan pertukaran pesan. Hal tersebut
sangat membantu komunikasi antara dua teknologi pada platform-platform
secara umum.

Element dalam WDSL, yaitu:

1. <type>, mendefinisikan skema tipe data XML yang digunakan oleh web
service
2. <message>, mendefinisikan elemen data dari masing-masing operasi
3. <portType>, mendefinisikan operasi dan message yang dapat ditampilkan
4. <binding>, mendefinisikan protocol dan format data untuk masing-
masing tipe port
Struktur Umum dari WDSL

WDSL juga dapat di-binding dengan SOAP. Binding WDSL akan mendefiniskan
format pesan dan detail protocol untuk web service. Sebagai contoh :

94
95
BAB 12
Web Service Definition Language (WSDL)

Pada mulanya WSDL 1.0 (September 2000) dikembangkan oleh IBM,


Microsoft, dan Ariba untuk mendeskripsikan Web Service pada SOAP. WSDL
dikembangkan dengan mengkombinasikan 2 bahasa service yaitu NASSL
(Network Application Service Spesification Language) dari IBM dan SDL (Service
Description Language) dari Microsoft. WSDL 1.1 dirilis pada maret 2001,
merupakan formalisasi dari WSDL 1.0. Tidak ada perubahan signifikan antara
versi WSDL 1.0 dan WSDL 1.1. WSDL 1.2 (Juni 2003) merupakan draf kerja W3C,
tetapi sudah menjadi WSDL 2.0. Menurut W3C, WSDL 1.2 lebih mudah dan
fleksibel untuk para developer daripada versi sebelumnya. WSDL 1.2 berupaya
untuk menghapus fitur non-interoperable dan juga mendefinisikan binding HTTP
1.1 secara lebih baik. WSDL tidak didukung oleh kebanyakan server/vendor
SOAP.WSDL 2.0 menjadi rekomendasi pada bulan Juni 2007. WSDL 1.2 diganti
menjadi WSDL 2.0 karena mempunyai perubahan secara substansi dari WSDL
1.1. Perubahan-perubahan tersebut meliputi:

 Menambahkan semantik pada bahasa deskripsi (description


language)
 Tidak mendukung operator overloading
 Menghilangkan message construct
 Ports diganti menjadi endpoints
WSDL merupakan kependekan dari Web Services Description
Language. WSDL adalah menggunakan XML untuk mendeskripsikan Web
services dan bagaimana untuk mengaksesnya. WSDL membantu pengguna web
service dalam memakai/menggunakan layanan web service. Web service akan
terkunci dan tidak berguna jika tanpa WSDL ini. WSDL menspesifikasikan lokasi
service dan operasi (methods) yang disediakan oleh web service.
Sebagai protokol komunikasi dan format pesan yang distandarkan pada
komunitas web, WSDL menjadi lebih tepat dan penting untuk mendeskripsikan
model komunikasi di beberapa langkah yang terstruktur (dalam memprogram
web service). WSDL menyediakan kebutuhan ini dengan mendefinisikan bentuk
XML untuk mendeskripsikan layanan jaringan sebagai kumpulan-kumpulan titik
akhir (endpoints) komunikasi yang mampu melakukan pertukaran pesan. Hal
tersebut sangat membantu komunikasi antara dua teknologi pada platform-
platform secara umum. Definisi layanan WSDL menyediakan dokumentasi untuk
sistem terdistribusi dan berfungsi sebagai panduan untuk mengotomatisasi
rincian yang terlibat dalam komunikasi antaraplikasi.

96
WSDL adalah :

 WSDL ditulis dalam XML


 WSDL adalah gateway (pintu) komunikasi antara penyedia dan pemakai
web service.
 WSDL adalah dokumen XML
 WSDL digunakan untuk menempatkan Web service
 WSDL juga digunakan untuk mendeskripsikan Web service
 WSDL merupakan rekomendasi W3C

Struktur WSDL dalam Web service


WSDL sering digunakan pada kombinasi SOAP dan XML Schema untuk menyediakan
Web service di internet. Berikut merupakan diagram yang memperlihatkan
elemen yang ada di dalam WSDL dan hubungannya.

97
Dokumen WSDL secara sederhana merupakan kumpulan definisi yang
mengandung lima elemen yaitu : tipe, pesan, portType, binding, dan servis.
Berikut penjelasan dari setiap elemen pada dokumen WSDL :

1. Elemen definisi merupakan/mengandung definisi dari satu atau lebih


servis, elemen ini memiliki beberapa atribut yang dapat di
deklarasikan antara lain :
a. name : bagian ini opsional
b. targetNamespace : merupakan logical namespace yang
mengandung informasi dari servis terkait. Dokumen WSDL dapat
mengimport dokumen WSDL lainnya, dan mengatur
targetNamespace menjadi unik agar tidak crash
c. xmlns : merupakan namespace default dari WSDL yang biasanya di
set dengan : http://schemas.xmlsoap.org/wsdl/.
d. Semua elemen WSDL seperti <definitions>, <types>, <message>
berada di dalam namespace ini

98
e. Xmlns:xcd dan xmlns:soap merupakan namespace standar yang di
gunakan pada SOAP
f. Xmlns:tns
g. Xmlns:ns1 adalah kumpulan dari schema targetNamespace yang
berada pada bagian <types>
Secara umum berikut adalah tata bahasa yang di gunakan dalam
elemen definisi yang juga menjadi akar atau root :

<wsdl:definitions name="nmtoken"? targetNamespace="uri"?>

<import namespace="uri" location="uri"/>*

<wsdl:documentation .... /> ?

<wsdl:types> ?
<wsdl:documentation .... />?
<xsd:schema .... />*
<-- extensibility element --> *
</wsdl:types>

<wsdl:message name="nmtoken"> *
<wsdl:documentation .... />?
<part name="nmtoken" element="qname"? type="qname"?/> *
</wsdl:message>

<wsdl:portType name="nmtoken">*
<wsdl:documentation .... />?
<wsdl:operation name="nmtoken">*
<wsdl:documentation .... /> ?
<wsdl:input name="nmtoken"? message="qname">?
<wsdl:documentation .... /> ?
</wsdl:input>
<wsdl:output name="nmtoken"? message="qname">?
<wsdl:documentation .... /> ?
</wsdl:output>
<wsdl:fault name="nmtoken" message="qname"> *
<wsdl:documentation .... /> ?
</wsdl:fault>
</wsdl:operation>
</wsdl:portType>

<wsdl:binding name="nmtoken" type="qname">*


<wsdl:documentation .... />?
<-- extensibility element --> *
<wsdl:operation name="nmtoken">*
<wsdl:documentation .... /> ?
<-- extensibility element --> *
<wsdl:input> ?
<wsdl:documentation .... /> ?
<-- extensibility element -->
</wsdl:input>
<wsdl:output> ?

99
<wsdl:documentation .... /> ?
<-- extensibility element --> *
</wsdl:output>
<wsdl:fault name="nmtoken"> *
<wsdl:documentation .... /> ?
<-- extensibility element --> *
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>

<wsdl:service name="nmtoken"> *
<wsdl:documentation .... />?
<wsdl:port name="nmtoken" binding="qname"> *
<wsdl:documentation .... /> ?
<-- extensibility element -->
</wsdl:port>
<-- extensibility element -->
</wsdl:service>

<-- extensibility element --> *

</wsdl:definitions>

2. Type, menyediakan informasi tentang tipe data yang kompleks yang


terdapat pada dokumen WSDL. Untuk interoprobabilitas yang tinggi
dan platform netral, WSDL lebih memilih menggunakan XSD(XML
Schema Definition) sebagai tipe sistem kanonikal dan memperlakukan
ini sebgai tipe sistem intrinsic. Tipe sistem XSD dapat digunakan untu
mendefinisikian tipe pesan terlepas dari apakah atau tidak format
yang dihasilkan sebenarnya adalah XML atau apakah skema XSD
memvalidasi suatu format tertentu.
Contoh dari Type :
<definitions .... >
<types>
<xsd:schema .... />*
</types>
</definitions>
Dalam kasus tertentu pendekatan yang direkomendasikan untuk
encoding menggunakan XSD antara lain :
a. Menggunakan bentuk elemen (bukan atribut)
b. Jangan menyertakan atribut atau elemen yang khas
c. jenis Array harus memperpanjang jenis Array didefinisikan dalam
SOAP v1.1 encoding skema
(http://schemas.xmlsoap.org/soap/encoding/) (terlepas dari
apakah bentuk yang dihasilkan benar-benar menggunakan
pengkodean ditentukan dalam Pasal 5 dari SOAP dokumen v1.1)
d. Gunakan xsd: Jenis anytype untuk mewakili bidang / parameter
yang dapat memiliki jenis.

100
3. Message, definisi abstrak dari data yang berkomunikasi. WSDL
mendefinisikan beberapa tipe message untuk penggunaan XSD
 Element, mengacu pada elemen CSD menggunakan QName
 Type, mengacu pada XSD simpleType atau complexType
menggunakan QName
Syntax pendefinisian message seperti berikut :

<definitions .... >


<message name="nmtoken"> *
<part name="nmtoken" element="qname"? type="qname"?/> *
</message>
Bagian yang diberi bold merupakan atribut dari message

4. portType, kumpulan operasi yang didukung oleh satu atau lebih


endpoint
<wsdl:definitions .... >
<wsdl:portType name="nmtoken">
<wsdl:operation name="nmtoken" .... /> *
</wsdl:portType>
</wsdl:definitions>

Nama dari portType atribut memiliki nama yang unik pada semua
portType yang di definisikan pada dokumen WSDL. WSDL memiliki 4
transmisi primitive yang dapat didukung oleh endpoint :
a. one-way, endpoint menerima pesan
Tata bahasa one-way operation :
<wsdl:definitions .... > <wsdl:portType .... > *
<wsdl:operation name="nmtoken">
<wsdl:input name="nmtoken"? message="qname"/>
</wsdl:operation>
</wsdl:portType >
</wsdl:definitions>

b. Request-response, endpoint menerima pesan, dan mengirim


pesan yang berkorelasi.
Tata bahasa Request-response operation :
<wsdl:definitions .... >
<wsdl:portType .... > *
<wsdl:operation name="nmtoken" parameterOrder="nmtokens">
<wsdl:input name="nmtoken"? message="qname"/>
<wsdl:output name="nmtoken"? message="qname"/>
<wsdl:fault name="nmtoken" message="qname"/>*
</wsdl:operation>
</wsdl:portType >
</wsdl:definitions>

101
c. Solicit-response, endpoint mengirimkan pesan, dan menerima
pesan yang berkorelasi.
Tata bahasa Solicit-response operation :
<wsdl:definitions .... >
<wsdl:portType .... > *
<wsdl:operation name="nmtoken" parameterOrder="nmtokens">
<wsdl:output name="nmtoken"? message="qname"/>
<wsdl:input name="nmtoken"? message="qname"/>
<wsdl:fault name="nmtoken" message="qname"/>*
</wsdl:operation>
</wsdl:portType >
</wsdl:definitions>

d. Notification, endpoint mengirimkan pesan.


Tata bahasa Notification :
<wsdl:definitions .... >
<wsdl:portType .... > *
<wsdl:operation name="nmtoken">
<wsdl:output name="nmtoken"? message="qname"/>
</wsdl:operation>
</wsdl:portType >
</wsdl:definitions>

5. Binding, Menjelaskan bagaimana operasi dipanggil dengan menentukan


protokol dan format data untuk operation dan message.
Tata bahasa Binding :
<wsdl:definitions .... >
<wsdl:binding name="nmtoken" type="qname"> *
<-- extensibility element (1) --> *
<wsdl:operation name="nmtoken"> *
<-- extensibility element (2) --> *
<wsdl:input name="nmtoken"? > ?
<-- extensibility element (3) -->
</wsdl:input>
<wsdl:output name="nmtoken"? > ?
<-- extensibility element (4) --> *
</wsdl:output>
<wsdl:fault name="nmtoken"> *
<-- extensibility element (5) --> *
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
</wsdl:definitions>

Atribut name memberikan nama yang unik di antara semua binding yang
didefinisikan dalam dalam dokumen melampirkan WSDL.
Sebuah binding harus menentukan tepat satu protocol dan tidak harus
menentukan informasi alamat.
6. Port, menentukan endpoint tunggal sebagai tujuan dari binding

102
Tata bahasa Port :
<wsdl:definitions .... >
<wsdl:service .... > *
<wsdl:port name="nmtoken" binding="qname"> *
<-- extensibility element (1) -->
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

Sebuah port tidak harus menentukan lebih dari satu alamat dan tidak harus
menentukan mengikat informasi apapun selain informasi alamat.
7. Service, menentukan alamat port untuk binding
<wsdl:definitions .... >
<wsdl:service name="nmtoken"> *
<wsdl:port .... />*
</wsdl:service>
</wsdl:definitions>

Port dalam service memiliki hubungan:


a. Tak satu pun dari port berkomunikasi satu sama lain (misalnya
output dari satu port tidak masukan dari yang lain).
b. Jika service memiliki beberapa port yang berbagi portType, namun
menggunakan binding atau alamat yang berbeda, port alternatif. Setiap
port memberikan perilaku semantik setara (dalam transportasi dan
format pesan keterbatasan yang ditetapkan oleh masing-masing
mengikat). Hal ini memungkinkan konsumen dari dokumen WSDL untuk
memilih port tertentu untuk berkomunikasi dengan berdasarkan
beberapa kriteria (protokol, jarak, dll).
c. Dengan memeriksa itu port, kita dapat menentukan jenis service
port. Hal ini memungkinkan konsumen dari dokumen WSDL untuk
menentukan jika ingin berkomunikasi dengan layanan tertentu
berdasarkan apakah atau tidak mendukung beberapa jenis port.
Hal ini berguna jika ada beberapa hubungan tersirat antara
operasi dari jenis port, dan bahwa seluruh set jenis port harus
hadir dalam rangka untuk menyelesaikan tugas tertentu.
Berikut adalah hubungan antara elemen dalam WSDL

103
Dokumen WSDL dapat mengandung elemen lain, seperti elemen ekstensi dan
service elemen yang memungkinkan menggabungkan beberapa web service
pada satu dokumen WSDL.
WSDL didasarkan pada Skema XML dengan membuatnya mungkin untuk
sepenuhnya menggambarkan layanan Web dalam hal pesan, operasi, antarmuka
(portTypes), binding, dan endpoint. definisi WSDL memungkinkan untuk
menghasilkan kode yang mengimplementasikan antarmuka yang diberikan, baik
pada klien atau server, membuat layanan Web dapat diakses oleh massa.

104
BAB 13
REST Web Services

Web service adalah standard yang digunakan untuk pertukaran data


antar aplikasi atau sistem. Mengapa perlu standard? karena masing2 aplikasi
yang melakukan pertukaran data bisa ditulis dengan bahasa pemrograman yang
berbeda atau berjalan pada platform yang berbeda. Contoh implementasi dari
web service antara lain adalah SOAP dan REST.
REST adalah singkatan dari REST stands for Representational State
Transfer. Merupakan standard dalam arsitektur web yang menggunakan Protocol
HTTP untuk pertukaran data. Konsep REST pertamakali diperkenalkan oleh Roy
Fielding pada tahun 2000. Cara kerjanya, REST server menyediakan jalur untuk
akses resource atau data, sedangkan REST client melakukan akses resource dan
kemudian menampilkan atau menggunakannya. Resource yang dihasilkan
sebenarnya berupa teks, namun formatnya bisa bermacam-macam tergantung
keinginan developer, umumnya adalah JSON dan XML.
Dalam mengakses sebuah resource, REST juga menggunakan konsep URI
dimana ada method yang digunakan, by default adalah GET. Berikut ini method-
method yang mendukung REST:
- GET, cocok untuk resource yang hanya perlu dibaca saja (read only)
- PUT, cocok digunakan untuk membuat/create resource baru.
- DELETE, cocok digunakan untuk menghapus suatu resource.
- POST, cocok digunakan untuk mengupdate suatu resource.
- OPTIONS, cocok digunakan untuk mendapatkan operasi yang disupport pada
resource.

Bagaimana cara kerja restful web service? Alurnya cukup sederhana


sebagai berikut: Mula2 sebuah client mengirimkan sebuah data atau request
melalui HTTP Request dan kemudian server merespon melalui HTTP Response.

1. Komponen dari http request adalah:


- Verb, HTTP method yang digunakan misalnya GET, POST, DELETE, PUT dll.

105
- URI, Uniform Resource Identifier (URI) untuk mengidentifikasikan lokasi
resource pada server.
- HTTP Version, menunjukkan versi dari HTTP yang digunakan, contoh HTTP v1.1.
- Request Header, berisi metadata untuk HTTP Request. Contoh, type
client/browser, format yang didukung oleh client, format dari body pesan, seting
cache dll.
- Request Body, konten dari data.
2. Sedangkan komponen dari http response adalah:
- Status/Response Code, mengindikasikan status server terhadap resource yang
direquest. misal : 404, artinya resource tidak ditemukan dan 200 response OK.
- HTTP Version, menunjukkan versi dari HTTP yang digunakan, contoh HTTP v1.1.
- Response Header, berisi metadata untuk HTTP Response. Contoh, type server,
panjang content, tipe content, waktu response, dll
- Response Body, konten dari data yang diberikan.

Dalam arsitektur REST, seharusnya tidak boleh menyimpan state atau


penanda dari client di server. Hal ini disebut sebagai stateless atau statelessness.
Contohnya pada kasus session, dimana session merupakan penanda client yang
disimpan diserver. Nah session pada arsitektur REST tidak diperbolehkan.

3. Keuntungan dari stateless antara lain:


- Web services dapat melayani masing2 request secara independent.
- Web services tidak perlu memaintain state user, hal ini tentu membuat desain
application lebih sederhana.
- HTTP merupakan protokol yang bersifat stateless.

Sedangkan kerugian dari stateless yaitu: Web services membutuhkan


informasi tambahan pada masing-masing request untuk menerjemahkan request
dan state dari client. Target utama dari stateless sebenarnya adalah untuk scale-
up concurrent akses terhadap aplikasi. Karena app tidak perlu menyimpan state
dari client sehingga meningkatkan jumlah service terhadap request pada satu
waktu.

106
BAB 14
Implementasi WS pada .NET

Web Service merupakan system perangkat lunak yang dirancang untuk


mendukung interaksi yang bisa beroperasi machine-to-machine melalui jaringan.
Tujuan web service adalah untuk menyediakan beberapa fungsi atas nama
pemiliknya yaitu seseorang atau organisasi seperti bisnis atau perorangan.

OOP pada .NET


Prinsip utama OOP adalah memperlakukan masing-masing bagian dari sebuah
aplikasi sebagai object. Masing-masing object pada OOP dapat menerima pesan,
memproses data, dan mengirim pesan pada object lainnya, serta dapat dilihat
sebagai sebuah item yang berdiri sendiri dengan tanggung jawab dan aturan
tertentu. Kegunaan OOP yang utama adalah memaksimalkan penggunaan kembali
kode program (code reuse). Saat melakukan drag and drop, prosesnya dikerjakan
oleh control designer sehingga tidak perlu mengetahui bagaimana object tersebut
bekerja. Dasar dari tipe sistem .NET adalah inheritance. Contoh implementasi
inheritance pada .NET adalah namespace. .NET mengenal enam tipe kategori yang
dapat didefinisikan pada namespace:
1. Classes
Merupakan tipe referensi yang didefinisikan dengan struktur Class .. End Class.
2. Arrays
Merupakan tipe referensi yang menyimpan object dari tipe yang lain. Class
Array didefinisikan pada namespace System pada .NET Framework Class
Library.
3. Structures
Didefinisikan dengan struktur Structure .. End Structure.
4. Interfaces
Didefinisikan dengan struktur Interface .. End Interface.
5. Delegates
Merupakan tipe referensi yang mengenkapsulasi method dan didefinisikan
dengan statement Delegate.
6. Enumerations
Merupakan kumpulan nilai yang berkaitan, didefinisikan dengan struktur
Enum .. End Enum.

107
Masing-masing dari enam kategori tersebut dapat mendefinisikan satu atau lebih
members. Tipe-tipe members pada .NET adalah:
1. Fields
Merupakan konstanta atau variabel yang mengizinkan akses tipe data. Fields
dapat didefinisikan oleh class, structure, dan enumeration. Fields digunakan
sebagai data yang bersifat read-only, atau sering didefinisikan sebagai
konstanta. Fields juga dapat berupa variabel read-only yang nilainya
didefinisikan kali pertama pada class konstruktor dan tidak dapat diubah lagi.
2. Properties
Property dapat didefinisikan untuk class, structure, dan interface. Umumnya
property dapat dibaca (readable) dan ditulis (writable), walaupun dapat juga
diperlakukan read-only atau write-only.
3. Methods
Merupakan function yang tersedia pada sebuah class, structure, interface,
atau delegate. Pada sebuah method terdapat parameter atau argumen yang
dapat dikirimkan by value atau by reference. By value berarti perubahan nilai
pada variabel parameter yang dikirimkan hanya akan berlaku di dalam
function, sementara by reference berarti perubahan nilai pada variabel di
dalam function akan tetap berlaku pada saat function tersebut selesai
dieksekusi dan kembali pada pemanggil. Keyword ByVal atau ByRef dapat
digunakan untuk menentukan bagaimana parameter dikirimkan.
4. Events
Event merupakan sebuah function yang dipanggil untuk merespon
kejadian/event tertentu, seperti klik mouse, penekanan tombol keyboard,
perubahan nilai field pada database, dan lain-lain. Umumnya event
mengirimkan dua parameter, yaitu object yang mengindikasikan
sender/pengirim event, dan object yang menyediakan informasi pada event
tersebut.

Web Service dengan .NET


- Procedure / Subroutine : adalah suatu kumpulan perintah-perintah yang
digunakan untuk suatu tujuan tertentu dan diberi nama tertentu. Procedure
tidak mengembalikan nilai serta tidak ada keyword return. Keyword yang
digunakan yaitu sub .. end sub.
- Function : adalah suatu kumpulan perintah-perintah yang digunakan untuk
suatu tujuan tertentu dan diberi nama tertentu serta mengembalikan nilai
tertentu keluar kepada fungsi yang memanggilnya. Function mengembalikan
nilai dan terdapat keyword return. Keyword yang digunakan yaitu function ..
end function.

108
Database Web Service
Web service memungkinkan interaksi aplikasi-ke-aplikasi melalui web apapun
platform, bahasa, dan format datanya. Kunci utama, termasuk Extensible Markup
Language (XML), Simple Object Access Protocol (SOAP), Web Services Description
Language (WSDL), dan Universal Description, Discovery, dan Integrasi (UDDI),
telah Diadopsi di seluruh industri perangkat lunak. Web service biasanya merujuk
ke layanan diimplementasikan dan disebarkan di server aplikasi tingkat
menengah. Namun dalam lingkungan yang heterogen dan tidak terkoneksi
meningkatnya kebutuhan untuk mengakses prosedur yang tersimpan, serta data
dan metadata melalui interface Web Service. Terdapat beberapa cara untuk
mengakses database yaitu:
- Imports System.Web.Services karena menggunakan Web Service
Imports System.Web.Services
- Imports System.Data.OleDb jika menggunakan OleDb database. Misalnya
Access atau Oracle atau MySQL
Imports System.Data.OleDb
- Imports System.Data.SqlClient jika menggunakan SQLServe database
Imports System.Data.SqlClient
- Imports Mysql.Data.MysqlClient jika menggunakan MySQL
Imports Mysql.Data.MysqlClient

Tipe Data Web Service (WS)


- Primitive Type
String, Char, Byte, Boolean, Int16, Int32, Single, Double, DateTime
Contoh:
<WebMethod()> _
Public Function HelloWorld() As String
Return "Hello World"
End Function

<WebMethod()> _
Public Function Jumlahkan(ByVal a As Integer, ByVal b As Integer) As Integer
Return a + b
End Function

109
- Enum Type
Contoh:
Public Enum Warna
Merah
Kuning
Hijau
End Enum

<WebMethod()> _
Public Function CobaEnum(ByVal idx As Integer) As Warna
Select Case idx
Case 1
Return Warna.Merah
Case 2
Return Warna.Kuning
Case Else
Return Warna.Hijau
End Select
End Function

- Class
Contoh:
Public Class Mahasiswa
Private _nim As String
Private _nama As String
Private _ipk As Double
Property Nim() As String
Get
Return _nim
End Get
Set(ByVal value As String)
_nim = value
End Set
End Property
Property Nama() As String
Get
Return _nama
End Get
Set(ByVal value As String)
_nama = value
End Set
End Property
Property IPK() As Double
Get
Return _ipk
End Get
Set(ByVal value As Double)

110
_ipk = value
End Set
End Property
Public Function Bicara() As String
Return "Saya bernama " & Nama() & ", NIM saya " & Nim() & " dan IPK adalah " & IPK()
End Function
End Class

<WebMethod()> _
Public Function getMahasiswa(ByVal mynim As String) As Mahasiswa
Dim m As Mahasiswa = New Mahasiswa()
If mynim = "22002529" Then
m.Nim = "22002529"
m.Nama = "anton"
m.IPK = 3.68
Else
m.Nim = "22002521"
m.Nama = "mahas"
m.IPK = 3.54
End If
Return m
End Function

- DataSet
Me.strSQL = "select * from user"
Me.objDataAdapter = New OleDbDataAdapter(Me.strSQL, Me.strConn)
Dim ds As DataSet = New DataSet
Me.objDataAdapter.Fill(ds)

- Array
<WebMethod()> _
Public Function JmlMatrik() As Integer()()
Dim a As Integer() = {1, 2, 3}
Dim b As Integer() = {4, 5}
Dim hasil()() As Integer = {a, b}
Return hasil
End Function
Array multi dimensi tidak support, harus jagged array

111
BAB 15
Manajemen Proses Bisnis

Latar Belakang Business Process Management (BPM)


Perkembangan pasar yang bergerak menjadi sangat kompetitif dan
persaingan bisnis yang semakin kompleks dan ketat telah menghadirkan
tantangan baru bagi perusahaan. Kecepatan menjadi masalah yang patut
diperhatikan yaitu bagaimana cara perusahaan atau organisasi untuk
mendapatkan dan mengevaluasi informasi dengan segera, dan untuk kemudian
menggunakan informasi tersebut untuk merespon setiap kejadian dan masalah
secara cepat dan tepat pula. Karena itu kecepatan menjadi faktor penting dalam
menumbuhkan nilai kompetitif suatu perusahaan atau organisasi.
Masalah yang sering kali terjadi adalah perusahaan gagal atau terlambat
dalam merespon tantangan bisnis yang muncul secara tidak terduga. Sebagai
contoh: banyak perusahaan sangat lambat dalam mendeteksi adanya peluang-
peluang bisnis baru serta dalam mendeteksi pergerakan yang dilakukan oleh
kompetitor; lebih jauh lagi adalah perusahaan kadang cenderung mempunyai sifat
reaktif dan tidak dapat mendeteksi masalah secara dini, dimana ini merupakan hal
yang sangat kontraproduktif bagi perusahaan dalam menghadapi perkembangan
bisnis di masa seperti sekarang ini.
Untuk mengatasi masalah tersebut, para pemimpin perusahaan sangat
membutuhkan suatu solusi yang dapat membantu mereka untuk melihat
gambaran bisnis mereka secara menyeluruh (komprehensif) dan real-time, dalam
arti apa yang mereka lihat saat itu di laporan adalah benar-benar menggambarkan
kondisi perusahaan sebenarnya saat itu juga, bukan 1 minggu yang lalu, 1 hari yang
lalu, atau bahkan 1 jam yang lalu. Untuk itu peranan teknologi di sini menjadi
sangat vital. Perusahaan dapat mengandalkan teknologi yang tepat untuk
membantu mereka dalam meningkatkan efisiensi, mempertajam daya respons,
dan pada akhirnya adalah mampu menghasilkan nilai kompetitif bagi perusahaan.
Pada beberapa tahun terakhir telah banyak perusahaan yang
memanfaatkan solusi dengan teknologi informasi (TI) untuk mengoptimasi proses
bisnis yang dimilikinya, tapi kadang solusi yang mereka kembangkan masih
setengah-setengah. Mereka membangun solusi TI tersebut dalam beberapa
sistem yang terpisah, bukan dalam satu kesatuan. Sistem yang dibangun biasanya
terbagi berdasarkan unit kerja, atau berdasarkan proses bisnis yang ada. Hal ini
tentunya dapat menimbulkan beberapa masalah ketika suatu saat terdapat proses
bisnis yang membutuhkan adanya kolaborasi ataupun pertukaran informasi antar
unit kerja atau antar proses bisnis untuk menyelesaikan rangkaian prosesnya

112
tersebut, yang tentunya hal ini tidak akan dapat ditangani dengan solusi TI model
seperti ini. Solusi TI seperti ini sebenarnya sudah tidak relevan lagi untuk
digunakan pada dunia bisnis yang sangat dinamis seperti saat ini.
Teknologi Manajemen Proses Bisnis atau Business Process Management
(BPM) adalah jawaban yang benar-benar ditunggu dan dibutuhkan kalangan bisnis
untuk membantu bisnis mereka dalam menghadapi tantangan dan kompetisi
seperti sekarang ini. BPM adalah solusi TI dengan pendekatan baru yang ampuh
digunakan untuk membantu meningkatkan efisiensi dan menumbuhkan nilai
kompetitif suatu bisnis. BPM dirancang untuk mengintegrasikan antara karyawan
dan sistem informasi melalui proses-proses yang telah terotomatisasi dan bersifat
sangat fleksibel. BPM juga merupakan solusi yang tepat untuk meningkatkan daya
respon perusahaan secara signifikan untuk menyesuaikan keinginan pelanggannya
pada setiap produk atau layanan yang dihasilkan, dengan cara memberikan akses
informasi secara real-time yang dapat digunakan untuk mengidentifikasi masalah,
serta pengambilan tindakan untuk merespon masalah yang terjadi secara lebih
cepat dan tepat.
Definisi Business Process Management (BPM)
Menurut Footen dan Faust (2008), BPM adalah sebuah metolodogi yang
berorientasi pada proses bisnis untuk memaharni dan mengorganisir pekeljaan
pada satu perusahaan. Ini difokuskan pada ketangkasan proses (process agility)
danjarak penglihatan bisnis (business visibility).
Menurut Lawler dan Howell-Barber (2008), BPM adalah satu pendekatan untuk
mencapai tujuan bisnis, mengkoordinasi proses-proses akhir dari perusahaan,
menciptakan best practices, dan perangkat lunak pelengkap, seperti di dalam
suatu sistem manajemen proses bisnis, untuk mendeskripsikan, meneliti, dan
menambahkan efisiensi dari proses - proses terhadap goal bisnis.
Menurut Garimella, Lees, dan Williams (2008), BPM adalah seperangkat cara, alat,
dan teknologi yang digunakan untuk merancang, menetapkan, meneliti, dan
mengontrol proses bisnis operasional.
Menurut Jeston dan Nelis (2006), BPM tidak bisa disamakan dengan tool teknologi
atau inisiatif proses bisnis, karena terdapat perbaikan proses bisnis signifikan
yang dapat dicapai tanpa memerlukan teknologi.
Menurut Jeston dan Nelis (2006), BPM adalah:

 Pencapaian dari sasaran tujuan perusahaan melalui peningkatan,


manajemen, dan kontrol atas bisnis proses yang perlu.
 Lebih dari sebuah software.
 Lebih dari pengembangan atau pembangunan kembali proses, tetapi
juga berhubungan dengan persoalan manajemen.

113
 Merupakan bagian dari manajemen.
 Lebih dari sebuah pemodelan, tetapi juga mengenai penerapan
(implementasi) dan bagaimana menjalankan proses-proses ini, yang
diminta oleh seorang analis.
Menurut Jeston dan Nelis (2006), sekarang ini BPM sedang digunakan oleh:

 Beberapa penjual vendor yang hanya fokus pada solusi teknologi atas
pengembangan proses.
 Penjuallvendor lainnya yang berpikir tentang BPM business process
modelling atau business performance management.
 Beberapa konsultan yang menggunakan BPM untuk melanjutkan pesan
mereka atas pembangunan kembali proses bisnis.
 Beberapa manajer yang mau teJjun ke BPM, dengan tanpa
mempunyai ide kemana arahnya.
 Beberapa proses analis yang mengunakan BPM untuk
meningkatkan/melambungkan aspirasi pemodelan proses mereka.
Menurut Jeston dan Nelis (2006), banyak komentator industri dan vendor
memberikan definisi yang menetapkan teknologi sebagai komponen esensial
dalam BPM dan pada kenyataannya mereka mengatakan BPM adalah suatu
teknologi. Bagaimanapun, jika BPM dilihat secara umum, sudah pasti mengenai
manajemen proses bisnis.

Fungsi Business Process Management (BPM)


Manajemen Proses Bisnis (BPM) adalah sebuah pendekatan untuk
meningkatkan efektivitas dan efisiensi melalui pembangunan otomatisasi proses
dan ketangkasan untuk mengelola perubahan. BPM membantu perusahaan dalam
mengawasi dan mengontrol seluruh elemen pada proses bisnis, seperti karyawan,
pelanggan, pemasok, dan workflow. BPM meningkatkan kualitas proses bisnis
melalui penyediaan mekanisme feedback yang lebih baik. Review yang
berkesinambungan dan real-time akan membantu perusahaan dalam
mengidentifikasi masalah dan kemudian mengatasinya secara lebih cepat sebelum
masalah tersebut berkembang menjadi lebih besar.

Tujuan Business Process Management (BPM)


Menurut Mathias Weske, Tujaun BPM adalah Pemahaman yang lebih baik
dari operasional perusahaan dan hubungannya dengan pihak intern maupun
ekstern. Mengidentifikasi aktivitas dan hubunganya serta menggambarkanya
dengan bisnis proses model membuat stakeholder mudah untuk
mengkomunikasikan dengan cara yang lebih efektif dan efisien

114
Menurut Mathias Weske , Salah satu tujuan pentingnya adalah menjemmbatani
gap antara bisnis proses yang dijalankan perusahaan danrealisasi dari proses ini di
dalam software. Visinya adalah adanya hubungan yang sangat era tantara bisnis
proses dengan software yang menjalankannya.
Karakteristik umum Proses Bisnis
1. Beberapa karakteristik umum yang dianggap harus dimiliki suatu proses
bisnis adalah:
2. Definitif: Suatu proses bisnis harus memiliki batasan, masukan, serta
keluaran yang jelas.
3. Urutan: Suatu proses bisnis harus terdiri dari aktivitas yang berurut sesuai
waktu dan ruang.
4. Pelanggan: Suatu proses bisnis harus mempunyai penerima hasil proses.
5. Nilai tambah: Transformasi yang terjadi dalam proses harus memberikan
nilai tambah pada penerima.
6. Keterkaitan: Suatu proses tidak dapat berdiri sendiri, melainkan harus
terkait dalam suatu struktur organisasi.
7. Fungsi silang: Suatu proses umumnya, walaupun tidak harus, mencakup
beberapa fungsi.

Komponen Business Process Management (BPM)


Manajemen Proses Bisnis (BPM) memiliki empat komponen utama:
1. Pemodelan
Pengguna dapat mendefinisikan dan mendesain struktur dari setiap proses
bisnis secara grafis. Manajer Proses dapat mendesain sebuah proses
beserta seluruh elemen, aturan, sub-proses, parallel proses, penanganan
exception, penangan error, dan workflow dengan mudah tanpa perlu
memiliki kemampuan programming khusus dan tanpa membutuhkan
bantuan dari staf IT.
2. Pengintegrasian
BPM dapat menghubungkan setiap elemen dalam proses sehingga
elemen-elemen tersebut dapat saling berkolaborasi dan bertukar
informasi untuk menyelesaikan tujuannya. Pada level aplikasi, hal ini bisa
diartikan sebagai penggunaan Application Programming Interface (API)
dan messaging. Bagi pengguna, hal ini berarti tersedianya sebuah
workspace pada komputernya ataupun perangkat wireless-nya untuk
mengerjakan tugas sesuai dengan perannya pada suatu proses bisnis.
3. Pengawasan
Pengguna dapat mengawasi dan mengontrol performansi dari proses
bisnis yang sedang berjalan dan performansi dari setiap personil yang
terlibat dalam proses bisnis tersebut. Pengguna juga dapat memperoleh

115
informasi mengenai proses yang tengah berjalan, maupun yang telah
selesai, beserta data-data yang ada di dalamnya.
4. Optimalisasi
Pengguna dapat menganalisa dan memonitor suatu proses bisnis, melihat
ketidakefisienan, dan juga memungkinkan pengguna untuk mengambil
tindakan dengan cepat dan merubah proses tersebut untuk meningkatkan
efisiensinya.

Manfaat BPM
Apa sebenarnya yang akan diperoleh perusahaan yang memanfaatkan solusi
BPM dalam mengelola dan mengoptimisasi proses bisnis yang dimilikinya?
Keuntungan dari pemanfaatan solusi Manajemen Proses Bisnis (BPM) antara lain:

 Solusi BPM akan memfasilitasi perusahaan dalam memodelkan proses


bisnis yang dimiliki, mengotomatisasi jalannya proses bisnis tersebut,
memonitor jalannya proses, serta memberikan cara yang mudah dan
cepat ketika perusahaan akan melakukan perubahaan proses bisnis untuk
meningkatkan performansinya.
 Software BPM membantu perusahaan untuk mengotomatisasi tugas-
tugas yang selama ini masih dilakukan secara manual. Solusi BPM dapat
mengotomatisasi proses persetujuan serta penolakan, notifikasi dan
laporan status.
 Dengan BPM, integrasi antar proses bisnis dapat dilakukan dengan
mudah dan cepat.
 BPM membantu perusahaan dalam membuat exception handling dan
proses alternatif yang sangat dibutuhkan untuk menanggulangi masalah
pada bisnis yang bersifat sangat dinamis seperti sekarang ini.
 BPM dapat meningkatkan daya respon bisnis melalui kemampuan untuk
mendapatkan informasi dengan cepat dan real-time.
 BPM mengurangi waktu yang dibutuhkan pada pelaksanaan suatu proses
bisnis.
 BPM meningkatkan produktivitas setiap karyawan.
 Umumnya proses bisnis tentunya membutuhkan banyak orang dan
sumber daya. Sebuah solusi BPM yang baik dapat mengurangi jumlah
sumber daya yang dibutuhkan pada sebuah proses.

116
Pemodelan Proses Bisnis
Definisi
Pemodelan proses bisnis atau Business Process Modelling (BPM) yaitu
definisi desain struktur setiap proses bisnis dalam perusahaan secara diagram
umum yang mewakili urutan kegiatan yang menunjukkan proses, hubungan,
tindakan dan kegiatan.
Tahapan Pemodelan Proses Bisnis :
1. Persiapan
Kegunaan tahap ini adalah untuk memobilisasi dan mengorganisir SDM
yang akan melakukan Reengineering.
Contoh: Apa yang menjadi tujuan dari bisnis ini?
2. Identifikasi
Kegunaan dari tahap ini adalah untuk mengembangkan dan memahami
proses dari bisnis. Contoh: Apa yang menjadi proses bisnis utama
organisasi?
3. Penyusunan visi
Kegunaan dari tahap ini adalah untuk membangun visi dan tujuan dari
kinerja yang dihasilkan.
Contoh: Bagaimana sumber daya, informasi, dan alur kerja melalui proses-
proses dalam organisasi?
4. Desain teknis :Kegunaan dari tahap ini adalah untuk menghasilkan sebuah
rancangan proses yang mampu mengakselerasikan pencapaian Visi dari
perusahaan bisnis.
Contoh: Sumber daya teknis dan teknologi apa yang kita perlukan?
Desain sosial :Kegunaan dari tahap ini adalah menspesifikasikan dimensi
sosial dari proses yang baru.
Contoh: Teknik dan sumber daya manusia seperti apa yang perlu di re-
Engineer? Program pelatihan apa yang diperlukan?
5. Transformasi
Kegunaan dari tahap ini untuk mengimplementasikan desain proses yang
dihasilkan di Tahap 4.
Contoh: Kapan kita memonitor proses? Bagaimana kita mengetahui
apakah kita dalam track/jalur atau tidak?

117
BAB 16
Service Composition
Pengertian
Service Oriented Modeling adalah disiplin pemodelan bisnis dan sistem
perangkat lunak, bertujuan untuk merancang dan menentukan sistem bisnis
berorientasi layanan dalam berbagai gaya arsitektur , seperti arsitektur enterprise,
arsitektur aplikasi, arsitektur berorientasi layanan, dan komputasi awan.
Metodologi Service Oriented Modeling biasanya mencakup bahasa
pemodelan yang dapat digunakan oleh kedua masalah, organisasi domain (Bisnis),
dan solusi organisasi domain (Departemen Teknologi Informasi), yang perspektif
unik biasanya mempengaruhi 'layanan' pengembangan strategi siklus hidup dan
proyek yang dilaksanakan dengan menggunakan strategi itu.
Service Oriented Modeling biasanya berusaha untuk membuat model yang
memberikan pandangan yang komprehensif dari analisis, desain, dan arsitektur
semua 'Entitas Software' dalam sebuah organisasi , yang dapat dipahami oleh
individu dengan tingkat bisnis yang beragam dan pemahaman teknis . Pemodelan
berorientasi layanan biasanya mendorong entitas perangkat lunak melihat sebagai
'aset' (aset berorientasi layanan), dan mengacu pada aset-aset ini secara kolektif
sebagai 'jasa '.

118
SOM Framework (SOMF)
SOM Framework (SOMF) adalah pengembangan metodologi siklus hidup
berorientasi layanan, proses pemodelan disiplin khusus . Ini menawarkan
sejumlah praktek pemodelan dan disiplin yang berkontribusi terhadap
berorientasi layanan siklus hidup pengembangan sukses dan modeling selama
proyek
SOM Framework Life Cycle

Service Oriented Modelling Framework (SOMF) memperkenalkan lima


kegiatan pemodelan siklus hidup utama yang mendorong evolusi layanan selama
desain - time dan run - time. Pada tahap desain - waktu layanan berasal sebagai
entitas konseptual (layanan konseptual), kemudian berubah menjadi unit analisis
(layanan analisis ), berikutnya transisi menjadi sebuah entitas kontrak dan logis
(layanan desain) , dan akhirnya didirikan sebagai layanan solusi) .

119
Tranformasi Model SOMF

SOMF menawarkan delapan model pelaksanaan , juga dikenal sebagai " Bell
Transformasi Model " , seperti yang digambarkan dalam gambar yang ditampilkan
bernama model transformasi SOMF

 Model Penemuan : Model ini harus digunakan ketika memastikan entitas


perangkat lunak baru untuk memberikan solusi
 Model Analisis : Model analisis dirancang untuk memeriksa kelayakan
komponen software untuk menawarkan solusi, membantu menganalisis
bisnis dan persyaratan teknis , dan membantu mengukur keberhasilan
pelaksanaan
 Model Desain : Memfasilitasi desain logis entitas perangkat lunak, dan
memberikan kontribusi untuk hubungan komponen , komposisi
penyebaran, dan pembentukan transaksi
 Model arsitektur Teknis : Model ini melibatkan tiga perspektif utama
arsitektur : arsitektur konseptual , arsitektur logis , dan arsitektur fisik
 Model Konstruksi : Membantu dengan praktek modeling selama kode
sumber tahap implementasi
 Model Jaminan Kualitas : menyatakan komponen perangkat lunak untuk
produksi dan menjamin stabilitas dan kontinuitas usaha teknis
 Operasi Model : Memungkinkan lingkungan produksi yang stabil dan
menjamin penyebaran yang tepat dan konfigurasi entitas software
 Model arsitektur Bisnis : Model ini mendorong integrasi yang tepat dari
kontekstual dan struktural formasi bisnis dengan entitas software
 Model Governance : Penawaran praktik terbaik , standar, dan kebijakan
untuk semua model implementasi SOMF

120
Style Model SOM

SOMF menyediakan lima gaya pemodelan perangkat lunak utama yang


berguna di seluruh siklus hidup layanan (konseptualisasi, penemuan dan analisis,
integrasi bisnis, desain logis, arsitektur konseptual dan logis).

 gaya pemodelan Edaran : memungkinkan pertukaran pesan dalam mode


melingkar , daripada menggunakan controller untuk melaksanakan
distribusi pesan . Gaya melingkar juga menawarkan metode konseptual
untuk layanan afiliasi .
 gaya model hirarkis : menawarkan pola hubungan antara layanan untuk
tujuan membangun transaksi dan rute pertukaran pesan antara
konsumen dan jasa .Pola hirarkis mendirikan asosiasi orang tua / anak
antara layanan.
 Jaringan gaya modeling : pola ini menetapkan " banyak ke banyak "
hubungan antara layanan , layanan peer mereka, dan konsumen . Pola
jaringan menonjolkan pada lingkungan terdistribusi dan jaringan
komputasi interoperable.
 gaya modeling Star : pola bintang pendukung layanan mengatur dalam
pembentukan bintang , di mana layanan pusat lewat pesan ke lengan
memperpanjang. Gaya pemodelan ini sering digunakan dalam publikasian
kasus.
 Gaya pemodelan Bus : menggambarkan layanan perantara yang
menghubungkan konsumen dengan penyedia layanan untuk tujuan tugas
pertukaran pesan.

121
BPEL: Business Process Execution Language for Web Services
Definisi BPEL
BPEL merupakan sebuah Bahasa yang mendeskripsikan proses eksekusi
business process melalui web service. BPEL menggunakan XML untuk
mendefinisikan komposisi fungsi-fungsi web service yang akan di eksekusi.
Web service yang digunakan untuk memproses business process sendiri dapat
disusun dalam dua cara:
1. Orchestration
Di dalam orkestrasi, terdapat sebuahproses terpusat yang mengatur
semua web service yang terlibat. Web service tidak perlu tahu bahwa
sebenarnya ia terlibat dalam bagian dari business process yang lebih tinggi
tingkatannya Karena hanya proses terpusat yang mengetahui hal ini
2. Choreography
Pada koreografi, proses tidak dijalankan secara terpusat. Setiap eb service
yang terlibat dalam koreografi mengetahui kapan harus mengeksekusi
operasi dan dengan siap web service tersebut akan berinteraksi. Susunan
koreogrefi mempunyai focus pada pertukaran pesan. Semua web service
pada susunan ini harus tahu business process apa yang sedang dijalankan,
operasi apa yang dieksekusi, pesan apa yang akan dipertukarkan dan kapan
waktunya webservice harus berjalan.
Menurut perspekif penyusunan web service menjadi sebuah business process,
pendekatan orkestrasi lebih fleksibel dibandingkan dengan koreografi dengan
alasan:
1. Pendekatan orkestrasi memungkinkan untuk mengetahui siapa yang
bertanggungjawab dalam pengeksekusian business process
2. Pendekatan orkestrasi dapat menyatukan beberapa web service yang ada
tanpa harus mengetahui bahwa web service tersebut merupakan bagian
dari sebuah business process
3. Pendekatan orkestrasi menyediakan scenario alternative ketika terjadi
error
Dalam perusahaan, peran BPEL adalah untuk melakukan standarisasi integrase
aplikasi enterprise dan membantu mengintegrasikan dengan system yang
terisolasi sebelumnya. BPEL akan memudahkan integrase dan membuat kerja
sama menjadi lebih efektif dengan partner bisnis. Definisi business process yang
ada di BPEL tidak memberi dampak pada system yang telah dibangun sebelumnya.
BPEL adalah teknologgi kunci dalam lingkungan dimana fungsionalitas web service
sudah atau belum di implementasikan.

122
Konsep BPEL
Seusai dengan konsepnya, proses BPEL terdiri dari beberapa langkah. Setiap
langkah disebut activity. BPEL mendukung aktivitas dasar dan terstruktur, aktivitas
dasar merepresentasikan konstruksi dasar dan dipakai untuk tugas-tugas yang
bersifat umum, diantaranya adalah sebagai berikut:
1. <invoke>
Dipakai untuk memanggil web service. Operasi invoke mendukung dua
atribut yang lain. Ketika business process memanggil sebuah operasi web
service maka invoke akan mengirim sejumlah parameter seperti parameter
pesan masukan input Variabel dan output Variabel sebagai keluaran.
2. <receive>
Dipakai untuk menunggu klien saat membangkitkan bsiness process
melalui pengiriman pesan.
3. <reply>
Dipakai untuk menghasilkan respon dari operasi. Reply selalu berhubungan
dengan <receive> saat process BPEL dimulai.
4. <assign>
Dipakai untuk memanipulasi data dalam suatu variable. Variable dipakai
oleh <invoke>, <receive>, dan <reply> untuk menspesifikkan pesan input
dan output serta untuk membangkitkan oprasi pada web service partner
5. <throw>
Dipakai untuk mengindikasikan kesalahan dan exeption
6. <wait>
Dipakai untuk menunggu untuk waktu pengeksekusian web service
7. <terminate>
Dipakai untuk mengakhiri suatu proses

123
DAFTAR PENULIS

Dosen Pengampu : Tibyani , S.T, M.T

1. Santo Janriski Op.sunggu 145150207111055


2. Ivan Yusri Waldi 145150207111023
3. Anggi Mahadika Purnomo 145150200111052
4. E.M. Firmansyah .A.P 135150201111237
5. Alan Primandana 165150209111013
6. Muhammad Faisal Fahat 145150201111059
7. Nadya Ramadana 145150207111139
8. Muhammad Al Anis Faishal 135150201111280
9. Defanto Hanif Yoranda 145150200111139
10. Bossarito Putro 145150201111068
11. Ni`mah Firsta C. S. 145150200111137
12. Firdaus Rahman 145150200111148
13. Mohammad Syaifudin Abdullah 145150207111137
14. Rhevitta Widyaning Palupi 145150201111119
15. Mahardhika Hendra Bagaskara 145150207111117

124
DAFTAR PUSTAKA

Arsanjani, A.2004.Service-oriented modeling and architecture. Service-Oriented


Architecture: A conceptual model :2-11.

Miscrosoft. .NET Specifications. Diakses pada 20 Maret 2017

Petzold Charles. 2007. .NET Zero. Diunduh pada 20 Maret 2017

Penelitian Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

ITS. Java 2 Enterpise Edition (J2EE). Diakses pada 20 Maret 2017

Seminar Nasional Informatika 2009 (semnasIF 2009) ISSN: 1979-2328 UPN


”Veteran” Yogyakarta, 23 Mei 2009

http://lecturer.ukdw.ac.id/anton/download/enterprise1.pdf

https://www.academia.edu/login?login=santokenshy%40gmail.com

https://msdn.microsoft.com/en-us/library/ms996486.aspx

https://www.w3.org/TR/wsdl#_service

http://download.oracle.com/otn_hosted_doc/jdeveloper/1012/web_services/w
s_wsdlstructure.html

http://www.service-architecture.com/articles/web-
services/web_services_description_language_wsdl.html

125

Anda mungkin juga menyukai