Pemrograman Internet Mobile Antonius R.C, S.Kom, M.Cs Mobile Application Architecture
Problems of Mobile Application Development Complex architecture –Difficult to learn and understand –Many affecting factors: components, their qualities and combinations Heterogenous and fast developing technologies –Wireless networks –Terminals –Etc. Relatively young application field –Not much experience Fast development expected –Time to market critical Application development often project-based and not well planned –Fast and ad hoc solutions –Organisational memory and infomation exchange problems Value chain (or network) –Diferent compaines involved (e.g. service provider(s), content provider(s), network operator(s), technology provider(s)) –Interoperability –Subcontracting
Pengertian Client-Server Client/Server dapat diartikan sebagai kemampuan komputer untuk meminta layanan request data kepada komputer lain. Setiap instance dari komputer yang meminta layanan disebut sebagai client, sedangkan setiap instance yang menyediakan layanan disebut sebagai server. Data yang diminta oleh client dapat diambil dari database pada sisi server yang sering disebut database server, seperi misalnya MySQL, PostgreSQL, Oracle, atau SQL Server.
Three Tier Client-Server Architecture
Client-Server Characteristics Client dan Server merupakan item proses (logika) terpisah yang bekerja sama pada suatu jaringan komputer untuk mengerjakan suatu tugas: 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. Kondisi tersebut juga memungkinkan komunikasi callback.
Client-Server Characteristics 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 memberitahu server apa yang akan dikerjakan Scalability : sistem C/S dapat dimekarkan baik vertikal maupun horisontal Integrity : kode dan data server diatur secara terpusat, sedangkan pada client tetap pada komputer tersendiri
Client-Server Characteristics Characteristics of a client –Initiates requests –Waits for and receives replies –Usually connects to a small number of servers at one time –Typically interacts directly with end-users using a graphical user interface Characteristics of a server –Passive (slave) –Waits for requests from clients –Upon receipt of requests, processes them and then serves replies –Usually accepts connections from a large number of clients –Typically does not interact directly with end-users
Advantages Client-server mampu menciptakan aturan dan kewajiban komputasi secara terdistribusi. Mudah dalam maintenance. Memungkinkan untuk mengganti, memperbaiki server tanpa mengganggu client. Semua data disimpan di server Server dapat mengkontrol akses terhadap resources, hanya yang memiliki autorisasi saja. Tempat penyimpanan terpusat, update data mudah. Pada peer-to-peer, update data sulit Mendukung banyak clients berbeda dan kemampuan yang berbeda pula.
Disadvantages Traffic congestion on the network, jika banyak client mengakses ke server secara simultan, maka server akan overload –Berbeda dengan P2P network, dimana bandwidthnya meningkat jika banyak client merequest. Karena bandwidth berasal dari semua komputer yang terkoneksi kepadanya. Pada client-server, ada kemungkinan server fail. –Pada P2P networks, resources biasanya didistribusikan ke beberapa node sehingga masih ada node yang dapat meresponse request.
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 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. –Contoh, kita dapat mengetahui bagaimana membuat FTP service pada TCP 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 mengenkapsulasi fungsi-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.
One tier: fully centralized The presentation layer, application logic and resource manager are built as a monolithic entity. 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, 1-tier architecture Server Presentation Middleware Data client
Two tier: client/server As computers became more powerful, it was possible to move the presentation layer to the client. This has several advantages: –Clients are independent of 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 machine to 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. –The resource manager only sees one client: the application logic. This greatly helps with performance since there are no client connections/sessions to maintain. 2-tier architecture c Middleware Data cccc Server presentation
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.
The main limitation of client/server –The responsibility of dealing with heterogeneous systems is shifted to the client. –The client becomes responsible for knowing where things are, how to get to them, and how to ensure consistency This is tremendously inefficient from 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. Server AServer B If clients want to access two or more servers, a 2-tier architecture causes several problems: –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)
NEXT