Anda di halaman 1dari 36

Arsitektur

dan Aplikasi Enterprise


03. Enterprise Application

Oleh:
Team Teaching AE – Filkom UB
2018
Materi yang dibahas:
Evolusi enterprise application
Design of an enterprise application
◦ Top-Down Design
◦ Bottom-Up Design

Architecture of an enterprise application


◦ One tier
◦ Two tier (client/server)
◦ Middleware
◦ Three tier

Communication in an enterprise application


◦ Blocking or synchronous interactions
◦ Non-blocking or asynchronous interactions
Evolustion Enterprise Application
Evolusi Enterprise Application
Dahulu sistem bersifat Centrralized Approach yaitu bersifat stand alone/ terpusat
Bersifat single-tier: presentasi, logic business, code dan data menjadi satu kesatuan, tidak
dipisah-pisah
Kelemahan single-tier:
◦ Perubahan terhadap salah satu komponen diatas tidak mungkin dilakukan, karena akan
mengubah semua bagian.
◦ Tidak memungkinkan adanya re-usable component dan code

Lalu bagaimana dengan sistem yang sekarang ini?


Evolusi Enterprise Application
Sekarang sistem bersifat Distributed Approaach
◦ Sistem bersifat tersebar dan multiproses
◦ Sistem ini bersifat on Demand Software dan Software as Service (SaaS)
◦ Bersifat Multi-Tier
◦ Presentasi, logic business dan data terpisah menjadi lapisan tersendiri
Cloud Computing
Layering
Layering, salah satu teknik umum yang digunakan untuk memecah sebuah sistem yang rumit
kebagian bagian yang lebih sederhana.
◦ Contoh pada networking tedapat lapisan OSI Layer dan TCP/IP

Ketika sistem dibagi dalam layer-layer, maka:


• Bagian sistem yang princiapl dalam software diatur dalam layer
• Setiap upper layer bergantung pada lower layer
Layering
High layer menggunakan service-service yang didefinisikan oleh
lower layer
◦ Lower layer tidak perlu mengetahui higher layer

Setiap layer biasanya menyembuyikan lower layernya dari layer


atasnya
◦ Misal, layer 4 menggunakan services dari layer 3. Dimana layer 3
menggunakan service dari layer 2. Layer 4 tidak tahu menahu tentang
layer 2
Kelebihan Layering
User mengetahui aplikasi tersebut terdiri dari satu single layer saja tanpa harus tahu layer-
layer yang lain.
◦ Contoh, Kita dapat memantafkan FTP service pada TCP tanpa harus tahu bagaimana cara kerja Ethernet
card secara fisik

Kita dapat menggnati layer-layer dengan aplikasi lain yang dapat mengimplementasikan
service dasar yang sama
◦ Contoh, dapt dibuat berbagai FTP sosfteare yang berjalan tapa harus mengganti Ethernet atatu kabel-
kabel

Kita dapat meminimalisasi ketergantungan antar layer


◦ Contoh, jika kita mengganti kabel jaringan, ktia tidak perlu juga mengganti FTP Service
Kelebihan Layering
Layer sangat mendukung standarisasi
◦ TCP/IP = standard

Sesusah layer tebentuk, kita dapat menggunakannya untuk bermacam service lainnya
◦ Contoh, TCP/IP digunakan oleh FTP, telnet, SSH dan HTTP
Kelemahan Layering
Penggunaaan layer menyebabkan dan menambah tingkat kompleksitas proses.
◦ Setiap layer harus memiliki fungsinya masing-masing
◦ Suatu proses harus melewati masing-masing layer tersebut terlebih dahulu baru dpat menghasilkan
output
◦ Jadi masing-masing layer harus memiliki kemampuan proses yang berlainan

Layer mengenkapsulasi fungsinya masing-masing sehingga kita tidak dapat mengetahuai detail
fungsi suatu layer.
Layer bekerja secara bersama-sama menjadi satu kesatuan sehingga seluruh layer harus
bekerja secara optiomal
Layers of an IS
Prinsip Layer IS:
1. Presentation, menghandle interaksi antara
user dengan software
2. Logic, mengatur tindakan aturan bisnis suatu
aplikasi
3. Resource, mengatur komunikasi dengan
sistem lain dan memnage data

4. Client, semua user yang mengoperasikan


