The Evolution of Rich Internet Application Monitoring (including Silverlight Monitoring)
The composition and nature of web pages continues to change dramatically. Yesterday’s web pages that served as repositories of static and inert content have increasingly evolved into dynamic and interactive entities that enable rich interactions between end users and websites.
These increasingly common rich interactions include:
- Data visualizations (which allow you to enter, or view, data across a span of time frames or locations),
- E-commerce websites (which allow you to shop for a variety of products and services, based on personal preferences),
- Dynamic content served by third-party hosted widget, apps, seals, ad server
- and social networks (which enable interaction between sets of users).
Part of this change has been made possible due to the development of Rich Internet Applications (RIAs), such as: Microsoft Silverlight, Ajax, Flex, Flash and Java. However, the advent of RIA-driven websites has also posed problems to organizations increasingly using these RIAs for mission-critical interactions (ie revenue generating) involving end users. One of the key challenges is the difficulty in monitoring the website uptime, page performance and web application functionality of RIA-driven websites.
Silverlight, in particular, is an application framework that has grown in popularity due to both its interactive results and its light page weight and simplicity in the development process. Silverlight enables end users to view RIAs (aka Rich Media Applications (RMAs)) such as: animation, video, or interactive web apps in your browser. Silverlight also integrates multimedia, graphics, animations, and interactivity into a single run-time environment, enabling page developers to build rich interactive user experiences on websites. A challenge for Silverlight monitoring is creating a browser-driven monitoring scripts that mimics end user actions that won’t break due to the dynamic nature of Silverlight. In fact, many advanced monitoring solutions that use browsers won’t succeed in running a monitoring script through a rich interactive Silverlight application. In fact, Silverlight monitoring (or any RIA monitoring) requires an additional level of technical sophistication – beyond only a browser-driven monitoring script.
Use Case: Silverlight Monitoring for a Bank
A common use case involving Silverlight monitoring involves customers of financial institutions. These customers log-in to their online banking account, for example, built with Silverlight to check cash reserves, portfolios etc… The use of Silverlight in these types of end-user environments provides fast and interactive experiences for end users. In fact, many end users view this type of interactive environment as a value-add in their relationship with their financial organization. However, given the willingness and ease by which financial consumers can also switch banking institutions, the uptime, performance, and functionality of these Silverlight banking applications is increasingly important to the bank’s web operations team and the bottom-line of the bank.
Silverlight Interactions: A Change in Network Communications
The advent of dynamic applications, such as Silverlight, has changed the fundamental paradigms of communication between client suites and servers. Earlier, static content web pages enabled a set of predictable navigation paths and interactions for a page. As such, there was direct interaction between a server and thin-browser based clients. The rise of RIAs, such as Microsoft Silverlight, has changed the direct model to one involving distributed functions. In this model, communication between servers and clients occurs through client side engines. The code engine for web pages, which earlier resided on servers, is now distributed between a client side engine, which distributes information asynchronously based on user actions, and servers. Using programming techniques for standards-based presentation and dynamic display and interaction, Microsoft Silverlight breaks down code for display between client side engines and servers.
Challenges with Microsoft Silverlight Monitoring
Typical measurement tools measure response time from servers as indicators of web performance. This is because they are designed to measure static pages with a finite number of elements that are executed in a defined sequence and with a finite number of combinations. Microsoft Silverlight, however, relies on an asynchronous flow of information between the client engine and the browser interface. The client engine separates the user interface from server side scripting. As a result, server response time does not suffice for measuring web performance. The performance of a web page with Microsoft Silverlight applications consists of a complex mix of factors, such as network heuristics, user transactions with the page, and the application’s behavior in response to user actions. Silverlight offers multiple options for designers to use their creativity and design interfaces with multiple scripts that use varying degrees of memory management techniques. The problem with Silverlight monitoring is that each element has its own specific load time. As a result, the interface response time, or the time to load all the Silverlight elements onto the screen, becomes as important as server response time. An example of the inherent complexity in such behavior is reflected in the number of transactions on an eCommerce website. Immediately after log-in, the user is presented with an array of path choices, ranging from browsing through products to comparing prices to buying specific products. Silverlight enables designers to incorporate such complexities into their applications.
Solving the Challenge of Silverlight Monitoring
As has been noted, web performance measurement can be a complicated task for websites that use Silverlight. However, considering the popularity and prevalence of interactive websites, the issue of creating and monitoring an RIA-enabled website is an important consideration for website developers.
A successful method to monitor Silverlight apps is to utilize a virtual keyboard and mouse layer on a real browser in the script building process. The virtual keyboard and mouse can be used to capture Silverlight pixel images based on browser events. These image-captures are used as verification of proper step rendering and execution as the script proceeds through the website. As long as the script proceeds the app’s functionality can be verified in a real browser environment.
Solving the Web Performance Problem with Dotcom-Monitor
UserView Monitoring-RIA takes Silverlight monitoring to a new level by combining image matching technology with the EveryStep Macro Recorder. The EveryStep Recorder simplifies the recording of user paths through the website by automatically recoding browser actions. This enables users to quickly monitor web transactions and web application services. Monitoring can be set up to run as frequently as once per minute, ensuring that advanced website applications are consistently monitored for performance and user experience issues. UserView Monitoring RIA also provides unprecedented insights into Silverlight user experience with its “video playback” feature that captures Silverlight application performance and Silverlight errors as they occur that is unique in the industry. Additionally, it provides web page element level performance and user experience monitoring of RIAs and other interactive add-ons, like applets. UserView’s unique design enables users to match pixel coordinates, ensuring optimal website appearance for an authentic user view of a website or application. The application combines this view with detailed analytics that provide a clear understanding of potential web application issues and helps define specific improvements that can be made to meet and exceed user experience requirements.