Skip to main content

Access Integration::Client Application Patterns

Application patterns and capabilities

Capabilities Thin Client Voice-Enabled Client Distributed Presentation Client Distributed Application Client Distributed Rich Client Distributed Collaboration Client Distributed Multimodel Client
C01 - Multi device access - simple browsing yes no no no no no no
C02 - Multi device access - role based browsing yes no no no no no no
C03 - Location Aware Service Integration (yes) (yes) (yes) (yes) (yes) (yes) (yes)
C04 - Voice User Interface no yes no no no no yes
C05 - Online multi-modal access no no no no no no yes
C06 - Receive simple event notifications (e.g. SMS) (yes) (yes) (yes) (yes) (yes) (yes) (yes)
C07 - Subscriptions based event notifications (yes) (yes) (yes) (yes) (yes) (yes) (yes)
C08 - Receive and process actionable alerts (yes) (yes) (yes) (yes) (yes) (yes) (yes)
C09 - Remote management of device configurations (yes) no yes yes yes yes yes
C10 - Remote management of middleware no no yes yes yes yes yes
C11 - Remote management of applications no no no yes yes yes yes
C12 - Disconnectable web content presentation (incl. offline browsing) no no yes no yes yes yes
C13 - Disconnectable forms processing (incl. offline processing) no no yes no yes yes yes
C14 - Disconnectable application without UI (headless) no no no yes no no no
C15 - Disconnectable application with WEB UI no no no no yes yes yes
C16 - Disconnectable application using rich UI no no no no yes yes yes
C17 - Disconnectable application using multimodal UI no no no no no no yes
C18 - Disconnectable application using relational sync no no no yes yes yes yes
C19 - Disconnectable application using transactional messageing no no no yes yes yes yes
C20 - Disconnectable application using web services no no no yes yes yes yes
C21 - Instant messaging and people awareness no no no no no yes no
C22 - Disconnectable PIN & E-Mail access no no no no yes no no
C23 - Distributed collaboration services no no no no no yes no
C24 - Connectivity services yes yes yes yes yes yes yes

yes= capability provided by the Application pattern      (yes)= capability depends on device and connectivity features

Thin Client

The Thin Client (TC) application pattern is used to provide consistent access to Web applications from multiple device types. This pattern assumes that the device, which is used for accessing a back-end Web application, has a built-in user interface. This might be a simple WAP or HTML browser on a mobile phone or a rich user interface with browser capabilities such as Eclipse. The back-end application is accessed synchronously in online mode (always connected).


Business and IT drivers

Example business drivers:

Example IT drivers:


Solution

Thin Client application pattern
The Thin Client application pattern consists of three components:

The presentation component is the user interface component on a device (such as a WAP browser on a mobile phone or a Web browser on a laptop). It renders data of certain formats depending on its capabilities (for example, WML and iMode format for mobile phone browsers).
Application logic is delivered by the application component located in the back-end. It also manipulates data supplied by the data storage component (in the back-end) and delivers the data to the presentation component on the device. The application component 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.
Additional services are required to prepare the data stream and to adapt the content to the capabilities of the presentation component (the devices user interface). Security and administration services are necessary to ensure that the device users can achieve a single sign-on to existing applications. These applications may represent applications that automate Self-Service, Collaboration, or Information Aggregation.


Guidelines for use

The Thin Client application pattern should be used for new or existing Web based applications which must be made available on mobile devices. Role-based access is covered by the extension of Portal applications to mobile devices. Depending on the number and capabilities of (mobile) devices which should be supported, appropriate products for Thin Client extension services must be chosen.
In general, a larger variety of devices with different capabilities increases the efforts for maintenance and operation. For this reason, we recommend to enterprises that are in control of their device strategy, to only support a few device types with similar capability (for example, WML, HTML and PDA devices with the similar screen sizes and browsers). This does not apply to Service Providers who must support as many device types (and customers) as possible.


Benefits

The Thin Client application pattern gives users a considerable choice of devices to access their applications and data sources (low function to rich function devices).

Limitations

Thin Client application pattern is unlikely to optimize the user interface for any particular device type. If this is required, additional application changes will be necessary.


Scenario

