You are on page 1of 18

Smart Client

Just Make It Happen | Risman Adnan

3.1 Model Arsitektur Smart Client


Pertanyaan pertama yang muncul pada saat membaca judul pada bagian ini, mungkin seputar relasi antara pengembangan Windows Mobile dengan istilah Smart Client. Smart Client sendiri bukanlah teknologi yang hadir memfasilitasi pola kerja client, tetapi lebih berupa desain atau referensi arsitektur yang mengoptimalkan teknologi yang sudah ada demi kemudahan pengguna.

3.1.1 Konsep Smart Client


Secara definisi linguistik, smart client terdiri atas dua kata, yakni smart yang berarti cerdas, dan client yang dalam bahasa komputer dimaknai dengan suatu program komputer yang memiliki kemampuan untuk memanipulasi, mengelola, menjalankan sekumpulan fungsi, dan dapat meminta sekumpulan layanan aplikasi yang dimiliki server.

31

Smart Client mengombinasikan dua buah teknologi yang telah terlebih dahulu dikenal oleh para pengguna komputer, yakni Rich Client dan Thin Client. Rich Client adalah aplikasi standalone yang hadir semenjak dekade 90-an, sebagai contoh aplikasi ini adalah notepad. Sementara Thin client dikenal pada saat internet tengah berkembang, aplikasi Thin client pada umumnya disimpan di web server dan diakses melalui Web browser. Smart Client hadir dengan mengambil sisi baik dari masing-masing arsitektur aplikasi seperti yang digambarkan pada Gambar 3.1. Sebuah aplikasi dikatakan mengikuti arsitektur Smart Client bila memiliki beberapa karakteristik kemampuan berikut. Dapat terkoneksi dengan sumber daya luar, seperti jaringan internet, database server, hingga web services. Memiliki kemampuan bekerja offline dikala koneksi internet dalam keadaan terputus, termasuk di dalamnya kemampuan untuk melakukan sinkronisasi data pada saat kembali ke keadaan online. Memudahkan dalam instalasi, pengelolaan, dan pembaruan sistem. Smart Client hendaknya mengusung kemampuan deployment yang dinamis, seperti click once installation, automatic update, dan sebagainya. Tampilan antarmuka pengguna yang lebih fleksibel, performa yang responsif, dan mendukung operasi-operasi umum yang dimiliki sistem operasi, seperti drag-and-drop, undo-redo, dan sebagainya. Fleksibilitas peranti, Smart Client menekankan tingkat fleksibilitas yang khusus dispesifikkan untuk peranti tertentu, seperti notebook, pocket PC, tablet PC, mobile phone. Dengan demikian, aplikasi Smart Client dapat memanfaatkan teknologi yang khusus diimplementasikan pada peranti tersebut, seperti penggunaan touch pen, transcriber, speech recognation, dan sebagainya. Mendayagunakan secara optimal sumber daya sistem, Smart Client sentiasa menggunakan sumber daya lokal, seperti CPU

32

processing, media penyimpanan lokal, ataupun peranti input dan output seperti scanner atau printer. Sekuritas, Smart Client dapat memberikan suatu mekanisme sekuritas yang mencukupi dengan paradigma sekuritas berlapis.

Gambar 3.1 Relasi Smart Client, Thin Client, dan Thick Client

Lalu bagaimana cara menentukan sebuah aplikasi Windows dikatakan sebagai Smart Client? Berikut empat pertanyaan inti yang akan memberi kemudahan kita dalam menentukan apakah aplikasi yang kita kembangkan adalah Smart Client. Apakah aplikasi mendukung pembaruan sistem secara otomatis? Apakah aplikasi memiliki antarmuka pengguna yang kaya? Apakah aplikasi mendukung bekerja offline? Apakah aplikasi akan lebih berguna bila bekerja secara online?

Jika semua jawaban pertanyaan di atas adalah Ya, maka aplikasi yang kita kembangkan adalah Smart Client. 33

3.1.2 Jenis Smart Client


