Enterprise Integration System Kuliah 5
Enterprise Application Design Layers and tiers Bottom up design Top down design Architecture One tier Two tier (client/server) Three tier (middleware) N-tier architectures
EA Konvensional Sistem konvensional → “Centralized Approach” 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.
EA Sekarang Bersifat “Distributed Approach” Bersifat “multi-tier” 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 beberapa 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.
Kelebihan Layering Suatu aplikasi hanya terdiri dari satu single layer saja tanpa harus tahu layer-layer yang lain. Contoh: untuk membuat FTP service padaTCP tidak perlu 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 mungkin berbeda-beda dapat tetap berjalan tanpa harus mengganti Ethernet, PPP, atau kabel-kabel. Dapat meminimalkan ketergantungan antar layer-layer. Jika kita mengganti kabel jaringan, tidak perlu mengganti FTP service. Layer sangat mendukung standarisasi. TCP / IP adalah standard karena mereka mendefinisikan bagaimana layer-layer mereka harus beoperasi. Sesudah layer terbentuk, dapat digunakan untuk servis lainnya. Contoh, TCP/IP digunakan oleh FTP, telnet, SSH, dan HTTP. Semua protokol-protokol inipun memiliki lower-level protokolnya masing- masing
Kekurangan 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 mengenkapsulasi fungsi-fungsinya masing- masing sehingga tidak dapat diketahui secara detail fungsi suatu layer. Layer bekerja secara bersama-sama menjadi satu kesatuan sehingga seluruh layer harus bekerja secara optimal
3 Prinsip Layering Presentation Logic: yang 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: yang 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.: yang 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
Enterprise Application Top-Down Design 1. define access channelsand client platforms 2. define presentation formats and protocols for the selected clients and protocols 3. define the functionality necessary to deliver the contents and formats needed at the presentation layer 4. define the data sources and data organization needed to implement the application logic Client Presentation Layer Application Logic Layer Resource Management Layer Enterprise Application
Enterprise Application Buttom-Up Design 1. Define access channels and client platforms 2. Exemine existing resources and the functionality they offer 3. Wrap existing resources and integrate their functionality into a consistent interface 4. Adapt the output of application logic so that it can be used with the required access channels and client protocols Client Presentation Layer Application Logic Layer Resource Management Layer Enterprise Application
1-Tier Architecure
1-Tier Architecture The presentation layer, application logic and resource manager are built as a monolithicentity. Users/programs access the system through display terminals but what is displayed and how it appears is controlled by the server. (These are “dumb”terminals). This was the typical architecture of mainframes, offering several advantages: no forced context switches in the control flow (everything happens within the system), all is centralized, managing and controlling resources is easier
2-Tiers Architecture
2-Tiers Architecture As computers became more powerful, it was possible to move the presentation layer to the client. This has several advantages: Clients are independentof each other: one could have several presentation layers depending on what each client wants to do. One can take advantage of the computing power at the client machineto have more sophisticated presentation layers. This also saves computer resources at the server machine. It introduces the concept of API (Application Program Interface).An interface to invoke the system from the outside. Theresource manager only sees one client: the application logic. This greatly helps with performance since there are no client connections/sessions to maintain
2-Tier Technical Aspects There are clear technical advantages when going from one tier to two tierarchitectures: take advantage of clientcapacity to off-load work to the clients work within the server takes place within one scope (almost as in 1 tier), the server design is still tightly coupledand can be optimized by ignoring presentation issues still relatively easy to manageand control from a software engineering point of view
Disadvantages of 2-Tiers The server has to deal with all possible client connections. Themaximum number of clientsis given by the number of connections supported by the server. Clients are “tied”to the system since there is no standard presentation layer. If one wants to connect to two systems, then the client needs two presentation layers. There is no failure or load encapsulation. If the server fails, nobody can work. Similarly, the load created by a client will directly affect thework of others since they are all competing for the same resources.
Karakteristik Sistem 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.
The Main Limitation of C/S This is tremendously inefficientfrom all points of view (software design, portability, code reuse, performance since the client capacity is limited, etc.). There is very little that can be done to solve this problems if staying within the 2 tier model
Problems of Client/Server The underlying systems don’t know about each other There is no common business logic The client is the point of integration(increasingly fat clients) The responsibility of dealing with heterogeneous systems is shifted to the client. The client becomes responsiblefor knowing where things are, how to get to them, and how to ensure consistency
3-Tiers (Middleware) Software yang berfungsi sebagai lapisan konversi atau penerjemahdiantara komponen aplikasi dengan tujuan untuk mengurangi kekompleksitasan aplikasi terdistribusi. Contoh Arsitektur yang menggunakan Middleware: Client/Server
Middleware as Programming Abstraction Abstraction is a key concept in making software development easier for software developers Programming abstractions can Hide hardware/platform details Provide powerful building blocks Reduce programming errors Reduce development and maintenance costs Middleware can be seen as a set of programming abstractions that make it easier to develop complex distributed systems
Database & The 2-Tiers Approach
N-Tiers: Connecting to Web
N-Tiers System
See you … Next week … !