sistem
Layer and Tier
Contoh dari 3 Tier (Tingkatan), atau biasa disebut dengan client-server-programming.
Hanya perusahaan besar yang menggunakannya, dikarenakan membutuhkan banyak biaya untuk
membangun tiap tingkatan.
Contoh: Java dan IBM

Tier 1: Client (Presentation)


Komponen yang berjalan pada komputer user atau berfungsi
sebagai UI user
Tier 2: Server Layer (Business Logic)
Komponen yang berfungsi sebagai penghubung antara client
dan database
Tier 3: RDBMS (Resource)
Kumpulan dari database dan data resource manager. RDBMS
tidak bisa diakses langsung oleh client jika tidak terkoneksi
ke Tier 2
Layer and Tier
JSP (Java Server Page)
Teknologi Web Berbasis Java dan berjalan di Platform Java
yang merupakan bagian dari J2EE. JSP digunakan untuk
menangani presentasi di web.
JSP berupa script di sisi server seperti PHP dan ASP (Active
Server Page).
JSP memerlukan web server Apache Tomcat agar bisa
menjalankan file-file JSP. Misalkan kalo PHP menggunakan
Apache.
Top-Down Design

Bottom-Up Design

Design of Distributed IS
Fungsi dari sebuah sistem dipisah
berdasarkan modul-nya. Modul tidak bisa
Terpisah dengan komponen, dimana tiap
Modul bergantung dari modul yang lain-nya.
Top-Down Design

Keterangan:
PL=Presentation Layer
AL=Application Layer
RM=Resource Management

Top-Down Design biasanya dirancang


Untuk system dengan lingkungan sejenis
Top-Down Design
Kelebihan dan Kekurangan Top-
Down
Kelebihan:
Design lebih ditekankan pada tujuan akhir dari sistem yang dikembangkan
Kekurangan:
Hanya bisa di design dari awal. Artinya, sistem yang lama tidak akan bisa diintegrasikan dengan
suatu sistem yang baru

Sekarang ini, sedikit sekali yang menggunakan Top-Down


Design dalam merancang Aplikasi Enterprise.
Bottom-Up Design
Bottom-Up Design
Konsep design Bottom-Up adalah menghubungkan aplikasi yang lama dengan aplikasi yang
baru. Dengan pendekatan ini, memiliki aplikasi yagn luas karena sistem dasarnya sudah ada dan
tidak bisa dengan mudah diganti. Design ini menggunakan Middleware

Middleware: Layer intermediate (lapisan perantara)


yang digunakan untuk menghubungkan bagian-
bagian berbeda pada sebuah aplikasi atau rangkaian
aplikasi
Bottom-Up Design
Architecture of Enterprise Application
1, 2, 3, N-Tier
1-Tier (Single Tier)
Para arsitektur ini, semua proses dilakukan pada mainframe.
Source code aplikasi, data dan semua kompone sistem
ditempatkan dan dijalankan pada host.
Kelebihan:
- Semua pemrosesan terjadi secara terpusat
- Keamanan lebih terjamin
Kekurangan:
- Semua pemrosesan terjadi pada sebuah mesin tunggal,
sehingga semakin banyak user yang mengakses host, semakin
tidak terjamin pemrosesnanya.
2-Tier (Client/Server)
Model 2 tier (client/server), pemrosesan pada sebuah aplikasi
terjadi pada client dan server. Terdapat banyak client dan hanya
sebuah server yang dihubungkan melalui sebuah jaringan.
Aplikasi ditempatkan pada computer client dan mesin database
di remote dari jarak jauh. Aplikasi client request ke database dan
merespon nya kembali ke client.
Kelebihan:
- Semakin banyak user bertambah pada aplikasi client, kinerja
server file tidak akan menurun dengan cepat
- User dari berbagai lokasi dapat mengakses data yagn sama
dengan sedikit beban pada sebuah mesin tunggal
Kekurangan:
- Kurangnya skalabilitas (walaupun user bertambah, masih ada
batasan terhadap jumlah client)
- Jika server gagal, maka semuanya tidak dapat berjalan
- Semua client berebut resource yang sama
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 many-to-one.
• 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.
• Integrity : kode dan data server diatur secara terpusat, sedangkan pada client tetap pada
komputer tersendiri
Middleware
Middleware, software yang berfungsi sebagai lapisan konversi atau penermemah diantara
komponen aplikasi dengan tujuan untuk mengurangi kompleksitas pada aplikasi terdistribusi.
Contoh arsitektur yang menggunakan middleware: Client/Server
Manfaat Middleware:
◦ Dua buah platform/ aplikasi dapat dijalankan secara bersamaan pada sistem yang
terdistribusi
◦ Memungkinkan satu aplikasi berkomunikasi dengan lainnya walaupun berjalan pada
platform yang berbeda
◦ Transparasi di seluruh jaringan, sehingga menyediakan interaksi dengan layanan atau
aplikasi lain
Middleware Dirancang sebagai perangkat untuk mendukung
Eneterprise Application sebagai sistem yang
tersebar dan saling terhubung. Memiliki beberapa
layanan yang bisa digunakan dan dimanfaatkan.