Secara umum terdapat tiga jenis Smart Client, yakni: Windows Smart Client Application, aplikasi Smart Client yang berjalan di atas sistem operasi Windows. Office Smart Client, aplikasi Smart Client yang menekankan pada produktivitas perkantoran di skala enterprise, seperti penggunaan Infopath, VSTO, smart tag, hingga xml based smart document. Mobile Smart Client, aplikasi Smart Client yang dikembangkan untuk pocket PC, Smartphones, dan peranti mobile dengan ukuran yang kecil lainnya.

Microsoft memberikan sekumpulan teknologi yang siap dikembangkan untuk ketiga jenis Smart Client di atas, di antaranya: Microsoft Office Technology, aplikasi perkantoran yang memberikan kemudahan kepada pengguna untuk bekerja secara cerdas, efisien, dan berkolaborasi. Microsoft Office bagi pengembang dapat dikatakan sebagai platform yang dapat dikembangkan untuk menghasilkan solusi costum yang familiar, konsisten, dan mengikuti format data standar XML. Windows Form Technology, bagian dari Microsoft .NET yang memungkinkan pengembang untuk mengembangkan aplikasi berbasis Windows secara lebih mudah, memiliki tanggapan yang baik, serta memiliki sekumpulan reusable library, mulai dari antarmuka pengguna, pembuatan laporan, pencetakan, konektivitas data yang siap pakai. .NET Compact Framework, mendukung pengembangan aplikasi untuk mobile secara lebih mudah dengan bantuan .NET Compact Framework SDK dan Visual Studio 2008.

3.1.3 Smart Client pada Windows Mobile


Windows Mobile memiliki sekumpulan cara untuk mengoneksikan diri terhadap jaringan seperti internet. Konektivitas melalui internet pada windows mobile pada umumnya dilakukan melalui:

34

Koneksi internet melalui jaringan GPRS/3G. Koneksi internet melalui jaringan nirkabel WIFI. Koneksi internet melalui WMDC atau Activesync.

Berbagai koneksi tersebut tentu tidak menjamin bahwa Windows Mobile dapat selalu terkoneksi. Sebagai contoh, bayangkan apabila pengguna menggunakan aplikasi Windows Mobile di pesawat dan pengguna harus mengerjakan pekerjaan, seperti memperbarui stok barang dan membuat laporan dengan Excel mobile. Terdapat sekumpulan data yang harus diambil melalui sumber data (dalam hal ini server) dan terdapat sekumpulan data yang dapat dioperasikan secara offline. Alangkah baiknya terdapat sebuah aplikasi yang dapat digunakan secara offline dan online, dan pada hal ini Smart Client menjadi bermanfaat. Pada Windows Mobile pengembang dapat melakukan beberapa perilaku aplikasi sehingga dapat bekerja layaknya Smart Client. Beberapa konsepnya dikemukakan sebagai berikut. Akses web services. Windows Mobile dapat berkomunikasi dengan protokol web, hal ini memungkinkan Windows Mobile dapat mengutilasi pengaksesan web services, atau bahkan .NET Compact framework mendukung pemanggilan WCF. Konsep ini akan dibahas lebih lanjut pada bagian pengembangan Web Services. Pembaruan otomatis, pada Windows Mobile. Konsep ini dilakukan dengan memanfaatkan kemampuan akses internet pada perangkat Windows Mobile. Pada dasarnya langkah-langkahnya sebagai berikut: Aplikasi akan melakukan pemeriksaan ke sebuah server pembaruan. Aplikasi akan mencocokkan data versi yang tengah berjalan dengan berkas metadata aplikasi yang terdapat pada server. Apabila ditemukan versi terbaru, maka aplikasi akan mendownload aplikasi versi terbaru atas izin pengguna.

35

Pada saat aplikasi dimatikan, aplikasi akan melakukan konsep pembaruan, yang pada intinya aplikasi akan menghapus versi terdahulu lalu menggantikannya dengan versi terbaru. Pada saat aplikasi dieksekusi kembali, maka aplikasi yang dieksekusi adalah yang terbaru. Sinkronisasi data offline-online. Windows mobile memiliki dukungan basisdata yang mendukung skenario onlineoffline. SQL Server Compact Edition memiliki konsep data sinkronisasi dengan basisdata SQL Server.