An insurance company has a team of claims assessors visiting policy holders to check the validity and value of their insurance claims. The claims assessors need frequent and fast access to the policy holder policies, claims details, and so on. In addition, they need to initiate contacts with auto repair garages and rental car companies through their extended enterprise applications. While on the road their preferred access is through a wireless-connected Smart phone device. At home or in the office they use a laptop computer for general activities like writing reports. Hence, the insurance company chose the Thin Client application pattern to extend the existing claims applications to be accessed through a Smart phone device.

Mapping of application patterns to runtime patterns

Voice-Enabled Client

The Voice-Enabled Client (VEC) application pattern represents all applications which are accessed through speech user interfaces.
A telephony client is the most common example which provides a voice user interface (for example, land-line phone, mobile phone, Voice-over-IP telephone client on a computer with speakers and microphone). The voice user interface is used to access a telephony application at the back-end over telephony networks which are circuit switched (for example, PSTN, GSM). This means that the client side is assigned a dedicated channel through which it communicates with the back-end application. The back-end application is able to understand voice commands. It converts these commands to computer commands and uses its application logic to process data from the back-end data store. The results are converted back into human understandable speech output signals which are transmitted back to the client user interface.


Business and IT drivers

Examples for IT drivers:


Solution

Voice-Enabled Client application pattern
The Voice-Enabled Client application pattern consists of 3 components:

The presentation component is a speech enabled user interface which is built-in to the client device. Typically, this is any kind of telephone. Transmission of data is carried out in the form of voice commands and responses over a telephony network.
The back-end application component is able to process voice commands by transforming them into computer commands. It computes the requested results using the back-end data storage. Then, the application component translates these results back to the human understandable voice outputs (audio signals). These are delivered back to the presentation component or user interface where they are presented to the end user.
If an existing back-end (Web) application is extended with a voice access channel, additional components are necessary to provide these capabilities within the application component. The corresponding Voice-enabled client::Runtime pattern provides these through additional components like a Voice Gateway with a Telephony Connector and the Distributed client extension service. The Voice Gateway with the Telephony Connector provide the functions required to use voice signals for input and output (signal and command translation). The back-end application could still use standard formats like XML for input and output. The Distributed client extension service (voice) takes care of the translation of these data formats to the format of the specific access channel.


Guidelines for use

The Voice-Enabled Client application pattern is used when an application needs to be accessed by telephony type clients. A Web type application which uses standard input and output data like XML is the preferred option. The Distributed client extension service (voice) can use this data and translate it to data for the Voice Gateway. The latter transforms these to voice signals for the presentation component (voice user interface).
It is important to understand that the voice user interface requires special considerations regarding the user interface design. Voice user interfaces must be designed so that users can navigate through menu options without seeing them. If voice recognition is used, the challenges of different languages and dialects must also be considered.


Benefits

The penetration with voice user interfaces (telephony clients) is very high. The number of telephony users is constantly growing thanks to the high availability of mobile/cellular telephony networks.
The user interface client device (telephone) is relatively cheap. It allows human understandable and hands-free communication (voice) which offers more convenience for certain user groups (e.g. drivers). It might even be an option for a user interface where other human-machine interactions are not possible (e.g. in certain industries).

Limitations

The voice user interface is more complex then other user interfaces. It requires special design considerations and extensions. It might be expensive if many languages and dialects must be supported.


Scenario

A ticket booking system for a movie theater is accessed through the Internet using a traditional Web browser. At the moment, a central call center is used to allow users to order and reserve tickets over the phone.
Now, the ticket company would like to extend the existing browser based ticket purchasing application with voice capabilities in order to reduce call center costs. For this, the ticket purchasing application, which is a Web based application producing XML, is extended with voice dialogues in English. The Distributed client extension services (voice) translate this XML content in data formats for the Voice Gateway. Now, the end user can directly interact with the Voice Gateway over the phone using the ticket purchasing application rather then needing the call center.

Mapping of application patterns to runtime patterns

Distributed Presentation Client

The Distributed Presentation Client (DPC) application pattern describes applications which provide their own user interface for the client device. This pattern extends the Thin Client application pattern with its own application-specific user interface (presentation component). This application pattern also allows offline operation (disconnected operation), in addition to synchronous access to the back-end application component in online mode. Local data storage is used on the client to enable continuous operation with a subset of data in offline mode. Additional services assure that the local data subset is in sync with the back-end application data.


Business and IT drivers

The business and IT drivers are as follows:


Solution

