TEKNOLOGI PENGEMBANGAN PERANGKAT LUNAK BERBASIS KOMPONEN DAN PENERAPANNYA DALAM SISTEM TERDISTRIBUSI

 Abstraksi

 

Model komputasi Client/Server merupakan salah satu teknologi yang digunakan dalam bidang

pengembangan perangkat lunak. Salah satu aspek yang menarik untuk dikaji dalam model ini adalah teknologi

pengembangan perangkat lunak berbasis komponen. Makalah ini membahas mengenai teknologi pengembangan

perangkat lunak berbasis komponen dan penerapannnya dalam suatu studi kasus.

 

  1. 1.     Pendahuluan

 

Model komputasi Client/Server, selanjutnya disebut model komputasi terdistribusi tengah menjadi isu yang menarik dan hangat

diperbincangkan dalam dunia teknologi informasi khususnya dalam bidang pengembangan perangkat lunak. Salah satu aspek yang menarik untuk dikaji

dalam model ini adalah teknologi pengembangan perangkat lunak berbasis komponen.Dikatakan menarik karena tujuan dari teknologi ini adalah untuk mengurangi waktu dan usaha yang diperlukan dalam pengembangan suatu perangkat lunak. Hal ini disebabkan karena suatu komponen dimungkinkan untuk melakukan

komunikasi dengan komponen yang lainnya sehingga dapat digunakan oleh banyak aplikasi yang besar dan beragam dalam suatu jaringan komputer.

Teknologi ini juga sering disebut dengan istilah middleware, maksudnya komponen yang dibuat dijadikan sebagai penghubung antara front-end dan back-end application.Teknologi berbasis komponen dimplementasikan oleh Microsoft dengan teknologi COM dan DCOM (Distributed Common Object Model), OMG (Object Management Group) mengimplementasikannya dengan teknologi CORBA (Common Object Request Broker Architecture), sedangkan sun mengimplementasikannya dengan JavaBean dan Entreprise Java Bean (EJB). Ketiga teknologi ini dirancang dengan tujuan yang sama, yaitu sebagai platform independen yang memungkinkan terjadinya komunikasi antar objek dalam jaringan komputer. Di dalam makalah ini, akan dilakukan kajian terhadap teknologi pengembangan perangkat lunak berbasis komponen sekaligus menerapkannya dengan cara membuat komponen-komponen terdistribusi (DISTSIMAKServer). Untuk menguji komponen yang dibuat, maka dalam makalah ini komponen yang dibuat akan diimplementasikan dalam studi kasus protipe Sistem Informasi Akademik berbasis komponen terdistribusi (DISTSIMAK) di Jurusan sistem Informasi di Universitas Gunadarma.

 

  1. Komponen dan Aplikasi Terdistribusi

 

Beberapa tahun terakhir ini teknologi pengembangan perangkat lunak berbasis komponen telah menjadi sebuah paradigma baru dalam mengembangkan suatu aplikasi perangkat lunak terutama pada aplikasi terdistribusi. Keuntungan dari teknologi ini adalah untuk mengurangi waktu dan biaya pengembangan, serta meningkatkan derajat dari interoperabilitas, portabilitas dan maintainabilitas. [CRN97]. Bagian ini akan memberikan gambaran tentang beberapa aspek dari teknologi komponen.

 

2.1  Definisi Komponen

 

Komponen adalah entitas yang dapat digunakan oleh beberapa program yang berbeda. Komponen menyediakan model standar untuk pemaketan layanan-layanan. Pada sebuah aplikasi yang menggunakan komponen, komponen hanyalah sebuah kotak hitam, karena semua data dan implementasi detail yang dimiliki oleh sebuah komponen disembunyikan. Layanan dari sebuah komponen dibuka melalui public interfaces. Saat ini tools untuk pembuatan komponen telah mendukung penggunaan interface. [BRI01] Dari literatur yang lain, istilah komponen adalah bagian dari perangkat lunak dalam bentuk binary form, dapat disebarkan (deployed) secara bebas (dapat dimuat kedalam sistem secara dinamis,ataupun diganti secara dinamis). Komponen harus memiliki mekanisme yang memungkinkan untuk berintegrasi dengan sistem tanpa modifikasi dan mengembangkan ulang sistem. [KIR98] Suatu komponen dianggap sebagai languageneutral.

