Top Banner
 Aplikasi Enterprise Ahmadi Yuli Anant a, ST. Program Studi Manaj emen Informatika 1 BAB 1 ENTERPRISE 1.1. Definisi Enterprise Menurut kamus “enterprise” berarti:  Keberanian berusaha, kegiatan memulai usaha  Perusahaan, firma. Menurut Developing Enterprise Java Applications with J2EE and UML  by Khawar Zaman Ahmed, Cary E. Umrysh, istilah enterprise mengacu pada suatu organisasi atau individu sebagai suatu kesatuan, yang bekerja bersama-sama untuk mencapai beberapa tujuan umum. Enterprise berkaitan erat dengan B2B ( Business to Business ) dan B2C (Business to Customer). Kata enterprise biasa digunakan untuk menyebut perusahaan dalam skala besar, seperti Microsoft, Intel, Yahoo!, atau Ebay. 1.2. Elemen Enterprise Enterprise / Perusahaan mempunyai delapan elemen yaitu : 1. Masyarakat Keuangan 2. Pemerintah 3. Masyarakat Global 4. Pemasok 5. Pelanggan 6. Pesaing 7. Pemegang saham/Pemilik Global 8. Serikat Buruh 1.3. Kebutuhan Enterprise Enterprise/Perusahaan mempunyai beberapa kebutuhan pokok yaitu :  Information sharing and processing
58

Aplikasi Enterprise

Jul 21, 2015

Download

Documents

lazqiya
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

Aplikasi Enterprise

BAB 1 ENTERPRISE

1.1. Definisi Enterprise Menurut kamus enterprise berarti: Keberanian berusaha, kegiatan memulai usaha Perusahaan, firma. Menurut Developing Enterprise Java Applications with J2EE and UML by Khawar Zaman Ahmed, Cary E. Umrysh, istilah enterprise mengacu pada suatu organisasi atau individu sebagai suatu kesatuan, yang bekerja bersama-sama untuk mencapai beberapa tujuan umum. Enterprise berkaitan erat dengan B2B (Business to Business) dan B2C (Business to Customer). Kata enterprise biasa digunakan untuk menyebut perusahaan dalam skala besar, seperti Microsoft, Intel, Yahoo!, atau Ebay.

1.2. Elemen Enterprise Enterprise / Perusahaan mempunyai delapan elemen yaitu : 1. Masyarakat Keuangan 2. Pemerintah 3. Masyarakat Global 4. Pemasok 5. Pelanggan 6. Pesaing 7. Pemegang saham/Pemilik Global 8. Serikat Buruh

1.3. Kebutuhan Enterprise Enterprise/Perusahaan mempunyai beberapa kebutuhan pokok yaitu : Information sharing and processing

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

1

Aplikasi Enterprise

Asset management and tracking Resource planning Customer or client management Protection of business knowledge

1.4.

Arsitektur Enterprise

Definisi Arsitektur adalah Suatu cara di mana komponen-komponen dalam sebuah komputer atau sistem komputer system diorganisasikan dan diintegrasikan Dari definisi itu komponen-komponen pembentuk sistem sangat penting untuk kesuksesan sebuah arsitektur. Pemahaman terhadap komponen-komponen penyusun arsitektur tersebut diperlukan agar kita bisa memahami arsitektur, karakteristik sistem dan keterkaitannya dengan sistem lainnya. Kita perlu mengintegrasikan sistem dalam suatu perusahaan sehingga terjadi komunikasi antar elemen - elemennya. Sangatlah penting untuk mengerti system dasar suatu organisasi dan mencatat bagaimana komponen-komponen tersebut bekerja tetapi tidak harus mengetahui detail bagaimana cara membentuk komponen komponen tersebut.

1.5.

Enterprise Software

Menurut Wikipedia.org: Enterprise Software is software that solves an enterprise problem (rather than a departmental problem) and usually enterprise software is written using Enterprise Software Architecture. Dari definisi diatas dapat diartikan bahwa Aplikasi Enterprise adalah aplikasi / perangkat lunak yang dapat digunakan untuk menyelesaikan masalah perusahaan dan elemen elemennya dan biasanya dibuat dengan Arsitektur Perangkat Lunak Enterprise. Berikut adalah gambaran dari arsitektur aplikasi enterprise :

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

2

Aplikasi Enterprise

Gambar 1.1. Arsitektur Aplikasi Enterprise

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

3

Aplikasi Enterprise

BAB 2 APLIKASI ENTERPRISE

2.1.

Kebutuhan Aplikasi Enterprise

Kebutuhan dari aplikasi enterprise adalah sebagai berikut : Mengintegrasikan customer support dan in house product

knowledge melalui WEB. Dengan menghubungkan semua mesin-mesin server dan data melalui internet secara online, marketing perusahaan itu akan bertambah baik karena bisa menjangkau pelangganpelanggan dari mana-mana. Perusahaan akan menghemat biaya sales manajemen dan mempermudahnya, disamping itu dapat meraih pasar baru. Enterprise software dapat membantu pekerjaan para pekerja di perusahaan sehingga mempermudah, mempercepat pekerjaan, mengefisiensikan pekerja, sekaligus memperkecil biaya

pengeluaran perusahaan. Contoh penerapana aplikasi enterprise adalah pengelolaan gaji karyawan, daftar pasien rumah sakit, data pengiriman barang, analisis keuangan, pencatatan kredit, asuransi, pajak, pengelolaan eksport dan import, dan masih banyak lagi yang lain.

2.2.

Karakteristik Aplikasi Enterprise

Ciri ciri aplikasi enterprise : Butuh persistent data, karena data digunakan secara bersama oleh banyak aplikasi, bahkan digunakan untuk jangka waktu yang lama. Walaupun sangat mungkin terjadi perubahan sistem perusahaan, data tidak boleh berubah. Enterprise application menghandle data yang sangat besar. Dulu digunakan konsep file system (standalone) sekarang

digunakan databaserelasional

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

4

Aplikasi Enterprise

Pengguna enterprise application banyak dan beraneka ragam o Bagaimana cara menghadle concurrent access -> transaction management tool o Butuh log dan recovery

Memiliki banyak macam user interface di masing-masing client Bagaimana agar seluruh data yang ada dapat direpresentasikan ke seluruh user dengan semudah mungkin dan bermacam-macam user interface tergantung kebutuhannya.

Butuh terintegrasi dengan aplikasi lain. Mampu memisahkan business logic dengan presentasi

2.3.

Kesulitan Aplikasi Enterprise

Hardware yang masih mahal, yang mungkin juga tidak (belum) berkembang sesuai keadaan dan kebutuhan sekarang. Kesulitan mencari pekerja yang dapat memiliki kemampuan kerja yang baik, dan dapat mengikuti perkembangan teknologi. Kesulitan dalam pembuatan seluruh sistem software dan yang mampu Distributed

mengintegrasikan

bersifat

Software. (Distribution) Adanya multiple vendor juga mempersulit pembuatan program. (Vendor Diverse) Contohnya: Perusahaan A menggunakan SQL Server dan klien perusahaan A menggunakan Oracle. Dalam hal ini dibutuhkan suatu software yang mampu mengatasi lintas vendor. Adanya kebutuhan keamanan sistem dan integritas data.(Security) Misalnya: o Mampu menghandle system failure dengan system failure recovery o Rollback transaction untuk transaksi yang salah atau batal o Transaction locking yang mampu mengatasi keamanan data. Contohnya pada saat ada transaksi yang hampir bersamaan. o Mampu menghandle multi user situation

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

5

Aplikasi Enterprise

Menjaga kekonsistensian data walau ada error, delay, dan transaksi yang jauh.

2.4.

Kesuksesan Aplikasi Enterprise

Untuk mengukur kesuksesan dari aplikasi enterprise dapat dilihat dari beberapa hal, antara lain: 1. Response time: adalah total waktu yang dibutuhkan sistem untuk memproses sebuah request dari luar sistem tersebut. Mungkin sebuah aksi UI, seperti penekanan tombol, atau sebuah

pemanggilan server API. Min Response time 2. Responsiveness: adalah seberapa cepat sistem mengenali sebuah request sebagai tantangan untuk diproses. User bisa frustasi walapun response time baik Walaupun belum selesai proses, sistem harus tetap

memberikan respon. Misalnya gunakan timer atau progressbar, atau informasi lain. 3. Latency: adalah waktu minimum yang dibutuhkan untuk

mendapatkan segala bentuk response, walaupun tujuan tidak ada yang biasanya ditemui pada remote systems. Jika dilakukan di lokal, maka response akan cepat namun pada remote system, hal itu akan lama. Latency adaah alasan agar kita meminimalisasi remote call. 4. Throughput : adalah berapa hasil yang diperoleh dalam suatu satuan waktu tertentu. Jika kita mengukur copy file, throughput diukur dalam berapa bytes per second. Untuk enterprise

applications pengukuran berdasarkan transactions per second (tps), tapi masalahnya bergantung pada kompleksitas transaksi. 5. Load adalah statement dari berapa tingkat tekanan stress sebuah sistem, misalnya diukur dengan berapa banyak user yang sedang terhubung saat itu. Biasanya diukur dengan parameter lain,

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

6

Aplikasi Enterprise

