Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Entity–attribute–value model wikipedia , lookup
Oracle Database wikipedia , lookup
Extensible Storage Engine wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Relational model wikipedia , lookup
Functional Database Model wikipedia , lookup
Concurrency control wikipedia , lookup
Database model wikipedia , lookup
ICOM 5016 – Introduction to Database Systems Lecture 5 – Mobile Apps Development Dr. Manuel Rodriguez Martinez Department of Electrical and Computer Engineering University of Puerto Rico, Mayagüez Slides are adapted from: Database System Concepts, 6th Ed. ©Silberschatz, Korth and Sudarshan See www.db-book.com for conditions on re-use Objectives Describe the tradeoff associated with mobile apps Discuss the typical architecture used to organize these Show examples using jQuery Mobile Node.js Titanium Database System Concepts - 6th Edition 7.2 ©Silberschatz, Korth and Sudarshan References (if unfamiliar) HTML & HTML 5 http://www.w3schools.com/html/default.asp CSS & CSS 3 http://www.w3schools.com/css/default.asp Javascript http://www.w3schools.com/js/default.asp jQuery http://www.w3schools.com/jquery/default.asp JSON http://www.w3schools.com/json/ AJAX http://www.w3schools.com/ajax/default.asp REST http://rest.elkstein.org Database System Concepts - 6th Edition 7.3 ©Silberschatz, Korth and Sudarshan Web Apps Web sites and apps worked nice on desktop and laptop But they look terrible on mobile phones Database System Concepts - 6th Edition 7.4 ©Silberschatz, Korth and Sudarshan The Mobile Wave Mobile market – dominated by smartphones and tablets Smartphones sales overtook PC sales in 2010 IDC report: 100M smartphones vs. 92.1M PCs Smartphones and tablet : principal devices to access the Internet No more bad or diminished experience sites Many players as well 5 Database System Concepts - 6th Edition 7.5 ©Silberschatz, Korth and Sudarshan Open911: First responder M+C Solution To handle a crisis, first responders need spatiotemporal awareness Real-time data exchange Rich-data formats 6 Database System Concepts - 6th Edition 7.6 ©Silberschatz, Korth and Sudarshan Open911: Web App • M. RodriguezDatabase System Concepts - 6th Edition Martinez 2011 IEEE Cloud Talk 7.7 Command center view • Collect incident reports • Push reports to first responders • With instructions on what to do 7 ©Silberschatz, Korth and Sudarshan Open911: iPhone App First responder get notified of incident App looks good: using UI and APIs Email specific for mobile MMS or SMS Push notification Detailed information Address Map Photos, etc 8 Database System Concepts - 6th Edition 7.8 ©Silberschatz, Korth and Sudarshan Convergence of Factors Mobile Wave Cloud Computing Database System Concepts - 6th Edition 7.9 ©Silberschatz, Korth and Sudarshan Cloud Computing Cloud computing provides Massive amount of computing power Massive storage capacity All priced as a commodity Virtual Machines Applications & Services Storage Cloud M. RodriguezDatabase System Concepts - 6th Edition Martinez 10 7.10 ©Silberschatz, Korth and Sudarshan The Cloud Wave Market size: $148.8 billion by 2014 (Gartner) Exponential growth US Federal Government: Cloud First Policy Many players around: open source and proprietary 11 Database System Concepts - 6th Edition 7.11 ©Silberschatz, Korth and Sudarshan Cloud Service Models Infrastructure as a Service (IaaS) Access to servers, storage, networking solutions Platform as a Service (PaaS) Access to application development stacks that feature databases, web servers, applications servers, etc. Software as a Service (SaaS) Access to fully operational (“turnkey”) applications (e.g., Gmail, Office 365, Facebook) 12 Database System Concepts - 6th Edition 7.12 ©Silberschatz, Korth and Sudarshan IaaS cloud service model Low-level computational resources Deploy production systems (email, web, etc.) Build other valued-added solutions server machines HPC machines Virtual private network (VPN) 13 Database System Concepts - 6th Edition 7.13 ©Silberschatz, Korth and Sudarshan IaaS Products EC2 Cloud Computing Database System Concepts - 6th Edition Illustrated S3 Copyright © 2012, M. Rodriguez7.14 Martinez 14 ©Silberschatz, Korth and Sudarshan PaaS cloud service model Ready to use software development systems Integrates web, email, databases, file systems, programming tools, etc. Configured to work together with “no hassle” distributed file system u ser X identity management 15 Database System Concepts - 6th Edition 7.15 ©Silberschatz, Korth and Sudarshan PaaS Products Elastic Beanstalk 16 Database System Concepts - 6th Edition 7.16 ©Silberschatz, Korth and Sudarshan SaaS cloud service model Ready to use, fully functional application Accessed via web interface Nothing to install, simply “login and play” 17 Database System Concepts - 6th Edition 7.17 ©Silberschatz, Korth and Sudarshan SaaS Products 18 Database System Concepts - 6th Edition 7.18 ©Silberschatz, Korth and Sudarshan Mobile Plus Cloud Paradigm Cloud services consumed by firstVirtual Machines class mobile apps Applications Storage RESTful API/JSON data M. RodriguezDatabase System Concepts - 6th Edition Martinez 2011 IEEE Cloud Talk 7.19 19 ©Silberschatz, Korth and Sudarshan jQuery Mobile Framework to build mobile apps Uses HTML 5 – UI CSS – UI Javascript – content manipulation and communications jQuery – manipulation of UI Ajax - asynchronous JavaScript and XML for communications JSON – Java Script Object notation for data representation REST – Representational State Transfer : Restful Web Services for data persistence Database System Concepts - 6th Edition 7.20 ©Silberschatz, Korth and Sudarshan Sample App Database System Concepts - 6th Edition 7.21 ©Silberschatz, Korth and Sudarshan JSON Java Script Object notation for data representation The problem: UNIX, Windows, Linux, Mac: they all represent data types differently. How to exchange data? JSON: Represent object independent of platform: Person - { “id” : “123”, “name” : “Jose”, “lastname” : “Diaz”} Attribute names become keys Attribute values become type value API based on a map (remember your data structures …) You can know do things like: var P= { “name” : “Jose”, “lastname” : “Diaz”} P.name P.get(“name”) P.set(“name”, “joe”) Database System Concepts - 6th Edition 7.22 ©Silberschatz, Korth and Sudarshan REST Restful Web Services Key Idea: Data in the server can be accessed with URL! Ex: mycompany.com/humanresources/person/123 Fetched record for person 123 Response from server: {“Person”: { “id” : “123”, “name” : “Jose”, “lastname” : “Diaz”}} Map CRUD operations to web operations CRUD – Create, Read, Update, Delete Mapping Create new object – Use HTTP POST Read object – Use HTTP GET Update object – Use HTTP PUT Delete object – Use HTTP DELETE Database System Concepts - 6th Edition 7.23 ©Silberschatz, Korth and Sudarshan Summary Mobile Apps have become the most frequent client to get data out of Internet Database Resident on Internet Cloud Computing is riding a parallel wave Mobile apps often feed from cloud-resident databases and other data sources REST Most common method to interface client and backend servers Uses HTTP to specify CRUD operations Database System Concepts - 6th Edition 7.24 ©Silberschatz, Korth and Sudarshan