While few would question the benefits that Internet-based applications have brought to businesses and consumers alike, the actual experience of interacting with many web-based applications leaves much to be desired, especially when compared with the richness and usability of the best desktop applications.For consumer-oriented applications, such as e-commerce, the web’s page-based model and lack of client-side intelligence can make even relatively simple transactions confusing and error prone. As a result, online businesses are losing millions of dollars to abandoned shopping carts or costly customer service calls.
For business applications, the problem is particularly acute. While the web deployment model has allowed IT organizations to reduce the cost of software deployment, it has also created a community of underserved business users that long for a return to the usability and responsiveness of desktop and client/server applications. As a result, businesses are losing millions of dollars per year due to low productivity or poor decisions.
Fortunately, after long focusing on the technical challenges of web-enabling their application infrastructure, forward-looking IT professionals are now turning their attention to design patterns and technologies that can improve the client side of the equation. As a result, we are now seeing widespread deployment of rich Internet applications (RIAs), a new class of applications that combines the responsiveness and interactivity of desktop applications with the broad reach and ease of distribution of the web.
RIAs can drive increased return on investment (ROI) by simplifying and improving the user interaction-enabling users to find information more easily, complete tasks quickly and accurately, and use rich data visualization to make better decisions. Before realizing these benefits, however, IT professionals must navigate through a new set of technologies as well as understand the architectural and developer skill requirements implied by the move toward RIA-style applications.
Adobe Flex product family helps IT organizations take advantage of existing skills and infrastructure to efficiently deliver a broad range of RIAs that can scale from simple marketing applications to mission-critical enterprise applications.
Ingredients required for delivering RIAs
RIAs are more than just “eye candy”; rather, they provide measurable value to the enterprise. According to leading researchers, adoption of RIA technology is accelerating. Forrester Research foresees “a significant swing in 2006 toward the thin client model for enterprise application development and deployment,”1 while Gartner believes that by 2010 over 60% of new projects will include RIA technology2. As enterprises move to develop and deploy RIAs, however, they are finding that delivering on the vision requires two important ingredients:
- A new class of client runtime that can support the range of needs inherent in rich Internet business applications
- Tools and technology that can provide a productive environment for building, maintaining, and managing these applications throughout their lifecycle
The need for a service-oriented client
Over the past five years, IT organizations have made significant investments in modernizing their back-end systems to take advantage of service-oriented architecture (SOA). By exposing core business systems (and the processes they embody) as a set of services, IT organizations hope to become more agile as well as reduce the cost of system maintenance or updates. As a result, many organizations can now make business processes more efficient and implement new business processes that integrate existing systems through web services or an enterprise service bus.
While the move to SOA has steadily improved the efficiency and stability of back-end applications, web browsers-the main client-side application runtime-have not advanced beyond their original role as document browsers. To realize the full benefits of a SOA, developers need a richer set of technical capabilities to modernize the client-side components of their applications. This new set of capabilities will provide a service-oriented client (SOC)-a runtime environment that can deliver not only the enhanced usability promised by RIAs but also reliable and secure connectivity to back-end systems.
While the full set of services required for SOCs will continue to evolve as RIAs become more commonplace, at a minimum organizations should seek the following capabilities:
- High-performance, cross-platform runtime-Business applications must handle large amounts of data and support complex client-side business logic and data processing. As a result, the SOC must be able to manipulate large amounts of data in memory and update the user interface without a user-perceivable degradation in performance.
- Integrated support for text, graphics, animation, and audio/video-The most usable applications combine multiple modes of presentation to deliver information more effectively. The SOC must provide an integrated programming model that allows developers to control all of these modes within their application.
- Enterprise data integration-The request/response model is sufficient for website browsing, but many applications require optimized high-performance data transfer as well as additional modes of interaction, including publish/subscribe messaging and the ability to push data or alerts from the server to the client.
- Support for disconnected computing-While wireless broadband has increased connectivity, business applications need to continue functioning when the network connection is lost temporarily, and many other applications must enable users to work offline and resynchronize their work when they reconnect.
- Security and reliability-Before organizations deliver critical applications using RIA technologies, they must be confident that the applications will be available when needed. Moreover, the runtime must ensure that data can be transferred securely, and the client “sandbox” must prevent users or third-party applications from accessing sensitive information without proper authorization.
While only some applications will require all of these capabilities, IT organizations that want to deploy RIA technology as a strategic platform-or even just minimize the number of one-off solutions deployed in their organization-should adopt client technology that can provide the full range of capabilities required by the SOC.
RIA development model
Of course, to adopt RIAs, organizations need technology and tools that make development and delivery efficient. Moreover, the new applications must extend existing investments in skills, processes, applications, and infrastructure.
To be successful within today’s enterprise IT organization, RIA technology solutions must:
- Provide a familiar programming model-Application developers are constantly under pressure to deliver more with less. The RIA development environment must leverage existing skills and best practices, including the use of object-oriented languages for business logic and tag-based, declarative models for user interface layout.
- Leverage existing architecture-Organizations have invested heavily in application server technology and SOAs. Using and complying with this infrastructure is also a requirement for most organizations.
- Support standard protocols and application programming interfaces (APIs)-One of the many positive results of the web has been the adoption of a broad spectrum of standards across the entire technology stack. This includes, but is not limited to, industry standards, such as HTML/HTTP(S), XML, Simple Object Access Protocol (SOAP)/web services, cascading style sheets (CSS), and Scalable Vector Graphics (SVG) as well as Java Platform, Enterprise Edition
- (Java EE)-formerly known as J2EE-and Microsoft .NET. Incorporating these standards, where appropriate, is a requirement for most organizations.
- Follow common key design patterns-To increase both quality and modularity, development organizations are increasingly adopting common patterns like model-view-controller (MVC) as standard architectures for their applications. The RIA development models should build on this store of best practices and developer knowledge.
- Integrate with existing processes-Development organizations have adopted source code control systems, automated testing suites, and other application lifecycle tools to increase efficiency and quality and reduce maintenance costs. An RIA development solution must fit into these existing processes and integrate with the tools already at use within the organization.
- Provide rich tooling-Developers spend a great deal of time coding and debugging application logic. Beyond an efficient development model, an RIA solution must include tools that can facilitate learning, automate common tasks, and reduce the amount of time developers spend finding and fixing bugs. At the same time, the development model must enable developers to continue using their existing editors for core code writing tasks.
Presenting Adobe Flex – Answer to delivering Rich Internet Applications
Note: Content above is an extract from Flex Technical Overview Doc