misalnya dengan: response time untuk beberapa request adalah 0.5 seconds dengan 10 users dan 2 seconds dengan 20 users. 6. Load sensitivity adalah ekspresi tentang bagaimana response time bervariasi dengan load. Misalnya sistem A memiliki response time 0.5 seconds untuk 10 sampai 20 users dan system B memiliki response time 0.2 seconds untuk 10 users yang naik menjadi 2 seconds untuk 20 users. Pada contoh di atas, system A memiliki load sensitivity yang lebih rendah daripada sistem B. 7. Efficiency adalah performa dibagi dengan resources. Sebuah sistem yang memiliki 30 tps pada 2 CPU akan lebih efisien dibanding dengan sebuah sistem yang memiliki 40 tps pada CPU yang sama. 8. Capacity adalah indikasi maximum dari throughput atau load yang efektif. 9. Scalability adalah ukuran bagaimana penambahan resources (biasanya hardware) mempengaruhi performance. Sebuah scalable system memperbolehkan kita untuk menambah hardware dan mendapatkan peningkatan performa, seperti penambahan server. Vertical scalability atau scaling up, berarti menambahkan lebih banyak tenaga terhadap single server, seperti penambahan memory. Horizontal scalability atau scaling out, berarti

menambahkan lebih banyak servers.

2.5.

Evolusi Aplikasi Enterprise

Dahulu sistem bersifat Centralized Approach. Yaitu sistem dimana bersifat stand alone, dan terpusat. Single system for all processing needs Sehingga: physical limitations of scalability, single points of failure, limited accessibility from remote locations Bersifat single-tier : presentasi, logic business, code, dan data menjadi satu kesatuan, tidak dipisah-pisah. Kekurangan single-tier:

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

7

Aplikasi Enterprise

o Menyebabkan perubahan terhadap salah satu komponen diatas tidak mungkin dilakukan, karena akan mengubah semua bagian. o Tidak memungkinkan adanya re-usable component dan code. Sekarang sistem bersifat Distributed Approach Yaitu sistem dimana bersifat tersebar dan multiproses. Sistem ini bersifat On Demand Software dan Software as Service On Demand Software: berarti software tersebut mampu mendukung sistem terdistribusi sehingga dapat diakses melalui Internet Software as a Service berarti software tersebut berlaku sebagai server dan memberikan pelayanan kepada customer melalui Internet. Bersifat multi-tier : presentasi, logic business, dan data terpisah pisah menjadi lapisan-lapisan tersendiri

Multitier Multi-tier bisa terdiri dari 2-tier, 3-tier, n-tier. Contoh multi-tier adalah aplikasi client-server (2-tier) dimana business logic (di server) dan presentasi (di client) terpisah dalam beberapa lapisan (tier). Konsekuensi : tantangan untuk mengupdate software aplikasi untuk jumlah client yang banyak dengan biaya minimun dan gangguan yang kecil

Kelebihan N-Tier Cepat dan dapat menurunkan biaya pengembangan. Aplikasi baru dapat dibuat lebih cepat menggunakan kembali data access component dan data bisnis yang ada. Perubahan pada suatu komponen tertentu tidak mempengaruhi komponen lain. Perubahan pada satu tier tidak berpengaruh pada tier lain. Perubahan lebih dapat di-manage. Lebih mudah untuk mengganti salah satu komponen bisnis dengan yang baru dalam business-tier

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

8

Aplikasi Enterprise

(business logic) daripada menggantu ratusan application client diseluruh dunia.

Gambar 2.1. Gambaran Tier

1.6.

Perbedaan Enterprise Software dan Component- Based Software

OOP dirasa kurang untuk menangani permasalahan yang besar karena sifat strongly coupled nya. Waktu itu OOP hanya merupakan sebatas metode yang sulit diaplikasikan langsung dalam proyek skala besar Hal ini dapat diatasi dengan menggunakan component based software. Software Component didesain dengan level yang lebih tinggi dari hanya sekedar obyek, memiliki abstraksi/interface dan service-service yang lengkap. (Ingat kembali OOP )

Software Component bersifat loosely coupled. Contoh Software Component: JavaBeans dari Sun Microsystem dan DCOM & ActiveX dari Microsoft.

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

9

Aplikasi Enterprise

BAB 3 TEKNIK ARSITEKTUR ENTERPRISE

3.1.

Layering

Layering salah satu teknik umum di mana para software designers menggunakan hal itu untuk memecah sebuah sistem yang rumit ke dalam bagian-bagian yang lebih sederhana. Contoh: Networking: lapisan layer OSI dan TCP/IP. Ketika sistem dibagi dalam layer-layer, maka principal subsystems dalam software diatur dalam layer, di mana setiap layer bergantung pada lower layer. The higher layer menggunakan various services yang didefinisikan oleh lower layer, tetapi lower layer tidak perlu mengetahui the higher layer. Each layer biasanya menyembunyikan lower layernya dari layer atasnya, sehingga layer 4 menggunakan services dari layer 3, yang menggunakan services dari layer 2, tetapi layer 4 tidak tahu menahu tentang 2. Kelebihan Layering Kita hanya tahu bahwa aplikasi tersebut terdiri dari satu single layer saja tanpa harus tahu layer-layer yang lain. Sebagai contohnya kita dapat mengetahui bagaimana membuat FTP service pada TCP tanpa harus tahu bagaimana cara kerja Ethernet Card secara fisik. Dapat mengganti layer-layer dengan aplikasi lain yang

mengimplementasikan servis dasar yang sama. Sebuah FTP service yang mungkin berbeda-beda dapat tetap berjalan tanpa harus mengganti Ethernet, PPP, atau kabel-kabel. Dapat meminimalisasi ketergantungan antar layer-layer. Jika kita mengganti kabel jaringan, kita tidak perlu juga mengganti FTP service.

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

10

Aplikasi Enterprise

Layer sangat mendukung standarisasi. TCP / IP adalah standard karena mereka mendefinisikan bagaimana layer-layer mereka harus beoperasi.

Sesudah layer terbentuk, kita dapat menggunakannya untuk bermacam-macam servis lainnya. Contoh, TCP/IP digunakan oleh FTP, telnet, SSH, dan HTTP. Semua protokol-protokol inipun memiliki lower-level protokolnya masing-masing juga.

Kelemahan Layering Penggunaan Layer menyebabkan dan menambah tingkat

kompleksitas proses. Karena terdiri dari beberapa layer, maka setiap layer harus memiliki fungsinya masing-masing, dan suatu proses harus melewati masing-masing layer tersebut terlebih dahulu baru dapat menghasilkan output. Jadi masing-masing layer harus memiliki kemampuan memproses yang berlainan. Layer mengenkapsulasi fungsi-fungsinya masing-masing sehingga tidak dapat mengetahui detail fungsi suatu layer. Layer bekerja secara bersama-sama menjadi satu kesatuan sehingga seluruh layer harus bekerja secara optimal. Penambahan suatu layer juga akan mempengaruhi efisiensi sistem secara keseluruhan.

Prinsip Layer Presentation logic: mengatur bagaimana menghandle interaksi antara user dan software. Bisa berupa simple command-line atau text-based menu system, tapi sekarang bisa berupa rich-client graphics UI atau HTML-based browser UI. Tanggungjawab utama responsibilities dari presentation layer adalah untuk menampilkan informasi ke user dan untuk menginterpretasikan perintah dari user ke dalam aksi terhadap domain dan data source. Data source logic: mengatur komunikasi dengan sistem lain yang mengerjakan tugas untuk kepentingan applikasi. Bisa berupa

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

11

Aplikasi Enterprise

transaction monitors dan messaging systems. The biggest piece of data source logic adalah database yang bertanggungjawab untuk menyimpan persistent data. Domain logic / business logic. Mengatur kejelasan aturan bisnis suatu aplikasi. Misalnya melakukan kalkulasi berdasarkan input dan data yang tersimpan, validasi dari data yang datang dari layer presentasi, dan menggambarkan secara tepat mana data source logic yang dibutuhkan, tergantung pada perintah yang diterima dari layer presentasi.

Evolusi Layer (tier) Tahun 1990an: Client-Server (Two-layer systems) o Di sisi client, terdapat user interface dan aplikasi lain, dan di sisi server biasanya ada relational database. Contoh client tool adalah VB, Powerbuilder, dan Delphi. o Problem: business rules, validations, calculations o Biasanya ditulis di client, tapi jika sudah semakin kompleks? o Bisa ditulis sebagai stored procedure di dalam database, tapi jika ganti database? Sekarang, three-layer system: presentation layer untuk UI, domain layer/logic layar untuk your domain logic, dan data source/database. Implementasinya bisa dibuat dalam bentuk subrutin-subrutin untuk masing-masing layer, atau class-class, atau bahkan service, dan database terdistribusi.

3.2.

Businness Logic

3.1.1. Transaction Script Adalah sebuah prosedur/routine yang mengambil input dari

presentation layer dan memprosesnya dengan berbagai validasi dan kalkulasi, menyimpan data dalam database, dan melakukan beragam operasi dari sistem yang lain.

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

12

Aplikasi Enterprise

