bab ii dasar teori - · pdf filehasil perbaikan mempengaruhi ... gambar ii.2 memberikan...
TRANSCRIPT
II-1
BAB II DASAR TEORI
Bab ini akan membahas mengenai teori-teori yang menjadi landasan atau dasar
pengembangan konsep SOA, keuntungan SOA, prinsip-prinsip SOA, desain dan
pengembangan SOA, bagaimana SOA dapat diimplementasikan. Selanjutnya
adalah tentang Peranan sistem informasi terhadap perguruan tinggi dan
menjelaskan tentang pengintegrasian sistem informasi di perguruan tinggi dengan
menerapkan SOA.
II.1 Paradigma SOA
Era modern saat ini, fungsi-fungsi operasi bisnis pada perguruan tinggi
diterapkan secara otomatis, dan tantangan yang muncul adalah bagaimana
meningkatkan kemampuan dari sistem atau aplikasi yang digunakan dapat selaras
dengan kebutuhan-kebutuhan baru. Penambahan antarmuka baru, menggabungkan
data dari sumber yang berbeda dalam satu tampilan, integrasi dengan mobile
device adalah alasan umum dalam melakukan investasi dan perbaikan terhadap
sistem pada suatu organisasi atau perguruan tinggi.
Kompleksitas adalah fakta terhadap perkembangan teknologi informasi.
Tantangan utama saat ini adalah berkaitan dengan kompleksitas ketika
membangun aplikasi yang baru, menggantikan aplikasi yang lama, dan melakukan
perawatan serta peningkatan kinerja aplikasi dan sistem. Untuk menjawab
tantangan tersebut sebuah paradigma pengembangan berorientasi layanan
(service-oriented development) ditawarkan untuk menjadi menjadi solusi terhadap
kompleksitas yang dihadapi [7].
Layanan atau service berbeda dengan sebuah object atau procedure. Layanan
didefinisikan dengan messages dimana suatu layanan dapat melakukan pertukaran
messages dengan layanan yang lain. Sebuah layanan bersifat independent yang
tidak bergantung terhadap aplikasi yang menyimpannya. Hal ini memberikan
kemampuan untuk sebuah layanan dapat dengan mudah digunakan secara
II-2
bersama-sama antar departemen, enterprise, atau melalui internet. SOA
memberikan cara bagaimana layanan-layanan dalam suatu sistem dapat diterapkan
dan diatur.
Pengembangan sistem berbasis layanan dan SOA adalah merupakan karakter yang
dimiliki oleh teknologi Web services. SOA dan web services adalah merupakan
jawaban terhadap pengintegrasian sistem dan aplikasi yang kompleks. SOA
memberikan peta dan menggunakan model untuk menyatukan atau
mengembangkan legacy system dan sistem yang baru selanjutnya web services
menyediakan unifying glue dimana web services akan menyatukan dengan
protokol umum standard ( SOAP, XML) serta deskripsi bahasa yang dapat
dimengerti oleh mesin yang lain (WSDL).
Sayed Hashimi [WEB002] menjelaskan latar belakang penggunaan SOA ditinjau
dari sisi developers perangkat lunak. SOA menjadi sangat populer melalui
perkembangan Web services. SOA muncul untuk menawarkan solusi terhadap
masalah yang dihadapi para developers perangkat lunak.
Proses menulis perangkat lunak yang sangat kompleks, dimana kode program
yang sama harus ditulis kembali secara berulang-ulang, memicu munculnya
kebutuhan terhadap cara yang lebih baik dalam menulis perangkat lunak dengan
menggunakan kembali kode program yang sama. Solusi penulisan perangkat
lunak yang kompleks adalah konsep modular design. Modular design
memungkinkan programmer menulis sub-routines dan functions yang dapat
digunakan kembali. Programmer dapat melakukan proses cutting dan pasting
sebuah modul ke dalam aplikasi lain. Dampak negatif dari metode ini adalah
kesulitan dalam perawatan perangkat lunak dan deployment perangkat lunak.
Ketika sebuah bug ditemukan maintainer harus melakukan penelusuran terhadap
semua aplikasi yang menggunakan fungsi tersebut dan melakukan perbaikan.
Hasil perbaikan mempengaruhi proses deployment perangkat lunak, perangkat
lunak tidak berjalan sesuai dengan yang diharapkan. Para developer tidak
menyukai hal tersebut, mereka membutuhkan higher level of abstraction. Peneliti
menawarkan classes dan OO perangkat lunak untuk mengatasi masalah tadi.
II-3
Ketika kompleksitas perangkat lunak dan perangkat keras berkembang para
developer mulai menyadari akan kompleksitas perangkat lunak, keperluan reuse
code, dan memerlukan fungsi-fungsi untuk melakukan perawatan perangkat
lunak.
Component-based software memberikan solusi untuk menangani kompleksitas
perangkat lunak, penggunaan kembali kode program, dan melakukan perawatan
perangkat lunak. Keterbatasan component-based software adalah tidak
menangani kompleksitas yang dihadapi oleh para developer saat ini. Saat ini
terdapat berbagai isu kompleks yang dihadapi oleh pada developers, organisasi,
users, dan stakeholders seperti distributed software, application integration,
platform yang berbeda (OS, perangkat lunak, perangkat keras), protokol yang
beragam, perkembangan ICT, dan sebagainya. Perangkat lunak saat ini harus
dilengkapi dengan fitur-fitur yang dapat mengakomodasi isu-isu tersebut. SOA
dengan web services memberikan solusi untuk semua isu yang telah disebutkan
diatas. Dengan mengadopsi SOA, kerumitan protokol dan platform dapat
dikurangi dan integrasi antar aplikasi dapat dilakukan.
II.2 Definisi Service Oriented Architecture
Berikut adalah definisi-definisi tentang SOA.
Menurut Thomas Erl [3] :
―SOA adalah sebuah model desain dengan memiliki konsep yang dalam
tentang meng-enkapsulasi logik aplikasi di dalam layanan-layanan yang
berinteraksi melalui protokol yang umum.‖
Organization for the Advancement of Structured Information Standards (OASIS)
mendefinisikan SOA sebagai berikut :
―Sebuah paradigma untuk melakukan pengaturan dan penggunaan layanan-
layanan yang didistribusikan yang di kontrol oleh domain yang berbeda.
SOA menyediakan sebuah keseragaman dalam memberikan, menemukan,
berinteraksi dan menggunakan layanan-layanan yang dimiliki untuk
II-4
menghasilkan efek yang diinginkan, konsisten dengan kondisi awal yang
diukur dan harapan-harapan yang telah ditetapkan.‖
Menurut website www.service-architecture.com :
―SOA secara esensial adalah sebuah kumpulan dari layanan-layanan.
Layanan-layanan tersebut berkomunikasi satu dengan yang lain.
Komunikasi dapat melibatkan data yang sederhana atau dua atau lebih
layanan yang berkoordinasi dengan beberapa aktivitas. Beberapa layanan
dapat membutuhkan layanan yang lain untuk melakukan suatu aktifitas.‖
Menurut website XML.com :
―SOA adalah sebuah gaya arsitektural yang memiliki tujuan untuk mencapai
tingkat ketergantungan yang rendah diantara interaksi perangkat lunak.
Sebuah layanan adalah sebuah unit yang dilakukan oleh sebuah penyedia
layanan untuk mendapatkan hasil yang diharapkan oleh pengguna layanan.
Masing-masing penyedia dan pengguna layanan memiliki peran untuk
dilaksanakan oleh perangkat lunak sesuai dengan kepemilikannya.‖
Secara umum SOA dapat dituliskan kembali sebagai berikut :
―SOA adalah sebuah arsitektur aplikasi dimana semua fungsi, layanan-
layanan didefinisikan menggunakan sebuah bahasa yang terdeskripsi dan
dapat mengakses antarmuka yang dipanggil untuk melakukan proses-proses
bisnis. Setiap interaksi adalah independent terhadap yang lain. Karena
antarmuka bersifat independent terhadap platform, setiap klien dari
sembarang device dapat menggunakan service yang disediakan. SOA
menghubungkan sistem operasi yang beragam dan mampu melakukan
otomatisasi terhadap proses bisnis suatu organisasi secara internal atau
enterprise.‖
Gambar II.1 memberikan struktur hirarki dari SOA. SOA adalah sebuah
arsitektur perangkat lunak yang didasarkan pada konsep-konsep kunci dari sebuah
aplikasi front-end, service, service repository, dan service bus. Sebuah service
terdiri dari sebuah kontrak, satu atau lebih antar muka, dan sebuah implementasi.
II-5
Gambar II.1. Struktur Hirarki SOA [WEB004]
II.3 Prinsip-prinsip SOA
Prinsip-prinsip berikut ini mendefinisikan aturan-aturan dasar dalam
pengembangan, perawatan dan penggunaan dari SOA [7] :
a. Konsep utama dari SOA adalah layanan.
b. Setiap layanan didefinisikan dengan sebuah kontrak yang formal.
c. Layanan-layanan hanya berinteraksi dengan layanan yang lain melalui
antarmuka kontrak yang telah didefinisikan terlebih dahulu.
d. Layanan-layanan harus dapat diakses melalui standard teknologi yang
tersedia pada lingkungan secara umum. Mekanisme-mekanisme yang
digunakan harus dapat diterima oleh standard-standard industri.
e. Layanan-layanan harus dapat didefinisikan kedalam level abstraksi yang
tinggi yang berhubungan aktifitas-aktifitas pada dunia nyata dan fungsi-
fungsi bisnis yang dapat dikenal sehingga kebutuhan-kebutuhan bisnis dan
kemampuan-kemampuan teknikal dapat di selaraskan dengan tepat.
SOA
Appliation Front End
Service
Contract Implementation
Business Logic Data
Interface
Service Repository
Service Bus
II-6
f. Layanan-layanan yang tersedia harus memiliki arti yang penuh atau mudah
dipahami.
g. Layanan-layanan harus loosely coupled.
h. Kumpulan layanan harus memiliki tipe dokumen yang sama, yaitu dokumen
XML. Hal ini untuk menfasilitasi pertukaran informasi diantara layanan-
layanan dan struktur dan semantik dari dokumen harus disepakati dan dapat
dimengerti dengan baik.
i. Layanan-layanan harus memberikan tugas-tugas yang spesifik dan
menyediakan antarmuka yang sederhana untuk mengakses atau menggunakan
fungsionalitas yang disediakan.
j. Layanan-layanan harus menyediakan informasi yang menjelaskan
kemampuan dan keterbatasan dari layanan yang disediakan. Informasi
tersebut harus tersedia pada repository.
II.4 Komponen-komponen SOA
Komponen-komponen yang menyusun SOA merupakan kunci dari arsitektur
berbasis layanan dibangun. Komponen komponen yang terlibat didalam arsitektur
berbasis layanan adalah :
II.4.1 Service
Sebuah layanan adalah sebuah lokasi yang terletak pada jaringan yang memiliki
mesin yang dapat membaca deskripsi dari messages yang diterima dan
memberikan respon balik [7]. Layanan juga dapat didefinisikan sebagai interface
untuk menerima request dari pengguna layanan dan kemudian memberikan
respon terhadap request tersebut.
Sebuah layanan dalam SOA adalah sebuah bagian fungsi yang memiliki tiga
karakteristik:
a. Contract Interface. Kontrak antarmuka layanan adalah bersifat platform
independent.
II-7
b. Dinamically found and assessment. Layanan secara dinamis dapat ditemukan
dan digunakan.
c. Self Contained. Setiap layanan dibangun secara independen. Layanan
memiliki business logic dan definisi yang tidak bergantung terhadap layanan
yang lain.
II.4.2 Message
Penyedia layanan dan pemakai layanan berkomunikasi melalui pesan. Layanan-
layanan menggunakan kontrak antarmuka, yang mendefinisikan sifat layanan dan
pesan yang diterima dan dikembalikan. Untuk mendukung kontrak antarmuka
yang bersifat independen, teknologi yang digunakan harus mampu
mendefinisikan pesan yang dikirim oleh platform atau bahasa yang lain. Oleh
karena itu, pesan secara tipikal dibangun menggunakan dokumen-dokumen XML.
XML menyediakan semua fungsionalitas, granularitas, dan skalabilitas yang
dibutuhkan oleh pesan, sehingga memungkinkan pengguna dan penyedia layanan
untuk berkomunikasi dengan efektif; pengguna dan penyedia layanan
membutuhkan sistem yang tidak dibatasi untuk mendefinisikan pesan.
II.4.3 Dynamic Discovery
Dynamic discovery adalah sebuah bagian penting dari SOA. Pada level tinggi,
SOA dibentuk oleh tiga bagian penting, yaitu penyedia layanan, pengguna
layanan, dan direktori layanan. Peran dari penyedia layanan dan pengguna
layanan sudah jelas, tetapi peran dari direktori layanan memerlukan penjelasan
lebih lanjut. Direktori layanan adalah sebuah penghubung antara penyedia
layanan dan pengguna layanan. Penyedia layanan mendaftarkan layanan pada
direktori layanan dan pengguna layanan meminta atau mencari layanan dari
direktori layanan. Sebagian besar direktori layanan secara umum diatur
berdasarkan kriteria dan kategori. Pengguna layanan dapat menggunakan
kemampuan untuk mencari layanan untuk menemukan penyedia layanan.
Direktori layanan pada SOA untuk mewujudkan hal-hal dibawah ini:
1. Skalabilitas dari layanan. Layanan dapat ditambah secara bertahap.
2. Decouples pengguna layanan dari penyedia layanan.
II-8
3. Mengijinkan untuk ―hot updates‖ terhadap layanan.
4. Menyediakan pencarian layanan bagi pengguna.
5. Mengijinkan pengguna layanan untuk memilih layanan diantara para
penyedia layanan daripada melakukan hard coding pada sebuah penyedia
layanan.
II.4.4 Web Services
Web services [WEB004] adalah sebuah sistem perangkat lunak yang didesain
untuk mendukung interaksi yang interoperable antar mesin melalui sebuah
jaringan.
Walaupun konsep-konsep yang membentuk SOA telah ada sebelum web services
muncul, web services memiliki peran penting didalam SOA. Hal ini dikarenakan
web services dibangun diatas protokol-protokol yang sudah terkenal dan memiliki
platform yang independent, seperti HTTP, XML, UDDI, dan WSDL. SOA
menggunakan protokol-protokol tersebut sebagai komponen kunci karena
protokol-protokol menyediakan layanan yang dapat ditemukan dan digunakan
secara dinamis. SOA menyediakan layanan yang memiliki kontrak antarmuka
yang platform independent, yang disediakan oleh XML. SOA menekankan pada
interoperability, hal ini disediakan oleh HTTP. Alasan-alasan tersebut
menjadikan web services sebagai jantung dari SOA.
Gambar II.2 memberikan gambaran tentang proses yang dilakukan dan elemen-
elemen yang terlibat dalam web services:
II-9
Gambar II.2. Proses Web services
Berikut penjelasan tentang proses yang terjadi pada web service :
a. Proses pencarian layanan (find). Proses ini dilakukan oleh service consumer
terhadap server yang memiliki daftar layanan yang dapat digunakan serta cara
untuk menggunakannya.
b. Proses menggunakan layanan (bind and invoke). Proses ini dilakukan apabila
aggreement antara service consumer dan service provider telah didaftarkan
pada registry server.
c. Proses register. Proses ini dilakukan oleh service provider untuk
mendaftarkan service yang dapat digunakan oleh service consumer pada
registry server.
d. Service contract. Bagian ini adalah antarmuka service yang mendefinisikan
komponen-komponen yang terdapat pada sebuah service. Service contract di
representasikan dalam bentuk WSDL. WSDL adalah sebuah deskripsi bahasa
yang dapat dimengerti oleh manusia dan mesin komputer. WSDL ditulis
dengan menggunakan sintaks XML dan digunakan sebagai antarmuka untuk
melakukan message exchange dalam suatu layanan. Contoh komponen-
komponen yang terdapat pada service contract adalah nama layanan, nomor
versi, header.
Registry
Service ProviderService Consumer
II-10
II.5 Keuntungan SOA
Berdasarkan webmethods.com, SOA memiliki karakteristik yang memberikan
keuntungan-keuntungan sebagai berikut:
1. Loosely coupled
a. Meningkatkan kemampuan penyesuaian organisasi; memampukan
organisasi atau perusahaan untuk memodifikasi proses bisnis dan
menanggapi kebutuhan pasar dengan mudah.
b. Menyediakan keuntungan bersaing dengan menawarkan fleksibilitas yang
lebih tinggi. Sistem komputer dapat digunakan untuk mendukung proses
bisnis.
c. Biaya implementasi yang rendah dengan meningkatkan penggunaan
kembali komponen yang telah ada.
d. Meningkatkan adaptasi terhadap perkembangan IT. Integrasi antar
aplikasi menjadi lebih mudah.
2. Modular approach
a. Memampukan pengembangan secara bertahap, deployment, dan
perawatan: menghindari biaya yang tinggi dan resiko implementasi
perangkat lunak yang tidak tepat sasaran, ―big bang‖.
b. Menurunkan usaha pengembangan dengan mengurangi kompleksitas
melalui pendekatan divide and conquer.
c. Selalu lebih cepat dalam menghasilkan sebuah fungsi aplikasi baru.
Kebanyakan adalah proses menyatukan komponen-komponen yang telah
ada dibandingkan dengan melakukan pengembangan baru.
3. Non-intrusive
a. Aset IT yang telah diinvestasikan dapat digunakan kembali.
b. Resiko dan usaha pengembangan yang lebih rendah; karena dapat
menghindari keharusan untuk menulis kembali dan melakukan pengujian
terhadap aplikasi yang telah ada.
II-11
4. Standard-based
a. Platform yang independent mengijinkan organisasi menggunakan
perangkat lunak dan perangkat keras sesuai dengan pilihannya.
b. Mengijinkan organisasi untuk menggunakan atau menyewa sumber daya
yang berbeda sehingga mengurangi ketergantungan terhadap satu vendor.
c. Kebutuhan untuk melakukan pelatihan lebih rendah dan meningkatkan
keahlian orang-orang yang dapat menjalankan aplikasi dengan mudah.
5. General purpose technology
Membebaskan dari skala ekonomi, teknologi yang sama dapat digunakan
untuk masalah-masalah bisnis yang lebih luas.
Dibawah ini adalah prinsip-prinsip arsitektural yang spesifik untuk mendesain dan
mendefinisikan layanan yang berfokus pada tema yang mempengaruhi sifat dari
sebuah sistem :
1. Enkapsulasi layanan (Service encapsulation). Implementasi detail dari sebuah
layanan disembunyikan dari sisi klien.
2. Kebergantungan yang rendah pada layanan lain (Service loosely coupling).
Layanan-layanan yang merawat sebuah hubungan yang meminimalisasi
kebergantungan.
3. Kontrak layanan (Service contract). Layanan-layanan yang ditambahkan
untuk sebuah perjanjian komunikasi yang didefinisikan secara kolektif oleh
satu atau lebih dokumen deskripsi layanan.
4. Abstraksi layanan (Service abstraction). Layanan yang menyimpan atau
menyembunyikan proses logik dari dunia luar.
5. Kemampuan penggunaan kembali layanan (Service reusability). Proses logik
yang dibagi kedalam layanan-layanan untuk mempromosikan penggunaan
kembali.
II-12
6. Kemampuan penggabungan layanan (Service composability). Kumpulan
layanan-layanan yang dapat dikoordinasi dan dibangun membentuk komposit
layanan.
7. Otonomi layanan (Service autonomy). Layanan-layanan yang memiliki
kontrol terhadap proses logik yang di-enkapsulasi.
8. Optimasi layanan (Service optimization). Tanpa memperhitungkan
pertimbangan lain atau jika parameter lain dianggap sama atau tetap, layanan
berkualitas tinggi secara umum lebih dipilih dibandingkan layanan
berkualitas rendah.
9. Kemampuan ditemukannya layanan (Service discoverability). Layanan yang
dirancang agar dapat ditemukan dengan cepat dan digunakan oleh pengguna
layanan.
II.6 Desain dan Pengembangan SOA
Terdapat dua bagian penting dalam desain dan pengembangan SOA. Pertama
adalah cara tentang bagaimana melakukan desain dan implementasi terhadap
layanan dan aplikasi yang akan dirancang. Kedua adalah cara tentang bagaimana
melakukan pengembangan terhadap layanan dan aplikasi SOA. Berikut penjelasan
masing-masing bagian :
1. Desain layanan dan aplikasi SOA.
SOA memberikan sebuah pendekatan arsitektur dengan melakukan decomposing
terhadap proses-proses bisnis dan aktifitas-aktifitas dasar (low level activities)
menjadi standards-based services. Untuk melakukan desain layanan dan aplikasi
SOA, terdapat sebuah metodologi yang disebut Shared service life Cycle
(SSLC)[WEB007] yang dapat digunakan sebagai acuan dalam melakukan
perancangan layanan. Perulangan pada SSLC dibagi dalam 2 aspek, yaitu :
a. Design-time.
b. Run-time.
Bagian Design-time melakukan 3 fase dalam perancangan layanan :
II-13
a. Identify Business Process
b. Service Modeling
c. Build and Compose
Bagian Run-time melakukan 3 fase dalam impementasi layanan :
a. Publish and Provision
b. Integrate and Deploy
c. Secure and Manage
d. Evaluate
Gambar II.3 menunjukkan fase-fase yang dilakukan dalam melakukan
perancangan layanan dalam aplikasi SOA.
Gambar II.3. Shared Service Life Cycle [WEB007]
2. Pengembangan layanan dan aplikasi SOA.
Pengembangan layanan dan aplikasi SOA memiliki 3 tahap umum yaitu :
a. Analysis. Dilakukan analisis proses-proses bisnis yang berlangsung pada serta
fungsi – fungsi yang mendukung masing-masing proses tersebut. Analisis
Service Modelling
Build and Compose
Publish and
Provision
Integrate and
Deploy
Secure and
Manage
Evaluate
Identify Business Process Design-Time
Run-Time
II-14
setiap proses bisnis yang dapat dijadikan layanan dan perlu untuk
dikembangkan.
b. Develop. Gunakan fungsionalitas yang telah ada pada sistem informasi yang
ada dalam melakukan pengembangan layanan. Pastikan setiap layanan tetap
memiliki independency dan memiliki agreement yang jelas dengan penyedia
layanan dan pengguna layanan.
c. Utilize. Menjalankan layanan yang telah dibuat, dan terus melakukan
identifikasi dan optimasi terhadap layanan jika terdapat kesempatan.
II.7 Implementasi SOA.
SOA dapat diimplementasikan dengan beberapa teknologi berikut ini:
II.7.1 Web Services.
Web services didukung oleh beberapa teknologi berikut ini :
1. SOAP (Simple Object Access Protocol) atau dikenal juga Service Oriented
Architecture Protocol, adalah sebuah protokol yang digunakan untuk
melakukan pertukaran dokumen XML melalui jaringan komputer.
2. WSDL (Web services Description Language) adalah sebuah dokumen yang
ditulis dalam XML. Dokumen ini mendeskripsikan sebuah layanan web.
WSDL menunjukkkan lokasi dari layanan dan operasi-operasi atau metode-
metode yang dapat digunakan.
3. UDDI (Universal Description, Discovery and Integration) adalah sebuah
kerangka kerja platform yang independent untuk mendeskripsikan layanan-
layanan, menemukan, dan mengintegrasikan layanan dengan menggunakan
internet. UDDI berkomunikasi melalui SOAP. UDDI adalah sebuah direktori
dari web services dimana antarmuka UDDI adalah WSDL.
II.7.2 CORBA (Common object request broker architecutere)
Sebuah standar yang dikeluarkan oleh Object Management Group (OMG) yang
memampukan komponen-komponen perangkat lunak ditulis dalam bahasa
II-15
pemrograman dan dijalankan diatas platform yang beragam untuk saling
berkomunikasi (interoperate).
II.7.3 EJB (Enterprise Java Bean)
EJB adalah sebuah arsitektur komponen server-side yang menyederhanakan
proses membangun class enterprise aplikasi komponen terdistribusi dalam
lingkungan java.
II.7.4 RMI (Remote Method Invocation)
RMI adalah sebuah mekanisme yang terdapat pada bahasa pemrograman java.
RMI mengijinkan objek-objek java untuk menggunakan methods pada objek lain
dengan menggunakan JVM.
II.7.5 REST (Representational State transfer)
REST adalah gaya arsitektur perangkat lunak untuk sistem hypermedia
terdistribusi seperti world wide web. REST memiliki tujuan untuk memberikan
gambaran bagaimana sebuah aplikasi web berperilaku: sebuah jaringan dari
halaman-halaman web, tujuan ketika user memilih link (state transitions), hasil
dari halaman selanjutnya (mewakili status berikutnya) yang akan ditransfer
kepada user. — Dr. Roy Fielding, Architectural Styles and the Design of
Network-based Software Architectures.
II.7.6 RPC (Remote Procedure Call)
RPC adalah sebuah mekanisme komunikasi yang memampukan sebuah proses
berkomunikasi dengan proses yang lain. Proses komunikasi ini dapat terjadi pada
komputer berbeda pada sebuah jaringan. RPC menggunakan metode IPC untuk
menciptakan proces ilusi untuk melakukan pertukaran proses yang terjadi pada
alamat yang sama. RPC memampukan untuk mengeksekusi sebuah routine pada
komputer yang berbeda melalui jaringan komputer.
II.7.7 DCOM (Distribute Component Object Model)
DCOM adalah sebuah kumpulan konsep Microsoft dan antarmuka program
dimana objek program client dapat meminta service dari objek program server
pada komputer lain dalam sebuah jaringan. DCOM menyediakan sekumpulan
II-16
antarmuka yang memungkinkan client dan server dapat saling berkomunikasi
pada komputer yang sama.
II.8 Dua Pendekatan Pengintegrasian dan Interoperability
Dua pendekatan yang dapat digunakan untuk pengintegrasian suatu sistem adalah:
1. Web services integration (WSI). Integrasi Web services bersifat lebih sukses
ketika hasil yang ingin dicapai dan ROI (return on investment) lebih
diprioritaskan dalam waktu yang pendek. WSI bersifat opportunistic dan
tactical. Karakteristik WSI[8] :
a. WSI Project melibatkan sistem yang kecil (dua sampai empat sistem).
b. SOAP didefinisikan untuk : diperlukan pertukaran data pada sistem,
format legacy message telah dimengerti, dan legacy APIs/methods telah
tersedia.
c. Faster time to market.
d. Lower integration cost.
2. Service Oriented Integration (SOI). Integrasi berorientasi layanan bersifat
sistematic dan strategis dalam context SOA. Karakteristik SOI [8] :
a. Kerangka kerja SOA, proses-proses, guidelines, models dan kakas yang
digunakan didefinisikan pada fase awal.
b. Pemodelan formal dari domain service digunakan. Identifikasi tipe data
kunci, kontrak service, dan proses-proses yang digunakan dalam
organisasi.
c. Taxonomy service didefinisikan dengan baik agar dapat dipromosikan
untuk digunakan lagi untuk project selanjutnya.
d. SOI menciptakan data formal dan data reusable, service, dan model
proses yang applicable dalam domain service atau antar domain service
yang lain.
e. Reduces vendor lock in (Mengurangi ketergantungan terhadap pihak
yang menyediakan produk sistem perangkat lunak) dan
II-17
menyederhanakan dalam melakukan migrasi aplikasi dan konsolidasi di
masa yang akan datang.
Gambar II.4. Arsitektur WSI [8]
Gambar II.5. Arsitektur SOI [8]
II-18
II.9 Perancangan model service
Model service direpresentasikan dengan simbol pada Gambar II.6 [7] :
Gambar II.6. Bentuk Lingkaran Untuk Merepresentasikan Service
Service Compositions adalah sebuah kumpulan layanan-layanan yang telah
dikoordinasi. Gambar II.7 adalah contoh sebuah service composition.
Gambar II.7. Service Composition
Service Inventory adalah kumpulan layanan-layanan yang independent, diatur dan
telah distandarisasi dimana layanan tersebut dapat merepresentasikan suatu
layanan pada enterprise atau sebuah segmen pada enterprise tersebut [7]. Gambar
II.8 merepresentasikan sebuah service inventory.
Gambar II.8. Service Inventory
II-19
Hubungan antara service inventory dan service composition direpresentasikan
dengan gambar II.9. Layanan yang tersedia dapat dirancang untuk digunakan
kembali dalam bentuk service composition.
Gambar II.9. Hubungan Service Inventory dan Service Composition
II.10 Pemodelan service-oriented classes
Bagian ini akan menjelaskan bagaimana service-oriented class dan service
interface didesain agar dapat saling berinteraksi. Terdapat 2 proses untuk
melakukan desain service-oriented class dan service interface [11]. Proses yang
pertama adalah melakukan desain komponen class untuk service oriented dan
proses yang kedua adalah melakukan desain Web services interface.
Berikut adalah langkah untuk desain service oriented class [11]:
1. Mengidentifikasi business services ke dalam component class.
Mengidentifikasi bagian-bagian business logic yang terdapat pada model
applikasi yang digunakan pada sistem kini, kemudian mencoba membuat
component class.
2. Identifikasi logic yang tidak dapat direpresentasikan oleh web services.
Mengidentifikasi fungsi-fungsi yang sulit untuk direpresentasikan dalam
web services agar tidak memberikan efek pada saat melakukan
implementasi web services.
Service Inventory
Service Composition
Supported by- Service Oriented Architecture
II-20
3. Menganalisa classes atau methods yang dapat di gunakan kembali. SOA
memberikan kesempatan untuk melakukan penggunaan kembali kode
routines yang terdapat pada class methods.
4. Identifikasi ketergantungan interfaces. Method yang dibangun secara
public memungkinkan untuk terjadinya internal dependencies. Hal ini
memungkinkan sebuah method harus memanggil method yang lain untuk
menyelesaikan prosesnya.
5. Menentukan tingkat interoperability. Setiap class dilakukan
pengelompokkan methods sesuai dengan kebutuhan data secara internal
atau external. Sebuah method yang biasa digunakan untuk pertukaran data
antar layanan yang saling berinteraksi dan digunakan oleh external
requestor akan memiliki level yang berbeda dibandingkan dengan methods
yang lain.
6. Membuat granular, task oriented classes. Services yang akan dibangun
dikelompokkan ke dalam kelompok-kelompok logical yang mendukung
proses bisnis sebuah layanan.
7. Mengelompokkan methods berdasarkan tipe. Setiap methods yang telah
teridentifikasi dikelompokkan ke dalam kelas yang baru.
8. Identifikasi kandidat service encapsulation. Bagian ini akan melakukan
analisis class yang akan di encapsulation ke dalam web services. Sebuah
kandidat class dari SOA belum berarti cocok untuk diimplementasikan ke
dalam web services.
9. Review non-services class. Melakukan review terhadap classes yang tidak
qualify untuk dijadikan sebagai web services.
10. Identifikasi kesempatan untuk melakukan konsolidasi proses yang saling
berhubungan. Proses ini melakukan iterasi secara keseluruhan untuk
melihat methods yang memiliki level interoperability yang sama.
II-21
II.11 Sistem Informasi Di Perguruan Tinggi
Definisi Sistem Informasi [WEB005] adalah penataan atau pengelolaan manusia,
data, proses, representasi data dan teknologi informasi yang mendukung
kebutuhan pengguna.
Definisi Sistem Informasi [WEB006] :
―Sebuah kumpulan orang, prosedur, sumber daya yang dikumpulkan, diubah
menjadi informasi dan disebarkan dalam sebuah organisasi; sebuah sistem
yang menerima sumber daya data sebagai input dan memrosesnya menjadi
produk informasi sebagai output; sebuah sistem yang menggunakan
perangkat keras, perangkat lunak dan orang untuk melakukan input, proses,
output, penyimpanan dan mengontrol aktifitas dan mengubah sumber daya
data menjadi produk informasi; sebuah sistem yang didesain dengan maksud
tertentu untuk sehingga data, komputer, prosedur, dan orang dapat bersama-
sama mengelola informasi yang penting untuk mencapai misi dari
organisasi.‖
Peranan dari sistem informasi adalah mengolah data menjadi informasi yang dapat
digunakan oleh user, stakeholder, manager. Selanjutnya informasi dimanfaatkan
dengan cara sebagai berikut:
1. Digunakan untuk membuat/menunjang keputusan (decision making).
2. Sebagai feedback.
3. Sebagai input untuk melakukan proses selanjutnya.
4. Digunakan untuk melakukan analisis terhadap suatu sistem.
5. Menunjukkan hasil yang baru.
II.12 Definisi dan Peranan Perguruan Tinggi
Menurut UU No. 20 tahun 2003 pasal 19 ayat 1:
―Yang dimaksud perguruan tinggi adalah merupakan jenjang pendidikan
setelah pendidikan menengah mencakup program pendidikan diploma,
II-22
sarjana, magister, spesialis, dan doktor yang diselenggarakan oleh perguruan
tinggi‖.
Secara khusus peran perguruan tinggi tercantum dalam dalam PP No. 30 tahun
1990 tentang Perguruan Tinggi. Dalam ketentuan umum, Pasal 1 ayat 2 :
―Perguruan tinggi adalah satuan pendidikan yang menyelenggarakan
pendidikan tinggi‖.
Selanjutnya pendidikan tinggi memiliki tujuan sebagai berikut:
1. Menyiapkan peserta didik menjadi anggota masyarakat yang memiliki
kemampuan akademik dan atau profesional yang dapat menerapkan,
mengembangkan dan atau memperkaya khasanah ilmu pengetahuan,
teknologi, dan atau kesenian.
2. Mengembangkan dan menyebarluaskan ilmu pengetahuan, teknologi, dan
atau kesenian serta mengupayakan penggunaannya untuk meningkatkan taraf
kehidupan masyarakat dan memperkaya kebudayaan nasional.
II.13 Peranan Strategis ICT Pada Perguruan Tinggi
Teknologi komunikasi dan informasi telah menjadi pilihan mutlak dalam dunia
pendidikan. Perguruan tinggi memanfaatkan ICT untuk meningkatkan kualitas
penyelenggaraan pendidikan tinggi. ICT telah diterapkan sebagai media untuk
dalam penyelenggaraan aktivitas belajar mengajar, riset, serta pelayanan kepada
masyarakat[3].
II.14 ICT Sebagai Transaction dan Interaction Enabler
ICT memungkinkan perguruan tinggi dapat menciptakan proses pendidikan yang
murah-berkualitas-cepat. Berikut ini adalah contoh pemanfaatan ICT dalam dunia
pendidikan[3] :
1. Pendaftaran online menggunakan website.
2. FRS online.
3. Course online.
II-23
4. Pengumuman hasil ujian online.
5. Manajemen ruangan kelas, mata kuliah, dosen.
6. Portal Perpustakaan.
7. e-learning.
8. Blog.
9. Sharing files.
10. Ujian online.
II.15 Inovasi ICT Untuk Menunjang Aktifitas Perguruan Tinggi
Manfaat ICT telah digunakan oleh perguruan tinggi saat ini. Selanjutnya ICT telah
berkembang menjadi partner para akademisi untuk menciptakan inovasi yang
lebih berkualitas dalam menunjang aktifits perguruan tinggi.
Berikut adalah contoh inovasi ICT yang digunakan oleh perguruan tinggi dalam
menyelenggarakan aktivitasnya [3]:
1. Media Simulasi.
2. Course Management
3. Virtual Class
4. Distance learning
5. CBT (Computer Based Training)
6. Knowledge portal
7. Cyber Community
II.16 SOA dan Integrasi Sistem Informasi Pada Perguruan Tinggi.
Dengan semakin majunya teknologi, pemanfaatan teknologi yang semakin
berkembang maka kompleksitas dan keanekaragaman platform tidak bisa
dihindari. SOA menawarkan sebuah rancangan arsitektur yang dapat digunakan
oleh perguruan tinggi untuk melakukan pengintegrasian sistem informasi.
Keuntungan dari SOA yang dapat dipenuhi oleh ICT memberikan manfaat bagi
II-24
perguruan tinggi untuk melakukan pengembangan dalam proses bisnis perguruan
tinggi. Sistem informasi yang telah ada serta layanan-layanan yang digunakan
dapat dikembangkan dan diintegrasikan dengan menggunakan SOA. SOA
memberikan solusi bagi perguruan tinggi dalam menangani kompleksitas
platform hardware, software, perawatan perangkat lunak, training operator,
penggunaan kembali kode, dan pengembangan layanan-layanan di perguruan
tinggi.