YOUR FEEDBACK
shirley wrote: nSynergy SharePoint Document management and collaboration software architectures...
Cloud Computing Conference
March 30 - April 1, New York
Register Today and SAVE !..

READ DIGITAL EDITION


SYS-CON.TV

2008 East
DIAMOND SPONSOR:
Data Direct
Frontiers in Data Access: The Coming Wave in Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
Intel
Virtualization – Path to Predictive Enterprise
Green Hills
IT Security in a Hostile World
JBoss / freedom oss
Practical SOA Approach
GOLD SPONSORS:
Software AG
The Art & Science of SOA: How Governance Enables Adoption
PlateSpin
Effective Planning for Virtual Infrastructure Growth
Fujitsu
Automated Business Process Discovery & Virtualization Service
Ceedo
Workspace Virtualization
Click For 2007 West
Event Webcasts

2008 East
PLATINUM SPONSORS:
Appcelerator
Think Fast: Accelerate AJAX Development with Appcelerator
GOLD SPONSORS:
DreamFace Interactive
The Ultimate Framework for Creating Personalized Web 2.0 Mashups
ICEsoft
AJAX and Social Computing for the Enterprise
Kaazing
Enterprise Comet: Real–Time, Real–Time, or Real–Time Web 2.0?
Nexaweb
Now Playing: Desktop Apps in the Browser!
Sun
jMaki as an AJAX Mashup Framework
POWER PANELS:
The Business Value
of RIAs
What Lies Beyond AJAX?
KEYNOTES:
Douglas Crockford
Can We Fix the Web?
Anthony Franco
2008: The Year of the RIA
Click For 2007 Event Webcasts
TOP THREE LINKS YOU MUST CLICK ON


Managing Deployment and Monitoring of Smart Client Applications
Leverage the power at the edge of the network

The Smart Client Opportunity
Over the past few years, IT organizations have chosen between two primary application development and deployment architectures:

  • "Thin client" browser-based applications: Easy to deploy and manage centrally but provide a limited user experience
  • "Fat client" architectures: Provide a more productive and responsive user experience and run both online and offline but are difficult and expensive to deploy and update on the desktop
However, with the advent of the .NET Framework, there is now a new alternative called "smart clients". Smart client applications provide value for a wide variety of applications by bridging the gap between "fat" and "thin" clients. Smart client applications (as defined by Microsoft) have the following characteristics:
  • Run locally on the desktop using local resources, applications, and peripheral devices
  • Can be used online, offline, or while intermittently connected
  • Function as part of a distributed application architecture, commonly using Web services to interact with a server application tier
  • Intelligent, centralized install and update capabilities
The spectrum of applications falling within this definition of "smart clients" is broad. On one end are traditional fat client-like applications, with business logic running on the client and made more agile through centralized deployment and monitoring, consumption of Web services, and more built-in network awareness supporting offline or semi-connected use. On the other end of this spectrum are very lightweight smart clients that are primarily a rich presentation layer for server-side business logic exposed via Web services. Also at the lightweight end are ISV or in-house applications developed using Visual Studio Tools for Office that target Office 2003 as a hosting environment.

The .NET Framework is a huge enabler of the smart client architecture. It provides a consistent programming interface and execution environment that enables single code base development for all client operating systems from Windows 98 to Windows XP. It solves the problem of "DLL Hell" by explicit component versioning, side-by-side installation, and application metadata that expresses dependencies for specific versions of components. Additional features of the .NET Framework and Common Language Runtime that make .NET-based smart client architecture the best solution to the inherent limitations of browser-based thin client applications include Code Access Security, which ensures that less trusted code will not harm the host machine, and extensive support for consuming Web Services.

Addressing IT Operations' Concerns
In order for organizations to fully realize the smart client opportunity, it is not enough to make the development of smart clients easy. The legitimate, historical concerns of the IT operations staff around the managability of client-installed software also need to be addressed. In recent years, IT operations has become proficient at managing thin-client Web applications using products such as Microsoft Application Center. These tools provide a straightforward way to deploy Web applications throughout a cluster of servers and monitor the configuration, health, and usage of the live applications.

For business-critical processes embedded in smart clients on the network edge, IT needs to have the same reliable control and ease of management that they currently have with thin-client Web applications. This means the ability to do a push-style install of new application collections and upgrades rather than rely on a user to initiate an install. IT needs to be able to push different applications to different users based on their roles in the organization, to track all deployment activities, to know the deployment status, and to be able to determine precisely what version of every application component is running on each client endpoint. Additionally and critically, IT needs visibility into application usage and performance just as they have on thin, server-based applications - they want to be alerted immediately about problems in the applications and be able to react to these problems and investigate, troubleshoot, and repair them in real time. And of course IT wants to be able to do all this in a zero-impact way on the desktop that preserves interapplication and application/operating system independence.

