Enterprise Application
Design of an enterprise application
Layers and tiers
Bottom up design
Top down design
Architecture of an enterprise application
One tier
Two tier (client/server)
Three tier (middleware)
N-tier architectures
Communication in an enterprise application
Blocking or synchronous interactions
Non-blocking or asynchronous interactions
Evolusi Enterprise Application
Dahulu sistem bersifat “Centralized Approach”.
Yaitu sistem dimana bersifat stand alone, dan terpusat.
Single system for all processing needs
Physical limitations of scalability, single points of failure, dan limited accessibility from remote locations
Bersifat single-tier : presentasi, logic business, code, dan data menjadi satu kesatuan, tidak dipisah-pisah.
Kekurangan single-tier:
Menyebabkan perubahan terhadap salah satu komponen diatas tidak mungkin dilakukan, karena akan mengubah semua bagian.
Tidak memungkinkan adanya re-usable component dan code.
Evolusi Enterprise Application
Sekarang sistem bersifat “Distributed Approach”
Sistem bersifat tersebar dan multiproses.
Sistem ini bersifat On Demand Software dan Software as Service
Bersifat multi-tier:
presentasi, logic business, dan data terpisah-pisah menjadi lapisan-lapisan tersendiri.
Layering
Layering salah satu teknik umum di mana para software designer 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 bagian sistem yang principal dalam software diatur dalam layer, di mana setiap upper layer bergantung pada lower layer.
Higher layer menggunakan service-service yang didefinisikan oleh lower layer, tetapi lower layer tidak perlu mengetahui the higher layer.
Setiap layer biasanya menyembunyikanlower 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 singlelayer saja tanpa harus tahu layer-layer yang lain.
Contoh, kita dapat mengetahui bagaimana membuat FTP service padaTCP tanpa harus tahu bagaimana cara kerja Ethernet Card secara fisik.
Kita dapat mengganti layer-layer dengan aplikasi lain yang mengimplementasikan servis dasar yang sama.
Sebuah FTP service mungkin berbeda-beda dapat tetap berjalan tanpa harus mengganti Ethernet, PPP, atau kabel-kabel.
Kita dapat meminimalisasi ketergantungan antar layer-layer.
Jika kita mengganti kabel jaringan, kita tidak perlu juga mengganti FTP service.
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 proses yang berlainan.
Layer mengenkapsulasifungsi-fungsinya masing-masing sehingga kita tidak dapat mengetahui detail fungsi suatu layer.
Layer bekerja secara bersama-sama menjadi satu kesatuan sehingga seluruh layer harus bekerja secara optimal.
3 Principal Layers
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 sebagai aksi terhadap domain logic dan data source.
Data source logic: mengatur komunikasi dengan sistem lain yang mengerjakan tugas untuk kepentingan aplikasi.
Bisa berupa transaction monitor dan database.
Contohnya adalah database untuk menyimpan 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.
tengkyu :D
BalasHapus