Wednesday, May 8, 2013

Konsep Arsitektur Website

Abstrak

Sekitar 60 tahun usia teknologi yang bernama mainframe telah banyak dimanfaatkan dalam menyelesaikan berbagai macam jenis pekerjaan secara standalone dan lokal saja (intranet). Berkembangnya intranet menjadi internet menimbulkan berbagai macam persoalan yang memunculkan konsep multitier dan teknologi baru. Dulunya teknologi web tradisional mempunyai sistem monolithic, sekarang menjadi sistem yang client/server. Saat ini pula banyak mesin yang multiplatform, aplikasi yang dibangun dari berbagai macam bahasa pemograman dan device yang telah mampu terhubung dengan internet menghasilkan jaringan yang lebih scalable sehingga membentuk 3-tier bahkan N tier yang dikenal dengan istilah multitier system.


Key: monolithic system, client-server, 3-tier and N tier

Pendahuluan

Memang tidak terasa teknologi komputer sampai saat sekarang ini usianya lebih dari 60 tahunan, telah benar-benar banyak membantu manusia diseluruh dunia dalam meringankan beban dan tugas keseharian dalam beraktivitas. Kegiatan manusia yang tidak pernah habis dan tidak akan pernah selesai dan juga tidak akan pernah merasa puas, sampai hari yang ditentukan kelak, membuat manusia terus saja berpikir untuk mengembangkan segala kemampuan dan sumber-sumber daya yang ada.

Sekarang ini teknologi komputer berkembang terus sehingga mampu memukau akal pikiran manusia awam. Berbagi pakai bersama-sama suatu data yang tersimpan di gudang data pada tempat yang sama (lokal) tidak membuat manusia merasa cepat berpuas hati. Seperti mimpi saja rasanya sewaktu berhasil melakukan komunikasi dan berbagi pakai bersama-sama suatu data yang tersimpan di gudang data pada tempat yang jaraknya sangat-sangat jauh berada (Internet).

