You are on page 1of 20

Mobile Commerce and WAP

Marcus O’Connell
Agenda

• I-Hometown and Jeestore


• Jeestore Architecture
• Generation of Dynamic WML
• Java Internationalisation
• Generating multi-lingual content
• Support for user sessions
• WAP 1.2
Overview of Jeestore

Business-to-Consumer
e-commerce software

• Online shop building application


• No software required
• No programming or html skills
7 steps to building a store

• Store owner registration


• Logo upload/generation
• Welcome message
• Store details
• Product groups
• Adding products
• Publish store
Jeestore Architecture

Oracle
Postgres

Linux / Unix / NT
Presentation Layer

• ‘Web-MVC Architecture’

• Java Servlet based controller

• Dynamic content produced through Java


Server Pages (JSP)
Presentation Layer
HTTP Request HTTP Response

Servlet
Instantiates JSP

Business Logic
Jeestore on WAP

• Supports Wireless Application Protocol

• Generates dynamic Wireless Markup


Language (WML) pages

• Shops built for PC and mobile device


simultaneously

• Consumers can purchase goods with a


mobile phone
Using JSPs to Generate WML
<?xml version=1.0?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>
<card id=“home” title=“Jeestore Home”>
<p>
<%
// Display a list of store departments
Enumeration products =
dataBean.getAbstractProductGroup().getElements();

while (productObjects.hasMoreElements()) {
Product obj = products.nextElement();
out.println("<a href=\"" + Dept?id=" + obj.getId() + "\">");
out.println(obj.getName() + "</a><br/>");
}
%>
</p>
</card>
</wml>
Internationalisation
Jeestore has the ability to send content in
the appropriate format and language
depending on the browser locale

Provide the right


• Language
• Character set
• ‘Look & Feel’

Single server
Internationalisation of server code
Session Support

• Session support between HTTP requests


required
– Allow users how have logged in to access
certain areas
– Maintenance of shopping cart
– Reporting and tracking of users’ activities

• Two main ways to maintain sessions


– Cookies
– URL-rewriting
– Hidden fields in POST methods
Transformation Gateway

• Determines the appropriate format of


the content
– markup language
– content language
– session support

• Queries HTTP request headers to


determine browser type and
supported languages
• Uses a lookup table to determine
markup language and session support.
Transformation Gateway

• Based on this, determines which JSP to


instantiate
– Based on the HTTP request, the servlet does not
determine the actual jsp to instantiate, but the jsp
type. The transformation gateway determines the
actual jsp filename.

• Sets the appropriate content-type,


language and character set of the HTTP
response.
Transformation Gateway
HTTP Response
HTTP Request

Instantiates JSP

Jsp filename
Servlet
Jsp type
Trans. Gateway
Browser parameters

Business Logic
Transformation Gateway

• Need a standard naming convention for


jsp’s to handle multiple editions.
– Parameters such as markup, session support,
and language need to be encoded in filename.

• Issues
– Multiple sets of jsp’s need maintenance
– Use of resource bundles
WAP 1.2
• Wireless Identity Module

– Tamper resistent device


– Perform cryptographic operations for
WTLS
– Store sensitive information
– Can also be utilised in non-WAP
applications
• S/MIME, TLS, SSL
WAP 1.2
• Crypto API

– Library interface for WMLScript


– provides cryptographic functionality to
client
– proof of transaction authorization
• digital signature functionality
– complements transport layer security
WAP 1.2
• User Agent Profile Specification
– heterogeneity of display capabilities

– different user preferences


– interoperates with W3C standard
• Composite Capabilities/Preferences profile
(CC/PP)
• Capability and Preference Information (CPI)

– Origin servers, gateways and proxies use


CPI
WAP 1.2
• Push Framework

– transmit information to device without a


previous user action

– Push Initiator

– Push Proxy Gateway (PPG)


Thank you

marcus@ipo2.com

You might also like