Routing, as a general concept, can be seen in many networks, applications, and services. For networks, routers are used to ensure that packets of data are correctly sent from one destination to another. Many routers are now considered " intelligent " because they will choose routes based on availability of systems and existing traffic. With regard to applications, e-mail is currently the most widely used routed application. If you have ever examined the path of an SMTP message, you might have had the opportunity to appreciate the complexity of the path .
Compared to routing for network devices and e-mail, routing for Web services is a new concept that has many of the same benefits ” especially in a production environment. For example, if an organization wants to deploy multiple production Web services, they might have to consider how to load-balance the incoming requests . These days, load balancing can be performed with a network load balancer, but imagine a requirement where the route to the Web service was determined based on the content of the message. An organization might want to build a solution that exposes a single Web service that intercepts each message and then decides the route of the required Web service based on the content.
Throughout the book so far, Web services have been aligned with point- to-point interoperability, a term that was covered in Chapter 2, "Business Requirements for Interoperability." In this chapter, we'll look at how Web services can be expanded to include this routing capability. To do this, we'll cover a specification named WS-Routing and show a number of samples that are based on this specification and that use the .NET Framework and Java. We'll then discuss how this area is still evolving by looking at the shaping and reshaping of new specifications in this area.