Walaupun sulit untuk dapat mengetahui definisi yang tepat dari arsitektur namun terdapat suatu konsensus tentang bidang-bidang yang dicakup oleh istilah tersebut (misalnya lihat [VRAN80],[SIEW82] dan [BELL78a]. Arsitektur merupakan cara di mana komponen-komponen dalam sebuah komputer atau sistem komputer dapat diorganisasikan dan diintegrasikan sehingga membentuk suatu sistem yang sangat penting untuk keberhasilan tujuan tertentu. Pemahaman terhadap komponen-komponen tersebut diperlukan untuk dapat menciptakan keterkaitan dengan sistem lainnya, sehingga terjadi komunikasi antar elemen-elemen secara baik dan benar yang disesuaikan dengan keinginan.

Tulisan ini tidak membahas mengenai teknologi enterprise/middleware (dua buah aplikasi yang dibangun dari bahasa pemograman yang berbeda untuk dapat saling berkomunikasi satu sama lain) seperti RPC (Remote Procedure Call), CORBA (Common Object Request Broker Architecture), RMI (Remote Method Invocation)/IIOP (Internet Inter-ORB Protocol), WebSphere MQ atau Microsoft Biztalk yang memang benar tidak dapat dipisahkan dari teknologi multitier. Disini penulis sedikit memberikan contoh penerapan multitier system dilingkungan web proggraming dan lebih memfokuskan mempopulerkan istilah multitier saja dalam menambah wawasan pembaca sejalan dengan perkembangan pesat dari Information Communication Technology (ICT).

Identiknya World Wide Web (WWW) dengan Internet

Dahulu sebelum internet menjadi terkenal, ada yang disebut dengan intranet, yang telah dipakai dan dikembangkan oleh Advanced Research Projects Agency (ARPA) yang dibuat untuk kalangan dan kepentingan sendiri oleh pemerintah Amerika Serikat. Berikutnya intranet ini semakin berkembang pesat sehingga penggunaannya tidak lagi sebatas kalangan dan demi kepentingan sendiri saja, namun telah menjadi besar sehingga tidak lagi dikatakan intranet tetapi lebih dikenal dengan istilah internet dan pengembangannya dibawah Defense Advanced Research Projects Agency (DARPA).

Banyak vendor dari pembuat Operating System (OS) telah menyediakan aplikasi layanan internet ini secara cuma-cuma sebagai bentuk dukungan yang aktif bagi kemajuan perkembangan teknologi computer network. Internet tidak mudah dipisahkan dengan World Wide Web (WWW) yang sering disebut sebagai web, karena bentuk layanan internet secara jelas diaplikasikan terhadapnya. User biasanya berinteraksi secara langsung dengan internet melalui web browser, karenanya pula maka ada yang menyebut internet identik dengan web.

World Wide WebConsortium (W3C) melanjutkan pengembangkan teknologi hyperteks bagi kemajuan web, sehingga web-web tradisional yang statis secara cepat telah mulai berkembang kearah web-web yang bersifat dinamis. W3C membuat standarisasi web yang paling mendasar untuk bahasa pemogramannya yaitu Hyper Teks Markup Language (HTML), Extensible Markup Language (XML) dan Cascading Style Sheets (CSS). Web pages (halaman-halaman/lembaran-lembaran web) yang menyimpan informasi yang telah disiapkan oleh para pembuat web (programmer web) tersimpan didalam tempat penyimpanan data permanen komputer (hard disk drive) dari web server, sehingga komputer-komputer yang dipakai oleh user untuk membuka dan menampilkan halaman tersebut menggunakan web browser. Internet explorer, mozilla firefox, nescape navigator dan masih banyak lagi web browser yang populer sering dipakai oleh user untuk mencari apa saja informasi yang dibutuhkan didunia maya internet.

Arsitektur 1 – tier (mainframe/single tier)

Bahasan mengenai internet sangat luas sehingga diperlukan batasan yang disesuaikan dengan materi yang diinginkan. Internet telah ada untuk mesin mainframe dan menjadi aplikasi yang telah dipaketkan didalam satu sistem operasi. Secara fisik mini computer/mainframe ini cukup besar dan mempunyai kemampuan yang besar pula dalam mengelola dan mengolah data, harganya yang mahal dan pemeliharaan (maintainance) yang rumit.

Pada lingkungan komputasi seperti itu, aplikasi client, server, database, protokol komunikasi dan proses transaksi serta manajemen bekerja pada unit komputer tunggal (mainframe). Sebagai arsitektur single tier teknologi ini juga disebut monolithic system karena sistem ini terlihat menyatukan lapisan resource management, application dan presentation logic. Komputasi sistem single tier ini menunjukkan bahwa aplikasi client, server, database, protocol dan semua pengaturan sumber-sumber daya bekerja pada satu unit komputer saja.

Sistem single tier ini mempunyai fleksibilitas rendah dalam hal pengaturan sumber-sumber daya dan layanan-layanan yang ada, misalnya saja sewaktu client memberikan regues terhadap server, maka client harus menunggu sampai datangnya pesan dari server. Sewaktu proses menunggu berlangsung layanan-layanan yang lain tidak dapat digunakan sehingga dari sisi client menjadi terminal yang dummy. Biasanya single tier ini homogen terlihat dari resource management, application dan presentation logic yang bekerja pada satu unit mesin saja misalnya saja mesin AS/400. Keuntungan dari sistem single tier ini adalah mudah untuk meningkatkan performance dari sistem, tidak kompatible dan tidak ada konteks switching. Fleksibilitas yang rendah, ketersediaan resource terbatas dan pemrosesan system tunggal merupakan kelemahan dari sistem ini.


Arsitektur 2 – tier (Client/Server)

Secara kosa kata kamus inggris, tier bermakna deretan/bertingkat/level/ berlapis. Sehingga banyak dari para ahli komputer dan pemograman web mendefinisikan multitier/tier sebagai arsitektur sistem berlapis dari web databases pada komunikasi data dan interoperabilitas pada internet di jaringan komputer.

Gambar arsitektur multitier.
Keterangan : (a) - (e) adalah pilihan organisasi yang ada pada arsitektur multitier


Menurut Gallaugher & Ramanathan (1996) : “client/server adalah client mengirim permintaan ke server, server menterjemahkan pesan, kemudian berusaha memenuhi permintaan”. Sedangkan menurut Blaha & Premerlani (1998) : “client/server adalah suatu arsitektur dimana sumber daya server menyediakan komputasi untuk banyak komponen client. Client dapat mengakses satu server atau multipleserver. Client dan server bisa berjalan pada mesin yang sama atau berbeda, ditulis dalam berbagai bahasa dan menggunakan sistem operasi yang berbeda.

Sebagai tier pertama adalah arsitektur client, yang telah memisahkan presentation layer dengan application dan resource management layer. Sehingga dari sisi client (client side) arsitektur ini menjadi fat client karena komponen pemrosesan utama berlangsung pada sisi client. Web browser menjadi sibuk disebabkan proses dikerjakan di web browser (client), contohnya saja JavaScript, DHTML, HTML dan lainnya. Sebaliknya jika semua proses pengerjaan skrip dilakukan di server/web server, bukan di web browser/client maka client menjadi thin, contohnya ASP, PHP, JSP dan lainnya.

Sebagai tier kedua adalah server, disebut juga sebagai business object atau application dan resource management layer. Pada aplikasi web, tempat ini diisi oleh web server. Application Server ini bertugas mengatur segala sesuatu yang berhubungan dengan aplikasi, seperti manajemen resource di server, maintenance setiap session yang terbentuk. Pada aplikasi web, koneksi yang terbentuk hanya saat user mengirimkan data ke server dan pada saat server mengirimkan data ke user. Jadi resource di server hanya dipakai saat diperlukan saja dan menjadi lebih efisien.

Secara umum konsep client/server sebagai model dari arsitektur 2-tier adalah sebagai berikut:
a. Client melakukan permintaan ke server dengan topologi jaringan tertentu

b. Server sebagai penyedia layanan permintaan mengatur dan mengirimkan kembali suatu pesan tersebut ke client. Pesan yang diterima dapat berupa sekumpulan record atau nilai yang menyatakan eksekusi telah berhasil dilaksanakan atau juga pesan kesalahan (web server - web browser).

Portabilitas yang baik dan multiplatform adalah kelebihan dari sistem ini namun belum dapat dikatakan mempunyai scalabilitas, kinerja dalam hal komunikasi data yang masih lambat dan apabila melakukan perubahan pada sisi server maka client juga akan dirubah.

Arsitektur 3 – tier

Perkembangan internet semakin membesar termasuk jaringan dan segala model topologi jaringan komputer yang tidak memungkinkan lagi pemrosesan diselesaikan dengan cara client/server, ditambah lagi dengan heterogennya berbagai macam sistem operasi (multiplatform), berbagai macam aplikasi, berbagai macam databases dan berbagai macam perangkat (device) keras sehingga perlu melakukan suatu perubahan yang besar untuk menyediakan layanan-layanan yang baik dan cepat.

Arsitektur 3-tier ini muncul karena adanya kendala dan keterbatasan pada arsitektur 2-tier. Pada arsitektur 2-tier jika kita ingin melakukan perubahan fungsi dari suatu komponen client maka kita juga akan ikut melakukan perubahan fungsi terhadap komponen server, begitu juga sebaliknya jika kita melakukan perubahan business logic pada server maka client juga ikut mengalami perubahan tersebut.

Arsitektur 3-tier merupakan lanjutan pengembangan dari client/server, arsitektur 3-tier ini telah memisahkan lapisan presentation layer sebagai tier pertama yang diisi oleh client menggunakan antarmuka GUI, lapisan application layer sebagai tier kedua diisi oleh host yang dikenal dengan istilah middletier/middleware server dan lapisan resource management layer sebagai tier ketiga yang diisi oleh data services.

Client berisi antarmuka GUI dan beberapa aplikasi tambahan mengenai aturan bisnis. Server broker sebagai penghubung dengan mengirim aturan bisnis (prosedur atau constraint) yang digunakan untuk mengakses data dari/ke host. Kemudian server bertindak sebagai conduit of passing yang memproses data dari host ke client dimana kemudian diproses atau difilter dan dipresentasikan ke pemakai dalam format GUI. Antar muka pemakai, aturan dan pengaksesan data bertindak sebagai 3-tiers. Client biasanya dihubungkan ke server melalui LAN dan server dihubungkan ke host melalui WAN. Client melakukan remote yang dihubungkan ke server melalui WAN juga.

Yang pasti sistem ini multiplatform ditambah lagi adanya lapisan middleware untuk berbagai macam aplikasi terdistribusi yang diperuntukkan bagi berbagai macam resources. Kinerja dari sistem ini sewaktu-waktu dapat menjadi sangat lambat apabila secara bersamaan user mengakses menggunakan internet untuk melakukan permintaan ke sistem server database. Kesulitan dalam menghubungkan atau menggabungkan antar middleware yang berbeda platform adalah kelemahannya, misalkan saja ketika kita ingin menggabungkan atau menghubungkan middleware seperti Enterprise Java Beans (EJB) dengan SonicMQ.


Arsitektur N-tier

Istilah n-tier berawal dari kenyataan bahwa fungsi-fungsi yang dimuat pada application logic layer dipisah-pisah lagi menjadi beberapa logic tier yang masing-masingnya mempunyai tugas-tugas tertentu dalam jaringan komputer. Kompleksitasnya suatu permintaan katakanlah transaksi-transaksi yang terjadi pada suatu waktu tertentu membuat business services tier membesar sehingga layanan-layanan yang diberikan terkadang tidak maksimal.

Kesempatan inipun memperluas pengembangann 3-tier kearah n-tier dengan membuat software yang menjadi perantara (broker) antara client dan database server, menyediakan API (application programminginterface) pada dua sisi sehingga memungkinkan client dan server untuk berkomunikasi satu dengan lainnya. Memungkinkan pendekatan standar pengaksesan database antara server dan client yang terpisah dan berbeda platform.

Dari sisi client ada web browser sebagai tier pertama, tier kedua diisi oleh GUI (presentation layer) terdapat web server + HTML filter, tier ketiga ada (application layer) yang diisi oleh Component Server dan tier ke-n ada databases server diisi oleh data services (resource management layer.).

Keuntungan yang dapat diperoleh dari arsitektur sistem ini mempunyai scalabilitas yang sangat baik dan pengembangan sistem yang lebih mudah sedangkan kelemahannya adalah bahwa beragamnya middleware menghasilkan fungsi-fungsi pemograman yang dilakukan secara berulang-ulang.
 
Konsep Multi Tier Application
Aplikasi internet berbasis web, yang akan kita kembangkan dalam pelatihan ini, adalah salah satu penerapan multi tier application. Multi tier application adalah aplikasi yang dibagi menjadi beberapa bagian yang menjalankan fungsi masing-masing.
Secara umum, ada tiga bagian utama dari multi tier application:  
  1. Client side presentation
  2. Server side business logic 
  3. Backend storage 
1. Client Side Presentation

Client side presentation mengatur bagaimana aplikasi berinteraksi dengan user. Yang dimaksud dengan interaksi antara lain adalah: bagaimana data ditampilkan, bagaimana fungsi dan fitur aplikasi ditampilkan. Dalam aplikasi berbasis web, client side presentation dibuat dengan bahasa HTML, CSS, dan JavaScript. Beberapa tool yang digunakan untuk membuat client side presentation diantaranya Microsoft Frontpage, Macromedia Dreamweaver, dan sebagainya. Client side presentation berbasis web contohnya adalah tampilan aplikasi email yang kita buka dengan browser.  
2. Server Side Business Logic
Server side business logic, sering disebut juga middle tier, adalah bagian yang bertanggung jawab atas cara kerja aplikasi. Di dalamnya kita mengatur bagaimana fungsi dan fitur aplikasi dapat bekerja dengan baik. Dalam aplikasi berbasis web, ada beberapa alternatif yang dapat digunakan, ditentukan oleh jenis platiform yang digunakan.
3. Backend Storage
Bagian ini mengatur cara penyimpanan data. Penyimpanan data merupakan materi yang cukup kompleks dalam pembangunan aplikasi. Karena kecepatan, keutuhan, dan keamanan data merupakan faktor kritis dalam aplikasi. Ada banyak solusi database yang tersedia di pasaran. Pada umumnya,  database yang digunakan bertipe relasional (Relational Database Management System – RDBMS). Manajemen data dilakukan dengan bahasa SQL (Standard Query Language). 


No comments:

Post a Comment

Kebahagiaan sejati bukanlah pada saat kita berhasil meraih apa yg kita perjuangkan, melainkan bagaimana kesuksesan kita itu memberi arti atau membahagiakan orang lain.