Pada bagian berikutnya dan seterusnya pada buku ini akan dikembangkan salah satu aplikasi sederhana yang akan menjadi studi kasus pengembangan aplikasi berarsitektur Smart Client. Aplikasi yang akan dinamakan dengan nama SmartProject ini akan menggunakan beberapa skenario Smart Client di atas dengan pendekatan yang sederhana dan mudah diterapkan.

3.2 Studi Kasus Aplikasi Smart Client


3.2.1 Aplikasi SmartProject
Aplikasi SmartProject adalah aplikasi manajemen dana proyek yang dibangun dengan arsitektur Smart Client dan diimplementasikan pada platform Windows Mobile. Aplikasi SmartProject memiliki fiturfitur sebagai berikut. Perekaman informasi dana proyek yang meliputi nama klien, jumlah dana proyek, deskripsi proyek, deadline proyek, hingga nomor pembayaran klien (client payment order). Reminder atau notifikasi proyek yang tengah berlangsung. Notifikasi sms kepada klien berdasar pada proyek yang tengah berlangsung. Sinkronisasi informasi proyek yang akan dikirimkan ke web services. Rangkuman omset project yang diterima per bulan.

36

Fitur-fitur tersebut akan dipetakan dan dibahas pada masing-masing bab di buku ini berdasar pada teknologi yang dipakai pada fitur yang bersangkutan.

3.2.2 Arsitektur Deployment Aplikasi SmartProject


Aplikasi SmartProject seperti aplikasi pada umumnya menggunakan teknologi client server yang memanfaatkan pada middleware web services dalam berkomunikasi dengan basisdata. Gambar berikut menggambarkan deployment view pada aplikasi yang bersangkutan.

Gambar 3.2 Arsitektur aplikasi SmartProject

3.2.3 Skenario Aplikasi SmartProject


Skenario aplikasi SmartProject digambarkan dalam beberapa skenario, yakni: Skenario penyimpanan informasi proyek ke perangkat Windows Mobile. Skenario sinkronisasi informasi proyek ke web services. Skenario pembuatan laporan omset proyek. Skenario pembangkitan notifikasi pada klien berupa sms atau email. Skenario pembangkitan pengingat (reminder) terhadap proyek. 37

Skenario-skenario di atas diungkapkan dalam sekumpulan skenario use case. Bagian ini menjadi bagian yang esensi dalam pengembangan aplikasi karena berisi proses bisnis aplikasi. Skenarioskenario aplikasi diungkapkan sebagai berikut. Skenario Penyimpanan informasi Proyek Skenario Dasar: 1. Pengguna membuka aplikasi SmartProject. 2. Pengguna mengisikan sekumpulan informasi sebagai berikut: a. Nama proyek ditulis pada textbox. b. Deskripsi Proyek ditulis pada textbox yang memiliki baris multi. c. Nama Klien diambil dari halaman kontak pada Windows Mobile. d. Tanggal Mulai dipilih dari formulir pilihan tanggal dan waktu. e. Tanggal Berakhir dipilih dari formulir pilihan tanggal dan waktu. f. Besarnya sokongan dana.

g. Checkbox reminder dan notifikasi. 3. Pengguna mengonfirmasi informasi dan menyimpannya ke aplikasi. 4. Aplikasi akan menyimpan informasi tersebut ke basisdata pada Windows Mobile. Skenario Alternatif Perubahan Informasi Proyek: 1. Pengguna membuka aplikasi SmartProject 2. Pengguna memilih menu Kelola Proyek. 3. Aplikasi akan menampilkan daftar proyek yang aktif. 4. Pengguna dapat menghapus proyek atau mensinkronisasi daftar proyek melalui layanan web. Skenario sinkronisasi dengan layanan web dijelaskan secara terpisah. 5. Pengguna mengonfirmasi perubahan yang terjadi. 38