Artinya bahwa sejumlah komponen dapat ditulis dalam bahasa yang berbeda. Ini berarti bahwa  meskipun komponen-komponen tersebut dirancang dan disebarkan dalam bahasa yang berbeda namun mereka dapat bekerja bersama. [BRO00]

Suatu komponen dapat diimplementasikan terbebas dari komponen yang lainnya. Hal ini dimungkinkan sebab komponen terenkapsulasi, dimana masing-masing komponen memiliki unit kecil dari pengembangan dan pengujian. Suatu komponen tidak dibatasi untuk dapat dijalankan pada platform tunggal, karena dimungkinkan untuk membuat deployment yang berbeda untuk suatu komponen agar dapat dijalankan pada beberapa platform. [BRI01] Meskipun sebagian besar komponen dibuat untuk memenuhi kebutuhan dari suatu aplikasi, namun setiap kali suatu komponen dibuat dan disebarkan, maka sangatlah mungkin untuk menggunakan komponen tersebut pada aplikasi yang berbeda. Selama interface dari komponen tersebut memenuhi kebutuhan pengguna, maka komponen yang sama dapat digunakan untuk mengembangkan atau meningkatkan aplikasi yang lain. [KIR98] Kegunaan dari komponen adalah untuk menyediakan beberapa layanan yang dapat digunakan oleh sistem yang berada di lingkungannya. Lingkungan dari komponen dapat terdiri dari komponen lain, aplikasi, dan lain sebagainya. Layanan yang disediakan oleh komponen kepada lingkungannya diakses melalui satu atau lebih interface. Spesifikasi Interface dapat dipandang sebagai sebuah kontrak, yang terjadi antara komponen yang menyediakan (mengimplementasi) layanan tertentu dan lingkunan yang menggunakan layanan tersebut. [BRO00] Komponen terdiri dari beberapa properti yang menggambarkan karakteristik dari komponen tersebut. Komponen seharusnya bersifat composable, artinya sebuah komponen bukanlah merupakan sebuah aplikasi lengkap, melainkan merupakan bagian dari sebuah keseluruhan sebuah aplikasi. Dengan kata lain, sebuah komponen seharusnya menyediakan beberapa fungsionalitas yang digabungkan dengan fungsionalitas yang disediakan oleh komponen lain untuk memperoleh aplikasi yang lengkap. Suatu komponen harus dapat digunakan oleh beberapa aplikasi, meskipun terkadang terdapat komponen yang sangat spesifik sehingga sulit untuk digunakan ulang pada aplikasi yang lain.Komponen dapat diklasifikasikan dalam 2 kategori yaitu simple and composite components. Jika kelakuan dari sebuah komponen dihasilkan dari sekumpulan binary code, maka komponen tersebut dikategorikan sebagai simple component. Sedangkan, jika kelakuan dari komponen merupakan hasil penggabungan dari beberapa komponen, maka komponen tersebut dikategorikan sebagian composite components.Composite components sering juga disebut dengan istilah compound components. Dalam makalah ini istilah komponen dikaitkan dengan simple component.

 

 

2.2  Komponen Terdistribusi

 

Komponen terdistribusi adalah komponen perangkat lunak yang disimpan di mesin yang terpisah dengan aplikasi klien dan difasilitasi oleh protokol komunikasi yang ditambahan kedalam komponen dasar. Dengan memisahkan komponen dari aplikasi klien diharapkan dapat memudahkan pengembang dalam melakukan perubahan fitur dan implementasi dari komponen di kemudian hari,tanpa harus mengkompilasi ulang aplikasi yang ada di klien.Komponen-komponen terdistribusi biasanya dikelola oleh suatu kakas yang berfungsi untuk mengelola dan memonitor aktifitas dari komponen.

Contoh dari kakas ini adalah Microsoft Transaction Server.

 

2.3  Aplikasi Terdistribusi

 

Arsitektur aplikasi adalah pandangan secara konseptual terhadap struktur dari sebuah aplikasi.Pada umumnya sebuah aplikasi terdiri dari kode program untuk pengolahan data, business logic dan user interface. Di dalam pengembangan aplikasi enterprise tradisional digunakan paradigma yang bersifat monolitik, artinya basis data, business logic dan user interface digabung kedalam satu aplikasi yang sama. Akibatnya ketika terjadi perubahan,

