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-1
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. memberikan
peta
dan
menggunakan
model
untuk
menyatukan
SOA 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-2
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 layananlayanan 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-3
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, layananlayanan 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-4
SOA
Appliation Front End
Service
Service Repository
Contract
Implementation
Interface
Business Logic
Service Bus
Data
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 fungsifungsi bisnis yang dapat dikenal sehingga kebutuhan-kebutuhan bisnis dan kemampuan-kemampuan teknikal dapat di selaraskan dengan tepat.
II-5
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 layananlayanan 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-6
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. Layananlayanan 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-7
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 elemenelemen yang terlibat dalam web services:
II-8
Registry
Service Provider
Service Consumer
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 komponenkomponen yang terdapat pada service contract adalah nama layanan, nomor versi, header.
II-9
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-10
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-11
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-12
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.
Service Modelling Identify Business Process
Design-Time
Evaluate
Build and Compose
Publish and Provision
Run-Time
Secure and Manage
Integrate and Deploy
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
II-13
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 metodemetode yang dapat digunakan.
3.
UDDI (Universal Description, Discovery and Integration) adalah sebuah kerangka kerja platform yang independent untuk mendeskripsikan layananlayanan, 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-14
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-15
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.
2.
c.
Faster time to market.
d.
Lower integration cost.
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
II-16
sistem
perangkat
lunak)
dan
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-17
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-18
Hubungan antara service inventory dan service composition direpresentasikan dengan gambar II.9. Layanan yang tersedia dapat dirancang untuk digunakan kembali dalam bentuk service composition.
Service Inventory
Supported by- Service Oriented Architecture
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.
II-19
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-20
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 bersamasama 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-21
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-22
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-23
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. memberikan solusi bagi perguruan tinggi
SOA
dalam menangani kompleksitas
platform hardware, software, perawatan perangkat lunak, training operator, penggunaan kembali kode, dan pengembangan layanan-layanan di perguruan tinggi.
II-24