Options for Centralized Management of Smart Client Deployment
The .NET Framework currently offers lightweight, developer-oriented, HTTP-based deployment mechanisms like No Touch Deployment or the Updater Application Block, and ClickOnce, which is an extension of No Touch Deployment that is part of the Whidbey version of the .NET Framework. With these solutions in general, the application is hosted on a Web server at a specified URL; when the user clicks a hyperlink to the application, it is downloaded and cached locally. Each time the user launches the application, a check is made to ensure they are running the most recent version and if they are not, the newest version is downloaded.

While this approach may be sufficient for some scenarios of deployment of lightweight smart clients in a "user pull" model (e.g., for some consumer-facing apps), it does not completely address the real-world requirements of IT groups managing business-critical processes in enterprise-class smart client applications. Specifically, it lacks the ability to target deployments to subsets of users, track and respond to deployment errors that occur on the client machine, and provide reporting as to which versions of an application are deployed on which client machines. As well, it provides no support for .NET smart clients that need to perform Windows Installer actions for COM components, to place .NET assemblies in the GAC, or any other similar action.

The primary alternative to these user pull deployment methods is a traditional push-style client management product such as Microsoft Systems Management Server (SMS). This product class is typically used by a centralized IT department to manage the enterprise-wide baseline software configuration on all corporate computers. However, SMS is designed to work with Active Directory and to collect information about and manage all software on a machine, making it inappropriate for managing software across enterprise boundaries.

With SMS, software within the enterprise is typically installed either as a full desktop image, or as a Windows Installer setup package. Because of the risk that any application install can break an existing application, it is common for enterprises to update their desktop configuration very infrequently, and "lock down" the desktop in between. This glacial update cycle preserves the stability of traditional desktop machines at the expense of the business units' needs to frequently update application logic and configuration on end user's machines.

These two approaches are at opposite ends of the spectrum: SMS provides strong IT control with little agility, while ClickOnce provides agility but insufficient control to IT. With .NET-based smart clients, there is a new opportunity for a much more business-focused "agile" style of application management, due in part to the fact that .NET applications can be added to the desktop without any risk of breaking existing applications. It should now be possible to frequently install, uninstall, update, and roll back .NET-based smart clients on locked-down desktops within the enterprise, and even to application users within partner or customer organizations or consumer end users in the open Internet. What is required for management of smart-client application deployment is a new approach that provides both strong IT control and agility.

Options for Centralized Monitoring of Smart Client Applications
On the monitoring side of the application management puzzle, products such as Microsoft Operations Manager (MOM) offer enterprise-wide monitoring and alert generation for data center operations, but are not designed for the scenario of managing thousands of occasionally-connected smart-client application endpoints in a wide range of enterprise network and open Internet situations. A new strategy is required to deal with collecting and processing application monitoring information from large Smart Client deployments if the promise of Internet-delivered rich, functionality is to be realized.

Architecture for Smart Client Management
Unlike management of thin-client applications running in a data center, managing smart clients deployed to desktops inside and outside the enterprise is a complex distributed systems problem. At the core of an effective smart client management architecture must be a messaging infrastructure that effectively deals with the inherent network-related issues. Client endpoints may be only occasionally connected, on a secure or unsecured network, behind one or more firewalls and/or network address translation (NAT) devices, and may appear at different dynamically assigned IP addresses. In order to effectively manage client endpoints across this range of conditions, a messaging architecture should have the following characteristics:

  • IP-independent addressing scheme for client endpoints
  • Reliable, auditable delivery of messages to and from offline endpoints
  • Secure messaging over unsecured networks
  • Server-initiated (i.e., "push style") messaging to clients behind firewalls and NAT devices
  • Highly scalable with peer-based propagation at remote sites to minimize WAN traffic
The .NET Framework provides functionality for service-oriented architectures to easily create and interact with Web services endpoints using HTTP or HTTPS as a transport. .NET Remoting provides support for object-oriented distributed system interactions using HTTP or TCP for transport. While both of the above are well suited to a client consuming services or remote objects residing on a server, they have limitations when the problem being addressed is that of managing applications on occasionally connected, remote, or potentially mobile client endpoints. These limitations are the lack of support for reliable messaging, server-initiated messaging to clients behind firewalls and NAT devices, peer discovery and communication, and an IP-independent addressing scheme for client endpoints.

The System.Messaging namespace within the .NET Framework provides a managed code wrapper around the reliable messaging functionality available in Microsoft Message Queuing (MSMQ). However, MSMQ is not installed with the operating system, must be explicitly added to the machine configuration, and varies in functionality across different versions of Windows. Additionally, some versions of MSMQ have dependencies on Active Directory, making it inappropriate for managing client endpoints outside the enterprise.

Based on the messaging requirements for providing IT-centric deployment, monitoring, and reporting of smart client applications and the lack of a suitable off-the-shelf solution, Kinitos has built a fully managed code-based messaging implementation with no client-side dependencies beyond the .NET Framework itself. The messaging architecture leverages Web services and PKI standards for security. This messaging infrastructure can be integrated into applications via the Kinitos Developer SDK. In addition, this infrastructure is the basis of the stand-alone Kinitos Smart Client Management Solution shown at a system level view in Figure 1.