seluruh sistem perlu dikompilasi ulang, sementara perubahan yang dilakukan tidak terlalu banyak.Kelemahan lainnya, reusability dari modul-modul sangat rendah. [STA00] Jenis-jenis arsitektur aplikasi terdistribusi yang dikenal dalam lingkungan pengembangan perangkat lunak diantaranya adalah:

 

2-Tier Client-Server on Intranet

2-Tier Client-Server on Internet

3-Tier Client-Server on Intranet

3-Tier Client-Server on Internet

 

Saat ini aplikasi yang ada sebagian besar menggunakan arsitektur 2-tier atau lebih dikenal dengan aplikasi client/server yang dijalankan di intranet maupun internet. Pada arsitektur ini, klien menangani kode untuk pemrosesan data dan antarmuka dengan pemakai dari aplikasi. Sedangkan data disimpan dan dikelola oleh komputer server.Untuk mengakses data yang diperlukan maka komputer klien melakukan hubungan secara langsung ke komputer server, dan hubungan ini seringkali dilakukan selama aplikasi dijalankan.Arsitektur 2-tier bekerja dengan baik pada lingkungan yang banyaknya pemakai terbatas,namun jika digunakan pada sistem dengan jumlah pemakai yang sangat banyak, kinerja dari sistem akan berkurang. Hal ini dikarenakan terbatasnya hubungan yang tersedia antara Klien dan Server.Selain itu aplikasi yang ada pada klien relatif berukuran besar, karena setiap aplikasi di klien mengandung kode untuk pemrosesan data (sering disebut dengan istilah fat client). Repotnya lagi, jika kode untuk pemrosesan data memerlukan

perubahan, maka aplikasi harus didistribusikan ulang ke seluruh komputer yang ada pada klien. Kemudian timbul ide untuk melakukan sedikit perbaikan dengan cara memindahkan kode untuk pemrosesan data kepada komputer server. Misalnya dengan menggunakan fitur Stored Procedures, yang disediakan oleh beberapa DBMS Server. Arsitektur ini terkadang disebut dengan arsitektur “two-and-a-half tier.”. Namun dari segi

scalability dan reuseability, arsitektur ini masih memiliki keterbatasan. Masalah keterbatasan scalability dan reuseability ini akhirnya dapat diperbaiki secara siginifikan dengan diperkenalkannya arsitektur 3-tier. Pada model ini, kode untuk antarmuka dengan pemakai, pemrosesan data dan pengaksesan data dipisahkan satu dengan yang lainnya, namun perlu dicatat bahwa pemisahan yang dilakukan hanya pada sisi logik saja, bukan

pemisahan secara fisik. Hebatnya lagi, kode-kode itu tidak perlu ditulis dalam bahasa yang sama, tidak perlu pula berada platform yang sama ataupun pada mesin yang sama.

 

Dengan menggunakan model arsitektur 3-tier, maka sumber daya yang ada misalnya koneksi ke basis data dapat digunakan bersama oleh beberapa klien. Pada arsitektur ini klien tidak lagi berhubungan secara langsung dengan data server, karena komunikasi untuk melakukan permintaan data dilakukan melalui business service. Hal ini berbeda dari komunikasi klien dan database pada aplikasi 2-tier. Pada aplikasi yang menggunakan arsitektur 3-tier, kode untuk antarmuka dengan pemakai, pemrosesan data dan pengaksesan data dipisahkan satu dengan yang lainnya. Karena adanya pemisahan ini, maka mulailah diperkenalkan istilah Service Model.

Service Model adalah cara yang digunakan untuk mengelompokkan komponen-komponen yang dibuat dalam sebuah aplikasi yang menggunakan arsitektur 3-tier.Adatiga service model yang dikenal, yaitu: [JER99] User Services / Presentation Layer Business Services / Business Layer

Data Services / Data Access Layer

 

 

2.4  Keterkaitan Komponen dan Aplikasi Terdistribusi

 

Komponen tidak hanya dapat digunakan untuk mengembangkan aplikasi terdistribusi. Dalam pengembangan aplikasi tidak terdistribusi, pengembang perangkat lunak dapat menggunakan komponen sebagai bagian dari aplikasi yang dikembangkan. Biasanya komponen yang digunakan adalah komponen untuk user interface dan data access. Contohnya adalah pada aplikasi yang dikembangkan dengan menggunakanDelphi,

