1 Dynamic Wireless Application Development with Open Source and Java Keith Bigelow Lutris Technologies.

Slides:



Advertisements
Similar presentations
Connecting to Databases. relational databases tables and relations accessed using SQL database -specific functionality –transaction processing commit.
Advertisements

OneBridge Mobile Data Suite Product Positioning. Target Plays IT-driven enterprise mobility initiatives Extensive support for integration into existing.
CS 4720 Mobile Device Architecture CS 4720 – Web & Mobile Systems.
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
WMC  “Web standards” can refer to the actual specification of how a language or technology works.  An industry standards body, such as the.
J2ME Web Services Specification.  With the promise to ease interoperability and allow for large scale software collaboration over the Internet by offering.
Chapter Concepts Review Markup Languages
The State of the Art in VoiceXML Chetan Sharma, MS Graduate Student School of CSIS, Pace University.
MultiPlatform Applications Module. Agneda for today Areas to be covered Assessment for the module Agenda for the module timetable Procatical sessions.
© 2010, Robert K. Moniot Chapter 1 Introduction to Computers and the Internet 1.
Wireless Application Protocol and i-Mode By Sridevi Madduri Swetha Kucherlapati Sharrmila Jeyachandran.
Wireless Application Protocol John Bollen MBA 651.
© 2009 Research In Motion Limited Methods of application development for mobile devices.
J2ME Prepared by: - Gaery- Ronny - Alan- Andy. Why Technology for Mobile Devices? The nature of wireless devices is changing Old devices: All the software.
Wireless LAN Topology Visualiser Project Supervisor: Dr Arkady Zaslavsky Project Team Members: Jignesh Rambhia Robert Mark Bram Tejas Magia.
Beyond WAP By Zhongyin J. Daye Han-Chung Lee. Agenda Introduction –WAP Protocol Stack –Future Wireless Environment –Problem Facing WAP Application Layer.
I-mode Revolutionary Wireless Internet Technology Marc Lisevich Bryan Kwan Jay Hoang.
The 21th century Repairman Agenda Introduction J2EE J2ME Demonstration.
Page 1 Building Reliable Component-based Systems Chapter 18 - A Framework for Integrating Business Applications Chapter 18 A Framework for Integrating.
WAP: Wireless Application Protocol Mike Mc Ardle ACSG April, 2005.
October 16, 2007HighEdWebDev2007 Single Source Website for Full Spectrum Access Rick Ells University of Washington
Computer Science 101 Web Access to Databases Overview of Web Access to Databases.
Mgt 240 Lecture Website Construction: Software and Language Alternatives March 29, 2005.
J2ME and WAP Technologies CSCI – Independent Study Fall 2002 Presented by: Kashif Syed.
Web Design Basic Concepts.
Android Introduction Platform Overview.
Programming mobile devices Part II Programming Symbian devices with Symbian C++
An Introduction to WAP/WML. What is WAP? WAP stands for Wireless Application Protocol. WAP is for handheld devices such as mobile phones. WAP is designed.
INTRODUCTION TO WEB DATABASE PROGRAMMING
EWD VistA Update 2010 Rob Tweed M/Gateway Developments Ltd.
1 Networks and the Internet A network is a structure linking computers together for the purpose of sharing resources such as printers and files Users typically.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Principles of Computer Security: CompTIA Security + ® and Beyond, Third Edition © 2012 Principles of Computer Security: CompTIA Security+ ® and Beyond,
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Internet Basics Dr. Norm Friesen June 22, Questions What is the Internet? What is the Web? How are they different? How do they work? How do they.
1 XML at a neighborhood university near you Innovation 2005 September 16, 2005 Kwok-Bun Yue University of Houston-Clear Lake.
CIS 375—Web App Dev II Microsoft’s.NET. 2 Introduction to.NET Steve Ballmer (January 2000): Steve Ballmer "Delivering an Internet-based platform of Next.
Mobile Applications with Java ME & BlackBerry. Overview Java ME –Networking –Databases Java ME and the BlackBerry –The BlackBerry wireless device –Converting.
WAP (Wireless Application Protocol). W – World W – Wide W -- Web W – World W – Wide W – Wireless W -- Web The Two Paradigms.
11/16/2012ISC329 Isabelle Bichindaritz1 Web Database Application Development.
DP&NM Lab. POSTECH, Korea - 1 -Interaction Translation Methods for XML/SNMP Gateway Interaction Translation Methods for XML/SNMP Gateway Using XML Technologies.
Small Devices on DBGlobe System George Samaras Chara Skouteli.
Mobile Software Development Technologies In the name of Allah By : Hedayat Allah Kamalian (
Framework and application bytecode size CLDC MIDP kXML parser Utility classes Graphics Logic (MIDlet) Application Data (XML file)
Computer Science Wi-Fi App using J2ME and MVC Architecture Advisor : Dr. Chung-E Wang Department of Computer Science Sacramento State University Date:
第十四章 J2EE 入门 Introduction What is J2EE ?
WWW Programming Model. WWW Model The Internet WWW architecture provides a flexible and powerful programming model. Applications and content are presented.
J2ME Presented by May Sayed & Menna Hawash. Outline Introduction “Java Technology” Introduction “What is J2ME?” J2ME Architecture J2ME Core Concepts 
CIS 1310 – HTML & CSS 1 Introduction to the Internet.
Martin Schmidt / The Silent Revolution Mobile Java.
Intro to XML Originally Presented by Clifford Lemoine Modified by Box.
WEB BASED DATA TRANSFORMATION USING XML, JAVA Group members: Darius Balarashti & Matt Smith.
1 Seminar Presentation On I-mode – The Wireless Revolution Seminar Presentation On I-mode – The Wireless Revolution Under the guidance of Mr B.S. Chordia.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
XML and Its Applications Ben Y. Zhao, CS294-7 Spring 1999.
S imple O bject A ccess P rotocol Karthikeyan Chandrasekaran & Nandakumar Padmanabhan.
JS (Java Servlets). Internet evolution [1] The internet Internet started of as a static content dispersal and delivery mechanism, where files residing.
Tutorial 1 Developing a Basic Web Page. Objectives Learn the history of the Web and HTML Describe HTML standards and specifications Understand HTML elements.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
WWW Programming Model. WWW Model The Internet WWW architecture provides a flexible and powerful programming model. Applications and content are presented.
Introduction to Mobile Applications. Wireless Applications Personal Time and KnowledgeManagemnt Personal Health & Security PersonalNavigation Remote Monitoring.
Web Services Using Visual.NET By Kevin Tse. Agenda What are Web Services and Why are they Useful ? SOAP vs CORBA Goals of the Web Service Project Proposed.
Business Applications– Using Java _____ Presented by Priya Saha.
Network Infrastructure Services Supporting WAP Clients
What is WWW? The term WWW refers to the World Wide Web or simply the Web. The World Wide Web consists of all the public Web sites connected to the Internet.
Wireless Instant Messaging Using J2ME
Revolutionary Wireless Internet Technology
By Zhongyin J. Daye Han-Chung Lee
JavaServer Faces: The Fundamentals
Presentation transcript:

1 Dynamic Wireless Application Development with Open Source and Java Keith Bigelow Lutris Technologies

2 Agenda Introduction to wireless platforms Quick comparison/contrast Suggested pros/cons Sample application that targets all

3 Wireless Internet WAN/LAN WAP HDML & WML Handheld Dynamic Markup Language WML Wireless Markup Language i-mode (PDC-P) cHTML Compact Hypertext Markup Language CDPD, Mobitex, DataTAC, WAP USA ECJapan PROTOCOL PRESENTATION J2ME MIDlet GUI Components any

4 What Protocols are Used Where? imode: 60% of the world's wireless internet users WAP: 39% of the world's wireless internet users PALM: 1% of the world's wireless internet users November 2000 – Source: Eurotechnology Japan KK

5 Introduction to WML/WAP WAP Forum originally alliance of carriers & handset manufacturers, promising uniformity of deployment WML Derived from Phone.com’s HDML –HDML not XML nor HTML-based, but offers the best likelihood of success in the USA WML is an XML language, excellent benefits –Documents can be forced to be valid & well-formed –Can be dynamically generated according to DTD WAP incorporates its own scripting language, security stack, etc. –Optimized for network constraints [cards, decks, compiled] –Bearer independent [works on circuit & packet switched networks] WAP in USA & Europe is far more limited than WAP in Japan

6 Introduction to I-mode A presentation language, a protocol, and a carrier all in one NTT has a near monopoly [3x closest competitor, 29mm] Packet Network – 9.6kbs [384kbs begin 05/01], always on Accessibility to I-mode applications: –Official providers - ‘gated garden’ – right to charge - ~1,000 9/00 –Unofficial providers – exploring right to charge - ~36k as of 11/00 Devices are RIGIDLY enforced to I-mode specs –NTT sets the standards, the handset manufacturers comply –Guaranteed 16 chars [8 double-byte chars] by 6 lines –GIF file format support [87, 87a, 89a formats; 94 x 72 dots] –i-mode compatible HTML 2.0 [502i series devices] support superset of HTML 1.0 of 501i devices (forward compatible). Because there are no gateways, the phones have an IP stack, and most offer SSL / TLS support

7 Introduction to J2ME The smallest of the Java continuum –J2ME -> J2SE -> J2EE Targeting mobile devices, runtime of equivalent size to WAP 2.0 / imode 3.0 browser stacks –Devices need 1-2MB min RAM –400k stack, room for MIDlets MIDlets installed via a Palm-like synchronization –Dynamic install in future releases MIDlets offer persistence, capacity to use apps offline –Cost benefits, Coverage benefits, etc. Licensing of J2ME requires passing compatibility test suite

8 Pros/Cons of WAP and WML Pros –2 nd largest global penetration to end users, ubiquity in Europe, not USA –Carrier and handset independent – 500 members in WAPforum –Provides light-weight scripting language –Likely to be moving toward XHTML-basic in v. 2.0 [not yet committed] Cons –Geoworks Patent – all providers must currently pay royalties –Gateway required [transcoding occurs, unpredictably between vendors] –Difficult debugging [browser & server implementations vary] –No compatibility tests to ensure common deployment environment –Security hole between WAP and Web [fixed in WAP 2.0 in Q3/01] –1k page size, nominal graphics, no color [except Japan!] –Language not scaleable [no easy path to HTML until v2.0] –Language not open [no W3C spec], no push [fixed in v 2.0] –Language not consistently implemented – especially USA –Existing HTML sites must be rewritten, code optimized per device

9 Pros/Cons of I-mode & CHTML Pros – Strongest WW penetration – 18mm subscribers, 26,000+ sites – Revenue sharing [monthly only, 300 yen max, 9% fee], per packet fees – Location-aware today [provided only to gov’t agencies] – Language is scaleable: HTML and cHTML use existing web-based tools. –Packet Network means push and pull, today –Moving to XHTML-basic in I-mode 3.0, Q2/01 –Large 5k per page capability (<2K recommended) Color support, animated GIF support on 502i color models –Gateway / Security / VPN– no gateway required, https supported –I-Appli, released 01/26/01, supports MIDlets & full https support Cons –Led and directed by a dictatorship –I-mode is only by NTT DoCoMo [roaming now in Africa/EC/ AT&T,etc.] –No scripting language like WMLScript, i-mode limited to 500 bytes –cHTML a proposed W3C standard, but really controlled by I-mode

10 Pros/Cons of J2ME Pros –Security [supports https protocol for e2e security] –No gateways [lower costs, simpler testing, etc.] –MIDlet GUI offers uniform behavior across devices –Adopted by handset manufacturers and carriers globally –MIDlet GUI components familiar to Swing developers Cons –No penetration: devices just released in 02/01 –Security: in this release, handset mfgr has option to NOT do SSL –Existing HTML sites/solutions must be re-written [same as WAP] –Extremely limited GUI components [2 GUIs, simple and gaming] –Installation overhead MIDlet must be installed Dynamic download in future, available in Japan today –Requires different designer for UI, as HTML designers are of zero value in developing presentations

11 Comparing and Contrasting the Platforms One Sample app that serves all languages 4 presentations [HTML, WAP, i-mode, J2ME] Easily extensible to your own types of query based applications

12 Why Open Source for the Sample? Because Proprietary Wireless is dead –HDML => WML => XHTML-basic [W3C] –cHTML => XHTML-basic [W3C] –VoxML => VoiceXML 1.0 [W3C] Community, Control, Cost & Quality. –Forte for Java IDE – 675K downloads in 1 year [integrated with J2ME toolkit] –Enhydra, #1 Java/XML Open Source Application Server Excellent wireless support 140,000+ Downloads 100s of thousands of copies distributed by SCO, HP, SUN, RedHat –InstantDB – all Java RDBMS with JDBC 2 10s of thousands of downloads Used by IBM, Nortel, Allaire and others –kXML – all Java XML parser for the KVM/J2ME platform

13 Simple Tutorial – An Address Book Open Source, so share it! Orig Contributors Victor, Keith, Joe, & Robert Easily extensible for other needs Local restaurants [query by city & type] Local movies [query by city & time] Your UPS package [query by name & ID] Sample Application –Phone Book – retrieve contact information –Supports 4 client types HTML – web browser WML – WAP phone browser XML – J2ME client application cHTML – imode browser –Demonstrates how device independence is implemented –Demonstrates adding a J2ME client to an existing application

14 Our Sample, Everywhere HTML J2ME CHTML WAP

15 High Level Address Book Architecture Enhydra Application Server A Servlet with Presentation/Business/Data layers J2ME DeviceWeb PC InstantDB XML User Interface: HTML Resident Software: Browser User Interface: J2ME GUI components Resident Software: KVM, MIDlet (which embeds kXML) JDBC cHTMLWML HTML Gateway

16 Sample Application Structure Unlike HTML & WML clients, J2ME clients receive XML data streams from the application server. The XML is parsed by kXML, and displayed using the MIDp GUI components

17 The Presentation Layer Detects incoming client type Requires the developer to create unique presentations for each presentation technology –WML –cHTML –HTML –J2ME/MIDp Po BoDo

18 The Business Layer Focus on business logic at this level –Decision making processes happen here. –Main workflow is clear in this layer. –The ‘meat’ of the application Resist temptation to put any presentation or data specific code into this layer. Po Bo Do

19 The Data Layer DODS (Data Object Design Studio) is an open source GUI tool for Object to Relational mapping. – Use DODS to create data objects (DOs) to encapsulate access to the database The value of DODS is in removing specific database dependencies from your core app, makes porting easier. DOs access the data base (in the sample, InstantDB) Focus on persistence and storage at this layer Great introduction to DODS at: PoBo Do

20 4 Principles For Device Independence Device specific templates. Common XMLC API. Template selection mechanism. Generic DOM template manipulation.

21 Device Specific Templates HTML – Details.html... Johh Doe Position: President Phone: Fax: WML – Details.wml... John Doe Position: President Phone: Fax: Continued... XML - Details.xml... John Doe President cHTML – Details.chtml... John Doe Position: President Phone: Fax:

22 Device Specific Templates (Cont.) XML - Details.xml... Hal President sample.dtd...

23 XMLC Key Elements XML – more than just portable data –Most Dialects defined by W3C –Foundation for evolving standards, e.g. XHTML, VXML, WML, CML) DOM – Document Object Model –Defined by W3C –How a program stores an XML/HTML document in memory –A hierarchical representation of an XML/HTML document as represented in a software programming language, e.g. Java –Library for traversing, pruning, accessing portions of the DOM “tree” XML Parser (from Apache Xerces Project) –Translating an XML text file into a Java DOM tree in memory. Net Result –presentation templates with id tags for dynamic elements are compiled to Java and become a resource to the application server

