BAGAIMANA MEMILIH/MERANCANG ARSITEKTUR SUATU APLIKASI MOBILE ? Model Layout Software Hardware
ARSITEKTUR Ada dua arsitektur aplikasi yang paling umum digunakan dalam aplikasi mobile yaitu client-server dan peer-to-peer. Terdapat 1/lebih piranti mobile yang meminta layanan ke 1/lebih server Request Response CLIENT (C) SERVER (S)
Ada berbagai macam model arsitektur Client-Server Dinyatakan dalam istilah - LAYER, - TIER, - Komunikasi antara LAYER dan TIER
LAYER ”Layering” : Pemecahan program aplikasi ke dalam kelompok-kelompok kode program berdasarkan fungsinya sehingga memudahkan kode-kode program digunakan lagi untuk aplikasi lain Dalam 1 program aplikasi terdapat modul-modul program yang secara khusus difungsikan untuk - user-system interface (View) - logika aturan bisnis aplikasi (Control) - interaksi dengan Database (Model) Secara fisik, ”Layer” : modul-modul kode program yang disimpan dalam folder yang berbeda pada Client/Server.
Macam-macam LAYER Layer 0 : tidak memiliki kode aplikasi sama sekali Layer 1 : kode aplikasi untuk user-system interface disebut ”PRESENTATION” layer Layer 2 : kode aplikasi untuk mengelola logika aturan bisnis disebut ”BUSINESS” layer Layer 3 : kode aplikasi untuk interaksi aplikasi dengan database disebut ”DATA ACCESS” layer CLIENT: Dimungkinkan memiliki Layer 0 – 3 Client yang hanya memiliki Layer 0 : tidak terdapat sama sekali kode aplikasi yg diinstall di Client (semua kode aplikasi ditangani dan disimpan di Server) disebut ”THIN CLIENT” Client yang memiliki Layer 1 – 3 ”FAT CLIENT” SERVER: Tidak mungkin Layer 0 Layer 1 – 3
TIER Pengelompokkan kode-kode program aplikasi berdasarkan fungsinya dengan menempatkannya pada 1/lebih mesin yang berbeda ”Tiering” : menempatkan modul-modul program ke dalam mesin yang berbeda sesuai fungsinya sehingga program aplikasi yang telah dibangun berdasarkan Layer akan lebih mudah untuk di Tiering
Macam-macam TIER 1. PRESENTATION Tier (first tier): aplikasi user-system interface 2. APPLICATION Tier (second tier): aplikasi pemrosesan Logika Bisnis & Logika Akses Database 3. DATABASE Tier (third tier): DBMS & Datasource lainnya
Merancang Arsitektur Aplikasi Mobile Menentukan : Arsitektur piranti di CLIENT ? Arsitektur di SERVER ? Jenis KONEKTIVITAS-nya ?
A. CLIENT THIN Clients FAT Clients WEB PAGE HOSTING SmartPhone, PDA, Tablet PC, Palmtop, dll Macam-macam (Pilihan) Arsitektur Client dibedakan berdasarkan LAYERING-nya THIN Clients FAT Clients WEB PAGE HOSTING
A.1.THIN Client Client tidak diinstal aplikasi yang dibangun, Client sepenuhnya tergantung dari koneksi Server Client diinstal - Web Browser (Microsoft Pocket Internet Explorer, Microsoft Internet Explorer, Netscape Navigator) - WAP Browser Kelebihan Thin Client : Lebih mudah dan murah dalam perawatan software client (tidak perlu ada updating & distribusi aplikasi client) Kelemahan Thin Client: Fungsi client sangat tergantung dari kualitas koneksi client-server
A.2. FAT Client DB DB DB FAT Client – Two Layer Hanya ada 1 Aplikasi yang mencakup kode-kode fungsi : PRESENTATION (Form) BUSINESS DATA ACCESS PRESENTATION (Form) BUSINESS DATA ACCESS PRESENTATION (Form) BUSINESS DATA ACCESS DB DB DB FAT Client – Two Layer FAT Client – Three Layer FAT Client – One Layer
Lanjutan FAT Client Client dapat memiliki 1 hingga 3 layer aplikasi Tiap layer aplikasi dapat bekerja secara independen terhadap Server Jenis FAT Client cocok untuk : Situasi dimana koneksi Client – Server tidak dapat dijamin kualitasnya, padahal frekuensi kebutuhan update data cukup tinggi FAT Client dapat menyimpan hasil update data ”sementara” di Database Lokal piranti Mobile namun saat koneksi ke Server tercapai data dapat di upload Kelemahan FAT Client: Bergantung pada spesifikasi piranti dan Sistem Operasi tertentu -Lebih sulit dan mahal dalam perawatan aplikasi client (perlu ada pembuatan/update & distribusi aplikasi client, aplikasi harus support banyak ragam piranti)
A.3. WEB PAGE HOSTING Menampilkan & memproses web page secara mandiri dalam Mobile Device Menginstal ”mini” web server dalam mobile device (Ms. HTTP Server) 1 Aplikasi Mencakup kode-kode Fungsi: PRESENTATION (web) BUSINESS DATA ACCESS PRESENTATION (web) BUSINESS DATA ACCESS PRESENTATION (web) BUSINESS DATA ACCESS DB DB DB Web Page Hosting – One Layer Web Page Hosting – Three Layer Web Page Hosting – Two Layer
B. SERVER Arsitektur One-Tier Arsitektur Two-Tier Macam-macam (Pilihan) Arsitektur Server dibedakan berdasarkan TIERING-nya Arsitektur One-Tier Arsitektur Two-Tier Arsitektur Three-Tier
B.1. Arsitektur One-Tier + : - : Request Response PRESENTATION server APPLICATION server (Business & Data Access) 3. DB Server (DBMS) + : Mudah dan cepat dalam pengembangan kode aplikasi dalam 1 Server - : Sulit mengukur seberapa besar aplikasi (campur jd 1) sehinga keamanan data kurang terjamin.
B.2. Arsitektur Two-Tier + : - : 3. DB Server (DBMS) Request Response PRESENTATION server APPLICATION server (Business & Data Access) + : Mudah dan cepat dalam pengembangan kode aplikasi dalam dua server Memiliki DBMS server khusus sehingga beban server lebih ringan - : Sulit mengukur seberapa besar aplikasi (campur jadi satu). Keamanan data kurang terjamin karena (Aplikasi masih menyatu dengan Presentation). Lebih Mahal.
B.3. Arsitektur Three-Tier 3. DB Server (DBMS) Request Response 2. APPLICATION server (Business & Data Access) PRESENTATION server + : mudah diukur (scalable) Aman (Aplikasi dan DBMS [Intranet zone] terpisah dari Presentation [Demilitarized Zone]) DBMS server khusus (beban server lebih ringan, cepat) - : Terlalu banyak alat (mahal), pengelolaan dan pengembangan sulit dilakukan
JENIS KONEKSI Selalu Terkoneksi Terkoneksi secara Periodik (Parsial) Tidak Pernah Terkoneksi (misal: game, jam) Request Response CLIENT (C) SERVER (S)
SINKRONISASI Komunikasi terus-menerus (continuous) - Synchronous = proses updating data dilakukan pada piranti mobile di Sistem Back-End Komunikasi terus-menerus (continuous) - Synchronous - Asynchronous 2. Store-and-forward
SINKRONISASI a. Komunikasi Synchronous = proses updating data di piranti mobile dengan di Sistem Back-End a. Komunikasi Synchronous SERVER SIMPAN ya ! Server MENYIMPAN data CLIENT Data TELAH DISIMPAN lho & User-Interface dpt digunakan lagi b. Komunikasi Asynchronous SIMPAN ya ! Server MENYIMPAN data Data SEDANG DISIMPAN Ttp User-Interface sdh dpt Digunakan lagi CLIENT Data SELESAI DISIMPAN KONEKSI
2. Komunikasi STORE-and-FORWARD SERVER CLIENT SIMPAN Data KONEKSI
JADI ADA BERAPA KEMUNGKINAN ARSITEKTUR APLIKASI MOBILE CLIENT-SERVER? Terdapat 36 Kemungkinan Kombinasi dari pilihan: Client : Layer 0/1/2/3) Server : Tier 1/2/3) Konektivitas : TerusMenerus/Parsial/Never (Table 3-1)
Mana Arsitektur yang relatif SEDERHANA tetapi HANDAL? Layer 0, Tier-3, Terkoneksi terus-menerus DB Server (DBMS) PRESENTATION server TerKONEKSI Terus hanya BROWSER APPLICATION server (Business & Data Access)
Mana Arsitektur yang IDEAL tetapi KOMPLEKS? Layer 3, Tier-3, Terkoneksi Parsial DB Server (DBMS) PRESENTATION server TerKONEKSI Parsial Diinstal APlikasi 1. Presentation (View/Form Interface) 2. Business (Perhitungan/Analisis) 3. Data Access (Model DBMS) APPLICATION server (Business & Data Access)
Bagaimana Kriteria Disain Arsitektur yang ideal ? Memenuhi Kebutuhan User Compatible/Independent secara teknologi Dapat digunakan kapan saja secara mudah dan handal Mudah dikembangkan (hardware/software) Dapat diakses sebanyak mungkin user