Contoh:
Transaction Manager :
Digunakan untuk meyakinkan bahwa transaksi ke
database terlayani dengan baik

Messaging Middleware:
MSMQ (Microsoft Message Queue Server)

Middleware Basis Data:


JDBC, ODBC, ADO.NET

Application Server Middleware:


J2EE Application Server, Oracle Application Server
Transaction Manager
Commit: Data dimasukkan
Rollback: Digunakan untuk mengembalikan data ke savepoint

Di oracle, terdapat transaction manager yang digunakan untuk integritas data (akurasi dan kebenaran data).
Misal: input field NAMA adalah adalah huruf bukan angka, maka data yang masuk ke database haruslah dipastikan huruf.
Dengan transaction manager ini, tidak perlu repot membuat exception di pemrogramannya, tinggal try() and catch()
3-Tier

Dikembangkan untuk untuk mengatasi keterbatasan client/server.


Terdapat tiga lapisan yang memiliki fungsionalitas khusus, yaitu:
• Pada tingkat client (layanan presentasi), interaksi antara user
dengan aplikasi
• Pada tingkat menengah (layanan bisnis), menjalankan bisnis logic
• Pada tingkat resource (layanan data), memanage resource
3-Tier (Multi-Tier)
Arsitektur Three Tier ini banyak sekali
diimplementasikan dengan menggunakan Web
Application.
Karena dengan menggunakan Web Application, Client
Side (Komputer Client) hanya akan melakukan instalasi
Web Browser. Dan saat komputer client melakukan
inputan data, maka data tersebut dikirimkan ke
Application Server dan diolah berdasarkan business
process-nya. Selanjutnya Application Server akan
melakukan komunikasi dengan database server. 
Contoh: Glass-Fish, Tomcat, Oracle App

Application Server umumnya berupa business process layer,


dimana bisa didevelop menggunakan PHP, ASP.Net, maupun
Java. Sehingga kita menempatkan beberapa business logic kita
pada tier tersebut. 
Kelebihan dan Kekurangan 3 Tier
Kelebihan:
• Apabila terjadi kesalahan pada salah satu lapisan, tidak akan menyebabkan lapisan lainnya
salah
• Penggunaan middleware mendukungung efisiensi query database dalam SQL dipakai untuk
menangani pengambilan informasi dari database
• Transfer informasi antara web server dan server database optiomal
Kekurangan:
• Lebih susah untuk merancangnya
• Pengaturan yang jauh lebih rumit
• Cost yang tinggi
Communication in Enterprise Application
Blocking / Synchronous
Umumnya, untuk memperoleh informasi suatu
data menggunakan blocking call. Dimana client
akan melakukan request ke server, lalu server
memberikan response beberapa detik
kemudian. Istilahnya dinamakan dengan
Synchronous.

Jadi call harus menunggu sampai selasai di


proses, hal ini yang menyebabkan service tidak
berjalan dengan baik. Lalu bagaimana solusinya?
Non-Blocking / ASynchronous
Terdapat dua proses A dan B
Pada Sync:
Proses B akan dieksekusi
menunggu proses A selesai
dikerjakan.

Pada Async:
Proses B akan dijalankan,
tanpa harus menunggu
proses A selesai terlebih
dahulu.
Non-Blocking / ASynchronous

Synchronous

Asynchronous
Tugas 02 - Kelompok
Jelaskan arsitekturnya beserta contoh aplikasinya
• Messaging Middleware
• Middleware Basisdata
• Application Server Middleware

Anda mungkin juga menyukai