Today, Web 2.0 and service-oriented architectures (SOAs) are among the top issues of concern for IT architects and executives. Both are poised for exponential growth over the next few years, due to their flexibility, cost effectiveness, and ease of integration. Each technology creates highly distributed composite applications that unite components or subsystems to form higher-level functional systems or target applications
The Cisco Network for Composite Applications
• Robust reliability for minimized latency and availability
• Multiple layers of security to protect against general and XML-specific attacks
• Offload of resource-intensive functions
• XML acceleration for faster performance
• XML transformation for more efficient performance
• Consistent high quality of service
• Support for powerful, innovative application composite applications that combine business applications with communication and collaboration services
• End-to-end network monitoring for administration and maintenance
The growing challenge for enterprise IT architects, however, is that because these composite applications are highly distributed, interactions between components may require several traversals across various areas of the network-each increasing the possibility of inconsistent performance or security problems. This issue becomes even more critical when Web 2.0 technologies are applied in order to leverage resources outside of the enterprise domain, using external networks and the Internet. To assure that all elements of highly distributed composite applications operate quickly, efficiently, and securely, a pervasive, reliable network is required. However, it is also important to understand the additional role the network plays in Web 2.0 and SOA applications.
This paper examines how intelligent, integrated network services help to create an optimal foundation for Web 2.0 and SOA composite applications, enabling them to fulfill their potential as the next "disruptive force" of innovation in the enterprise. The open architectural approach that Cisco® takes to connecting network services to Web 2.0 and SOA applications to deliver innovative business solutions is the Service-Oriented Network Architecture (SONA). This paper will discuss how SONA provides three key categories of critically important network services-basic enablement, performance optimization with security, and application enrichment-to help ensure reliability, scalability, security, and predictable performance across diverse network environments, and to support optimal alignment of composite applications with the business process they support. For a more in-depth discussion of SONA, visit www.cisco.com/go/SONA.
Defining Composite Applications
Web 2.0 mashups (Web applications that combine data from more than one source into a single integrated tool) and SOA are the most prominent and discussed exponents of what today are generically known as composite applications. Composite applications are application systems that are fundamentally enabled by network connectivity. They are composed of loosely coupled subsystems to form a higher-level functional system or target application. These subsystems can be data sources or services that perform a particular function, accepting input from and providing output to the target application.
Composite applications can provide tremendous flexibility and, properly designed, offer high levels of business agility and productivity due to their ability to be reconfigured relatively quickly. The underlying model of composite design is similar in both Web 2.0 and SOA applications.
What is Web 2.0?
Web 2.0 is an evolutionary phenomenon that can be viewed from two different standpoints.
The user viewpoint encompasses a powerful trend toward user empowerment: Web 2.0 environments are greatly enriched by the simple premise that users should also be allowed to be content providers. Powerful examples of the synergies set free by this approach include wikis (Wikipedia), popular blogs (Engadget), photo-sharing sites (Flickr), video-sharing sites (YouTube), and social networks (MySpace, Facebook). While the Internet has always been a tool for communication, Web 2.0's usability enhancements have permanently altered online interaction by creating a much more collaborative environment. This evolution has ushered in an increasingly peer-to-peer content publishing and sharing model, as opposed to the traditional consumer-publisher content model. Combined with current capabilities in multimedia content publishing and sharing, this has led to a significant change in the way people are using the Web to share experiences and new ideas.
The application viewpoint centers around a development philosophy founded upon open programming, sharing of resources, rich Internet application-development languages, and composite distributed systems. The two main elements of this thriving delivery environment are the concept of software as a service (SaaS) and mashup applications. SaaS allows the Web browser to challenge traditional desktop software when it comes to application delivery.
Mashup applications unite data from different sources using open, intuitive protocols such as Extensible Markup Language (XML) and Representational State Transfer (REST) to create a contextually relevant presentation. By presenting data in innovative ways, mashups can significantly boost productivity, breaking down artificial barriers in data interpretation. A popular example of a mashup is to combine data from a Web application such as Google Maps, which uses a REST interface-an architectural model for designing the easy flow of information via the Web-with data from the real estate listings at www.craigslist.com, which also offers its data in REST. The result is a very visual and intuitive representation of listings in the consumer's area of interest.
What Is the Service-Oriented Architecture?
The service-oriented architecture (SOA) is a design and architecture paradigm centered on the creation of component "services" that can be combined to create business application systems. SOA is an architectural philosophy that does not specifically require or align itself with any particular technology set. It is focused on providing a tighter affiliation between business process and IT architecture in a modular fashion, with the goals of providing business agility, flexibility, and cost-effectiveness in long-term use. SOA service components exhibit some typical core characteristics that deliver on the promise of flexibility, ease of integration, and cost benefits, including:
• Components are loosely coupled using defined interfaces.
• Internal functions, structure, and states are completely internalized and irrelevant to other components in the system.
• Components can be combined and recombined as needed.
• They are discoverable by other existing or new components or systems within the architecture.
• They are amenable to service agreements: Components are capable of providing and adhering to publishable service definitions that outline functional capabilities, interfaces, inputs, and outputs.
The general premise of service orientation is to decompose functional processes into modular services or sub-processes that can be served by IT systems to optimally support one or more higher-level business processes. By popular choice and industry alignment, Web services protocols such as XML and Simple Object Access Protocol (SOAP) currently serve as the standard technology set for SOA.
Figure 1. Network Services and their Role in Enabling Composite Applications
The Critical Role of the Network in Web 2.0 and SOA Applications
Composite applications naturally rely on the network for their enablement: The network permits the different components to communicate with each other, providing pervasive visibility from end to end. However, the network also contributes far more. It can decisively enable composite applications by focusing on three major areas (see Figure 1):
• Basic enablement: Network availability and QoS are critical considerations in an infrastructure that supports composite applications.
• Performance optimization, virtualization, and security: The composite application environment greatly benefits from network services that enhance application performance, scalability, and security.
• Application enrichment: Composite applications that combine traditional business application concepts with communication and collaboration services are key tools in accelerating overarching business processes.
Fundamental Enablement of Web 2.0 and Composite Applications
Without the network, composite applications cannot function, because the application components are not able to communicate with one another. Therefore network availability is the most fundamental service building block.
But the network does more. Obviously, it needs to perform well to enable the applications: bandwidth, latency, and packet loss all have a direct impact on application performance. If, for example, three components must be completed sequentially to deliver on an overall application, network latency will add to completion time. Especially over wide-area links, this can have a very significant performance impact. For the same reason, network resource allocation is of vital importance to delivering on application performance targets.
Accelerating Composite Application Performance
In an application that requires the combination of several component services or data sources, network latency and reliability also can have a compounding effect on the overall performance of the final application (see Figure 2). In the best case, of course, all distributed resources are completely independent of one another and colocated in the same data center, or they are on a network that exhibits consistent performance characteristics.
However, these are unlikely scenarios. Truly distributed composite applications draw from resources across a variety of areas, including external data repositories from partner networks, the Internet, corporate branches, etc. Moreover, the resource components of a composite application are seldom completely independent; in fact, it is this inherent interdependence that tends to give those components their composite context. In a more realistic environment, component resources are dependent on one another, either in parallel or serially, and will most likely reside across network topologies exhibiting varying degrees of performance. For example, the component resource may reside on the far side of a low-speed WAN link or in a geographically distant data center. The low-bandwidth or high-latency WAN in this case would impact the usability of the overall composite application.
To avoid this, the network must be factored into the design and deployment of composite applications, whether they are based on SOA or Web 2.0. Architects who are familiar with network technologies and options can help address these types of challenges. For example, if a composite application must be delivered across a WAN, the ability to use support technologies such as XML acceleration, content compression and optimization, and content caching helps alleviate issues encountered with more challenging deployment environments.
A network design using a SONA approach for acceleration services significantly mitigates the performance impact of composite application environments. XML-specific network intelligence, as implemented by the Cisco ACE XML Gateway, significantly improves performance and security of the entire composite application system. For example, Web services messages frequently require expensive operations such as XML parsing, authentication, schema validation, Extensible Stylesheet Language Transformations (XSLT), signature validation, encryption, and message or attachment compression. If these functions are performed on the application server, a significant amount of system resources are consumed, degrading business-application performance. However, acceleration gateways separate the performance and management of critical functions required by the infrastructure, such as message handling, identity and access management, and content inspection, protected by an XML firewall and consistent policy enforcement.
With the Cisco ACE XML Gateway, these functions are accelerated and tuned to optimize performance of both the individual application server and the system as a whole. The Cisco ACE XML Gateway dramatically reduces end-to-end application latency and improves concurrency, offering more than 30,000 XML transactions per second
Figure 2. SOA Application Performance Relies on Network Availability and Performance
Security for Composite Application Environments
The composite application environment also poses a whole new set of security challenges. Access points into the application infrastructure multiply with every component orchestrated by the composite application. Moreover, components may reside outside of corporate boundaries, posing a potential threat to corporate systems. While relying on XML provides powerful benefits, the distributed and open nature of the composite application environment opens the door to greater security risk-in fact, more than 13,000 vulnerabilities had been identified just by the end of 2003. Securing Web services to maximize their benefits requires:
• A flexible and robust approach to supporting established and future standards (including HTTPS [using SSL], WS-Security, XML Encryption, XML Signature, PKI certificates, SAML, and WS-Trust)
• The ability to provide complete protection against new, potentially crippling XML threats while connected to many different types of services and networks
• A scalable foundation that enables highly controllable, yet rapid and repeated provisioning of Web services and SOAs
A number of different types of attacks are specific to composite applications and XML. Two XML content-borne attacks include Sequential Query Language (SQL) injection attacks (inserting malicious SQL statements into XML to disrupt back-end systems) and buffer overflow attacks (aimed at the service endpoint). A content-format attack targets vulnerabilities in the way that services read content formats (document types, element names, attribute names, etc.) before they examine the actual content, while XML denial-of-service (XDoS) attacks make services unusable for everyone. These attacks are difficult to distinguish from legitimate traffic, making it difficult to selectively service only legitimate requests.
The Cisco SONA-based network plays an essential role in identifying a wide range of attacks, monitoring suspicious behavior, and protecting the enterprise infrastructure. This role becomes even more crucial in a composite application environment. The SONA-based network provides specialized security functions for XML-based services that protect and secure the emerging composite application infrastructure. These services enable:
• Centrally defined coarse and fine-tuned security policies (different users in different groups can specify a scalable Web services security solution, and it will employ intelligent policy coordination for consistent enforcement)
• Optimized processes for creating and provisioning services and connections; creating, approving, and recording policies; migrating services and policies between environments; and deploying policies on a transactional basis
• Any-to-any integration for platform, protocol, and standards mediation with a deny-by-default architecture that helps ensure that only trusted messages reach the services
• Detailed, configurable, and collaborative event and message logs that help to instantly identify and anticipate issues such as the need to check an expired certificate
• Comprehensive, flexible support for service virtualization, failover, load balancing, and capacity planning
• Ability to offload resource-intensive functions that may impact individual component systems that use encrypted channels
Enriched Composite Applications
The agility of composite applications makes them a natural choice to help accelerate business processes, breaking down the barriers to effective collaboration. This relies on the removal of any silos when it comes to sharing relevant data among extended team members irrelevant of location, device, or time considerations. The SONA-based network offers critical services that can be used to enrich composite applications with identity, mobility, location, presence, resource-allocation, and session-control capabilities. These services can therefore be integrated directly into the business process and enterprise application. These are sometimes known as communication-enabled business processes (CEBP) and are generally regarded as emerging enablers for increased productivity. By building in such communication and collaboration tools, work teams can stay in close communication, with consistent access to the information they need, in the format they need. Presence services enrich the ability to delegate decision-making to available team members at critical junctions in the process.
As Web 2.0 and SOA gain traction in the enterprise, CIOs and IT managers must decide where best to employ these technologies and how to optimize the performance of composite applications. The network, which touches all the endpoints where the application resources and components reside, is a powerful vehicle for providing many network- and application-level services. A network based on SONA provides three core capabilities for Web 2.0 and SOA applications: fundamental enablement, performance optimization, and security and application enrichment. The Cisco SONA approach helps enterprises build business solutions using network services to help ensure secure and reliable composite-application performance.