Distributed Presentation Client application pattern
The Distributed Presentation Client application pattern provides the application programmer with features to make Web content offline available as well as using existing application logic on the device. The programmer can use a locally available data store which is kept in sync with the back-end data source through additionally available client services. Only, the local user interface on the device must be developed to present data in offline and online mode. And even this user interface could be realized by a browser on the device (for example, for offline browsing and offline forms).


Guidelines for use

The Distributed Presentation Client application pattern should be used for new or existing Web based applications which must be made available on mobile devices in connected and disconnected modes. The disconnected use is only recommended if the available offline information must only be up-to-date to a certain extent (information is only updated during synchronization of the data storage). The use of offline forms for data capture in disconnected mode should be chosen when only small amounts of data are captured in static forms and application logic is not necessary during the data capture process (only field validation functions).
Content adaptation and rendering for different devices are also addressed by the Distributed client services.


Benefits

Content provided by existing Web applications can be viewed on mobile devices in online and offline mode. Simple forms might be used to capture data with mobile devices. The mobile devices only need a browser with cache capabilities and/or the Distributed client and extension services for synchronization of the content. The application programmer only has to provide the presentation component (user interface), the application logic runs on the back-end server. This requires less resources on the device, and lowers application operation and maintenance costs. High function devices and major changes to the existing application are usually not necessary. The additional required services are provided by the appropriate Runtime pattern.

Limitations

The Web site caching mechanism only works for static web sites. Forms based solutions with offline capabilities are restricted by the device�s browsers capabilities and limitations necessary for offline usage (only simple forms). Comprehensive application logic is not provided in offline mode.


Scenario

A insurance company provides driving directions through a Web based service. The directions are displayed statically by a Web page (including a map and printed driving instructions). Now, the salesperson can download the driving directions for their next customer visit to their PDA or Smart phone. This allows the sales person to take this information with them and to look it up without the need of an online connection (or carry paper maps).

Mapping of application patterns to runtime patterns

Distributed Application Client

The Distributed Application Client (DAC) application pattern varies from the Distributed Presentation Client application pattern by providing an application component on the device and the asynchronous transmission option. It does not have a presentation component on the device (headless, no user interface).
The Distributed Application Client application pattern represents a custom developed application scenarios on the client 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. Application logic is provided locally by the application component and can run without the presence of a connection to the back-end application.


Business and IT drivers

Example drivers include:


Solution

Distributed Application Client application pattern
The Distributed Application Client application pattern focuses on the application component on the client device. The application component is integrated with a back-end application through defined services like the Distributed client and Distributed client extension services.
The client application component uses these services by building on top of a common runtime and common framework that can run on numerous hardware devices and operating systems. The framework and the services ensure seamless back-end integration and offer a common programming model. For example, the data synchronization or messaging services are provided by the Distributed client and Distributed client extension services and can be easily used by the application on the device.


Benefits

The Distributed Application Client application pattern provides a common programming model for server and client side applications. Distributed Application Client applications can enable clients to operate in both online and offline mode. The applications can also use additional (platform and runtime) services, including transactionality, relational database, reliability, security and management services (like device management).
Although, the extension services provide a stable runtime environment, the application on the device should be designed and developed with great care. A local corrective user interaction on the (usually remotely installed) device is not possible.

Limitations

Caused by the higher resource requirements, the Distributed Application Client applications are limited to a set of devices that are capable of operating the runtime environment together with the framework required by the clients. A local user interface is not available.


Scenario

A possible scenario is a remote power meter in a household. A local application records the power consumption over time. The amount of consumed power is stored locally and transmitted to the energy provider in a timely fashion. This allows the energy provider to bill the household automatically. It also offers additional use cases, such as identifying peak times, remote power management and charges for different times of day.

Mapping of application patterns to runtime patterns

Distributed Rich Client

The Distributed Rich Client (DRC) application pattern extends the Distributed Application Client application pattern with user interface capabilities. This implies that client devices must fulfill higher resource requirements to provide user interfaces for human interaction (for example, hardware for user interaction such as a display and keyboard, software and graphical libraries).
The Distributed Rich Client application pattern contains local data storage in order to achieve independence from the back-end application in disconnected mode. Subsets of data are held on the device to be able to continue working when network connectivity is not available or not allowed. Synchronization services ensure that the locally manipulated data is kept in sync with the back-end data storage (for example, through an embedded database synchronization service). The local user interface (presentation component) provides access to the local data storage. The application on the device provides application logic for data manipulation.


