Take a look at your business card. Along with your name and title, it lists a number of ways you can be contacted: your phone number, fax number, mobile number, email address, mailing address, home page, and perhaps your instant messenger ID. Someone who wants to reach you can choose any of the methods listed on your card, and despite the fact that those contact methods are quite different with respect to the qualities of service they each offer, they all lead to you. You're basically the same person regardless of which method someone might choose to reach you.
I sometimes use the business card as an analogy to discuss the merits of web service references. A multi-port or multi-access reference type is one of the issues currently being addressed by the W3C WS-Addressing Working Group (WG), of which I'm a member.
The WS-Addressing endpoint reference (EPR), as currently defined, allows access to a service over only a single port or mechanism. Using the business card analogy, that's like mandating that a business card can specify only a single means of reaching the person it references, thus forcing anyone who wants to be reachable over multiple means of access to have to issue multiple business cards. Can you imagine attending a business meeting where you have to give business cards to five different people, and you want each of them to be able to reach you over desk phone, mobile, and email, so you wind up having to give out three separate cards to each person, 15 cards in all?
As Rich Salz points out in his review of WSDL 2.0,
In WSDL 1.0, a service could implement multiple ports. This fits with the conventional model for implementing IETF/Internet servers: each TCP port defines its own language (SMTP, NNTP, etc.), and a single executable can implement multiple protocols, by using the port number to de-multiplex (or dispatch) to the appropriate handlers.
As Rich implies, the multi-port service model is nothing unusual -- it's been around for years. A service might offer itself over multiple ports so it can offer different qualities of service to its consumers. For example, it might accept compressed messages over one port, encrypted messages over another, and perhaps management messages over a third. Alternatively, using capabilities like those provided by our Artix product, a service might accept CORBA messages on one port and SOAP messages on another.
Is a service reference, rather than or in addition to an EPR, something that the WS-Addressing standard needs to provide? I think it should.
More on this topic later.