Skenario Alternatif Kegagalan Operasi Penyimpanan Proyek: 1. Aplikasi akan menampilkan eksepsi aplikasi dan meminta pengguna mengirimkan umpan balik pada pengguna. Sinkronisasi Proyek melalui Layanan Web Skenario Dasar: 1. Pengguna memilih menu kelola proyek. 2. Pengguna memilih menu sinkronisasi 3. Aplikasi akan menghubungi web services. 4. Web services akan membaca data dari web services kemudian mengirimkannya ke aplikasi. 5. Aplikasi akan memanggil dan melakukan pembaruan list proyek. Skenario Alternatif Kegagalan Operasi Sinkronisasi Proyek: 1. Aplikasi akan menampilkan eksepsi aplikasi dan meminta pengguna mengirimkan umpan balik pada pengguna. Sinkronisasi Pembuatan Laporan Omset Proyek Skenario Dasar: 1. Pengguna memilih menu laporan. 2. Aplikasi akan menampilkan dialog laporan. 3. Pengguna memilih opsi laporan. a. Laporan umum proyek b. Laporan berdasar klien 4. Aplikasi membangkitkan laporan berdasarkan pilihan pengguna. 5. Aplikasi akan membangkitkan laporan omset proyek berdasar bulan atau nama klien.

39

Skenario Alternatif Kegagalan Operasi Pembuatan Laporan: 1. Aplikasi akan menampilkan eksepsi aplikasi dan meminta pengguna mengirimkan umpan balik pada pengguna. Skenario Pembangkit Notifikasi Skenario Dasar: 1. Berdasar pada skenario kelola proyek, pengguna memilih menu kirim notifikasi. 2. Aplikasi akan membuatkan item sms/email untuk pembuatan notifikasi berdasar pada: a. Isi sms didasarkan pada nama proyek, deksripsi proyek, dan jumlah yang dibebankan pada klien. b. Notifikasi diset dikirimkan berdasar pada akhir proyek. Skenario Alternatif Kegagalan Pembuatan Reminder Laporan: 1. Aplikasi akan menampilkan eksepsi aplikasi dan meminta pengguna mengirimkan umpan balik pada pengguna. Skenario Pembangkit Reminder Skenario Dasar: 1. Berdasar pada skenario penyimpanan informasi proyek pengguna dapat mengeset reminder. 2. Aplikasi akan membuatkan item task untuk pembuatan notifikasi berdasar pada: a. Nama Task didasarkan pada nama proyek. b. Durasi didasarkan pada durasi proyek. c. Reminder diset berdasar tiga hari proyek setelah berjalan. Skenario Alternatif Kegagalan Pembuatan Reminder Laporan: 1. Aplikasi akan menampilkan eksepsi aplikasi dan meminta pengguna mengirimkan umpan balik pada pengguna.

40

Berdasar pada sekumpulan skenario di atas, diharapkan pembaca dapat paham kemampuan aplikasi yang akan dikembangkan di babbab berikutnya. Pembaca dapat memperjelas skenario kerja aplikasi ini dengan membuat diagram, seperti use case diagram dan activity diagram. Diagram-diagram ini dapat dikembangkan lebih lanjut oleh pembaca, namun pembuatannya di luar konteks pada buku ini.

3.2.4 Teknologi Dibalik Aplikasi SmartProject


Pada pengembangan aplikasi ini, penulis menggunakan sekumpulan perangkat bantu dan teknologi seperti pada tabel berikut.
Teknologi/Perangkat Bantu Windows Form ADO.NET Web Services Compact Framework 3.5 Deskripsi Pembuatan antarmuka klien Windows Mobile Akses data di web services dan pada klien Windows Mobile Aplikasi web yang memfasilitasi pertukaran data antara Windows Mobile klien dan basisdata Sekumpulan pustaka pemograman yang memungkinkan platform Windows mobile dapat dilakukan dengan lebih produktif dengan bahasa seperti C# dan VB Produk basisdata buatan Microsoft yang mendukung kemudahan dalam pembuatan basisdata dan dukungan akses data yang memadai Dukungan basisdata SQL Server untuk perangkat Windows Mobile Perangkat bantu ini membantu pengembang dalam membuat basisdata SQL Server lebih mudah dan menyenangkan

SQL Server Express 2005

