Forgot password?
|
|
|
|
We were unable to sign you in.
Please verify your user name and password and try again. If you do not have a TEC account, register now.


If you receive errors when attempting to view this white paper, please install the latest version of Adobe Reader.
Infosys

"Infosys defines, designs and delivers technology-enabled business solutions that help Global 2000 companies win in a Flat World. Infosys also provides a complete range of services by leveraging our domain and business expertise and strategic alliances with leading technology providers."
Source : Infosys

Resources Related to Rich Internet applications (RIAs):

Rich Internet Applications (RIA): Opportunities and Challenges for Enterprises

Rich Internet applications (RIA) is also known as : Web Application, Web Apps, RIA, Web Technology , Web Analytics , Web Engineering, Rich Internet Application Frameworks, Software Framework , Software Development, Content Management Framework, Web Services, Software Architecture , Web Development, Web App, Web Application Development, Web Application Framework, Web Applications.


Abstract

Rich Internet Applications (RIA) represent the next transition in the evolution of web applications; they promise the richness, interactivity and usability lacking in many of today's web applications. As with any technological transition, this implies that there are new opportunities to be explored and new challenges to be negotiated. To maximize the benefits of RIA adoption in tune with contemporary trends, an enterprise should assess the following:

  • How does RIA fit in an SOA-based enterprise architecture stack?
  • What role will RIA play in SaaS delivery model and mashups?
  • What are the business benefits of adopting RIA and what are the challenges?

Introduction

The Web has become the preferred platform for conducting business quickly and effectively. So much so that organizations like Amazon and eBay depend on online applications to a large extent. Users can book a hotel room, plan travel, trade in stocks, bid on auctions, and access a whole host of other services online - at the click of a button. As the penetration of high-speed broadband Internet access increases, web applications continue to evolve and stretch the boundaries in terms of utility, content and user experience. RIA is the next logical step in this evolutionary process.

RIA represents the transition of web applications from the simple, thin client model to a model that provides the user experience of a desktop client/server application while leveraging the ubiquity of the Internet.


Evolution from HTML Pages to RIA

The evolution of the Internet started with HTML, which was originally designed to deliver static documents in sync with information via a browser. Over time, the Internet rendered rich content - complex graphics, audio, video, and multimedia.

Then came applications that used the Net as a platform for business, rendering dynamic content to users based on back-end business logic and database content. Developers enhanced the Internet's capabilities to meet the demands of business applications by including scripts - JavaScript and VBScript - and components like Applet and ActiveX to the client (user) computer. While this enhanced user experience to some extent, the fundamental "documentdriven" synchronous approach of traditional Internet applications remained the same. As user experience requirements grew in complexity, this approach proved a handicap for complex business applications. Though there has been significant progress in server-side implementations, the means of rendering information to the end-user remained the same. The need to incorporate the rich, interactive and responsive features of desktop applications was felt increasingly.

Further, the inability to handle complex multi-step business workflows was another hindrance. The synchronous nature of traditional Internet applications forced back-and-forth page-flips on users, resulting in a slow, confusing and frustrating user experience. Traditional Internet applications could neither visually represent large and complex data nor provide interactive manipulation by users.

The latest transition in this ongoing evolution is RIA, which aims to combine the powerful and intuitive user experience of desktop applications with the reach of the Internet.


The promises of RIA are manifold:

  • Responsiveness and interactivity: RIA pushes much of the processing to the client side. This results in reduced network traffic and faster response as the application leverages the client CPU. Also, on clicking a button or a URL, only the corresponding section of the page reloads asynchronously, and not the whole page. This provides continuous visual reference to users as they are not distracted by the changing interface.
  • Rich User Interface: RIA promises to match the rich user interface provided by desktop applications, including graphical elements, audio, video, and other visualization techniques.
  • Broad Reach: RIA capitalizes on the broad reach of the Internet, allowing applications to be assessed anytime, anywhere, by any authorized user.
  • Real-Time Communication: It enables users to collaborate and share information on the Internet through real-time communication channels like instant messenger, video on demand, audio/video conference, etc.

RIA Technology Spectrum

As with any emerging paradigm, several competing technologies are vying for acceptance as the de facto standard to implement RIA. Their common characteristics qualify them as viable RIA technology choices. Figure 2 introduces a typical RIA architecture with these common characteristics.

