Professional Documents
Culture Documents
Peter Kovari
Phillip Dermody
Daniel Ehrle
Stefan Fassmann
Richard Jacks
George Kroner
LindaMay Patterson
Sami Serpola
ibm.com/redbooks
International Technical Support Organization
March 2005
SG24-6315-00
Note: Before using this information and the product it supports, read the information in
“Notices” on page xi.
This edition applies to WebSphere Everyplace Access V5.0 on Windows 2000 Server and AIX
5.2 platforms; WebSphere Studio Application Developer V5.0 on Windows and Linux platforms;
WebSphere Studio Device Developer V5.7 on Windows platform; and Worplace Client
Technology, Micro Edition on Windows platform.
Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
The team that wrote this redbook. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
Become a published author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvi
Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvi
Contents v
7.2.2 Java-based technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
7.3 The mobile Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
7.3.1 HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
7.3.2 cHTML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
7.3.3 XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
7.3.4 XML Device-Independent Markup Extensions (XDIME) . . . . . . . . . 126
7.3.5 XForms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
7.3.6 XHTML 1.1 (HTML 4.01) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
7.3.7 XSLT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
7.3.8 WML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
7.3.9 SyncML DS and DM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
7.3.10 VoiceXML and X+V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
7.4 Connectivity technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
7.4.1 Wireless technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
7.4.2 Wired technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
7.4.3 Issues with connectivity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.5 IBM-specific pevasive-related technologies . . . . . . . . . . . . . . . . . . . . . . 132
7.5.1 Service Management Framework (SMF) . . . . . . . . . . . . . . . . . . . . 132
7.5.2 Workplace Client Technology, Micro Edition (WCTME) . . . . . . . . . 133
7.5.3 Extension Services for WebSphere Everyplace (ESWE) . . . . . . . . 134
Contents vii
12.1 Business context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
12.2 Architectural overview model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
12.3 System design overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
12.3.1 Component model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
12.3.2 Object model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
12.4 Sample application development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Contents ix
Using the Web material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
System requirements for downloading the Web material . . . . . . . . . . . . . 436
How to use the Web material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
This information was developed for products and services offered in the U.S.A.
IBM may not offer the products, services, or features discussed in this document in other countries. Consult
your local IBM representative for information on the products and services currently available in your area.
Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM
product, program, or service may be used. Any functionally equivalent product, program, or service that
does not infringe any IBM intellectual property right may be used instead. However, it is the user's
responsibility to evaluate and verify the operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter described in this document.
The furnishing of this document does not give you any license to these patents. You can send license
inquiries, in writing, to:
IBM Director of Licensing, IBM Corporation, North Castle Drive Armonk, NY 10504-1785 U.S.A.
The following paragraph does not apply to the United Kingdom or any other country where such provisions
are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES
THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT,
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer
of express or implied warranties in certain transactions, therefore, this statement may not apply to you.
This information could include technical inaccuracies or typographical errors. Changes are periodically made
to the information herein; these changes will be incorporated in new editions of the publication. IBM may
make improvements and/or changes in the product(s) and/or the program(s) described in this publication at
any time without notice.
Any references in this information to non-IBM Web sites are provided for convenience only and do not in any
manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the
materials for this IBM product and use of those Web sites is at your own risk.
IBM may use or distribute any of the information you supply in any way it believes appropriate without
incurring any obligation to you.
Information concerning non-IBM products was obtained from the suppliers of those products, their published
announcements or other publicly available sources. IBM has not tested those products and cannot confirm
the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on
the capabilities of non-IBM products should be addressed to the suppliers of those products.
This information contains examples of data and reports used in daily business operations. To illustrate them
as completely as possible, the examples include the names of individuals, companies, brands, and products.
All of these names are fictitious and any similarity to the names and addresses used by an actual business
enterprise is entirely coincidental.
COPYRIGHT LICENSE:
This information contains sample application programs in source language, which illustrates programming
techniques on various operating platforms. You may copy, modify, and distribute these sample programs in
any form without payment to IBM, for the purposes of developing, using, marketing or distributing application
programs conforming to the application programming interface for the operating platform for which the
sample programs are written. These examples have not been thoroughly tested under all conditions. IBM,
therefore, cannot guarantee or imply reliability, serviceability, or function of these programs. You may copy,
modify, and distribute these sample programs in any form without payment to IBM for the purposes of
developing, using, marketing, or distributing application programs conforming to IBM's application
programming interfaces.
Intel, Intel Inside (logos), MMX, and Pentium are trademarks of Intel Corporation in the United States, other
countries, or both.
Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the
United States, other countries, or both.
Java and all Java-based trademarks and logos are trademarks or registered trademarks of Sun
Microsystems, Inc. in the United States, other countries, or both.
UNIX is a registered trademark of The Open Group in the United States and other countries.
SET, SET Secure Electronic Transaction, and the SET Logo are trademarks owned by SET Secure
Electronic Transaction LLC.
Other company, product, and service names may be trademarks or service marks of others.
This IBM Redbook is part of the Patterns for e-business series. The focus of this
book is to provide an in-depth overview of the currently available pervasive
solutions using various IBM products.
George Kroner is a second year Co-op IT Specialist at the IBM ITSO Center in
Raleigh, North Carolina. He is currently pursuing a Bachelor of Science degree in
Information Sciences and Technology at Pennsylvania State University. His
interests include mobile computing, Web applications, and intelligent interfaces.
Juan Rodriguez
Margaret Ticknor
Jeanne Tucker
International Technical Support Organization, Raleigh Center
Julie Czubik
International Technical Support Organization, Poughkeepsie Center
Preface xv
Jonathan Adams
Joan Boone
Curtis Ebbs
Bill Glendenning
Joe Hansen
Nichelle Hopson
Christian L Hunt
Christian Kirsch
David Lection
Peggy Nethery
Eric Otchet
Jake Palmer
Dr. Werner Schollenberger
Kermit Taylor
Dave Van Voorhis
Your efforts will help increase product acceptance and customer satisfaction. As
a bonus, you'll develop a network of contacts in IBM development labs, and
increase your productivity and marketability.
Find out more about the residency program, browse the residency index, and
apply online at:
ibm.com/redbooks/residencies.html
Comments welcome
Your comments are important to us!
Preface xvii
xviii Patterns: Pervasive and Rich Device Access Solutions
Part 1
Part 1 Pervasive
solution
patterns
To enable the architect to do this better each time, we need to capture and reuse
the experience of these IT architects in such a way that future engagements can
be made simpler and faster. We do this by taking these experiences and using
them to build a repository of assets that provides a source from which architects
can reuse this experience to build future solutions, using proven assets. This
reuse saves time, money, and effort, and in the process helps ensure delivery of
a solid, properly architected solution.
The IBM Patterns for e-business helps facilitate this reuse of assets. Their
purpose is to capture and publish e-business artifacts that have been used,
tested, and proven. The information captured by them is assumed to fit the
majority, or 80/20, situation.
The layers of patterns plus their associated links and guidelines allow the
architect to start with a problem and a vision for the solution, and then find a
pattern that fits that vision. Then by drilling down using the pattern’s process, the
architect can further define the additional functional pieces that the application
will need to succeed. Finally he can build the application using the coding
techniques outlined in the associated guidelines.
These assets and their relation to each other are shown in Figure 1-1 on page 6.
Composite
patterns
Business Integration
patterns patterns
Application
patterns
An
yM
eth
Runtime
o
Best-Practice Guidelines
do
patterns
log
Application Design
y
Systems Management
Performance
Product Application Development
mappings Technology Choices
For easy reference to Patterns for e-business refer to the Patterns for e-business
Web site at:
http://www.ibm.com/developerWorks/patterns/
Business patterns
A Business pattern describes the relationship between the users, the business
organizations or applications, and the data to be accessed.
It would be very convenient if all problems fit nicely into these four slots, but
reality says that things will often be more complicated. The patterns assume that
most problems, when broken down into their most basic components, will fit
more than one of these patterns. When a problem requires multiple Business
patterns, the Patterns for e-business provide additional patterns in the form of
Integration patterns.
Integration patterns
Integration patterns allow us to tie together multiple Business patterns to solve a
business problem. The Integration patterns are outlined in Figure 1-3 on page 9.
Integration of a number
Access Integration of services through a Portals
common entry point
Integration of multiple
applications and data Message brokers,
Application Integration
sources without the user workflow managers
directly invoking them
Custom design
We can represent the use of a custom design to address a business problem
through the iconic representation shown in Figure 1-4.
Application Integration
Self-Service
Access Integration
Collaboration
Information Aggregation
Extended Enterprise
Application Integration
Self-Service
Information Aggregation
Extended Enterprise
A custom design may also be a Composite pattern if it recurs many times across
domains with similar business problems. For example, the iconic view of a
custom design in Figure 1-5 can also describe a Sell-Side Hub composite
pattern.
Composite patterns
Several common uses of Business and Integration patterns have been identified
and formalized into Composite patterns. The identified Composite patterns are
shown in Figure 1-6 on page 11.
www.macys.com
Electronic Commerce User-to-online-buying.
www.amazon.com
Enterprise intranet portal
Typically designed to aggregate providing self-service functions
multiple information sources and such as payroll, benefits, and
Portal applications to provide uniform, travel expenses
seamless, and personalized Collaboration providers who
access for its users. provide services such as e-mail
or instant messaging
Online brokerage trading apps.
Provides customers with Telephone company account
Account Access around-the-clock account access manager functions
to their account information. Bank, credit card and insurance
company online apps
Buyer's side: Interaction
between buyer's procurement
system and commerce
Allows buyers and sellers to trade
functions of e-Marketplace
Trading Exchange goods and services on a public
Seller's side: Interaction
site.
between the procurement
functions of the e-Marketplace
and its suppliers
The seller owns the e-Marketplace
Sell-Side Hub and uses it as a vehicle to sell www.carmax.com (car purchase)
(Supplier) goods and services on the Web.
The buyer of the goods owns the
e-Marketplace and uses it as a
vehicle to leverage the buying or
Buy-Side Hub procurement budget in soliciting www.wre.org
(Purchaser) the best deals for goods and (WorldWide Retail Exchange)
services from prospective sellers
across the Web.
The makeup of these patterns is variable in that there will be basic patterns
present for each type, but the Composite can easily be extended to meet
additional criteria. For more information on Composite patterns, refer to Patterns
for e-business: A Strategy for Reuse by Jonathan Adams, Srinivas Koushik,
Guru Vasudeva, and George Galambos.
Application patterns break the application down into the most basic conceptual
components, identifying the goal of the application. In our example, the
application falls into the Self-Service business pattern, and the goal is to build a
simple application that allows users to access back-end information. The
Self-Service::Directly Integrated Single Channel application pattern shown in
Figure 1-7 fulfills this requirement.
Back-End
synchronous synch/ Application 2
Presentation Web
asynch Back-End
Application
Application 1
The Application pattern shown in Figure 1-7 consists of a presentation tier that
handles the request/response to the user. The application tier represents the
component that handles access to the back-end applications and data. The
multiple application boxes on the right represent the back-end applications that
contain the business data. The type of communication is specified as
synchronous (one request/one response, then next request/response) or
asynchronous (multiple requests and responses intermixed).
Back-End
Application 2
synchronous synch/ Back-End
Presentation Decomp/
asynch
Recomp Application 1
This Application pattern extends the idea of the application tier that accesses the
back-end data by adding decomposition and recomposition capabilities.
Demilitarized Zone
Outside World (DMZ) Internal Network
Protocol Firewall
Domain Firewall
N
T Web
Domain Name
E
Server Application
R
N Server
E
T
User Existing
Existing
Applications
Applications
andData
and Data
By overlaying the Application pattern on the Runtime pattern, you can see the
roles that each functional node will fulfill in the application. The presentation and
application tiers will be implemented with a Web application server, which
combines the functions of an HTTP server and an application server. It handles
both static and dynamic Web pages.
Application security is handled by the Web application server through the use of
a common central directory and security services node.
Demilitarized Zone
Outside World (DMZ) Internal Network
Protocol Firewall
Domain Firewall
N
T Web
Domain Name Application
E
Server Server
R Server
N Redirector
E
T
User Existing
Existing
Applications
Applications
andData
and Data
These are just two examples of the possible Runtime patterns available. Each
Application pattern will have one or more Runtime patterns defined. These can
be modified to suit the customer’s needs. For example, she may want to add a
load-balancing function and multiple application servers.
JCA Option:
z/OS Release 1.3
Existing IBM CICS Transaction Gateway
Protocol Firewall
Outside world
Domain Firewall
Applications V5.0
and Data IBM CICS Transaction Server
Web Server Application V2.2
Redirector CICS C-application
Server
JMS Option:
Windows 2000 + SP3
IBM WebSphere Application
Server V5.0
Windows 2000 + SP3 Database IBM WebSphere MQ 5.3
IBM WebSphere Application Message-driven bean application
Server V5.0
JMS Option add: Windows 2000 + SP3
IBM WebSphere MQ 5.3 IBM DB2 UDB ESE V8.1
Figure 1-11 Directly Integrated Single Channel application pattern: Windows 2000 Product mapping
1.3 Summary
The IBM Patterns for e-business are a collective set of proven architectures. This
repository of assets can be used by companies to facilitate the development of
Web-based applications. They help an organization understand and analyze
complex business problems and break them down into smaller, more
manageable functions that can then be implemented.
Note: This application pattern was formerly called Pervasive Device Access
pattern. The name has changed because the primary function of this pattern is
not accessing the content but adapting the content. Content access is a
general requirement and function of the Access Integration patterns, including
the Rich device application pattern and its variations.
The Pervasive Device Adapter application pattern is shown in Figure 2-1. This
Application pattern represents the applications where the capabilities of the
pervasive clients are limited and the focus is on how to enable the application
and back-end data for pervasive access.
Because the pervasive client does not have any specific application running and
the capabilities are not relevant, the client node is represented with an empty
infrastructural (no application) node.
Application patterns for pervasive solutions are discussed in this book under two
particular solution types:
Pervasive devices
Rich devices
The pervasive device adapter tier provides the following services, among others:
Connectivity
Security
Synchronization
Content adaptation
Access to enterprise resources
The primary IT driver for choosing this Application pattern is to quickly extend the
reach of applications to new device types without having to modify every
individual application to enable its use by additional device types.
Solution
The Pervasive Device Adapter application pattern is built using three logical tiers:
Pervasive device, pervasive device adapter, and application.
The pervasive device tier represents devices such as PDAs and mobile
phones that can render data formats such as WML and iMode.
The pervasive device adapter tier receives requests from pervasive devices
and converts them into the appropriate requests that can be understood by
existing applications and converts the response from these existing
applications into formats that can be rendered by the pervasive device. The
rules that govern the transcoding from one format to the other are captured by
the metadata data shown in the above diagram.
In providing pervasive device support, this tier implements the device support
service for protocol adaptation and data stream transcoding and the security
and administration service to ensure that the pervasive device users can
achieve a single sign-on to existing applications.
The application tier may represent a new application, a modified existing
application, or an unmodified existing application. Predominantly these are
browser-based applications that must be made available on wireless devices.
They may represent applications that automate Self-Service, Collaboration,
or Information Aggregation.
The content adaptation node is responsible for converting the HTML response
from the existing browser-based application into a WML response to be sent to
the pervasive device. In doing so, this node usually uses device-specific style
sheets to determine what type of information can be made available on this
device. For example, an HTML page that displays "Breaking News" items with
headline, summary, and a link to a detailed report obviously does not render
itself well on a mobile phone display. Under this scenario one may select only the
headline and the link to be displayed on the mobile phone. Similarly,
downloading large graphics icons and images over the wireless network may not
be the best use of the low bandwidth available. Here one may decide to either
completely eliminate graphics or to convert them into image formats that are
optimized such as WBMP. Device-specific style sheets can capture such content
selection, conversion, and elimination criteria.
Benefits
This Application pattern gives users a considerable choice of devices to access
their applications and data sources.
Limitations
This Application pattern is unlikely to optimize the user interface for any particular
device type. If this is required, additional application changes will be necessary.
The basic Rich Device application pattern consists of only one node, the client
application. This node is capable of providing all the business functionality
required.
Presentation /
Application
Presentation/ synch/asynch
Application Application
The second variation represents the client scenarios with offline (not always
online, or occasionally connected) capabilities. These types of clients process
data in a store and forward mode where the data is stored locally until a
connection can be made and the data can be transmitted to the server for
onward processing.
Solution
The key in rich device applications is the application itself. As opposed to other
Web-based solutions (see 2.2, “Pervasive Device Adapter application pattern” on
page 21), this application pattern focuses on one logical tier: The client tier.
Many rich client applications are capable of operating in both online and offline
mode. These applications are always available for the user with full functionality,
even if the network is down for any reason. Once the network is available, the
data and information can be updated on the server and on the client side. Note
that only the business function is available all the time, not the most current data.
Rich device applications do not have the usability constraints that thin clients
have. Interactions can be longer and more complex. Rich clients can have
controls (user interface components) that are not available to thin clients.
Beyond the rich user experience, there are various quality of services available
to these clients. For example, a client and a server can exchange information
over a reliable communication, and the user can make sure that the interaction
was successful.
Rich applications should ideally be designed in a way so that they can operate
both in online and offline networking mode. Imagine the online operation as a
special case of the offline operation where information is exchanged
(synchronized) instantaneously, not in a long-running store and forward manner.
Benefits
The rich device applications provide a richer and better user experience with
extended functionality. Rich device applications can enable clients to operate in
both online and offline mode. The applications can also use additional services,
including transactionality, reliability, security.
Limitations
The rich device applications are limited to a set of devices that are capable of
operating the runtime environment together with the framework required by the
clients.
In the rest of this section you will find details about the remaining Access
Integration application patterns that are not discussed in further detail in this
book.
Application
tier 1
synch Single synch
Client tier
sign-on tier Application
tier 2
The primary business driver for choosing this Application pattern is to provide
seamless access to multiple applications with a single sign-on while continuing to
protect the security of enterprise information and applications.
Solution
The Single Sign-On application pattern uses the security and administration
service discussed above.
This Application pattern is built using three logical tiers: Client, Single Sign-On,
and Application.
The client tier represents the user interface client such as a browser, mobile
phone, or PDA.
The Single Sign-On tier implements the security and administration service,
which provides a seamless sign-on capability across multiple applications.
This tier uses a user profile data store, which is primarily read-only. However,
this data store can also be used in a read/write manner to keep track of the
last sign-on, the number of invalid sign-on attempts, and so on. The SSO tier
intercepts all sign-on requests, authenticates the user, and establishes a user
credential upon successful authentication. Subsequently, if the user tries to
access another application that also requires a sign-on, this service
automatically passes the user credential on to that application. The target
application recognizes the user credential established by the security service
and uses it for authorization locally. As a result, users can sign on once to
access all the applications integrated using this Application pattern.
The application tier may represent a new application, a modified existing
application, or an unmodified existing application.
Benefits
Some benefits are:
Users can access their application portfolio easily and securely.
User profile information is centralized in a common directory, simplifying
profile management and reducing costs.
Application development cost is reduced by providing a standard security
solution.
Limitations
Many existing applications are not capable of accepting a standard set of user
credentials as a substitute for local authentication. Integration with such systems
can be difficult or even impossible.
Application
1
Single Security Enterprise
sign-on tier Application Integration Application
2
Personalization
rules
Application
tier 1
synch
Client tier
Application
tier 2
Solution
The Personalized Delivery application uses three of the previous four common
services for Integration business patterns discussed above:
Personalization
Security and administration
Pervasive device support
This Application pattern is built using three logical tiers: Client, Personalization,
and Application.
The client tier represents the user’s access device, such as a browser, PDA,
phone, etc.
The Personalization tier works in concert with the application or portal in
question to tailor the application components and data presented to the user
based on the desired approach (participatory, predictive, prescriptive).
Personalization services typically provide a centralized repository for user
profile information related to preferences, access history, and aggregate use
statistics. The services also give developers the capability to define and store
rules and filters, which can be used by applications to provide personalized
delivery of content and applications.
This tier implements the personalization service for data/rule/preference
storage and collection and the security and administration service to
determine a user’s identity.
The application tier may represent a new application, a modified existing
application, or an unmodified existing application.
Benefits
The benefits are:
Limitations
Personalized delivery can be very complex and expensive to fully implement.
Firewalls control access from a less trusted network to a more trusted network.
Traditional implementations of firewall services include:
Screening routers (the protocol firewall)
Application gateways (the domain firewall)
Note: This node was formerly called the Pervasive devices services node in
previous redbooks.
This node contains all of the pervasive components on the server side. This node
is required to communicate with the pervasive client services on pervasive
devices. It takes care of data transfer, content adaptation, rendering (cHTML,
PDA, VoiceXML), synchronization, device management, etc. Components for
notification are also included in this node. Pervasive extension services act as a
server for the services and actions that are performed on the client side. This
node is invoked based on the commands that the pervasive client services node
sends, and returns the needed responses back to the client. Examples of this
include data updates, query results, instant notifications, and confirmations.
Demilitarized Zone
Outside World (DMZ) Internal Network
Directory
and Security
User Services
Personalization
Client Server
Existing data
Protocol Firewall
Domain Firewall
and
Applications
Pervasive Web
Presentation Application
client Data
Data services
services server
Server Server
services redirector
Database
Pervasive
ISP Gateway Collaboration
extension
(Pervasive server
services
services)
Figure 3-1 Pervasive Device Adapter::Runtime pattern (in orange) composed with Portal (in blue)
The Figure 3-2 on page 42 shows a basic set of nodes to consider for voice
solutions. There are two different clients shown on the diagram.
One client is the traditional phone client. It could be any type of phone,
including cell phone, landline phone, etc.
The other client is a rich client application with VoIP support. The client can
make phone calls over the IP protocol. In this case VoIP service providers
need to provide switching from the IP network to the phone network.
Directory
and Security
User User Services
Personalization
Telephony Server
Client
client
Existing data
Protocol Firewall
Domain Firewall
and
Applications
Pervasive
Voice Presentation Application
client
gateway Server Server
services
Database
Voice
Voice and/or
and/or
Data
Data services
services Pervasive
Collaboration
(VoIP)
(VoIP) extension
server
services
Telephony
connector
The basic pattern only includes the client tier and focuses on one particular node,
the rich device client. The diagram also includes the “outside”, public network
with data services.
This pattern depicts the scenario when the user is running a standalone client
application on the pervasive device, and it is not connected to any server
component.
Note that the network is available even for standalone applications. It is possible
for these applications to communicate with each other in a peer-to-peer manner
without involving any server component (for example, direct connection via
Bluetooth).
User
Protocol Firewall
Client
Pervasive
client Data
Data services
services
services
Rich Device
application pattern
Presentation /
Application
Directory
and Security
User Services
Personalization
Client Server
Existing data
Protocol Firewall
Domain Firewall
and
Applications
Pervasive W eb
Presentation Application
client Data
Data services
services server
Server Server
services redirector
Database
Pervasive
ISP Gateway Collaboration
extension
(Pervasive serv er
services
services)
Presentation/ synch/asynch
Application Application
This Runtime pattern is a nice fit for Device management solutions. Device
management requires online connection to the central management system to
perform system and application updates and configurations on the client side.
Another example for this Runtime pattern is instant messaging, including the
intelligent notification services using instant messaging scenario. In this case the
client communicates with a server application or with another client using instant
messaging.
This Runtime pattern can be a realization for many different scenarios. The store
and forward mechanism does not necessarily imply offline operation. An
application performing store and forward operations in an online environment
(instant replication, synchronization, or forward) can be considered as an online
Demilitarized Zone
Outside World (DMZ) Internal Network
Directory
and Security
User Services
Personalization
Client Server
Existing data
Protocol Firewall
and
Domain Firewall
Applications
Pervasive W eb Presentation Application
client Data
Data services
services server Server Server
services redirector
Database
Pervasive
ISP Gateway Collaboration
extension
(Pervasive server
services
services)
Figure 3-5 Rich Device=Store and Forward::Runtime pattern (in orange) composed with Portal (in blue)
There are different ways to alter the PIM and e-mail runtime pattern for scalability
purposes, decreasing response times, and providing high-availability support for
multiple users. The most efficient way to do this is to give users access to
multiple different physical collaboration servers. The following diagram shows
the separated pervasive extension services where PIM and e-mail support is
distributed over multiple nodes.
Directory
and Security
User S ervices
P ersonalization
Client S erver
Ex isting data
Protocol Firewall
and
Domain Firewall
Applications
Perv asiv e W eb
Presentation A pplication
client Data
Data services
services serv er
Serv er Serv er
serv ices redirector
Database
P ervasive Collaboration
ISP G ateway Collaboration
extension Serv er
(Perv asiv e serv er
services
serv ices)
P ervasive
extension
serv ices
Figure 3-6 Rich Device=Store and forward::Runtime pattern variation 1 (in orange) coupled with Portal (in
blue)
Demilitarized Zone
Outside World (DMZ) Internal Network
Directory
and Security
User Services
Personalization
Client Server
Existing data
Protocol Firewall
Domain Firewall
and
Applications
Pervasive
Voice
Voice and/or
and/or Data Presentation Application
client
Data
Data services
services gateway Server Server
services
Database
Voice
Pervasive
gateway Collaboration
extension
serv er
services
Telephony
connector
Voice solutions allow the user to query the system naturally using voice and
retrieve this information efficiently by receiving it visually on a device. The
multimodal approach is a good combination to take advantage of both channels,
voice and data. It allows a very flexible and user-friendly approach.
Figure 3-8 describes the nodes that are required for the Runtime pattern for
pervasive connectivity. The connectivity and access for pervasive services node
could be divided into two parts. The first handles the security and authorization
towards the network. The second is used for accessing the application data
based on the user authentication and authorization as per the directory and
security services node.
D em ilitarized Z o n e
O u tsid e W o rld (D M Z ) In tern al N etw o rk
D irectory
and S ecurity
U ser S erv ices
C lient
Protocol Firewall
Domain Firewall
C onnectivity
P erv asiv e W eb C
and Access Coom mppan
anyy
client D
Data
ata services
services serv er pprivate
for Perv asiv e rivate
services redirector in
services intran
tranet
et
IS P G ateway
(P ervasiv e
serv ices)
Connectivity
Directory
and Access
and Security
for Pervasive
User ISP Gateway Services
services
(Pervasive
services)
Personalization
Client Server
Existing data
Protocol Firewall
Domain Firewall
and
Applications
Pervasive Web
Voice
Voice and/or
and/or Presentation Application
client server
Data
Data services
services Server Server
services redirector
Database
Voice
Telephony Pervasive
gateway Collaboration
client extension
server
services
User
Telephony
connector
Figure 3-10 describes the variation of the Runtime pattern that is used for high
availability and load balancing based on different group-related behaviors.
C onnectivity
Directory
and Access
and Security
ISP G ateway for Pervasive
User Services
services
(Pervasive
services)
Personalization
C lient Server
Existing data
Protocol Firewall
Domain Firewall
and
Applications
Pervasive W eb
Voice
Voice and/or
and/or Presentation Application
client serv er
Data
Data services
services Server Server
services redirector
Database
Voice
Pervasive
gateway
extension
services
Pervasive
Telephony extension
connector services
(database
sync.)
Pervasive
extension
C ollaboration
services
serv er
(PIM &
e-m ail
sync.)
Figure 3-10 Composite Pervasive and Rich Device solution::Runtime pattern variation 1
The selected platform should fit into the customer's environment and ensure
quality of service, scalability, and reliability so that the solution can grow along
with the businesses and remain in line with the company’s on demand strategy.
We will create a Product mapping for each Runtime pattern based on our
scenarios and recommend different platform alternatives for each: One for
Windows and one for AIX or Linux.
This chapter introduces the major products used in this application and provides
an overview of the products.
More information about IBM WebSphere Application Server Enterprise V5.0 can
be found at:
http://www.ibm.com/software/webservers/appserv/enterprise/
IBM DB2
IBM's DB2 database software is a full-featured, robust, scalable, and easy-to-use
relational database. DB2 provides the foundation of information on demand on
Linux, UNIX, and Windows platforms.
DB2 Everyplace
DB2 Everyplace is a relational database and enterprise synchronization system
for mobile and embedded devices. DB2 Everyplace enables enterprise
application functionality and enterprise data to be extended to mobile devices
such as personal digital assistants (PDAs).
DB2 Everyplace is part of IBM's solution for pervasive computing. With DB2
Everyplace, mobile professionals (such as sales people, inspectors, auditors,
field service technicians, doctors, realtors, and insurance claim adjusters) can
keep in touch with vital data that they need access to when away from the office.
Organizations are able to deliver their DB2 enterprise data to mobile and
embedded devices. With DB2 Everyplace, you can access and perform updates
to a database on your mobile device. With DB2 Everyplace Sync Server, you can
synchronize data from the mobile device to other data sources in your enterprise.
The file adapter capability enables you to distribute files and applications to
mobile users.
Device Manager
Device Manager is device management technology that helps enterprises and
private networks, or providers, manage devices.
For Device Manager, devices are personal digital assistants (PDAs), handheld
PCs, PCs, sub-notebooks, cellular phones, set-top boxes, in-vehicle information
systems, and other devices used in pervasive computing.
Device Manager is used to enroll devices into a database and perform many
tasks for managing devices, such as configuration, inventory collection,
distribution of software, and initial provisioning of devices. Device Manager is
used with a subscription manager component to control access to the user
interfaces for administrators and device users.
Jobs are targeted to a device and the job is run when the device connects to the
Device Manager server. The server maintains a history of jobs status for all jobs
and all devices. For certain device types, the server can notify the device that a
job is waiting for the device.
Device Manager is built on a Web application server model. The Device Manager
server is a set of J2EE servlets, running on WebSphere Application Server.
Device management data storage is in a relational database, such as DB2 or
Oracle. The Device Manager server requires an agent on the managed device.
The agent can be a Device Manager supplied agent, such as Pocket PC,
Windows 32-bit, and PalmOS, or can be supplied by a device manufacturer.
Device agents communicate with the Device Manager server using HTTP or
HTTPS. The protocol running on top of HTTP is either a proprietary protocol,
which is used with Pocket PC and PalmOS devices, or a standard protocol, such
as the OMA DM protocol used with OSGi devices. With HTTP and HTTPS
communications between devices and Device Manager, requests and responses
can pass through various network elements, such as firewalls.
Everyplace Client
Everyplace Client provides the client application that is needed on the mobile
device to accomplish synchronization and access to the back-end system. The
Everyplace Client provides a single user interface for multiple client
synchronization functions. The provided synchronization applications currently
include the following.
E-mail and PIM is provided for PIM data synchronization with Lotus Notes
and Microsoft Exchange. Synchronization server provides the required
interface with the backend databases.
Database synchronization is provided for relational database synchronization
with supported back-end JDBC and ODBC compliant databases. DB2
Everyplace provides the required interface with the backend relational
database.
Customers can quickly select the data services that enhance the productivity of
end users. IBM and its business partners are ready to assist you in the
development of pilot applications and services for any new and existing device,
as well as offering the end-to-end device-to-services expertise that can deliver
integrity to the device.
Domino server has the ability to transform Lotus Notes databases into interactive
World Wide Web applications. It supports security from standard user name and
password authentication to Secured Socket Layer (SSL) encryption.
Domino allows users to rapidly develop World Wide Web (WWW) applications
using Lotus Notes' built-in database design features. Once created, users on
both Notes and the WWW can access and interact with these databases. The
Access Control that Notes provides is carried to the Web, allowing simple, and
very flexible control of who can access the site, the views, and even the
individual documents. And because Domino creates all the HTML code on the
fly, all document and view updates are immediately exported to the Web.
IBM WebSphere Voice Server for Multiplatforms V4.2 extends WebSphere Voice
Server V3.1.1 with an array of new features and enhancements. It allows
companies to leverage their existing Web infrastructures to enable easy voice
access to existing Web applications by wireline and wireless phones. The
software includes tools that enable developers to quickly develop and deploy
voice-enabled e-business solutions, using industry standard technology such as
Java technologies and VoiceXML.
With WebSphere Voice Application Access V5, developers can reuse existing
code, business logic, and infrastructure, and enhance the development process
to build VoiceXML applications.
To use this approach effectively, there are several questions that you need to
consider:
What kind of service would I like to offer? Does it require online access or
could it also be used remotely when no connection is available (offline
browsing)?
What kind of back-end infrastructure is available? Usually online mobile
device implementations are based on existing J2EE applications.
How well would I like to support different devices? Select and target devices
to focus on. It is more difficult to cover a wide range of different devices and
their operations.
What applications do I want to support? It is good to specify a subset of
applications that will be mobilized. There is no need to enable all existing
Web applications onto handheld devices.
Are there enough skills to mobilize existing applications in my organization?
Developing mobile applications requires knowledge of mobile-specific APIs
and a focus on developing user-friendly interfaces to existing Web-based
applications.
Demilitarized Zone
Outside World (DMZ) Internal Network
W indows 2000 + SP4
•W ebSphere Portal Server V5.0.2.1
•Domino Server 6.5.1
Directory •W ebSphere Application Server
and SecurityEnterprise V5.0.2.3
W indows 2000 + SP4 Services
User
W indows Mobile 2003 •IBM W ebSphere Application Server
V5.0 HTTP Plug-in
•IBM HTTP Server V1.3.26
Personalization
Server
Client
Protocol Firewall
Domain Firewall
Pervasive W eb
Presentation Application
client Data
Data services
services server
Server Server
services redirector
Pervasive Existing
ISP Gateway extension Data and
•W ebSphere Client Technology, services Applications
(Pervasive
Micro Edition
services)
•Opera Browser
W indows 2000 + SP4
•W ebSphere Everyplace Access V5.0 Collaboration
•PDA Aggregation Extension Database
Server
By using a Web server redirector node, we can place the majority of the business
logic on the internal network behind two firewalls. The redirector is implemented
using the IBM HTTP Server and WebSphere Application Server Web server
plug-in. The redirector serves static HTML pages and forwards requests for
dynamic content to a WebSphere application server using the HTTP protocol.
The pervasive extension services node is used to extend the presentation server
node. The pervasive extension services node contains the functions that
interpret device platform and configuration information, and based on that
information adapt and render the content for the specific device. It includes a
PDA aggregator that extends the regular portal environment. PDA aggregation
can customize existing portlets for display on PDA devices.
D em ilitarized Z on e
A IX 5.2
O u tsid e W o rld (D M Z ) In tern al N etw o rk
•W ebSphere P ortal S erver V 5.0.2.1
•D om ino S erver 6.5.1
•IB M W ebSphere A pplication Serv er
E nterprise V 5.0.2.3
D irectory
and Security
AIX 5.2 S ervices
U ser
•IB M W ebS phere A pplication S erv er
W indows M obile 2003 V5.0 H TT P Plug-in
•IB M H T TP S erver V 1.3.26
P ersonalization
C lient S erver
Protocol Firewall
Domain Firewall
P erv asiv e W eb
P resentation A pplication
client D
Data
ata services
services serv er
S erv er S erver
serv ices redirector
W indows 2000 + SP 4
D irectory •W ebSphere P ortal Serv er V 5.0.2.1
and S ecurity •D om ino S erv er 6.5.1
W indows 2000 + SP4 •IB M W ebS phere Application S erv er
U ser U ser S ervices
•IB M W ebS phere V oice R esponse V 3.1 E nterprise V5.0.2.3
•IB M W ebS phere V oice S erv er V 3.1
- Tex t-T o-S peech Engine
P ersonalization
- V oice R ecognition E ngine
T elephony S erv er
C lient
client
Existing data
and
Protocol Firewall
Domain Firewall
A pplications
P erv asiv e
V oice P resentation A pplication
client
gateway S erv er S erver
serv ices
D atabase
V oIP application
P erv asiv e
extension
Voice
V oice and/or
and/or services
D
Data
ata serv ices
services
(V
(VoIP
oIP))
C ollaboration
T elephony S erv er W indows 2000 + SP 4
connector •W ebS phere V oice A pplication Access V 5.0
•VoiceXM L Browser
The most important nodes that are used in voice applications are the voice
gateway, voice services, and pervasive extension services nodes.
Voice gateway node is responsible for establishing, connecting, and routing
the incoming phone calls from the phone network (analog, digital, or Voice
over IP), and permitting access to the backend system. The telephony
gateway node connects the phone input to the system and triggers a
VoiceXML application based on the rules for the call and the user requests.
The VoiceXML controls the call flow and manages the voice services to
present prompts to the user and interprets user requests via voice services.
Telephony connector is responsible for recognizing the user’s selections and
clarifying what the user would like to do. The telephony connector node has
its own database where data is stored that is used for voice recognition
purposes. For example, it contains a large vocabulary of words, their
pronunciations, and their grammars. This node is used to send recognized
requests to the application. Voice service contains two different engines:
– Speech recognition recognizes caller utterances by means of one or more
application-specific grammars or statistical language models.
– Text-To-Speech is used to convert dynamic text into audible speech.
Concatenative TTS uses short duration natural speech to create speech
output. This technology sounds more natural because it is comprised of
pre-recorded information from both a male and female voice.
The Presentation node and pervasive extension services node are connected to
an existing application node using the application server node. Using this model,
it is possible to reach a much larger audience—anyone with a telephone. With
this pattern, company employees and customers can access information and
conduct transactions without connecting to the Internet. Using a telephone, they
can fully interact with the applications and Web site.
D em ilitarized Z on e
O u tsid e W o rld (D M Z ) In tern al N etw o rk
AIX 5.2
D irectory •W ebS phere P ortal S erv er V 5.0.2.1
and Security •D om ino Serv er 6.5.1
A IX 5.2 •IB M W ebS phere A pplication S erv er
U ser U ser S ervices
•IB M W ebS phere Voice R esponse V3.1 Enterprise V 5.0.2.3
•IB M W ebS phere Voice S erv er V 3.1
- Tex t-T o-S peech E ngine
P ersonalization
- V oice R ecognition E ngine
T elephony S erver
C lient
client
Ex isting data
and
Protocol Firewall
Domain Firewall
A pplications
Perv asiv e
Voice P resentation Application
client
gateway S erv er Serv er
serv ices
D atabase
V oIP application
P erv asive
extension
VVoice
oice and/or
and/or services
DData
ata services
serv ices
(V
(VoIP
oIP))
C ollaboration
T elephony S erver AIX 5.2
connector •W ebS phere V oice A pplication A ccess V 5.0
•V oiceXM L B rowser
Windows Mobile 2003 and Palm OS are the two major pervasive device
operating systems supported by most of the IBM pervasive products. IBM and its
pervasive products also support a few other devices and operating systems.
Their support and availability vary product by product.
Outside World
User
Windows Mobile 2003
Protocol Firewall
Client
Pervasive
client Data
Data services
services
services
D em ilitarized Z on e
O u tsid e W o rld (D M Z ) In tern al N etw o rk
Directory
and Security
U ser S ervices
W indows 2000 + SP 4
W indows M obile 2003
•IB M W ebSphere A pplication Serv er
V 5.0 H TT P Plug-in P ersonalization
•IB M H T TP S erv er V 1.3.26 S erver
C lient
Protocol Firewall
Domain Firewall
P ervasiv e W eb
P resentation A pplication
client Data
D ata services
services serv er
S erv er S erver
serv ices redirector
D em ilitarized Z o n e
O u tsid e W o rld (D M Z ) In tern al N etw o rk
D irectory
and S ecurity
U ser Serv ices
W indows M obile 2003 A IX 5.2
•IB M W ebSphere A pplication S erv er
V 5.0 H TT P Plug-in P ersonalization
•IB M H T TP Server V1.3.26 S erv er
C lient
Protocol Firewall
Domain Firewall
P erv asiv e W eb P resentation A pplication
client D
Data
ata services
services serv er S erv er S erv er
services redirector
The rich device application could contain a client-based local application with
business logic in it and a local repository for accessing the data. It could also be
a very simple offline forms application that allows users to input the data in offline
mode through the form and submit it to a local repository (usually it is file
system). The data, which is stored into the local database or file system is later
synchronized with the back-end server. It is also possible to use a verified
transaction messaging operation for sending data. This scenario is
recommended if the data requires once-only messaging. This kind of mechanism
is used when the data is very critical, for example, credit card information.
This pattern can be used to describe a very complex pervasive application that is
used by businesses to support their mobile sales force workers in their daily
routines. It is made up of the following parts:
Rich device application: This contains the user interface, business logic, and
local repository on the device side. Sales workers could find their customer
data, create future tasks based on their selections, and store this data for
future handling. These functions are described in the user, client, and
pervasive client services nodes.
Pervasive services: This takes care of transferring and synchronizing data
between the client device and the back-end server. This function needs to
authenticate and authorize the user and client towards the existing corporate
environment and update the existing back-end application with the data that
is being sent from the client. It is also responsible for sending updated data
back to the client.
More information about this simple offline forms scenarios can be found in 13.4,
“Sample application development” on page 295.
This same Runtime pattern could also be used to simplify implementations for
offline applications. The next example describes the workflow steps for simple
offline applications, which would use this Runtime pattern.
1. User fills in an offline-based form using his pervasive device.
2. After filling in that form, he can submit it and continue to fill in the next offline
form with different content.
3. The data from the filled-in and submitted forms is stored in the device’s local
storage location (file or database) for future handling.
More information about this simple offline forms scenario can be found in 11.3.1,
“General considerations for intermittently connected applications” on page 228.
If the data being used on the mobile devices is very crucial or high availability is
needed, then clustering your servers is an appropriate solution. Clustering
distributes certain logical nodes onto different physical machines. The following
Runtime pattern illustrates an effective way to visualize the environment by
building up the functional and operational nodes. This makes it easy to pinpoint
which nodes require splitting and which parts might require clustering to solve
high-availability problems.
D em ilitarized Z on e
O u tsid e W o rld (D M Z ) In tern al N etw o rk
W indows 2000 + SP 4
D irectory•W ebS phere P ortal S erver V 5.0.2.1
•D om ino Serv er 6.5.1
and S ecurity
U ser S ervices •IB M W ebS phere Application S erver
W indows 2000 + SP 4 Enterprise V 5.0.2.3
W indows M obile 2003 •IBM W ebS phere A pplication
S erv er V5.0 H TT P Plug-in Personalization
•IBM H T T P S erver V 1.3.26 S erver
C lient
Protocol Firewall
Domain Firewall
The pervasive client services node contains a lot of components that are used to
support rich device applications. WebSphere Client Technology, Micro Edition
can support many standardized technologies that are used in the pervasive
world. DB2e and MQe can support alternative transactional quality of service
On the server side, the pervasive extension services node handles the incoming
data that is sent from the client. The pervasive extension services then treat the
data and sends it to an existing application or database for further processing.
D em ilitarized Z o n e
O u tsid e W o rld (D M Z ) In tern al N etw o rk
A IX 5.2
•W ebS phere P ortal S erv er V 5.0.2.1
•D om ino S erv er 6.5.1
D irectory
•IB M W ebSphere A pplication S erv er
and S ecurity
E nterprise V 5.0.2.3
U ser S erv ices
A IX 5.2
W indows M obile 2003 •IB M W ebS phere A pplication Server
V 5.0 H T T P P lug-in Personalization
•IB M H T T P S erv er V 1.3.26 S erv er
C lient
Protocol Firewall
Domain Firewall
P erv asive W eb Ex isting data
P resentation A pplication
client DData
ata services
services serv er and
S erv er S erv er
serv ices redirector A pplications
W indows 2000 + SP 4
D irectory•W ebS phere P ortal S erver V 5.0.2.1
W indows M obile 2003 and S ecurity
•D om ino S erv er 6.5.1
•N ativ e Inbox S ervices•IB M W ebSphere A pplication S erver
U ser
•N ativ e C alendar W indows 2000 + SP 4
Enterprise V 5.0.2.3
•N ativ e T o-D o •IB M W ebS phere A pplication
•N ativ e C ontacts Serv er V 5.0 H TT P Plug-in P ersonalization
•IB M H T TP S erver V 1.3.26 S erver
C lient
Protocol Firewall
Domain Firewall
P erv asiv e W eb Presentation Application
client D
Data
ata services
services serv er Server S erv er
serv ices redirector
Figure 4-10 Rich Device=Store and forward::Runtime mapping=PIM and e-mail, Windows
By using a Web server redirector node, we can place the majority of the business
logic on the internal network behind two firewalls. The redirector is implemented
using the IBM HTTP Server and WebSphere Application Server Web server
plug-in. The redirector serves static HTML pages and forwards requests for
dynamic content to a WebSphere Application Server using the HTTP protocol.
AIX 5.2
D irectory •W ebSphere P ortal Serv er V 5.0.2.1
W indows M obile 2003
and S ecurity•D om ino S erv er 6.5.1
•N ativ e Inbox
U ser S erv ices •IB M W ebS phere A pplication S erv er
•N ativ e C alendar A IX 5.2 Enterprise V5.0.2.3
•N ativ e T o-D o •IB M W ebS phere Application S erver
•N ativ e C ontacts V 5.0 H TT P Plug-in P ersonalization
•IB M H T TP S erver V1.3.26 Server
C lient
Protocol Firewall
Domain Firewall
P erv asiv e W eb
Presentation A pplication
client D
Data
ata services
services serv er
S erv er S erv er
services redirector
Figure 4-11 Rich Device=Store and forward::Runtime mapping=PIM and e-mail, AIX
D em ilitarized Z o n e
O u tsid e W o rld (D M Z ) In tern al N etw o rk
D irectory
and S ecurity
Linux S uSe 8.0 S erv ices
U ser •IB M W ebS phere A pplication S erv er
V 5.0 H T TP P lug-in
•IB M H T TP S erv er V 1.3.26
W indows M obile 2003
Linux S uSe 8.0
C lient •D om ino Server 6.5.1
Protocol Firewall
Domain Firewall
C onnectiv ity W eb
P erv asive and A ccess serv er VVooice
client D
Data
ata services
services for Perv asive ice an
and/o
d /orr
redirector D
serv ices serv ices Data
ata services
services
•W ebSphere Ev eryplace
IS P G ateway
C onnection M anager V 5 Linux 8.0
(P erv asiv e
C lient •W ebS phere Ev eryplace
serv ices)
C onnection M anager V 5
The connectivity and access for pervasive services node lies in the DMZ to
provide a more secure implementation for the whole pervasive environment. The
Pervasive client services is needed because it communicates with the
connectivity and access for pervasive services node using a tunneled
connection.
D irectory
and S ecurity
Serv ices
U ser
A IX 5.2
•IBM W ebS phere A pplication Serv er
V 5.0 H T TP P lug-in
W indows M obile 2003
•IBM H T TP S erver V 1.3.26 A IX 5.2
C lient •D om ino S erv er 6.5.1
Protocol Firewall
Domain Firewall
C onnectivity
Perv asive and A ccess W eb
client D serv er VVo
o ice
ice an
and/o
d/orr
Data
ata services
services for Perv asiv e
services serv ices redirector D
Data
ata services
services
The connectivity and access for pervasive services node is added in front of the
Web server redirector node. This is done so that all incoming requests will be
routed from the client to the corporate intranet through the trusted tunnel. The
connectivity and access for pervasive services node controls the user and device
network authentication and authorization. When the network access is trusted,
the client can authenticate towards the application layer and can get the access
to the backend applications. The single sign-on (SSO) mechanism is also
possible. Single sign-on means that the network layer and application layer
authentication and authorization is done inside the connectivity and access for
pervasive services node. If this is the case, the connectivity and access for
pervasive services node sends the application layer authentication request to the
existing directory and security services node automatically and the user does not
have to insert her application layer authentication information.
To enable the single sign-on between the connectivity server and existing
authentication and security server you could use the following technologies:
Trust Association Interceptor (TAI) to enable companies to incorporate their
IBM WebSphere environments, including IBM WebSphere Application Server
and IBM WebSphere Portal, into a unified and centrally managed security
infrastructure. Connection Manager V5 provides a TAI plug-in for use with
WebSphere Application Server. This allows single sign-on from mobility
clients connecting to WebSphere Application Server through a VPN.
Lightweight Third Party Authentication (LTPA), a mechanism for achieving
single sign-on across the Internet domain that contains users’ resources.
This Runtime pattern is very powerful when the customer also would like to use
certain kinds of intelligent notification messaging such as that which could be
used to send notifications to employees when they receive an urgent e-mail
message. Notification services could also trigger an alert to a user whenever a
stock price reaches a certain level.
When notification services are used within the environment, there must be
well-defined interfaces for channels to display these notifications. For example,
Instant Messaging requires a supported PDA or mobile phone and a
Web-enabled cellular network connection. Voice-based notifications require a
network connection with which to dial a phone or cellular phone. These need to
be in place for any notifications to be sent through these channels.
Protocol Firewall
and
Domain Firewall
Applications
Pervasive W eb
Voice
Voice and/or
and/or Presentation Application
client serv er
Data
Data services
services Server Server
services redirector
Database
Protocol Firewall
and
Domain Firewall
Applications
Pervasive W eb
Voice
Voice and/or
and/or Presentation Application
client serv er
Data
Data services
services Server Server
services redirector
Database
In order to get a good understanding of the protocols that are used for Pervasive
solutions, Figure 4-16 on page 85 describes the network protocols used for the
Windows 2000/AIX 5.2 and Windows Mobile 2003, Palm OS implementations:
GPRS/UMTS: General Packet Radio Service (GPRS) and Universal Mobile
Telecommunications Service (UMTS) carry the end user's packet data from
mobile devices to external packet data networks and visa versa.
UMTS is a third-generation (3G) broadband, packet-based transmission of
text, digitized voice, video, and multimedia at data rates up to 2 megabits per
second (Mbps) that offers a consistent set of services to mobile computer and
phone users no matter where they are located in the world.
HTTP/HTTPS: Hypertext Transfer Protocol (HTTP V1.1), or Hypertext
Transfer Protocol Secure (HTTPS - HTTP V1.1/SSL V3), is used from the
user’s Web browser to the HTTP server in the Web server redirector node.
HTTP, or HTTPS, is also used from the WebSphere Web server plug-in in the
Web server redirector node to the Web container in the application server
node.
Figure 4-16 on page 85 shows the protocol and technology mappings for
pervasive solution solutions.
D irectory
C onnectiv ity and Security
and A ccess LD AP /H T T P S erv ices
for Pervasiv e LD A P LD AP
serv ices
IS P G ateway P ersonalization
U ser (P erv asiv e S erv er
H T T P/S or H T T P/S or
serv ices)
S yncM L O M A S yncM L O M A
TS DM DM
Protocol Firewall
Domain Firewall
OM yncML H T T P/S or IIO P
And / UM
M S yncM L O M A
C lient H T T P/S or W eb Ex isting
AD
DM P resentation A pplication
RS
DM redirector Applications
Pervasiv e VVoice
oice and
an d/o
/orr
client JD B C
DData
ata services
services
serv ices H T T P/S
V oice
D atabase
gateway
DM O r
L o
A
A nalog
M
IM A P
M S
n c P/
D igital
Sy T T
V oIP
H
P erv asive
M IC P extension
serv ices D IIO P C ollaboration
S erv er
T elephony
connector
Our purpose with this book is to help simplify the implementation of such an
environment. Patterns can help you to understand how any new mobile
applications and connections will fit into and affect your existing environment.
We are going to use the application sets and services described above to
provide more details about the available options to design a pervasive
application. An application set can contain many application types. Each
application set and its application types are discussed below.
Pervasive services are a different set of application types. These services relate
to system management and they are always supporting other application types.
The pervasive services types include:
Device management
Device connectivity
Windows client T R
Linux client T R
Pocket PC T R/N
Palm OS T R/N
Blackberry T R/N
Symbian T R/N
Smartphone - -
Patterns
The minus sign (-) indicates that the solution is not supported on the device.
The question marks (?) in Table 6-2 mean that there is no known solution for a
certain device, but technically it is a possible solution. There could be
third-party solutions.
The next application set is General applications. The next table includes several
application types. The structure of the table is identical to the previous one.
Online location-aware
(using saved pages)
Online notification
(shared service)
Offline browser
Online browser
(multi-modal)
application
Windows client T T T/R R R R R R
Pocket PC T T T/R R R R R R
Palm OS T T T/R R R R R R
Blackberry T ? T ? ? ? ? ?
Symbian T ? T ? ? ? ? ?
Smartphone T - T - - N - N
Patterns
Online location-aware
(using saved pages)
Online notification
(shared service)
Offline browser
Online browser
(multi-modal)
application
Application and Pervasive Device Adapter Rich Rich Device=Online variation. For last
Runtime patterns Device column add Voice
=Store
and
forward
variation
Note: The online + offline forms application type can be implemented using
either a thin client solution or a rich client solution. With certain technologies
you can implement the same thin client application (browser) in both online
and offline environments.
Voice applications are also represented here in one column. It is a bit different
from previous tables, although it is represented the same way. On the client side,
voice applications really just require a phone for user interaction; therefore,
listing a bunch of pervasive devices does not make much sense. The reason why
these devices are still there is because some of them have either native phone
connection built in, or they are capable of running applications with VoIP support
to use voice interactions.
Blackberry ?
Smartphone T/R/N
Patterns
The last table shows the Pervasive services solutions: Device management and
Device connectivity. Read the table as described before.
Windows client R R
Linux client R R
Pocket PC R R
Palm OS R R
Blackberry - -
Symbian R -
Smartphone - N
Patterns
Having reviewed the options we can now map the ITSO Railway scenarios to the
appropriate application type, device type, and matching patterns.
including transactional
(using stored pages)
Device
management
Online location-aware
Online notification
(shared service)
Alternative user
Alternative user
Online device
(multi-modal)
management
application
experience
experience
(voice)
Inventory
management
Executive PIM
and e-mail
Sensor R (using R-
notification IM) Chapter
12
Ticket
purchasing
Device R-
management Chapter
16
Note: T means thin client solution. R means rich client solution. N means
native client solution.
Connectivity
You may have noticed that the connectivity scenario is not listed on any of the
previous two tables. The reason is that connectivity can be applied to any of the
scenarios. Connectivity is an infrastructural service that comes into consideration
with networking, either online or offline operation. Remember that the offline
applications have to go online sometime to perform synchronization or other data
Content adaptation
A corner-stone technology for pervasive solutions is transcoding (as defined
before) or content adaptation (the new term). For more information about content
adaptation refer to the IBM Redbooks Mobile Applications with IBM WebSphere
Everyplace Access Design and Development, SG24-6259; and Patterns:
Pervasive Portals Patterns for e-business Series, SG24-6876.
Solutions using the content adaptation technology can be found under the online
browser application type and occasionally under the alternative user experience
(voice) application type.
Part 2 Guidelines
These include options such as what mobile device types to use, which options
there are to develop and host wireless Web applications for these devices, which
technologies can be used to access these applications from the devices, and
which services your pervasive environment will support.
7.1.1 Devices
There are many devices that can be used to access your business’s mobile
applications. It is important to consider which devices may be used to access
your content to ensure that it is rendered correctly on the devices.
Cellular telephone
Cellular telephones are becoming more common as a way for customers to
access information from your company. All major cellular telephone providers
offer connectivity to the Web via cellular telephone.
Because they are in such widespread use, cellular telephones may offer a way to
mobilize your business’s workforce without the purchase of additional devices.
Laptop PC
With wireless Internet access becoming more common at home and on-the-go,
the wireless laptop PC is considered a mobile device.
The PDA offers the convenience of a small device with a comparatively larger
screen than the cellular telephone.
When developing mobile applications for certain industries, you should consider
some industry-specific ruggedized devices. They have functionality that is similar
to PDAs, but they are more robust and designed to work in hazardous
environments. Symbol and Intermec are two manufacturers specializing in these
devices.
Smartphone
This is a generic name for voice-centric mobile phones with information
capability. Smartphones attempt to combine the functionality of the PDA and of
the cellular telephone into one device.
Tablet PC
The tablet PC attempts to combine the handwriting capabilities of the PDA and
the versatility of the Laptop PC into a large screen device than can be written on
and read like a sheet of paper.
Telephone
With the increasing use of Interactive Voice Response (IVR) systems to handle
business activities such as customer service, the telephone and the cellular
telephone should each be considered as a pervasive device.
Sensors
Sensors can be connected to an enterprise network to collect data from the field.
Depending on the type of the sensor data, a signal can be transmitted into the
system for further processing.
Actuators
As opposed to sensors, actuators out on the field receive signals and data from a
system and take actions based on the input. These devices can be integral parts
of an enterprise system and can be controlled as pervasive devices.
Palm OS
The Palm OS is used with a wide range of devices, including the Palm, Sony,
and HandSpring devices. This device has built-in mobile capabilities, and works
as a mobile phone with a data connection.
Like many other operating systems on the market, the Palm OS comes in
different editions, the latest being Palm OS 5. It is important to note that some
Palm software relies on a specific version of the OS.
For more information, you can visit the Palm OS official Web site at:
http://www.palmsource.com
Symbian OS
Symbian OS is an open standard operating system for data-enabled mobile
phones. It includes a multi-tasking multithreaded core, a user interface
framework, data services enablers, application engines, and integrated PIM
functionality and wireless communications. It is used primarily in smartphones.
For more information, you can visit the Symbian Web site at:
http://www.symbian.com
For more information, you can visit the Microsoft Web site at:
http://www.microsoft.com/mobile
For more information, you can visit the Microsoft Web site at:
http://www.microsoft.com/windowsxp/tabletpc
J2ME
J2ME stands for Java 2 Platform Micro Edition. It is a very small Java application
environment suitable for several segments such as a TV set-top box, mobile
phones, and PDAs. The J2ME platform is composed of standard Java APIs and
a runtime environment to handle the user interface, security, and network
protocols.
Prior to Java on the mobile device, applications for mobile devices were created
in device-specific languages. These device languages provide performance
advantages because they are tuned to the device; however, they had limited
portability, and the application components had limited reusability across devices
or applications.
J2ME allows the enterprise to create mobile applications that are easily
migratable to multiple devices and types of devices. J2ME addresses portability
issues by providing Java packages via configurations and profiles targeted at
specific device configurations. J2ME consists of a customized subset of J2SE
technology components (which will be discussed in “J2SE” on page 121), a set of
standard hardware configurations, and profiles for targeting small devices.
Foundation
Any number of profiles can be made based on these two configurations. These
profiles extend the configurations and define the class libraries available for
building applications. In the above diagram, we can see the following profiles:
Mobile Information Device (MIDP) profile for any limited capability device
such as mobile phones and low-end PDAs
Personal Digital Assistant (PDAP) profile for mid-range to upper-end PDAs
Point of Sale (POS) profile for embedded point of sale devices
For more information, you can visit the SUN Microsystems J2ME Web site at:
http://java.sun.com/j2me
http://msdn.microsoft.com/mobility/prodtechinfo/devtools/netcf
QUALCOMM's BREW
BREW stands for Binary Runtime Environment for Wireless, and it is an
application platform execution environment for wireless devices developed by
QUALCOMM. The BREW platform is part of an end-to-end solution for wireless
applications development, device configuration, application distribution, and
billing, which will enable services providers and carriers’ customers, for example,
to download new applications over the air and pay for them.
For more information, you can visit the Qualcomm BREW official Web site at:
http://brew.qualcomm.com
OSGi
The OSGi Alliance is an industry group that defines and promotes an open
standard for the networked delivery of managed services to local networks and
devices. Open standards enable different manufacturers to adhere to the same
set of standards, which minimizes the number of products that are incompatible.
The OSGi standard complements other residential standards and is open to
most other protocols and transport and device layers.
http://www.osgi.org
7.2.1 Services
The following technologies are used to host and serve content to mobile devices
and manage data exchange with mobile devices.
Application server
An application server allows devices to access and use the applications and
other backend resources managed by the application server. In a mobile
environment, an application server may host Web applications that allow devices
to access information from servlets or portlets, or it might be used to provide
mobile devices with access to services such as device management or
synchronization.
Device management
Device management allows you to distribute software to mobile devices, update
software on mobile devices, and collect inventory information such as
application, hardware, and configuration information in a centralized manner.
Notification services
Notification services allows you to deliver notifications to users based on user
preferences and subscriptions. These can be sent via a delivery channel such as
SMS, e-mail, or instant messaging. Notifications can also be configured to alert
certain groups of users to certain events. For example, server administrators can
be alerted when a database server goes down, or financial brokers can be
alerted when a stock falls below a certain price.
Synchronization
Synchronization allows the user to maintain accurate copies of data on both the
server and on her device. For instance, synchronization of e-mail ensures that
the most recent messages display on the device and synchronization of calendar
Transcoding/content adaptation
Transcoding (also referred to as content adaptation) allows standard
HTML-based Web content to be transformed into a size and markup language
appropriate for the type of mobile device trying to access this content.
Voice services
Special “voice servers” provide voice services for the system, including:
Automatic Speech Recognition (ASR)
Text-to-Speech (TTS)
Natural Language Understanding (NLU)
J2SE
Java 2 Platform Standard Edition (J2SE) is an edition of Sun’s Java platform
designed to allow applications to be written once and run anywhere. It defines
the Java Virtual Machine and core class libraries, and it provides the foundation
for building applications, browser-based applets, and other Web applications.
For more information on J2SE and the following Java-based technologies, refer
to Sun’s Web site:
http://java.sun.com
J2EE
Java 2 Platform Enterprise Edition (J2EE) is a superset of J2SE that enables the
development of robust and complex server-based enterprise applications. J2EE
Servlets
Servlets are Java-based software components that can respond to HTTP
requests with dynamically generated HTML. Servlets are more efficient than CGI
for Web request processing since they do not create a new process for each
request.
Servlets run within a Web container as defined by the J2EE Model and therefore
have access to the rich set of Java-based APIs and services.
One of the attractions of using servlets is that the API is a very accessible one for
a Java programmer to master. The specification of the J2EE 1.3 platform
requires Servlet API 2.3 for support of packaging and installation of Web
applications.
JavaServer Pages
JSPs were designed to simplify the process of creating Web pages by separating
the Web presentation from Web content. In the page construction logic of a Web
application, the response sent to the client is often a combination of template
data and dynamically generated data. In this situation, it is much easier to work
with JSPs than to do everything with servlets. The JSP acts as the View
component in the MVC model.
The chief advantage JSPs have over standard Java servlets is that they are
closer to the presentation medium. A JavaServer Page is developed as an HTML
page. Once compiled, it runs as a servlet. JSPs can contain all the HTML tags
that Web authors are familiar with. A JSP may contain fragments of Java code
that encapsulate the logic that generates the content for the page. These code
fragments may call out to beans to access reusable components and enterprise
data.
JSP technology uses XML-like tags and scriptlets written in Java programming
language to encapsulate the conditional logic that generates dynamic content for
an HTML page. In the runtime environment, JSPs are compiled into servlets
before being executed on the Web application. Output is not limited to HTML but
also includes WML, XML, cHTML, DHTML, and VoiceXML. The JSP API for
J2EE 1.3 is JSP 1.2.
JSPs are the recommended choice for implementing the view that is sent back to
the Web client. For those cases where the code required on the page is to be a
large percentage of the page, and the HTML minimal, writing a Java servlet will
make the Java code much easier to read and therefore maintain.
Beans are recommended for use in conjunction with servlets and JSPs in the
following ways:
As the client interface to the Model layer. An Interaction Controller servlet will
use this bean interface.
As the client interface to other resources. In some cases this may be
generated for you by a tool.
As a component that incorporates a number of property-value pairs for use by
other components or classes. For example, the JavaServer Pages
specification includes a set of tags for accessing JavaBeans properties.
Enterprise JavaBeans
Enterprise JavaBeans is Sun's trademarked term for its EJB architecture (or
component model). When writing to the EJB specification, you are developing
enterprise beans (or, if you prefer, EJBs).
Enterprise beans are distinguished from JavaBeans in that they are designed to
be installed on a server, and accessed remotely by a client. The EJB framework
provides a standard for server-side components with transactional
characteristics. The EJB developer specifies the required transactional and
security characteristics of an EJB in a deployment descriptor (this is sometimes
referred to as declarative programming). In a separate step, the EJB is then
deployed to the EJB container provided by the application server vendor of your
choice.
The J2EE 1.3 platform requires support for EJB 2.0. As a tool provider,
WebSphere Application Server V5.0 supports J2EE 1.3 and therefore supports
EJB 2.0. EJBs are packaged into EJB modules (JAR files) and then combined
with Web modules (WAR files) to form an enterprise application (EAR file). EJB
deployment requires generating EJB deployment code specific to the target
application server.
http://java.sun.com/jms
Portlets
Portlets are reusable components that provide access to Web-based contents,
applications, and other resources. Web pages, Web Services, applications, and
syndicated content feeds can be accessed through portlets.
Companies can create their own portlets or select portlets from a catalog of
third-party portlets. Portlets are intended to be assembled into a larger portal
page, with multiple instances of the same portlet displaying different data for
each user.
Portlets are coded against the portlet API. The portlet components are part of the
portal application. The portal application is deployed on the portal server.
For more information about portlets and portlets programming, you can refer to
the IBM Redbook entitled IBM WebSphere Portal V5: A Guide for Portlet
Application Development, SG24-6076.
This has the advantage that the client-side Web application can be a simple
HTML browser, enabling a less capable client to execute an e-business
application.
The HTML specification defines user interface (UI) elements for text with various
fonts and colors, lists, tables, images, and forms (text fields, buttons,
checkboxes, and radio buttons). These elements are adequate to display the
user interface for most applications. The disadvantage, however, is that these
elements have a generic look and feel, and lack customization. As a result, some
e-business application developers augment HTML with other user-interface
technologies to enhance the visual experience, subject to maintaining access by
the intended user base and compliance with company policy on Web client
technologies.
Because most Web browsers can display HTML V3.2, this is the lowest common
denominator for building the client side of an application. To ensure compatibility,
developers should be unit testing pages against a validator tool. Free tools, such
as the W3C HTML Validation Service, are available at:
http://validator.w3.org/
7.3.2 cHTML
cHTML stands for Compact HTML and is a subset of the HTML specifications
targeting small appliances such as smartphones and mobile PDAs. The cHTML
tries to bypass several hardware restrictions by providing a standard markup
language and small browser that could be executed in a constrained
environment with a small memory, low power CPU, a small display, etc.
http://www.w3.org/TR/1998/NOTE-compactHTML-19980209
7.3.3 XML
XML allows you to specify your own markup language with tags specified in a
Document Type Definition (DTD) or XML Schema. Actual content streams are
then produced that use this markup. The content streams can be transformed to
other content streams by using Extensible Stylesheet Language (XSL), which is
based on CSS.
For PC-based browsers, HTML is well established for both document content
and formatting. The leading browsers have significant investments in rendering
engines based on HTML and a Document Object Model (DOM) based on HTML
for manipulation by JavaScript.
For new devices, such as WAP-enabled phones and voice clients, the data
content and formatting is being defined by new XML schema, WML for WAP
phone, and VoiceXML for voice interfaces.
For most Web application designs, you should focus your attention on the use of
XML on the server side.
7.3.5 XForms
XForms is W3C’s specification for Web forms that can be used with desktop
computers, hand-held devices, etc. The disadvantage of the HTML Web forms is
that there is no separation of purpose from presentation. XForms separates the
data and logic of a form from its presentation. Also, XForms are
device-independent.
http://www.w3.org/TR/xforms
XHTML Basic is designed for Web clients that do not support the full set of
XHTML features. It is meant to serve as a common language and share basic
content across mobile phones, pagers, car navigation systems, vending
machines, etc.
Some of the common features found in Wireless Markup Language (WML) and
other subsets of HTML have been used as the basis for developing XHTML.
Basic:
Basic text
Basic forms and tables
Some HTML 4 features have been found inappropriate for non-desktop devices,
so extending and building on XHTML Basic will help to bridge that gap.
7.3.7 XSLT
Extensible Stylesheet Language Transformations (XSLT) is a W3C specification
for transforming XML documents into other documents, including other XML
documents, HTML documents, and WML documents. The XSLT is built on top of
the Extensible Stylesheet Language (XSL), a stylesheet language for XML (such
as CSS2 for HTML). Unlike CSS2, XSL is also a transformation language.
7.3.8 WML
The Wireless Markup Language (WML) is based on XML and HTML 4.0 to fit
small hand-held devices. It is a tag-based language that handles formatting static
text and images, can accept data input, and can follow hyperlinks. WML also
uses WMLScript, a compact JavaScript-like language that runs in limited
memory. WML is the markup language of WAP.
The WML specification is maintained by The Open Mobile Alliance. The Open
Mobile Alliance has been established by the consolidation of the WAP Forum
and the Open Mobile Architecture Initiative, two industry-wide consortiums
concerned about the development of an open standard for the wireless industry.
For more information, you can visit The Open Mobile Alliance Web site at:
http://www.openmobilealliance.org or http://www.wapforum.org
For more information, you can visit the SyncML Official Web Site at:
http://www.openmobilealliance.org/tech/affiliates/syncml/syncmlindex.ht
ml
For more information, you can visit the VoiceXML Forum Official Web site at:
http://www.voicexml.org
X+V
X+V is an abbreviation of XHTML + VoiceXML. and it is a markup language
specification submitted to the World Wide Web Consortium (W3C) by IBM,
Motorola, and Opera Software to simplify the development of multimodal
applications.
Cellular
Cellular networks provide the greatest areas of coverage. There are many
different cellular technologies that allow Web access to wireless devices such as
GPRS, GSM, CDMA, and UMTS. Because this area is always changing and
evolving, it is hard to give exact specifications on cellular coverage currently
offered by wireless providers. Current speeds are near that of a 56-k modem. In
the near future, these speeds should approach near-broadband speed in
metropolitan areas.
Wireless Ethernet
Wireless Ethernet (802.11x) is the most popular technology for providing
wireless access in buildings, shops, homes, and workplaces. It is faster than
cellular, but not as fast as wired Ethernet. It is reliable and can be easily added to
an existing wired network infrastructure. Speeds range from 11mbps to 54 mbps
but can degrade the farther a user gets from a wireless access point.
Wireless Ethernet standards such as 802.16 are currently under development for
wide-scale implementations of wireless Ethernet in the form of a Metropolitan
Area Network.
http://www.ieee802.org
http://www.bluetooth.org
Infrared uses a beam of infrared light to exchange data in the same way a
remote control is used to change a television channel. It is slower than Bluetooth,
and the devices must be positioned in direct line-of-sight from each other to
communicate.
Other
Other means to connect wirelessly to the Internet include packet radio and
satellite. These can be useful in areas that do not gave good cellular or other
wireless coverage. These technologies can be expensive.
Cradle
Mobile devices such as PDAs come with cradles that connect to a PC to
synchronize data. Often, this same connection can enable the device to access
other network resources and the Internet. For situations where wireless
connectivity is not an option, the cradle will provide an opportunity for the user to
synchronize data with a network server or PC.
The OSGi specification defines a set of services for application bundles to use.
Of those services, Service Management Framework implements the following:
Configuration Admin Service - Enables an operator to set the configuration
information of deployed bundles
Device Access - Supports automatic detection of attached and detached
hardware devices and can automatically download and start appropriate
device drivers
HTTP Service - Provides an embedded HTTP server that is capable of
serving HTML and servlets
Log Service - Provides a general purpose message logger for the OSGi
environment
Package Admin Service - Enables a management bundle to provide the
policies for package sharing
Everyplace Toolkit
APIs, Plug-ins
Tools, Utilities
Design Tools
Voice Toolkit
Portal Toolkit
Workbench
Monitoring
Database
Domino
Toolkit
Tools
XDE
3rd Party &
Open Source W ebSphere Studio
Figure 8-1 shows the various WebSphere (pervasive) toolkits built on top of
WebSphere Studio products. The pervasive toolkits are:
Portal Toolkit, which provides an IDE for creating a portal and portlets. The
IDE includes capabilities to create, test, debug, and deploy individual portlets
and Web content.
Everyplace Toolkit, which provides tools to enable developers to build a
variety of mobile applications (both the server and device-based
applications).
Multimodal Toolkit, which provides tools to create XHTML combined with
Voice XML (X+V) applications and speech-related tools.
Voice Toolkit, which provides tools to create, debug, test and deploy voice
(Voice XML) based applications.
Other IBM products, such as Tivoli, Lotus, DB2, and Rational provide
development tools and toolkits based on the WebSphere Studio’s offering, as
shown in Figure 8-1.
The Everyplace Toolkit includes the Portal Toolkit, which provides tools to create,
test, debug, and deploy portlets. The Everyplace Toolkit has tools to aid in
server-based application development, such as:
Java Portlet Wizard - A wizard that creates a mobile portlet based on the
developer answers to a few questions. The portlet applications can be
debugged using the WebSphere Studio Unit Test Environment. Completed
http://www-306.ibm.com/software/pervasive/everyplace_toolkit/
http://www-128.ibm.com/developerworks/subscription/descfiles/mmtk4122.h
tm
For more details on the Voice Toolkit for WebSphere Studio go to:
http://www-128.ibm.com/developerworks/subscription/descfiles/vtws51wx.h
tm
The Platform Builder tool allows you to create multiple platform projects that
target different device configurations or contexts.
For more details on the WebSphere Studio Device Developer, the SMF Bundle
Development Kit, and Application Tools for Extension Services go to:
http://www.ibm.com/software/pervasive/products/wsdd/index.shtml
Part 3 Scenario
implementations
Demilitarized Zone
Outside World (DMZ) Internal Network
Directory
and Security
User Services
Personalization
Client Server
Existing data
Protocol Firewall
and
Domain Firewall
Applications
Pervasive W eb Presentation Application
client Data
Data services
services server Server Server
services redirector
Database
Pervasive
ISP Gateway Collaboration
extension
(Pervasive server
services
services)
Figure 9-1 Runtime pattern for the PIM and e-mail scneario
The Product mapping for the Runtime pattern we use for this book is found in the
following diagram.
W indows 2000 + SP 4
D irectory•W ebS phere P ortal S erver V 5.0.2.1
W indows M obile 2003 and S ecurity
•D om ino S erv er 6.5.1
•N ativ e Inbox S ervices•IB M W ebSphere A pplication S erver
U ser
•N ativ e C alendar W indows 2000 + SP 4
Enterprise V 5.0.2.3
•N ativ e T o-D o •IB M W ebS phere A pplication
•N ativ e C ontacts Serv er V 5.0 H TT P Plug-in P ersonalization
•IB M H T TP S erver V 1.3.26 S erver
C lient
Protocol Firewall
Domain Firewall
P erv asiv e W eb Presentation Application
client D
Data
ata services
services serv er Server S erv er
serv ices redirector
Figure 9-2 Rich Device=Store and forward::Runtime mapping=PIM and e-mail, Windows
The following business context was identified for the PIM and e-mail
synchronization access:
Currently, ITSO Railway executives need to access their PIM and e-mail data
while traveling. They must be able to maintain a single copy of their e-mail
and be assured that the PIM updates will be posted to their office PIM
application server.
The current system should extend the access of mobile devices such as
PDAs or cell phones without interference with existing PIM and e-mail
services.
The following chapters list the captured functional and non-functional
requirements to define the baseline according to which the business system
must be designed. A sample use case model with the most important use
cases is also created.
The next figure represents the business functions and actors that are related to
PIM and e-mail synchronization process. The picture also defines the connectors
that are used to link the individual symbols together. The picture provides a
Figure 9-3 ITSO Railway PIM and e-mail example business context: Business, users, and connectors
Actor names and descriptions; use case numbers, names, business events, and
overviews; and communication associations between the actors and the use
cases provide an overview of the functional requirements. The other constructs
of the model document the expected usage, user interactions, and behaviors of
the system in different styles and depth.
The presented project approach for the ITSO Railway PIM and e-mail support
example is mainly based on the IBM Global Services Method recommendation.
Actors
The following actors are interested in using this new mobile-enabled PIM and
e-mail support:
Executive
Administrator
Internal employee
Figure 9-4 ITSO Railway PIM and e-mail support - Use case actors
The executive is the main actor in this example. He must have the ability to
access PIM and e-mail information from a PDA. He also must be able to maintain
a single copy of his e-mail and PIM data and synchronize that data with his office
PIM application server.
The internal employee is a actor who can use the existing mail services inside
the ITSO Railway network. This actor and its services are not directly related to
the mobile device services. The only requirement is that these actors must have
continuous access to their e-mail databases even without a mobile connection.
The actor could be any ITSO Railway employee, even the executive when he
works in his office.
The following tables describe the actors of the ITSO Railway PIM and e-mail
support example (see Table 9-1 and Table 9-2 and Table 9-3 on page 157).
Brief description The ITSO Railway executive who needs to have access to his
PIM and e-mail data whenever and wherever he is through the
PDA. The data must be synchronized towards the existing office
PIM and e-mail application.
Status Primary.
Relationship
Superclass: None.
Association to use Start application, create a new memo and/or entry and/or item,
cases submit memo and/or entry and/or item, synchronize inbox
and/or calendar and/or to-do.
Brief description The administrator for the synchronization of PIM and e-mail
services. Maintains the system, deploys, and makes it available
for the PDA devices and users.
Status Secondary.
Relationship
Brief description The internal employee can use his PIM and e-mail applications
online through the corporate network.
Status Secondary.
Relationship
Superclass: None.
Association to use Use PIM and e-mail services online inside the corporate network
cases (same as executive, but online).
Use cases
Use cases describe functional requirements. They are used as input for the
system and application design. Furthermore, use cases show the key
functionality for the solution delivered to the customer. The final solution test runs
utilize the use cases that the customer and the system provider agreed to at
project start.
The following use cases were considered in the ITSO Railway PIM and e-mail
synchronization support:
1. Start Application.
2. Create and submit new memo and/or entry and/or item.
3. Synchronize inbox and/or calendar and/or to-do.
4. Maintain accesses and services.
The following tables describe these use cases (see IBM Global Services
Method).
Business event Executive starts his working day, logs into the PDA, and starts
to read his memos, entrie,s and tasks.
Actors Executive.
Use case overview Executive starts the native inbox, calendar, and to-do’s
applications on the PDA, which is used to keep the executives
up-to-date. Executive gets requests from his superior to create
reports for them.
Use case ITSO Railway executive starts his work day and logs into the
description PDA, which is fully charged and synchronized during the night.
Executive switches on the PDA and authenticates himself. He
opens the e-mail and PIM applications and reviews the existing
items and tasks for today.
Use case - Used by create new memo and/or entry and/or item use case.
association - Needs the Submit memo and/or entry and/or item and Sync
inbox and/or calendar and/or to-do use case.
Output summary
Usability index
Use case notes Use case provides the security features for this application and
it is tightly related for the successful synchronization.
Actors Executive.
Use case overview Executive creates the reports based on his superior’s requests
and tracks these requests using to-do lists. After he has creates
those requests he can submit and store the data.
1) Validation - Data were entered in the correct format. The validation function
successful returns successful when the SUBMIT button is pressed.
- The submit button is pressed and the data is locally stored for
further synchronization event purposes.
2) Validation - Data were entered in the wrong format. The validation function
unsuccessful returns a failure when the button SUBMIT is pressed.
- Data cannot be stored.
Use case Executive creates a report based on his superior’s requests using
description the device’s native e-mail application. To keep track of these
requests, he uses the to-do list PIM application. If there is any
reason to create a new calendar entry to arrange a meeting, he
could create that as well. When the executive has finalized
responses, updated his to-do lists, and created calendar entries,
he could submit those forms. Forms and data are stored in a local
database until the next synchronization.
Use case - Used by Create and Submit new memo and/or entry and/or item
association use case.
- Needs the Start Application use case.
Inputs summary Memo will contain the following fields: From, To, Subject, Body.
To-do will contain the following fields: Subject, When, Priority,
Status, Description, Category.
Calendar entry will contain the following fields: Type, Subject,
Chair, When to start, When to end, Where, Invites, Category,
Description.
Use case notes Use case is a base for the synchronize inbox, calendar, and to-do
use case.
Business event Executive sends out and synchronizes his PDA with the office
PIM and e-mail applications.
Actors Executive.
Use case overview Executive starts the synchronization client and sends out the
stored responses, calendar events, and to-do list updates.
Use case description Executive synchronizes his PDA at certain times during his
working day to sent and to receive the latest responses and
updates.
Inputs summary Synchronize the stored local data and receive the latest
updates from the office PIM and e-mail application.
Output summary Send out the calendar entries and responses to his superiors.
Use case notes Use case relies on a robust, scalable middle ware for PIM and
e-mail synchronization.
Table 9-7 Use case 4: Maintain accesses and PIM and e-mail services
Use case 4# Maintain accesses and PIM and e-mail services
Business event It is possible to serve PIM and e-mail accesses for the PDA
devices. Executives are able to keep their office PIM and
e-mail content up to date whenever and wherever they are.
Actors Administrator.
Use case overview Administrator deploys mobile application for ITSO Railway
executives and makes available for them to access their
personal PIM and e-mail content.
Use case association This use case is a precondition for all other use cases.
Output summary
Usability index PIM and e-mail synchronization service will not be accessible
for ITSO Railway executives if this use case is not successful.
For example, the executive starts the native PDA PIM and e-mail applications to
read his e-mails and reply to those e-mails. The executive also maintains his
personal to-do lists in order to keep track of those entries. During the day after
certain periods of time, he synchronizes the locally stored data towards the office
PIM, e-mail applications, and databases.
In our simple ITSO Railway PIM and e-mail support example we are looking at
these non-functional requirements from a more generalized view. Many of those
are addressed already through the choice of WebSphere Everyplace Access as
the middleware for our PIM and e-mail support example. Mainly the WebSphere
Portal Server running on WebSphere Application Server covers scalability,
availability, security, and data integrity.
Performance
Performance is considered when the PIM and e-mail synchronization capability
is used. When the PDA’s native PIM and e-mail applications are used without a
back-end connection, the performance of the back-end system does not
influence the performance experienced by the user. System performance will
only be noticed during the synchronization process when PIM and e-mail data is
sent back and forth with the office PIM and e-mail applications and client PIM
and e-mail applications.
The following response times of the application and system are required:
Frequency of usage/data complexity:
– High frequency (10–20 times/per day) / 30 sec
– Low frequency (1–10 times/per day) / 60 sec
Availability
Availability is frequently an important Service Level Requirement. The table
below lists the specification of the desired availability. Availability requirements
Component view
Maintainability
All application components (PIM and e-mail synchronization client,
synchronization server, and office PIM and e-mail application and database)
must be independent of each other from a development and maintenance point
of view. The following components can be designed, tested, and maintained
independently of each other:
Client side (client software for PIM and e-mail synchronization and native PIM
and e-mail applications)
Synchronization server (middle ware component between client and server)
Office PIM and e-mail application and database (back-end)
Security
The PDA should be protected with a power-on password. The executive must
also authenticate against the local PIM and e-mail synchronization client and
against the synchronization server and existing office PIM and e-mail application
Manageability
Manageability focuses on the application management, which includes
synchronization profiles. For example, this could be the range of the calendar
entries that can be synchronized (last 30 days), amount of data that can be sent
(max 200 K/message or attachments are not allowed to synchronize). This could
also cover if there is any reason to automate the synchronization mechanism
using server-initiated actions.
System constraints
System constraints are mainly defined by the used handheld device (PDA) and
the support of PIM and e-mail synchronization (SyncML client availability).
The specifications of a chosen PDA define the capabilities for the application and
include screen size, resolution, browser capabilities, battery lifetime, and weight.
The example constraints shown on Table 9-9 apply to a Window Mobile 2003
PDA.
System usability
This section covers the usability of the PIM and e-mail support example from the
user’s perspective.
Data integrity
The data entered using the devices must be accurately transferred to the
back-end system. The WebSphere Everyplace Access, Everyplace
Synchronization service takes care of this function.
We will look at these non-functional requirements and how they are fulfilled in the
following sections in more detail.
The solution configuration and technology that are used on the server side are
described in the upcoming chapters. The deployment and maintenance of the
application is covered in more detail in Chapter 16, “Maintaining mobile devices”
on page 393.
With this conclusion in mind, the Pervasive runtime pattern for PIM and e-mail
synchronization can be applied (refer to “Rich Device=Store and
forward::Runtime pattern” on page 44). The high-level solution architecture was
derived from the Runtime pattern in Figure 3-5 on page 45. To make a fully
understandable and descriptive presentation of how the PIM and e-mail
synchronization support example could fit into the selected pattern, we use the
required Runtime pattern nodes along with the architecture overview picture.
This architecture overview contains five parts:
Devices
Devices instantiate the user and client including the pervasive client services
node (PIM and e-mail synchronization client) of the applied Runtime pattern
in Figure 3-5 on page 45. The device is a tool that allows executives to update
their PIM and e-mail data through a handheld device (PDA). The executives
could use PDA’s native PIM and e-mail applications to create responses to
their superiors and to update their personal to-do lists. Furthermore, they are
able to create calendar entries to arrange meetings with their peers. The
entered data is stored locally and the data is ready to synchronize towards the
existing office PIM and e-mail application. The PDA runs a pervasive client
services (PIM and e-mail synchronization client) application that
communicates and synchronizes the data back and forth between the client
and server. Using this function, executives could see their latest e-mail data
and react in a short period of time for the critical requests that they might get
from their superiors.
An online connection to the existing office PIM and e-mail application in the
back-end was not considered appropriate. The reason for that was that the
executives might be in a place where a network connection is not available.
The other issue was the response time. Executives must have a good
response time to their personal PIM and e-mail data. The most convenient
way is to use the PDA’s native applications to create new memos, events, or
items, and in the end synchronize the data.
External network services
External network services are the network services that are used for
synchronization purposes. The executives and their PDAs use the existing
communication services that are offered by the Internet Service Providers
(ISPs). ISPs maintain their Wireless Wide Area Transport Network services
that are used for wireless connection purposes (such as GPRS and UMTS).
ISPs provide a gateway to the Internet that is used to transfer the
synchronization data from the client into the server. In the Runtime pattern for
Taking into account the ITSO Railway business, IT requirements, and use cases,
as well as considerations that were described in 3.2.5, “Rich Device=Store and
forward::Runtime pattern” on page 44, and mapping proper software into it; see
4.7, “Rich Device=Store and forward::Runtime mapping=PIM and e-mail” on
page 74. We can create a more accurate overview of the PIM and e-mail
synchronization solution. Figure 9-7 on page 171 shows the necessary
components for a WebSphere Everyplace Access based PIM and e-mail
synchronization solution, which is presented in solution overview.
There are three major blocks involved in this model (3-tier architecture):
Office PIM and e-mail service
The office PIM and e-mail service is the existing PIM and e-mail service that
stores the ITSO Railways employer’s personal PIM and e-mail data. This
service is used as a base to synchronize PIM and e-mail data to PDA
devices.
The existing service is used for daily PIM and e-mail transactions by the ITSO
railway employees. It must be very stable, and these new synchronization
services must not interfere with it in any way.
WebSphere Everyplace Access (WEA) with WebSphere Portal Server and
Synchronization server
This block is the middleware tier. It contains WebSphere Everyplace Access,
including the WebSphere Portal Server, Synchronization server, and
Everyplace Synchronization enterprise application. The Everyplace
Synchronization enterprise application contains a SyncML servlet that
handles the synchronization process. Portal server is used to maintain the
user’s personalization and authentication information. It is also used to
Basically, there are two different approaches for accessing user e-mail
databases:
Partially online and synchronization access for user e-mail databases
The administrator has four basic tasks to enable the PIM and e-mail
synchronization:
Configure the synchronization server and existing back-end e-mail services.
Give proper access rights for users that use the PIM and e-mail services.
Create a new synchronization profile that is used for synchronization.
Configure Everyplace Client and synchronization on th eclient side.
The portlet displays the current status for each synchronization server. It
provides the following status states:
Starting is displayed when the server is loading.
Running is displayed when the server is operational.
Stopping is displayed when the server is shutting down.
Stopped is displayed when the server is not operational but can be restarted.
Not available is displayed when the portlet cannot get status from the server.
Administrator services are not available and the portlet cannot restart the
server. When a server is not available, verify that the synchronization server
is running.
Use the Lotus Domino Adapter portlet to configure the synchronization server to
work with Lotus Domino servers. The Lotus Domino Adapter allows data to be
synchronized between Lotus Domino servers and mobile devices. A single Lotus
Domino Adapter can support multiple Lotus Domino servers and domains.
It is possible to view the status of any PIM server configured to use the PIM
adapter using the Manage Server portlet. The portlet displays a description of the
PIM servers and the state of the server. The possible states are Stopped,
Running, Starting, Stopping, and Not available.
Figure 9-10 WebSphere Everyplace Access - Manage Servers display: PIM adapter
The Lotus Domino adapter requires that the Lotus Notes client is installed on the
same computer as WebSphere Everyplace Access. The synchronization server
and the Lotus Domino Adapter use this Lotus Notes client to communicate with
the Lotus Domino e-mail database that the users synchronize with.
When you have managed to configure these steps and are able to see the
synchronization server and Domino PIM adapter in running mode, you can give
access to users to use this service.
Using the Bulk Load Users portlet, the administrator can create new
synchronization users from existing WebSphere Portal users or from a user list
imported from Microsoft Exchange or Lotus Domino.
The Bulk Load Users portlet lets you create new synchronization users from a
user list you import from Microsoft Exchange or from Lotus Domino, and then
notify each user of their new WebSphere Portal username and password by
e-mail. For information about how to export a user list from Microsoft Exchange
or Lotus Domino and use it to create new users, see the portlet help for the Bulk
Load portlet on the Administration page and exporting users for use in the Bulk
Load portlet.
After the administrator has created the profile, he has to determine if there are
any conflicts between client data or server data. After these steps are
configured, there is one new synchronization profile that can be used for your
implementation.
The third option to create synchronization profiles is to let users create their
own profiles. This is good for users who would like to use personalized
synchronization preferences instead of using the default corporate profiles.
To do this, users have to go to the Mobile setup tab and open the
Synchronization User profiles-portlet.
A user has to identify that the current profile is his own by typing the user
name and password.
After the user has inserted his user name and password, he can see the
existing profiles that the administrator has created previously. Users could
choose existing ones or create his own. The steps for creating a new
personal profile is the same as it is in the administrator synchronization
Everyplace Client software is easy to install, configure, and operate. All you have
to do is start the setup program for your device type and put your PDA in the
docking cradle. The installation program copies the files to the PC. Everyplace
Client files are installed on your PDA the next time you synchronize.
The Everyplace Client can be launched using the Setup.exe in the appropriate
directory for your device type located on the Everyplace Client installation CD.
After language selection, a Welcome to the Install Shield panel is displayed.
Select Next to continue. Remember that you accept the terms of the Software
License Agreement by selecting Yes. If you choose No, the installation will be
terminated. Select the destination where the installed files will be located and
For synchronization purposes, you only need the PIM and e-mail synchronization
component. Select that current component and select Next. On the Start
Copying the Files panel select Next, and on the InstallShield Wizard Complete
panel select Finish.
The My Settings (user preferences) provides quick access to user settings. From
this page, users can personalize their Everyplace Client interface and settings.
This section provides the following information:
The Overview provides a starting point where users can modify their
Everyplace settings.
Working with custom categories allows users to create new categories to
organize the user’s information and application data as needed.
Personalizing shortcuts is used to add up to eight applications that are most
used by the user into the shortcut bar.
9.5 Summary
This chapter summarizes the basic steps to add PIM and e-mail functionality into
an existing e-mail environment.
Customizing and extending the existing enterprise environment to cover PIM and
e-mail synchronization is very often a straightforward process. It rarely requires
development experience because there are a lot of existing products that support
PIM and e-mail synchronization. PIM and e-mail synchronization is based on the
SyncML Data Synchronization standard. SyncML has been an initiative recently
consolidated into the Open Mobile Alliance (OMA).
The following table describes the actions in high level that you need to consider
when researching and implementing PIM and e-mail synchronization
functionalities. The table below also describes all those parties who are related to
those actions.
Table 9-10 Enable PIM and e-mail synchronization and related parties
Task/action Supplier Administ- Security ISP CTO User
services rator
Define used X X X
channels and
create contracts
Create and X X X X
configure needed
channels
Enable access in X X
existing PIM and
e-mail services
Configure PIM X X X
and e-mail sync.
towards existing
e-mail services
Create sync. X X
profiles
Configure sync. X X
clients
It is not necessary to load users for installing and configuring their devices. That
can also be done remotely by using the Device Management services. More
information about the Device Management can be found in Chapter 16,
“Maintaining mobile devices” on page 393.
You should also carefully consider the possible extra loads that this new service
generates. An enterprise does not want to degrade its existing services by
bringing new services into it. This has been covered in 3.2.6, “Rich Device=Store
and forward::Runtime pattern variation 1” on page 45.
Further information for how to enable PIM and e-mail synchronization and the
configuration steps can also be found in the WebSphere Everyplace Access
InfoCenter and other WebSphere Everyplace Access IBM Redbooks.
The approach takes into account customer wants, needs, and options for
implementation of such a system. System architecture and system design are
discussed. At the end of this chapter is a description of the steps needed to
develop such an application.
ITSO Railways wants to be able to show a customer the times that a train is
scheduled to depart from a particular station.
In the future, ITSO Railways also wants to be able to extend this application to
show the most recent data in the ITSO Railways train schedule database so that
customers will know if a train is running ahead of schedule, slightly behind
schedule, or on schedule in real-time. We keep this in mind when developing the
sample application.
The following diagram is the Runtime pattern we used for the implementation of
this scenario.
Directory
and Security
User Services
Personalization
Client Server
Existing data
Protocol Firewall
Domain Firewall
and
Applications
Pervasive Web
Presentation Application
client Data
Data services
services server
Server Server
services redirector
Database
Pervasive
ISP Gateway Collaboration
extension
(Pervasive server
services
services)
Figure 10-1 Runtime pattern for the Pervasive Web access scenario
The runtime mapping that we used for this book is seen on the following diagram.
Demilitarized Zone
Outside World (DMZ) Internal Network
W indows 2000 + SP4
•W ebSphere Portal Server V5.0.2.1
•Domino Server 6.5.1
Directory •W ebSphere Application Server
and SecurityEnterprise V5.0.2.3
W indows 2000 + SP4 Services
User
W indows Mobile 2003 •IBM W ebSphere Application Server
V5.0 HTTP Plug-in
•IBM HTTP Server V1.3.26
Personalization
Server
Client
Protocol Firewall
Domain Firewall
Pervasive W eb
Presentation Application
client Data
Data services
services server
Server Server
services redirector
Pervasive Existing
ISP Gateway extension Data and
•W ebSphere Client Technology, services Applications
(Pervasive
Micro Edition
services)
•Opera Browser
W indows 2000 + SP4
•W ebSphere Everyplace Access V5.0 Collaboration
•PDA Aggregation Extension Database
Server
Some users may use a standard Web browser to access this information from
their home or office computers. Other users may desire access to this
information from a Web-enabled cellular telephone or their PDA while they are
on the go.
Query
Train Schedules
Customer
Business requirements
These are:
1. Increase customer satisfaction by providing customers with anywhere access
to railway schedule information.
2. Provide customers with mobile access to railway schedule information.
3. Reduce information-only customer requests.
4. Make information available 24 hours a day, 7 days a week.
5. Provide the latest information relating to the train schedules.
IT requirements
These are:
1. Integration with and extending existing railway information systems and train
schedule systems.
2. Make the application easy to use and learn.
3. Extend the existing Web/portal system to mobile devices.
4. Use tools that support the end-to-end development of such an application and
simplify development.
In between the pervasive server and the Internet resides a load balancing and
connection management server. This server would be responsible for distributing
heavy loads and could be responsible for managing connections with devices
that have the capability of connecting to the Internet via more than one type of
connection (for instance, when roaming from a cellular connection to wireless
Ethernet/802.11x).
In this arrangement, mobile devices can connect to the pervasive server by any
means that they can connect to the Internet. Cellular telephones and
cellular-enabled PDAs connect to the Internet on a cellular network through a
device called a WAP Gateway. A WAP gateway is responsible for encoding
content in such a way that it is usable by mobile devices. PDAs, laptop PCs, and
action
doView() 10
Server side
1 8
Performed()
6 9
DB Utilities 5
3 view.jsp sessionBean
DB Results
The sequence flow for this scenario through the application is as follows:
1. Initially, the doView() method is executed. It is the responsibility of the
doView() method to display a portlet to the user in view mode.
2. The doView() method calls the getJspExtension() method. This enables the
portlet to determine which set of JSPs to use when rendering the content
based on the markup languages supported by the requesting device.
3. The view.jsp file is called to render an initial screen.
4. The view.jsp calls the sessionBean to get a listing of departure locations.
5. The sessionBean accesses a listing of departure locations by using the
database utilities and database results classes to query the ITSO Railways
database.
6. This information is returned to the view.jsp for processing.
7. The portlet is shown in view mode to the user. In this scenario, it lists a series
of links showing the available departure locations for ITSO Railways.
8. The user selects the desired departure location. The action is sent as part of
the portlet URI. Upon submission, the actionPerformed() method is executed
to process this action.
The sequence flow above is iterative. The same process occurs when the user
chooses an arrival location and is shown the resulting train schedule information.
The Multi-Device Authoring Tools also include an editor to allow you to define
both a generic and a target-specific application flow diagram.
For this application, we use the Everyplace Toolkit to create a framework for our
mobile application that supports HTML, PDA, and WML markup languages. We
then test this application using a Web browser, PDA simulator, and a
Web-enabled mobile telephone simulator.
Tip: For more information on developing applications for mobile devices, refer
to WebSphere Everyplace Access Version 4.3 Handbook for Developers,
SG24-7015-01.
The wizard will generate a framework for your project. It will generate a separate
folder for each set of JSPs corresponding to each markup language supported
by the project.
Note: The files needed to create this database are in Appendix A, “Additional
material” on page 435. Please follow the steps described in the sample
application’s directory to set up the database.
The locations table has three records for location names: Raleigh, Durham, and
Wilmington.
Table 10-1 The times table contains entries for possible schedule information
NAME1 NAME2 TIMEOFDAY TIMES
Raleigh Durham am 6 am
Raleigh Durham am 8 am
Raleigh Durham pm 6 pm
Raleigh Durham pm 8 pm
Raleigh Wilmington am 7 am
The database utilities class can be modified to point to any database on any
supported database management system. WebSphere Studio Site Developer
provides the Cloudscape database management system for local development
of database-driven applications.
As shown in Figure 10-9 on page 202, there are separate folders for each
supported markup language. You should add to and modify these files in
accordance with the specifications for each markup language used to build your
applications. For markup languages such as WML it is extremely important to
correctly code the markup, or the content will not display and/or function correctly
on the device. The following sample shows the code used to dynamically
generate a listing of departure locations for ITSO Railways in WML. In WML, all
text to be displayed on a phone display must come between <p> and </p> tags.
In addition, line breaks are indicated by <br/>.
<p>
Welcome to ticket portlet, please select your departure location:
<% for(int x=0; x<sessionBean.getDb_rowCount(); x++){%>
<br/><a href="<portletAPI:createURI><portletAPI:URIAction
name="submitDeparture"/><portletAPI:URIParameter name="start"
value="<%=sessionBean.getDb_SQLresult(0,x)%>"/></portletAPI:createURI>">
<%=sessionBean.getDb_SQLresult(0,x)%></a>
<% } %>
</p>
Tip: See IBM WebSphere Portal V5: A Guide for Portlet Application
Development, SG24-6076, for help setting up the WebSphere Portal Test
Environment and running your application.
Running the portlet application project loads the portlet into the Web browser in
the WebSphere Studio Site Developer IDE. By selecting a departure location, an
arrival location, and a time of day, a user can view the trains scheduled to depart.
For testing applications that have been developed for the PDA markup, you can
use a simulator such as the Palm OS simulator, which is downloadable from:
http://www.palmsource.com/developers/
Microsoft also has SDKs and emulators available for download for Pocket
PC-based PDAs at:
http://msdn.microsoft.com/windowsmobile
After configuring the simulator to access the Internet, you can enter the above
URL to access your portlet application’s content.
After clicking the Go button, you can interact with your application just as if you
were using it on a real Palm OS-based device.
The same can be done when developing applications for Web-enabled mobile
telephones. Companies such as Nokia offer several development tools that can
help you test your content. By downloading the Nokia Mobile Internet Toolkit and
the Series 40 Developer Platform SDK, you can run a test environment such as
the one shown below.
Once the portlet application loads, you can interact with it in the simulator as you
would on the actual phone.
10.5 Summary
In this chapter, we have discussed various methods to display information on
mobile devices. We then discussed the steps necessary to develop an
application for ITSO Railways to make train timetable information available to its
customers.
Using a mobile portal solution is an easy and effective way to make content
available to users and customers on the go.
Demilitarized Zone
Outside World (DMZ) Internal Network
Directory
and Security
User Services
Personalization
Client Server
Existing data
Protocol Firewall
and
Domain Firewall
Applications
Pervasive W eb Presentation Application
client Data
Data services
services server Server Server
services redirector
Database
Pervasive
ISP Gateway Collaboration
extension
(Pervasive server
services
services)
The runtime mapping with the products described in this chapter can be found in
the following diagram.
W indows 2000 + SP 4
D irectory•W ebS phere P ortal S erver V 5.0.2.1
•D om ino Serv er 6.5.1
and S ecurity
U ser S ervices •IB M W ebS phere Application S erver
W indows 2000 + SP 4 Enterprise V 5.0.2.3
W indows M obile 2003 •IBM W ebS phere A pplication
S erv er V5.0 H TT P Plug-in Personalization
•IBM H T T P S erver V 1.3.26 S erver
C lient
Protocol Firewall
Domain Firewall
P erv asiv e W eb Existing data
P resentation A pplication
client D
Data
ata services
services serv er and
S erver S erver
serv ices redirector Applications
The following business context for the inventory stock tracking of used train
supplies was identified (see Figure 11-3 on page 214). Currently, the ITSO
Railway delivery staff tracks train supplies on paper forms. At the end of the day,
this paper form is delivered to the service station. The data entry clerks use these
forms to enter the amount of used supplies into the inventory system. This allows
ITSO Railways to track the amount of supplies leaving the existing stock in the
inventory system. Supplies running out of stock can be automatically identified
and re-ordered (for example, by the ERP system).
Business Context
Delivery
Person
Inventory System
(Backend)
Figure 11-3 ITSO Railway Business Context for inventory stock tracking process of used
train supplies
Actor names, actor descriptions, use case numbers, use case names, use case
business events, use case overviews, and the communication associations
between the actors and the use cases provide an overview of the functional
We simplified the use case model for the ITSO Railway Mobile Supply Tracking
System example and reduced the use case description to the following
constructs:
Actors (name, description, status, superclass, subclass, and associations)
Use cases (number, subject area, business event, name, overview,
preconditions, description, associations, inputs, outputs, usability index, and
notes)
Communication Association diagram
The presented project approach for the ITSO Railway Mobile Supply Tracking
System example is mainly based on the IBM Global Services Method
recommendation.
Actors
The following actors are of interest for the new Mobile Supply Tracking System:
Delivery person
Administrator
Actors
Delivery
Person
Inventory System
(Backend)
Extends
Data Entry Networked Using
Administrator Clerk Workstation
The delivery person is the main actor in this example. At the beginning of the
working shift the user picks up his fully charged PDA containing the Mobile
Supply Tracking client application (the electronic Train Schedule page and the
Supply Consumption Record forms). The Train Schedule page contains the
information of trains needing to be equipped with the new supplies during their
The following tables describe the actors of the ITSO Railway Mobile Supply
Tracking System example (see Table 11-1 and Table 11-2).
Brief description The delivery person equips the train with supplies to replace
those used up during a train journey (for example, hand towels,
soap). He must record the amount of used supplies for the
inventory system.
Status Primary.
Relationship
Superclass: None.
Association to use Start application, input data and submit form, sync forms.
cases
Status Secondary.
Use cases
Use cases describe functional requirements. They are used as input for the
system and application design. Furthermore, use cases are the key proof points
for the solution delivered to the customer. The final solution test runs utilize the
use cases to which the customer and the system provider agreed to at the
project’s start.
The following use cases were considered in the ITSO Railway inventory system
example:
Start application
Input data and submit form
Synchronize forms
Deploy and manage application
Table 11-3 on page 218 through Table 11-6 on page 222 contain more detailed
descriptions.
Administrator
Start
Application
Input Data
in Form
Delivery
Person
Submit
Form
The following tables describe use cases for the new ITSO Railway Mobile Supply
Tracking System in detail.
Business event Delivery person starts his working day and equips the first train
car with additional supplies.
Use case overview Delivery person starts the Mobile Supply Tracking client
application on the PDA, which is used to record the amount of
used supplies.
Use case Delivery person starts the shift with picking up the PDA from the
description service station (fully charged and synchronized). He switches on
the PDA, enters the PDA password, and starts the Mobile
Supply Tracking client application (authentication necessary):
- Delivery person opens up train schedule page to find out which
train on which platform must be checked.
- First supply consumption record form is loaded.
Output summary -
Usability index -
Use case notes Use case provides the device and application access security
features for the Mobile Supply Tracking client application.
Business event Delivery person equips and refills trains with the supplies needed.
Use case overview Delivery person enters amount of used supplies into the Supply
Consumption Record form.
Use case Delivery person equips the train car with additional supplies
description according to train schedule form. He opens up the Supply
Consumption Record form and enters the train number and the
amount of used supplies.
The form on the PDA must provide the supply’s name and a data
input field for the used amount of the supply. The amount must
be entered as a numeric number.
The Submit button invokes a validation function for the amount
field. If the validation is successful, the form is stored locally. It is
ready to be sent to the inventory system in the backend during
Mobile Supply Tracking System synchronization.
Output summary - Supply consumption record form (all validated input data ready
to be sent to the backend).
Usability index Data input must be easy to understand and to handle for user.
Use case notes This is the most important use case for the end user (delivery
person). It is tightly coupled with the Sync Forms use case.
Use case description Delivery person finishes the day and all filled-in forms were
successfully submitted (stored locally).
Delivery person puts PDA in network-attached cradle in
service station and synchronizes forms (inventory data is sent
to the backend).
Mobile Supply Tracking client application is stopped and PDA
is left in the cradle for recharging.
Use case association - Relies on Deploy and Manage Application use case.
- Used by Start Application use case.
- Needs Input Data and Submit Form use case for
synchronization.
Use Case Notes This case is the most important use case from the inventory
systems point of view. All data entered by the delivery person
must be transmitted to the inventory system without errors
(relies on a robust, scalable middleware for forms
synchronization).
Business event New Mobile Supply Tracking client application for delivery staff
is available and/or delivery staff members have changed.
Actors Administrator.
Use case association This use case is a precondition for all other use cases.
In the ITSO Railway Mobile Supply Tracking System example, we are looking at
these non-functional requirements from a more generalized view. Many of those
are addressed already through the choice of WebSphere Everyplace Access as
the Mobile Supply Tracking System middleware for our forms-based Mobile
Supply Tracking client application example. The WebSphere Portal Server
running on WebSphere Application Server covers scalability, availability,
security, and data integrity.
Performance
Performance is considered to be addressed through the offline forms capability
of the Mobile Supply Tracking client application itself. Since the Supply
Consumption Record form can be filled-in without a backend connection, the
performance of the backend system does not influence the performance
experienced by the user. System performance will only be noticed during the
synchronization process of the filled form with the backend system.
Availability
Availability is frequently an important Service Level Requirement. The table
below lists the specification of the desired availability. Availability requirements
typically vary by use case and component; each row represents a collection of
use cases in the form of a component with common availability requirements.
Mobile Supply Tracking Fully available at the end of High, forms can be
System server each shift of the delivery staff synchronized at the
(Synchronization) (7 days a week, minimum beginning of the next shift,
6:00-7:00, 14:00-15:00, trolley with supplies might
22:00-23:00) not be adequately filled
Maintainability
All application components (Mobile Supply Tracking client application, Mobile
Supply Tracking System server and backend) must be independent of each
Security
The PDA should be protected with a power-on password. The delivery person
must also authenticate against the local Mobile Supply Tracking client
application.
Manageability
Manageability mainly concentrates on the application management. It contains
the way the forms-based application is managed from an administrators point of
view.
System constraints
System constraints are mainly defined by the used handheld device (PDA) and
the size of the Mobile Supply Tracking client application.
A chosen PDA defines capabilities for the application, such as screen size,
resolution, browser capabilities, battery lifetime, and weight. The browser
capabilities heavily influence the design of the offline forms application (Supply
Consumption Record). It is beyond the scope of this book to investigate all the
different types of devices and their constraints.
System usability
We are covering the usability of the Mobile Supply Tracking System example
from the user’s perspective. The Mobile Supply Tracking client application
including the Supply Consumption Record form must be easily understood and
easy to navigate for the user.
Data integrity
Data entered in the Supply Consumption Record form must be stabley
transferred to the backend system. The WebSphere Everyplace Access Offline
We will look at these non-functional requirements and how they are fulfilled in the
following chapters in more detail.
The solution development and deployment on the server side (Mobile Supply
Tracking System server) are described in the following chapters. The roll-out and
maintenance of the Mobile Supply Tracking client application is covered in more
detail in Chapter 16, “Maintaining mobile devices” on page 393.
Mobile Supply
Tracking Client
Application for Inventory System
Delivery Person Mobile Supply
Tracking
System Server
Pervasive
Server
(Offline Content
Sync Server)
Offline
Content Storage
Cash
The pervasive server accesses the inventory system in the same way as the
data entry clerks do. In doing this, it extends the inventory system access to
mobile clients (delivery staff). Data is entered offline in the electronic form
(Supply Consumption Record) on the handheld device and transmitted to the
inventory system later on. For this data transmission, the handheld device is
placed in a cradle with a network connection to the pervasive server (for
example, directly through Ethernet or a network-attached service PC).
The first approach is feasible for the relatively complex applications (see the
ticketing application from Chapter 13, “Using Workplace Client Technology, Micro
Edition” on page 283). The second approach is suitable for the simple ITSO
Railway Mobile Supply Tracking System for the delivery staff. The technology
used is also referred to as mobile access using offline forms actions. Details
about the different client programming models can also be found in Chapter 6,
“Pervasive application types” on page 101.
Web WebSphere
Portal Server
Browser Web
WebSphere Content
Submit Everyplace Offline
Form Portal Page
Retrieve (Post)
Page or Inventory
Form
(Get)
WebCache
WebCache System
(Offline
(Offline
Everyplace Content
Content
Client Servlet)
Synchronization
Servlet)
Offline Capable Portlets
for Mobile Supply Database
Tracking System
Retrieves Web page from content source and provides Web page
including concatenating pages up to the configured link depth.
Cache
Retrieves form from portlet. After submitting the form on the client
the submitted content is sent back to the ITSORailwayInventory
portlet for further processing.
Form Static HTML Page
(ITSO Railway Supply (Train Schedule for
Consumption Record) Delivery Person)
Figure 11-7 ITSO Railway Mobile Supply Tracking System solution outline using WebSphere Everyplace
Access
There are three major blocks involved in this model (a 3-tier architecture):
Inventory system and Web server
The inventory system is the legacy application that stores the amount of used
supplies in a relational database. The database content is maintained through
a Web interface.
The Web server stands for any HTML content serving source in the ITSO
Railway network. In our example, it contains the Web page with the train
schedule and the trains that have to be supplied by the delivery staff (daily
schedules for all delivery people).
WebSphere Everyplace Access with WebSphere Portal Server (Mobile
Supply Tracking System Server)
This block is the middleware tier. It contains WebSphere Everyplace Access
including the WebSphere Portal Server. Portlets can display any content from
the Web Server. Forms-based portlets, such as the ITSORailwayInventory
portlet, are used to access the inventory system. They contain the
ITSORailwayInventory application with the Supply Consumption Record form,
Using
Web Browser
(with JavaScript
Support) ITSORailwayInventoryPortlet
(Controller)
Field
Validation Select
Request Supply
Consumption Get ITSORailwayInventory
Request/
Record ViewBean
Submit
Form
Response Set/Get
View.jsp
WebCache (for PDA)
WebCache
(Offline
Everyplace (Offline
Content
Client Content
Servlet) Get
Synchronization Servlet) Supply
Consumption ITSORailwayInventory
Record Set/Get
SessionBean
Form
Inventory
System
Supply Consumption Record Forms
rendered for PDA
View Model
Supply Consumption Record Forms
rendered for HTML browsers
The following tasks must be carried out for the Mobile Supply Tracking System
implementation:
Development effort: Portlet development for access to the inventory system
(Mobile Supply Tracking System portal application: ITSORailwayInventory).
Configuration effort: Developed portlets and Web pages must be configured
as offline content on the WebSphere Everyplace Access server.
Effort on the device: Installation and configuration of the Mobile Supply
Tracking client application (Everyplace Client and the Offline Page/Forms
applications).
Furthermore, two JSPs, one for each supported browser type (PDA or HTML),
must be available to provide the appropriate HTTP response to the requesting
client. The JSPs create the content for displaying the form on the user’s browser.
They also capture the entered data (TRAIN_NO, SUPPLY_1, AMOUNT_1) and
evaluate the data entered in Amount field (JavaScript function validate()) after
clicking the Submit button on the form:
ITSORailwayInventoryView JSP for HTML
ITSORailwayInventoryView JSP for PDA
Version 5.0.1of the toolkit, which was used for this book, contains support for the
following markup languages:
WML 1.1, 1.2 and 1.3
XHTML Basic 1.0, XHTML Mobile Profile 1.0
HTML 3.2 and 4.01
i-mode HTML 1.0
Form or Field
Invalid Forms
Manager
Simple
Form
Client Enterprise
Form or Application Application
Field Application defined/managed
Invalid communications channel
Implements little
Form and Field Validations Implements most business Enterprise application
logic for customer application business logic on the
server
More Client-Side Application Logic
Flexible placement of application components in the end-to-end continuum supports high reuse
3. Add an action listener and forms example (see Figure 11-14 on page 240).
Click Next.
4. Check PDA markup support and click Finish (Figure 11-15 on page 241).
The wizard automatically creates the whole project including the EAR files
and the portlet.xml file. The PDA markup support was automatically included
in the portlet.xml file (see Figure 11-16 on page 242).
All necessary Java and Web resource templates including JSPs for the PDA
markup are also automatically provided (see Figure 11-17 on page 243).
Figure 11-20 View of forms portlet after entering 123456789 in order ID field and clicking
Submit button
7. Change this code so that the used supplies from the ITSO Railway Mobile
Supply Tracking System example can be recorded with a Supply
Consumption Record form. Just change the layout of the form with
WebSphere Studio. The JSP editor provides a design view that allows adding
HTML and JSP-specific tags by dragging and dropping them onto the form
screen. In our example (ITSORailwayInventory project), only the form’s title
was changed. A drop-down list for the train numbers and a drop-down list for
the supplies, as well as an input field for the amount of the used supplies,
were added (changes in the ITSORailwayInventoryView.jsp; see listing in
Example 11-1).
Furthermore, the entered data (train number, type of used supply, and
amount of the used supply) are stored in the session bean after clicking the
Submit button on the handheld device (bold in Example 11-1 on page 245).
This data is stored in the ITSORailwayInventorySessionBean by the
ITSORailwayInventoryPortlet (see code changes in Example 11-2 and
Example 11-3 on page 247).
8. Finally, a field validation was added to the Supply Consumption Record form
using the WebSphere Studio field validation wizard. The form can only be
submitted if the entered amount of supplies is a digit. An error message is
displayed if a non digit character (for example, a letter) is entered into the
Select Create New Pattern and enter the pattern appropriately (see
Figure 11-22 on page 249; refer to “Validation patterns” on page 252 or the
WEA InfoCenter for details). We added \d+ so that a value of a minimum of
one digit must be entered before the form can be submitted. If this
Note that the JavaScript code for the validation function was automatically
created by the WebSphere Studio (see Example 11-4). The call of function
validate() was also automatically added to the Submit button (Example 11-5).
The error message (alert) that is displayed if the validation of the amount fails
was included manually (see Example 11-6).
9. Export the portlet containing the Supply Consumption Record form for
deployment on the WebSphere Everyplace Access Server. Select the
ITSORailwayInventoryProject in the project navigator view of WSAD,
right-click, and choose Export from the context menu. Select the WAR file
format as the destination, click Next to enter a WAR file name, and click
Finish to finally create the file (remember the destination; see Figure 11-23).
Figure 11-23 Export portlet application as WAR file for later deployment on WebSphere
Everyplace Access server
This was a short summary of how the mobile forms-based ITSO Railway Mobile
Supply Tracking System example application was created. Refer to 11.5.1,
“Configuration for offline forms-based applications” on page 253, for the
deployment; and to 11.5.2, “Using the application” on page 258, for screen shots
of this application.
Validation patterns
A validation pattern is a pattern that can be applied to a field in a form. When the
form is submitted, the value in the field is evaluated to determine if it follows the
pattern. If it follows the pattern, the field value is determined to be valid. If the
value does not follow the pattern, the value is determined to be invalid and is
rejected; usually an error message is displayed telling the user what is wrong
with the value her entered, and the user is given another chance to enter a valid
value.
The following example uses the ITSO Railway Supply Consumption Record
offline forms of the Mobile Supply Tracking client application developed in 11.4.2,
“Development of forms-based applications for mobile devices” on page 237, to
explain the necessary configuration steps. (Tip: Log on using your WEA
administrator ID for all administrative steps):
1. Log on as administrator, go to Administration, choose Portlets and Install.
Browse to the location of the previously exported offline portlet (WAR file from
11.4.2, “Development of forms-based applications for mobile devices” on
page 237) and click Install (see Figure 11-24).
Figure 11-24 Installation of ITSO Railway portlet containing the Supply Consumption
Record form in WebSphere Everyplace Access
2. Create the user group (for example, offlineformsusers), which contains all
users with access rights to the mobile inventory application (refer to the
WebSphere Portal InfoCenter for details).
3. Assign access rights to the installed ITSO Railway inventory portlet. Go to
Administration, Access, User and Group Permissions. Search for the offline
users group (for example, offlineformsusers), and click the Select Resource
Type icon (see Figure 11-25 on page 255).
Click Portlets on the next screen. Search for ITSO to find the installed ITSO
Railway inventory portlet containing the Supply Consumption Record form.
Click the Assign Access icon on the displayed inventory portlet (see
Figure 11-26).
Figure 11-26 Assign ITSO Railway portlet access rights to offline users (2)
Figure 11-27 Assign ITSO Railway portlet access rights to offline users (3)
6. Offline portlet users must configure their own offline content. Log in as a
delivery person, for example, Dan Delivery (an offline content user), who
must be a member of the offlineformsusers group (defined under point 2). Go
to the Mobile Setup page group and the Offline Browsing page. Check the
ITSORailwayInventory portlet in the displayed Offline Browser User Portlet
and click OK to make it and the included Supply Consumption Record form
available for offline synchronization (see Figure 11-32).
Since the train schedule for the delivery person is provided as offline portal
content as well (offline page), he synchronizes this schedule down to the PDA at
the beginning of a shift (PDA is cradled at the service station to connect to the
WEA server). For this synchronization, the WEA client is used (see
Figure 11-33).
Figure 11-33 WebSphere Everyplace Client: Log on, client menu and synchronization of offline content
The delivery person uses the received train schedule in order to find the train that
has to be equipped with new supplies. The used supplies can be recorded
immediately in the Supply Consumption Record form on the PDA (see
Figure 11-34 ITSO Railway Supply Consumption Record form on a PalmOS device (first screen: start
screen, second screen: choose train, third screen: enter used supply and amount)
Figure 11-35 ITSO Railway Supply Consumption Record form on a PPC 2003 device (first screen: start
screen, second screen: choose train, third screen: enter used supply and amount)
Field validation functions can also be used offline. The handheld device’s
browser must support JavaScript for this (see Figure 11-36 on page 260).
The supply data that was entered in the Supply Consumption Record form is
stored on the device and then submitted to the server the next time the delivery
person connects to the WEA server (for example, at the end of his working shift;
see synchronization menu in Figure 11-33 on page 258). The user receives the
same confirmation as when submitting the form online. If a failure occurs on the
device during the synchronization of offline forms data, WEA will try to
synchronize the offline data again (attempt to re-submit the form). Also, if the
delivery person’s cradled and connected PDA should loose its connection to the
WEA server before the form is submitted to the inventory system, WEA attempts
to re-submit the form again during the next synchronization. If the connection is
lost before the delivery person receives a confirmation for the submitted form, the
WEA server will store the confirmation and send it to the user after the next
synchronization.
11.6 Summary
This chapter summarized the basic steps for the enablement of existing
applications for mobile devices using forms. It also gave an outlook to upcoming
technology and discussed other implementation approaches for the ITSO
Railway use cases.
The second approach was discussed in this chapter. Enterprises, which already
use WebSphere Portal Server as their consolidated user front-end for application
access, face minor changes and/or extensions to portlets for mobile accessibility
in most cases with this approach. 11.3.1, “General considerations for
intermittently connected applications” on page 228, and 11.4.2, “Development of
forms-based applications for mobile devices” on page 237, explain in detail
guidelines that must be considered.
Notification
Management
Service
Management
Subscription
Management
Directory
and Security
User Services
Personalization
Client Server
Existing data
Protocol Firewall
and
Domain Firewall
Applications
Pervasive W eb Presentation Application
client Data
Data services
services server Server Server
services redirector
Database
Pervasive
ISP Gateway Collaboration
extension
(Pervasive server
services
services)
The products we used for this scenario can be seen on the following Product
mapping diagram.
D em ilitarized Z on e
O u tsid e W o rld (D M Z ) In tern al N etw o rk
W indows 2000 + SP 4
D irectory•W ebS phere P ortal S erver V 5.0.2.1
•D om ino Serv er 6.5.1
and S ecurity
U ser S ervices •IB M W ebS phere Application S erver
W indows 2000 + SP 4 Enterprise V 5.0.2.3
W indows M obile 2003 •IBM W ebS phere A pplication
S erv er V5.0 H TT P Plug-in Personalization
•IBM H T T P S erver V 1.3.26 S erver
C lient
Protocol Firewall
Domain Firewall
In this scenario, we will monitor a database field called Origin. Origin will tell the
system from where the alert were issued. S indicates an alert from a Switch
(mechanical component in the railway industry) and C indicates a service
request created by the Call Center.
The service technician has created a subscription that will trigger the database
field Origin of the maintenance database. The notification system will periodically
check if there is a new record with the trigger value = “Sx” (where x is the switch
number).
When a match occurs, the subscription manager will proceed with the notification
and start a trigger handler, which creates the notification and hands it over to the
notification manager. The notification manager will send the message to the
service technician based on his preferences and channel availability. In our
example we send a Sametime message (instant messaging product) if the user
is online, and an e-mail if the user is offline.
Content Source
Notification System 2.
4. 3. Content Adapter
(
IF User XY = online THAN
) (
IF Origin="S12" THAN
)
Channel Adapter
notify = sametime
Trigger Handler
notify User XY
ELSE notify = E-Mail
Delivery Notification Subscription
Channels Manager Manager
Intelligent Notification
Database
The notification system has two different interfaces for the user and one for the
maintenance database. There a two user interfaces supported in our example,
the rich browser access to subscribe and access all notification services such as
subscriptions, channel configuration, message center, etc. and limited browser
access for pervasive devices.
Railways
Switch
Pervasive Sensor
Computing System
Device
Limited browser access Control and
for online access to the maintenance
Notification notification system
message based
Malfunction
on user preferences
alert
and device
cababilites Push
Altert Existing
Notification
Maintenance
System
System Service request
Rich browser status
Tiggering
access to manage
subscriptions the maintenance
database for new Add and New service
and messages
Notification service request update of requests
message new service
entries
based on user requests
preferences and
Value of
Service
available clients
the triggered
Center
Rich Client database Maintenance
fields
Database
Developers can create new subscriptions in order to utilize other types of content
sources. In order to develop a subscription, a developer must create a
subscription portlet, a trigger handler, and a content adapter. The subscription
application allows the subscriber to subscribe to the content source and set
subscription/matching parameters. The content adapter retrieves data from the
content source, transforms it, and sends it to the Subscription Manager. The
content adapter APIs are designed to make it as simple as possible for a user to
publish data from new content sources as they become available. The content
adapter APIs enable the developer to focus on writing code to retrieve data from
the content source rather than writing code to interface with the Subscription
Manager.
Trigger handlers are also considered part of the subscription because they
control what happens when an action is performed on a subscription, such as on
add, on update, on query, or when a subscription matches content that is
published to the system.
4. Pass the populated subscription bean to the subscription manager via the
SubscriptionManager.addSubscription() method. For example:
subManager.addSubscription(newSub);
You can optionally override the doView(), doAdd(), doModify(), and doHelp()
methods. These methods are called for each of the "modes" that the portlet can
be in. The doView() method is called when the portlet is in its default "view"
mode. The doAdd() method is called when the portlet is in "add" mode, when a
user is adding a subscription. The doModify() method is called when the portlet is
in "modify" mode, when a user is modifying the parameters of a subscription.
If you want to perform more specific actions than the default actions of the
superclass, you must override the actionPerformed() method of the
ActionListener interface.
public void actionPerformed (ActionEvent event) throws PortletException { ... }
Write code segments to handle an "add" event, a "modify" event, and a "delete"
event. Create conditional expressions to test for and handle each of these cases.
Add events happen when the action name is "add." Modify events happen when
the action name is "modify." Delete events happen when the action name is
ACTION_DELETE.
When the action name is "add," call the subscription bean constructor method to
create a new subscription bean to add.
SubscriptionBean newSub = new SubscriptionBean();
Then populate the new subscription bean with parameters from the subscription
request. For example:
String notificationOption = request.getParameter("notificationOption");
if (notificationOption != null) {
newSub.setNotificationOption(notificationOption);
}
Then populate the subscription bean with new parameters from the subscription
request. For example:
String notificationOption = request.getParameter("notificationOption");
if (notificationOption != null) {
subBean.setNotificationOption(notificationOption);
}
When you extend the SubscriptionBean class, specify any additional properties
that are specific to your custom subscription portlet. For example, the
NewsSubscriptionBean class specifies the NewsSource and Subject variables,
Declare property keys for the subscription properties specific to the custom
subscription portlet.
Note: The trigger handler for this subscription portlet must handle these
properties.
You can optionally write getter and setter methods for each of the custom
subscription properties. If you do not write getter and setter methods for each of
the custom subscription properties, you can instead access the properties from
the subscription controller by calling the getProperty and putProperty methods of
the superclass of subscription bean.
The .java source code must be compiled into .class files before it can be
executed by the portlet. Use the same java compiler that is used by your version
of WebSphere Application Server, which is installed in <WebSphere_root>\java.
Several jar files will need to be included in the compiler's classpath. From the lib
directory of the Intelligent Notification Services Portlets
<WPS_root>\installedApps\INSPortlet_PA_xxxx.ear\INSPortlet.war\WEB-INF\lib
(where the xxxx will be different for each installation) you will need:
INSPortlet.jar
insSmClient.jar
insUtil.jar
8. Display text entry or other type of input widget for each subscription
parameter setting. Populate the input with the value of the corresponding
variable. If the user is adding a new subscription, the variable value is blank. If
the user is modifying an existing subscription, the variable value is that of the
subscription and will be modified by the user.
To develop a custom trigger handler, you must write a Java class that extends
the TriggerHandler class. You can view the source code for the sample stock or
weather trigger handlers to see an example of how to extend TriggerHandler.
The easiest way to create a custom trigger handler is to modify one of the
sample trigger handlers to match your needs.
Demilitarized Zone
Outside World (DMZ) Internal Network
Directory
and Security
User Services
Personalization
Client Server
Existing data
Protocol Firewall
and
Domain Firewall
Applications
Pervasive W eb Presentation Application
client Data
Data services
services server Server Server
services redirector
Database
Pervasive
ISP Gateway Collaboration
extension
(Pervasive server
services
services)
Figure 13-1 Runtime pattern for the ticketing scenario implementation using Workplace Client Technology,
Micro Edition
This chapter describes how the Train Station Ticketing application is extended
for use by mobile workers, in this case train conductors. The architectural
overview model, shown in Figure 13-2 on page 285, demonstrates the entire
system and shows the high-level components involved in the system. The user
interacts with the ITSO Railways Ticketing application that runs standalone on
the mobile device. The ITSO Railways Ticketing application accesses the local
database, and when a ticket is purchased, adds a ticket purchase record to the
local database. Also, when tickets are purchased the application places a
message on the message queue. Any data updates that occur on the mobile
device are synchronized to the pervasive server (when the device connects to
the network). These data changes are then forwarded to the enterprise
application (Train Station Ticketing) for processing.
ITSO Train
Railways Station
Ticketing Ticketing
Application Application
Pervasive
Server
This scenario is based on the Pervasive runtime pattern for Robust Device
Based Solutions runtime pattern and it is implemented using the Workplace
Client Technology, Micro Edition, along with DB2 Everyplace, which provides a
local database and data synchronization between the device and the server and
MQ Everyplace, which provides the messaging service.
Ticket purchases are defined as messages and processed by the Train Station
Ticketing application. ITSO Railways wanted to extend that model to the
pervasive solution. MQ Everyplace provides the messaging service that fits this
model. The new Ticketing application will create the ticket purchase messages
required by the Train Station Ticketing application.
The actual Product mapping for this scenario can be found on the following
diagram.
D em ilitarized Z on e
O u tsid e W o rld (D M Z ) In tern al N etw o rk
W indows 2000 + SP 4
D irectory•W ebS phere P ortal S erver V 5.0.2.1
•D om ino Serv er 6.5.1
and S ecurity
U ser S ervices •IB M W ebS phere Application S erver
W indows 2000 + SP 4 Enterprise V 5.0.2.3
W indows M obile 2003 •IBM W ebS phere A pplication
S erv er V5.0 H TT P Plug-in Personalization
•IBM H T T P S erver V 1.3.26 S erver
C lient
Protocol Firewall
Domain Firewall
Figure 13-4 shows the high-level system design, which includes the pervasive
device and the server environment. Three tiers shown in Figure 13-4 are:
The ITSO Railways Ticketing application (in Tier 1) runs on the mobile device.
This application interacts with the local database and the messaging service.
The pervasive server (logical tier) contains the runtime middleware, which
supports the sharing of data and messages between the device and the
enterprise server. It contains the DB2 Everyplace Synchronization Server and
MQ Everyplace. The DB2 Everyplace sync server is used to synchronize
enterprise data (for this application) to the device. The MQ Everyplace queue
manager gets messages from the mobile device’s message queue.
The third tier is the ITSO Railways enterprise server environment, which
contains the business application and the business data. This tier contains
the Train Station Ticketing application, which processes the ticket purchase
messages, creates interfaces to other business applications, and updates the
enterprise database as needed.
In this scenario the data synchronization and the message transfer occur over
the air whenever a connection is available.
ITSO MQ Everyplace
Railways
Ticketing Train Station
Application Ticketing
Application
Message
Queue
DB2 Everyplace
Message Synchronization
Queue Server ITSO Railways
Database
Local
Database
Figure 13-5 shows the component diagram of the sample application. In the
sample application, the Ticketing Servlet parses the request from the client
browser and determines the actions to take. The TicketingServlet invokes
methods on the TicketingService to retrieve data from the local database, update
the local database, and to put messages on the message queue.
Ticketing
Servlet
Ticketing
JSP(s)
Ticketing
Service
Class diagram
Figure 13-6 on page 290 and Figure 13-7 on page 292 show the class diagrams
for the ITSO Railways Ticketing application.
orderconfirmed.jsp
purchasetickets.jsp
selectdestination.jsp TicketingServlet
selectorigin.jsp
Ticketing.jsp
ServiceTracker
TicketingService TicketingService
Impl Tracker
The classes shown in Figure 13-7 on page 292 are associated with the
TicketingServiceImpl:
TicketingTransportListener - A listener for messages being sent by the MQ
server.
TicketingMessage - (Implements IMessage and extends MQeMsgObject)
provides the getters and setters for this specific message object:
– IMessage - Defines the basic methods required for messaging to be used
– MQeMsgObject - The basic message object within MQe used to convey
information from one application to another via a sequence of queue
managers
TicketingSystemConstants - An interface that defines the constants used to
access system properties as well as those constants used to define queue
and queue manager names.
TicketingMsgConstants - An interface that defines the fields in a message.
Ticketing
TicketingMsg
Base Database
IMessage Constants
Message Envelope
Envelope
Origin Destination
Interaction diagram
The interaction (sequence) diagram, shown in Figure 13-8 on page 294, depicts
the conductor using the ITSO Ticketing application. Once the conductor starts,
the application flow of controls occurs, as follows:
1. The TicketingServlet invokes the TicketingService’s getOriginList() method.
2. The Ticketing Service invokes the TicketingDatabase’s getOriginList()
method, which retrieves the origins from the Origin table.
3. The TicketingServlet invokes the ServletContext’s getRequestDispatcher()
method to display the selectorigin view to the conductor. The conductor then
selects the appropriate origin and clicks Accept. The action is set to
SelectDestination.
4. The TicketingServlet invokes the TicketingService’s
getDestinationForOrigin().
5. The TicketingService invokes TicketingDatabase’s getDestinationForOrigin(),
which retrieves the possible destinations from the Destination table.
6. The TicketingServlet invokes the ServletContext’s getRequestDispatcher()
method to display the selectdestination view to the conductor. The conductor
Start application
1. getOriginList() 2. getOriginList()
3. getRequestDispatcher()
Select
origin
4. getDestinationForOrigin() 5. getDestinationForOrigin()
6. getRequestDispatcher()
Select
destination
9. getRequestDispatcher()
Purchase
tickets
14. getRequestDispatcher()
Order
confirmed
There are various architectural decisions that went into designing this
application. These include:
Integration pattern
Integration pattern
The first high-level architectural decision was to select the Access Integration
pattern because it met both the business and IT requirements for the solution.
We found the pervasive device support service within the access integration
services to be particularly appropriate for this architecture. The pervasive device
Support service targets the needs introduced by pervasive devices.
Application pattern
The application pattern selected for this scenario is the Pervasive Device
Adapter pattern, which provides a structure for extending the reach of the
enterprise application (Train Station Ticketing) to pervasive devices.
This scenario uses both the Client to Pervasive Device Interaction pattern and
the Pervasive Device to Server Exchange pattern. The client to pervasive device
interaction is used because the client, in this case the train conductor, interacts
with the application located on the device. The Pervasive Device to Server
Exchange pattern is used because the device must exchange data (in the local
database) and messages (stored in the message queue) with the server when
network connectivity is available.
Design pattern
The classic Model-View-Controller design pattern maps nicely to this application,
as was shown in Figure 13-5 on page 288. The model represents the application
object that implements the access to the application data and business logic. The
View is responsible for formatting the application results and dynamic page
construction. The Controller is responsible for receiving the client request,
invoking the appropriate business logic, and (based on the results) selecting the
appropriate view to be presented to the user.
Please note that WebSphere Studio Site Developer could have been used
instead of WebSphere Studio Application Developer as the base development
environment.
Because we are using MQe and DB2e we also installed (from the technologies
directory):
DB2 Everyplace V8.1.4
MQ Everyplace V2.0.1
The Ticketing Web application relies on numerous classes within the ITSO
Railways Ticketing Service Project to interact with the OSGi Framework, SMF
services, and the MQ Everyplace messaging services. Even though they are
important to this application, we will be focusing primarily on the Java classes
with the ITSO Railways Ticketing Web application. As stated earlier, we used the
Order Entry example that comes with WebSphere Client Technology, Micro
Edition as the base for our sample.
/**
submits the purchase ticket transaction
**/
public void submitOrder(String origin, String destination, String singles,
String returns, String cardHolder, String cardNumber, String expireMonth,
String expireYear, String totalCost);
The doRequest() method provides the control flow for the application. Each user
request is a parameter, which is put into the string named action. The action is
used to inform the servlet of the user’s response to the screen previously
displayed. The possible action values are:
SelectOrigin
SelectDestination
PurchaseTickets
The TicketingServlet uses the TicketingService to obtain data from the local
database for display by the appropriate JSP. The doRequest() method is shown
in Example 13-2, which nicely maps to the interaction diagram shown in
Figure 13-8 on page 294.
Example 13-3 on page 303 shows the code generated for the selectorigin.jsp.
The setting of the action parameter is highlighted. The JSP uses the originVector
to load the drop-down list with the possible ticket origins.
<%
}
}
For more details on using MQ Everyplace look at the IBM Web site:
http://www.ibm.com/software/wmqe
5. In the Choose Main Type window, select Server and click OK.
6. Select the JRE tab.
7. Select the Extension Services Generated JRE (JCL Foundation) and click
Run.
A J9 console window displays after you click Finish. Minimize the window and
return to WebSphere Studio. If you close the window, the server terminates and
the sample application will not function correctly.
Perform the following steps to submit the ITSO Railways Ticketing Service
bundles to the Extension Services Local Server:
1. In the SMF perspective, right-click the ITSO Railways Ticketing Service
project and select SMF → Submit Bundle.
2. In the resulting Target Submission window, select Submit Jar.
3. Select Admin@localhost:8080/smf in the Export Targets box.
4. Click Finish to submit the bundle to the bundle server.
5. Switch to the Bundle Server view and open Admin@localhost:8080/smf →
Bundles. Verify that bundle names TicketingCommon and TicketingService
are listed.
When the application starts it displays an initial splash screen. On this screen,
click Start to begin the application.
Next the ticketing Select your Origin screen displays. Select the origin of your trip
from the drop-down list and click Accept.
Now the Select your Destination screen displays. Select the destination from the
drop-down list and click Accept.
The Purchase Tickets screen displays. Select a single ticket type and a return
ticket type from the drop-down lists. Enter the card holder’s name, the credit card
number, and the expiry date (month and year). Any values for credit card
information will be acceptable. Click Submit.
For this purpose ITSO Railways employs a call center operation, but because of
potentially large volumes of calls at particular times of the day with only minimum
use at other times the call center represents a major cost for ITSO Railways.
Directory
and Security
User User Services
Personalization
Telephony Server
Client
client
Existing data
Protocol Firewall
Domain Firewall
and
Applications
Pervasive
Voice Presentation Application
client
gateway Server Server
services
Database
Voice
Voice and/or
and/or
Data
Data services
services Pervasive
Collaboration
(VoIP)
(VoIP) extension
server
services
Telephony
connector
The Product mapping for the scenario that we used in this chapter can be seen in
the following diagram.
A IX 5.2
D irectory •W ebSphere P ortal Serv er V 5.0.2.1
and S ecurity •D om ino S erv er 6.5.1
AIX 5.2 •IB M W ebS phere Application S erv er
U ser U ser Serv ices
•IB M W ebS phere V oice R esponse V 3.1 E nterprise V5.0.2.3
•IB M W ebS phere V oice S erv er V 3.1
- Tex t-T o-S peech Engine
P ersonalization
- V oice R ecognition E ngine
T elephony Serv er
C lient
client
Ex isting data
and
Protocol Firewall
Domain Firewall
A pplications
Pervasiv e
V oice Presentation A pplication
client
gateway S erv er S erv er
serv ices
D atabase
V oIP application
P erv asiv e
extension
VVoice
oice and/or
and/or serv ices
DData
ata serv
services
ices
(V
(VoIP)
oIP )
C ollaboration
T elephony S erv er A IX 5.2
connector •W ebSphere V oice Application A ccess V5.0
•V oiceXM L B rowser
The high-level requirements are captured in the next figure. This shows a
high-level use case for the application.
While the initial requirements (IVR with grammar-based approach for speech
recognition) could be met by use of a standard IVR/speech recognition system,
the requirements (including direct extensibility for multiple applications and
multi-channel re-use) indicate the need for an alternative approach that
guarantees these requirements.
The architecture requirements show that the system would be responsive to any
telephony device (landline, mobile, VoIP, etc.) and would require a telephony
server for call control and management, and a voice server to respond to
customer queries and provide speech responses based on the query. In order to
The activity diagram shows a generalizable solution for the call flow and can be
extended to meet most information access requirements for callers into the ITSO
Railway automated information system.
The caller initiates the call and is given a greeting by the call manager that also
initiates an VoiceXML script to handle the call. The greeting and subsequent
There are two options for this speech output. The greeting and subsequent
queries could be written “in-line” in the VoiceXML code or could be called from a
local database. In this case the solution could be met by in-line data, but a more
generalizable solution is implemented to provide extensibility for future
requirements.
The text for presentation is sent to the speech output system for presentation. In
this case there are also two options. One is to present the speech as
text-to-speech (TTS) from the voice server. The other is to call a speech file (for
example, .wav) from the local database for presentation to the caller. In this case
ITSO Railways has elected to use natural speech from a selected speaker and
so .wav files will need to be presented via the call management system (although
any compression format could be supported depending on the network
requirements). However, for development the TTS files can be used.
After presenting the prompts to the user, the system collects responses from the
caller to the queries. This could be handled in a sequential manner with each
query given an answer (what is the departure location, what is your destination
location, etc.), or the system could ask a general question (for example, please
tell us what journey you want to make), and could recognize the natural language
response. These options differ in complexity.
The second option is to collect a range of data about the way callers ask for
timetable information. For instance, to the general question “Please tell us what
journey you want to make,” a caller might say, “I want to go from Raleigh to
Durham at around 3 p.m.” Once a sufficient number of potential user utterances
to the query have been collected, a statistical language model (SLM) can be built
that is used to determine the action intention of the caller. This approach is
referred to as a Natural Language Understanding (NLU) approach.
In the present requirements, because the queries to the caller can be well
structured (“where do you want to leave from?”), and there are only three
queries, ITSO Railways has decided on the basis of cost benefit to implement a
grammar-based approach. However, it recognizes that once the system is in
place it could easily collect the required data for the SLM (by initially prompting
the caller with “Just say where you would like to go and at what time”) and use
the menu presentation as a backup while it collected the data for the necessary
SLM. This approach would permit ITSO Railways to extend its automated
service to a range of other activities (such as including booking and itinerary
checking applications) using more natural dialogue interactions.
14.4 Components
In order to satisfy the architecture and activity requirements the following set of
components can be assembled.
Given ITSO Railways requirements for extensibility in the future to both more
complex applications and to multichannel re-use of information, WebSphere
Voice Application Access was selected as the core technology.
There are a number of issues to consider in completing a call flow design. These
are described below.
Error recovery strategies will depend on the accuracy of the speech recognition
engine for the application. All automated speech recognition technologies
produce errors, and the ability to recover from them will determine the user
satisfaction with the application. If the application is likely to be error-prone
However, if the system has low complexity and grammar requirements, then an
initial announcement about error recovery systems delays the dialogue flow and
reduces user satisfaction. This means that it is useful to obtain test data for the
operation of the system before incorporating a full error recovery system, basing
the design decisions for the error recovery approach on the accuracy of the
recognition.
Other options to include are error recovery options within the main menu choices
(for example, “If you need more information just say help.”).
After an application persona has been developed, the “voice” for the application
that matches both the persona criteria and provides clear presentation over a
telephone can be selected. Audio prompts are developed from the dialogue
design, grammar predictions, and persona criteria.
The basic information around which these decisions are made is the design of
the interface call flow. An example call flow for the ITSO Railways is presented in
Figure 14-7.
The toolkits are add-ons for either WebSphere Studio Site Developer V5.1 or
WebSphere Studio Application Developer V5.1.
The functionality of Voice Toolkit 5.0 that will be deployed for this application
includes:
The Graphical Call Flow Builder providing drag-and-drop call flow design as
well as scripts and VoiceXML structures for development.
A VoiceXML Editor that includes a wizard for selecting and customizing
Reusable Dialog Components. These components can provide significant
effort savings if they contain the vocabulary and grammar options. For
instance, one re-usable grammar contains the names of major US cities. In
this case the ITSO Timetable information resides in a proprietary database
that will be used to develop the vocabulary with standard grammar
constructions added for implementation. In future applications for ITSO the
developed grammar will be added to their Re-Usable Dialog Components and
re-used for subsequent applications.
VoiceXML.
A grammar editor supporting VoiceXML 2.0 formats for building grammar
requirements for the timetable application.
A IBM extension to VoiceXML (based on the International Phonetc
Association Representation) Pronunciation Builder that permits modification
and creation of vocabulary pronunciations. This is an important component
for dealing with names of stations, etc., that might vary from normal language
pronunciation of the items. In the current development this tool will be used to
add to the vocabulary recognition values (to accommodate multiple
pronunciations of station names) and over-ride standard TTS values to
approximate local pronunciation usage.
Audio recorder that will permit recording and testing of user prompts for the
application as well as for recording the timetable database and time
information.
Figure 14-8
The application can be developed using the Voice Toolkit tools described in the
following sections.
In order to consolidate a number of grammar options that have been available for
grammar development (Nuance GSL, IBM BNF, Java Speech Grammar Format)
the W3C has proposed two main grammar formats for VoiceXML 2.0. This
includes the Augmented Backus-Naur Format (ABNF) and an XML form of a
Speech Recognition Grammar Specification (SRGS). ABNF has been used for a
long time (for example, HTTP is specified in ABNF) and provides an
easy-to-read, compressed view of grammars. SRGF is hierarchically arranged
text strings encapsulated in XML elements. This makes the XML considerably
longer and more difficult to read. The VoiceXML 2.0 standard only requires
SRGF. This is the option employed here and provides portability across a range
of applications.
Figure 14-9
This shows that the basic grammar file is created with a list of grammar items
providing station locations.
For practical applications we need to extend this grammar to include the range of
possible usage utterances that users will respond with to the prompt. As an
example, in the next example options for “um, I want to go to” are added prior to
the target list and “please, thank you” are added as a suffixes to the grammar. In
actual practice there could be a range of possible usage grammars that might
need to be added to the ensure reliable recognition.
The rule stations is included here to show what items would be added. However,
for the ITSO Railways application these target items for the grammar would be
available from an ITSO Railways database that will be called as a Java Server
Page to create dynamic availability of the database. This will be demonstrated in
the application development.
http://www.w3.org/TR/speech-grammar/
For the ITSO Railways development a trial database is constructed based on the
following table.
Raleigh Durham AM 6
Raleigh Durham AM 10
Raleigh Durham PM 4
Raleigh Durham PM 6
Raleigh Wilmington AM 8
Raleigh Wilmington PM 10
3. Click Next.
4. Switch to the call flow perspective by selecting Window → Open
Perspective → Callflow.
In this call flow the dynamic grammar presentation will be added in the “put
grammar here” container. In the call flow the time of day request has been
constructed as an in-line grammar because, in the example, only two options are
presented. If more times were required (for example, every 5 minutes of the day),
the grammar would be created as a dynamic external grammar application. This
application might, for example, calculate the current time and offered selections
based on the criteria of "trains in one hour from now".
The application can use natural speech recorded from a selected speaker or
text-to-speech output from the voice technology platform (WebSphere Voice
Server).
ITSO Railways have selected a natural spoken voice for their application. For the
full implementation this will involve recording each station name, and each time
of departure so they can be played back in response to the user request. The
current development of the application will use the TTS option in the call flows
(which is automatically invoked for VoiceXML if an audio file is not available).
This section briefly describes the process for speech file creation for the prompts
for the development and for the prompts and responses in the final
implementation.
1. From the Call Builder Perspective open the Audio File tool by selecting File
→ New → Audio File.
5. Before starting recording the microphone needs calibration. To set the level
select the Microphone icon, then select Script.
The Audio File tool could be used to record the prompts during the development
as well as for implementation. To construct the natural speech responses to the
caller queries (for example, “The next train leaves at ..”, etc.), natural speech files
would need to be concatenated to produce the necessary statements. This
would require an audio tool with this functionality.
2. Select Generate Code → Voice Portlet. This generates the .jsv page for the
project. This can be viewed from the Project Navigator.
3. Click Finish.
4. Under the Server Perspective select New → Server and Server
Configuration to create the monitor server.
6. Click Finish.
7. To configure the proxy server for the Monitor, double-click Monitor.
8. Select Configure switch ports as shown in the next picture.
9. Type in the ports. Enter values for the local and remote ports. Set the local
port to 9080 and the remote port to 9081.
10.Run the sample application by selecting Run from the menu, then Run again.
11.We need to configure a new application client. Select VoiceXML JavaServer
Page → New.
12.Select Voice, and type in the JavaServer Page URL as shown above.
13.Select Run. This will display the Monitor Output.
The extension of the voice portlet that provides voice access to the timetable
information into other devices is described in Chapter 10, “Web access to ITSO
Railway’s timetables” on page 189.
Applying the Patterns for e-business approach will help to classify and structure
the business and IT needs in order to get a common set of decision criteria and
an architectural baseline for connectivity and access services for pervasive
devices.
D em ilitarized Z o n e
O u tsid e W o rld (D M Z ) In te rn al N etw o rk
D irecto ry
and S e curity
U ser S erv ice s
C lient
Protocol Firewall
Domain Firewall
C onnectiv ity
P erv a siv e W eb CCoom
and A ccess mppan
a nyy
client DData
a ta services
service s serv e r ppriva te
for Perv a siv e rivate
serv ice s red irector in
serv ices intran
tranetet
IS P G ate way
(P e rv asiv e
se rv ices)
D em ilitarized Z on e
O u tsid e W o rld (D M Z ) In tern al N etw o rk
D irectory
and S ecurity
Serv ices
U ser
A IX 5.2
•IBM W ebS phere A pplication Serv er
V 5.0 H T TP P lug-in
W indows M obile 2003
•IBM H T TP S erver V 1.3.26 A IX 5.2
C lient •D om ino S erv er 6.5.1
Protocol Firewall
Domain Firewall
C onnectivity
Perv asive and A ccess W eb
client D serv er VVo
o ice
ice an
and/o
d/orr
Data
ata services
services for Perv asiv e
services serv ices redirector D
Data
ata services
services
Security services
This section discusses the security services in further detail.
Authorization
Authorization grants or denies access to information and applications based on
security policies and access control. The authorization service creates a security
context for a connection and maps the identified entity to the designated access
policy. The access policy is represented by access roles and related access
control lists (ACLs).
Integrity
Integrity assures that data is unchanged from its source and has not been
accidentally or maliciously modified, altered, or destroyed.
Networks
In the example environment shown in Figure 15-4, typical wired networks such
as the Enterprise LAN, Dial-In, and Broadband DSL/Cable are extended by
wireless networks.
The table below shows typical network technologies with theoretical troughput
and transport medium.
Messaging services
Messaging services enables users to stay connected to clients, co-workers,
friends, and family even when not able to take a call. It can notify and alert the
mobile workforce as well as provide information services. Common services
include the following technologies:
SMS and MMS services
WAP push
Connection modes
Access to business applications in mobile environments can be classified in two
connection modes:
Online access - Typical browser access, for example. This applies mostly to
applications where the business logic is represented on the server side.
Offline access - Working offline needs more business logic on the device.
Data transmission is queued and will synchronize when the network is
available.
Roaming
In wireless networking, roaming refers to the ability to move from one network
area to another without interruption in service or loss in connectivity. Roaming
provides seamless use of voice and data services.
The sample network setup in Figure 15-5 shows a typical enterprise environment
with different locations using private and public networks. Roaming between
those networks is becoming more important and should be considered an
enterprise mobile access service. Roaming between those networks must be
controlled by the enterprise in order to manage security, availability, and network
independence.
Providing multi-modal access to business data is one of the key topics in the
mobile world.
Secure Socket Layer (SSL) offers some basic VPN functions like an encrypted
tunnel between client (browser) and server (Web server, Application server,
etc.). Instead of encapsulating all data frames in a “VPN” data packet, SSL is
limited in protocol and security services. It is a standard encryption method on an
application layer, but cannot transport any protocol.
Data compression
Optimizing and reducing the amount of data transmitted over the Internet
reduces the response time and connection costs. Data compression reduces the
size of data frames to be transmitted over a network link by coding and decoding
the transferred packets on both ends of the transport path. A mobile gateway
with compression cannot only improve response time, but can also reduce
connection cost.
Application architecture
Knowing the application architecture presented by application overview
diagrams, component models, use cases, interaction diagrams, and
programming concepts will show how the different components will interact. This
is vital information in order to evaluate requirements for the mobile access.
Programming model
There is a wide range of programming models on the mobile environment from
standard-based platforms, such as Java and Linux, to vendor-specific
applications like .Net or native programming. It contains important information on
how to integrate mobile access services into the overall solution. It is also an
indicator of future application requirements and communication methods.
Communication protocols
In the context of the application architecture and programming model different
communication protocols can be used. It is essential to understand what
protocols the applications will use.
Application security
Application security will identify what type of security mechanism will be used in
the application. Mobile applications may provide their own security mechanism,
which will be combined or enhanced with security mechanisms supported by the
mobile access service. Single sign-on capabilities will improve user experience
and security, but they require further integration.
Device types
There are a huge number of mobile devices in the market and new models
emerging every day. They differ in user interface, communication capabilities,
operating environment, technology options, and more. A clear classification of
those devices is getting more difficult since typical functions are mixed up in
many cases. Typical device types are:
Mobile phones: Devices with a voice interface and numeric keypad only.
smartphones: smartphones extend mobile phones with a bigger display and
user interface, and provide a more powerful platform and browser access;
also, some basic PDA functionality like agenda, address book, and text
editors.
PDA devices that focus more on PC type of application environment and user
experience. Functionally rich PDAs are able to be an alternative to laptop and
desktop PCs in some business environments. A more comfortable user
interface allows different input methods such as handwriting recognition,
pointing device and device extensions such as external keyboard, memory,
network adapters, and so on.
Tablet and laptop computers that offer a full user experience.
Security mechanism
Loss, theft, and other security issues prevent many companies from deploying
mobile solutions. Mobile devices are attractive targets to many attackers
because the ability to hold and access important business information increased
with new technologies and device capabilities. The security mechanism of the
device must support the corporate security model for a mobile workforce
environment with additional policies, processes, and technologies.
There are two security domains on the device environment: Device and transport
security. Device security offers physical device safety and the data protection on
the device, while transport security will protect data transmission. Supported
security mechanisms on mobile devices can differ widely and must be evaluated
to determine the supported security level on the device and decide whether a
device will satisfy the corporate security policy and standards.
Architectural decision Mobile access service will enable mobile and remote workers
to access corporate applications and information.
Problem statement The mobile access service should integrate with existing
infrastructure and back-end systems. The question is how to
best provide connectivity to those systems for different user
groups and different applications and information.
Table 15-5 on page 379 shows a sample asset classification table that indicates
the proposed security mechanism for each asset. We assume that all assets will
need some basic security services such as Identification and Authentication,
Authorization, Privacy, and Confidentiality and Availability.
Conductors will store customer data on their device, such as credit card
numbers, reservations, and a penalty list. This information must be protected
from unauthorized access, theft, changes, and loss.
Beside the base services, protecting the data from being changed or lost is the
important security service for the technical train personal.
Service personal will have mostly non-critical information on their devices, except
their personal data and work reports.
The figure below shows a high-level architecture of the ITSO Railways network.
It consists of an internal and external network separated by a security
architecture with firewalls and access control symbolized by a firewall in the
diagram. The mobile access service will enhance this architecture by a mobile
gateway to allow access to the corporate network for a mobile user.
Customers Roaming
In the ITSO example we have different use cases described. See Chapter 5,
“ITSO Railway sample overview” on page 87, for more information about the use
cases, application overview, and communication information.
Table 15-7 shows an overview of the ITSO Railways applications in context with
the communication, target device, application security, and programming model.
This table outlines the ITSO scenarios relevant for the mobile access with
additional information such as a communication profile, target devices,
application security, and programming model.
Backup and recovery Existing and planned backup and recovery processes
will minimize outage time.
The tables below show how required ITSO Railways functions are mapped to
WebSphere Everyplace Connection Manager functions.
This chapter describes one possible approach for a mobile device management
solution. Requirements and use cases from the ITSO Railway example
(Chapter 5, “ITSO Railway sample overview” on page 87) are used throughout
the chapter.
Demilitarized Zone
Outside World (DMZ) Internal Network
Directory
and Security
User Services
Personalization
Client Server
Existing data
Protocol Firewall
Domain Firewall
and
Applications
Pervasive W eb
Presentation Application
client Data
Data services
services server
Server Server
services redirector
Database
Pervasive
ISP Gateway Collaboration
extension
(Pervasive serv er
services
services)
Presentation/ synch/asynch
Application Application
The Product mapping for the scenario can be seen in the following diagram.
D irectory
and Security
U ser S erv ices
W indows 2000 + SP4
W indows M obile 2003
•IB M W ebS phere A pplication S erver
V5.0 HT T P Plug-in P ersonalization
•IB M H T TP Serv er V1.3.26 Serv er
C lient
Protocol Firewall
Domain Firewall
P ervasive W eb
Presentation Application
client DData
ata services
services serv er
Serv er S erver
serv ices redirector
The following business context was identified for a device management system
(see Figure 16-3 on page 396). Since ITSO Railways has introduced new mobile
solutions to their employees (for example, the new mobile inventory system from
Chapter 11, “Mobile Inventory Management with offline forms” on page 211, and
the new ticketing application from Chapter 13, “Using Workplace Client
Technology, Micro Edition” on page 283), a management system for the new
mobile devices is required. The main functions that must be covered by the new
mobile device management solution are:
The installation and removal of software
Device software inventory collection
Remote device configuration
See the requirements from ITSO Railway in 5.10, “Maintain the mobile devices”
on page 97. A user interface for the administrator of the new device management
system is also desired in order to be able to create appropriate device
management jobs from a single administration point.
Mobile
Device ERP System
User Device Management Job Backend
-Create inventory list
-Software distribution
(installation and
configuration) Inventory System
-Device configuration (Backend)
(network settings,
password, etc.)
Device Management
Configuration and
Administration
Figure 16-3 Business context for ITSO Railway device management example
We simplified the use case model for the ITSO Railway device management
example and reduced the use case description to the following constructs:
Actors (name, description, status, superclass, subclass, and associations)
Use cases (number, subject area, business event, name, overview,
preconditions, description, associations, inputs, outputs, usability index, and
notes)
Communication Association diagram
Actors
The following actors are of interest for the new device management solution:
Mobile device user
Device management agent trigger
Device management agent
Administrator
Figure 16-4 shows the actors and their interaction for the ITSO Railway example.
Detailed descriptions to these use case actors can be found in Table 16-1 on
page 398 through Table 16-4 on page 399.
Actors
Mobile Device
Device
Management
Agent
Mobile
Device
User
Device Device
Management Management
Agent Trigger
System
Using
Networked Extends
Administrator Workstation
Figure 16-4 ITSO Railway device management system - Use case actors
Brief description The mobile device user is the person in the company who
works with a mobile device in online and offline mode. More
then one application can run on the device, and are used for
different business purposes (for example, e-mail, train supply
recording, ticketing system). The mobile device user can
initiate DMS job queries (by starting the device management
agent).
Status Primary.
Relationship
Brief description The device agent trigger is a local program that can
automatically start the device management agent. This trigger
can be controlled locally on the device (for example, by the
WEA client, by a timer program) or remotely (for example,
through a SMS).
Status Secondary.
Relationship
Brief description The device management agent is located on the mobile device
and is the corresponding client program to the device
management server. The agent queries the server for assigned
jobs and executes them appropriately.
Status Primary.
Relationship
Superclass: None.
Status Primary.
Relationship
Superclass: None.
Use cases
Use cases describe functional requirements. They are used as inputs for the
system and application design. Furthermore, use cases describe the potential
uses of the solution delivered to the customer. The final solution test runs utilize
the use cases the customer and the system provider agreed to at project start.
The following use cases were considered in the ITSO Railway device
management system (DMS) example:
1. Create software package.
2. Submit and assign job.
Device management use cases can be very complex. Because of this, the Run
Job use case covers the following use cases in this chapter:
Software distribution
Inventory collection
Bootstrap (initial installation and configuration of device)
Device configuration
Application configuration
Table 16-5 on page 402 to Table 16-9 on page 407 list these use cases in detail.
Create and
Submit Job
Administrator
Device
Device
Enrollment
Device Device
Management Management
Agent Trigger Agent
Initiate Job
Query
Mobile
Device
User Software Distribution Inventory Collection
Run Job
Device Configuration Application Configuration
Association
Bootstrap
Workflow Example
Figure 16-5 Use case association diagram for ITSO Railway device management
solution
The device management agent (DM Agent) and the device management agent
trigger (DM Agent Trigger) run on the mobile device. The mobile device user can
interact with the device management agent directly in order to initiate a server
contact (initiate job query). The user must provide a user name and password,
which the agent must provide to the server at the beginning of each server
connection.
The DM Agent Trigger is a program that can automatically trigger the DM Agent
to connect to the server. This trigger process could be kicked off periodically by a
The first contact with the server during which the mobile device is registered with
the device management server is called enrollment. After this, the device
management agent can contact the server and query it for available jobs. If jobs
are available for the device, they are either immediately executed or deferred.
This is configurable during the job configuration time.
Log records and/or user messages must be provided to be able to track job
execution. If a job fails, the reason must be determined. The job must be
re-submitted for a new execution on the effected device.
The following tables describe the five major ITSO Railway mobile device
management use cases.
Actors Administrator.
Use case overview Administrator packages software for distribution through device
management server.
Use case Used by Create and Submit Job (for software distribution) use
association case.
Use case notes Use case is only necessary for software distribution jobs.
Business event Information about the mobile device is needed (for inventory),
new software must be delivered to mobile device or mobile
device configuration must be changed.
Actors Administrator.
Use case notes In order to simplify the ITSO Railway example the following use
case summarizes these more specific use cases:
- Software distribution
- Inventory collection
- Device and application configuration
- Bootstrap
Business event Mobile device user receives a new device (PDA) and needs to
configure it.
Use case overview Mobile device enrolls with the DMS server.
2) Device not - TCP/IP connection from device to DMS server is not present
enrolled and/or not configured.
- Authentication with DMS server not successful.
Use case Mobile device user receives a new PDA, which is preloaded with
description the device management agent. The user places the PDA in the
network-attached cradle and starts the device management
agent. He enters user name and password and connects to the
DMS server (TCP/IP connection is present). Device
management agent enrolls with DMS server. DMS jobs, which
were created for newly enrolled devices and match the user
name, device class, and/or user group are immediately
performed.
Use case - Necessary for all Run Job use cases (apart from Bootstrap use
association case).
- Runs Initiate Job Query use case after first contact
automatically.
Output summary Device enrolled with DMS server and ready for receiving DMS
jobs.
Use Case Notes Device enrollment is necessary before device jobs can be run on
the device.
Use case overview Device management agent is started to query DMS server for
assigned jobs.
Use case The mobile device user is informed about newly available DMS
description jobs for his device or the device management agent trigger was
kicked off by another process (for example, locally by a timer or
remote through a SMS, see server initiated action). The device
management agent is started (either by the user or the Agent
Trigger) and queries the DMS server for new jobs. If new jobs for
the particular device and user are available, the user can be
informed and the device management agent can start executing
them.
Use case Necessary for all Run Job use cases (apart from Bootstrap use
association case).
Inputs summary
Usability index The device management agent must be triggered for server
contact. This can be done manually by the mobile device user
(for example, during each synchronization process) or
automatically by a Agent Trigger (for example, local timer).
Use case notes Agent Trigger needs to be able to run in background of device.
2) Job not executed - TCP/IP connection from device to DMS server is not present,
lost during execution and/or not configured.
- Prerequisites for job execution are not met and can not be
resolved either.
Use case After the Initiate Job Query use case runs successfully and
description detects DMS jobs for the device, these jobs are executed. After
successful completion of the job, a message is created for the
user and the administrator (message window or log). In case of
temporary failures, the job execution (network problem) can be
resumed (check-point-restart procedure). In case of not
resolvable problems, the job will be canceled and not executed.
An error message will be created (for the mobile device user and
the administrator).
Inputs summary
Usability index This is an automatic process kicked off by Initiate Job Query use
case.
Regarding the ITSO Railway scenario and considering the scope of this book,
the example software distribution use case described in 5.8.2, “Example
application scenario” on page 95, was chosen for detailed consideration. In this
use case, a remote display control tool
(http://msdn.microsoft.com/mobility/downloads/tools/default.aspx) will be
installed on the ITSO delivery peoples PDAs (see Chapter 16, “Maintaining
mobile devices” on page 393). This allows the ITSO Railway IT support to
remotely connect to the cradled PDA in order to see and control the user screen.
It offers the capability to remotely investigate the PDA in case of problems and
explain user interactions to a delivery person directly on the screen of the PDA
(Similar tools exist for workstations and are called Remote Desktop Control).
The necessary software distribution job for the remote display application is
created assuming that the target Pocket PC 2002 devices were already enrolled
with the WebSphere Everyplace Access device management server. When the
PDA is connected and synchronized, the remote display software will be installed
to the assigned devices. The following use cases will be implemented in the
following chapters:
Create software package (for remote display)
Create and submit job (for remote display)
Initiate Job query
Run job (software distribution job for remote display)
Data complexity
Availability
Availability is frequently an important Service Level Requirement. The table
below lists an example specification of the desired availability. Availability
requirements typically vary by use case and component. Each row represents a
collection of components with common availability requirements. In our example
all 3 listed components have the same availability requirements.
Table 16-11 Availability requirements example for ITSO Railway device management
Availability requirement Impact of not met
Component view
Maintainability
All application components (device management agent, server and network)
must be independent of each other from a development and maintenance point
of view. The following components can be designed, developed, tested and
maintained independently of each other:
Middleware components (device management agent and server)
Network
Security
The device management system must prevent unauthorized access and job
execution. The mobile device user must provide user name and password with
which the device management agent can contact the server. On the DMS server
side, jobs are especially assigned to users, user groups and/or device classes.
Unauthenticated access can be prevented (only enrolled and enrolling devices
are managed).
Manageability
Manageability mainly concentrates on the DMS system management. It contains
the way the device management system (jobs, software packages, etc.) is
managed from an administrator’s point of view.
System constraints
System constraints are mainly defined by the used handheld device
(performance), the available network connection and the size of software
packages to be distributed.
The available network speed determines the amount of time needed to download
software packages and to upload inventory information.
System usability
The device management agent must be able to run without user interaction once
the user name and password are entered (or be automatically triggered by other
remote or local applications).
Data integrity
The integrity of transmitted data between the device management agent and the
server must be assured (for example, software packages, inventory information).
The WebSphere Everyplace Access device management server and agent take
care of this aspect.
We will look at these non-functional requirements and how they are fulfilled in the
following chapters in more detail.
The system deployment on the server side is described in the following chapters.
The software package used for distribution is the application developed in
Chapter 13, “Using Workplace Client Technology, Micro Edition” on page 283.
Device Software
Management
Management
Agent
System
Pervasive
Server
Device (Device
Management Management
Agent Trigger Server) Software
Program
Repository
Figure 16-6 Architectural overview diagram for the ITSO Railway mobile device
management solution
The high-level solution architecture in Figure 16-6 was derived from the Runtime
pattern in Figure 3-4 on page 44. This device management system architecture
contains two main parts (2-tier approach). The enterprise server including the
Software Management system is optional and can be integrated if it exists (3-tier
approach):
Part 1: Device
Part 1 instantiates the client including the pervasive client services node of
the applied Runtime pattern in Figure 3-5 on page 45. The Device is a mobile
computing device (for example, PDA) which runs the appropriate business
applications (for example, e-mail, calendar, ticketing system application, etc.).
It contains two important functions, the device management agent (DM
Agent) and the device management agent trigger. The DM Agent is
middleware counterpart to the pervasive server (device management server)
to perform the device management jobs. Since the mobile device is only
intermittently connected and available, the server can only be contacted by
the DM Agent for job queries when a connection is available. The DM Agent
Trigger is an optional component which could detect a connection or even
establish it and can automatically trigger the DM Agent to contact the DM
server in order to ask for available jobs. An example would be a smartphone,
where a server side extension could contact the DM Agent Trigger through a
SMS to trigger the DM Agent for a server query.
Part 2: Pervasive server
The Device Manager database stores URLs for locating software packages and
OSGi bundles and stores other software information. The Device Manager
console provides windows for manipulating that information.
Device Manager is a powerful application that helps enterprises and service
providers to manage mobile devices efficiently. Device Manager is used to
track devices and their configuration status in a database. With this
information, Device Manger can perform management tasks depending on
the device capabilities. Examples are device and application configuration,
inventory collection, software distribution and initial provisioning. Device
Manager can use existing user repositories or its own subscription manager
component to control access to provided user interfaces for administrators
and device users.
Parts of WEDM are imbedded in several IBM products, for example in
WebSphere Everyplace Access.
Device agents communicate with the WEDM server using HTTP or HTTPS. The
protocol running on top of HTTP is either a proprietary protocol, which is used
with Pocket PC and PalmOS devices, or a standard protocol, such as the OMA
DM protocol used with OSGi-compliant devices. With HTTP and HTTPS
communications between devices and WEDM, requests and responses can
pass through various network elements, such as firewalls.
WEDM also supports software bundle management for OSGi enabled devices.
OSGi is a specification that defines a run-time environment in which
independently managed applications co-exist in a single virtual machine.
Operations that can be performed on OSGi bundles include installing, starting,
stopping, updating, and removing bundles.
WEDM is particularly suited for wireless or wired providers who want to use open
standards to support their business-to-consumer subscription service. Device
Manager uses the device management open standards from Open Mobile
Alliance to help providers solve service-related problems and reduce the total
cost of customer support.
Administrators can use graphical user interface called the Device Manager
console or especially developed portlets for the WebSphere Portal Server as
provided by WebSphere Everyplace Access. From this console, an
administrators can manage:
Jobs
Device classes
Devices
Software
Below the server lies a series of device plug-ins, each of which provides the
specific function needed to handle the class of device it is designed for.
To the left and right sides of the server are, respectively, a subscriber
management system to which the Device Manager issues requests for
authentication and authorization for actions which it is about to execute, and the
device management database.
16.4.1 Overview
There are two options for creating software distribution jobs with WEA version
5.0:
Using the device management portlet
Using the device management Console
Since the first option is available through the WebSphere Everyplace Access
administration user interface (portal page), the following steps taken for the ITSO
Railway example are explained using the device management portlet.
The following steps outlines the process for creating software packages for the
WEA device management portlet:
1. Gather the software file or files to be distributed, and store them in a
temporary folder.
2. Create one or more package definition files.
3. Create a meta package definition file.
4. Create a WSEPackage.xml file.
5. Create an archive (zipped) file that contains the following files:
WSEPackage.xml; meta package definition file; package definition file; and
the software to be installed, such as CAB (for Pocket PC) or PRC (for Palm
OS) files.
Figure 16-8 Files for Remote Display for Pocket PC 2002 application from Microsoft
Corporation
Please refer to the WebSphere Everyplace Access InfoCenter for more details.
The package definition file remotedisp.pkg created for the remotedisp application
is listed in Example 16-1.
Example 16-1 Package definition file remotedisp.pkg for the ITSO Railway software
distribution job example
#*DFP-v1.00 DMS Filepack (version v1.00)
#*Keyword section
after_prog_path=\windows\wceload.exe ceremote.sa1100.CAB
need_space=16000
%
#*Files and directories
ceremote.sa1100.CAB d=/Program Files/rdisp
%
#*Nested file packages
%
#*Excluded files
%
#*Extra section options
The meta package definition file is created as a plain text file, prefacing the
package name with meta_ by convention. Meta package properties are always
listed first, followed by the stanzas listing application properties, in the
meta_<productname>.pkg file.
Example 16-2 Meta package definition file meta_remotedisp.pkg for ITSO Railway
software distribution job example
PackageUserSelection=yes/delay/reject
PackageName=RemoteDisplay
PackageVersion=1.0
PackageDescription=Install remote display client on PPC2002
[Application1]
ApplicationUrl=remotedisp.pkg
ApplicationSelectionDisable=yes
ApplicationName=WindowsCEAgent
ApplicationVersion=2.03
ApplicationDescription=Remote Display Windows CE
Figure 16-9 on page 423 and Example 16-3 on page 423 show the ITSO Railway
sample WSEPackage.xml file for the remotedisp application that directs Device
Manager to install the remotedisp software package to the chosen PPC 2002
device.
Example 16-3 WSEPackage.xml file for ITSO Railway software distribution job example
<?xml version="1.0" encoding="UTF-8"?>
<Package id="PPCRemoteDisplay"
version="1.0"
platform="ppc2002"
priority="250"
displayName="ITSO Railway Support Package">
<job id="install"
jobPriority="250"
action="add"
jobType="SW_DIST"
jobTargetScope="BOTH"
software="RemoteDisp" >
<!-- this job will always apply-->
</job>
Find other keywords and options (for example, for conditional installation) in the
WebSphere Everyplace Access InfoCenter.
Now the software package is ready for distribution. A software distribution job
must be created and assigned to the target users, user groups or devices.
The last steps in our ITSO Railway software distribution example (Remote
Display) are:
1. The upload of the software package remotedisp.zip (archive) created in
16.4.2, “Creation of the software package” on page 418.
2. The assignment of the automatically created job to our target user group.
Note that if it is attempted to upload an archive with a duplicate package ID, the
upload will fail. The previous version of the package must be removed in order to
upload a replacement for it.
Click Add and specify the file location of the package (remotedisp.zip).
Click OK to add the new remotedisp package. The Software packages view
should display the newly added package.
Assign the software package to users and/or user groups (see Figure 16-12
on page 427):
– Click the Manage Recipients icon next to the newly-added package.
– If you want to assign this package to all users, click Assign to all users,
then click OK. The package is now assigned to all users.
– Click Assign to specific user groups, then click OK.
– Select the offlineformsusers group and click OK. The Remote Display
software package is now assigned to the ITSO Railway delivery stuff
users group which was equipped with a new PPC 2002 PDA.Click OK
again.
After the package is assigned, the software distribution job with id=install and
action=add from the WSEPackage.xml file (see Figure 16-9 on page 423) is
automatically created and submitted to the selected offlineformsusers group.
5. The device management agent is queries the server for the jobs (see
Figure 16-15). Since we created the ITSO Railway Support job for the
installation of the remotedisp software package, the job is picked up and
executed. The user will have the choice whether the installation of the
RemoteDisplay job should be carried out immediately, be deferred or be
rejected (see Figure 16-15). Users should see that the job is processed
(scheduled, invoked, software downloaded, files from the package extracted
and installed, Figure 16-15). The installation is complete when the title bar on
the screen no longer displays IBM Device Agent.
After the ITSO Railway Support job was carried out on the device, the job status
is updated and can be checked using the device management console as
described above. Figure 16-18 on page 431 returns a successful completion of
the remotedisp software distribution job.
Now the remote display tool for the ITSO Railway delivery people is installed on
their PDA. When the PDA is cradled and network connected, the delivery person
can get support directly on the PDAs screen when the remote display application
is started.
Part 4 Appendixes
Select the Additional materials and open the directory that corresponds with
the redbook form number, SG246315.
The publications listed in this section are considered particularly suitable for a
more detailed discussion of the topics covered in this redbook.
IBM Redbooks
For information on ordering these publications, see “How to get IBM Redbooks”
on page 439. Note that some of the documents referenced here may be available
in softcopy only.
Mobile Applications with IBM WebSphere Everyplace Access Design and
Development, SG24-6259
Patterns: Pervasive Portals Patterns for e-business Series, SG24-6876
IBM WebSphere Portal V5: A Guide for Portlet Application Development,
SG24-6076
WebSphere Everyplace Access Version 4.3 Handbook for Developers,
SG24-7015
A Comprehensive Guide to Virtual Private Networks, Volume III:
Cross-Platform Key and Policy Management, SG24-5309
Additional publications
Patterns for e-business: A Strategy for Reuse by Jonathan Adams, Srinivas
Koushik, Guru Vasudeva, and George Galambos
Online resources
These Web sites and URLs are also relevant as further information sources:
Patterns for e-business Web site
http://www.ibm.com/developerWorks/patterns
WebSphere Application Server Web site
http://www.ibm.com/software/webservers/appserv/enterprise
Index 443
IMAP connections 174 consumed amount 226
existing PIM e-mail data 168
e-mail data 174 offline capable applications 229
Extended HyperText Markup Language 127 hand-held device 126, 128
Extended Single Sign-On application patterns 30 handheld device
Extensible Stylesheet Language 126 Device Management Agent 410
Extensible Stylesheet Language Transformations High Speed Circuit Switched Data (HSCD) 365
128 HiPath 62
Extension Services for WebSphere Everyplace (ES- HTML 125
WE) 134 HTML document 126
External network services 168 HTML page 24, 38, 122, 232
dynamic content 122
offline browsing 232
F HTTP 83
fat client 27
HTTP Service 132
Federal Information Processing Standard (FIPS)
HTTPS 83
374
Hyper Text Transport Protocol
File Adapter 55
protocol conversion 384
Firewall 64, 76
Hyper Text Transport Protocol (HTTP) 384
firewall 36, 379
HyperText Markup Language 125
forward request 37
Hypertext Transfer Protocol 83
Foundation profile 119
Frameworks 117
Frequency of usage 164 I
Functional requirement 153–154, 214, 396 I/O-capacity 74
Functional requirements 154 IBM DB2 54
IBM HTTP Server 64, 76
IIOP 84
G IMAP 40, 84
General application API 25
industry standard
General applications 102
SyncML technology 184
General Packet Radio Service 83
technology 62
General Packet Radio Service (GPRS) 81
Infrared 131
General Packet Radio System (GPRS) 365
initial provisioning 57
General requirements 89
Input Data 121, 216
getNextOrderID 293
Inputs Summary 158, 219, 403
Global System for Mobile (GSM) 365
INS 56
GPRS 36, 130
Instant Messaging 44, 54, 109, 120, 381
grammar editor 62
integrated development environment (IDE) 133,
Graphical User Interface API 25
136
Group members 57
Integrated Services Digital Network (ISDN) 365
GSM 130
Integration pattern 5, 7, 294
Guidelines 5, 16
Integration patterns 8
Intelligent Notification
H Service 44, 140
h.323 36 Services administrator 282
Handheld device Services development 270
complex application 261 Services Portlets 278
Complex applications 229 Services user 272
Index 445
Log Service 132 software prerquisites 402
Lotus Domino 40 mobile device 20, 41, 55, 88, 113, 116, 145, 151,
Lotus Notes 55 193, 211, 284, 314, 359, 393, 407
Lotus Sametime 56 e-mail synchronization 152
huge number 371
inventory software 97
M network capabilities 372
mail routing 61
operating system 373
main input 154, 214, 396
operation environments 97
Maintain the mobile devices 97
packet data 83
Maintainability 164–165
pervasive access server 195
maintenance database 265
PIM/E-mail information 381
new service requests 265
remote maintenance 88
Manageability 164, 166
security mechanisms 373
markup language 121, 128, 190, 204
timetable information 324
customized JSPs 197
view modes 261
Mbps 365
visual interfaces 319
Message Center 56
mobile environment 47, 120, 129, 359–360
message queue (MQ) 44, 284
business applications 366
Message rules 57
programming models 370
Message-driven beans 123
Mobile Information Device 118
Messaging service 285, 366
Mobile Information Device Profile (MIDP) 296
Micro Edition 52, 117, 140, 283
Mobile Internetworking Control Protocol (MICP) 84
Microsoft Exchange 40, 55
Mobile inventory management 91
middle ware
Mobile phone 21, 61, 80, 89, 115–116, 371, 376,
component 165
393
middleware tier 171, 231
mobile phone
MIDP 118
share basic content 127
Mobile access 20, 61, 89, 193, 370, 373
Mobile Supply Tracking client application 213, 216
Device characteristics 371
application access security features 219
Non-functional requirements 373
following response times 224
mobile access
ITSO Railway Supply Consumption Record of-
architecture 373, 375
fline forms 254
gateway service 376
offline forms capability 223
service 359, 370
Mobile Supply Tracking System
system 373
appropriate solution option 230
VPN 368
example solution 226
way 372
sample application 234
mobile application 60, 101, 114–115, 136, 161,
Mobile Supply Tracking System (MSTS) 211, 226
195, 197, 295, 368
mobile transport 59
session context 368
Mobile Web 124
target device 371
mobile workers 20, 59
Mobile customer access 90
mobile workforce 361
Mobile Device
big picture 361
corresponding software distribution job 412
Model-View-Controller (MVC) 198
falling prices 393
Monitor critical equipment 93
management system 395
MQ Everyplace 59, 109, 285
New software 402
look 306
software prerequisites 402
messaging service 297
Index 447
Peer-to-peer 60 tier 23
peer-to-peer 42 pervasive device
Performance 163–164 calendar applications 45
performance advantages 117 connectivity services 102
Permission Admin Service 133 limited browser access 269
person 36 necessary services 22
persona 66 pervasive client services 39
Personal Area Network (PAN) 365 widespread use 116
personal computer (PC) 36 Pervasive Device Adapter application pattern 21
Personal Digital Assistant 118 Pervasive Device Adapter tier 23
personal digital assistant (PDA) 24, 36, 55, 91, 114, pervasive device adapter tier 22
192, 414 Pervasive Device Adapter=Voice::Product mapping
personal digital assistants 57 65
Personal Digital Cellular (PDC) 365 Pervasive Device Adapter=Voice::Product map-
Personal Information ping=AIX 68
Management 20, 40, 52 Pervasive Device Adapter=Voice::Product map-
Personal Information Management (PIM) 89, 151 ping=Windows 66
Personal Information Manager 55 Pervasive Device Adapter=Voice::Runtime pattern
personal PIM 161 41
Personal profile 119 Pervasive Device Support 32
Personalization 32 Pervasive devices 22
personalization 62 Pervasive devices services node 39
personalization server node 38 Pervasive extension
Personalization services 32 server node 40
Personalization tier 32, 38 service 36, 39, 64, 74
Personalized Delivery application patterns 31 services node 39, 169, 227, 414
Pervasive Access Applications 20 Pervasive extension services 49, 68, 80
Pervasive application API 25 pervasive extension services 39
pervasive client 22 pervasive extensions 21
Pervasive client services 168 pervasive runtime pattern 35
pervasive client services 39 Pervasive services 36, 72, 102
pervasive client services node 36 pervasive software products 52
pervasive components 39 Pervasive solution
Pervasive Connectivity runtime pattern::Product Network protocol mapping 85
mapping 77 pervasive solution 19, 52, 69, 90, 102, 135, 263,
Pervasive Connectivity runtime pattern::Product 283, 286, 313
mapping=AIX 78 Access Integration application patterns 19
Pervasive Connectivity runtime pattern::Product Application patterns 22
mapping=Linux 78 Pervasive Solutions composite pattern::Product
Pervasive Connectivity::Runtime pattern 47 mapping 80
Pervasive Device 19–20, 39–40, 60, 102, 115, 144, Pervasive Solutions composite pattern::Product
189, 269, 286–287, 359 mapping=AIX 82
Access pattern 21 Pervasive Solutions composite pattern::Product
Access Services 359 mapping=Windows 81
Adapter 21, 40, 63, 104, 192, 316 Pervasive tool strategy 136
Adapter pattern 295 phone client 41
Interaction pattern 295 phone network 67
Support service 295 PIM 55
Support service target 295 PIM and e-mail applications 102
Index 449
Collaboration services node 169 sessionBean.getD b_SQLresult 204, 349
Pervasive extension services node 414 sessionBean.getE nd 347
pervasive nodes 48 shared databases 61
product mapping 152 Short Message Service 56
proven and tested software implementations 5 Short Message Services (SMS) 366, 398
runtime pattern 35 Short Messaging Service (SMS) 56
Runtime patterns 13 Simple Mail Transfer Protocol 56
runtime patterns for pervasive access 40 Simple Mail Transfer Protocol (SMTP) 56
Simple notifications 56
Single Sign-On 28
S Single Sign-On (SSO) 28, 79
Sametime Everyplace
Single Sign-On application
3.1 52
pattern 28
Server V3.1 61
single user interface 58
Sametime Server 61
Smart phone 40, 104, 115–116, 371
sample application 190, 234, 288, 354
SmartPhone 116
component diagram 288
Smartphone 36
Scalability 163
SMF perspective 145, 306
scalability 45
SMS 56
Scenarios implementation 149
SMTP 56
Screening routers 37
Software Package 399
Secure mobile device 98
Creation 418
Secure Socket Layer (SSL) 369
file name 423
secured and trusted connection 47
package definition file 419
Secured Socket Layer (SSL) 61
user selection options 421
Security 164–165
version number 421
security 27, 81
Solution Approach 167
Security and Administration 32
Solution space 102
Security and Administration service 29
Speech recognition 67
security and authorization 48
speech recognition 37, 62, 317, 368
security context 30
Speech Recognition Grammar Specification
security service 29, 38, 59, 79, 169, 227, 362–363,
XML form 330
414
Speech Recognition Grammar Specification
Sensors 115
(SRGS) 141, 330
server side 27, 36, 52, 113, 166, 174, 226, 237,
speech recognition infrastructure 66
366, 410
speech synthesis 62
accesses components 27
speech technology 38
computing power 229
Standalone applications 102
e-mail application 165
standalone client 42
system deployment 412
Standard PDA 382
Server-Initiated Actions 57
Start Level Service 133
Server-side technologies 120
statistical language model (SLM) 67, 321
Service Management Framework (SMF) 132, 145,
store and forward mechanism 44
296
Subject area 155, 215, 375, 396
service station 213, 405
Subscription Bean 273–274
Services 120
subscription manager 57, 265, 273
servlet 122, 251, 288
host name 272
Servlets 122
subscription portlet 271
Session beans 123
trigger handler 278
Index 451
description 155, 215, 396 tool 143
executive 161 voice portlet 328
model 153–154, 192, 214, 396 war file 357
name 214 voice recognition 46
number 154, 214 Voice Response Server 63
Use Case Communication-Association Diagram voice service 47
162 Voice Services 121
use case model 154 voice solution 46
Use Cases 157 Voice Toolkit 137, 323
user access voice user interface 62
configuration 167, 226 Voice XML 137
management application 162 voice-enabling 65
right 161, 222 voice-related information 37
User Admin Service 133 VoiceXML 39, 129
user experience 26 VoiceXML 2.0
user group 254, 361, 401 format 328
necessary performance 383 standard 142, 330
security services 378 VoiceXML editor 62
User Interface 72 VoIP 84
user interface 29, 125 VoIP support 41, 106
handling action events 273 VPN 59, 77
user interface (UI) 24, 36, 57, 90, 116, 269, 301, VUI 62
371, 395
user name 182, 258, 401
user interaction 411
W
WAP gateway 23–24, 194, 380
user node 36
WAP-enabled mobile phone 23
user preference 120, 185
WAP-enabled phones 126
User-defined groups 57
WAR 123
WAR file
V format 250
var name 344 name 250
verify certificates 38 WCE 134
Very Small Aperture Terminal (VSAT) 365 WCTME 60
Virtual Private Network 59 WCTP 56
virtual private network 77 Web application 32, 38, 120–121, 145, 189, 197,
Virtual Private Network (VPN) 59 273, 297
vocabularies 37 page construction logic 122
Voice 56 Web application server node 64
voice access to customers 96 Web browser 46, 83, 115, 173, 189, 229, 368, 435
Voice application 20, 46, 103, 129, 313, 320 many low performance mobile devices 230
especially important issues 65 Sample application 205
voice application 62 Web modules 123
jsv file 346 Web presentation server 38
Voice eXtensible Markup Language 129 Web server 37
Voice gateway node 67 Web server plug-in 64, 76
Voice over Internet Protocol 84 Web server redirector 64, 76
Voice Portlet web server redirector node 37
Development 328 Web services 52, 80
Index 453
wireless instant messaging 61
Wireless Local Area Network (WLAN) 365
Wireless Markup Language 128
Wireless Markup Language (WML) 127, 195
Wireless technologies 130
Wireless Transport Layer Security (WTLS) 385
WML 128
workgroup computing environment 60
Workplace Client Technology 60, 133, 140, 283
Workplace Client Technology, Micro Edition (WCT-
ME) 133
World Wide Web (WWW) 61
WSEPackage.xml file 419
software elements 423
X
X+V 129
XHTML (XML) 122, 136, 330
XHTML + VoiceXML 129
XML document 128, 272
incoming data 272
XML Schema 126
xml version 303, 330, 423
XSL 126
XSLT 128