UPNPLib is a Java library for the UPNP protocol.
UPNP is a protocol based on SSDP to discover UPNP compliant devices on a network. Specific search can be made to only look for a specific type of device or for all devices available.
Once a device is found on the network, the client can retreive the device description ( devices state variables and available operations ) and start to interact with it using XML messages. UPNP devices types capabilities are usually available here.
UPNP is born in 1999 and seems to start to find a larger audience since most new Broadband ADSL router modems are UPNP compliant.
Everything started when the JAFS project needed to have a mechanism to automatically open server ports on a NAT router so that it become accessible from the internet without needs to go hack the router configuration to manually open the required ports ( when admin is aware the ports needs to be open :o) ). SNMP could have been a technology used for such purpose but unfortunatly there are some pitfalls :
1. SNMP is not always implemented on entry level routers.
2. SNMP interface to open ports on a router is not standardized which leads to develop specific SNMP routine for each SNMP aware routers vendors.
3. No good open source libraries for SNMP available.
UPNP was another option that has a big advantage : There is a defined interface in IGD devices (Internet Gateway Device) to do such job which means that all IGD UPNP devices could work with the same piece of code. Almost all new ADSL broadband routers contains the UPNP™ IGD technology, since we did not found any good Java UPNP libraries so we decided to create our own.
What's New in This Release:
· This release is mainly a bugfix one, which should improve compatibility with UPNP Internet Gateway devices used for NAT port mapping on XDSL devices.