Irrespective of the implementation, all RIAs introduce a client-side rendering engine between the end-user and the web server. This engine is usually downloaded to the client machine at the start of the session and interacts with the back-end server. There is significant difference between a traditional web application and a RIA.

Most RIA implementations - except Ajax-based implementations that don't have a server component - include a presentation server on the server side, which acts as a broker capable of invoking downstream business logic for the rendering engine.

Introduction of the client-side rendering engine enables asynchronous processing independent of communication with the back-end server. As a result:

  • Information can be fetched and displayed in anticipation of user response
  • Pages can be incrementally updated in response to user input
  • Cached data can be used in response to user input, without any communication with the server

Of the various competing technologies, the two primary contenders are Ajax and Flash. Ajax, a term coined by Jesse James Garatte1, is an amalgamation of several existing technologies like XHTML, CSS, DOM, XML, XSLT, XMLHttpRequest, and JavaScript. At the heart of any Ajax implementation is the XMLHttpRequest JavaScript object, which drives asynchronous communication between the client and the server. In Flash-based RIAs, Flash Player acts as a virtual machine that renders flash content to users. Presentation servers like Flex and Open Laszlo2 reside on the server and provide a platform to develop and deploy RIAs that run on a Flash Player.

Other emerging technologies in the fray include XUL, XAML3, and XUI.


RIA opens up new possibilities

RIA has opened up new possibilities for enterprises, a few of which we explore here.


RIA as the "Face" of SOA

In the last couple of years, Service-Oriented Architecture (SOA) has gained acceptance as an architectural paradigm to organize and manage enterprise resources as loosely coupled services that can be orchestrated to compose business processes. While enterprises are revamping their middle and back-end technology stacks using SOA, they are challenged to make these services available to end-users in an interactive and intuitive way. The current web-based presentation and client tier is the weakest piece in the SOA-based enterprise architecture stack and fails to rise up to this challenge. RIA is well poised to bridge this gap in an enterprise architecture stack - as the front end or "face" of SOA.

RIA will help in unleashing the true power of an SOA enterprise. While enterprise business logic and data are exposed as services (business and data services) using SOA, RIA will help these services to reach their intended end-users in an interactive, intuitive and intelligent way. These services may not only be SOAP web services but also simple REST services or xml-rpc services of varied granularity that may be as small as an EMI calculator or as big as an ESB service. RIA can consume a service in multiple ways. The simplest way to consume a small web service is using Ajax. Examples of such services are regular weather information, sport score updates, calendar activities, etc. A more complex scenario is a set of services that constitute a business process. RIAs provide certain advantages in execution of processes. Firstly, they can enable the whole process - right from the start service to end service - on the same page.

Take a simple process like booking a flight ticket. The various steps involved - providing journey details, passenger details, class of travel, routes and finally credit card authorization (or similar ones) to purchase the ticket can be done on a single page. Secondly, they can keep certain functions like simple data processing on the client-side so that services contain core functions to enable higher re-use of these services across different processes. However, challenges like data synchronization between services remain while running a process and transaction failure


RIA as SaaS (Software as a Service) enabler

SaaS is gaining acceptance as a software delivery model in which vendors provide an Internethosted version of their application to be accessed by customers and paid for on a per-use, perproject or subscription basis. It removes the need for regular updates due to new releases, the lengthy and tedious licensing process, and licensing thefts. RIA is a strong enabler for realizing the SaaS model. RIA provides rich functionality that was earlier possible only on desktop applications.

Salesforce.com, which pioneered the delivery of sales force automation and CRM software over the Internet, is leveraging RIA to deliver rich user experience by putting its software on par with the rich graphic interface of packaged software products. RIA helps salesforce.com offer a host of team work automation capabilities such as project management, opportunity management, collaborative calendaring, and document management. The sophisticated user experience provided by these applications can never be achieved by traditional web applications.


Defining UI capabilities of Mashups

?Mashup' has become a common buzzword after the introduction of Google Maps, Flickr and other information silos across the globe. Mashups combine information from multiple sources to produce an auto-generated unified view of information for users. Common examples of mashups are Virtual Places4 and Housingmaps.com5. Housing Maps, one of the earliest mashups, overlays details of rented houses from Craigslist on Google Maps so that consumers can visually search for houses in locations of their interest. Merging useful and related information to produce a holistic view is the primary reason for the success of mashups. They usually contain only 2-3 sources of information, but each source contains a lot of information, for example, Flickr Photos.

