- From: <richard.tibbett@orange-ftgroup.com>
- Date: Wed, 23 Sep 2009 12:40:23 +0200
- To: <dzung.d.tran@intel.com>, <public-device-apis@w3.org>
Hi, I'm unsure on these requirements, partly because they may be too much to begin with. I would put the emphasis of requirements on to the fundamentals of the system events API framework: (1) All system events MUST be accessible in an asynchronous/non-blocking way. <----- I don't need documentation to check whether events are sync or async. They are all non-blocking and design + development is greatly simplified. (2) All system events MUST specify a timeout interval <----- This requiremenet implicitly suggests that each system event will require a 'onSuccess' and 'onTimeout' callback (or equivalent methods). If the timeout interval is reached the onTimeout callback is triggered. N.B. There could also be a third callback 'onFailure' to handle general errors from the system event request or underlying platform (e.g. 'Permission Denied'). (3) All system events MUST be watchable (i.e. ongoing async updates can be received) <------ i.e. I can watch system events for a specified period of time and receive async updates at a specified interval of time with that specified period of time. See (4) below for parameter requirements of watchable events. (4) All watchable system events MUST specify a polling interval (e.g. 60 seconds) and, optionally, a polling timeout interval (10 cycles) <------ e.g. I will receive a system event update every 60 seconds for a period of 10 minutes. The polling timeout interval is optional so if not specified then I will be watching a system event indefinately (or until clear in (5) below is called). (5) All watchable system events MUST specify a timeout interval <------ Same as (2). This implies that watchable events must have two callback methods (one for success and one for timeout/general errors to be registered). (5) All watchable system events MUST be capable of being cleared <------ I can wait for a watchable to complete or manually tear down the async process with a clear method. (6) All system events MUST be independently accessible. <----- This is a security and policy consideration. I may want to share my system idle time with a service but not allow that same service to e.g. see how much storage space I'm still running. This requirement therefore is that Security and Policy for system events should be granular. Then there are the practical considerations: - An implementation of our requirements MUST be realisable on the ubiquitous web. <----- system events explicitly defined MUST apply to ALL devices. I'm unsure on whether we should then have some kind of different system event profiles for different devices. A case in point is that a 'vibrate'/'excite' property is not of much use on the desktop, but could be valuable on a mobile. - Implementations of our requrements MUST be implementable on different platforms and devices. <----- this is subtly different to the previous consideration. We could specify X number of system events, but these events must be consistently exposed from ALL underlying platforms/devices. E.g. if we are unable to 'excite' a specific device (because the underlying platform does not expose APIs to do this), then a 'vibrate' system event is largely useless in the context of all devices. Regarding the specific system events in scope, I have no idea...but if a system event can satisfy both of the practical considerations above then it's likely to be a good candidate for our API. What is likely is that the list will be smaller initially based on these practical considerations. We may lose niche or platform-specific system events but will gain interoperability on a smaller set of system events. That's a tradeoff that we have to discuss... br/ Richard ________________________________ From: public-device-apis-request@w3.org [mailto:public-device-apis-request@w3.org] On Behalf Of Tran, Dzung D Sent: 22 September 2009 23:00 To: public-device-apis@w3.org Subject: Requirements: Issue-14 Gathering requirements for System Information and Events API Requirements for System Information and Events API * Any action that might take more than 10 milliseconds must be available through an asynchronous interface. * Any action that is expected to take less than 100 milliseconds should be available with a synchronous interface. * Any synchronous operation that might take more than a millisecond must provide the option to specify a timeout interval. * Actions that vary in how long they take and meet both categories should be available in both synchronous and asynchronous variants. * Any continuously varying sensor must allow one to ask to be told when it changes and must allow one to specify the maximum frequency with which such change events should be delivered. * Any change event must include a field saying how long it was since the last time the sensor was checked (not the last time the event was fired). * A conforming implementation must implement the NavigatorPlatform interface. * A conforming implementation must implement the NavigatorPlatform Power interface. * A conforming implementation must implement the NavigatorPlatform Connection interface. * A conforming implementation should implement the NavigatorPlatform Cpu interface. * A conforming implementation must implement the NavigatorPlatform Storage interface. * A conforming implementation must implement the NavigatorPlatform Display interface. * A conforming implementation must implement the NavigatorPlatform Input interface. * A conforming implementation should implement the NavigatorPlatform Geolocation interface. * A conforming implementation must implement the NavigatorPlatform Audio interface. * A conforming implementation must implement the NavigatorPlatform Video interface. * A conforming implementation must implement the NavigatorPlatform Thermal interface. * A conforming implementation must implement the NavigatorPlatform AmbientLight interface. * A conforming implementation should implement the NavigatorPlatform AmbientSound interface. * A conforming implementation must implement the NavigatorPlatform AmbientPressure interface. * A conforming implementation must implement the NavigatorPlatform Proximity interface. * A conforming implementation must implement the NavigatorPlatform Movement interface. Regards Dzung Tran, Intel Corporation
Received on Wednesday, 23 September 2009 10:41:02 UTC