From e9403ce6d4d7a1a0ac8d12c5acc876af7f7a8f76 Mon Sep 17 00:00:00 2001 From: Sudarshan Prasad Date: Sat, 6 Dec 2014 17:04:11 -0800 Subject: [PATCH] Added release notes for Dec 6th release. Change-Id: I86359fb2072a1a910cd405c8b24cfccbac700da9 Signed-off-by: Sudarshan Prasad --- resource/releaseNotes/Dec6th2014.txt | 238 +++++++++++++++++++++++++++++++++++ 1 file changed, 238 insertions(+) create mode 100644 resource/releaseNotes/Dec6th2014.txt diff --git a/resource/releaseNotes/Dec6th2014.txt b/resource/releaseNotes/Dec6th2014.txt new file mode 100644 index 0000000..266bacf --- /dev/null +++ b/resource/releaseNotes/Dec6th2014.txt @@ -0,0 +1,238 @@ +Release notes +**************************************************************************** +Release date: Dec 6th, 2014. +OS: Ubuntu 12.0.4 and above +Requires boost version 1.55 to build. +Code buildable in gcc 4.6.3 and above. +NOTE: Boost is not distributed but should be installed in the Ubuntu machine. +***************************************************************************** + +Release commit number: de31af + +What is new? + +Features: +--------- + +Slow Response: +-------------- +This release includes slow response feature which allows a resource entity handler to provide +a 'slow response' to a client request. If a request is received but the server cannot response +immediately (example, response data is not available), then the server can response at a later +time. The same API is used for both immediate and slow response. + +GET/PUT request on the batch interface of a collection resource using the default collection +entity handler will result in each pointed resource’s entity handler being invoked, after which: +a) if all pointed resources of the collection are local and not-slow, an aggregated +response will be sent +b) if collection includes slow local resource(s), an aggregated response is sent only after +the slowest resource’s entity handler responds with a payload. If one or more slow resource +entity handlers do not respond, no response is sent to the request, i.e. there is no timeout +mechanism in current release + +Samples demonstrating slow response: +simpleserver and simpleclient in C++ +ocserverslow and occlientslow in C + +Security: +---------- +1. OCStack is compiled with security only if a valid libtinydtls.a is available +under oic-resource/resource/csdk/tinydtls directory. +2. This release provides an API to set device identity and PSK credentials. +3. Security is NOT supported for Arduino platform. + +JSON serialization using Cereal libray +-------------------------------------- +This release includes modifications which consists of using +open source library cereal to perform JSON serialization +and de-serialization in C++ layer. (NOTE: previously we were +using boost::property tree for JSON parsing) + +NOTE: For a nested (array of array of array..) JSON value, we limit to 3-level deep nesting. +Refer AttributeValue.h for more details. + +------------ +API changes: +------------ + +-------------------------------------------- +Class OCPlatform (Header file: OCPlatform.h) +-------------------------------------------- + +***************** +sendResponse API +***************** + +This new API allows the application entity handler to send response to a request. +This API is used in sending a response immediately (if available) or in cases of +slow response. Due to this change, signature of application entity handler has +been modified. This introduces changes in application entity handler code. +Please see below. +All C++ samples demonstrate the use of sendResponse API. + +-------------------------------------------- +Header file: OCApi.h +-------------------------------------------- + +typedef std::function)> EntityHandler; + +Signature of application entity handler has changed. New signature consists only of +one parameter which is OCResourceRequest pointer. Response is formed and sent via +sendResponse API. All C++ samples are updated to showcase this modification. + +---------------------------------------------------------- +Class OCResourceRequest (Header file: OCResourceRequest.h) +---------------------------------------------------------- + +******************** +getRequestHandle API +******************** + +This new API allows the application entity handler to retrieve request handle +from the incoming request. +All C++ samples demonstrate the use of getRequestHandle API. + +********************* +getResourceHandle API +********************* + +This new API allows the application entity handler to retrieve resource handle +from the incoming request. +All C++ samples demonstrate the use of getResourceHandle API. + +------------------------------------------------------------- +Class OCResourceResponse (Header file: OCResourceResponse.h) +------------------------------------------------------------- + +******************** +setRequestHandle API +******************** + +This new API allows the application entity handler to set request handle in +the response. +All C++ samples demonstrate the use of setRequestHandle API. + +********************* +setResourceHandle API +********************* + +This new API allows the application entity handler to set resource handle in +the response. +All C++ samples demonstrate the use of setResourceHandle API. + +********************* +setResponseResult API +********************* + +This new API allows the application entity handler to set result in +the response. +All C++ samples demonstrate the use of setResponseResult API. + +------------------------------------------------------------- +Header file: OCStack.h +------------------------------------------------------------- + +*************************** +OCDoResponse API +*************************** + +This new C API allows the application entity handler to send response to a request. +This API is used in sending a response immediately (if available) or in cases of +slow response. + +------------------------------------------------------------- +Header file: OCSecurity.h +------------------------------------------------------------- + +*************************** +OCSetDtlsPskCredentials API +*************************** + +This new API allows to set DTLS PSK credentials. + +------------ +Notes: +------------ + +Known issues: +------------- +1. When observation is used, server shutdown causes an error (segmentation fault). + +Active discovery- +1. In case of unicast presence with rt, only one rt is permitted per IP address for +subscribePresence. If multiple subscriptions are done, only first subscribePresence’s rt is used. +2. For multicast presence, server shutdown (ungraceful) scenario is not notified to the client, +but graceful shutdowns are notified. +3. IOT 85 + +Issues Fixed: +------------- +1. IOT 65 (Stopping presence subscription gets infinite callback to handlePresence) +2. IOT 79 (3 Presence Notifications when a resource is created on the server) + +General notes: +-------------- +Maximum length of URI supported is 64 bytes (sent from the client) +Maximum length of query supported is 64 bytes (sent from the client) +Maximum length of request from client and response from server for Arduino is is 256 bytes +Maximum length of request from client and response from server for non-Ardunio is is 1024 bytes + +OIC base supports Arduino WiFi shield. +This support has been tested with Arduino Mega 2560 and with Arduino 1.0.5 WiFi library. +Please refer to oic-resource/csdk/README file for building OIC base with WiFi support. + +------------- +How to build: +------------- + +REFER https://oic-review.01.org/gerrit for more details on getting oic-resource repo. +If the code is not cloned: +Clone the oic-resource repo using this command: git clone oic:oic-resource + +NOTE: If the repo is already cloned, use 'git pull' inside oic-resource folder to get the +latest code. + +In repo oic-resource, root folder consists of 'resource' folder. Inside OIC folder there +is a Makefile. + +Inside oic-resource directory, use 'make'to build the entire OIC code. This would build the C++ SDK, +core(i.e base) and samples. + +Use 'make BUILD=debug' to build the entire OIC code in debug mode. This would build the C++ SDK, +core(i.e base) and samples. + +-------- +Samples: +-------- + +A basic sample for hosting a resource on a server and a sample for client for discovering resources +are provided here: +Simple server sample location: oic-resource/examples/simpleserver.cpp +Simple client sample location: oic-resource/examples/simpleclient.cpp +Server and client mode (mode type both) location: oic-resource/examples/simpleclientserver.cpp +Simpleserver and simpleclient samples also provide examples for doing POST operation. +Simpleserver also demonstrates slow response case for a GET request. + +Garage samples provide usage of OCRepresentation, get/set attribute values +oic-resource/examples/garageclient.cpp +oic-resource/examples/garageserver.cpp + +Fridge samples provide usage of constructResourceObject API, std bind +(for mapping request and responses), default +device entity handler, header options support and Delete operation. +oic-resource/examples/fridgeclient.cpp +oic-resource/examples/fridgeserver.cpp + +Presence samples provides examples to use presence APIs +Sample with basic presence feature for server side: oic-resource/examples/presenceserver.cpp +Sample with basic presence feature for client side: oic-resource/examples/presenceclient.cpp + +Room samples provides examples to use resource collection. +oic-resource/examples/roomclient.cpp +oic-resource/examples/roomserver.cpp + +After building the code in oic-resource, executables for samples are in directory named +'oic-resource/samples/release'. +After building the code in oic-resource, executables are in directory named 'oic-resource/release'. + -- 2.7.4