This is a contribution proposal about cloud/server interface of OIC devices. Current implementation of IoTivity is hard to expose their resources to other internet services like Facebook or Google. So, we think this feature will enriches the OIC device functionality and add more accessibility.
Resource Server/Client: IoTivity enabled devices that initiate session using CoAP over TCP/TLS to Cloud Interface server which scattered over the world.
Region Cloud/Cloud Interface: Region based server that accepts connection from clients, receive notification data and send REST message through connected pipelines. They are clustered by global cloud.
Global Cloud: This main cloud clusters region clouds using provided API like publish/discover resources. The account server supports interfaces that other OAuth2.0 enabled authentication providers can extend their user’s identity to OIC cloud. OIC resource server/client can guide user that they can register their devices using one of authentication providers which registered to account server.
3rd Party Cloud (TBD): Service provider that control to, receive data from region cloud and global cloud.
1. Suppose that customer try to install new product which is resource server. The resource server requests user to put his credential. If the device has suitable interfaces then he can put his ID/PW to retrieve access code to register. If the device has no interfaces, he can push valid token using alternative methods like NFC or WiFi Direct. This proposal doesn’t specify how to get access code from authentication providers.
2. Once the resource server has published, resource client can see and control the resource server even they are not connected to the same cloud interface server. They can communication over the region.
3. (TBD) 3rd Party service provider also sees and controls the resource server if user binds his credential to those services. This feature also required to have access control that user can set limits of accessibility.
To ensure that the TCP connection between device and cloud is still alive, device or cloud should send application level Keep-Alive messages. (Please refer the Core Specification Project B documents ( 12.6. CoAP serialization over TCP ))