- Background
- Case Study: Interior Specialists Management System
- Remote Services
- Benefits of Deployment Under Remote Services
- Issues of Application Deployment using Remote Services
- Application Design Considerations
- Application Development Under Remote Services
- Conclusions and Recommendations
- Further Reading
Remote Services
Remote services applications, such as Microsoft Terminal Services and Citrix Metaframe, log into a remote application server over a local area network or over the Web, and provide a the full server desktop within a window on the client machine. Within this client window, users can execute server applications as if they were logged in locally.
Alternatively, applications can be executed in "seamless" mode. In this mode, no server desktop is presented. Instead, the user simply clicks on a local program icon. Remote services log on to the server and start up a single application only, not the entire desktop. This approach has the advantages of greater security because the user sees only a single application rather than the entire desktop. This provides great ease of use, a total "seamless" local feel, and consumes fewer server-side resources.
A third option that some remote desktops offer is the capability to run "seamless" applications within a browser. This offers the ease of Web navigation to an application, while providing a full stand-alone application within the browserunfettered by normal browser limitations.
In terms of infrastructure, there are two main pieces to enable remote services. Software is needed on the application server to service the remote clients. And a very thin and generic application is needed on the client machine to provide the remote application interface.
The server-side software is the sophisticated part. It can support "farms" of application servers with load balancing to efficiently handle very large loads. This typically requires licensing fees to support a certain number of simultaneous users.
The client-side software is very lightweight and either comes with the operating system or can be quickly and seamlessly installed on the client machine. Citrix, for example, provides free client-side versions for a large number of operating systems. This ICA client application can be installed free from the Web, or automatically installed in the background when needed.
Citrix Metaframe has been a leader in this technology for some time, but Microsoft is aggressively updating its Terminal Services to provide comparable functionality. Specifications and features change rapidly, so rather than focus on specifics of one or the other, the following are some general topics of interest when discussing a potential remote services implementation.
Performance
Local performance will be limited by connection speed, of course, but that is just as true for browser-based applications or even installed stand-alone client applications. In most cases, running an application through remote services is much more efficient in low-bandwidth situations than browser-based or stand-alone applications. Even Active Server Pages must build the page content on the server, send that code to the client, and then the client must interpret that code locally. The amount of code and data sent across the wire in that case is much larger than simply the screen data sent to a remote services client. Likewise, a stand-alone application must send all data across the wire, rather then keeping all this intensive communication on the server side.
In fact, the Citrix ICA protocol consumes less than 20KB of bandwidth, regardless of application complexity or the amount of data handled by the application. Remote services use highly efficient technologies to minimize bandwidth requirements. They can essentially transmit only screen changes across the wire rather then actual code or data. In addition, they can support bitmap caching on the local machine to avoid the repetitive transfer of graphic data.
Overall, application performance is normally good, even over extremely poor connections, and can be indistinguishable from a local application given decent connections. This is extremely impressive considering that you can execute no-compromise applications, even performing graphic manipulation, with excellent performance.
Operating System Independence
Remote services provide a high level of operating system independence, just as a browser does. Both technologies essentially provide a generic client application that can be developed to support any platform.
You will want to ensure that the remote services product you choose offers client applications for all target operating systems. Currently, Citrix has an edge here because it supports the largest number of client operating systems, including all versions of Windows, Mac, UNIX, and browser clients.
Transport Protocols and Network Connections
Both Microsoft and Citrix support TCP/IP, but if you have a requirement to utilize SPX, IPX, NetBEUI, or Direct Asynch, you should verify that the product supports that protocol.
Both products support almost any network connection typeincluding LAN, WAN, ISDN, DSL, VPN, and dial-up connections.
Service Mapping
If you have not kept up on the improvements made to remote services since the early days of Terminal Services, you may be surprised by what you can do now. Remote services generally support the transparent mapping of services from the server to the clientincluding audio, local printing, local drive mapping, local port redirection; and the cut-and-pasting of text, graphics, folders, and files between server and client applications.
Application Publishing
You will want to decide how you are going to deliver your applications to the client. Options range from exposing the entire server desktop, to seamless applications, to browser-based presentation. In addition, you can elect to "publish" applications and automatically push them out to users desktops. In any case, however, these choices are not exclusive and can be changed at any time.
Server Farming and Load Balancing
As server-side load increases, server utilization can be optimized through server farming and load balancing across those servers. In general, any number of application servers can be farmed, and the load-balancing software will automatically distribute load to these servers for maximum efficiency. This also provides redundancy and fallback protection to ensure that the application servers are available 24/7.
Shadowing
Shadowing allows administrators (or even other users if permissions allow) to view (shadow) other people's sessions. This is very valuable for presentation, debugging, support, training, or security. Shadowing even allows users to optionally take control of another desktop.
Security
The communication between a client and a remote server is by its nature very secure in that it transfers screen changes, not meaningful data other than key presses. Key sequences can be optionally encrypted for further protection.
The system is very secure from hacking because little readable and no executable data is sent across the wire, there are fewer local components to exploit, and IIS is not in the loop to be hacked.