Transaction script biasanya berupa script yang digunakan untuk menghandle berbagai aksi yang mungkin dilakukan oleh user dan berbagai transaksi bisnis lainnya. Tidak harus dijadikan satu script, tapi dapat dipisah-pisah, dalam bentuk procedure-procedure, fungsi-fungsi, atau bahkan class. Contoh: script untuk checkout barang, menambah barang ke shopping cart, untuk menampilkan status delifery, dan lain-lain.

Gambar 3.1. Transaction Script

Kelebihan Transaction Script Berupa prosedur yang simpel dan muda dimengerti oleh para developer. Mudah digunakan dan digabungkan dengan data source layer menggunakan database gateway. Mudah ditentukan batas transaksinya. Dimulai dari opening transaction dan diakhiri dengan penutupannya.

3.1.2. Domain Model Adalah suatu sistem pengorganisasian bisnis logik dengan pendekatan sistem berorientasi obyek, sehingga kita diharuskan membangun sebuah model dari domain permasalahan yang kita

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

13

Aplikasi Enterprise

hadapi. Misalnya suatu obyek shipment akan juga berisi logika untuk menghitung ongkos pengiriman dan biaya antar. Semua logika tersebut dimasukkan dalam method/routine obyek tersebut.. Perbedaan antara Domain Model dan Transaction Script adalah pada pendekatan yang dilakukan. Transaction Script beorientasi method/fungsi/rutin di mana seluruh logic user dijadikan satu dalam fungsi-fungsi tanpa memperhatikan domain permasalahan, sedangkan pada Domain Model logic user dibuat dalam obyek-obyek yang berkaitan dengan domain permasalahan.

Gambar 3.2. Calculating Revenue Domain Model.

3.1.3. Table Module Table Module sama seperti Domain Model karena Table Module juga memiliki kelas-kelas seperti layaknya Domain Model, namun Domain Model memiliki 1 instance untuk setiap kelasnya di dalam database. Sedangkan Table Module hanya memiliki 1 instance saja untuk seluruh kelas dan didesain untuk bekerja dengan Record Set. Semua query yang dilakukan harus melalui Record Set dan akan membuat obyek dari kelas dan mengirimkannya ke Record Set sebagai suatu argument. Client dapat menggunakan semua operasioperasi pada suatu kelas untuk melakukan banyak hal.

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

14

Aplikasi Enterprise

Gambar 3.3. Table Module.

3.3. Pengelompokan Businness Logic Pendekatan umum untuk menghandle bisnis logic adalah membagi bisnis logic ke dalam 2 bagian.

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

15

Aplikasi Enterprise

o Service Layer: digunakan jika menggunakan Domain Model atau Table Module. Service Layer beraksi seperti API Service. o Domain Layer: digunakan jika menggunakan Transaction Script

3.4. Mapping to Relational Database Dari segi arsitektur: bagaimana domain logic berhubungan dengan database Karena SQL tidak terlalu seragam, maka jalan terbaik adalah memisahkan akses SQL dari domain logic dan

menempatkannya dalam kelas yang terpisah. Satu kelas untuk satu tabel. Kelas-kelas ini akan membentuk Gateway ke dalam tabel-tabel tanpa harus tahu tentang SQL Model Pengaksesan data: per 1 record dan sekaligus seluruh/beberapa record dalam 1 tabel oleh 1 query

3.5. Web Presentation Template View dan Transform View: memperbolehkan kita untuk menulis presentasi/tampilan dan program dalam struktur halaman secara langsung dan embedded sehingga halaman tersebut memiliki konten dinamis sesuai yang diinginkan. Contoh: PHP, JSP & ASP Classic. Mudah dibuat tapi kode dan tampilan tidak terpisahkan! Transform View menggunakan sebuah transformasi dari program. Contohnya XSLT, dan semua View tersebut bersifat single stage.

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

16

Aplikasi Enterprise

Gambar 3.4. Web Presentation

Model View Controller (MVC) Model ini membagi user interface menjadi tiga elemen :

Gambar 3.5. Model View Controller

View merpresentasikan tampilan dari UI, Controller menghandle semua perubahan terhadap informasi. Controller mengambil inputan user, memanipulasi model, dan menyebabkan view untuk

mengupdatenya.sedangkan UI adalah kombinasi dari view dan controller. Model mengatur business policies, dan interaksi dengan database

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

17

Aplikasi Enterprise

Page Controller Sebuah object yang menangani sebuah request untuk suatu halaman tertentu atau suatu aksi terhadap suatu website.

Gambar 3.6. Page Controller

Front Controller Adalah sebuah controller yang menangani semua request untuk sebuah Website, serta merupakan sebuah single handler object, memiliki method-method umum, yang dapat dimodifikasi pada saat runtime. Kemudian handler akan melakukan perintah berdasarkan request yang ada

Gambar 3.7. Front Controller

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

18

Aplikasi Enterprise

Gambar 3.8. Front Controller Detail

Template View Template View merender informasi ke dalam HTML dengan menempelkan tanda-tanda dalam halaman HTML. Ketika halaman melayani sebuah request, maka tanda-tanda tersebut akan diganti dengan hasil dari komputasi seperti misalnya dari database query.

Gambar 3.9. Template View

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

19

Aplikasi Enterprise

Transform View Sebuah view yang memproses domain data elemen demi elemen dan mengubahnya ke dalam HTML, Proses transformasi hanya pada elemen atau bagian yang diperlukan saja. Contoh: ditransformasikan ke dalam XML

Two Step View Mengubah domain data ke dalam HTML dalam 2 langkah: pertama dengan membentuk semacam logical page, kemudian merender halaman logical tersebut ke dalam HTML.

Application Controller Menghandle layar navigasi dan aliran aplikasi. Menggunakan interface.

3.6. Concurrency Problems Jika ada dua atau lebih proses/thread yang mengakses data yang sama Lost updates: yang terakhir update yang akan mengupdate. Inconsistent read: jika ada 2 atau lebih pembacaan, tapi salah satu ada yang menyimpan, maka data menjadi tidak konsisten Semua menyebabkan data tidak benar Harus ada mekanisme: isolation dan perlu memperhatikan immutable data: o Optimistic locking: semua dapat copy dari data, jika salah satu proses sudah mengupdate data, maka proses lain masih dibiarkan mengakes data sampai proses tersebut hendak mengupdate data, dan pada saat itu, akan dilakukan blocking. (conflict detection). Deteksi dilakukan dengan version checker. o Pessimistic locking: semua dapat copy dari data, jika sudah ada proses yang mengupdate data, maka semua proses lain

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

20

Aplikasi Enterprise

langsung diblok, semua proses lain harus menunggu (conflict prevention) dan dapat menyebabkan deadlock

Cara mencegah dan mengatasi deadlock Atomicity: setiap langkah dalam suatu sekuens harus bergantian dan bersifat uninterrupable, jadi suatu kejadian harus selesai terlebih dahulu baru kejadian berikutnya. Consistency: sumber daya sistem harus konsisten,noncorrupt sampai selesai transaksi. Isolation: hasil dari individual transaction tidak bolehdiketahui oleh proses lain, sampai berhasil di commit. Durability: hasil apapun yang sudah dicommit harus bersifat permanen. Harus bisa mengatasi jika terjadi crash.

Request-Response Web Server Process-per-session : satu session satu proses, boros resource, tapi simple Process-per-request : banyak session ditangani oleh satu proses, tidak perlu multithreading, tapi yang perlu diperhatikan adalah semua resource yang sudah selesai dipakai pada suatu request harus dapat direlease setelah request selesai. Thread-per-request : setiap request dihandle oleh satu thread dalam satu process, thread membutuhkan request yang lebih sedikit dibandiongkan dengan process, sehingga kita dapat menghandle lebih banyak request dalam satu thread.

Kelemahannya: tidak ada mekanisme isolasi data antar thread yang ada.

Stateless & Stateful Server Stateless server berarti server tersebut tidak pernah menyimpan suatu data dari sebuah request yang diajukan kepadanya setelah proses response berakhir, stateful server butuh untuk menjaga

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

21

Aplikasi Enterprise

semuastatenya

sementara

sedang

menunggu

seoranguser

menyelesaikan requestnya.

3.7. Session Kita membutuhkan server object yang berguna untuk

menyimpan suatu data dari user dalam suatu waktu tertentu, yaitu session, Seorang user memiliki session yang berbeda-beda. Session berbeda dengan record data, disebut dengan record data. session yang sudah dicommit baru

Cara Menyimpan Session Client session state: menyimpan data di client. Ex: hidden field, URL encoding, dan cookies. Kelemahan: butuh transfer data dari client ke server, keamanan, dan integritas. Hanya mungkin digunakan untuk data-data kurang penting dan kecil ukurannya. Server session state: menyimpan data di memori server pada saat request terjadi. Ex: session object dengan session_id. Harus ada mekanisme session_timeout. Sulit menangani system crash. Database session state: menyimpan data di database. Kompleks tapi mampu menangani sistem crash.

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

22

Aplikasi Enterprise

BAB 4 ARSITEKTUR SOFTWARE

4.1. Arsitektur Software Arsitektur software merupakan struktur statis dari sebuah software. Struktur statis mengacu pada bagaimana elemen-elemen dari software berhubungan antara satu dengan lainnya. Struktur dinamis dari sebuah software, yang berarti relasi antar elemen dapat berubah selama masa hidup software tersebut dan mengetahui bagaimana keadaan pada saat sebuah software saat sedang berjalan. Komposisi (atau Dekomposisi) dari software. Mengacu pada bagian penting dari software, seperti subsystem dan modules. Komponen-komponen dan interaksi diantara mereka. Layer-layer dan interaksi diantara mereka.