SQL Server Edition 3.5

Compact

SQL Management Studio Express

Pada pembuatan aplikasi ini, penulis menggunakan Visual Studio 2008 walaupun secara konseptual hal yang sama juga dapat dilakukan dengan perangkat bantu Visual Studio 2008.

41

3.3 Perancangan Data Aplikasi Smart Client


Pada bagian ini akan dikembangkan basisdata yang akan digunakan oleh aplikasi SmartProject untuk menyimpan dan mengelola data. Terdapat dua buah basisdata yang akan dikembangkan, yakni sebuah basisdata compact edition yang akan dikonsumsi oleh aplikasi Windows Mobile, dan sebuah basisdata yang akan dikonsumsi oleh web services. Kedua basisdata tersebut pada intinya memiliki kesamaan dari sisi kolom dan juga isinya, hal tersebut karena keduanya akan saling bersinkronisasi dari sisi penggunaan. Langkah-langkah berikut menggambarkan proses pembuatan basisdata pada SQL Server melalui bantuan SQL Server Express Management Studio. 1. Buka Management Studio Express. 2. Login ke basisdata Authentication. SQL Server, pilih opsi Windows

Gambar 3.3 Dialog Login SQL Server

3. Pada Object Explorer buat sebuah basisdata dengan cara memilih konteks menu pada databases kemudian memilih New Database.

42

Gambar 3.4 Pembuatan Basisdata

4. Pada dialog new database beri nama basisdata dengan nama ProjectDb.

Gambar 3.5 Dialog New Database

5. Berkas ProjectDb akan dibuat dan secara default akan disimpan pada tempat instalasi SQL Server yang bersangkutan pada folder //data. 6. Langkah berikutnya adalah membuat tabel. Tabel dapat dibuat dengan memilih database ProjectDb > memilih konteks menu > new table. 7. Tabel berikut menggambarkan kolom-kolom yang menyusun pada tabel baru yang dibuat dengan nama tabel Project.

43

Nama Kolom ProjectID nama detail klienID tanggalMulai tanggalFin Selesai nomorPO budget

Tipe Data Uniqueidentifier, PK nvarchar(50) nvarchar(MAX) Int. FK Datetime Datetime Bit Nchar(10) money

8. Tabel berikut menggambarkan kolom yang digunakan untuk menyusun tabel dengan nama tabel Klien.
Nama Kolom klienID namaKlien nomorKlien Tipe Data int, PK nvarchar(50) nvarchar(50)

9. Tabel Project memiliki primary key ProjectID, sementara tabel Klien memiliki primary key KlienID. Pengesetan primary key dapat dilakukan dengan memilih kolom yang hendak dijadikan primary key, kemudian memilih konteks menu dan memilih set primary key seperti pada gambar berikut.

Gambar 3.6 Konteks menu pengesetan primary key

44

10. Sementara untuk membuat Foreign Key, hal ini dapat dilakukan lebih mudah menggunakan mode diagram. Mode diagram dapat dibangkitkan dengan memilih folder Database Diagrams pada Object Explorer. Lakukan penambahan tabel yang hendak dilibatkan kemudian, drag and drop garis dari kolom yang hendak di-foreign-kan dengan kolom induk yang digunakan. Mekanisme drag and drop tersebut akan menampilkan dialog relationship yang memetakan dua kolom sebagai berikut.

Gambar 3.7 Pengesetan Foreign Key

11. Hasil akhir langkah-langkah ini akan menghasilkan suatu basisdata dengan nama ProjectDB yang memiliki perancangan seba-gai berikut.

Gambar 3.8 Rancangan basisdata ProjectDB

Basisdata di atas akan dikonsumsi oleh web services. Basisdata yang akan dikonsumsi langsung oleh klien Windows Mobile akan mirip dengan rancangan basisdata di atas. Yang membedakan hanya beberapa batasan ukuran rekaman yang didukung pada SQL Server Compact Edition. Pembuatan basisdata pada SQL Server Compact 45

Edition akan dibahas dalam bab yang terpisah pada bagian akses basisdata dengan ADO.NET.

