A. The Future of Citrix in a Microsoft .NET World
Many people wonder about the future of Citrix and the future of MetaFrame XP. The future is always uncertain, but this uncertainty is heightened by Microsoft's .NET strategy. How will Citrix and MetaFrame XP fit into the .NET world? To think about the future requires an understanding of the future as defined by today's players. In order to understand how the .NET strategy will affect Citrix, let's consider what Microsoft's .NET strategy really is.
Microsoft's .NET Strategy
As the name implies, .NET is a strategy, not a product. It is the strategy that describes how Microsoft components will exist and work together using the Internet, web services, and many different types of client devices. This strategy will be implemented through the release and sale of several Microsoft products. Some of them are out there today. Others are just around the corner.
Let's take a look at some of the main components that make up Microsoft's .NET strategy.
From an application developer's standpoint, Microsoft's .NET strategy will change the way that traditional applications are developed, compiled, and deployed. These changes are possible with the release of Microsoft's new application development environment-Visual Studio .NET. There are two significant new features in Visual Studio .NET.
- Applications that are developed with Visual Studio .NET can be executed on any Microsoft platform, from a Pocket PC to a Windows PC to a smart phone. This allows developers to focus on the content of their applications without needing to worry about how to program for many different client devices.
- Visual Studio .NET applications can be written in any programming language. Historically, developers had to choose their language and develop applications based on that choice. Visual Studio .NET supports four different languages out of the box-Visual Basic, C++, C# (Microsoft's new version of C++), and J# (kind of like Java, although different enough to not get sued).
With Visual Studio .NET, developers can create applications that have rich user interfaces without worrying about what type of client devices users have. Historically, developers were forced to write web applications because they didn't know what types of client devices were being utilized. Unfortunately, due to the static nature of the web, most web applications were more difficult to use than their "full client" counterparts (think of Outlook 2000 compared to Outlook Web Access). However, developers had no choice but to write web applications because they didn't know about or couldn't control the client devices. Also, web applications had the advantage of not needing to be "deployed." In order for a user to use a web application, all they had to do was access a web site.
With .NET, full Windows applications are back. Users can run full, rich Windows applications merely by accessing a website. They can access applications without running an "install" program, and without the application touching the client's registry. These applications are full, rich applications that run locally on client devices.
.NET Client Devices
As with almost everything in the computer world, these new .NET applications require that client devices have new client software in order to access them. For .NET client devices, there are three requirements.
- Operating System. The client operating system must be Windows 98 or newer or Windows NT 4.0 or newer. Additionally, PocketPC will be supported for mobile devices.
- Web Browser. The client device must have Internet Explorer 5.5 or newer.
- .NET Framework. The bulk of the client software is called the ".NET Redistributable Framework." This can be thought of as the ".NET client." Just as you need Citrix ICA client software to access MetaFrame XP applications, you need .NET client software to access .NET applications.
Microsoft's vision is that the operating system and client device will be removed from the application access equation, so that everything is abstracted up a level to the .NET redistributable framework. This framework is available as a free download for users (~20MB) and built-in to future versions of Microsoft operating systems. There is also be a "compact" version of the .NET framework that installs onto things like PDAs, smart phones, set top boxes, and the X-Box.
Historically, application development has only been half the battle. The other half was trying to figure out how to get a newly developed application deployed to your users. For web applications, deployment was simple. All you had to do was copy your files to your web server and send out an email that gave everyone the URL for your application. However, for developers that chose to create applications with full, rich user interfaces, the application (and its related DLLs and supporting files) had to be physically installed on every client device.
In .NET environments, the traditional application deployment challenge is completely removed from the picture. .NET applications can be accessed directly from web servers via Internet Explorer. From a user's standpoint, a .NET application looks and feels the same as any traditional application. This is essentially a "no touch" application deployment. Users can still access the full, rich application, but there are no install or uninstall routines. The registry and system folders are not be touched. Users can access the application via a simple URL.
When a user accesses a .NET web server, the .NET application is dynamically downloaded from the server and executed on the user's client device, similar to a Java application. However, unlike Java applications, the application execution begins on the client device without waiting for the entire application to be downloaded. Any necessary DLLs are trickled down from the server as they are needed (in the background) after application execution begins.
There are no install or uninstall routines for .NET applications. When a user closes his browser, the application is gone. As an administrator, you can configure applications to remain cached on the local client devices so that they do not need to be downloaded every time they are used. You can even configure applications so that they can be executed from the local cache, allowing users to access the applications when they are offline.
The Concept of Web Services
Another advantage of .NET applications is the ability to integrate and interact with other applications and services via XML and the Internet. .NET applications' ability to interact with each other addresses two fundamental problems with traditional applications.
- Integration. It has been difficult for applications to effectively integrate with one another, especially if each application's developers do not know too much about the other application. In reality, most applications only integrate via a user "cutting and pasting" from one application to another. Even in these cases, application integration only occurs at the local level.
- Basic Services. Traditionally, developers have had to custom build many rudimentary components of their applications. For example, people who developed web-based shopping applications would have to develop components that contacted shippers and calculated shipping costs. Even though there are probably 10,000 applications that need to calculate shipping, each developer wrote their own shipping routine.
A large part of Microsoft's .NET strategy is XML-based web services. These web services act as the building blocks for .NET applications, allowing them to be distributed and interact with other applications via XML and the Internet. This common service interaction allows any program written in any language running on any computer, to be able to interact with any other. For example, in the web shopping application discussed previously, one company might create a XML shipping service that all of the other 10,000 applications use, with each application sending and receiving data to the shipping module via XML files sent over the Internet.
The Future of .NET
Microsoft executives have said again and again that they are "betting the company" on their .NET strategy. They understand that the key to .NET's success will be getting the application developers to accept and embrace it. However, it will probably take a year or two before the critical mass of new applications are developed on the .NET platform.
Based on this overview, it's easy to see the advantages and disadvantages of .NET applications.
Advantages of .NET Applications
- They can be executed from the device's cache, without connectivity to the server.
- They can interact with other web services and applications.
- Developers have a lot of control over the screen. The applications are smart enough to display a different user interface when running on a PDA or a full computer.
Disadvantages of .NET Applications
- A critical mass of developers and applications is needed.
- Only Microsoft client devices are supported.
How does .NET Relate to MetaFrame?
Before we look at how Citrix and MetaFrame fit into Microsoft's .NET strategy, let's look at the advantages and disadvantages of the current MetaFrame architecture as it relates to Microsoft's .NET strategy.
Advantages of MetaFrame Applications
- The client software is smaller.
- Many client devices and platforms are supported, including non-Microsoft solutions.
Disadvantages of MetaFrame Applications
- MetaFrame applications execute in their own silos. The only integration that multiple applications have with each other is "cut" and "paste."
- 100% of application execution occurs on the server, and applications cannot be used if connectivity to the server is lost.
Based on this high-level overview of Microsoft's .NET strategy and your understanding of MetaFrame XP, you can easily see that there are a lot of similarities between the two.
Similarities Between .NET and MetaFrame Architectures
- Client devices must have client software installed in order to access applications. (The .NET Framework for .NET and the ICA client for MetaFrame.)
- Users can run new applications simply by accessing a URL.
- The client software works on many different types of devices.
- Both strategies focus on "anytime, any where" (ubiquitous) access to applications.
However, these similarities are more coincidental than planned. This comes from the fact that both architectures are trying to solve the same business problem (access to applications). Citrix created an ingenious "retrofit" solution that provides ubiquitous access to legacy Windows applications, and Microsoft is designing a new solution from scratch that provides ubiquitous access to future Windows applications.
Primary Difference Between .NET and MetaFrame Applications
- MetaFrame is a solution that provides ubiquitous access to legacy applications, whereas .NET is a solution that provides ubiquitous access to future applications.
When you look out a few years, you can see that the whole world is moving towards "smart" XML-enabled applications, and that MetaFrame is doomed because it focuses on legacy Windows applications.
The Evolution of Citrix
Even though Citrix began life as a company that provides remote access to Windows applications, they are looking forward to a bright future.
- Citrix has a least a few good years left with their current MetaFrame architecture. Most of the .NET development components were not released by Microsoft until 2002, and Windows .NET server is slated for 2003. It will take a while for the development community to begin producing true .NET applications. Also, .NET applications require a lot of XML web services infrastructure, which will take some time to put in place.
- Citrix purchased an XML web portal company called Sequoia. Citrix is now beginning to integrate true XML services into their existing technology. This will first be seen in their "South Beach" product portals-portals that will drive the future of NFuse.
- Citrix has perfected the technology that allows applications to execute in one location while providing a user interface in another location. There will always be a need for this technology, even in the .NET world.
- Citrix applications will continue to evolve, and the Citrix middleware software will become smart enough to know what type of data is contained in the applications that are executing. For example, in today's environment MetaFrame XP is very good at allowing users to connect to applications via the ICA protocol. The ICA protocol allows users to see the content of their applications, but it doesn't allow them to be able to do anything with that content (other than cutting and pasting it). In the future, the ICA protocol will be able to work with and understand the data from ICA applications, interfacing it with other portals, users, systems, and XML web services.
B. Acronyms Used in this Book
Active Directory (W2K)
Application Deployment File
Policy Template File
Active Server Pages
Application Service Provider
Cabinet File Archive
Client Access License
Citrix Connection Configuration Utility
Citrix Developer's Network
Citrix Management Console (XP)
Component Object Model
Citrix Server Administration Utility
Citrix Secure Gateway
Client Services for NetWare
Comma Delimited Text File
Citrix User Profile
Citrix Web Console
Database Connection Server
Domain Local Group (W2K)
Dynamic Local User (NDS)
Demilitarized Zone (Firewalls)
Default Server Location
End User License Agreement
Farm Metric Server (XP)
Fully Qualified Domain Name
Feature Release 1
Graphics Device Interface
Graphical Identification and Authentication
Group Policy Object (W2K)
Gateway Services for NetWare
Graphical User Interface
HKEY_CURRENT_USER (registry hive)
HKEY_LOCAL_MACHINE (registry hive)
Internal Application Service Provider
Independent Computing Architecture (Protocol or File Type)
IMA Data Store (XP)
Internet Information Server (NT4) or Services (W2K+)
Installation Management (XP)
Independent Management Architecture (XP)
Installation Management Services (1.8)
Configuration File with .ini file extension
Java Development Kit
Java Runtime Environment
Java Server Pages
Java Virtual Machine
Load Balancing Services (1.8)
Load Evaluator (XP)
Local Host Cache (XP)
Load Management (XP)
ICA Master Browser
Microsoft Data Access Components
Microsoft Management Console (W2K)
Microsoft Installer File
NetWare Application Launcher
Network Address Translation
Novell Directory Printing Service
Novell Directory Services
Network Interface Card
Open Database Connectivity
Original Equipment Manufacturer
Organizational Unit (W2K or NDS)
Published Application Manager (1.8)
Personal Electronic Mail
Program Neighborhood Agent
Policy File (NT4)
Rivest version 5 Encryption Algorithm
Remote Display Protocol
Resource Management (XP)
Resource Management Services (1.8)
Remote Procedure Call
Rivest Shamir Adleman
Security Account Manager (NT4)
Microsoft Systems Management Server
Short Message Service
Simple Network Management Protocol
Service Pack 1
Print Spooler File
Microsoft SQL Server
Source INI Configuration File
Secure Socket Layer
Secure Ticket Authority
Terminal Services Client Access License
Terminal Services Internet Connector License
Windows NT Server 4.0, Terminal Server Edition
Terminal Services Licensing (Service)
The TTA Acronym
Universal Naming Convention
Visual Basic Script
Virtual Private Network
Wide Area Network
File extension for IMS script
Extensible Markup Language
eXtended Platform (not eXtra Pricey)
Zone Data Collector (XP)
C. MetaFrame Component Configuration
D. MetaFrame XP TCP Ports
E. MetaFrame XP Scheduled Events
F. Websites Referenced in this Book
Active Server Page (ASP) References and Tutorials
AppSec (Application Security Utility)
Brian Madden (Author/Publisher of this book)
Citrix Demoroom (Live Demos of MetaFrame XP)
Citrix Developer Network
Citrix Licensing Information
Citrix Product Activation
Emergent Online (Citrix Management & Printing Utilties)
FutureLink Canada (Printing Utilities)
Hiddensoft (AutoIT scripting utility)
Kixtart (Batch Scripting Language)
LearnCitrix.com (Citrix Certification Practice Exams)
Mercury Interactive (Loadrunner Sizing Utilities)
Microsoft Developer Network
Microsoft Licensing Information
Microsoft .NET Home
Microsoft Universal Data Access Website (MDAC, Jet, etc.)
Norton Ghost (Server Imaging Software)
Novell NDS Client Download
Packeteer Packetshaper (Bandwidth Management Hardware)
Project-in-a-Box (Doug Brown's Website)
Scapa Technologies (StressTest Server Sizing Utility)
Sitara QoSWorks (Bandwidth Management Hardware)
StorageSoft ImageCast (Server Imaging Software)
Sun (Java Runtime Environment)
T-scale (Server Optimization Software)
Techtonik ONEAPP (Audit Logging)
The THIN List (Portal for Thin Client Solutions)
Thin Print (Printing Utilities)
triCerat (Printing Utilities)
TweakCitrix (Rick Dehlinger's Tips Site)
VeriSign Internet Software Distribution Certificates
WinBatch (Scripting Utility)
Willamette (SecurID with NFuse Project)
XML File Editors