TEKNIK INFORMATIKA
FAKULTAS ILMU KOMPUTER
UNIVERSITAS BRAWIJAYA
3
DAFTAR ISI
2
BAB 1
Pengertian, Konsep, Dan Tantangan Arsitektur Aplikasi Enterprise
1. Pengetian Aplikasi Enterprice
- 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
3
Gambar 1.1 Arsitektur Aplikasi Enterprise
B. Enterprise Application
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).
5
Menjaga kekonsistensian data walau ada error, delay, dantransaksi yang
jauh.
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
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
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
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
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.
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.
3. Table Module
Table Module merupakan sistem pengorganisasian bisnis logic menggunakan
class dan objek seperti Domain Model
16
Model Pengaksesan data:
1. Row Data Gateway: memilikai satu instansiasi dalam setiap baris.
2. Table Data Gateway: memiliki sati instansiasi dalam setiap table.
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.
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.
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.
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.
Meskipun buku ini termasuk bab yang ditujukan untuk setiap jenis
EAI, gambaran singkat dari berbagai jenis yang disediakan di sini.
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.
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.
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.
◦ EAI Middleware
25
SQLServer) untuk mengakses database lain (seperti VSAM, IMS,
Oracle, Adabas), atau bahkan aplikasi seperti SAP tanpa perlu
kustom coding.
26
◦ Teknologi web untuk integrasi aplikasi;
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
JMS
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.
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.
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.
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.
32
BAB 5
Service Oriented Arsitektur
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.
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
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.
38
BAB 6
Arsitektur dan Framework
39
5. Mengintegerasikan seluruh aplikasi yang menerapkan .NET Framework.
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.
2. Reference Types :
a. More Complex Types
40
b. Allocated on The Heap
c. Destroyed Through Garbage Collection
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
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.
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.
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 :
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 :
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).
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).
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
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.
51
Contoh di bawah jika yang kita gunakan adalah JDBC-ODBC driver
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
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
Restriction Where
Grouping GroupBy
56
Quantifiers Any, All
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
60
BAB 8
XML Technology 1
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
dari kalimat
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.
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.
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
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>
<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.
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 :
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 :
<?target instruction?>
Sebagai contoh,
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:
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 :
Gambar Error! No text of specified style in document..1 Contoh Hirariki Sistem Akademik Perusahaan
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:
Elemen lecturer mengandung unsur name dan phone dalam urutan apapun.
<!ELEMENT lecturer((name,phone)|(phone,name))>
1.2.2. Atribut
Elemen
68
<item itemNo="c817" quantity="3"/>
</order>
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:
69
1.2.4. Attribute Value Types
Ada 4 jenis nilai atribut :
#REQUIRED
#IMPLIED
#FIXED "value"
"value"
1.2.5. Referensi
Ini merupakan contoh dalam penggunan ODREF dan IDREFS. Pertama-tama
membuat DTD:
<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.
– Sedikitnya 1 elemen to
71
Elemen body terdapat :
– Elemen text
72
BAB 9
XML Technology 2
XML Schema
Pengertian XML Schema
73
Lebih mudah dalam menentukan pola data
Lebih mudah untuk mengkonversi data kedalam tipe data lain
XML Schema ditulis menggunakan dalam format XML
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
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"/>
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>
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>
75
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM
"http://www.w3schools.com/dtd/note.dtd">
<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
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.
76
</B>
</A>
/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
Expression Description
@ Memilih atribut
Contoh :
77
bookstore/book
Memilih semua elemen “book” yang merupakan anak dari elemen “bookstore”
//@lang
Memilih semua judul pada elemen “book” yang memiliki atribut “price” lebih dari
35.00 dari elemen “bookstore”.
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.
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
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
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).
83
Pengembangan Service Requestor (Client) :
D. XML-RPC
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.
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.
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
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.
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.
89
B. Arsitektur Web Service
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.
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 :
92
yang mereka berikan. XML-based registry berisi nama-nama dari organisasi tsb,
beserta service dan deskripsi dari service yang mereka berikan.
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.
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)
96
WSDL adalah :
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 :
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: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>
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>
</wsdl:definitions>
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 :
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>
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>
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>
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
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.
106
BAB 14
Implementasi WS pada .NET
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.
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
<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
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:
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.
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.
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:
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
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
120
Style Model SOM
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
124
DAFTAR PUSTAKA
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