Service Discovery and Composition of Carrier Applications”


Kostas Kontogiannis

Paul A.S. Ward



Department of Electrical and Computer Engineering

University of Waterloo




Computing and communication are rapidly converging, both in the corporate and the consumer spaces.  In the consumer space, people are interacting by a mixture of fax, e-mail, voice, instant messaging, file transfer, web services, video conferencing, etc.  This diversity has pushed the current telecommunication infrastructure from a connection-oriented voice-based system to an IP system.  Such a system does not require the network infrastructure to be anything more than a high-speed bit-pipe, and there are those who propose such an approach, with consumer services provided by third-party servers.

Similarly, in the corporate environment, service-based computing is rapidly replacing the more-traditional approaches to architecting distributed systems.  The critical advantage of service-based architectures is that they require only a specification of protocol, and not of API.  As such, they engender a significantly looser coupling than prior techniques, facilitating seamless collaboration across systems and across administrative domains.  We therefore see services taking the dominant role in both the consumer and corporate communication/computation environment.

A Service-Oriented Architecture (SOA) is a software engineering middleware platform that provides a service-based computing/communication environment.  Any SOA requires three things: service provision, service discovery, and service consumption.  Service provision is little different from the standard provision of services in client/server environments.  Service consumption, at present, is likewise largely unaltered from that of the client-side of the client/server environment.  What has the potential to change this is service discovery. 


At present there are several service-discovery systems, including DHCP, UPnP, SLP, Salutation, Jini, UDDI, X.500, etc.  Collectively they operate based on one of three methods: either there is a well-known broker, or the service-discovery request is broadcast, or it is multicast.  The first method sidesteps the core problem.  Specifically, how does the system discover the well-known broker?  The second method, common in local-area networks, is not feasible in a wide-area network.  The third method, while feasible in principle in wide-area networks, is stymied by the lack of deployment of multicast.  In addition to this core problem, they cannot easily enable location-based services, semantic discovery, provide adaptive services (e.g. for reliability guarantees), dynamically compose service, etc.

We believe that there is a significant role for telecommunication software engineering infrastructure in enabling wide-area service discovery, that is both adaptive, semantically based, and offers context-aware discovery.  Further, we believe that this cannot be easily performed in the absence of such an infrastructure.  In this project we propose to research techniques for service discovery that can be used within telecommunications infrastructures to provide wide-area adaptive service discovery, enabling semantic lookup and dynamic service composition.