# Devices Profile for Web Services

The Devices Profile for Web Services (DPWS) defines a minimal set of implementation constraints to enable secure web service messaging, discovery, description, and eventing on resource-constrained devices.
Its objectives are similar to those of Universal Plug and Play (UPnP) but, in addition, DPWS is fully aligned with Web Services technology and includes numerous extension points allowing for seamless integration of device-provided services in enterprise-wide application scenarios.

## DPWS standardization

The DPWS specification was initially published in May 2004 and was submitted for standardization to OASIS in July 2008. DPWS 1.1 was approved as OASIS Standard together with WS-Discovery 1.1 and SOAP-over-UDP 1.1 on June 30, 2009.
DPWS defines an architecture in which devices run two types of services: hosting services and hosted services. Hosting services are directly associated with a device, and play an important part in the device discovery process. Hosted services are mostly functional and depend on their hosting device for discovery.
In addition to these hosted services, DPWS specifies a set of built-in services:
* Discovery services: used by a device connected to a network to advertise itself and to discover other devices. Support of discovery has led some to dub DPWS as "the USB for Ethernet."
* Metadata exchange services: provide dynamic access to a device's hosted services and to their metadata.
* Publish/subscribe eventing services: allowing other devices to subscribe to asynchronous event messages produced by a given service.
DPWS builds on the following core Web Services standards: WSDL 1.1, XML Schema, SOAP 1.2, WS-Addressing, and further comprises WS-MetadataExchange, WS-Transfer, WS-Policy, WS-Security, WS-Discovery and WS-Eventing.
Microsoft's Windows Vista and Windows Embedded CE6R2 platforms natively integrate DPWS with a stack called WSDAPI, included as part of the Windows Rally technologies. Support for OSGi is on the way.

## Use cases

Because DPWS supports dynamic discovery and is part of the evolving vision of distributed applications that leverage WS-* standards, its application to automation environments is clear. At the 2007 Consumer Electronics Show, a “Next Gen” home was highlighted by an automation system, Life|ware from Exceptional Innovation, that uses DPWS to communicate with a lighting system, audio distribution system, security system, motorized shades, security cameras, thermostats, washers and dryers, and a motorized television mount. The show demonstrated tremendous consumer interest in the prospect of bringing controllable devices into the same environment as digital entertainment, and manufacturers are taking notice.
For many manufacturers, the first step towards DPWS adoption is the creation of a small “device bridge” between their native, usually proprietary, code and Web Services. At least 117 automation and AV products from 37 different vendors currently support DPWS either natively or through a bridge. At the International Security Controls (ISC) trade show, a major security company demonstrated a security system that supported DPWS, while the Kitchen and Bath Show (KBIS) saw two major appliance manufacturers demonstrating washers and dryers that communicated using DPWS. A communicative oven has been demonstrated at the International Building Show for the past two years. An even greater sign of the drive towards market acceptance of DPWS is the introduced-in-2006 "ConnectedLife.Home" home automation package offered by US retailer Best Buy. The package uses automation software and controllable devices that leverage DPWS for communications.

## Research projects driving DPWS adoption

Within the SIRENA project, under the auspices of the European research initiative ITEA, Schneider Electric produced an early DPWS implementation targeted at embedded devices. This implementation was open-sourced through the SOA4D.org (SOA for Devices) Website, from which the DPWS stack (both C and Java versions) and its add-ons (like WS-Management and WS-Security implementations) can be freely downloaded.
Also stemming from the SIRENA project, the "Web Services for Devices" (WS4D.org) website provides information, downloads and news about three DPWS implementations: one C implementation integrating gSOAP, one Java implementation using Axis, and another Java implementation that can use different Java editions, including Java ME.
Following the SIRENA project, a new European research project from ITEA, named SODA (Service Oriented Device and Delivery Architecture), went further into the development and implementation of an embedded DPWS stack for devices and associated tools.
The EU Research Project SOCRADES composed by heavyweights like ABB, SAP, Schneider Electric, and Siemens, are focusing on implementing, testing and piloting prototypes of DPWS-enabled devices in the industrial automation domain. Further extending this work is the EU AESOP Archived 2013-04-07 at the Wayback Machine project.
There are several proposals and/or projects having worked on an integration of DPWS with OSGi, i.e. mainly providing an implementation for this Java framework.