3.4 Pembuatan Stored Procedures Basisdata


Basidata yang telah dibuat tentu akan dimanipulasi oleh program. Terdapat berbagai cara akses basisdata yang dapat dilakukan oleh program yang menggunakan teknologi .NET. Salah satu teknologi yang diyakini efisien dalam melakukan akses manipulasi basisdata dengan SQL adalah menggunakan stored procedures (SP). SP adalah salah satu pendekatan manipulasi basidata yang membungkus komunikasi manipulasi basisdata dalam bentuk SQL (structured query language) dalam sebuah berkas khusus yang diletakkan dan dieksekusi di server. Stored Procedures banyak digunakan karena memberikan banyak keuntungan, di antaranya: Penyimpanan logika manipulasi dan eksekusi SQL dalam sebuah berkas yang tersentralisasi pada server. Dukungan eksekusi perintah yang lebih efisien karena dieksekusi di server dengan pemicu yang efisien dari sisi pengiriman perintah. Dukungan keamanan yang lebih baik dari SQL injection. Stored procedures dieksekusi tidak menggunakan pernyataan SQL, tetapi dieksekusi dengan pendekatan programatis sehingga lebih aman dari SQL injection.

Aplikasi SmartProject akan memanfaatkan stored procedures dalam komunikasi dan akses basisdata. Untuk melakukannya, berikut langkah-langkahnya. 1. Pada object explorer, pilih basisdata ProjectDB, pilih konteks menu kemudian pilih new query. 2. Jendela query akan tampil dan ketikkan kode stored procedures untuk memudahkan pembaca dalam melakukan pengetikan stored procedures. Penulis telah siapkan skrip ProjectDB-SP.sql. Skrip tersebut berisi sekumpulan stored procedures yang siap

46

pakai yang terkait dengan basisdata ProjectDB yang dapat didownload pada situs penulis. 3. Pengeksekusian berkas sql tersebut dapat dilakukan dengan memilih menu File > Open > pilih berkas SQL > pilih drop-down list sehingga terpilih ProjectDB > kemudian eksekusi dengan menekan tombol execute (tanda seru/!) seperti pada gambar berikut.

Gambar 3.9 Toolbar eksekusi script

4. Hasil eksekusi dua skrip tersebut adalah menghasilkan berkasberkas stored procedures yang dapat dilihat pada folder Programmability > Stored Procedures. Seperti pada gambar berikut.

Gambar 3.10 Daftar Stored Procedures pada ProjectDB

5. Stored procedures tersebut dapat dieksekusi menggunakan perintah exec [nilaiparameter]. Sebagai contoh, mengeksekusi stored procedures usp_KlienSelect dengan nilai parameter pertama adalah null dilakukan dengan cara sebagai berikut.
exec [dbo].[usp_KlienSelect] null;

6. Perintah Exec tersebut dapat dilakukan di SQL Server Management Studio query atau dilakukan melalui pendekatan pemrograman dengan ADO.NET. Perintah exec mengutilasi penggunaan skrip teks. Pada bab berikutnya akan dijelaskan

47

bagaimana mengeksekusi stored procedures dengan rutin ADO.net.

3.5 Referensi Lebih Lanjut


Pada bagian ini kita telah membahas salah satu pendekatan pengembangan klien Windows Mobile menggunakan arsitektur Smart Client. Pembahasan diawali dengan definisi Smart Client dan dilanjutkan dengan perancangan basisdata yang akan digunakan pada pembuatan aplikasi sederhana yang mengadopsi arsitektur Smart Client. Berbagai informasi lebih lanjut tentang Smart Client dan hal yang terkait pada pambahasan bab ini dapat diakses di: Smart Client | http://msdn.microsoft.com/smartclient MSDN SQL Server | http://go.microsoft.com/fwlink/?LinkId=42457 Design WM Wiki | http://go.microsoft.com/fwlink/?LinkId=76514

Pada bab berikutnya akan difokuskan pengembangan antarmuka klien Windows Mobile pada studi kasus aplikasi SmartProject dengan memanfaatkan teknologi Windows Form di .NET Compact Framework.

48

You might also like