4.2. Middleware Software yang berfungsi sebagai lapisan konversi atau penerjemah diantara komponen aplikasi dengan tujuan untuk mengurangi

kekompleksitasan aplikasi terdistribusi. Contoh Arsitektur yang menggunakan Middleware: Client/Server Contoh: Http server, di mana client (browser) meminta dokumen, sedangkan server mengirimkan dokumen yang diminta

Gambar 4.1. Software

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

23

Aplikasi Enterprise

4.3. Karakteristik Client/Server Service : Menyediakan layanan terpisah yang berbeda. Shared resource : Server dapat melayani beberapa client pada saat yang sama dan mengatur pengaksesan resource Asymmetrical Protocol : antara client dan server merupakan hubungan one-to-many. Client memulai komunikasi dengan

mengirim request ke server. Server menunggu permintaan dari client. Transparency Location : proses server dapat ditempatkan pada mesin yang sama atau terpisah dengan proses client. Client/server akan menyembunyikan lokasi server dari client. Mix-and-match : tidak tergantung pada platform Message-based-exchange : antara client dan server berkomunikasi dengan mekanisme pertukaran message. Encapsulation of service : message dari client memberitahu server apa yang akan dikerjakan tanpa harus tahu detail service. Integrity : kode dan data server diatur secara terpusat, sedangkan pada client tetap pada komputer tersendiri.

4.4. Service Oriented Architecture (SOA) SOA adalah sebuah konsep Software Architecture yang mendefinisikan penggunaan layanan untuk mendukung kebutuhan pengguna software. SOA bersiftat loosely coupled (tingkat

ketergantungannya rendah), high interoperable (mudah dioperasikan), reusable (dapat digunakan kembali), dan interoperability (antar platform). SOA menggunakan definisi interface yang mengenkapsulasi semua implementasi yang ada. SOA bersifat behind the scence, SOA tidak terlihat secara langsung oleh client, SOA dihadapkan pada client melalui client UI. SOA merupakan suatu service yang hanya menunggu (listen) secara terus-menerus untuk digunakan.

Implementasi SOA adalah web service.

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

24

Aplikasi Enterprise

4.4.1. Beberapa Istilah dalam SOA Service: Suatu fungsi yang menerima satu atau lebih request dan mengembalikan satu atau lebih response yang terdefinisi dengan baik dengan menggunakan interface yang standar. Service tidak boleh tergantung pada suatu fungsi atau proses lain. Stateless: Tidak tergantung pada kondisi apapun. Service menerima semua informasi yang dibutuhkan untuk menyediakan response dari suatu request. Pengguna service akan menggunakan service yang diperoleh untuk digunakan dalam application logic mereka. Provider: Fungsi yang menyediakan service dan meresponse sebuah request. Consumer: Fungsi yang membutuhkan response dari service yang dihasilkan oleh provider. Binding: Hubungan antara provider dan consumer bersifat dinamis dan hubungan itu dibuat pada saat runtime berdasarkan mekanisme binding.

4.4.2. Kelebihan SOA Bersifat Standard SOA bersifat lebih interoperability dibandingkan dengan RPC, DCOM, CORBA (Common Object Request Broker Architecture), EJB (Enterprise Java Bean), dan RMI (Remote Metho Invocation). SOA dapat didefinisikan sebagai function, object, dan method. Karena sifat platform independence-nya maka perusahaan dapat menggunakan software dan hardware yang lebih bebas sesuai dengan pilihan mereka. Tidak tergantung pada satu vendor tertentu saja. SOA mendukung pengembangan yang terus menerus, distribusi, dan maintenance yang bertahap.

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

25

Aplikasi Enterprise

Perusahaan dapat menggunakan software yang telah mereka punyai dan menggunakan SOA untuk membuat aplikasi tanpa harus mengganti aplikasi yang sudah ada.

Biaya pelatihan rendah.

4.4.3. Hubungan antar Service (Coupling) Tight Coupling: tingkat ketergantungan tinggi. Disatu sisi permorfa baik namun akan membuat kesulitan pada maintenance problems. Loose Coupling: tingkat ketergantungan rendah. Service provider mendefinisikan dan mempublikasikan service mereka menggunakan bahasa yang standar. Interface mendefinisikan method-method yang dapat diinvoke oleh service consumer. Dengan ketergantungan rendah maka pengubahan implementasi tidak akan mempengaruhi

keseluruhan sistem.

Binding Binding adalah hubungan yang terjadi antara 2 atau lebih service. Static binding: diasumsikan definisi service dan interface tidak sering berubah. Hal ini dilakukan jika konsumen service sudah mengetahui dengan jelas method-method yang ada di service. Contoh: penggunaan RMI di Java. Broker binding: konsumen service mengirimkan request ke service broker (perantara) terlebih dahulu, kemudian akan diteruskan ke service provider. Service consumer tidak perlu tahu dimana provider dan bagaimana implementasi service. Contoh: penggunaan client stub pada CORBA. Dynamic binding: diasumsikan konsumen service memanggil provider secara langsung. Diasumsikan juga bahwa definisi service dan interface yang disediakan oleh provider berubah secara cepat. Sehingga untuk setiap pemanggilan, konsumen harus mengkontak service directory untuk merequest definisi yang diminta. Berdasarkan informasi yang diperoleh dari service directory, konsumen melakukan

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

26

Aplikasi Enterprise

bind ke service provider. Dynamic binding melakukan lookup dan binding. Contoh: - Penggunaan DII (Dynamic Invocation Interface)pada CORBA. - Web Service 4.4.4. SOAs Invocation Gunakan pemanggilan synchronous service ketika sebuah

response secara segera/cepat harus segera diberikan. Konsumen service akan diblok selama menunggu response dari service. Pada model asynchronous, konsumen mengirim request dan meneruskan proses lainnya. Service provider merespond ketika proses telah selesai dilakukan, waktu yang dibutuhkan tergantung pada waktu server load. Pada kenyataannya, untuk multiple applications, asyncrhronous service akan lebih baik, karena proses tidak terhenti, adanya garansi pertukaran message.

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

27

Aplikasi Enterprise

BAB 5 PERKEMBANGAN SOFTWARE

Pada awalnya semua perusahaan software di dunia mempunyai tipe bisnis yang sama yaitu : Mempertahankan serta menutup hasil kekayaan intelektual. Software hanya dikembangkan oleh karyawannya sendiri Dikirim dalam format yang telah dienkripsi Berlisensi hanya untuk computer yang dipakai user

Pada jaman sekarang ini, kebanyakan software dikembangkan dengan platform opensource.

5.1. Sejarah Open Source Opensource mulai dikenal sejak tahun 1960, dengan ide yang cukup sederhana yaitu : Programmer dapat melihat source code Programmmer dapat mendistribusikan ulang code Programmer dapat memodifikasi source code Sehingga programmer dapat meningkatkan, memperbaiki bug, dan mengubah program yang ada dengan tetap mencantumkan lisensi. Open Source menganggap bahwa di dalam open source model, program akan menjadi lebih baik karena para programmer dapat saling bantu. Pada tahun 1988 terjadi open source movement yang dipicu oleh Mozilla source code yang dilepas oleh Netscape, yang hanya free for academics only. Keudian berdiri The Open Source Initiative (OSI) oleh Eric S. Raymond and Bruce Perens. Open Source Definition digunakan oleh Open Source Initiative untuk mengidentifikasikan sebuah lisensi software open source atau bukan. Definisi ini berdasarkan Debian Free Software Guidelines.

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

28

Aplikasi Enterprise

Open source berarti bahwa source code program tersedia bagi seluruh user, biasanya tersedia dengan gratis dan Open source berbeda dengan freeware dengan perbedaan bahwa Open source menyertakan source code dan Freeware hanya gratis, belum tentu menyertakan source code, bahkan dapat juga freeware untuk suatu batasan waktu tertentu saja.

5.2. Kriteria Open Source Free Redistribution: software dapat diberikan dan dijual secara bebas. Source Code Available: source code harus disertakan atau dapat diperoleh dengan bebas, misalnya di website tertentu. Obsfucator tidak diijinkan. Derived Works: pendistribusian kembali dari source yang telah dimodifikasi diperbolehkan. Integrity of The Author's Source Code: pengubahan source harus tetap menyertakan nama pembuat asli dari source code. Jika ada modifikasi harus disertakan tanggal, waktu, oleh, dan versi. No Discrimination Against Persons or Groups: siapapun

diperbolehkan dalam open source, tidak ada perbedaan. No Discrimination Against Fields of Endeavor: user komersial juga boleh ikut. Contoh: Microsoft juga boleh ikut. Distribution of License: hak yang berkenaan dengan program harus dipakai oleh semua pengguna program tanpa harus ada

penandatanganan lisensi dengan pihak ketiga. License Must Not Be Specific to a Product: program tidak bisa dilisensi dari sebagai bagian dari distribusi yang lebih besar. Jadi perbagian sottware kecil juga harus dapat didistribusikan sendiri. License Must Not Restrict Other Software: lisensi tidak boleh menuntut program lain juga harus menjadi open source juga.

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

