Exceed onDemand A Technical Whitepaper
Exceed onDemand A Technical Whitepaper
Exceed onDemand A Technical Whitepaper
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Transforming Information into Intelligence <br />
X Protocol > Public Private Keys Authentication > Secure Shell > Telnet > FTP > Reducing Business Disruption > TN3270E > TN5250E > Easy Migration Path > Bi-directional NFS > Desktop Stand<br />
ion > Conflict Management > PC X Server > Desktop Consolidation > X Window > UNIX integration > NFS v4 > Mainframe > Terminal Emulation > Security > SSL > Web-to-host > Cost Reduction<br />
l NFS > Desktop Standardization > Kerberos > Smart Card > X Desktop Sharing > WebNFS > Web Deployment > Linux > PC X Server > Desktop Consolidation > X Window > UNIX integration ><br />
b-to-host > Cost Reduction > AS/400 > Mobile Workers > Thin X Protocol > Public Private Keys Authentication > Secure Shell > Telnet > FTP > Reducing Business Disruption > TN3270E > TN525<br />
> <strong>Exceed</strong> <strong>onDemand</strong> ® 5<br />
A <strong>Technical</strong> <strong>Whitepaper</strong>
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
While every attempt has been made to ensure the accuracy and completeness of the information<br />
in this document, some typographical or technical errors may exist. Hummingbird cannot accept<br />
responsibility for customers’ losses resulting from the use of this document. The information<br />
contained in this document is subject to change without notice.<br />
This document contains proprietary information that is protected by copyright. This document,<br />
in whole or in part, may not be photocopied, reproduced, or translated into another language<br />
without prior written consent from Hummingbird.<br />
This edition published February 2005<br />
3
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Table of Contents<br />
<strong>Exceed</strong> <strong>onDemand</strong> ® Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />
4<br />
Introduction to <strong>Exceed</strong> <strong>onDemand</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />
Operating Systems Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />
Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
The Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
<strong>Exceed</strong> <strong>onDemand</strong> Cluster Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />
X Proxy Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />
<strong>Exceed</strong> <strong>onDemand</strong> Proxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />
The Rules for Reusing Proxies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />
<strong>Exceed</strong> <strong>onDemand</strong> Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
Cluster Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
What is a Cluster? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
How Does Clustering Work in <strong>Exceed</strong> <strong>onDemand</strong>? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />
Data Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />
License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />
Types of Connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
Direct Client-server Connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
Gateway Server Connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
Thin X Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16<br />
History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16<br />
What is TXP? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />
Licensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />
License Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />
Some Simple Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
The Sequence of Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />
Launch a Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />
Suspend a Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />
Resume a Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />
Join a Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />
Server Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />
<strong>Exceed</strong> <strong>onDemand</strong> Resource Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />
The Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />
Memory Consumption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />
Bandwith Consumption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />
Installation and Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />
Installing <strong>Exceed</strong> <strong>onDemand</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />
<strong>Exceed</strong> <strong>onDemand</strong> Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br />
Other Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br />
Connecting to <strong>Exceed</strong> <strong>onDemand</strong> Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26<br />
Creating a Connection to <strong>Exceed</strong> <strong>onDemand</strong> Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26<br />
Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />
Different Types of Configuration Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />
Xstart Versus Xconfig Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />
Xstart Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />
Xconfig Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />
Global Versus User-defined Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />
Global Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />
User-defined Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />
5
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
6<br />
Configuring a Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30<br />
Startup Mode Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30<br />
Customizing the User Experience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />
Keyboard Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />
Screen Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32<br />
Server Visual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32<br />
Window Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />
Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34<br />
Printing and File Transferring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35<br />
Performance Optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />
FAST and SLOW Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />
Compression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />
Font Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br />
Image Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br />
OpenGL API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br />
Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38<br />
Introducing <strong>Exceed</strong> <strong>onDemand</strong> Server Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41<br />
Cluster Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41<br />
Node Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />
User Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45<br />
File Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46<br />
Advanced Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47<br />
Advanced Security Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47<br />
SSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47<br />
Secure Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />
Desktop Sharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49<br />
Suspend and Resume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51<br />
Suspend and Disconnect (a.k.a Crash and Resume) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Web Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53<br />
<strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard Fundamentals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53<br />
<strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard Fundamentals Working Principles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54<br />
<strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard Explained . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55<br />
Web-Deployed vs. CD-Installed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55<br />
Download Mechanisms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55<br />
Access and Upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56<br />
Project Deployment Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57<br />
Create a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57<br />
Select a Connection Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57<br />
Language Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58<br />
Deploying on any Web Server on any Operating System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59<br />
Installation Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59<br />
User Rights and Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60<br />
Update a Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61<br />
Create an Index Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61<br />
7
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
<strong>Exceed</strong> <strong>onDemand</strong> ® Overview<br />
Introduction to <strong>Exceed</strong> <strong>onDemand</strong><br />
The inevitability and subsequent popularity of mobile access stems from its many business advantages,<br />
including better customer service, improved processes and measurable productivity gains — all made<br />
possible with anywhere, anytime, any device access to information. The business benefits are so<br />
compelling that the International Data Corporation (IDC) believes a full two-thirds of the U.S. workforce<br />
will require mobile access by 2006. Nearly half of the workforce in Western Europe is already mobile<br />
and Gartner has calculated that the number of visitors to public wireless LAN HotSpots more than<br />
quadrupled in a single year from 2002 to 2003. IDC reported a corresponding increase of nearly fourfold<br />
in the number of HotSpot users during the same period, and predicts that the user population<br />
will increase at a healthy 105% compound annual growth rate (CAGR) through 2007.<br />
The result of this initial success is that users are starting to demand more freedom to choose when<br />
and where they access the key applications they need to do their jobs effectively. In effect, they want<br />
access to all the same critical business applications and information they get from their desks and IT<br />
can readily justify the cost involved based on the many business benefits afforded. Critical enterprise<br />
applications e.g. sales force automation, inventory tracking and patient records can be extended to<br />
remote and mobile workers, customers or business partners. Specialized or “vertical” applications in<br />
certain industries, such as health care, finance, real estate, insurance, shipping, utilities and others,<br />
can also be made available to the mobile workforce to allow quick decision making based on<br />
current information.<br />
<strong>Exceed</strong> <strong>onDemand</strong> provides and an access gateway between existing infrastructure and mobile users.<br />
The main advantage for the enterprise is better implementations which require absolutely no changes<br />
to existing applications, or network infrastructure. Hummingbird’s mobile solution is cost-effective<br />
based on its centralized deployment and management, requiring no special client for basic access.<br />
For mission-critical applications, <strong>Exceed</strong> <strong>onDemand</strong> was designed to support load-balancing across<br />
multiple servers eliminating a single point of failure. Robust scaling capabilities, enterprise class<br />
security and management features make <strong>Exceed</strong> <strong>onDemand</strong> an affordable solution for the<br />
mobile workforce.<br />
8
Operating Systems Specifications<br />
> <strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
<strong>Exceed</strong> <strong>onDemand</strong> is comprised of three major component groups and each group has its own<br />
operating system requirements:<br />
Server Client Other Components (Including<br />
Deployment Tools and Server Manager)<br />
UNIX and Linux<br />
> AIX 5.x and up<br />
> HP UX 11 and up<br />
> Sun Solaris (SPARC) 2.6+<br />
> SunSolaris (x86) 2.8+<br />
> Intel ® Linux kernel 2.4+, including:<br />
Microsoft Windows, including:<br />
> 2000 Server<br />
> 2000 Advanced Server<br />
> XP Professional<br />
> Server 2003<br />
Table 1 — Operating Systems specifications<br />
Microsoft Windows, including:<br />
> 2000 Professional or Server<br />
> XP Professional<br />
> Server 2003<br />
In addition, <strong>Exceed</strong> <strong>onDemand</strong> Client can be launched from:<br />
> Internet Explorer 5.x, 6.x and above<br />
Microsoft Windows, including:<br />
> 2000 Professional or Server<br />
> XP Professional<br />
> Server 2003<br />
9
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Architecture<br />
The Components<br />
<strong>Exceed</strong> <strong>onDemand</strong> is comprised of <strong>Exceed</strong> <strong>onDemand</strong> Server, <strong>Exceed</strong> <strong>onDemand</strong> Client, and<br />
a number of administrative tools, such as <strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard and <strong>Exceed</strong><br />
<strong>onDemand</strong> Server Manager. <strong>Exceed</strong> <strong>onDemand</strong> delivers X11R6.6 X access with minimal overhead.<br />
A small client-side installation lets users access business-critical X applications on UNIX, Linux,<br />
VMS, and other X Window system hosts.<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server is the core of the software. It is installed on a UNIX, Linux or Microsoft ®<br />
Windows ® platform and communicates with <strong>Exceed</strong> <strong>onDemand</strong> Client. There are two configuration<br />
options for <strong>Exceed</strong> <strong>onDemand</strong> Server — Standalone or Cluster.<br />
Standalone configuration — an <strong>Exceed</strong> <strong>onDemand</strong> Server is configured as a complete and<br />
independent entity capable of performing its primary functions.<br />
Figure 1 — <strong>Exceed</strong> <strong>onDemand</strong> in Standalone configuration<br />
10<br />
X Application<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server<br />
<strong>Exceed</strong> <strong>onDemand</strong><br />
Cluster Manager<br />
X Proxy Manager<br />
<strong>Exceed</strong> <strong>onDemand</strong><br />
Proxy<br />
Cluster Manager<br />
Connection<br />
Port 5500<br />
Proxy Connection<br />
Port 5501<br />
<strong>Exceed</strong> <strong>onDemand</strong><br />
Client
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Cluster configuration — multiple <strong>Exceed</strong> <strong>onDemand</strong> Servers are programmatically linked together<br />
to form a large, single, logical computing unit. Each <strong>Exceed</strong> <strong>onDemand</strong> Server within a Cluster<br />
is called node.<br />
Node 1<br />
X Proxy Manager<br />
Proxies<br />
X Application<br />
Proxy Connection<br />
Port 5501<br />
<strong>Exceed</strong> <strong>onDemand</strong><br />
Client<br />
Cluster Manager<br />
Connection<br />
Port 5500<br />
Figure 2 — <strong>Exceed</strong> <strong>onDemand</strong> in Cluster configuration<br />
Cluster Manager<br />
Connection<br />
Port 5500<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server<br />
in Cluster Configuration<br />
Data Store<br />
Cluster Manager Node<br />
Cluster Manager<br />
X Proxy Manager<br />
Proxies<br />
Cluster Manager<br />
Connection<br />
Port 5500<br />
Cluster Manager<br />
Connection<br />
Port 5500<br />
Proxy Connection<br />
Port 5501<br />
<strong>Exceed</strong> <strong>onDemand</strong><br />
Client<br />
Node 2<br />
X Proxy Manager<br />
For more information on how to configure <strong>Exceed</strong> <strong>onDemand</strong> Server, please see Section 6:<br />
“Server, User and File Management.”<br />
Proxies<br />
X Application<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server can be further divided into three major components: <strong>Exceed</strong> <strong>onDemand</strong><br />
Cluster Manager, X Proxy Manager and <strong>Exceed</strong> <strong>onDemand</strong> Proxy.<br />
<strong>Exceed</strong> <strong>onDemand</strong> Cluster Manager<br />
<strong>Exceed</strong> <strong>onDemand</strong> Cluster Manager is the top of the chain of command, and it is physically present<br />
in every installation of <strong>Exceed</strong> <strong>onDemand</strong> Server. It has the following tasks: auth/enticate users,<br />
govern license usage, manage all X Proxy Managers (see below), manage all types of configuration<br />
files, balance work load (in a cluster configuration) and keep track of shared and suspended sessions.<br />
Every Server or Server Cluster can only have ONE Cluster Manager. The role of <strong>Exceed</strong> <strong>onDemand</strong><br />
Cluster Manager is consistent in both Standalone and Cluster configurations.<br />
11
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
The Cluster Manager can decide whether a new <strong>Exceed</strong> <strong>onDemand</strong> Proxy is required for a new<br />
connection request based on a fixed set of rules. Sometimes, Cluster Manager will instruct X<br />
Proxy Manager to reuse an existing proxy.<br />
X Proxy Manager<br />
X Proxy Manager is the middle man between <strong>Exceed</strong> <strong>onDemand</strong> Cluster Manager and <strong>Exceed</strong><br />
<strong>onDemand</strong> Proxy. X Proxy Manager’s jobs are to start, stop and manage <strong>Exceed</strong> <strong>onDemand</strong> Proxies (see<br />
below), and redirect <strong>Exceed</strong> <strong>onDemand</strong> Client to communicate with a specific <strong>Exceed</strong> <strong>onDemand</strong> Proxy.<br />
X Proxy Manager also reports to the Cluster Manager to keep it informed of the status of each proxy.<br />
<strong>Exceed</strong> <strong>onDemand</strong> Proxy<br />
<strong>Exceed</strong> <strong>onDemand</strong> Proxy is a fully functional X server that supports all X protocol requests. It is<br />
spawned by the X Proxy Manager on an on-demand basis, and as a result, an <strong>Exceed</strong> <strong>onDemand</strong><br />
Server can have multiple <strong>Exceed</strong> <strong>onDemand</strong> Proxies. Each <strong>Exceed</strong> <strong>onDemand</strong> Proxy is uniquely<br />
identified by a display number that X applications use to display output and receive input.<br />
Although <strong>Exceed</strong> <strong>onDemand</strong> Proxy supports all X protocol requests, it does not natively handle<br />
drawing requests and keyboard and mouse inputs. Instead, it translates the standard X drawing<br />
requests and inputs to equivalent Thin X Protocol commands before transmitting those requests<br />
to <strong>Exceed</strong> <strong>onDemand</strong> Client. Thin X Protocol will be covered in more detail later in this document.<br />
<strong>Exceed</strong> <strong>onDemand</strong> Proxy communicates with <strong>Exceed</strong> <strong>onDemand</strong> Client on a proxy port which,<br />
by default, is 5501. This communication can be secured by using Secure Shell protocol (SSH ),<br />
which will be covered in Section 7, “Advanced Configuration.”<br />
The Rules for Reusing Proxies<br />
When <strong>Exceed</strong> <strong>onDemand</strong> Cluster Manager receives a connection request from <strong>Exceed</strong> <strong>onDemand</strong><br />
Client, it references the following guidelines to decide whether a new <strong>Exceed</strong> <strong>onDemand</strong> Proxy is<br />
needed, or if an existing one can be reused.<br />
1. Was the connection initiated by a user who has already started a session(s)?<br />
2. Did the connection originate on a PC that has already established one or more<br />
<strong>Exceed</strong> <strong>onDemand</strong> sessions?<br />
3. Is the user using one of the remote Startup Methods (RSH, REXEC, RLOGIN,<br />
Telnet or Secure Shell)?<br />
4. Is the Reuse Sessions setting in the Xstart file set to either Automatic or Ask User?<br />
If the answer to all of the questions above is “YES,” then X Proxy Manager will allow an existing<br />
<strong>Exceed</strong> <strong>onDemand</strong> Proxy to handle the new connection.<br />
12
<strong>Exceed</strong> <strong>onDemand</strong> Client<br />
> <strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
<strong>Exceed</strong> <strong>onDemand</strong> Client is the client portion of the software that each user must install on the<br />
PC. <strong>Exceed</strong> <strong>onDemand</strong> Client is a native Windows application that supports most of the current<br />
Windows platforms, including Windows XP and Windows Server 2003. The main function of<br />
<strong>Exceed</strong> <strong>onDemand</strong> Client is to render the image on the display and interact with users through<br />
the input devices. Connections between Client and Server can be secured using Secure Sockets<br />
Layer (SSL), which will be covered in Section 7, “Advanced Configuration.”<br />
On top of the traditional means of deploying a Windows application, administrators can deploy<br />
a pre-configured <strong>Exceed</strong> <strong>onDemand</strong> Client to end users through a web browser. Section 8,<br />
“Web Deployment” will discuss this feature in more detail.<br />
Cluster Computing<br />
What is a Cluster?<br />
In a computer system, a cluster is the use of a group of machines to form a single logical system<br />
which enables high availability and load balancing.<br />
How Does Clustering Work in <strong>Exceed</strong> <strong>onDemand</strong>?<br />
In a Cluster configuration, multiple <strong>Exceed</strong> <strong>onDemand</strong> Servers are programmatically linked to form<br />
a single, logical computing unit, and each <strong>Exceed</strong> <strong>onDemand</strong> Server within a Cluster is called a Node.<br />
Nodes can run on any supported platform, forming a cross-platform cluster.<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server in Standalone configuration can be considered as a Cluster with only one node.<br />
Definitions<br />
For the sake of consistency and convenience, the terms are defined as the following, and used<br />
accordingly throughout the document:<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server, or simply “Server” — <strong>Exceed</strong> <strong>onDemand</strong> Server in either Standalone<br />
or Cluster configuration. In a Cluster configuration, <strong>Exceed</strong> <strong>onDemand</strong> Server includes the Cluster<br />
Manager node and all other nodes.<br />
Cluster — Specifically means <strong>Exceed</strong> <strong>onDemand</strong> Server in Cluster configuration<br />
<strong>Exceed</strong> <strong>onDemand</strong> Cluster Manager, or simply “Cluster Manager” — the component<br />
Cluster Manager Node — the machine in a Cluster which <strong>Exceed</strong> <strong>onDemand</strong> Cluster Manager resides<br />
Nodes — other machines in the Cluster<br />
13
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Connections<br />
As mentioned earlier, there can only be one <strong>Exceed</strong> <strong>onDemand</strong> Cluster Manager per Cluster.<br />
However, a physical copy of <strong>Exceed</strong> <strong>onDemand</strong> Cluster Manager comes with every installation of<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server. Therefore, before an <strong>Exceed</strong> <strong>onDemand</strong> Server can join an existing Cluster<br />
to become a Node, the <strong>Exceed</strong> <strong>onDemand</strong> Cluster Manager residing on that Server has to be disabled<br />
using <strong>Exceed</strong> <strong>onDemand</strong> Server Manager. The only instance of <strong>Exceed</strong> <strong>onDemand</strong> Cluster Manager<br />
in a cluster will directly communicate with the X Proxy Manager on each node over the Cluster<br />
Manager port, which is 5500 by default.<br />
Users will interact with the Cluster Manager node to launch or configure a session. All connection<br />
requests are handled by Cluster Manager. The incoming requests are processed by <strong>Exceed</strong> <strong>onDemand</strong><br />
Cluster Manager, and the work load is distributed to the node which has the smallest load in order to<br />
promote load balancing.<br />
Data Storage<br />
Data Store is the location where configuration and connection profiles are stored. Several rules were<br />
implemented to protect data consistency and promote efficiency.<br />
The first and foremost rule is access restriction. Only the Cluster Manager has the privilege to<br />
communicate, access and write to the Data Store. Requests related to accessing or modifying<br />
configuration files, coming from either <strong>Exceed</strong> <strong>onDemand</strong> Client or X Proxy Managers, are<br />
routed to the Cluster Manager for processing.<br />
The second rule is one version of truth. There is one and only one Data Store in each <strong>Exceed</strong> <strong>onDemand</strong><br />
Server. When multiple <strong>Exceed</strong> <strong>onDemand</strong> Servers group together to form a Cluster, there is only one<br />
Cluster Manager survives. The result is that the Data Store that was originally attached to the surviving<br />
Cluster Manager is kept alive.<br />
License<br />
In many ways, License information can be treated as another form of configuration data that the<br />
Cluster Manager manages. Again, only Cluster Manager is allowed to deposit in, or withdraw from,<br />
the License pool.<br />
When an <strong>Exceed</strong> <strong>onDemand</strong> Server joins a Cluster, the administrators are required to manually<br />
transfer the license from the newly added node to the license pool by re-entering the Activation<br />
Key in the <strong>Exceed</strong> <strong>onDemand</strong> Server Manager.<br />
14
Types of Connectivity<br />
> <strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Typically, X applications communicate with X Display Servers to display output and receive input.<br />
In the case of <strong>Exceed</strong> <strong>onDemand</strong>, X applications communicate with <strong>Exceed</strong> <strong>onDemand</strong> Proxy via the<br />
X protocol. In turn, <strong>Exceed</strong> <strong>onDemand</strong> Proxy communicates with <strong>Exceed</strong> <strong>onDemand</strong> Client via Thin<br />
X Protocol (TXP).<br />
<strong>Exceed</strong> <strong>onDemand</strong> offers a number of startup modes, which enable two types of connectivity:<br />
Direct Client-server Connectivity:<br />
<strong>Exceed</strong> <strong>onDemand</strong> Client connects directly to X applications that reside on the same physical<br />
machine as <strong>Exceed</strong> <strong>onDemand</strong> Server.<br />
Figure 3 — Connects directly to X applications on <strong>Exceed</strong> <strong>onDemand</strong> Server<br />
Gateway Server Connectivity:<br />
X Applications<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server<br />
Thin X Protocol Traffic Thin X Protocol Traffic<br />
<strong>Exceed</strong> <strong>onDemand</strong> Client <strong>Exceed</strong> <strong>onDemand</strong> Client<br />
<strong>Exceed</strong> <strong>onDemand</strong> Client<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server is not required to be installed on every machine on which X applications<br />
reside. <strong>Exceed</strong> <strong>onDemand</strong> Server can act as a gateway between <strong>Exceed</strong> <strong>onDemand</strong> Client and X<br />
applications running on different machines.<br />
15
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Figure 4 — Connects to X applications through an <strong>Exceed</strong> <strong>onDemand</strong> Server<br />
Thin X Protocol<br />
History<br />
X Window System was developed in 1984. The goal was to create an operating environment that<br />
was truly hardware and vendor independent. The protocol that it used was called X protocol. It was<br />
designed to run on a Local Area Network (LAN) where bandwidth was high and latency was low.<br />
However, the terms “high bandwidth” and “low latency” can rarely be used to describe Wide Area<br />
Network (WAN) or Internet connections. A new protocol is urgently needed in order to create a<br />
server-based PC X server that can efficiently link the client to the server over any type of network<br />
connections, hence the birth of Thin X Protocol (TXP).<br />
16<br />
X Application X Application X Application<br />
X Protocol Traffic X Protocol Traffic<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server<br />
Thin X Protocol Traffic Thin X Protocol Traffic<br />
<strong>Exceed</strong> <strong>onDemand</strong> Client <strong>Exceed</strong> <strong>onDemand</strong> Client<br />
<strong>Exceed</strong> <strong>onDemand</strong> Client
What is TXP?<br />
TXP is designed to:<br />
> <strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
> Split functionalities between the Proxy and Client — The X functionalities are split between<br />
<strong>Exceed</strong> <strong>onDemand</strong> Proxy and <strong>Exceed</strong> <strong>onDemand</strong> Client, because the Proxy does not have the<br />
native ability to handle drawing requests and keyboard and mouse inputs. These requests are<br />
mapped to the TXP-equivalent requests and passed between Clients and Proxies.<br />
> Reduce bandwidth requirement — TXP has the ability to compress, cache and optimize requests.<br />
The goal is to minimize the amount of data that has to travel across the high latency, low bandwidth<br />
network. The trade-off for compressing the requests is higher CPU overhead; additional CPU cycles<br />
and computer resources are required to compress and decompress the requests. However, the<br />
abundant CPU power that PCs and servers now harness allows <strong>Exceed</strong> <strong>onDemand</strong> to achieve<br />
higher compression rates without sacrificing computer performance.<br />
> Adapt to the network bandwidth — The level of compression and optimization can change<br />
automatically depending on the network bandwidth availability. As the available bandwidth<br />
decreases, the compression increases and special optimization of TXP is activated. The shift<br />
between CPU overhead and bandwidth usage is done automatically during startup without<br />
involving the user.<br />
> Reduce roundtrip requests — X applications normally communicate with an <strong>Exceed</strong> <strong>onDemand</strong><br />
Proxy over a LAN connection where network bandwidth is abundant. <strong>Exceed</strong> <strong>onDemand</strong> Proxy, acting<br />
as a fully functional X server, is capable of handling all X protocol commands with the exceptions<br />
that have already been mentioned. As a result, many of the roundtrip requests are taking place<br />
over a LAN connection with little latency, while few roundtrip requests take place over WAN<br />
or Internet connections using the bandwidth-friendly TXP. Comparing this to a traditional X server<br />
running on a WAN or the Internet, where all X protocol commands have to travel on low bandwidth<br />
connections, the reduction in the number of roundtrip requests over the WAN or Internet connection<br />
is significant, thus giving <strong>Exceed</strong> <strong>onDemand</strong> an unparalleled performance advantage.<br />
> Strengthen X security over WAN and Internet — TXP can be easily encrypted using Secure<br />
Sockets Layer protocol for heightened security.<br />
17
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Licensing<br />
Since <strong>Exceed</strong> <strong>onDemand</strong> is a server-based PC X server, access is controlled by license keys (as is often<br />
true of server-based software) and the license manager on <strong>Exceed</strong> <strong>onDemand</strong> Server. A company is<br />
entitled to a fixed number of licenses based on the purchase agreement. The number of licenses and<br />
the type of licenses are reflected in the Activation Key that is provided. <strong>Exceed</strong> <strong>onDemand</strong> Server can<br />
accept multiple Activation Keys and they are cumulative.<br />
License Types<br />
Users will be receiving one of the following two types of licenses from Hummingbird at the time<br />
of purchase:<br />
Shared or Server-based License — One license is used per active X session. When a user ends or<br />
suspends a session, the occupied license is released and can then be re-used by other users. When<br />
all licenses are in use, no user can start an X session until a license becomes available.<br />
Assigned or Named License — The number of active user accounts cannot exceed the number<br />
of licenses purchased. If, for example, five assigned licenses are installed, only the first five users<br />
who are granted active accounts can start X sessions. These five users then share the five licenses<br />
as described above. If any other user needs access, then the administrator must either deactivate<br />
one of the five user accounts or acquire extra licenses.<br />
Some Simple Rules:<br />
> The license types of all licenses on an <strong>Exceed</strong> <strong>onDemand</strong> Server must be identical.<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server does not accept mixed license types.<br />
> The first time a user launches <strong>Exceed</strong> <strong>onDemand</strong> Client and creates a session or joins<br />
a shared session, one license is deducted from the license pool, provided the pool has<br />
at least one license available.<br />
> If the same user launches another <strong>Exceed</strong> <strong>onDemand</strong> Client from the same PC to the same<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server and creates another session, the user uses the same license that<br />
he or she received previously. No additional license is deducted from the pool.<br />
> If the user launches <strong>Exceed</strong> <strong>onDemand</strong> Client from another PC, or connects to another<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server, then one license is deducted from the <strong>Exceed</strong> <strong>onDemand</strong> Server<br />
that is hosting the session.<br />
> If the user terminates or suspends the last <strong>Exceed</strong> <strong>onDemand</strong> session that is connected<br />
to an <strong>Exceed</strong> <strong>onDemand</strong> Server, the license is returned to the pool for circulation.<br />
18
The Sequence of Events<br />
The following diagrams depict the <strong>Exceed</strong> <strong>onDemand</strong> connection events:<br />
Launch a Session<br />
<strong>Exceed</strong> on Demand<br />
<strong>Exceed</strong> on Demand Client X Proxy Manager Proxy<br />
Cluster Manager<br />
Request: Launch Session<br />
Suspend a Session<br />
Reply: Return Node ID, Port and Authentication Token<br />
Request: Launch Proxy<br />
Reply: Return Proxy Port, Display Number and Parameters<br />
Event: Connect<br />
Event: SessionStarted<br />
> <strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Request: Start Proxy<br />
<strong>Exceed</strong> on Demand<br />
<strong>Exceed</strong> on Demand Client X Proxy Manager Proxy<br />
Cluster Manager<br />
Request: Suspend<br />
Request: Get all Data Needed for Storage<br />
Request: Send Data<br />
Event: Session Suspended<br />
Event: Suspend<br />
19
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Resume a Session<br />
<strong>Exceed</strong> on Demand<br />
<strong>Exceed</strong> on Demand Client X Proxy Manager Proxy<br />
Cluster Manager<br />
Join a Session<br />
20<br />
Request: Get suspended sessions<br />
Reply: Return List<br />
Request: Select Session<br />
Reply: Return Authentication Token<br />
Request: Resume<br />
Reply: Return Proxy Port, Display Number and Parameters<br />
Event: Connect<br />
Event: Session Resumed<br />
<strong>Exceed</strong> on Demand<br />
<strong>Exceed</strong> on Demand Client X Proxy Manager Proxy<br />
Cluster Manager<br />
Request: Get Shared Sessions<br />
Reply: Return List<br />
Request: Select Session<br />
Reply: Return Authentication Token<br />
Request: Share<br />
Reply: Return Proxy Port, Display Number and Parameters<br />
Event: Connect<br />
Event: Session Joined
Server Requirements<br />
<strong>Exceed</strong> <strong>onDemand</strong> Resource Usage<br />
> <strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
“What kind of server do I need for <strong>Exceed</strong> <strong>onDemand</strong> Server?” This is a valid and logical question to<br />
ask when considering adopting <strong>Exceed</strong> <strong>onDemand</strong>--it is also a very difficult question to answer. It is<br />
akin to asking what machine is needed to run Windows XP. The answer to both questions is that it<br />
depends largely on how and for what the product will be used.<br />
If the machine only needs to run <strong>Exceed</strong> <strong>onDemand</strong> in passive mode and launch simple X<br />
applications, then most decent machines in the market will do. But this is rarely how <strong>Exceed</strong><br />
<strong>onDemand</strong> is used. After all, <strong>Exceed</strong> <strong>onDemand</strong> is a PC X Server and a graphical emulator.<br />
The access of the host resources can be broken down into three stages:<br />
Stage 1 — A fixed amount of resources are used to launch <strong>Exceed</strong> <strong>onDemand</strong>.<br />
Stage 2 — As an emulator, <strong>Exceed</strong> <strong>onDemand</strong> incurs additional resources for every X application<br />
it handles.<br />
Stage 3 — If the X application is running on the same host as the Server, then the application itself<br />
will consume resources.<br />
So, to rephrase the original question:<br />
a) What kind of X applications will my users access?<br />
b) Will the X applications and <strong>Exceed</strong> <strong>onDemand</strong> Server run on the same machine?<br />
c) How many users will access each X application?<br />
d) What is the usage pattern likely to be? Is there a peak hour when everyone will log on to the Server<br />
at the same time, or will the usage be evenly spread out throughout the day?<br />
So knowing the size of the deployment and its intended usage is essential. A site deploying <strong>Exceed</strong><br />
<strong>onDemand</strong> to 100 users, each running a copy of xterm, will have different server requirements<br />
than another site that deploys <strong>Exceed</strong> <strong>onDemand</strong> to 100 users with each running an instance of<br />
a complicated 3D imaging software product.<br />
However, this document will try to provide some basic guidelines and examples of system resource<br />
usage and bandwidth consumption when <strong>Exceed</strong> <strong>onDemand</strong> runs some common X applications.<br />
Users can use this information as a reference when deciding the size and capacity of a server<br />
intended to house <strong>Exceed</strong> <strong>onDemand</strong> Server, but they are strongly advised to collect data that<br />
is unique to their environment.<br />
21
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
The Setup<br />
<strong>Exceed</strong> <strong>onDemand</strong> 5 is installed on Sun ® Solaris ® 8, Red Hat Linux Advanced Server 3.0 and<br />
Microsoft Windows Server 2003. Similar configuration files are created on all <strong>Exceed</strong> <strong>onDemand</strong><br />
Servers, which will connect the user to Red Hat Linux machine launching various applications.<br />
Operating System Hardware Specification<br />
Sun Solaris 8 Sun UltraSparc II Processor @ 360 MHz and 512 MB RAM<br />
Windows Server 2003 Intel Pentium M at 1.5 GHz and 512 MB RAM<br />
Red Hat Linux Advanced Server 3.0 Intel Pentium 4 @ 1GHz and 512 MB RAM<br />
Memory Consumption<br />
Memory consumption was measured on the various hosts housing <strong>Exceed</strong> <strong>onDemand</strong> Server<br />
to record the memory usage of the ewebhost process. The results were measured in kilobytes (kb).<br />
X applications Sun Solaris Red Hat Linux Windows Server 2003<br />
Passive mode, no application (Base line) 5864 3100 4324<br />
xterm — Single Window Mode 5920 3264 4460<br />
Idling GNOME Desktop 16000 10204 11292<br />
Running Mozilla in the GNOME Desktop 18000 11088 12316<br />
Bandwidth Consumption<br />
The following table displays the total bytes transferred between <strong>Exceed</strong> <strong>onDemand</strong> Client<br />
and <strong>Exceed</strong> <strong>onDemand</strong> Server based on each type of X applications.<br />
<strong>Exceed</strong> <strong>onDemand</strong> Client <strong>Exceed</strong> <strong>onDemand</strong> Server<br />
IBM Thinkpad T40 Intel Pentium 4 @ 1GHz<br />
Pentium-M 1.6GHz 512 MB RAM<br />
1024MB RAM Linux Red Hat Enterprise Advanced Server<br />
22
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
X Applications Traditional X Server <strong>Exceed</strong> <strong>onDemand</strong>)<br />
Traditional X Servers are not bandwidth-sensitive. Therefore, regardless of whether the X server<br />
is runs over a LAN or dialup connection, it consumes the same amount of bandwidth and sends<br />
the same amount of data over the network. <strong>Exceed</strong> <strong>onDemand</strong>, however, is not only capable of<br />
significantly reducing bandwidth usage; it is also bandwidth-sensitive. As the connection speed<br />
and the bandwidth decline, the advanced compression and caching mechanism is engaged and<br />
the bandwidth usage decreases.<br />
As the results indicate, launching a Gnome desktop using traditional X server generated more than<br />
7MB of data transfer between the Red Hat Linux machine and the PC. Using <strong>Exceed</strong> <strong>onDemand</strong> to<br />
launch the same desktop from the Linux machine over a LAN connection generated 90 times less data<br />
and brought the total transfer down to 80kb. The same test was performed over a dialup connection<br />
and data transfer was further reduced to 67kb, or more than 100 times less data. The amount of data<br />
transfer varies from one application to another depending on the nature of the X application.<br />
Summary<br />
Fast Connection Slow Connection<br />
Gnome Desktop 7,132 80 (1.1%) 67 (0.9%)<br />
Gnome and Firefox 11,087 324 (2.9%) 254 (2.3%)<br />
The server requirements for <strong>Exceed</strong> <strong>onDemand</strong> Server can be as disparate as the system requirements<br />
for the X applications themselves. Software evaluators are strongly advised to install <strong>Exceed</strong><br />
<strong>onDemand</strong> in their environments and monitor the CPU, bandwidth and memory usages, as well as<br />
the access pattern. Using these statistics, software evaluators will appreciate the uniqueness of their<br />
environments. Finally, they can make an informed decision on the server hardware requirement that<br />
can satisfy their expectations.<br />
23
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Installation and Connection<br />
Installing <strong>Exceed</strong> <strong>onDemand</strong><br />
<strong>Exceed</strong> <strong>onDemand</strong> follows a server/client model that involves installation of both server and client<br />
components on different machines. In a simplified environment, administrators need to install <strong>Exceed</strong><br />
<strong>onDemand</strong> Server on at least one of the many UNIX, Linux and Windows server platforms that it<br />
supports. Then, administrators must distribute <strong>Exceed</strong> <strong>onDemand</strong> Client to as many office desktops,<br />
home desktops and laptops as necessary and as the license permits. Since the installation of client<br />
software is usually repetitive, Hummingbird took extra care in making this process as simple and<br />
inexpensive as possible. Post-deployment software management is also necessary in order to create<br />
a painless administration environment. <strong>Exceed</strong> <strong>onDemand</strong> employs various installation technologies<br />
that reduce the administrative and management overhead for both Server and Client components.<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server for Windows is built on Microsoft Windows Installer technology for<br />
installation, modification, upgrade and removal of the software. This technology, which was introduced<br />
by Microsoft in Windows 2000, provides a powerful installation framework across all of the platforms<br />
of the Microsoft operating system family. Windows Installer provides administrators with consistent<br />
and reliable methods to customize installations, upgrade applications, and resolve configuration<br />
problems. It can also manage shared resources, enforce consistent file version rules, and diagnose<br />
and repair applications at runtime.<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server for xNIX packages are self-extracting executables that are designed to run<br />
on the specific UNIX or Linux hosts. Each type of xNIX host has its own unique installation package.<br />
The installation process is script-driven, which helps administrators to install and configure <strong>Exceed</strong><br />
<strong>onDemand</strong> Server with minimum effort and maximum efficiency.<br />
By default, <strong>Exceed</strong> <strong>onDemand</strong> Server is installed as a Standalone Server with Cluster Manager<br />
enabled. When <strong>Exceed</strong> <strong>onDemand</strong> Server is started, administrators should be able to find EoDPM<br />
and EoDCM in the process list. For each <strong>Exceed</strong> <strong>onDemand</strong> Proxy that is running, there is one<br />
corresponding ewebhost process. To learn how to add nodes to a cluster, please refer to Section<br />
6 “Server, User and File Management.”<br />
24
<strong>Exceed</strong> <strong>onDemand</strong> Client<br />
There are two ways to distribute <strong>Exceed</strong> <strong>onDemand</strong> Client to the user base:<br />
> <strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
1) distribute the wizard-driven, Windows-based installation program through the regular windows<br />
deployment tools, or<br />
2) distribute <strong>Exceed</strong> <strong>onDemand</strong> Client through web browsers with the help of <strong>Exceed</strong> <strong>onDemand</strong><br />
Deployment Wizard. Regardless of which deployment method is used, end users receive the same<br />
<strong>Exceed</strong> <strong>onDemand</strong> Client.<br />
For more information on deploying <strong>Exceed</strong> <strong>onDemand</strong> Client using <strong>Exceed</strong> <strong>onDemand</strong> Deployment<br />
Tools, please refer to Section 8: “Web Deployment.”<br />
Other Components<br />
<strong>Exceed</strong> <strong>onDemand</strong> also comes with a collection of administrative and deployment tools that help<br />
administrators manage the product:<br />
> <strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard<br />
> <strong>Exceed</strong> <strong>onDemand</strong> Server Manager<br />
> <strong>Exceed</strong> <strong>onDemand</strong> Print Utilities<br />
> <strong>Exceed</strong> <strong>onDemand</strong> Keyboard Editor<br />
Most of these tools are Windows-based applications (with the exception of <strong>Exceed</strong> <strong>onDemand</strong> Print<br />
Utilities which can also run on xNIX environments), and they are part of the <strong>Exceed</strong> <strong>onDemand</strong> Server<br />
for Windows installation. Regardless of what platform <strong>Exceed</strong> <strong>onDemand</strong> Server is currently running<br />
on, administrators would have to install <strong>Exceed</strong> <strong>onDemand</strong> Server for Windows on a Windows<br />
platform should they wish to benefit from the additional tools. <strong>Exceed</strong> <strong>onDemand</strong> Server component<br />
should be deselected during the installation. Thanks to Microsoft Windows Installer technology, it is<br />
a simple and straightforward task to customize the installation.<br />
Since <strong>Exceed</strong> <strong>onDemand</strong> Server can run on most common xNIX platforms, it is an added benefit<br />
if the Server is installed on the same host where the X applications reside. By minimizing network<br />
traffic and latency, this configuration can potentially improve overall performance.<br />
In some other cases, administrators will favor the non-intrusive approach: <strong>Exceed</strong> <strong>onDemand</strong> Server<br />
is installed on a separate machine, leaving the machines running the mission-critical applications<br />
untouched. In this case, the host does not have to split resources, such as CPU cycles, bus bandwidth<br />
and memory, between the mission-critical applications and <strong>Exceed</strong> <strong>onDemand</strong> Proxies. With more<br />
resources available to the X applications on one machine and <strong>Exceed</strong> <strong>onDemand</strong> Proxies on another,<br />
users may experience improvement in response time and performance.<br />
25
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Connecting to <strong>Exceed</strong> <strong>onDemand</strong> Server<br />
Regardless of how <strong>Exceed</strong> <strong>onDemand</strong> Client is deployed, users will always have a shortcut in the<br />
<strong>Exceed</strong> <strong>onDemand</strong> folder in the Start Menu. Depending on how users respond during the installation<br />
of the Client or the configuration of the deployment package, they may also find an <strong>Exceed</strong> <strong>onDemand</strong><br />
Client shortcut on the desktop. <strong>Exceed</strong> <strong>onDemand</strong> Client is the entrance to the <strong>Exceed</strong> <strong>onDemand</strong><br />
Server — it is what users must use to connect to <strong>Exceed</strong> <strong>onDemand</strong> Server, through which they can<br />
connect to other hosts.<br />
Creating a Connection to <strong>Exceed</strong> <strong>onDemand</strong> Server<br />
Follow the 3 easy steps to create a connection to <strong>Exceed</strong> <strong>onDemand</strong> Server.<br />
1) Double-click the <strong>Exceed</strong> <strong>onDemand</strong> Client 5 icon on the Windows desktop or from the Windows<br />
Start menu, open the Hummingbird <strong>Exceed</strong> <strong>onDemand</strong> 5 program group and click on <strong>Exceed</strong><br />
<strong>onDemand</strong> Client.<br />
2) <strong>Exceed</strong> <strong>onDemand</strong> Client prompts the user to enter connection information such as:<br />
> Host — Name of the host running <strong>Exceed</strong> <strong>onDemand</strong> Server<br />
> User ID — The user ID for logging on to the host listed in the previous field<br />
> Password — The user’s password for logging on to the host<br />
> Xstart File — This configuration file contains remote login and automatic X application startup<br />
information. The Xstart files reside in the Data Store.<br />
> Xconfig File — Xconfig file control the look and behavior of the X session. The Xconfig files<br />
also reside in the Data Store.<br />
3) Once all information has been provided, click on the RUN icon on the toolbar, or RUN menu<br />
item from the ACTION menu to establish the <strong>Exceed</strong> <strong>onDemand</strong> connection.<br />
<strong>Exceed</strong> <strong>onDemand</strong> Client allows users to save the aforementioned information in an <strong>Exceed</strong><br />
<strong>onDemand</strong> Connection Document anywhere on the PC. Double-clicking on any of the Connection<br />
Documents will cause <strong>Exceed</strong> <strong>onDemand</strong> Client to launch with the settings specified in the Connection<br />
Document. Information saved in the Connection Document can either be complete or partial. If the<br />
Connection Document does not contain sufficient information, <strong>Exceed</strong> <strong>onDemand</strong> Client will prompt<br />
the user for the missing information upon launching.<br />
26
Figure 5 — <strong>Exceed</strong> <strong>onDemand</strong> Client with all information entered<br />
> <strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
<strong>Exceed</strong> <strong>onDemand</strong> Client also provides some basic logging and monitoring capabilities.<br />
> Enable Logging — When this option is selected, <strong>Exceed</strong> <strong>onDemand</strong> Client records information<br />
to a client log file.<br />
> Show Startup Monitor — When this option is selected, a startup monitor appears when connecting<br />
to a host, which shows the progress of the client connection to the <strong>Exceed</strong> <strong>onDemand</strong> Server.<br />
27
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Configuration<br />
Different Types of Configuration Files<br />
The Configuration area of <strong>Exceed</strong> <strong>onDemand</strong> Client’s main screen describes the configuration files<br />
that are stored on <strong>Exceed</strong> <strong>onDemand</strong> Server. These configured files contain information such as the<br />
location of the X application, how <strong>Exceed</strong> <strong>onDemand</strong> should launch the X application, and numerous<br />
configuration options related to the appearance and behavior of the <strong>Exceed</strong> <strong>onDemand</strong> session. There<br />
are two types of configuration files: Xstart and Xconfig.<br />
Xstart Versus Xconfig Files<br />
Xstart and Xconfig are concepts borrowed from <strong>Exceed</strong>. As a result, the configuration options and<br />
the content of the configuration files are similar to those of <strong>Exceed</strong>. In fact, <strong>Exceed</strong> <strong>onDemand</strong> and<br />
<strong>Exceed</strong> Xstart files can be used interchangeably.<br />
Xstart Files<br />
Xstart automates the process of connecting to a host and starting X applications that reside on it.<br />
A user can create, configure and manage Xstart files (.xs) using <strong>Exceed</strong> <strong>onDemand</strong> Xstart Manager.<br />
In these files, the user will specify the host to be connected to the startup method, the login<br />
credentials and the command line parameters necessary to start the X application.<br />
Users are not required to launch an Xstart file for every <strong>Exceed</strong> <strong>onDemand</strong> session. For example, if a<br />
user wants to connect to Linux host and work in the GNOME environment then there is no need for the<br />
user to provide Xstart file information. In this case, the user should select None in the Xstart file field.<br />
Xconfig Files<br />
Xconfig files contain information that specifies how <strong>Exceed</strong> <strong>onDemand</strong> starts an X session and how<br />
it looks and behaves. Therefore, an Xconfig file is required to launch every <strong>Exceed</strong> <strong>onDemand</strong><br />
session. <strong>Exceed</strong> <strong>onDemand</strong> Xconfig Manager lets users create, edit, and delete Xconfig files.<br />
28
Global versus User-defined files<br />
> <strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
The Xstart and Xconfig files are further divided into two groups: Global and User-defined.<br />
Global Files<br />
These files are created, managed and distributed exclusively by administrators. <strong>Exceed</strong> <strong>onDemand</strong> is<br />
installed with two global Xconfig files and two global Xstart files (except for <strong>Exceed</strong> <strong>onDemand</strong> Server<br />
for Windows, where there is no default global Xstart file). These configuration files are available to all<br />
users the first time they connect to a host. Administrators can create additional global files and make<br />
them available as well. Please refer to Section 6: “Server, User and Configuration File Management”<br />
for more information on administering the Global configuration files.<br />
User-defined Files<br />
These files are created and/or managed by users. (User-defined files also include files that administrators<br />
create and distribute to users.) Each user is responsible for his/her own files. Only administrators can<br />
access, edit, and delete files of other users.<br />
Figure 7 — <strong>Exceed</strong> <strong>onDemand</strong> Xstart Manager shows Global and User-defined Xstart files<br />
29
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Configuring a Profile<br />
Regardless of whether a profile belongs to Global or User File, it has the same number of configurable<br />
options that a user or an administrator can customize to meet specific needs.<br />
Startup Mode Settings<br />
<strong>Exceed</strong> <strong>onDemand</strong> offers 4 different Startup Modes, giving users the maximum flexibility in launching<br />
any X application from virtually any host. The Startup Modes are grouped into 2 categories:<br />
Passive and XDMCP. Users can select any Startup Mode based on the location and the type of the<br />
X application, the connectivity protocols that are available on the host, and the security protocol<br />
on which the corporation has standardized.<br />
Passive — <strong>Exceed</strong> <strong>onDemand</strong> starts the session without making any initial attempt to connect to<br />
a specific host or to run an application. This mode is most suitable for use in conjunction with an<br />
Xstart file.<br />
XDMCP — Users will connect to XDM hosts and launch an X session. Common Desktop Environment<br />
(CDE), GNOME and KDE are some of the commonly used X sessions. There are three different startup<br />
methods under the XDMCP category.<br />
> Query — automatically makes a connection to the host that was specified, or<br />
> Broadcast — broadcasts to hosts on the network to determine which hosts are willing to manage<br />
the X display, or<br />
> Indirect — sends a query to a host which sends queries to other hosts on the network to determine<br />
which are willing to manage the X display<br />
After a startup mode is selected, users can provide further information specific to the startup mode<br />
in the dialog.<br />
Figure 8 — Configure an Xconfig file options<br />
30
Customizing the User Experience<br />
> <strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Users can further customize the look and feel of the <strong>Exceed</strong> <strong>onDemand</strong> session based on either their<br />
personal preferences or specifications that are outlined by X applications. This includes customizing<br />
the keyboard and mouse input settings, display and screen settings and fonts.<br />
Keyboard Mapping<br />
X Window is essentially a window-type graphical user interface designed for UNIX. Users interact<br />
with it primarily by either typing or pointing-and-clicking with a mouse. Therefore, the ability to<br />
accurately and effectively communicate with the X application using the input devices is crucial.<br />
Out of the box, <strong>Exceed</strong> <strong>onDemand</strong> supports 16 pre-configured keyboard mapping files, including<br />
US, UK, French, German and Spanish keyboard mappings. If there is a need to modify an existing<br />
keyboard file or create a new one, <strong>Exceed</strong> <strong>onDemand</strong> offers the XKeys utility which is part of the<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server for Windows installation. XKeys is a Windows application that allows<br />
administrators to modify or create additional keyboard mappings, if necessary. Each physical key<br />
can be mapped to any keysym from one of the 26 symbol sets. Administrators can also use this<br />
application to create keyboard layouts other than the standard 101 and 102 keyboard layouts.<br />
And to top it off, <strong>Exceed</strong> <strong>onDemand</strong> and <strong>Exceed</strong> keyboard mappings are interchangeable. Existing<br />
keyboard mappings that were created for <strong>Exceed</strong> can be used by <strong>Exceed</strong> <strong>onDemand</strong>. This capability<br />
guarantees maximum compatibility between the two software packages. It also benefits users who<br />
access both <strong>Exceed</strong> and <strong>Exceed</strong> <strong>onDemand</strong> on different occasions — they will not have to remap,<br />
or worse, re-learn all the keystrokes.<br />
Figure 9 — <strong>Exceed</strong> <strong>onDemand</strong> supports 16 pre-configured keyboard mapping files<br />
31
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Figure 10 — Use Xkeys tool to create or modify keyboard mapping files<br />
Screen Settings<br />
Screen settings are not only user preference settings; they are also application preference settings.<br />
X applications may require the X server to be set up in a particular way in order for the application<br />
to function properly. Screen settings are mainly comprised of the configuration for the Server Visual<br />
and Window Mode.<br />
Server Visual<br />
Server Visual defines the color characteristics for the specified screen of the X server display. The<br />
Server Visual is crucial to the successful execution of an X application because it defines the colors<br />
that are available to an X application. It also determines the ability of the X application to change<br />
the color maps based on the application’s requirements. <strong>Exceed</strong> <strong>onDemand</strong> offers 5 different Server<br />
Visuals and an option to allow <strong>Exceed</strong> <strong>onDemand</strong> Server to automatically select the most appropriate<br />
Server Visual based on the Windows desktop color depth.<br />
Under most circumstances, users should let <strong>Exceed</strong> <strong>onDemand</strong> detect and select the Server Visual<br />
that is most appropriate for the current X session. However, some X applications demand a specific<br />
Server Visual that is not obvious to <strong>Exceed</strong> <strong>onDemand</strong>’s detection mechanism. Failing to comply will<br />
result in an unsuccessful execution of the application, or it will be executed with poor visual quality.<br />
In this case, users should override the Server Visual setting.<br />
<strong>Exceed</strong> <strong>onDemand</strong> also supports multiple server visuals and multiple color depths, which is required<br />
by some advanced X applications.<br />
32
Figure 11 — Select a server visual for the session<br />
Window Mode<br />
<strong>Exceed</strong> <strong>onDemand</strong> supports two window modes:<br />
> Multiple Window Mode — Displays each X application in a separate window<br />
> <strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
> Single Window Mode — Displays all X applications in a single <strong>Exceed</strong> <strong>onDemand</strong> window<br />
For users who want the most seamless integration of UNIX and Windows work environments,<br />
Multiple Window Mode will be the most desirable choice — X applications will be wrapped by<br />
Native (Microsoft) Window Manager by default and blend in nicely to the Microsoft Windows<br />
desktop. Other X applications may require support for a different window manager, such as Motif<br />
Window Manager, so <strong>Exceed</strong> <strong>onDemand</strong> allows users to change the Window manager from Native<br />
to any X window manager of their choice.<br />
Users who want a consolidated view of all X applications in a single window can easily change the<br />
window mode to Single with just the toggle of a switch. Users are required to launch an X window<br />
manager to manage all the X applications.<br />
33
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Figure 12 — X applications are displayed in multiple window mode<br />
Fonts<br />
Font is the last major configurable item that has crucial impact on the visualization and usability<br />
of an X server. With the correct font settings, an X application can display the right text on the<br />
right part of the screen accurately and efficiently.<br />
<strong>Exceed</strong> <strong>onDemand</strong> already comes with a great collection of fonts that are capable of handling most<br />
of the X font requests. It also comes with numerous double-byte character sets fonts, such as Chinese,<br />
Big5, Japanese and Korean. The font database contains 19 commonly used font sets.<br />
The fonts are part of the <strong>Exceed</strong> <strong>onDemand</strong> Server installation and they reside on the same machine<br />
as the <strong>Exceed</strong> <strong>onDemand</strong> Server in the native UNIX format (*.PCF). Upon receiving Open Font<br />
requests from the X application, <strong>Exceed</strong> <strong>onDemand</strong> Proxy will search for an exact match in the<br />
font database. Should the exact match not exist, <strong>Exceed</strong> <strong>onDemand</strong> Proxy will attempt to use<br />
the font from the database that most closely matches the requested font.<br />
34
Figure 13 — Enable or disable font sets from the list or add new font server to the database<br />
> <strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
As rich as the font database collection is, it does include every font that is available in the market.<br />
That is why <strong>Exceed</strong> <strong>onDemand</strong> allows users to add additional UNIX fonts or font servers to the font<br />
database — the collection is infinitely expandable.<br />
Once the matching font is found, the UNIX font will be transferred to <strong>Exceed</strong> <strong>onDemand</strong> Client<br />
if the font has not already been cached on the PC. The font will then be converted immediately<br />
to the Microsoft Windows Font format (FON) for optimized performance.<br />
Printing and File Transferring<br />
<strong>Exceed</strong> <strong>onDemand</strong> offers users the convenient advantage of being able to print from X applications<br />
running on <strong>Exceed</strong> <strong>onDemand</strong> to Windows printers, instead of printing to a printer in a remote<br />
location. After all, users can connect to <strong>Exceed</strong> <strong>onDemand</strong> Server from anywhere in the world.<br />
It only makes sense that print jobs should be sent to printers that <strong>Exceed</strong> <strong>onDemand</strong> users can<br />
access. A utility called elpr can help.<br />
elpr is an X application that accepts print jobs from other X applications and passes the jobs to the<br />
Proxy. Through <strong>Exceed</strong> <strong>onDemand</strong> Server, print jobs travel to <strong>Exceed</strong> <strong>onDemand</strong> Client and, in turn,<br />
to the default Windows printer or any Windows printer of the user’s choice. Since elpr interacts<br />
directly with the X application, this utility must be installed on each machine running X applications.<br />
elpr has another responsibility: to provide basic file transfer functionality. Through the same<br />
mechanism and traveling along the same data path, users can use elpr to transfer files from the<br />
host to the PC over the <strong>Exceed</strong> <strong>onDemand</strong> connection. All data is transferred over the Cluster<br />
Manager Connection.<br />
35
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Figure 14 — <strong>Exceed</strong> <strong>onDemand</strong> Server Files shows all of the available files on the Server<br />
Performance Optimization<br />
<strong>Exceed</strong> <strong>onDemand</strong> is designed to run on all types of network connections, but especially on remote<br />
connections such as WAN and Internet. The remote access connection speed varies widely, from a<br />
dial-up modem connection at 33.6kbps to a DSL connection that can be as fast as 1.5Mbps. Regardless<br />
of the connection speed, <strong>Exceed</strong> <strong>onDemand</strong> Client can efficiently communicate with <strong>Exceed</strong><br />
<strong>onDemand</strong> Server.<br />
FAST and SLOW Connection<br />
<strong>Exceed</strong> <strong>onDemand</strong> automatically tests the connection speed when an X session is launched. Based<br />
of the results of the test, <strong>Exceed</strong> <strong>onDemand</strong> decides if the <strong>Exceed</strong> <strong>onDemand</strong> Proxy should be set to<br />
“Fast” or “Slow” Connection. This selection dictates the level of Compression as well as the allowed<br />
number of Window Exposure events.<br />
Compression<br />
<strong>Exceed</strong> <strong>onDemand</strong> uses Thin X Protocol to handle the communication between <strong>Exceed</strong> <strong>onDemand</strong><br />
Client and <strong>Exceed</strong> <strong>onDemand</strong> Server. This connection is usually slower because it is more likely for<br />
<strong>Exceed</strong> <strong>onDemand</strong> Client to be running in a remote location, connecting to the Server over dial-up<br />
or broadband connections.<br />
One of the characteristics of TXP is its ability to compress data so fewer bits have to travel over<br />
the network connection. The compression ratio is controlled by <strong>Exceed</strong> <strong>onDemand</strong> Proxy, but users<br />
can override it under certain conditions. If the network connection is FAST, the Proxy will default<br />
the compression setting to “Large Data Only,” which means that only images and font data will be<br />
compressed. TXP commands will not be compressed. Users can override this setting to either “None”<br />
or “All Data.” The “None” setting benefits <strong>Exceed</strong> <strong>onDemand</strong> when running on a very fast network,<br />
one so fast that any performance benefit gained by decreasing the number of bits transferred is offset<br />
by the time <strong>Exceed</strong> <strong>onDemand</strong> takes to compress and decompress data. However, users will observe<br />
little bandwidth reduction with this setting. “All Data” compression, as the name implies, compresses<br />
all data. The bandwidth usage is at the minimum. Users cannot adjust the Compression setting if the<br />
connection is “Slow.”<br />
36
Font Caching<br />
> <strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Since all fonts are located on the Server and it is the Client that has to display the text on the screen, the<br />
fonts have to be transferred from the Server to the Client, and this process can be time consuming and<br />
repetitive. Font Caching can help. Caching is a mechanism that temporarily stores frequently accessed<br />
information in a location that is easier and faster to access than the original storage place. With Font<br />
Caching turned on, <strong>Exceed</strong> <strong>onDemand</strong> Client caches all requested fonts persistently in local storage.<br />
<strong>Exceed</strong> <strong>onDemand</strong> Proxy consults the Client’s font cache content first before sending the font over<br />
the network. This mechanism ensures the maximum efficiency and reduces redundant network traffic.<br />
Users can further specify the maximum number of fonts that can be stored in the cache directory.<br />
Image Caching<br />
The concept of Image Caching is similar to Font Caching; large images can take a long time to transfer<br />
from the proxy to the client. <strong>Exceed</strong> <strong>onDemand</strong> can persistently cache large images in local storage<br />
to save bandwidth and improve performance. Users can also define the image size threshold and the<br />
maximum storage size for the image cache.<br />
Figure 15 — Set the connection speed to Fast, Slow or Auto-detect<br />
OpenGL API<br />
OpenGL API is the premier environment for developing portable, interactive 2D and 3D graphics<br />
applications. Since its inception, OpenGL API has become the industry’s most widely used and<br />
supported 3D graphics application programming interface. <strong>Exceed</strong> <strong>onDemand</strong>, while promising<br />
the performance and functionality of <strong>Exceed</strong> for the mobile workforce, has harnessed the power<br />
of OpenGL API. It now supports OpenGL applications, such as scientific and data analysis,<br />
geographic mapping, content creation, CAD, CAM and CAE.<br />
37
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Figure 16 — Display a CAD/CAM application over a remote connection<br />
The unique design of <strong>Exceed</strong> <strong>onDemand</strong> allows the Proxy to delegate OpenGL API rendering tasks<br />
to <strong>Exceed</strong> <strong>onDemand</strong> Client, thus relieving the Proxy of the heavy computational tasks. As a result,<br />
the proxy can simultaneously handle a larger number of OpenGL API applications.<br />
Figure 17 — <strong>Exceed</strong> <strong>onDemand</strong> can display X applications with OpenGL API implementation<br />
Languages<br />
<strong>Exceed</strong> <strong>onDemand</strong> Client is available in the following languages:<br />
> German<br />
> English<br />
> Spanish<br />
> French<br />
> Italian<br />
38<br />
3D X Application<br />
3D X Application<br />
X Protocol<br />
OpenGL drawing requests are sent<br />
to <strong>Exceed</strong> <strong>onDemand</strong> Proxies<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server<br />
<strong>Exceed</strong> <strong>onDemand</strong><br />
Cluster Manager<br />
X Proxy Manager<br />
<strong>Exceed</strong> <strong>onDemand</strong> Proxy<br />
<strong>Exceed</strong> <strong>onDemand</strong> Proxy<br />
TXP<br />
OpenGL drawing requests are being delegated<br />
to the <strong>Exceed</strong> <strong>onDemand</strong> Clients<br />
<strong>Exceed</strong> <strong>onDemand</strong> Client<br />
on PC # 1<br />
<strong>Exceed</strong> <strong>onDemand</strong> Client<br />
on PC # 2
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Users can switch from one language to another “on-the-fly” using the built-in language chooser<br />
function. The available languages are determined during the installation.<br />
Figure 18 — Select language for the user interface<br />
Other <strong>Exceed</strong> <strong>onDemand</strong> components are also multi-lingual. The user interface language of <strong>Exceed</strong><br />
<strong>onDemand</strong> Deployment Wizard and <strong>Exceed</strong> <strong>onDemand</strong> Server Manager is affected by the language<br />
selection made in <strong>Exceed</strong> <strong>onDemand</strong> Client. <strong>Exceed</strong> <strong>onDemand</strong> Server, on the other hand, is English Only.<br />
Hummingbird Language Chooser offers an alternative means of altering the language selection. This<br />
standalone Windows application is part of <strong>Exceed</strong> <strong>onDemand</strong> Server installation on Windows. It<br />
allows users to change the user interface language of the following <strong>Exceed</strong> <strong>onDemand</strong> components:<br />
> <strong>Exceed</strong> <strong>onDemand</strong> Client<br />
> <strong>Exceed</strong> <strong>onDemand</strong> Server Manager<br />
> <strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard<br />
39
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Figure 19 — <strong>Exceed</strong> <strong>onDemand</strong> users can switch the UI language<br />
Using the application, users can either select a specific language for all user interfaces, or allow<br />
<strong>Exceed</strong> <strong>onDemand</strong> to match the language that Windows is using.Server, User and File Management<br />
40
Introducing <strong>Exceed</strong> <strong>onDemand</strong> Server Manager<br />
> <strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
<strong>Exceed</strong> <strong>onDemand</strong> Server Manager is a Windows-based management tool that administrators can<br />
use to manage <strong>Exceed</strong> <strong>onDemand</strong> Server. This tool is indifferent to the server-platform — it can<br />
connect to any <strong>Exceed</strong> <strong>onDemand</strong> Server running on any supported platform in one or more<br />
networks. It allows administrators to manage many <strong>Exceed</strong> <strong>onDemand</strong> Servers in a corporate<br />
network from a single location, and thereby minimizes the administrative overhead.<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server Manager is a part of the <strong>Exceed</strong> <strong>onDemand</strong> Server for Windows installation.<br />
Regardless of the platform on which <strong>Exceed</strong> <strong>onDemand</strong> Server is currently running, administrators<br />
must install <strong>Exceed</strong> <strong>onDemand</strong> Server for Windows on a Windows platform should they wish to<br />
benefit from this tool. If the administrator only wants to install <strong>Exceed</strong> <strong>onDemand</strong> Server Manager,<br />
then during <strong>Exceed</strong> <strong>onDemand</strong> Server installation other components should be deselected.<br />
Figure 20 — <strong>Exceed</strong> <strong>onDemand</strong> Server Manager manages Server, users and configuration files<br />
The user interface indicates the four areas that <strong>Exceed</strong> <strong>onDemand</strong> Server Manager handles:<br />
Cluster, Nodes, Users and Files.<br />
As noted before, Cluster Manager and X Proxy Manager are the main components of <strong>Exceed</strong><br />
<strong>onDemand</strong> Server, regardless of whether the server is configured as a Standalone server or<br />
a Cluster. Therefore, both Cluster and Node Management tasks apply to every installation<br />
of <strong>Exceed</strong> <strong>onDemand</strong> Server.<br />
Cluster Management<br />
Administrators will use the Cluster Management portion of <strong>Exceed</strong> <strong>onDemand</strong> Server Manager<br />
to perform the following tasks:<br />
> Configure Cluster Manager Port<br />
> Modify SSL option<br />
> Select Authentication Types<br />
> Setting Cluster Manager Password<br />
41
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
> Manage Activation Keys<br />
> Restart Cluster Manager<br />
> View Cluster Manager Log<br />
All tasks, except Setting Cluster Manager Password, apply to both Standalone and Cluster configured<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server. The explanation and usage of most of the tasks are well documented in the<br />
Help file and manual. However, there are a couple of points that administrators should take note of.<br />
There are two ways to authenticate a user, Native and PAM. The Native authentication type allows<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server to authenticate the users; more specifically, the host on which the Cluster<br />
Manager Node resides will handle the authentication requests. Alternatively, administrators can<br />
select PAM (Pluggable Authentication Modules) as the authentication type. The PAM option is only<br />
available if the Cluster Manager Node resides on Sun Solaris or Linux, as PAM has been widely<br />
adopted on those platforms. In this case, <strong>Exceed</strong> <strong>onDemand</strong> Client credentials will be passed to the<br />
PAM module for verification, but administrators are required to configure PAM to include <strong>Exceed</strong><br />
<strong>onDemand</strong> services and specify an associated PAM module. If configured properly, <strong>Exceed</strong> <strong>onDemand</strong><br />
Client credentials can be authenticated by LDAP Server, RSA Authentication Manager, or any other<br />
authentication/directory services that support PAM.<br />
Figure 21 — Manage the Cluster in the Cluster Settings dialog<br />
42
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
When adding a new node to an existing cluster, the activation key originally associated with the<br />
newly added node will not be transferred to the Cluster Manager. Therefore, it is necessary for<br />
administrators to re-enter the activation key using this tool. Similarly, if a node is to be reverted back<br />
to the standalone status, it will require an Activation Key which can be obtained from Hummingbird,<br />
or the administrator can remove a key from the Cluster and use it on the new standalone Server. It is<br />
important to remember that each Activation Key can only used on one server in order to comply with<br />
the End User License Agreement.<br />
Figure 22 — View, add and remove activation keys<br />
Node Management<br />
Nodes are in fact the individual X Proxy Managers. Therefore, in a standalone <strong>Exceed</strong> <strong>onDemand</strong> Server<br />
configuration, the host itself will be listed in the Nodes sub-tree. Node Management tasks includes:<br />
> Configure Proxy Manager Port<br />
> Set Display ID<br />
> Set the Secure Shell command<br />
> Select the role of the node<br />
> Restart the node<br />
> View Proxy Manager log<br />
43
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Figure 23 — Join or leave cluster in Node Settings dialog<br />
Administrators will use the Node Management to define the role of the X Proxy Manager and<br />
determine whether the X Proxy Manager is part of a Cluster. If it is, the name, port and password<br />
of the Cluster Manager is required in order for the node to successfully join the cluster, followed<br />
by restarting the soon-to-be added node.<br />
Similarly, administrators can use this user interface to convert any node (except for the Cluster<br />
Manager Node) back to a standalone Server followed by a node restart. Be aware that when a node<br />
is removed from a Cluster, all the Proxies handled by that node are terminated along with the<br />
sessions. Owners of these sessions are required to reconnect to <strong>Exceed</strong> <strong>onDemand</strong> Server and<br />
restart the session.<br />
44
User Management<br />
> <strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
There are two types of users: administrators and normal users. Administrators have all the rights and<br />
privileges in controlling and configuring <strong>Exceed</strong> <strong>onDemand</strong> Server. They can also set the default<br />
privileges of the normal user or the privileges of an individual user. For example, if the administrator<br />
wants to minimize the resources that each user can use then the administrator can turn off the<br />
Suspend feature, or disallow users from sharing their X sessions, or limit the maximum number<br />
of X sessions that a user can initiate.<br />
An administrator can also assign the administrative privileges to any user.<br />
Figure 24 — Administrators can grant user and All Users permissions<br />
Administrators can also remove or de-activate user accounts. There are subtle differences between<br />
remove and de-activate in the realm of <strong>Exceed</strong> <strong>onDemand</strong>. In essence, “remove” removes a user from<br />
<strong>Exceed</strong> <strong>onDemand</strong>’s user tree, along with all the user configuration files associated with that user.<br />
However, it does not prevent users from logging on to the machine in the future. “De-activate” keeps<br />
the user name on the tree, as well as all of the configuration files. Once an account is deactivated,<br />
users will not be able to access <strong>Exceed</strong> <strong>onDemand</strong> Server using the same login.<br />
45
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
In the other words, “de-activate” option can be used as a passive license enforcement mechanism. Imagine<br />
a situation where 10 assigned/named licenses were purchased and installed. <strong>Exceed</strong> <strong>onDemand</strong> Server<br />
would keep track of all the users that ever logged on to the Server. The first time a user connected to<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server, an active account would be created for that user. All 10 licenses are “assigned”<br />
after 10 users have logged on to the Server. But let’s assume one of the users was not supposed to connect<br />
to this Server. Instead of removing the user account, the administrator could deactivate it. The next time<br />
when the same user connected to the Server, the Server would not create a new active account for that<br />
user, and the user would be effectively blocked from accessing the Server again.<br />
File Management<br />
Xstart and Xconfig files can be easily managed using <strong>Exceed</strong> <strong>onDemand</strong> Server Manager. In fact,<br />
global files can only be created, modified and deleted using the Server Manager. Administrators<br />
are also given full access and full rights to manage user-defined files. In addition, administrators<br />
can distribute or relocate both global and user-defined files using this intuitive user interface.<br />
Figure 25 — Server Manager can also manage global and user-defined configuration files<br />
46
Advanced Configuration<br />
Advanced Security Settings<br />
> <strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
<strong>Exceed</strong> <strong>onDemand</strong> is a connectivity solution that is targeted for all types of network connections,<br />
including WAN and Internet. In an effort to offer the best security mechanisms and support the<br />
broadest range of industry-recognized security protocols, <strong>Exceed</strong> <strong>onDemand</strong> provides a two-stage<br />
security system that allows companies to encrypt the connections using Secure Sockets Layer (SSL)<br />
and Secure Shell protocols to ensure end-to-end security and the privacy of corporate data.<br />
SSL<br />
The SSL support found in <strong>Exceed</strong> <strong>onDemand</strong> is an implementation of OpenSSL 0.9.7e. It is used<br />
to secure the connections between <strong>Exceed</strong> <strong>onDemand</strong> Client and <strong>Exceed</strong> <strong>onDemand</strong> Server. Once<br />
enabled, both the Cluster Manager and X Session connections will be secured, in which case,<br />
the user credentials, configuration data and Thin X Protocol traffic are scrambled.<br />
X Application<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server<br />
<strong>Exceed</strong> <strong>onDemand</strong><br />
Cluster Manager<br />
X Proxy Manager<br />
<strong>Exceed</strong> <strong>onDemand</strong> Proxy<br />
Figure 26 — Configuration and X session connections are secured by SSL<br />
Secure Sockets Layer<br />
Cluster Manager<br />
Connection Port 5500<br />
Proxy Connection<br />
Port 5501<br />
<strong>Exceed</strong> <strong>onDemand</strong> Client<br />
Only the administrator of <strong>Exceed</strong> <strong>onDemand</strong> Server can modify the SSL option. The SSL setting<br />
affects all connections to all nodes of <strong>Exceed</strong> <strong>onDemand</strong> Server.<br />
47
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Figure 27 — Administrator can configure SSL settings in the Cluster Settings dialog box<br />
<strong>Exceed</strong> <strong>onDemand</strong> supports all ciphersuites that are available to OpenSSL 0.9.7e. When using<br />
ciphersuites that use the Digital Signature Standard (DSS), <strong>Exceed</strong> <strong>onDemand</strong> Client verifies the<br />
identity of the Server before establishing an SSL-encrypted session. Therefore the Server must<br />
have the private key file and certificate file. All flavors of <strong>Exceed</strong> <strong>onDemand</strong> Server come with<br />
the necessary utility to generate such files.<br />
Secure Shell<br />
While the implementation of SSL helps to secure the connections between <strong>Exceed</strong> <strong>onDemand</strong><br />
Client and <strong>Exceed</strong> <strong>onDemand</strong> Server, Secure Shell is used to secure the connections from the <strong>Exceed</strong><br />
<strong>onDemand</strong> Proxy to the host where the X applications reside. Secure Shell is an additional start<br />
method that is similar to other Remote command startup modes, such as Telnet, except it uses the<br />
SSH protocol and is able to offer strong security features that Telnet and other unsecured protocols<br />
cannot, namely encryption and X11 port forwarding.<br />
Figure 28 — Making connection using Secure Shell<br />
48
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
In order to support Secure Shell Startup mode, the Strong encryption version of <strong>Exceed</strong> <strong>onDemand</strong> is<br />
shipped with the open source OpenSSH client. All features that are normally offered by OpenSSH are<br />
supported as well. Users only need to configure the host name, username, password and the command<br />
that will launch the X application. <strong>Exceed</strong> <strong>onDemand</strong> Proxy will attempt to communicate with the<br />
host through the OpenSSH client and authenticate the user. X11 Tunneling is enabled to allow X<br />
traffic to travel securely through the established X11 Tunnel.<br />
Users can provide credentials to the host using either password authorization or certificate authorization.<br />
<strong>Exceed</strong> <strong>onDemand</strong> offers a wide range of ciphersuites. Among those is the AES algorithm which<br />
provides a higher level of encryption than the traditional DES algorithm. AES became the de facto<br />
standard for encryption in the US Government starting in October, 2003.<br />
Secure Shell startup mode can be found on <strong>Exceed</strong> <strong>onDemand</strong> Server for UNIX and Linux.<br />
X Application<br />
Secure Shell<br />
X11 over Secure Shell<br />
Port 22<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server<br />
<strong>Exceed</strong> <strong>onDemand</strong><br />
Cluster Manager<br />
X Proxy Manager<br />
<strong>Exceed</strong> <strong>onDemand</strong> Proxy<br />
Cluster Manager<br />
Connection Port 5500<br />
Proxy Connection<br />
Port 5501<br />
Figure 29 — <strong>Exceed</strong> <strong>onDemand</strong> can use Secure Shell protocol to secure traffic between Proxy and X applications<br />
Desktop Sharing<br />
<strong>Exceed</strong> <strong>onDemand</strong> Client<br />
One of the many advantages of <strong>Exceed</strong> <strong>onDemand</strong>’s architecture is that the Proxy acts as a gateway<br />
between <strong>Exceed</strong> <strong>onDemand</strong> Client and X applications. It is the Proxy’s responsibility to deliver the<br />
X display to <strong>Exceed</strong> <strong>onDemand</strong> Client. The Proxy also has the ability to interact with more than one<br />
<strong>Exceed</strong> <strong>onDemand</strong> Client at the same time and to multicast the X display to multiple Clients. This<br />
forms the base of the Desktop Sharing function.<br />
X Application<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server<br />
<strong>Exceed</strong> <strong>onDemand</strong><br />
Cluster Manager<br />
X Proxy Manager<br />
X Protocol TXP<br />
<strong>Exceed</strong> <strong>onDemand</strong> Proxy<br />
Figure 30 — <strong>Exceed</strong> <strong>onDemand</strong> Proxy multicasts the X display to multiple <strong>Exceed</strong> <strong>onDemand</strong> Clients<br />
<strong>Exceed</strong> <strong>onDemand</strong> Client<br />
<strong>Exceed</strong> <strong>onDemand</strong> Client<br />
<strong>Exceed</strong> <strong>onDemand</strong> Client<br />
49
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
With this function, a number of <strong>Exceed</strong> <strong>onDemand</strong> users are able to share the same X session and<br />
interact with it. Additional access controls are added to provide granular definition of how and with<br />
whom the X display will be shared. Administrators can give individual users the right to use this<br />
feature, and each user can define his or her own list of participants in a shared session. This is an<br />
ideal tool to add collaborative capability to any X application.<br />
Figure 31 — Users can specify the share list and permissions<br />
When a group of users share an <strong>Exceed</strong> <strong>onDemand</strong> session, each user acquires one license from the<br />
license pool. The number of licenses available in the license pool determines the maximum number<br />
of users who can successfully join a shared session.<br />
50
Suspend and Resume<br />
> <strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Aside from being a gateway between X applications and <strong>Exceed</strong> <strong>onDemand</strong> Client, <strong>Exceed</strong><br />
<strong>onDemand</strong> Proxy also acts as an intermediate buffer or a storage space. The Suspend and Resume<br />
feature makes use of this unique design; it allows <strong>Exceed</strong> <strong>onDemand</strong> Client to store all the X session<br />
information in the Proxy. Once the Proxy has an exact replica of the X session information, the Client<br />
can be disconnected from the Proxy, but the session is kept alive in the Proxy. This is, by definition,<br />
a Suspend action. Later, the same user can connect to the Proxy from any machine and resume<br />
the suspended session. The Proxy will send the stored X session information back to the <strong>Exceed</strong><br />
<strong>onDemand</strong> Client and the user will be at the same point as before the session was suspended.<br />
X Application <strong>Exceed</strong> <strong>onDemand</strong> Proxy<br />
Step 1 — User on PC #1 requests to suspend an active X session.<br />
X Application <strong>Exceed</strong> <strong>onDemand</strong> Proxy<br />
Step 2 — X session data are stored on the Proxy.<br />
X Application<br />
<strong>Exceed</strong> <strong>onDemand</strong> Proxy<br />
with suspended<br />
session information<br />
Step 3 — Suspended session information is stored in the Proxy.<br />
The connection between Proxy and Client is terminated.<br />
X Application<br />
<strong>Exceed</strong> <strong>onDemand</strong> Proxy<br />
with suspended<br />
session information<br />
Step 4 — Suspended session can be resumed back on the same<br />
PC or another PC.<br />
Figure 32 — Four-step process of Suspend and Resume<br />
✘<br />
<strong>Exceed</strong> <strong>onDemand</strong> Client<br />
on PC #1<br />
<strong>Exceed</strong> <strong>onDemand</strong> Client<br />
on PC #1<br />
<strong>Exceed</strong> <strong>onDemand</strong> Client<br />
on PC #1<br />
<strong>Exceed</strong> <strong>onDemand</strong> Client<br />
on PC #1<br />
<strong>Exceed</strong> <strong>onDemand</strong> Client<br />
on PC #2<br />
51
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
A suspended session does not use a license. However, when a user resumes a suspended session,<br />
he or she may consume one license based on the rules stated in Section 2: “Architecture.”<br />
By default, when a session is in suspended mode, so are the X applications in that session. To maximize<br />
the benefit of Suspend and Resume, some users may want to enable “Keep Suspended Session Active”<br />
option so that the X applications continue to run on the proxy after the session is suspended.<br />
However, not all sessions can be suspended. <strong>Exceed</strong> <strong>onDemand</strong> cannot suspend OpenGL sessions<br />
due to technical restrictions. Users will not have the option of suspending such sessions.<br />
Suspend on Disconnect (a.k.a. Crash and Resume)<br />
<strong>Exceed</strong> <strong>onDemand</strong> is designed with mobility in mind. We understand that network inconsistency<br />
and instability can occur and know the frustration it can cause. Based on the same principle and<br />
mechanism as Suspend and Resume, <strong>Exceed</strong> <strong>onDemand</strong> extends the feature to safeguard any<br />
non-OpenGL session. To enable this feature, users just have to turn on the “Suspend Disconnected<br />
Session” option.<br />
Figure 33 — Enable Suspend on Disconnect feature to safe guard your <strong>Exceed</strong> <strong>onDemand</strong> sessions<br />
However, this feature comes at the expense of performance. As indicated in the previous chapter,<br />
the Client is required to send the X session data to the Proxy as one of the steps in suspending a<br />
session. But a crash is unpredictable by nature and will never give the Client time to send data to<br />
the Proxy. To overcome this, the Proxy has to remain in a constant state of preparedness by keeping<br />
track of all the information it sends to the desktop. The obvious side effect is the added work-load<br />
and resource consumption on the host. But it may be a small price to pay for uninterrupted work<br />
and to ensure that the mission critical applications are up and functional at all times.<br />
52
Web Deployment<br />
> <strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
<strong>Exceed</strong> <strong>onDemand</strong> comes with deployment tools that ease the deployment of <strong>Exceed</strong> <strong>onDemand</strong><br />
Client to a large audience, as well as tools that make post-deployment management simple and<br />
effortless.<br />
<strong>Exceed</strong> <strong>onDemand</strong> Deployment Tools consists of:<br />
> <strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard<br />
> <strong>Exceed</strong> <strong>onDemand</strong> Package Update Wizard<br />
> <strong>Exceed</strong> <strong>onDemand</strong> Index Page Wizard<br />
<strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard fundamentals<br />
<strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard allows <strong>Exceed</strong> <strong>onDemand</strong> Client to be deployed through<br />
Internet Explorer. It offers reduced cost of ownership, centralized deployment and management,<br />
and exceptional ease of access to X Window systems.<br />
<strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard is designed as an administrative tool, enabling administrators<br />
to deploy and maintain different versions of software without increasing administrative overhead.<br />
With <strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard, only the web server needs to be updated, ensuring users<br />
automatically get the latest version of the software with zero-effort.<br />
By using <strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard, an administrator can create a web deployment package<br />
that contains <strong>Exceed</strong> <strong>onDemand</strong> components and a user profile. Once the administrator has finished<br />
running the wizard, a set of binary and HTML files are presented for installation on any web server.<br />
Each user wanting to use <strong>Exceed</strong> <strong>onDemand</strong> simply has to point his web browser to a web page as<br />
indicated by the administrator. Once done, Internet Explorer downloads all the necessary components<br />
and profiles and installs them on the user’s PC. Once installed, the web-deployed software can be<br />
accessed and managed by users like any other Windows software. The Client can be launched<br />
regardless of the state of the web server from which it was installed. Practically, there is no difference<br />
between the web-deployed version and the CD version of the Client.<br />
The figure on the next page is an overview of the 5 steps involved in deploying <strong>Exceed</strong> <strong>onDemand</strong><br />
Client over the web.<br />
53
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
<strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard Working Principles<br />
Figure 34 — Five easy steps and <strong>Exceed</strong> <strong>onDemand</strong> Clients are ready to be deployed on the Web<br />
54<br />
Administration<br />
Workstation<br />
4<br />
5<br />
1<br />
2 3<br />
<strong>Exceed</strong> <strong>onDemand</strong><br />
Deployment Wizard Web Server<br />
<strong>Exceed</strong> <strong>onDemand</strong> Server <strong>Exceed</strong> <strong>onDemand</strong> Server <strong>Exceed</strong> <strong>onDemand</strong> Server<br />
Step 1: The administrator installs <strong>Exceed</strong> <strong>onDemand</strong> Client and the Deployment Tools on the<br />
workstation. Optionally, the administrator can also create new <strong>Exceed</strong> <strong>onDemand</strong> Connection<br />
Documents and Server profiles.<br />
Step 2: The administrator runs <strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard and selects the web<br />
deployment options. The Wizard will then create a web deployment package which contains<br />
binaries and HTML files ready for deployment.<br />
Step 3: The deployment package will be copied to any web server. Administrator will notify<br />
the user community of the availability of the Client.<br />
Step 4: Users point the web browser to the web page as indicated by the administrator. Web<br />
package will be downloaded and installed on users’ PC. The files are distributed on-demand only,<br />
which means a feature will be downloaded only on the first time it is being used. Subsequent<br />
usage of the feature does not require any download unless an update is available.<br />
Step 5: Once <strong>Exceed</strong> <strong>onDemand</strong> Client is deployed, users will be connected to <strong>Exceed</strong> <strong>onDemand</strong><br />
Server and through it, connected to a host and display X applications.
<strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard Explained<br />
Web-Deployed vs. CD-Installed<br />
> <strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
<strong>Exceed</strong> <strong>onDemand</strong> Client can be deployed in two different fashions: traditional CD installation and<br />
Web deployment. CD installation is when users install <strong>Exceed</strong> <strong>onDemand</strong> Client directly from a CD<br />
or from the setup program that administrators distribute. This type of installation requires users to<br />
interact with the setup program. Web-deployment means the application is deployed from a web<br />
browser. User interaction is either not required or minimal. Often, CD-Installed software has more<br />
features than its web-deployed counterpart but that is not true in the case of <strong>Exceed</strong> <strong>onDemand</strong>.<br />
Regardless of the deployment method that is chosen, the same <strong>Exceed</strong> <strong>onDemand</strong> Client is installed<br />
on the user’s desktop, with the same features and functionalities. Administrators do not have to train<br />
users for different clients because there is only one client available.<br />
Download Mechanisms<br />
Connecting to a host simply requires the user to click on the URL the administrator provides. On the<br />
first connection to the web server, the user is prompted to accept the Hummingbird certificate, which<br />
assesses the integrity of the components that will be downloaded to the browser. This certificate<br />
prompt appears only on the first connection to the web server.<br />
After the certificate has been accepted, <strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard downloads the first set<br />
of components to the browser. This initial download usually takes less than 5 seconds on a regular 10<br />
MB Ethernet network. The only factors that can affect the size of the initial download are the number<br />
of languages supported, and the encryption level. A web deployment package that contains a strong<br />
encryption <strong>Exceed</strong> <strong>onDemand</strong> Client and single language file is slightly larger than 1 MB.<br />
In order to prevent unnecessary downloads, <strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard uses a technology<br />
called “Feature-on-Demand.” <strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard will only download the minimum<br />
set of components required to establish a connection to the host. All other features of the solution are<br />
packaged separately in small files that are only downloaded when the user invokes a specific function<br />
for the first time.<br />
For instance, the help files will never be downloaded to the user’s PC unless the user accesses the<br />
Help menu. Also, the Configuration Managers are not included as part of the initial download.<br />
55
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Access and upgrade<br />
<strong>Exceed</strong> <strong>onDemand</strong>, unlike other thin solutions, actually deploys the native Windows client through<br />
a web browser. After the deployment, the software physically resides on the user’s machine and is<br />
readily accessible, regardless of the availability of the web server or the web deployment package.<br />
After the initial download is successful, the web server is only used to provide product updates and<br />
upgrades. Should the web server fail or the URL be moved to another location, users can still access<br />
<strong>Exceed</strong> <strong>onDemand</strong> Client in the normal manner. It is made possible by the unique ability of <strong>Exceed</strong><br />
<strong>onDemand</strong> Deployment Wizard to create “intelligent” shortcuts. When launched, the shortcuts first<br />
detect if the web server is available. If so, the download engine checks to see if any new versions are<br />
available on the web server, and downloads any that are applicable. However, if the web server is<br />
not available when the user clicks on a shortcut, <strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard skips the<br />
version checking process and connects the user to the host.<br />
How to use <strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard<br />
<strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard is a three-in-one tool. The Wizard can be broken down into<br />
three parts:<br />
> Project Deployment Wizard — Distribute <strong>Exceed</strong> <strong>onDemand</strong> Client to both local and remote end<br />
users over the Web. Pre-configure <strong>Exceed</strong> <strong>onDemand</strong> Client sessions that are launched from the<br />
web page to ensure optimal performance.<br />
> Project Update Wizard — Update users’ <strong>Exceed</strong> <strong>onDemand</strong> Client software automatically by<br />
deploying the latest version from the web server.<br />
> Index Page Wizard — Create an HTML index, which contains links to multiple Client sessions<br />
on a single web page.<br />
Figure 35 — The flow chart depicts three main functions of <strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard<br />
56<br />
Index Page Wizard<br />
Deployment Project Selection<br />
HTML Page Information<br />
Wizard Type Selection<br />
Project Deployment Wizard<br />
Project Information<br />
Parameters Selection<br />
Language Selection<br />
and Client Settings<br />
Web Server Information<br />
Installation Settings<br />
Project Update Wizard<br />
Deployment Project Selection
Project Deployment Wizard<br />
Create a Project<br />
> <strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
The first Wizard screen enables the administrator to create a new project or edit an existing one.<br />
A project consists of a set of parameters that define how <strong>Exceed</strong> <strong>onDemand</strong> Client will be deployed<br />
on the user’s browser through the web server. When a project is completed, <strong>Exceed</strong> <strong>onDemand</strong><br />
Deployment Wizard generates a set of HTML files that can later be uploaded to a web server.<br />
An <strong>Exceed</strong> <strong>onDemand</strong> Deployment Project file (*.edp) is created and stored in:<br />
C:\Documents and Settings\All Users\Application Data\Hummingbird\Connectivity\5.00\<strong>Exceed</strong><br />
<strong>onDemand</strong>\<br />
Figure 36 — Select the wizard type and create a new project using the Wizard<br />
Select a Connection Document<br />
Part of the deployment process is to distribute a Connection Document. When it is launched, users<br />
will be presented with an <strong>Exceed</strong> <strong>onDemand</strong> Xsession with the pre-defined configuration, and the X<br />
application that the user is supposed to access (if any). All of the information is already defined in the<br />
<strong>Exceed</strong> <strong>onDemand</strong> Connection Document (*.eod). Administrators are given the opportunity to select<br />
any Connection Document to be included in the Package. If no Connection Document is specified,<br />
or it does not contain sufficient information, <strong>Exceed</strong> <strong>onDemand</strong> Client will prompt the user for<br />
the missing information upon launch of the application.<br />
57
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Figure 37 — Select one of the <strong>Exceed</strong> <strong>onDemand</strong> Connection Document (*.eod)<br />
Language Selection<br />
The Deployment Wizard also allows administrators to choose the languages which will be deployed<br />
in the web package. Administrators can select one or several languages from those available and specify<br />
a default language. The selection here will determine the available language options in the Client.<br />
Some Client settings are available that allow administrators to pre-configure the Client settings<br />
for ease of access and troubleshooting.<br />
Figure 38 — Pick the languages and Client setting options<br />
58
Deploying on any Web Server on any Operating System<br />
> <strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
One of the major advantages of <strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard is the ability to port<br />
the generated HTML and package files to any operating system and any server. Web deployment<br />
packages generated by <strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard can be hosted on any type of web<br />
server regardless of the operating system. For instance, administrators can upload the web deployment<br />
packages to the web server on a UNIX or Windows web server and give their users a URL that points<br />
to the web server.<br />
Figure 39 — Specify the Web page properties<br />
Installation Settings<br />
The last step in the creation of a <strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard profile consists of choosing<br />
the different modes of download and installation on the end-user workstation and browser.<br />
As explained in the “download mechanisms” section above, <strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard<br />
automatically copies the binaries and user settings to a location on the hard drive in order to reuse the<br />
components on the next client startup. By default, <strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard stores the<br />
binaries into “Program Files” and the user settings under user profiles. However, the administrator<br />
is given the ability to customize those two paths in order to avoid access rights problems.<br />
Figure 40 Last step, select the installation settings, including path types. Click Build to finish.<br />
59
<strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Figure 40 — Last step, select the installation settings, including path types. Click Build to finish<br />
User Rights and Security<br />
<strong>Exceed</strong> <strong>onDemand</strong> Deployment Wizard does not require the user to have any particular access<br />
rights on the machine.<br />
On Windows NT, ® both Users and Administrators can install and use ActiveX controls through their<br />
browser. On Windows 2000 and XP, Microsoft has introduced an additional user group in between<br />
users and administrators: the power user group. Administrators and Power Users are capable of<br />
using and installing ActiveX controls with their standard rights. As far as users are concerned, <strong>Exceed</strong><br />
<strong>onDemand</strong> Deployment Wizard includes a mechanism to allow these users with low privileges to<br />
perform the deployment without having to change their rights. This mechanism is automatic and fully<br />
respects the Microsoft Windows security mode.<br />
A common sentiment among administrators is that ActiveX equates to a security breach on their<br />
users’ machines. Nothing could be further from the truth. Actually, a signed ActiveX applet has<br />
no more potential for destruction than a signed Java applet that has been granted the rights to read<br />
and write on the disk (which is the case with most java web-to-host applets that are available).<br />
More importantly, ActiveX is not particularly related to the browser. ActiveX is simply a part of the<br />
COM architecture specification, which allows developers to describe visual interfaces to their COM<br />
objects. Actually, Windows users use thousands of ActiveX objects every day without knowing it<br />
and without using a browser.<br />
60
Update a Package<br />
> <strong>Exceed</strong> <strong>onDemand</strong> 5 — A <strong>Technical</strong> <strong>Whitepaper</strong><br />
Package Update Wizard allows administrators to quickly rebuild multiple packages at once.<br />
This feature is particularly useful when the administrator has applied a patch to the administrative<br />
installation. Package Update Wizard can re-generate new packages in batch mode.<br />
Figure 41 — Use Package Update Wizard to update many deployment packages in batch mode.<br />
Create an Index Page<br />
Index Page Wizard allows administrators to specify several existing deployment packages and<br />
automatically generates an HTML index page that contains multiple links, one for each package.<br />
Figure 42 — Index Page Wizard create an index page for the selected deployment packages.<br />
61
Server > Desktop Consolidation > X Window > UNIX integration > NFS v4 > Mainframe > Terminal Emulation > Security > SSL > Web-to-host > Cost Reduction > AS/400 > Mobile Workers > Thin<br />
beros > Smart Card > X Desktop Sharing > WebNFS > Web Deployment > Linux > PC X Server > Desktop Consolidation > X Window > UNIX integration > NFS v4 > Mainframe > Terminal Emulat<br />
bile Workers > Thin X Protocol > Public Private Keys Authentication > Secure Shell > Telnet > FTP > Reducing Business Disruption > TN3270E > TN5250E > Easy Migration Path > Bi-directiona<br />
frame > Terminal Emulation > Conflict Management > PC X Server > Desktop Consolidation > X Window > UNIX integration > NFS v4 > Mainframe > Terminal Emulation > Security > SSL > We<br />
Transforming Information into Intelligence <br />
Corporate Headquarters<br />
1 Sparks Avenue, Toronto, Ontario M2H 2W1 Canada<br />
Toll Free Canada/USA: 1 877 FLY HUMM (359 4866)<br />
Tel: +1 416 496 2200<br />
Fax: +1 416 496 2207<br />
E-mail: getinfo@hummingbird.com<br />
For more information, visit http://connectivity.hummingbird.com<br />
North American Sales Offices<br />
Boston • Chicago • Dallas • Los Angeles • Mountain View<br />
New York • Ottawa • Toronto • Washington DC<br />
International Sales Offices<br />
Amsterdam • Brussels • Frankfurt • Geneva • London • Milan<br />
Munich • Paris • Rome • Seoul • Singapore • Stockholm • Sydney<br />
Tokyo • Wokingham • Zurich<br />
WP-03-00-0033.10/05<br />
Copyright © 2004, Hummingbird Ltd. All rights reserved.<br />
® — Trademarks and logos are the intellectual property<br />
of Hummingbird Ltd.<br />
All other company and product names are trademarks<br />
of their respective owners.