Pemrograman Internet Mobile Antonius R.C, S.Kom, M.Cs Web Database Definisi Mobile Web Database • Tempat penyimpanan (repositories) database atau informasi yang secara dinamis berinteraksi dengan halaman Mobile Web • Sebuah metode untuk menyimpan content WWW, dalam format terstruktur atau usable, yang terhubung baik secara statis maupun dinamis dengan database lain • Membantu komunikasi antara Web server dan Database.dan memungkinkan pemakai menerbitkan atau mengumpulkan informasi dari manapun Tujuan Mobile Web Database • Menyediakan jalan / cara remote access ke database server melalui browser di mobile • Menggabungkan web server (http) dan database server • Menggunakan semua metodologi mobile web design standard untuk menyediakan kemudahan pemakaian, front end GUI ke database Konsep Client - Server • Client/server secara sederhana dapat diartikan sebagai kemampuan sebuah komputer / device (client) untuk meminta data atau layanan ke komputer / device (server) lain • Komputer / device yang menerima permintaan data atau layanan ke komputer lain itu akan menanggapi permintaan tersebut dan mengirimkan data yang diminta ke komputer / device yang meminta layanan Arsitektur Client 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. HTTP • Hypertext Transport Protocol (RFC 1945) • Language of the Web – Protocol yang digunakan untuk komunikasi antara web browsers dan web servers – Since 1990 • TCP port 80 • Penyempurnaan HTTP 1.0 menjadi versi 1.1 dispesifikasikan oleh IETF dengan RFC 2616 • HTTP merupakan implementasi dari protokol TCP • Bersifat “Stateless” – Tidak ada informasi yang disimpan – Solusi? Cookies & Session HTTP (2) • HTTP bersifat request – response: – HTTP client (user agent misalnya) mengirimkan permintaan (request) ke HTTP server dan server meresponse sesuai request tersebut • User agent: Mozilla, Netscape, Microsoft Internet Explorer atau browser berbasis teks, Lynx atau links • Perbedaan mendasar antara HTTP/1.1 dengan HTTP/1.0 adalah penggunaan hubungan persistent. • HTTP/1.0 membuka satu koneksi untuk tiap permintaan URI – header = Connection: close • HTTP/1.1 dapat menggunakan sebuah koneksi TCP untuk beberapa permintaan URI (persistent) – header = Connection: Keep-Alive – kecuali jika client menyatakan tidak hendak menggunakan hubungan persistent (header = Connection: close). HTTP - methods • GET – retrieve a URL from the server • simple page request, limited • run a CGI program • run a CGI with arguments attached to the URL • POST – – – – preferred method for forms processing run a CGI program parameterized data in sysin more secure and private HTTP - methods • Methods (cont.) – HEAD • requests URLs status header only • used for conditional URL handling for performance enhancement schemes – retrieve URL only if not in local cache or date is more recent than cached copy – PUT • Upload file ke Server – DELETE • Delete file pada Server URL: www.someschool.edu/someDept/home.index Three way handshake : conn request, conn granted, ACK HTTP method syntax WHAT IS MYSQL • Free SQL (Structured Query Language) database server. • licensed with the GNU General public license http://www.gnu.org/ • MySQL is a database management system. • MySQL is a relational database management system. • MySQL is Open Source Software. • www.mysql.com Yahoo Futures - Databases http://buzz.research.yahoo.com Popular Technology Stacks LAMP J2EE .NET Java .net / C# Perl MySQL MySQL Apache Apache Tomcat JBoss Linux Linux or Solaris MySQL IIS Apache JBoss Windows Main Features of MySQL • Fully multi-threaded using kernel threads. • Works on many different platforms. • Many column types • Very fast joins using an optimized one-sweep multi-join • Full operator and function support in the SELECT and WHERE parts of queries. • You can mix tables from different databases in the same query. • A privilege and password system that is very flexible and secure. • Handles large databases. • Tested with a broad range of different compilers. (C/C++) • No memory leaks. • Full support for several different character sets. What’s New? Now GA! MySQL 5.0 Performance • • • • • Stored Procedures Cluster query push down Query optimizations Archive Engine InnoDB storage improvements Faster Reliability • • • • • • SQL Mode Triggers Views Precision Math Distributed Transactions Cluster object support Better Ease of Use • • • • Migration Toolkit Information Schema Cursors Enhanced GUI Tools Increased Manageability MySQL Performance: 5.0 vs. 4.1 MySQL Performance: 5.0 vs. Others MySQL Architecture How MySQL stores data (by default) • • • A MySQL server can store several databases Databases are stored as directories Tables are stored as files inside each database (directory) For each table, it has three files: 1. 2. 3. tablename.frm file containing information about the table structure — effectively, an internal representation of the CREATE TABLE statement. tablename.MYD file containing the row data tablename.MYI containing any indexes belonging with this table, as well as some statistics about the table. Connecting to the MySQL Server • SYNTAX: mysql -h host -u user -p << EXAMPLE >> C:\mysql\bin> mysql –h localhost –u root –p THE DEFAULT PASSWORD FOR ROOT IS BLANK !!! Changing “ROOT” password GET USER FIRST: C:\mysql\bin> mysql -u root mysql CHANGE PASSWORD SYNTAX: mysql> UPDATE user SET Password=PASSWORD('new_password') WHERE user='root'; mysql> FLUSH PRIVILEGES; DON NOT FORGET THE “ ; “ semi-colon Using MySQL in Interactive Mode • To view a list of all existing databases – mysql>SHOW databases; the default database after an install is mysql (Don’t Delete it!) To switch to (use) a database – mysql>USE mysql; • To view all tables in a database – mysql>SHOW tables; • To view the structure of one table – mysql>DESCRIBE host; NEXT