24 Define a Common XMLC API DetailsPage.java public interface DetailsPage extends XMLObject { public Element getTagPerson(); public Element getTagName(); public Element getTagPosition(); public Element getTagPhone(); public Element getTagFax(); public void setTextName(String name); public void setTextPosition(String position); public void setTextPhone(String phone); public void setTextFax(String fax); }

25 Template Selection Mechanism BasePO.java – all other POs extend BasePO public String getPageName(HttpPresentationComms comms, String poName) {... try { if ((header = comms.request.getHeader("Accept")) == null) { return null; } else if (header.indexOf("text/xml") != -1) { return poName + "XML"; } else if (header.indexOf("text/vnd.wap.wml") != -1) { return poName + "WML"; } else if (userAgent != null && userAgent.indexOf("Pixo") != -1) { return poName + "CHTML"; // For development purposes... } else if (header.indexOf("text/chtml") != -1) { return poName + "CHTML"; } else { return poName + "HTML"; } } catch (Exception e) {...

26 Generic DOM Manipulation Details.java public class Details extends BasePO { public void run(HttpPresentationComms comms) throws HttpPresentationException { DetailsPage details = (DetailsPage) create(comms, "com.ayg.demo.presentation.Details"); // RETRIEVE PERSON'S INFORMATION FROM DATABASE // IF PERSON NOT IN DATABASE Element personElement = details.getTagPerson(); Node personContainer = personElement.getParentNode(); Node errMsg = details.createElement("em"); errMsg.appendChild(details.createTextNode("Error retreiving database info.")); personContainer.replaceChild(errMsg, personElement); comms.response.writeDOM(details); return; Continued...

27 Generic DOM Manipulation (Cont.) Details.java - continued... try { String name = person.getFirstName() + " " + person.getLastName(); String phone = person.getPhone(); String position = person.getPosition(); String fax = person.getFax(); details.setTextName(name); details.setTextPhone(phone); details.setTextPosition(position); details.setTextFax(fax); } catch (Exception e) {... } comms.response.writeDOM(details);

28 Installing / Configuring Install Enhydra [ Install JBF / Forte as the IDE [ or just use the command-line tools Install phone emulators –Motorola J2ME Emulator –Sun J2ME Toolkit (nicely integrated with Forte!) –Consider installing WAP emulator for comparison Install the sample tutorial [LutrisJ2ME.zip] Follow the “QuickStart” guide me with questions:

29 Resources The tutorial! Emulators –i-mode: –WAP: Nokia.com, Phone.com, Yospace.com –J2ME: java.sun.com/j2me, Language references –cHTML - –WML – –J2ME – java.sun.com/j2me Lutris Enhydra 3.5 –

30 QUESTIONS?