Mashups are created using APIs or web services through which information is exposed to the outside world, for example, Google provides APIs for Google Maps. Similarly, many vendors like Amazon and Yahoo! have opened up their information in the form of web services so that it can be seamlessly merged on-the-fly and presented on the Web.

However, it's not easy to present all the merged information in one place. For example, in the case of Housingmaps.com, it's impossible to show both the details of a house and its location without using in-window pop-ups or other RIA techniques. RIA plays a major role in defining UI capabilities of mashups. And as more complex mashups come up by aggregating varied sources of data, RIA techniques may play a major role to enable display in a single window.


Business benefits of RIA

The responsive, intuitive and effective user experience provided by RIA holds long-term business implications for enterprises. By broadening the mode of interaction between end-users and applications, RIA opens new, enriched ways by which enterprises can add value to their products and services.


RIA offers the following business benefits to enterprises:

  • Increased customer and partner productivity: RIA eliminates multi-screen interface, offers single application view and reduces iterations in business processes. This results in enhanced user productivity and satisfaction.
  • Improved customer loyalty: RIA allows customers and partners of e-commerce sites to manage and communicate account information, check order status, and re-order in a more effective way. Companies can offer sophisticated online experience to increase customer retention rate and to drive revenue streams.
  • Increase in new customers: Apart from deepening existing customer relationships, RIA also helps businesses acquire new customers. As individuals and organizations conduct more business online, web applications double up as the "first line" of interface with the end-customer. With growing competition, it is important to leave a lasting first impression.
  • Reduced operational cost: RIA reduces bandwidth usage and server load by moving processing to the web browser.

RIA can be effectively leveraged in web applications across different verticals like banking, retail and insurance. In the next section, we look into the implications of using RIA in a retail business scenario.


Sample Business scenario

For years, e-commerce providers have been plagued with the issue of shopping cart abandonment. It is one of the most commonly reported hurdles in e-commerce revenue generation and profitability. A report by Forrester Research6 highlights the ability of RIA-based checkout solution to convert visitors to shoppers, 50% more often than the traditional HTML checkout process.

Traditional checkout solutions have the following flaws:

  • Shipping costs do not appear until the end of the shopping experience
  • The order total does not appear as each item is added; it appears only at the end
  • No wish list that can be used after the shopping cart is full leads to abandonment
  • No common display context to carry out common shopping cart transactions

These limitations arise from the design model of traditional web applications. Users go through a series of steps and confirm the order, but when they cannot change the quantity, color, etc. in the final step, they abandon the order. Also, the traditional web application design methodology does not give retailers the option to cross-sell or up-sell other items, as the purchase flow gets disturbed in the page-by-page checkout process.

As broadband becomes ubiquitous and online the most preferred way to shop, there have been innovations aimed at improving user experience and enriching the e-commerce industry. With the adoption of SOA as the architecture paradigm for applications, RIA is being preferred as the front end for accessing applications. Retailers are developing their checkout process to provide a "Single Screen Checkout" environment, so that users can:

  • Control the order of the steps in the process: Users can quickly and easily move back and forth between the shipping, delivery, and payment options to add information or make changes on a single page without losing entered data or waiting for the pages to be fetched from the server.
  • Quickly calculate the effects of cross-sells, up-sells, and shipping options: The RIA application does most of the computing behind the scenes either through Ajax or a Flashbased shopping cart. This encourages customers to explore the effect of adding items or picking a faster shipping method on their bottom line.
  • Speedily enter personal data and payment options: Speedy response rates make users perceive sites to be more secure. It also makes the site content seem interesting and credible. Faster carts eliminate barriers to order completion. This, in turn, wins the trust of the customers.

Challenges for Enterprises Adopting RIA

