Re: [Widgets] R21. Resource Declarations. Was RE: Request for Comments on Widgets 1.0 Requirements Last Call WD

2008-09-04 Thread Marcos Caceres

Hi Bryan,
On Thu, Sep 4, 2008 at 12:06 AM, Sullivan, Bryan [EMAIL PROTECTED] wrote:
 Hi Marcos,
 My response is late (the review happened just before vacation and other 
 things...), but here it is:

 I'm not sure there is a semantically useful way to declare/assess resource 
 dependencies (currently), but that would be the goal. In the meantime simple 
 disclosure is better than the use it if it works for you, otherwise get rid 
 of it approach. At least the user may be able to understand the significance 
 of the disclosure.

 The examples I provided in the proposal illustrate common resource constraint 
 cases:

 a) automated operation

 a.1) network-intensive applications can cost users a lot of money (a critical 
 resource) or drain the device battery (another critical resource). 
 Applications that are designed to operate all the time or in the background 
 (e.g. using Ajax methods) should disclose this so that the user can decide if 
 that's what they want to allow. If possible, the extent of resource usage 
 (frequency of network requests, typical amount of data exchanged) should be 
 disclosed.

I fully understand that problem but this depends on the author being
honest and making an informed subjective judgment on resource
use/abuse of a widget. If I was an author, and I knew that this might
mean that some people won't use my app, then I would not include such
declarations. In other words, this system is too open to abuse/neglect
as the author can simply lie and say that their widget is awesome and
perfect (same problem that is seen with CC/PP: I can simply lie, and
I'm sure many sites do and there is no legal consequence to lying). My
position is that it should be up to the widget user agent to inform
the user that a Widget is using up too many resources.

I hate to subscribe to technological determinism but, another factor
is phones in two years may, for example, come with 20 processors and a
built in solar-nuclear-thermal-battery-reactor(tm) and carriers will
give everyone unlimited download/bandwidth, so things that are
considered resource intensive today, will mean very little tomorrow
or ten years from now.

 a.2) screen updates (e.g. for phonetop widgets) and memory updates (e.g. 
 managing content and variables) can be battery-affecting. Application 
 designers should have some understanding of the typical effect that their 
 applications will have on the devices they target, and make at least useful 
 disclosures of such effects.


Again, I still think that this should be handled by widget user agents
for the reasons above.

 b) storage requirements: Web applications may manage local persistent (e.g. 
 flash) storage of content related to the application, and may have a 
 significant impact on the operating memory (e.g. ram) of the device. While 
 user choice in use of the application may significantly affect the storage 
 requirements, the developer should have some understanding of the typical 
 storage requirements. The user could then decide based upon the disclosure, 
 whether they want to allocate a potentially significant amount of storage to 
 this application.


The Widget 1.0 Updates specification defines an element that allows
the user to be informed of the size of the update they are about to
install. Also, a widget user agent could make a HEAD request to a
server prior to downloading a widget package to determine its size...
though I can see this doesn't exactly cover your use case. Regardless,
I still see this as an implementation detail.

 The real goal as I mentioned would be that a policy management engine could 
 use the declarations to determine if the application would exceed a certain 
 policy (which the user could manage as preferences). Semantic assessment of 
 impact would resolve the variable relative impact problem (or at least 
 reduce it), since the assessor would know how to relate the resource 
 declarations in the context of the host device.


I agree, and some limited provisions are in place. But I still think
the model is fundamentally flawed if it depends on the author being
honest.

 In the meantime however at least some schema-defined disclosure of resource 
 impacts could be used in a widget installer UI to inform the user of the 
 impacts that the developer is aware of.


I think such things are best left to be described by publishers and
the end-user community. I.e., publishers already make it possible for
users of widgets to leave comments on websites that describe if a
widget sucks, uses too many resources, is slow on some particular
device, etc... By looking at a typical software download site, I think
its pretty clear that users make judgments about whether they download
a applications based on an application's popularity and the comments
left by others... or from other trusted systems of recommendation
(e.g. a friend tells you that an app is really useful)... except for
the poor souls who are tricked into downloading spy/malware, which the

RE: [Widgets] R21. Resource Declarations. Was RE: Request for Comments on Widgets 1.0 Requirements Last Call WD

2008-09-03 Thread Sullivan, Bryan

Hi Marcos,
My response is late (the review happened just before vacation and other 
things...), but here it is:

I'm not sure there is a semantically useful way to declare/assess resource 
dependencies (currently), but that would be the goal. In the meantime simple 
disclosure is better than the use it if it works for you, otherwise get rid of 
it approach. At least the user may be able to understand the significance of 
the disclosure. 

The examples I provided in the proposal illustrate common resource constraint 
cases:

a) automated operation

a.1) network-intensive applications can cost users a lot of money (a critical 
resource) or drain the device battery (another critical resource). Applications 
that are designed to operate all the time or in the background (e.g. using Ajax 
methods) should disclose this so that the user can decide if that's what they 
want to allow. If possible, the extent of resource usage (frequency of network 
requests, typical amount of data exchanged) should be disclosed.
 
