BAB 1
ENTERPRISE
Perusahaan, firma.
Aplikasi Enterprise
Resource planning
1.4.
Arsitektur Enterprise
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 :
Aplikasi Enterprise
Aplikasi Enterprise
BAB 2
APLIKASI ENTERPRISE
2.1.
Mengintegrasikan
customer
support
dan
in
house
product
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.
digunakan konsep
file
system
(standalone)
sekarang
digunakan databaserelasional
Aplikasi Enterprise
2.3.
Kesulitan
dalam
mengintegrasikan
pembuatan
seluruh
sistem
software
dan
yang
bersifat
mampu
Distributed
Software. (Distribution)
Aplikasi Enterprise
2.4.
aksi
UI,
seperti
penekanan
tombol,
atau
sebuah
Walaupun
belum
selesai
proses,
sistem
harus
tetap
adalah
waktu
minimum
yang
dibutuhkan
untuk
dalam
berapa
bytes
per
second.
Untuk
enterprise
Aplikasi Enterprise
Horizontal
scalability
atau
scaling
out,
berarti
2.5.
Aplikasi Enterprise
Multitier
Kelebihan N-Tier
Aplikasi Enterprise
1.6.
Aplikasi Enterprise
BAB 3
TEKNIK ARSITEKTUR ENTERPRISE
3.1.
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
10
Aplikasi Enterprise
Kelemahan Layering
Penggunaan
Layer
menyebabkan
dan
menambah
tingkat
Prinsip Layer
11
Aplikasi Enterprise
3.2.
Businness Logic
sebuah
prosedur/routine
yang
mengambil
input
dari
12
Aplikasi Enterprise
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.
14
Aplikasi Enterprise
15
Aplikasi Enterprise
akses
SQL
dari
domain
logic
dan
16
Aplikasi Enterprise
memanipulasi
model,
dan
menyebabkan
view
untuk
17
Aplikasi Enterprise
Page Controller
Sebuah object yang menangani sebuah request untuk suatu
halaman tertentu atau suatu aksi terhadap suatu website.
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
18
Aplikasi Enterprise
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.
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
Application Controller
Menghandle layar navigasi dan aliran aplikasi. Menggunakan
interface.
Inconsistent read: jika ada 2 atau lebih pembacaan, tapi salah satu
ada yang menyimpan, maka data menjadi tidak konsisten
20
Aplikasi Enterprise
lebih
banyak
request
dalam
satu
thread.
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,
22
Aplikasi Enterprise
BAB 4
ARSITEKTUR SOFTWARE
4.2. Middleware
Software yang berfungsi sebagai lapisan konversi atau penerjemah
diantara
komponen
aplikasi
dengan
tujuan
untuk
mengurangi
23
Aplikasi Enterprise
one-to-many.
Client
memulai
komunikasi
dengan
software.
SOA
bersiftat
loosely
coupled
(tingkat
(listen)
secara
terus-menerus
untuk
digunakan.
24
Aplikasi Enterprise
Bersifat Standard
25
Aplikasi Enterprise
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
26
Aplikasi Enterprise
Gunakan
pemanggilan
synchronous
service
ketika
sebuah
27
Aplikasi Enterprise
BAB 5
PERKEMBANGAN SOFTWARE
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.
No
Discrimination
Against
Persons
or
Groups:
siapapun
oleh
semua
pengguna
program
tanpa
harus
ada
29
Aplikasi Enterprise
Kebebasan untuk
bekerja dan
30
Aplikasi Enterprise
pengubahan
tersebut
ke
publik,
sehingga
seluruh
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)
Cost: gratis
31
Aplikasi Enterprise
Open Source mungkin banyak bug, tapi cepat difix karena banyak
dukungan.
Core:
developer
yang
mengubah/membuat
source
code
(programmer)
Senior members
Peripheral developers
Occasional contributors
Maintainers
32
Aplikasi Enterprise
GNU GNATS
Buggzilla
33
Aplikasi Enterprise
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.
Frequent Integration
5.12.2.
34
Aplikasi Enterprise
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.
35
Aplikasi Enterprise
5.12.3.
Penilaian Mature
36
Aplikasi Enterprise
elemen
kunci
produk
dan
menilai
tingkat
kematangannya.
Product software
Support
Documentation
Training
Product integration
Professional services
37
Aplikasi Enterprise
Tujuan OSMM
38
Aplikasi Enterprise
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.
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
atau
Internet.
Idenya
memisahkan
obyek-obyek
secara
40
Aplikasi Enterprise
RMI
harus
ada
pendefinisian
interface
(behaviour)
dan
memungkinkan
membuat
dua
kelas
yang
menerapkan
6.2.
6.3.
Remote Reference
41
Aplikasi Enterprise
6.4.
Transport Layer
6.5.
RMI Registry
42
Aplikasi Enterprise
BAB 7
CORBA
43
Aplikasi Enterprise
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
44
Aplikasi Enterprise
45
Aplikasi Enterprise
BAB 8
WEB SERVICES
Markup
mendukung
heterogenoitas
dan
interoperabilitas
serta
adalah
Application
prioritas
Integration
utama
(EAI)
sebuah
dan
enterprise
dalam
Business-to-Business
Integration (B2Bi).
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
System
dan
Internet
Information Services
(IIS)
dapat
47
Aplikasi Enterprise
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.
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.
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:
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.
50
Aplikasi Enterprise
lanjut,
user
harus
membuktikan dirinya
erotorisasi
dengan
51
Aplikasi Enterprise
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.
52
Aplikasi Enterprise
ke
user
lain.
Hal
ini
dilakukan
oleh
penyerang
dengan
53
Aplikasi Enterprise
V. Buffer overflows
Terima kasih atas desain dari Java environment, dimana aplikasi yang
berjalan pada J2EE server aman dari jenis serangan ini.
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 :
54
Aplikasi Enterprise
dimana value adalah nilai dari parameter searchString yang ada pada
HTTP request.
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:
menggunakan
fungsi
diharapkan
ada
pengamanan
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.
Salah
satu
cara
yang
dilakukan
untuk
menghindari
kesalahan
56
Aplikasi Enterprise
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.
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.
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.
Celah keamanan yang belum dipatch dari software yang ada pada
server administrator tidak melakukan patch software yang ada
pada server.
File-file backup atau file contoh (sample file), file-file script, file
konfigurasi yang tertinggal / tidak perlu.
58