dimana untuk keperluan masukan dan keluaran dari aplikasi, pengembang aplikasi yang menggunakan Delphi menggunakan komponen-komponen yang sudah disediakan oleh Borland dan pengembang lain yang mengembangkan komponen-komponen untuk dapat digunakan pada Delphi. Sedangkan pengembang yang menggunakan Visual Basic,menggunakan kontrol-kontrol untuk mengembangkan aplikasi terutama untuk user

interface dan data access. Pada dasarnya kontrol adalah komponen yang dibangun dengan menggunakan teknologi COM yang disimpan dalam sebuah file yang memiliki ekstensi OCX.Terdapat beberapa pengertian tentang aplikasi terdistribusi. Pengertian yang pertama adalah adanya pengembang yang memiliki pandangan bahwa jika basis data yang dikelola oleh aplikasi dipisahkan dari aplikasi dengan cara menyimpannya pada mesin yang lain (1-tier application) maka aplikasi tersebut dapat dikategorikan sebagai sebuah aplikasi terdistribusi.

 

Pengertian yang kedua adalah adanya pengembang yang memiliki pandangan bahwa jika basis data dikelola oleh DBMS Server, sedangkan aplikasi hanya terdiri dari User Interface dan Business Services (2-tier application) maka aplikasi tersebut dapat dikategorikan sebagai sebuah aplikasi terdistribusi. Pengertian yang ketiga adalah adanya pengembang yang memiliki pandangan bahwa sebuah aplikasi dikategorikan sebagai aplikasi terdistribusi, jika kode untuk user interfaces, business services, dan data access dipisahkan satu dengan yang lainnya.

 

Dalam makalah ini, penulis sependapat dengan pengertian yang ketiga. Sehingga hubungan antara komponen dan aplikasi terdistribusi ditekankan pada penggunaan komponen yang berada di lapisan Business Services. Dalam pengembangan aplikasi terdistribusi berbasis komponen, komponen untuk business services ini sering disebut dengan istilah middleware.

 

 

  1. Studi Kasus

 

Untuk menerapkan teknologi pengembangan perangkat lunak berbasis komponen terdistribusi yang menjadi kajian dalam penulisan makalah ini,maka diperlukan suatu implementasi dalam bentuk studi kasus. Dalam memilih studi kasus yang akan dibuat, penulis memutuskan untuk mengembangkan ulang aplikasi yang pernah dikembangkan oleh penulis. Dari sekian banyak aplikasi yang pernah dikembangkan oleh penulis, maka penulis memilih untuk mengembangkan ulang ( Reengineering ) aplikasi Sistem Informasi Akademik (SIMAK) di STMIK Mardira Indonesia yang dikembangkan dengan arsitektur 2-tier dan metodologi pengembangan konvensional, menjadi Distributed Sistem Informasi Akademik (DISTSIMAK) yang menggunakan arsitektur 3-tier. Alasan yang mendasari dilakukannya reengineering terhadap aplikasi SIMAK, adalah:

 

  1. Dikaitkan dengan karakteristik teknologi

 

pengembangan perangkat lunak berbasiskomponen maka SIMAK cocok untuk dikembangkan ulang dengan menggunakan teknologi tersebut.

 

  1. Aplikasi-aplikasi yang ada pada sebuah

 

enterprise, dapat menggunakan komponen yang sama tanpa harus mengkompilasi ulang aplikasi jika terjadi perubahan implementasi pada komopnen yang digunakan. Dengan mengembangkan ulang SIMAK melalui metodologi berbasis komponen maka akan komponenkomponen yang dibuat oleh aplikasi SIMAK akan dapat digunakan oleh aplikasi lain di lingkungan STMIK Mardira Indonesia.

 

  1. Karena komponen menjadi bagian utama

 

dari perangkat lunak, maka jika dilakukan perubahan pada aturan bisnis, tidak perlu dilakukan perubahan pada aplikasi-aplikasi yang ada, melainkan cukup dilakukan pada komponen yang membentuk aplikasi tersebut.

 

  1. Dengan digunakannya komponen, maka

 

aplikasi pada klien akan menjadi semakin tipis ( thin client ) yang mengakibatkan tidak diperlukannya sumber daya komputer yang terlalu tinggi.

 

2. Terdapat beberapa kelemahan dari arsitektur aplikasi SIMAK, diantaranya:

a. Business logic pada SIMAK masih digabungkan kedalam presentation logic.

b. Tidak adanya dokumentasi perangkat lunak SIMAK, mengakibatkan kesulitan saat dilakukan pemeliharaan terhadap aplikasi SIMAK.