29

Aplikasi Enterprise

5.3. Lisensi Opensource Contoh lisensi open source: Apache License, BSD license, GNU General Public License, GNU Lesser General Public License, MIT License, Eclipse Public License and Mozilla Public License.

5.4. Lambang Open Source (www.opensource.org)

Gambar 5.1. Lambang Opensource

Contoh Open Source Project yang terkenal di dunia: o Sourceforge.net : http://www.sourceforge.net dengan lebih dari 70.000 projectnya. o Freshmeat.net : http://www.freshmeat.net dengan lebih dari 30.000 projectnya. o Apache Software Foundation : http://www.apache.org o MySQL, PHP, dan Perl

5.5. Free Software Richard Stallman mendefinisikan free software sebagai software berdasarkan Four Freedoms untuk usernya: Kebebasan untuk menjalankan program, untuk tujuan apapaun (freedom 0). Kebebasan untuk belajar bagaimana program bekerja dan

mengadaptasinya untuk kebutuhan kita sendiri (freedom 1). Akses ke source code merupakan prasyarat untuk freedom 1. Kebebasan untuk mendistribusikan kembali kopi dari program sehingga dapat membantu yang lain (freedom 2).

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

30

Aplikasi Enterprise

Kebebasan untuk menambahkan kemampuan program dan merelease pengubahan tersebut ke publik, sehingga seluruh

komunitas publik mendapatkan keuntungan darinya. (freedom 3). Akses ke source code merupakan prasyarat untuk freedom 3. Richard Stallman adalah pendiri Free Software Foundation dan yang mempublikasikan GPL (General Public License). Pada tahun 1995 Free Software Foundation mengeluarkan istilah copyleft: Copyleft is a license that permits people to freely copy, modify, and redistribute software so long as they do not keep others from also having the right to freely copy, modify, and redistribute the software. Copyleft provisions in a license require that anyone modifying the software can distribute only their modified versions under the terms of the open source license they originally received with the software. You can actually sell Copyleft software, but you must also offer the source for free, either with the product or available for free (or for the cost of copying/shipping) to anyone on request. (from http://c2.com/cgi/wiki?CopyLeft)

5.6. Keuntungan Open Source Access to Source Code: bisa melihat, mengubah Community: besar dan saling mendukung Cost: gratis License: license untuk melihat, mengubah, dan mendistribusikan ulang.

5.7. Open Source vs Close Source Open source menitikberatkan pada source code yang diperbolehkan untuk dilihat dan diubah. Open source memberikan software gratis dan installation support (contoh: Linux).

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

31

Aplikasi Enterprise

Open source kadang juga membuat versi komersial sehingga user dapat memilih. Contoh: Open Office dan Star Office Masalah security: Many Eyes make Bugs Shallow Open Source mungkin banyak bug, tapi cepat difix karena banyak dukungan. Jika closed source: harus bayar dan bagaimana bug bisa diketahui?

5.8. Open Source vs Free Software Open Source adalah source code bias dilihat dan diubah, Free Software adalah mendistribusikan software dengan bebas, dengan atau tanpa source code.

5.9. Open Source Participants Partisipan Open Source dibagi menjadi 2 jenis: Core: developer yang mengubah/membuat source code

(programmer) Peripheral: user yang menggunakan software, report bug dan suggest fixes. Partisipan opensource biasanya terdiri dari: Project leaders: yang terdiri dari Core, hanya memanage. Volunteer developers: terdiri dari Core, melakukan coding: Senior members Peripheral developers Occasional contributors Maintainers Everyday users: yang melakukan testing, identify bugs, deliver bug reports. Posters (Periphery): yang berpartisipasi secara dalam newsgroups and discussions, tetapi tidak coding.

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

32

Aplikasi Enterprise

5.10. Open Source Development Tools Source code revision control: dibutuhkan karena usernya sangat banyak dan terpencar-pencar. CVS (Concurrent Versions System): agar pengubahan dapat terkontrol, tidak tercampur, dapat dikemabalikan ke previous version SVN (The Subversion Revision Control System): Enhanced CVS Testing Tools: testing sebelum diintegrasikan. Tinderbox: mampu mendeteksi error, kenapa error dan siapa pembuat error Bug/Error/Defect tracking tools: mendeteksi dan melaporkan error, bug yang ada, mencatat sudah fix atau belum. GNU GNATS Buggzilla Communication: jika project sudah selesai dan dibubarkan komunikasi terjadi melalui: web (sourceforge.net, freshmeat.net, GNU mailman)

5.11. Commercial vs Open Source Tabel 5.1. Perbandingan Komersial dengan Opensource

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

33

Aplikasi Enterprise

5.12. Model dan Metode Software Engineering Open Source/Free Software

5.12.1.

Bazaar Model

Pada tahun 1997, essay The Cathedral and the Bazaar oleh Eric S. Raymond mengusulkan sebuah model developing Open Source Software (OSS) yang disebut Bazaar model. Traditional model seperti layaknya membangun kathedral : dikerjakan oleh orang yang sesedikit mungkin. Bazaar model : dikerjakan secara bersama-sama dengan great bubbling, different agendas, and approaches. Menurut Gregorio Robles, Bazaar Model harus: Users should be treated as co-developers: user juga developer sehingga dapat mengakses source code. Linus's law : "Given enough eyeballs all bugs are shallow." Early Releases: agar dapat langsung dilihat dengan cepat oleh user. Frequent Integration Several Versions: minimal ada 2 versi, versi development dan stable High Modularization: sehingga mudah dikerjakan secara bersama. Dynamic decision making structure.

5.12.2.

Open Source Maturity Model

Adalah sebuah proses formal untuk mengakses tingkat kematangan dari open source software. Software Maturity adalah konsep yang mengetahui kematangan produk, apakah sudah siap digunakan, seperti how scalable, manageable, and supportable. Macam-macam Pengguna : Early Adopter: User tipe ini beranggapan bahwa teknolongi baru akan membawa manfaat bagi perkembangan perusahaannya.

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

34

Aplikasi Enterprise

Sehingga teknologi tersebut akan langsung diterapkan walaupun memiliki strategi yang berbeda dengan yang sudah ada. Pragmatis: User tipe ini hampir sama dengan user bertipe early adopter, yang berbeda hanyalah teknologi baru diterapkan untuk mendukung strategi yang sudah ada bukan mengganti strategi yang ada seperti pada early adopter. Tabel 5.2. Perbandingan Produk Immature dan Mature

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

35

Aplikasi Enterprise

5.12.3.

Penilaian Mature

OSMM menilai kematangan suatu produk dalam 3 fase: Menilai setiap kematangan elemen produk dan memberikan nilai kematangan. Mendefinisikan bobot untuk setiap elemen berdasarkan pada permintaan organisasi. Menghitung seluruh nilai kematangan produk tersebut.

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

36

Aplikasi Enterprise

Tabel 5.3. Fase fase Element Maturity

Fase 1: Assessment Element Maturity Mengidentifikasikan kematangannya. Elemen kunci suatu produk adalah sebagai berikut: Product software Support Documentation Training Product integration Professional services elemen kunci produk dan menilai tingkat

Setiap elemen dinilai dan diberikan nilai kematangan melalui 4 tahap proses: Define organizational requirements, Bertujuan untuk mendefinisikan persyaratan organisasi. Locate resources, Bertujuan untuk menempatkan sumber daya. Assess element maturity, Bertujuan untuk menilai kematangan elemen. Assign element maturity score on a scale of 1 to 10, Bertujuan untuk memberikan nilai untuk setiap elemen.

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

37

Aplikasi Enterprise

Fase 2: Assign Weighting Factors OSMM memberikan bobot untuk setiap elemen untuk merefleksikan pentingnya elemen tersebut. Tabel 5.4. Assign Weighting Factors

Fase 3: Calculate the Product's Overall Maturity Score Bertujuan untuk seluruh nilai kematangan produk tersebut.

Tujuan OSMM Didesain untuk untuk membuat penilaian dengan cepat terhadap kematangan suatu produk open source. Didesain agar grup yang kecil dapat memberikan penilaian dalam waktu yang singkat. Tabel 5.5. Maturity Score

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

38

Aplikasi Enterprise

Tabel 5.6. Contoh JBoss

Tabel 5.7. Recommended OSMM Scores

Analisis Dari tabel diatas dapat dilihat bahwa nilai minimum untuk early adopter lebih rendah dibandingkan dengan pragmatist. Hal itu dikarenakan user tipe early adopter lebih berani menanggung resiko yang besar daripada user tipe pragmatist. Sehingga untuk user tipe pragmatist diberikan nilai minimum yang cukup tinggi menggingat user tipe ini kurang berani atau lebih berhati-hati dalam menerapkan produk atau software yang baru. Untuk penggunaan experimentation diberikan nilai minimum yang rendah, nilai minimum menengah diberikan untuk penggunaan pilot dan nilai minimum yang tertinggi diberikan untuk penggunaan production.

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

39

Aplikasi Enterprise

BAB 6 REMOTE METHOD INVOCATION

6.1.

Pengenalan RMI

RMI adalah salah satu bagian dari J2SE yang digunakan untuk membangun aplikasi terdistribusi menggunakan bahasa Java. RMI adalah kumpulan kelas dalam Java yang digunakan untuk menangani

pemanggilan (invocation) method secara jarak jauh (remote) dalam suatu jaringan atau Internet. Idenya memisahkan obyek-obyek secara

terdistribusi dalam mesin-mesin yang berbeda. RMI menggunakan prinsip pemrograman berorientasi obyek dimana obyek satu dapat saling berkomunikasi dengan obyek lainnya. Untuk membangun aplikasi RMI dibutuhkan Interface. RMI terdiri dari RMI client dan server. RMI server biasanya akan membuat beberapa remote obyek dan referensi-nya yang dapat diakses oleh RMI client menggunakan suatu URL dan menunggu RMI client meminta ke server. Sedangkan RMI client akan membuat koneksi ke server dan meminta pemanggilan ke beberapa remote obyek berdasarkan referensi yang diterimanya. RMI client akan menggunakan remote obyek sebagai lokal obyek. Setiap remote obyek yang dibuat oleh RMI server didaftarkan terlebih dahulu ke dalam RMI registri agar ketika client membutuhkannya dapat meminta dengan mudah ke RMI registry.

Gambar 6.1. Arsitektur RMI

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

40

Aplikasi Enterprise

RMI Server akan mendaftarkan remote obyeknya ke RMI Registry melalui bind dengan nama unik. RMI Client yang akan melakukan suatu pemanggilan method dari remote obyek, harus meminta referensi obyek ke RMI Registry berdasarkan nama kelas obyek tersebut. Dalam RMI harus ada pendefinisian interface (behaviour) dan

implementasi interface (berupa kelas), RMI hanya dimiliki oleh bahasa Java saja. RMI memungkinkan membuat dua kelas yang menerapkan /

mengimplementasikan satu interface yang telah didefinisikan. Satu kelas menerapkan method dari interface (yang ada di server) dan satu kelas lagi bertindak sebagai proxy untuk remote service (server object) yang berjalan di client.

6.2.

Stub & Skeleton

Merupakan interface antara aplikasi dan RMI system. Stub bertindak sebagai client side proxy Skeleton bertindak sebagai server side proxy Selama remote invocation stub bertanggung jawab untuk: Meminta lokasi remote server obyek pada remote reference layer Marshalling : merangkaian argumen pada output stream Memberitahu remote reference layer bahwa semua data parameter telah terkirim, sehingga pemanggilan method sesungguhnya dapat dilakukan oleh server Unmarshalling: rangkaian nilai yang diterima dari remote Obyek Memberitahu remote reference layer bahwa pemanggilan telah lengkap Skeleton bertanggung jawab untuk: Marshalling: nilai kembalian atau exception kepada stub client Mengirimkan panggilan method pada server object sesungguhnya

6.3.

Remote Reference Menemukan lokasi remote obyek Membuat panggilan point to point dan rekoneksi secara otomatis,

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

41

Aplikasi Enterprise

Mengaktifkan proses server baru jika belum pernah diaktifkan sebelumnya Memelihara replikasi (panggandaan) jika diperlukan

6.4.

Transport Layer Memelihara tabel yang berisi obyek-obyek pada JVM Membuat dan memelihara dua koneksi antara 2 JVM menggunakan TCP/IP Transport Layer hanya tersedia di level virtual machine (pada java.net) Menerima dan merespon setiap pemanggilan dari atau ke server dan client

6.5.

RMI Registry

Tool RMI registry menggunakan rmiregistry dengan port default 1099 Ketika server membuat remote method dengan cara membuat lokal obyek yang menerapkan method dari interface tersebut, maka obyek akan diekspor ke RMI, dan diregisterkan ke RMI Registry dengan public name. RMI Registry akan membuat layanan listen yang menunggu permintaan dari client. Di sisi Client, RMI Registry diakses menggunakan static class naming. Class ini menyediakan metode lookup() untuk melakukan query ke registry. Metode lookup menerima URL yang menyatakan nama server dan nama service yang diminta dan kemudian mengembalikan remote reference obyek yang diminta. Format URL RMI: rmi://[:]/ RMI registry is a running process on a host machine

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

42

Aplikasi Enterprise

BAB 7 CORBA

7.1. Pengertian CORBA CORBA (Common Object Request Broker Architecture) adalah cara lain untuk melakukan pemrograman jaringan terdistribusi dan open system, dimana obyek yang dipanggil tidak hanya berasal dari program yang dibuat dengan bahasa Java saja tetapi juga bisa dibuat dengan bahasa lain. Corba di buat oleh OMG (Object Management Group www.omg.org), suatu organisasi yang mengurusi teknologi berbasis obyek. OMG berdiri tahun 1989 dan jugan mengurusi tentang UML. Corba dikatakan merupakan standar sistem terdistribusi (distributed sistem standard) karena dengan menggunakan corba, sistem secara keseluruhan dapat saling terhubung dan berkomunikasi antar platform (sistem operasi dan hardware) yang berbeda. Corba juga dikatakan sebagai open system karena teknologi corba merupakan suatu standar yang terbuka bagi siapa saja yang ingin menerapkannya. Dengan corba kita dapat membangun aplikasi yang dapat saling berkomunikasi walau satu sama lain menggunakan bahasa pemrograman dan platform yang berbeda. CORBA memiliki Interface Definition Interface yang mendukung mapping ke suatu bahasa pemrograman tertentu. CORBA menyediakan API untuk berkomunikasi antar obyek secara remote. Beberapa yang sudah menerapkan spesifikasi corba adalah: Borland (VisiBroker): C++ dan Java Mapping IONA (Orbix) : C++, Java, dan SmallTalk Mapping Sun Microsystem (JavaIDL)

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

43

Aplikasi Enterprise

7.2. Arsitektur CORBA

Gambar 7.1. Arsitektur CORBA

7.3. ORB Bertindak sebagai broker (perantara) antara client dan server yang berjalan pada tiap mesin yang berisi API untuk mencari obyek dan menerima request. ORB mengkomunikasikan hubungan antar obyek menggunakan sistem IIOP (Internet Inter-ORB Protocol) ORB tersedia untuk beberapa platform yang berbeda-beda. ORB mencari obyek, merequest remote method melalui interface CORBA, dan

mengembalikannya ke client. Menangani secara menyeluruh terhadap suatu permintaan (request) dari client ke object atau sebaliknya (response) dari obyek ke client. ORB harus tersedia di sisi server dan client. Pada sisi client, ORB memiliki fungsi: Menghubungkan ke interface repository / IR (penyedia definisi interface). Membantu client dalam menyusun suatu permintaan (invocation) ke object server secara dinamis dengan menggunakan DII (Dynamic Invocation Interface). Pada sisi server, ORB berfungsi:

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

44

Aplikasi Enterprise

Selain bertanggung jawab untuk mengirimkan response dari server ke client yang dituju, ORB juga membantu untuk memulai dan menghentikan operasi terhadap object server yang diminta.

7.4. Langkah Pengembangan CORBA

Gambar 7.2. Langkah membangun CORBA

Langkah pertama: mendefinisikan interface yang berisi layanan-layanan yang tersedia oleh obyek server menggunakan bahasa IDL. Langkah kedua: mengkompilasi bahasa IDL ke bahasa Java. Kita gunakan IDL-to-Java compiler. Yaitu : idlj. Hasil dari kompilasi ini dihasilkan client stub dan skeleton server. Untuk menghasilkan aplikasi client, kita perlu menuliskan aplikasi client dan dikompilasi dan dilink bersama dengan library CORBA serta client stub yang dihasilkan dari IDL compiler. Dari sisi server : dari definisi yang sudah didefinisikan perlu dibuat sebuah kelas sebuah kelas yang merupakan implementasi dari interface tersebut. Sehingga sebuah aplikasi server dihasilkan dari kompilasi dan linking antara kode program aplikasi server, implementasi obyek dan skeleton.

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

45

Aplikasi Enterprise

BAB 8 WEB SERVICES

8.1. Pengantar Web Services Saat ini web services menjadi sangat populer di enterprise karena kemampuannya dalam mengintegrasikan aplikasi-aplikasi yang berbeda platform. Web Services adalah sebuah komponen layanan aplikasi yang dapat diakses melalui protokol terbuka yang memanfaatkan Web melalui Simple Object Access Protocol (SOAP) dengan bahasa Web Services Description Language (WSDL) dan teregistrasi dalam Universal Discovery Description and Integration (UDDI). Web services mendukung komunikasi antar aplikasi dan integrasi aplikasi dengan menggunakan XML dan Web. XML (eXtensible Markup

Language) adalah sebuah standar untuk mendefinisikan data dalam format yang sederhana dan fleksibel. Mengapa web services menjadi sangat populer saat ini? Jawabannya adalah karena web services mampu mengintegrasikan aplikasi yang berbeda platform secara lebih sederhana dan mampu memperbaiki kelemahan dari middleware konvensional. Web services adalah komponen yang independen terhadap platform ataupun bahasa. Web services menggunakan web protokol (HTTP) yang sangat mendukung heterogenoitas dan interoperabilitas serta

memudahkan integrasi. Selain itu web services mendukung koneksi loosely coupled, sehingga sebuah perubahan pada satu aplikasi tidak akan memaksa perubahan pada aplikasi yang lain. Sebuah web services memiliki interface berupa web API (Application Programming Interface) yang dapat dipanggil oleh suatu aplikasi untuk mengakses aplikasi yang mengimplementasikan layanan web services. Interoperabilitas Enterprise adalah prioritas Integration utama (EAI) sebuah dan enterprise dalam

Application

Business-to-Business

Integration (B2Bi).

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

46

Aplikasi Enterprise

EAI dan B2Bi adalah permasalahan yang dihadapi oleh enterprise untuk mengintegrasikan berbagai macam aplikasi yang sudah ada. Web services dapat diimplementasikan sebagai komponen yang mendukung komunikasi antar aplikasi dalam enterprise. Web services saat ini semakin banyak digunakan oleh enterprise untuk memudahkan akses pada produknya, meningkatkan layanan ke

konsumen dan ke business partner melalui internet atau corporat extranet . Sebagai contoh mengintegrasikan dan mengotomasikan proses bisnis, supply chain, dan costumer relationship. Saat sebuah enterprise ingin mengintegrasikan sistem bisnisnya dengan partnernya menggunakan internet, informasi yang dialirkan harus dipastikan dalam kondisi aman. Oleh karena itu keamanan menjadi isu yang sangat penting untuk keperluan tersebut. Dalam beberapa kasus, layanan keamanan berbasis Operating System dan Internet Information Services (IIS) dapat

diandalkan. Akan tetapi lingkungan implementasi yang heterogen selalu menimbulkan celah-celah ancaman keamanan baru. Ancaman terhadap keamanan web services antara lain unauthorized access, parameter manipulation, network eavesdropping, disclosure of configuration data, dan message replay. Jika nilai informasi yang dibawa oleh web services tinggi, maka web services tersebut harus diamankan dari ancamanancaman diatas.

8.2. Web Services Security Specification Saat web services menggunakan secure connection seperti Secure Sockets Layer (SSL) atau Transport Layer Security (TLS) membangun koneksi end to end yang aman tidak akan sulit. Akan tetapi jika terdapat perantara pada komunikasi tersebut, maka dibutuhkan protokol yang memiliki tingkat keamanan yang tinggi. Berikut adalah spesifikasi dari keamanan web services. Spesifikasi berikut termasuk message security model (WS-Security) yang memberikan dasar bagi spesifikasi yang lain . Kemudian diatasnya terdapat lapisan khusus yang menangani masalah policy, yaitu WS-Policy, WS-Trust dan WSPrivacy.

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

47

Aplikasi Enterprise

WS-Policy mendeskripsikan kemampuan dan batasan dari keamanan, WS-Trust mendeksripsikan framework yang digunakan, dan WS-Privacy mendeskripsikan model privasi untuk web services.Lapisan tersebut memberikan fondasi untuk keamanan WS-Security. Diatas lapisan policy terdapat lapisan yang memberikan fondasi, yaitu WSSecureConversation, WS-Federation, dan WS-Authorization. WSSecureConversation yang mengelola dan mengautentifikasi pesan, WSFederation yang mengelola relasi dan lingkungan yang heterogen, dan WS-Authorization yang mengelola otorisasi data.

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

48

Aplikasi Enterprise

BAB 9 KEAMANAN WEB

9.1 Pendahuluan Pembahasan tentang web programming belum lengkap apabila belum mempelajari tentang keamanan dalam aplikasi. Fasilitas yang melimpah, fungsi yang sangat banyak tidak akan berarti apabila aplikasi kita gagal dalam hal pengamanan data.

Pada bab ini,

kita

akan

mempelajari

bagaimana

mengamankan

komunikasi antara server dan client melalui SSL. Kita juga akan mempelajari tentang 10 celah keamanan pada aplikasi web dan mempelajari bagaimana cara menanggulanginya.

9.2 SSL SSL telah menjadi standar de facto pada komunitas untuk mengamankan komunikasi antara client dan server. Kepanjangan dari SSL adalah Secure Socket Layer; SSL adalah sebuah layer protocol yang berada antara layer TCP/IP standar dengan protocol di atasnya yaitu application-level protocol seperti HTTP. SSL mengijinkan server untuk melakukan autentikasi dengan client dan selanjutnya mengenkripsi komunikasi.

9.3. Celah keamanan pada aplikasi web Open Web Application Security Project (OWASP) adalah project open source yang dibangun untuk menemukan penyebab dari tidak amannya sebuah software dan menemukan cara menanganinya. Ada 10 celah kemanan aplikasi web yang ditemukan dan rekomendasi mereka tentang menanganinya sebagai sebuah standard keamanan minimal dari aplikasi web.

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

49

Aplikasi Enterprise

Berikut ini adalah 10 celah tersebut dan cara agar kita dapat mengatasi masalah tersebut.

I. Unvalidated input

Semua aplikasi web menampilkan data dari HTTP request yang dibuat oleh user dan menggunakan data tersebut untuk melakukan operasinya. Hacker dapat memanipulasi bagianbagian pada request (query string, cookie information, header) untuk membypass mekanisme keamanan.

Berikut ini tiga jenis penyerangan yang berhubungan dengan masalah ini:

Cross site scripting Buffer overflows Injection flaws

Ada beberapa hal yang dapat dicatat ketika menangani validasi pada aplikasi kita. Pertama, adalah tidak baik pada aplikasi web untuk percaya pada client side scripting. Script tersebut biasanya menghentikan form submission apabila terdapat sebuah input yang salah. Akan tetapi, cript tersebut tidak dapat mencegah hacker untuk membuat HTTP requestnya sendiri yang erbebas dari form. Menggunakan client side validation masih bisa membuat aplikasi web yang mudah diserang.

Kedua, beberapa aplikasi menggunakan pendekatan "negative" (negative approach) pada alidasinya : Aplikasi mencoba mendeteksi jika terdapat elemen yang berbahaya pada request arameter. Masalah dari jenis pendekatan ini adalah hanya bisa melindungi dari beberapa erangan yaitu : hanya serangan yang dikenali oleh validation code yang dicegah. Ada banyak ara dimana hacker dapat membypass keamanan dari unvalidated input; Masih ada kemungkinan imana cara yang baru tidak dikenali oleh

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

50

Aplikasi Enterprise

aplikasi dapat membypass validasi dan melakukan erusakan. Adalah cara yang lebih baik untuk menggunakan pendekatan "positive" (positive pproach) yaitu : membatasi sebuah format atau pola untuk nilai yang diijinkan dan memastikan nput tersebut sesuai dengan format tersebut.

II. Broken Access Control Banyak aplikasi yang mengkategorikan user-usernya ke dalam role yang berbeda dan level yang erbeda untuk berinteraksi dengan content yang dibedakan dari kategori-kategori tersebut. Salah atu contohnya, banyak aplikasi yang terdapat user role dan admin role : hanya admin role yang iijinkan untuk mengakses halaman khusus atau melakukan action administration.Masalahnya adalah beberapa aplikasi tidak efektif untuk memaksa agar otorisasi ini bekerja.

Contohnya, beberapa program hanya menggunakan sebuah checkpoint dimana hanya user yang terpilihyang dapat mengakses : untuk proses lebih lanjut, user harus membuktikan dirinya erotorisasi dengan

menggunakan user name dan password. Akan tetapi, Mereka tidak menjalankan pengecekan dari checkpoint sebelumnya : dimana apabila user berhasil melewati halaman login, mereka dapat bebas menjalankan operasi.

Masalah lain yang berhubungan dengan access control adalah:

Insecure Ids Beberapa site menggunakan id atau kunci yang menunjuk kepada user atau fungsi. ID dapat juga ditebak, dan jika hacker dapat mudah menebak ID dari user yang terautorisasi, maka site akan mudah diserang.

File permissions Kebanyakan web dan aplikasi server percaya kepada external file yang menyimpan daftar dari user yang terotorisasi dan resources mana saja yang dapat dan/atau tidak dapat diakses. Apabila file ini dapat dibaca dari luar, maka hacker

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

51

Aplikasi Enterprise

dapat memodifikasi dengan mudah untuk menambahkan dirinya pada daftar user yang diijinkan.

Filter atau komponen tadi dapat menjamin hanya user yang terotorisasi dapat mengakases. Untuk melindungi dari insecure Ids, kita harus mengembangkan aplikasi kita agar tidak percaya pada kerahasiaan dari Ids yang dapat memberi access control. Pada masalah file permission, file-file tersebut harus berada pada lokasi yang tidak dapat diakses oleh web browser dan hanya role tertentu saja yang dapat mengaksesnya.

III. Broken Authentication dan Session Management Authentication dan session management menunjuk kepada semua aspek dari pengaturan user authentikasi dan management of active session. Berikut ini beberapa hal yang perlu diperhatikan :

Password strength Aplikasi kita harus memberikan level minimal dari keamanan sebuah password, dimana dapat dilihat dengan cara melihat panjang dari password dan kompleksitasnya. Contohnya sebuah aplikasi dimana terdapat user baru yang akan mendaftar : aplikasi tidak mengijinkan password dengan panjang 3-4 karakter atau katakata simpel yang dapat mudah ditebak oleh hacker.

Password use Aplikasi kita harus membatasi user yang mengakses aplikasi melakukan login kembali ke sistem pada tenggang waktu tertentu. Dengan cara ini aplikasi dapat dilindungi dari serangan brute force dimana hacker bisa menyerang berulang kali untuk berhasil login ke sistem. Selain itu, log in yang gagal sebaiknya dicatat sebagai informasi kepada administrator untuk mengindikasikan kemungkinan serangan yang terjadi.

Password storage password tidak boleh disimpan di dalam aplikasi. Password harus disimpan dalam format terenkripsi dan disimpan di file lain seperti file database atau file password. Hal ini dapat

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

52

Aplikasi Enterprise

memastikan bahwa informasi yang sensitif seperti password tidak disebarkan ke dalam aplikasi.

Issue lain yang berhubungan : password tidak boleh dalam bentuk hardcoded di dalam source code.

Session ID Protection server biasanya menggunakan session Id untuk mengidentifikasi user yang masuk ke dalam session. Akan tetapi jika session ID ini dapat dilihat oleh seseorang pada jaringan yang sama, orang tersebut dapat menjadi seorang client.

Salah satu cara yang dapat digunakan untuk mencegah terlihatnya session ID oleh seseorang pada suatu jaringan yang sama adalah menghubungkan komunikasi antara sever dan client pada sebuah SSLprotected channel.

IV. Cross site scripting Cross site scripting terjadi ketika seseorang membuat aplikasi web melalui script ke user lain. Hal ini dilakukan oleh penyerang dengan

menambahkan content (seperti JavaScript, ActiveX, Flash) pada request yang dapat membuat HTML output yang dapat dilihat oleh user lain. Apabila ada user lain yang mengakses content tersebut, browser tidak mengetahui bahwa halaman tersebut tidak dapat dipercaya. Cara yang bisa digunakan untuk mencegah serangan cross site scripting adalah dengan melakukan validasi data masuk dari user request (seperti header, cookie, user parameter, ...). Cara negative approach tidak digunakan : mencoba untuk memfilter active content merupakan cara yang tidak efektif.

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

53

Aplikasi Enterprise

V. Buffer overflows

Penyerang dapat menggunakan buffer overflows untuk merusak aplikasi web. Hal ini dilakukan karena penyerang mengirimkan request yang membuat server menjalankan kode-kode yang dikirimkan oleh penyerang. Kelemahan buffer overflow biasanya sulit dideteksi dan sulit dilakukan oleh hacker. Akan tetapi penyerang masih bisa mencari kelemahan ini dan melakukan buffer overflow pada sebagian aplikasi web.

Terima kasih atas desain dari Java environment, dimana aplikasi yang berjalan pada J2EE server aman dari jenis serangan ini.

Untuk memastikan keamanan, cara yang paling baik adalah melakukan pengawasan apabila terdapat patch atau bug report dari produk server yang digunakan.

VI. Injection flaws

Salah satu kelemahan yang populer adalah injection flaw, dimana hacker dapat mengirimkan atau menginject request ke operating system atau ke external sumber seperti database.

Salah satu bentuknya adalah SQL injection. Berikut ini salah satu contoh dari SQL injection :

Gambar 9.1. Contoh SQL Injection

URL diatas akan memproses pencarian dengan kata kunci 'jedi'. Implementasi dimana tidak ada validasi input adalah seperti SQL code berikut ini :

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

54

Aplikasi Enterprise

Gambar 9.2. Contoh Eksekusi SQL Injection

dimana value adalah nilai dari parameter searchString yang ada pada HTTP request.

Bagaimana jika, hacker melakukan input dari URL seperti ini :

Gambar 9.3. Contoh SQL Injection Http

SQL query yang terbentuk adalah seperti ini :

Gambar 9.4. Contoh Eksekusi SQL Injection Http

Statement awal pasti akan diterima dimana terdapat klausa AND TRUE. Dan statement selanjutnya yaitu DROP DATABASE juga akan diekseskusi yang akan memberikan kerusakan pada aplikasi. Serangan ini bisa mungkin terjadi karena input yang tidak divalidasi. Ada dua cara yang bisa dilakukan untuk mencegah serangan ini yaitu:

Daripada menggunakan statement SELECT, INSERT, UPDATE dan DELETE statement, bisa dibuat fungsi yang melakukan hal serupa. Dengan menggunakan fungsi diharapkan ada pengamanan

terhadap parameter. Selain itu dengan adanya fungsi, parameter

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

55

Aplikasi Enterprise

yang masuk harus sama dengan tipe data dari parameter yang dideklarasikan. Hak akses dalam aplikasi juga harus dibatasi. Contohnya, jika aplikasi hanya bertujuan untuk melihat data, tidak perlu diberikan hak akses untuk melakukan INSERT, UPDATE atau DELETE. Jangan menggunakan account admin pada aplikasi web untuk mengakases database. Hal ini juga dapat meminimailkan serangan dari hacker.

VIII. Insecure storage Aplikasi web biasanya perlu menyimpan informasi yang sensitif seperti password, informasi kartu kredit, dan yang lain. Dikarenakan item-item tersebut bersifat sensitif item-item tersebut perlu dienkripsi untuk menghindari pengaksesan secara langsung. Akan tetapi beberapa metode enkripsi masih lemah dan masih bisa diserang.

Berikut ini beberapa kesalahan yang sering terjadi :

Kesalahan untuk mengenkripsi data penting Tidak amannya kunci, certificate, dan password Kurang amannya lokasi penyimpanan data Kurangnya penghitungan dari randomisasi Kesalahan pemilihan algoritma Mencoba untuk menciptakan algoritma enkripsi yang baru Berdasarkan skenario berikut ini : Terdapat sebuah aplikasi, dimana terdapat password pada user object. Akan tetapi, aplikasi menyimpan user object ke dalam session setelah user login. Permasalahan yang akan muncul pada skenario ini adalah password dapat dilihat oleh seseorang yang dapat melihat session dari user tersebut.

Salah

satu

cara

yang

dilakukan

untuk

menghindari

kesalahan

penyimpanan informasi yang sensitif adalah : tidak membuat password

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

56

Aplikasi Enterprise

sebagai atribut dari kelas yang mewakili informasi user; Daripada mengenkripsi nomor kartu kredit dari user, akan lebih baik untuk menanyakannya setiap kali dibutuhkan.

Selain itu, menggunakan algoritma enkripsi yang sudah ada akan lebih baik daripada membuat algoritma sendiri. Anda cukup memastikan algoritma yang akan digunakan telah diakui oleh public dan benar-benar dapat diandalkan.

IX. Denial of Service Denial of Service merupakan serangan yang dibuat oleh hacker yang mengirimkan request dalam jumlah yang sangat besar dan dalam waktu yang bersamaan. Dikarenakan request-request tersebut, server menjadi kelebihan beban dan tidak bisa melayani user lainnya.

Serangan DoS mampu menghabiskan bandwidth yang ada pada server. Selain itu dapat juga menghabiskan memory, koneksi database, dan sumber yang lain.

Pada umumnya sangat sulit untuk melindungi aplikasi dari serangan ini. Akan tetapi masih ada cara yang dapat dilakukan seperti membatasi resource yang dapat diakses user dalam jumlah yang minimal. Merupakan ide / cara yang bagus untuk membuat load quota yang membatasi jumlah load data yang akan diakses user dari sistem.

Salah satu contoh adalah pada implementasi bulletin board : adanya pembatasan user pada saat melakukan search, dimana operasi ini hanya dapat dilakukan setiap 20 detik. Dengan cara ini dapat dipastikan bahwa user tidak bisa menghabiskan koneksi dari database.

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

57

Aplikasi Enterprise

Solusi yang lain adalah mendesain aplikasi web dimana user yang belum terotorisasi hanya memiliki akses yang sedikit atau tidak memiliki akses ke content web yang berhubungan dengan database.

X. Insecure Configuration Management

Biasanya kelompok (group) yang mengembangkan aplikasi berbeda dengan kelompok yang mengatur hosting dari aplikasi. Hal ini bisa menjadi berbahaya, dikarenakan keamanan yang diandalkan hanya dari segi aplikasi : sedangakan dari segi server juga memiliki aspek keamanan yang perlu diperhatikan. Adanya kesalahan dari konfigurasi server dapat melewati aspek keamanan dari segi aplikasi. Berikut ini adalah kesalahan konfigurasi server yang bisa menimbulkan masalah : Celah keamanan yang belum dipatch dari software yang ada pada server administrator tidak melakukan patch software yang ada pada server. Celah keamanan server dimana bisa menampilkan list dari direktori atau juga serangan berupa directory traversal. File-file backup atau file contoh (sample file), file-file script, file konfigurasi yang tertinggal / tidak perlu. Hak akses direktori atau file yang salah. Adanya service yang seperti remote administration dan content management yang masih aktif. Penggunaan default account dan default password. Fungsi administrative atau fungsi debug yang bisa diakses. Adanya pesan error yang informatif dari segi teknis. Kesalahan konfigurasi SSL certificate dan setting enkripsi. Penggunaan self-signet certificates untuk melakukan autentikasi. Penggunaan default certificate. Kesalahan autentikasi dengan sistem eksternal.

Ahmadi Yuli Ananta, ST. Program Studi Manajemen Informatika

58