Cling is a UPnP-compatible software stack for Java environments to interact with other UPnP-devices (discover other, control other, beeing controlled by others)
From the official website: http://4thline.org/projects/cling/
Cling is a UPnP-compatible software stack for Java environments.
Main modules of Cling are:
Cling Core
An embeddable Java library that implements the UPnP Device Architecture 1.0. Use Cling Core to expose services with a UPnP remoting interface, or to write control point applications that discover UPnP devices and utilize their services. You can also integrate Cling Core as an Android UPnP/DLNA library in your applications (platform level 7/2.1 required). The full source code of the Android UPnPBrowser example of the manual can be found here. You can see the application in action in this video.
Cling Support
Optional classes and useful infrastructure for developing and controlling UPnP services with Cling Core; extensions that simplify working with UPnP media servers and renderers, NAT port mapping on routers, etc.
Cling Workbench
A desktop application for browsing UPnP devices and interacting with their services, including an HTTP gateway and WAN/LAN bridge.
Cling MediaRenderer
Standalone UPnP MediaRenderer, based on gstreamer.
wikipedia: Universal Plug and Play (UPnP) is a set of networking protocols that permits networked devices, such as personal computers, printers, Internet gateways, Wi-Fi access points and mobile devices to seamlessly discover each other's presence on the network and establish functional network services for data sharing, communications, and entertainment.