Embedded Web Services
The final step in a "Web services everywhere" vision is the participation of devices in the Web services world. Devices in general can be either requestors or providers of Web services, if they are nodes on a network, or have access to nodes on a network. The concept of a URI is ideal for this, because URIs can point to any kind of resource, including devices. Traditional computing devices, such as laptops, desktops, and servers can obviously easily play those roles, but what about other (not necessarily computing) devices? On the next practical level, PDAs and cell phones can be considered as computing devices. It is easy to see how these smaller computing devices can be requestors of Web services. But they can also be providers of services. For example, my PDA might make available my calendar as a Web service for some restricted list of users. As we go down this chain of devices, even devices we think of as non-computing devices can participate in a Web services world. Think for example of your home entertainment center providing a list of Web services to be used by other devices on your home LAN.
In order to make this scenario a reality, we need to be able to embed Web services and Web services clients into these devices. In addition, it would be very useful if these devices could interact with registries such as UDDI. The computing power and capacity of devices has been growing in conjunction with the decreasing footprint of embedded Java and other computing platforms. These two lines have already crossed to the point where realistic Web services can be embedded in devices, devices can act as UDDI clients, as Web servers, and even UDDI registries can be embedded on some devices.