Business and IT drivers

Examples for IT drivers:


Solution

Distributed Rich Client application pattern
The key to the Distributed Rich Client application pattern is the application itself. As opposed to other Web-based solutions such as the Thin Client application pattern, the DRC focuses on the client tier, which has many of the capabilities of a server platform on the local device to allow for working in a disconnectable mode.
The client application uses services and accesses components on the server side. It is built on top of a common runtime and common framework that can run on numerous hardware devices and operating systems.
Many Distributed 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 synchronized to/from the server and client. When working in a disconnected mode, it is important to note that only the business function is available all the time, not the most current data.


Guidelines for use

Distributed Rich Clients are similar to the clients of client-server era, in that the devices provide fat client functionality, however; they have the advantage of server-based management. Some of the application logic is implemented on the client-side where they can use services that are not available for thin clients. For example, transactionality, reliability, security, offline data store (relational database), and so on.
Distributed Rich Client applications do not have the usability constraints that Thin Clients have. Interactions can be longer and more complex. Distributed Rich Clients can have controls (user interface components) that are not available to Thin Clients.
Beyond the rich user experience, there are various qualities of service 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.
Distributed Rich Client applications should ideally be designed in a way so that they can operate in both online and offline networking modes. 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 Distributed Rich Client applications provide a richer and better user experience with extended functionality. Distributed Rich Client applications can enable clients to operate in both online and offline mode. The applications can also use additional services, including transactionality, relational database, reliability, security and management services (like device management).

Limitations

In light of the higher resource requirements of the Distributed Rich Client applications are limited to a set of devices that are capable of operating the runtime environment together with the framework required by the clients. Applications which require constant online connectivity, like instant messaging, or multimodal access are covered by variations of this pattern.


Scenario

The scenario is based on the fictitious ITSO insurance company. In this scenario, mobile adjusters can access and change insurance claims from there mobile device while inspecting the car damages at the scene of the accident. This is possible, because the function rich Mobile Adjuster application is able to work in a connected or disconnected environment. The underlying technology ensures that necessary data is available in offline mode and synchronized with the back-end regularly. Locally provided application logic guarantees application robustness (for example, correct data input).

Mapping of application patterns to runtime patterns

Distributed Collaboration Client

The Distributed Collaboration Client (DCC) application pattern is a variation of the Distributed Rich Client application pattern. It especially addresses rich applications which need frequent online connectivity to their server counterpart for collaboration purposes. Examples are instant messaging and Web-based e-mail applications.
The client side consists of one node with presentation and application components. Application logic is locally provided to ensure rich user experience and performance advantages.


Business and IT drivers

Since this pattern is a variation of the Distributed Rich Client application pattern, the same requirements can be applied. In addition, the following IT drivers and capabilities make this pattern unique:


Solution

Distributed Collaboration Client application pattern
The Distributed Collaboration Client application pattern provides client components for collaboration giving a rich user experience. The client application offers device dependent user interface capabilities.


Guidelines for use

The application pattern is used when Distributed Rich Client application pattern IT drivers also include requirements for collaboration functions with online connectivity needed frequently.


Benefits

The Distributed Collaboration Client application patterns provide a richer user experience with extended functionality. The applications can also use additional services, including transactionality, relational database, reliability, security and management services (like device management).

Limitations

Caused by the higher resource requirements, the Distributed Collaboration Client applications are limited to a set of devices that are capable of operating the runtime environment together with the framework required by the clients. The major difference and limitation to the Distributed Rich Client is the necessity of a constant online connection for capabilities such as instant messaging and people awareness. The DCC can run in a disconnectable mode for other application common to DRC and e-mail collaboration.


Scenario

An example scenario would be the extension of the our working example with instant messaging capabilities. The Mobile Adjuster would get the opportunity to communicate online with the other Adjusters or the back office whilst being at the accident scene. The back office would be able to inform him instantly of changes or other necessary information.

Mapping of application patterns to runtime patterns

Distributed Multimodal Client