IT Control and Management Agility - The Kinitos Smart Client Management Solution
The Kinitos Smart Client Management Server and associated Smart Client Management Console provide an IT-style central point of control for deploying and actively monitoring smart client applications. On each client is a small, fully managed code Kinitos Smart Client Management Endpoint that coordinates management activities with the management server and can be installed on the client by various means, including an XCOPY install. Integration with third-party management systems and scripted control over management operations can be realized through one of several interfaces exposed by the Smart Client Management Server.

In order for an application to be managed by the Kinitos Smart Client Management Platform, an XML application manifest must be created that describes the application's components and desired management properties. This manifest is a small XML document that can be auto-generated by the application developer or the IT administrator using a Kinitos tool. Application components listed in the manifest can include .NET assemblies, application data files, and Win32 DLLs containing unmanaged code application components. It is also possible to deploy Windows Installer MSI files via Kinitos to perform installation actions for legacy COM components or other application dependencies that need to invoke the Windows Installer service on the client.

Applications are published to the Kinitos Smart Client Management Server by providing the application manifest file to the Management Console. Once published, an authorized application can be deployed to all or a specific subset of users defined by a collection. The application is deployed immediately to the client endpoints, with propagation peer-to-peer within network subnets. An administrator can view reports to determine which client endpoints have not yet received the application or encountered a problem caching the application locally. Upgrading the application follows the same procedure.

Errors occurring in the client application will be communicated reliably back to the Management Server whether the errors occurred while the application was operating online or offline. The errors will appear as alarms in the Management Console. In responding to an alarm condition in a client application, the administrator can issue commands to the Kinitos management endpoint on the client machine to return information such as application log entries, application configuration, process status and information on versions of all application components running in the application's AppDomain.

If the investigation determines that a critical error that escaped detection during QA has been found in a live application, the administrator can initiate an immediate rollback to a previous version of the application, or issue an emergency patch or configuration change to the application.

More information about the Kinitos Smart Client Management Solution can be found at www.kinitos.com or by e-mail at info@kinitos.com.

Summary
The .NET Framework is a great enabler of smart client applications, making it easy for developers to create rich, compelling, network-aware applications that leverage the computing power at the edge of the network. What is needed in order for enterprises to fully realize the potential of smart client applications is a new generation of agile application management solutions that provide IT administrators with the centralized and immediate control of application deployment and access to application health, status, and usage.

Additional Information

  • "Smart Clients: Combining the Power of the PC with the Reach of the Web": Smart Clients
  • "ClickOnce Aims to Ease Installation": ClickOnce
  • "Introducing Client Application Deployment with 'ClickOnce'": Introducing Client
  • About Kelly Slough
    Kelly Slough is Kinitos' chief technology officer and one of its co-founders. Kelly represents Kinitos technological innovations to key strategic partners and customers including Microsoft, and frequently serves as Kinitos' representative on matters of standards and best practices for smart client and .NET development in the Microsoft community. In other ventures, Kelly was a Technical Director and Architect within the Voice Services Division of America Online, coming to AOL through the acquisition of Quack.com, where he successfully led the architectural design and development efforts of Quack's speech application server and its accompanying standards-expanding XML application definition schema.

    WIRELESS BUSINESS & TECHNOLOGY LATEST STORIES . . .
    "As many of you know," Steve Jobs tells the Apple worldwide community in a heart-rendingly frank memo, "I have been losing weight throughout 2008. The reason has been a mystery to me and my doctors. A few weeks ago, I decided that getting to the root cause of this and reversing it need...
    ShapeWriter simultaneously announced the launch of its text entry products on Windows Mobile, Android, and Windows XP/Vista with its upgrades to WritingPad 1.0 for the iPhone, now called ShapeWriter 2.0. Rather than “hunting and pecking,” ShapeWriter 2.0 allows users to produce an ...
    The BlackBerry Technical Seminar took place live in December 3, 2008, but these new breakthrough sessions are now available on demand. Managing and extending applications to your mobile users, overcoming development hurdles, and leveraging mobile technology to create new opportunities ...
    Shares in Chinese mobile companies soared this week after China approved the issuance of licenses for next generation (3G) mobile networks. China's state council approved the issuance of the long-awaited licensees, opening the door to some $41 billion in spending for equipment. Competi...
    Globaltel Media (GTM) launched the pre-release version of its new application, dubbed Cherple, which allows two-way text communication between online computers and mobile wireless cellular devices. Cherple will officially launch in 2009. Globaltel Media claims Cherple will eventually p...
    SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
    SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
    Click to Add our RSS Feeds to the Service of Your Choice:
    Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
    myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
    Publish Your Article! Please send it to editorial(at)sys-con.com!

    Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021

    Click Here

    SYS-CON FEATURED WHITEPAPERS

    ADS BY GOOGLE