supporting long polling group name: arc wg source: seungmyeong, lg electronics,...
TRANSCRIPT
Supporting long polling
Group Name: ARC WGSource: SeungMyeong, LG Electronics, [email protected] Date: 2013-0x-xxAgenda Item: TBD
Needs• Entities in subscription/notification
– Resource subscriber who created <subscription>– Subscription hosting CSE who sends notifications
• Long polling is needed– In some cases, a notification cannot be sent to receiver due to NAT or firewall– Short polling by the subscriber is costly– The subscriber performs long polling to retrieve notifications from the hosting CSE
© 2013 oneM2M Partners2
ARC-2013-0473 at TP#7 (1/2)
• notification channel resource type for long-polling (notification retrieval), – <notificationChannel> has a virtual child resource
© 2013 oneM2M Partners3
Subscription Hosting CSESubscription Hosting CSEResource SubscriberResource
Subscriber
<notificationCH>
channel
channel status
retrieve notifications with long polling targeting “/<notificationCH>/channel”retrieve notifications with long polling targeting “/<notificationCH>/channel”
send triggered
notifications to“/<notificationCH>/chann
el”
send triggered
notifications to“/<notificationCH>/chann
el”
ARC-2013-0473 at TP#7 (2/2)• Main feedback was why not use <container>
– short polling on <instance> is available, but costly– <container> as it is cannot support long polling
© 2013 oneM2M Partners4
Subscription Hosting CSESubscription Hosting CSEResource SubscriberResource
Subscriber<container>
<instance>
latest
……
retrieve notifications with
long polling… targeting “???”
retrieve notifications with
long polling… targeting “???”
• container• latest• instance
triggered notifications to be
stored as instances
triggered notifications to be
stored as instances
Summary• What we need to do is
– supporting long-polling notification retrieval• to solve non-server capable resource subscriber issue
– NOT re-using <container>• Resource subscriber does not matter whether notifications are stored in container of subscription hosting CSE
or not. • The subscriber only matters how to retrieve notifications. The hosting CSE might matter but that’s
implementation issue.
© 2013 oneM2M Partners5
Suggestion• Basically the same as suggestion of TP#7,
– has a virtual child resource named “notification”• utilize virtual resource concept/benefit
– status is not needed– does not matter notification storage
• e.g., <container> or 3rd party external storage
© 2013 oneM2M Partners6
<notificationCH>
notificationretrieve notifications with
long polling targeting “/<notificationCH>/notificati
on”
retrieve notifications with long polling targeting
“/<notificationCH>/notification”
triggered notificationstriggered notifications
conceptually channel INPUT
conceptually channel OUTPUT
Example (1/2)
© 2013 oneM2M Partners7
ADN-AE MN-CSE
1. create requestresource type: <notificationCH>
2. create responsenew resource “MN-CSE/noti_ch” created
3. create requestresource type: <subscription>
notificationURI: “MN-CSE/noti_ch/notification”
4. create responsenew resource “MN-CSE/sub” created
Example (2/2)
© 2013 oneM2M Partners8
ADN-AE MN-CSE
6. retrieve responsecontent: notification data
a notification is triggered
send a notification to “/noti_ch/notification”
(internally)
5. retrieve requesttarget: “MN-CSE/noti_ch/notification” ( long polling URI)
pending the retrieve request until a notification is received at notification channel
The other long polling• Non-server capable entity does this for
– Notification retrieval– Other CRUD requests retrieval
• channel hosting CSE re-targets request(s) to a channel• Non server capable entity retrieves the request(s) from the channel
© 2013 oneM2M Partners9
CSE2base
CSE1retrieve request(s) with long
polling from “entity2_base/entity1/chann
el”
retrieve request(s) with long polling from
“entity2_base/entity1/channel”
A request to CSE1A request to CSE1
channelCSE1
AE2
Re-target
Cannot send a request to a non server capable entity
Way Forward
• To bring a contribution proposing a new resource type <pollingChannel>– 2 main usages for non server capable AE/CSE
• Notification retrieval channel for AE/CSE Notification channel (in ETSI TC M2M)
• CRUD request retrieval channel for CSE Communication channel (in ETSI TC M2M)
– Eventually both are for long polling– So it has more generic name <pollingChannel>