CARVIEW |
DDR Simple API Implementation Report
This is a summary of the status of known implementations of the W3C MWI DDWG DDR Simple API as at 19 June 2008. The list of features in the test summary includes all those for which an executable implementation must provide working classes/methods. The specification language is Java, and all Java implementations are expected to use the interface source code referenced by the specfication.
At the time of this report, six (6) implementations were presented, of which three (3) were bound to executable solutions:
- The Open Source "MyMobileWeb" was presented by Telefónica I+D. This included a live demonstration of a Web-interface to the API implementation.
- The "DeviceAtlas" product was presented by dotMobi. This product includes a publically downloadable implementation of the API to provide access to the on-line repository.
- A preview of the "Mobile Interaction Server" DDR Accessor was presented by MobileAware. This is an implementation of the API working in parallel with existing repository access features.
- Three non-Java versions of the API were presented by Fundacion CTIC. The IDL and WSDL versions are already referenced informatively from the specification. A draft C# version was also presented, which is intended to have an executable back-end.
In addition a version of the API has been made available in Perl.
Presentations and demonstrations were witnessed by DDWG participants [member-only minutes], group chair (Rotan Hanrahan) and by members of W3C Team (Matt Womer, Philipp Hoschka).
Telefonica | dotMobi | MobileAware | CTIC | CTIC | CTIC | |
Implementation | MyMobileWeb online demo |
DeviceAtlas site |
MIS presentation |
C# | IDL | WSDL |
Language | Java | Java | Java | C# | IDL | WSDL |
Verification (1) | Compile, Test, Inspect | Compile, Inspect | Compile, Test | Compile, Inspect | Compile, Inspect | Compile, Inspect |
Executable (2) | Yes | Yes | Yes | No | No | No |
Product | Open Source | Commercial & Free | Commercial | Public | Public | Public |
Tested | Yes | Yes | Yes | No | No | No |
TESTABLE RESULTS: | ||||||
#sec-Evidence | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-Evidence-exists | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-Evidence-get | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-Evidence-put | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-PropertyName | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-PropertyName-getLocalPropertyName | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-PropertyName-getNamespace | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-PropertyRef | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-PropertyRef-getAspectName | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-PropertyRef-getLocalPropertyName | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-PropertyRef-getNamespace | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-PropertyValue | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-PropertyValue-exists | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-PropertyValue-getPropertyRef | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-PropertyValue-getXXX (3) | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-PropertyValues | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-PropertyValues-getAll | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-PropertyValues-getValue | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-Service | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-Service-getDataVersion | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-Service-getImplementationVersion | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-Service-getPropertyValue-1 | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-Service-getPropertyValue-2 | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-Service-getPropertyValue-3 | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-Service-getPropertyValue-4 | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-Service-getPropertyValues-1 | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-Service-getPropertyValues-2 | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-Service-getPropertyValues-3 | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-Service-getPropertyValues-4 | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-Service-initialize | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-Service-listPropertyRefs | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-Service-newHTTPEvidence-1 | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-Service-newHTTPEvidence-2 | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-Service-newPropertyName-1 | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-Service-newPropertyName-2 | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-Service-newPropertyRef-1 | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-Service-newPropertyRef-2 | Pass | Pass | Pass | n/a | n/a | n/a |
#sec-Service-newPropertyRef-3 | Pass | Pass | Pass | n/a | n/a | n/a |
Notes:
(1) The means of verification include:
- Compile: The implementation compiles successfully with the normative interface (in Java) or a direct port of the normative interface to an equivalent binding (all other languages).
- Test: An executable instance of the implementation has been exercised by the covering test class (in Java) as agreed by the group, or by an equivalent covering test (for non-Java).
- Inspect: A public executable instance of the implementation iillustrating the use of the API is available for inspection, or the source code is freely available for public inspection.
(2) The implementation is executable if it is accompanied by a back-end solution that interacts via the API in the specified manner.
(3) At least four of the data types are retrieved in the test, one of which must be the Enumeration type.