c. Perlunya intalasi ulang pada semua klien saat dilakukan perubahan.

d. Tingginya sumber daya komputer yang dibutuhkan oleh setiap klien karena semua kode program dibebankan terhadap komputer klien.

 

Dengan demikian dalam pembuatan studi kasus pada makalah ini akan dilakukan pekerjaanpekerjaan berikut:

Melakukan tinjauan terhadap aplikasi SIMAK.

Melakukan ReEngineering aplikasi SIMAK pada aplikasi DISTSIMAK.

 

Sebelum dilakukan pembahasan mengenai pekerjaan-pekerjaan tersebut, terlebih dahulu akan dilakukan perbandingan terhadap aplikasi SIMAK dan DISTSIMAK yang dilakukan pada beberapa sisi. Hal ini dilakukan untuk memperjelas perbedaaan maupun perubahan yang terjadi dari ketiga aplikasi tersebut.

 

 

3.1  Tinjauan Terhadap Aplikasi SIMAK Tinjauan terhadap aplikasi SIMAK dilakukan dengan tujuan untuk mengetahui beberapa hal yang terkait dengan SIMAK ditinjau dari berbagai aspek, yaitu:

3.2

 Spesifikasi

Aspek ini perlu ditinjau ulang dengan tujuan agar penulis dapat menentukan spesifikasi masukan,proses dan keluaran yang harus ada pada DISTSIMAK.

 

 Arsitektur

Aspek ini perlu ditinjau ulang dengan tujuan agar dapat dilihat perbedaan arsistektur antara SIMAK dan DISTSIMAK.

 

 Basis Data

Aspek ini perlu ditinjau ulang dengan tujuan untuk dapat dijadikan sebagain acuan untuk menentukan basis data yang harus ada pada DISTSIMAK.

 

 

 

 

3.1.2 Arsitektur SIMAK

 

SIMAK diimplementasikan dengan menggunakan arsitektur 2-tier dengan mode multiuser.Aplikasi SIMAK terdiri atas beberapa file eksekusi yang berhubungan langsung dengan pengguna dan berisi modul-modul .File eksekusi ini menggunakan komponen dan paket yang melakukan perubahan terhadap data yang disimpan pada file basis data yang disimpan pada computer server. Basis data SIMAK dikelola oleh DBMS Microsoft Access.

 

 

 

 

SIMAK menggabungkan seluruh layanan aplikasi yang terbagi atas beberapa modul dalam satu wadah, sehingga aplikasi SIMAK bersifat fat client. Untuk mengimplementasikan seluruh layanan tersebut telah digunakan beberapa komponen dan kontrol yang disediakan oleh bahasa pemrograman Delphi dan VB, maupun komponen dan kontrol yang dibuat sendiri oleh penulis.

 

 

 

3.2.4 Perancangan DISTSIMAK

 

Untuk melakukan perancangan perangkat lunak DISTSIMAK yang akan dibuat, digunakan diagram UML yaitu Class Diagram, Component Diagram, dan Sequence Diagram. Penggunaan diagram dan penjelasannya secara terperinci dapat dilihat pada SPL-DISTSIMAK. Bagian ini hanya mengemukakan perancangan perangkat lunak secara global. Tahapan yang diambil dalam perancangan perangkat lunak DISTSIMAK adalah:

1. Perancangan masukan dan keluaran

2. Perancangan aspek statis perangkat lunak, yang meliputi penentuan struktur data internal,penentuan kelas dan hubungan antar kelas yang terjadi. Diagram yang digunakan adalah class diagram.

3. Perancangan aspek dinamis, yang meliputi penghidupan obyek, pemanggilan layanan yang disediakan obyek, dan pemusnahan obyek. Diagram yang digunakan adalah collaboration diagram dan sequence diagram.

 

 

  1. 4.     Kesimpulan

 

Dari uraian diatas dapat disimpulkan bahwa untuk membangun perangkat lunak berbasis komponen, diperlukan syarat-syarat sebagai berikut :

 

a. Pemahaman terhadap teknologi pengembangan perangkat lunak berbasis komponen .

b. Pengetahuan tentang kemampuan dari beberapa tools yang mendukung teknologi yang dikaji.

c. Pembuatan komponen-komponen terdistribusi , yang dapat digunakan oleh pemrogram yang mengembangkan perangkat lunak berbasis komponen terdistribusi.

 

 

  1. Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: