Subject: [Sipping] Comments to draft-garcia-sipping-resource-sharing-framework-01

From: "Willekens, Marc" <[email-masked]>
Date: Fri, 9 Mar 2007 17:29:48 +0100

Hi,
 
Some specific comments/question/remarks to the draft:
http://www.ietf.org/internet-drafts/draft-garcia-sipping-resource-sharing-framework-01.txt <http://www.ietf.org/internet-drafts/draft-garcia-sipping-resource-sharing-framework-01.txt> 

[Page 3], 1 Introduction, §1

What about notifications for a state change of a resource? Is it something as: 

- Subscriptions to new files becoming available?

- Subscriptions to changes of the content of a certain file?

- Subscriptions to resources exceeding a certain threshold? E.g. subscribe to get a notification when the temperature sensor resource of a certain device comes above a certain threshold?

- Subscriptions to a list of printers and get a notification when a printer becomes idle or busy?

[Page 3], 1 Introduction, §2

"The resource metadata is stored in the peer nodes."

Is it stored in all the peer nodes, or in the super-nodes? Is this info replicated over the different nodes with the same content, or is the content (metadata) split-up in different parts and stored in a distributed way over the different nodes with the ability to recover the complete content when one of the nodes fails?

In the example, how does Bob know he can use the keyword "vacation"?  Is this only related to the content made available by Alice or is it valid to every resource made available by every part of the p2p community with the keyword "vacation"? 

Is the search criteria sent to the super-nodes or to all nodes? I assume to the super-nodes, else the question can be posed why Bob has not received the information as a peer-node from the Publish from Alice to the p2p network? What's the difference for all the received notifications from the different peer nodes by Bob? Do they all refer to the same content made available by Alice?

And what is actually stored in the network: only the metadata or also the content itself? What's the advantage when only the metadata is stored in the p2p network but the actual content is kept in the device of Alice?

[Page 3], 1 Introduction, §3

What's the centralized server? Is this really a central server, or is it distributable function which is provided by one of the peer nodes? E.g. all or a subset of the nodes which can fulfill the role of centralized server but only one of them actually performing this function and automatically taken over by another node when the actually performing server becomes unavailable?

The central server can have an advantage to aggregate the metadata. But what's about the main content? Is it also stored in the central server or is it kept in the end-device, or will it also become part of the p2p network to allow a more efficient retrieval of the information without placing a burden on the specific end device? 

[Page 4], 1 Introduction, §4

Hybrid approach: same question: where will the main content be kept? If it is kept in the secondary nodes, then there is still a burden on these devices even if SIP is used to minimize the protocol implementation in endpoints with limited resources.

[Page 4], 2 Definitions, §1

"Resource directory: a device storing the resource descriptors...".

Are a resource and a resource directory always bound to device? Is it not the intention to use the p2p concept to decouple the constraint of a resource strictly bound to a device?

[Page 5], 3.1 File publication, §2

"The actual files are not transmitted until someone requests them".

When they are requested, the resource will be retrieved from the end-device and then made available in the p2p network? Or is every request for the resource made towards the end-device? In last case, there can be a big burden on the end-device when many community members want to retrieve the pictures.

[Page 6], 3.2 File Search, §1

"... search results back to Bob's SIP UA in a series of notifications".

What is meant with a series of notifications? Does the ESC not make any kind of aggregations of different notifications?

Are the thumbnails also part of the metadata generated by the source (Alice phone)? Or are these thumbnails generated by a function in the p2p network?  

[Page 6], 3.3 File Directory..., §1

"In this case he can just subscribe to the presence information of Alice and his other friends".

Is it "his other friends" or can it can it also be "her" (i.e.) Alice friends?

[Page 6], 3.3 File Directory..., §2

What will be the influence on generated network traffic with this concept?  Is this not generating too many PUBLISH and NOTIFY messages?

[Page 7], 3.4 File Download..., §1

"Bob's SIP UA sends a download request to Alice's SIP UA."

How will this be done? Which protocol will be used for this (MSRP)? Will it be a new method in a SIP message? Is the download request send directly to Alice's SIP UA. Maybe you can add a reference to §7.

"Alice's terminal will automatically approve the request ..."

How is this done? What kind of authentication is used to approve the request? Make reference to draft-garcia-sipping-resource-event-package §3.6.1, 3.6.2?

[Page 7], 4 Resource publication.., §1

Is it one out of two type of PUBLISH methods or can both methods also be provided in parallel?  Are these then 2 separate PUBLISH methods from the end-device to the ESC?

[Page 8], 4.1.1 Initial resource metadata publication, §3

Why is the size of the file part of the invariant part and the file name, creation/modification data part of the instance-specific part? Can you clarify this? What about the identical copy of the file? Is the EPA sending different copies of the same file to the ESC? Why and for what purpose?

[Page 9], 4.1.3 Actions performed by the ESC, §1

Is the given example the "hybrid approach" by which the ESC is part of a p2p network and the EPA in the UE device is only the access towards the p2p network but not forming part of it? How can the relation and addressing be done between the EPA and the ESC?

[Page 10], 4.2 Resource Publication, §3

Is the ESC is this case the "presence server"?

[Page 11], 5 Search operation, §1

Is the search operation only a "pull" method or can it also be a "push method with a Subscription for a certain amount of time, e.g. when new resources are added which also fulfills the search criteria?

Maybe you can add a reference to  document draft-garcia-sipping-resource-event-package §3.4.

[Page 13], 5.3 Propagating searches, §1

How is the distribution of the metadata done? Distribution for different resources or can the distribution also be done for one specific resource? And what is distributed? The whole set of metadata or are only certain parts of the metadata distributed over different nodes?

[Page 14], 5.4 Terminating a search request, §2

Does not imply that a SUBSCRIBE for a pull method can't be used? 

[Page 16], 6 Directory operations, §1

The resource is bound to the device of a presentity. What if the presentity has the same resource available on different devices?

[Page 18], 8 Security considerations, §1

How can all the policing and authorization be done on limited end-devices? How can a DoS attack be avoided?

Best regards,
Marc Willekens.
_______________________________________________
Sipping mailing list  https://www1.ietf.org/mailman/listinfo/sipping
This list is for NEW development of the application of SIP
Use [email-masked] for questions on current sip
Use [email-masked] for new developments of core SIP

---

From: Miguel Garcia <[email-masked]>
Date: Mon, 12 Mar 2007 16:13:06 +0200

Hi Marc:

Thanks for your comments. See some inline discussion.

Willekens, Marc wrote:
> http://www.ietf.org/internet-drafts/draft-garcia-sipping-resource-sharing-framework-01.txt
>  
>  
> 

I think you would need to subscribe to the SIP URI of the user who is 
sharing. Then, when new shared resources become available, you will get 
notifications.

> - Subscriptions to changes of the content of a certain file?

There are two ways where you can achieve this, each one with different 
properties

a) You subscribe to the SIP URI of the user who share the resources and 
provide a filter to get notifications when there are changes of that 
file/resource.

b) You subscribe to the URI of the resource. For example, this could be 
a magnet URI (something that is not described yet in the document), 
which is stored in a distributed hash table. A good explanation of 
magnet URIs are:

http://en.wikipedia.org/wiki/Magnet:_URI_scheme

The interesting property here is that the hash of the file is contained 
in the URI, so this would work nicely in a P2P environment, although it 
wouldn't work that well in the centralized model.

> - Subscriptions to resources exceeding a certain threshold? E.g. 
> subscribe to get a notification when the temperature sensor resource of 
> a certain device comes above a certain threshold?

Yes, this is a regular subscription plus a filter (see RFC 4660 and 4661 
for a description of filters). We also cover some filters in this draft 
throughout the document

> printer becomes idle or busy?

Interesting... I guess you can do it the same way, a subscription 
combined with filters.

> * *
> Is it stored in all the peer nodes, or in the super-nodes? 

It is stored in the peers which store the resource. So, you cannot 
expect that ALL the peers store the resource. You can also expect that 
some peers might not be supernodes (so they will be clients of the P2P 
network).

> Is this info 
> replicated over the different nodes with the same content, or is the 
> content (metadata) split-up in different parts and stored in a 
> distributed way over the different nodes with the ability to recover the 
> complete content when one of the nodes fails?

Good point. I think the idea is: the resource is the atomic part. It is 
stored in several nodes for replication purposes, but it is not further 
split.

> 
> In the example, how does Bob know he can use the keyword "vacation"?  Is 
> this only related to the content made available by Alice or is it valid 
> to every resource made available by every part of the p2p community with 
> the keyword "vacation"?

The idea in the example is: Alice makes some pictures, tagged them with 
the keyword "vacation", and makes them available to her friends. Bob 
makes a search for "vacation" and finds the list of those images.

At the moment we don't have any mechanism that could Bob of which 
keywords has Bob used in his resources. It might be an interesting idea 
thought...

> 
> Is the search criteria sent to the super-nodes or to all nodes? 

So you are assuming the P2P model... The search is sent to the 
supernodes. NOw, if you use a DHT (this is the assumption in many cases) 
the search is forwarded to the appropriate supernode.

> I assume 
> to the super-nodes, else the question can be posed why Bob has not 
> received the information as a peer-node from the Publish from Alice to 
> the p2p network? What's the difference for all the received 
> notifications from the different peer nodes by Bob? Do they all refer to 
> the same content made available by Alice?

I am not sure if I understand correctly. The idea is for notifications 
to contain the list of entities that store the same resource.

> 
> And what is actually stored in the network: only the metadata or also 
> the content itself? 

Only metadata. The content is never stored in the network.

> What's the advantage when only the metadata is 
> stored in the p2p network but the actual content is kept in the device 
> of Alice?

Aggregation is the compelling reason. Network nodes can aggregate the 
content, so for a given resource, I can find which devices are storing 
the content.

Of course, if you don't want network support, you can send a 
subscription end-to-end without network intervention... but you need to 
know the SIP URI of the device or user that is making the content available.

> What's the centralized server? 

In RFC 3265 terminology this is known as a state agent.

> Is this really a central server, or is it 
> distributable function which is provided by one of the peer nodes? E.g. 
> all or a subset of the nodes which can fulfill the role of centralized 
> server but only one of them actually performing this function and 
> automatically taken over by another node when the actually performing 
> server becomes unavailable?

The text in this case was referring to a state agent as per RFC 3265.

> 
> The central server can have an advantage to aggregate the metadata. But 
> what's about the main content? Is it also stored in the central server 
> or is it kept in the end-device, or will it also become part of the p2p 
> network to allow a more efficient retrieval of the information without 
> placing a burden on the specific end device?

The content is never stored in the server, just the metadata.

> Hybrid approach: same question: where will the main content be kept? If 
> it is kept in the secondary nodes, then there is still a burden on these 
> devices even if SIP is used to minimize the protocol implementation in 
> endpoints with limited resources.

NO, no, the idea is that content is never moved to the central servers 
or supernodes, just the metadata.

> Are a resource and a resource directory always bound to device? Is it 
> not the intention to use the p2p concept to decouple the constraint of a 
> resource strictly bound to a device?

There is something wrong with the definition... because a "directory" 
can never be "a device". I need to see what happened here...

But I think the directory is the list of resources available at one or 
more devices.

> When they are requested, the resource will be retrieved from the 
> end-device and then made available in the p2p network? Or is every 
> request for the resource made towards the end-device? In last case, 
> there can be a big burden on the end-device when many community members 
> want to retrieve the pictures.

It is the latter. File transfer is always end-to-end with no network 
involvement (other than potential signaling proxies.

> What is meant with a series of notifications? Does the ESC not make any 
> kind of aggregations of different notifications?

Yes, but it can also send an initial notification and later changes, 
when these occur.

> 
> Are the thumbnails also part of the metadata generated by the source 
> (Alice phone)? Or are these thumbnails generated by a function in the 
> p2p network? 

They are only part of the metadata generated by the source. Since the 
network does not have the content, it can't generate a thumbnail.

> Is it "his other friends" or can it can it also be "her" (i.e.) Alice 

"His"... refers to Charlie's friends. But I think we should delete this 
text to avoid misleading interpretation. Charlie subscribes to Alice 
presence information, that's it.

> What will be the influence on generated network traffic with this 
> concept?  Is this not generating too many PUBLISH and NOTIFY messages?

I answered Cullen a similar concern. In my opinion, this generates FAR 
much less traffic than RPID when it signals your activities.

> How will this be done? Which protocol will be used for this (MSRP)? Will 
> it be a new method in a SIP message? Is the download request send 
> directly to Alice's SIP UA. Maybe you can add a reference to §7.

File download uses this draft:
http://www.ietf.org/internet-drafts/draft-ietf-mmusic-file-transfer-mech-00.txt

Yes, a reference to Section 7 would hlep.

> How is this done? What kind of authentication is used to approve the 
> request? Make reference to draft-garcia-sipping-resource-event-package 
> §3.6.1, 3.6.2?

Hmmm... I see your point.. I think we should delete the word 
"automatically" here. Automatically means using this draft:

http://www.ietf.org/internet-drafts/draft-ietf-sip-answermode-02.txt

> Is it one out of two type of PUBLISH methods or can both methods also be 
> provided in parallel?  Are these then 2 separate PUBLISH methods from 
> the end-device to the ESC?

Since these are two different event packages, the Event header field 
value is different, so is the XML document. So they are independent.

> Why is the size of the file part of the invariant part and the file 
> name, creation/modification data part of the instance-specific part? Can 
> you clarify this? 

The size of the file is linked to the file. If the file changes, you 
have a different file, not the same one.

However, the date of creation of the file in your device refers to the 
date you create or download the file to your device, which is different 
from the day I downloaded to my device.

You can argue that they shouldn't be different, and I may agree... :-)

> What about the identical copy of the file? Is the EPA 
> sending different copies of the same file to the ESC? Why and for what 
> purpose?

I agree, I don't see the point.

> Is the given example the "hybrid approach" by which the ESC is part of a 
> p2p network and the EPA in the UE device is only the access towards the 
> p2p network but not forming part of it? How can the relation and 
> addressing be done between the EPA and the ESC?
> 

No, no, this is not a P2P scenario. There is only and ESC and an EPA.

> Is the ESC is this case the "presence server"?

yes, it is

> Is the search operation only a "pull" method or can it also be a "push 
> method with a Subscription for a certain amount of time, e.g. when new 
> resources are added which also fulfills the search criteria?

It can be a regular subscription along the time, but then it is not a 
search operation, it is then a regular subscription.

> 
> Maybe you can add a reference to  document 
> draft-garcia-sipping-resource-event-package §3.4.

OK.

> How is the distribution of the metadata done?

This is a good question for the P2PSIP WG. I think it is part of the P2P 
protocol.

> Distribution for different 
> resources or can the distribution also be done for one specific 
> resource? And what is distributed? The whole set of metadata or are only 
> certain parts of the metadata distributed over different nodes?

The whole set of metadata. We are speaking about P2P, where there is a 
key and value. The key is created (typically) by hashing the resource, 
for example, it could be the hash of the file. The value is the 
"metadata". This is distributed and replicated according to a well-known 
algorithm (whichever it is).

> Does not imply that a SUBSCRIBE for a pull method can't be used?

NO, in this case, there is an existing subscription that needs to be 
cancelled. The draft uses the regular procedures of RFC 3265.

> The resource is bound to the device of a presentity. What if the 
> presentity has the same resource available on different devices?

Then each device will publish its own view of the presence information. 
In the data model, in particular, in the <device> part of the device 
model, each device will publish its own available resources. These could 
be different from device to device.

> How can all the policing and authorization be done on limited 
> end-devices? 

This would be the role of state agents. But still the end points should 
be able to provide the authorization polices. Still the same polices 
should be available in the end device for file transfer.

> How can a DoS attack be avoided?

You tell me. I think, in life, DoS attacks can't be ever be avoided. You 
can, though, mitigate the effects of it, should it occur, but you can't 
avoid someone orchestrates a DoS attack.

Thanks for your comments.

/Miguel

-- 
Miguel A. Garcia           tel:+358-50-4804586
Nokia Research Center      Helsinki, Finland