Enterprises need to factor in the following challenges while adopting RIA technologies:

  • Lack of standards: There is considerable flux, and lack of standards and best practices in RIA technologies. The community is debating whether to use Ajax or Flash or even both, while some developers even claim that "Flash is Ajax"7. Many Ajax tools have cross-browser and cross-platform problems. To solve these problems, OpenAjax Alliance8, an organization of more than 60 leading vendors, open source companies and companies using Ajax, is striving to identify and consolidate best practices, reach a consensus on programming models, provide reference implementations for tools interoperability, and generate wider Ajax adoption throughout the industry.
  • Market volatility: The commercial RIA technology market is still nascent. New players are emerging continuously. Most of the current vendors - JackBe, Backbase, Nexaweb, etc - are new and small, while established product vendors like IBM, Oracle, and Sun Microsystems have only started providing RIA support in their existing product suite.
  • Security concerns: Security is a major area of concern for RIAs, especially Ajax-based RIAs. Yammer, Samy, and Spacefish-type worms are exploiting "client-side" Ajax frameworks, providing new avenues of attack and compromising confidential information. Several such cross-site scripting attacks were observed, most notable being the Yammer attack on Yahoo mail9 and Samy worm on MySpace.com10.
  • Accessibility: Since most RIAs are created using Ajax or JSON and hence, JavaScript, the degree to which they can be universally accessed is greatly impacted. Issues with JavaScripting are not new. However, the increased usage of, and reliance on JavaScripting in RIAs for improved interactivity and functionality has re-ignited this discussion. Accessibility guidelines allow for the use of JavaScript. However, most Ajax implementations offer poor support for screen readers, text magnifier and similar tools. Companies must consider this limitation, as in many countries there is legal obligation to provide access to disabled customers and employees.

Conclusion

RIA represents a transition in the evolution of web applications and brings new equations to the table, empowering businesses to add value to their products and services. Though there are challenges in RIA adoption, the benefits that businesses can accrue in the long run are too compelling to be ignored. With the ubiquitous presence of broadband, increasing online presence, and with businesses increasingly focusing on making the online experience richer and more lasting for users, RIA has hit the tipping point. Enterprises should adopt RIA in a phased manner. The initial difficulty is worthwhile to gain the first-mover advantage.


About the Authors:

Brijesh Deb is a Technical Architect with Infosys. He is a part of the J2EE Center of Excellence at the Software Engineering & Technology Labs (SETLabs) - Infosys' research group. He is involved in architecture definition and assessment, technology evaluation and selection, design and review of SOA-based J2EE applications. His current interests include Web 2.0 and RIA. Sunil G. Bannur is a Senior Technical Architect with the Retail, CPG and Distribution practice at Infosys. He is involved in architecting enterprise applications in .NET and J2EE. His current interests include VoIP, Convergence and Web 2.0 technologies.

Shaurabh Bharti is a Junior Research Associate with Infosys. He is a part of the Web Services and SOA Center of Excellence at SETLabs, Infosys' research group. His current research interests include Semantic Web, Web Services, Contextual Collaboration and Web 2.0.

Searches related to Rich Internet Applications (RIA): Opportunities and Challenges for Enterprises:
Accessible Rich Internet Applications | Ajax | Ajax Developers | Ajax Development | Application Development | Application Service Provider | Apply Software Engineering Technology Labs | Apply Ria Solutions | Apply Ria Technologies | Apply Saas Applications | Apply Saas Architecture | Apply Saas Integration | Apply Saas Model | Apply Saas Platform | Apply Saas Solution | Apply Saas System Inplementation | Apply SOA Applications | Apply SOA Architect | Apply SOA Enterprise | Applying Software Engineering Technology Labs | Applying Ria Solutions | Applying Ria Technologies | Applying Saas Applications | Applying Saas Architecture | Applying Saas Integration | Applying Saas Model | Applying Saas Platform | Applying Saas Solution | Applying Saas System Inplementation | Applying SOA Applications | Applying SOA Architect | Applying SOA Enterprise | Benefits of SOA | Build Rich Internet Applications | Building Rich Internet Applications | Business Process Management SOA | Business SOA | Choose Software Engineering Technology Labs | Choose Ria Solutions | Choose Ria Technologies | Choose Saas Applications | Choose Saas Architecture | Choose Saas Integration | Choose Saas Model | Choose Saas Platform | Choose Saas Solution | Choose Saas System Inplementation | Choose SOA Applications | Choose SOA Architect | Choose SOA Enterprise | Choosing Software Engineering Technology Labs | Choosing Ria Solutions | Choosing Ria Technologies | Choosing Saas Applications | Choosing Saas Architecture | Choosing Saas Integration | Choosing Saas Model | Choosing Saas Platform | Choosing Saas Solution | Choosing SOA Applications | Choosing SOA Architect | Choosing SOA Enterprise | Code Applications | Create Software Engineering Technology Labs | Create Ria Solutions | Create Ria Technologies | Create Saas Applications | Create Saas Architecture | Create Saas Integration | Create Saas Model | Create Saas Platform | Create Saas Solution | Create Saas System Inplementation | Create SOA Applications | Create SOA Architect | Create SOA Enterprise | Creating Software Engineering Technology Labs | Creating Ria Solutions | Creating Ria Technologies | Creating Rich Internet Applications | Creating Saas Applications | Creating Saas Architecture | Creating Saas Integration | Creating Saas Model | Creating Saas Platform | Creating Saas Solution | Creating Saas System Inplementation | Creating SOA Applications | Creating SOA Architect | Creating SOA Enterprise | CSS | Data Accessibility | Deploy Software Engineering Technology Labs | Deploy Ria Solutions | Deploy Ria Technologies | Deploy Saas Applications | Deploy Saas Architecture | Deploy Saas Integration | Deploy Saas Model | Deploy Saas Platform | Deploy Saas Solution | Deploy Saas System Inplementation | Deploy SOA Applications | Deploy SOA Architect | Deploy SOA Enterprise | Deploying Software Engineering Technology Labs | Deploying Ria Solutions | Deploying Ria Technologies | Deploying Saas Applications | Deploying Saas Architecture | Deploying Saas Integration | Deploying Saas Model | Deploying Saas Platform | Deploying Saas Solution | Deploying Saas System Inplementation | Deploying SOA Applications | Deploying SOA Architect | Deploying SOA Enterprise | Developing Rich Internet Applications | Dom | Flash Application | Flash Development | Implement Software Engineering Technology Labs | Implement Ria Solutions | Implement Ria Technologies | Implement Saas Applications | Implement Saas Architecture | Implement Saas Integration | Implement Saas Model | Implement Saas Platform | Implement Saas Solution | Implement Saas System Inplementation | Implement SOA Applications | Implement SOA Architect | Implement SOA Enterprise | Implementing Software Engineering Technology Labs | Implementing Ria Solutions | Implementing Ria Technologies | Implementing Saas Applications | Implementing Saas Architecture | Implementing Saas Integration | Implementing Saas Model | Implementing Saas Platform | Implementing Saas Solution | Implementing Saas System Inplementation | Implementing SOA Applications | Implementing SOA Architect | Implementing SOA Enterprise | Integrate Saas Applications | Integrate Saas Architecture | Integrate Saas Integration | Integrate Saas Model | Integrate Saas Platform | Integrate Saas Solution | Integrate Saas System Inplementation | Integratesoftware Engineering Technology Labs | Integrateria Solutions | Integrateria Technologies | Integratesoa Enterprise | Integrating Software Engineering Technology Labs | Integrating Ria Solutions | Integrating Ria Technologies | Integrating Saas Applications | Integrating Saas Architecture | Integrating Saas Integration | Integrating Saas Model | Integrating Saas Platform | Integrating Saas Solution | Integrating Saas System Inplementation | Integrating SOA Applications | Integrating SOA Architect | Integrating SOA Enterprise | Internet Application | Internet Application Development | Internet Applications | Monitor Software Engineering Technology Labs | Monitor Ria Solutions | Monitor Ria Technologies | Monitor Saas Applications | Monitor Saas Architecture | Monitor Saas Integration | Monitor Saas Model | Monitor Saas Platform | Monitor Saas Solution | Monitor Saas System Inplementation | Monitor SOA Applications | Monitor SOA Architect | Monitor SOA Enterprise | Monitoring Software Engineering Technology Labs | Monitoring Ria Solutions | Monitoring Ria Technologies | Monitoring Saas Applications | Monitoring Saas Architecture | Monitoring Saas Integration | Monitoring Saas Model | Monitoring Saas Platform | Monitoring Saas Solution | Monitoring Saas System Inplementation | Monitoring SOA Applications | Monitoring SOA Architect | Monitoring SOA Enterprise | Ria | Ria Analysis | Ria Architecture | Ria Deployment | Ria Development | Ria Framework | Ria Frameworks | Ria Innovation | Ria Innovation Networks | Ria Integrate | Ria Integration | Ria Management | Ria Management Process | Ria Management System | Ria Needs | Ria Networks | Ria Operations | Ria Planning | Ria Process | Ria Processes | Ria Software | Ria Solution | Ria Solutions | Ria Strategies | Ria Strategy | Ria Systems | Ria Technologies | Ria Technology Spectrum | Rich Client | Rich Internet | Rich Internet APP | Rich Internet Application | Rich Internet Application Development | Rich Internet Application Framework | Rich Internet Application Frameworks | Rich Internet Applications | Rich Internet Applications | Rich Internet Applications Ria | Rich Internet Applications Development | Rich Internet Applications Examples | Rich Internet Applications Suite | Rich Internet Apps | Rich Web Application | Rich Web Applications | Saas | Saas Advantages | Saas Application | Saas Applications | Saas Architecture | Saas Business | Saas Companies | Saas CRM | Saas Customer Service | Saas Data | Saas Delivery Model | Saas Design | Saas Development | Saas Diagram | Saas Email | Saas Enablement | Saas Environment | Saas Example | Saas Hosting | Saas Integration | Saas Inventory | Saas Legal | Saas Management | Saas Model | Saas Models | Saas Network | Saas Platform | Saas Platforms | Saas Presentation | Saas Product | Saas Project | Saas Requirements | Saas Research | Saas Review | Saas Sales | Saas Service | Saas Services | Saas Software | Saas Solution | Saas Solutions | Saas Statistics | Saas System | Saas Technology | Saas Tools | Saas Training | Saas Vendors | Sample Applications | Service-oriented Architecture | Service-oriented Architecture SOA | SOA | SOA Adapter | SOA Application | SOA Applications | SOA Architect | SOA Architectural | SOA Architecture | SOA Basics | SOA Best Practices | SOA Blog | SOA Business Process Management | SOA Comparison | SOA Components | SOA CRM | SOA Development | SOA Diagram | SOA Enterprise | SOA Enterprise Architecture | SOA Evolution Model | SOA Examples | SOA Framework | SOA Governance | SOA Implementation | SOA Information | SOA Infrastructure | SOA Innovation | SOA Integration | SOA Interface | SOA Interoperability | SOA Mainframe | SOA Maturity Model | SOA Message | SOA Messaging | SOA Middleware | SOA Overview | SOA Patterns | SOA Platform | SOA Portal | SOA Presentation | SOA Process | SOA Processes | SOA Product | SOA Products | SOA Reference Architecture | SOA Security | SOA Service | SOA Service Oriented | SOA Services | SOA Software | SOA Solution | SOA Solutions | SOA Standards | SOA Strategy | SOA System | SOA Systems | SOA Technical | SOA Technologies | SOA Technology | SOA Testing | SOA Tool | SOA Training | SOA Vendors | SOA Web Service | SOA White Paper | SOA Whitepaper | SOA Workflow | Software as a Service | Software as a Service Business | Software as a Service Industry | Software as a Service Model | Software as a Service Security | Software as a Service Solution | Software as a Service Trends | Software as a Services | Software Engineering | Software Engineering & Technology Labs | Software Engineering & Technology Labs Setlabs | Software Framework | Support Software Engineering Technology Labs | Support Ria Solutions | Support Ria Technologies | Support Saas Applications | Support Saas Architecture | Support Saas Integration | Support Saas Model | Support Saas Platform | Support Saas Solution | Support Saas System Inplementation | Support SOA Applications | Support SOA Architect | Support SOA Enterprise | Supporting Software Engineering Technology Labs | Supporting Ria Solutions | Supporting Ria Technologies | Supporting Saas Applications | Supporting Saas Architecture | Supporting Saas Integration | Supporting Saas Model | Supporting Saas Platform | Supporting Saas Solution | Supporting Saas System Inplementation | Supporting SOA Applications | Supporting SOA Architect | Supporting SOA Enterprise | Tools SOA | W3C | Web Application | Web Application Development | Web Application Security | Web Application Security Consortium | Web Application Security Scanner | Web Applications | Web Design | Web Development | Web Service | Web Services | Web Standard | Web Standards | Webapp | Webservice | World Wide Web Consortium | XHTML | XML | XSLT | Xui | Xul |
Home  |   Careers  |   Contact Us  |   Glossary  |   Special Offers  |   Software Features & Functions  |   Software Selection Shortcuts  |   Feedback  |   Terms of Use  |   Privacy Policy

©2012 Technology Evaluation Centers Inc. All rights reserved. Search powered by Google