a.2) screen updates (e.g. for phonetop widgets) and memory updates (e.g. 
managing content and variables) can be battery-affecting. Application designers 
should have some understanding of the typical effect that their applications 
will have on the devices they target, and make at least useful disclosures of 
such effects. 

b) storage requirements: Web applications may manage local persistent (e.g. 
flash) storage of content related to the application, and may have a 
significant impact on the operating memory (e.g. ram) of the device. While user 
choice in use of the application may significantly affect the storage 
requirements, the developer should have some understanding of the typical 
storage requirements. The user could then decide based upon the disclosure, 
whether they want to allocate a potentially significant amount of storage to 
this application.

The real goal as I mentioned would be that a policy management engine could use 
the declarations to determine if the application would exceed a certain policy 
(which the user could manage as preferences). Semantic assessment of impact 
would resolve the variable relative impact problem (or at least reduce it), 
since the assessor would know how to relate the resource declarations in the 
context of the host device.

In the meantime however at least some schema-defined disclosure of resource 
impacts could be used in a widget installer UI to inform the user of the 
impacts that the developer is aware of.

Best regards,
Bryan Sullivan | ATT
-Original Message-
From: Marcos Caceres [mailto:[EMAIL PROTECTED] 
Sent: Thursday, August 07, 2008 10:05 PM
To: Sullivan, Bryan; public-webapps
Subject: [Widgets] R21. Resource Declarations. Was RE: Request for Comments on 
Widgets 1.0 Requirements Last Call WD

Hi Bryan,
I'm wondering if you could help me understand R21. Resource
Declarations, which was proposed in your feedback [1]:

 R21. Resource Declarations

 A conforming specification must specify a means for declaring that the
 instantiated widget will have an impact on sensitive device or network
 resources, which may impact device performance or the user experience.

 Motivation:

 Security, current development practice or industry best-practices.

 Rationale:

 To declare the resource requirements of the widget, allowing the
 widget user agent to respond accordingly by adjusting its resource
 policies and warning the end-user. Example of resource sensitive
 services that could require notification are automated operation
 involving network access or screen display, which can impact overall
 service cost and device battery life; or persistent storage
 requirements, which can affect device performance and reliability of
 the environment for other applications.


I'm not sure I understand, from a developer's perspective, how I would
declare resource use particularly because it seems so relative and
subjective. For example, if I had created a widget and tested it on my
super-phone I might think that it is not very resource demanding (this
might be because the widget implementation running on my phone is very
efficient and light weight). However, another widgets implementation
might not be as efficient and hence it may use a lot of resources (but
this is not the fault of the widget, it is the fault of the
implementaiton). Another problem is that one phone might have limited
resources by design (eg. limited RAM and storage) or because other
applications are hogging resources.

Maybe the requirement should be that the user agent should report to
the user when a widget is hogging resources; however this seems more
like something that would be best left to implementers.

Can you maybe show us a usage scenario for what you have in mind for
this requirement. How do you envision this would work?

Kind regards,
Marcos

[1] http://lists.w3.org/Archives/Public/public-webapps/2008JulSep/0298.html

-- 
Marcos Caceres
http://datadriven.com.au



[Widgets] R21. Resource Declarations. Was RE: Request for Comments on Widgets 1.0 Requirements Last Call WD

2008-08-07 Thread Marcos Caceres

Hi Bryan,
I'm wondering if you could help me understand R21. Resource
Declarations, which was proposed in your feedback [1]:

 R21. Resource Declarations

 A conforming specification must specify a means for declaring that the
 instantiated widget will have an impact on sensitive device or network
 resources, which may impact device performance or the user experience.

 Motivation:

 Security, current development practice or industry best-practices.

 Rationale:

 To declare the resource requirements of the widget, allowing the
 widget user agent to respond accordingly by adjusting its resource
 policies and warning the end-user. Example of resource sensitive
 services that could require notification are automated operation
 involving network access or screen display, which can impact overall
 service cost and device battery life; or persistent storage
 requirements, which can affect device performance and reliability of
 the environment for other applications.


I'm not sure I understand, from a developer's perspective, how I would
declare resource use particularly because it seems so relative and
subjective. For example, if I had created a widget and tested it on my
super-phone I might think that it is not very resource demanding (this
might be because the widget implementation running on my phone is very
efficient and light weight). However, another widgets implementation
might not be as efficient and hence it may use a lot of resources (but
this is not the fault of the widget, it is the fault of the
implementaiton). Another problem is that one phone might have limited
resources by design (eg. limited RAM and storage) or because other
applications are hogging resources.

Maybe the requirement should be that the user agent should report to
the user when a widget is hogging resources; however this seems more
like something that would be best left to implementers.

Can you maybe show us a usage scenario for what you have in mind for
this requirement. How do you envision this would work?

Kind regards,
Marcos

[1] http://lists.w3.org/Archives/Public/public-webapps/2008JulSep/0298.html

-- 
Marcos Caceres
http://datadriven.com.au