The Distributed Multimodal Client (DMC) application pattern extends the Distributed Rich Client application pattern with richer user interface capabilities. Especially, the use of different input and output channels for application navigation are covered by this pattern. For example, a rich client application such as a vehicle navigation system needs to be enhanced with voice navigation features.
The presentation component is extended with additional input and output capabilities (e.g. microphone, speaker). The client application component provides application extensions for the additional presentation channels. The application framework might also provide the technology for this richer user interface experience.


Business and IT drivers

Since the Distributed Multimodal Client application pattern is a variation of the Distributed Rich Client application pattern, the same requirements can be applied. In addition, the following IT drivers and capabilities make this pattern unique:


Solution

Distributed Multimodal Client application pattern
The Distributed Multimodal Client application pattern provides client components for the extension of rich user interfaces with multimodal capabilities. The combination of voice and text input and output capabilities in one application is provided by additional capabilities in the application and presentation components.
Challenges of the constant connectivity requirement on mobile devices are addressed by management functions of the platform. The client application offers device dependent user interface capabilities.


Guidelines for use

The Application pattern is used when the Distributed Rich Client application pattern IT drivers also include requirements for multimodal user interface extensions.


Benefits

The Distributed Multimodal Client applications provide an even richer and better user experience with extended input and output functionality. Distributed multimodal client applications can enable clients to be operated on mobile devices with limited resources. The applications can also use additional services, including transactionality, relational database, reliability, security and management services (like device management).

Limitations

The major difference and limitation of Distributed Multimodal Client are the higher target device requirements. The used device must support the different input and output channels (e.g. microphone, speaker, keyboard).


Scenario

An example scenario would be the extension of the ITSO Mobile Adjuster working example with multimodal input and output capabilities. The Mobile Adjuster would be able to communicate with the application over voice and keyboard. While driving to the scene, the adjuster could interact with the application using voice commands to open up and display the customer claim in advance.

Mapping of application patterns to runtime patterns

Built-in Client

The Built-in Client (BIC) application pattern is a generic superset of all other Application patterns introduced in previous sections. The BIC includes functions which are provided by the device manufacturer as built-in applications where the device manufacturer has chosen to adopt the appropriate open standards to communicate with the enterprise middleware.
Examples are PIM and e-mail clients on PDAs or device management functions on mobile phones (remote configuration). Depending on the provided function of the built-in application, this pattern evolves into one of the other patterns above. The built-in application component will be replaced by the client component of the Application pattern which matches the IT drivers and capabilities identified for the solution.


Business and IT drivers

Examples for IT drivers and capabilities:

Depending on the built-in function required, the Built-in Client application pattern matches one of the other application patterns, where the appropriate IT drivers and capabilities are listed.


Solution

Built-in Client application pattern
The Built-in Client application pattern covers all standardized functions which are provided by the device manufacturer as applications on the device. The client side application does not need to be developed anymore. The rest of the solution depends on the matching Application pattern.


Guidelines for use

This pattern is a generic Application pattern.


Benefits

The Built-in Client is used as an entry point and addresses the advantage that the client side application has standardized interfaces and is already provided by the device manufacturer. A client side application does not need to be developed anymore. The standardized interfaces enable the server side application to work with the client seamlessly.
Solution development, maintenance and operation efforts as well as potential risks are effectively reduced.

Limitations

In many cases, there is no way to alter built-in function unless at the platform level (software). The other limitations of the matching Application pattern apply.


Scenario

An example is the built-in device management functions of mobile phones. Mobile phones which include a OMA-DM client can be configured over the air through the standardized device management interface.

Mapping of application patterns to runtime patterns

To continue select the Runtime pattern in the table below that supports your chosen one or more Application patterns and click on the Runtime pattern. In some cases multiple Runtime patterns may be required.

Application pattern Thin Client Voice-Enabled Client Distributed Presentation Client Distributed Application Client Distributed Rich Client Distributed Multimodel Client Distributed Collaboration Client Roaming Connectivity (additive only)
Thin Client yes no yes no yes yes yes yes
Voice-Enabled Client no yes no no no yes no yes
Distributed Presentation Client no no yes no no no no yes
Distributed Application Server no no no yes yes yes no yes
Distributed Rich Client no no no no yes yes no yes
Distributed Multimodal Client no no no no no yes no yes
Distributed Collaboration Client no no no no no no yes yes
(Built-in Client) (yes) (yes) (yes) (yes) (yes) (yes) (yes) (yes)

Content navigation