iotivity 0.9.0
[platform/upstream/iotivity.git] / resource / releaseNotes / Sept17th2014.txt
1 Release notes
2 ****************************************************************************
3 Release date: Sept 17th, 2014.
4 OS: Ubuntu 12.0.4 and above
5 Requires boost version 1.55 to build.
6 Code buildable in gcc 4.6.3 and above.
7 NOTE: Boost is not distributed but should be installed in the Ubuntu machine.
8 *****************************************************************************
9
10 What is new?
11
12 --------------------------------------------
13 Class OCPlatform (Header file: OCPlatform.h)
14 --------------------------------------------
15
16 *****************
17 notifyAllObservers API
18 *****************
19
20 Previously, this API was named as 'notifyObservers'. This API is used for notifying base that resource's attributes have changed.
21 NOTE: This applies to server side functionality only.
22
23 *******************
24 notifyListOfObservers API
25 *******************
26
27 This new API allows server's entity handler to specify a list of observers to be notified. Parameters of this API include
28 resource handle, vector of observation IDs for which notification needs to be sent and OCResourceResponse pointer to fill the
29 response. Before this API is invoked by entity handler, server app would have finished processing queries for the associated
30 observers.
31
32 NOTE: This applies to server side functionality.
33
34 --------------------------------------------
35  Header file: OCStack.h (in base)
36 --------------------------------------------
37
38 *****************
39 OCNotifyAllObservers API
40 *****************
41
42 Previously, this API was named as 'notifyObservers'. This API is used for notifying base that resource's attributes have changed.
43
44 NOTE: This applies to server side functionality only.
45
46 *******************
47 OCNotifyListOfObservers API
48 *******************
49
50 This new API allows server's entity handler to specify a list of observers to be notified. Parameters of this API include
51 resource handle, pointer to array of observation IDs for which notification needs to be sent, number of observation IDS and
52 buffer for response. Before this API is invoked by entity handler, server app would have finished processing queries for the associated
53 observers.
54
55 NOTE: This applies to server side functionality.
56
57 ------------
58 Other Notes:
59 ------------
60
61 Security model is still open.
62 APIs have OCStackResult as return type. This is will indicate success or failure for the API operation.
63
64 Maximum length of URI supported is 64 bytes (sent from the client)
65 Maximum length of query supported is 64 bytes (sent from the client)
66 Maximum length of request and response from server for Ardunio is is 256 bytes
67 Maximum length of request and response from server for non-Ardunio is is 1024 bytes
68
69 OIC base now supports Arduino WiFi shield.
70 This support has been tested with Arduino Mega 2560 and with Arduino 1.0.5 WiFi library.
71 Please refer to oic-resource/csdk/README file for building OIC base with WiFi support.
72
73 As part of this release, clean up items included are:
74 Removal of header files, source files, folders which are not used as part of build. OCLib
75 More typedefs for clarity and readability.
76 More comments in sample files.
77
78 Bug fixes:
79 IOT-25
80 IOT-31
81 IOT-45
82 IOT-48
83 Minor bugs fixed
84 Memory leak issues fixed
85
86 Presence notifications:
87 OCStartPresence and OCStopPresence are updated so that if can be called when server comes online and offline respectively.
88 Notifications will now be sent when a resource is modified or deleted.
89 Now notifications to the app are sent only when there is a change in nonce.
90
91 Observe notifications:
92 When using OCNotifyListOfObservers, the memory for obsIdList and notificationJSONPayload is managed by the entity handler invoking the API.
93 The maximum size of the notification is 1015 bytes for non-Arduino platforms and 247 bytes for Arduino platforms.
94
95 Server sample (oic-resource/examples/simpleserver.cpp) has been updated to showcase invoking either notifyAllObservers or notifyListOfObservers.
96 Once the samples are built (see 'How to build' section below), if notifyAllObservers needs to be used, the app can be run as
97 './simpleserver 0"
98 Note: './simpleserver' without any input parameter will also invoke notifyAllObservers.
99
100 If notifyListOfObservers needs to be used, the app can be run as
101 './simpleserver 1'
102
103 Improvements:
104 OCRepresentation provides simpler interface to setValue and getValue from the apps. Apps do not need to use AttributeMap in OCRepresentation.
105 OCRepresentation now supports serialization/deserilization for primitive (numbers, booleans and strings), so app need not directly have to
106 deal with strings.
107
108 Known issues:
109 More than one presence notification is sent out when a new resource is created instead of one notification (IOT-49)
110 When OCNotifyListOfObservers is invoked with a list of observer IDs and if any of observer ID does not exist in the base, flow continues processing
111 other observe IDs.
112
113 -------------
114 How to build:
115 -------------
116
117 REFER https://oic-review.01.org/gerrit for more details on getting oic-resource repo.
118 If the code is not cloned:
119 Clone the oic-resource repo using this command: git clone oic:oic-resource
120 Clone the oic-utilities repo using this command: git clone oic:oic-utilities
121
122 NOTE: If the repo is already cloned, use 'git pull' inside oic-resource folder to get the latest code.
123
124 In repo oic-core, root folder ccf-opensource consists of 'OIC' folder.  Inside OIC folder there is a Makefile.
125
126 Before building, make sure to have contents from oic-utilities repo at the folder level where oic-resource is.
127
128 Inside oic-resource directory, use 'make'to build the entire OIC code. This would build the C++ SDK, core(i.e base) and samples.
129
130 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. All the executables for debug build
131 are in 'oic-resource/debug'.
132
133 --------
134 Samples:
135 --------
136
137 After building the code in oic-resource, executables for samples are in directory named 'oic-resource/samples/release'.
138 After building the code in oic-resource, executables are in directory named 'oic-resource/release'.
139 A sample for hosting a resource on a server and a sample for client for discovering resources are provided in the following paths:
140
141 Server sample location: oic-resource/examples/simpleserver.cpp
142 Client sample location: oic-resource/examples/simpleclient.cpp
143 Server and client mode (mode type both) location: oic-resource/examples/simpleclientserver.cpp
144
145 Sample with basic presence feature for server side: oic-resource/examples/presenceserver.cpp
146 Sample with basic presence feature for client side: oic-resource/examples/presenceclient.cpp