2
I. Real-world problems: - Now a day, all most everything is connected with the Internet, smartphone, tablet, electronic devices, door, surveillance camera … - IPv4 problem: due to technology limitation and security II. Non functional Requirements: - System shall guarantee message latency below 1000. - System shall support 2-way communication and trigger from any parties. - System shall prevent vendor lock in so that we can move and scaling without license restriction. - System shall provide service for at least 20.000 devices from the beginning. - System shall support horizontal scaling. III. Technology: After researching and comparison between many solutions WebSockets, Http Streaming, Http Long Polling ... The suitable technology for this system is http long polling. HTTP Long Polling is able support HTTPS for encryption and horizontal scalability. IV. Functional requirements: We have 2 components in this system: 1. Real-time message streaming server: Live connection management. 2 way communication between devices, server, application. HTTPS support Horizontal scaling in Amazon AWS infrastructure. 1. API management server API definition for devices Device registration. Device management. User subscription management. Authentication Other components that might be add later: Video streaming, Web user portal. References: http://en.wikipedia.org/wiki/Push_technology#Long_polling http://blog.fanout.io/2013/10/30/pushing-to-100000-api-clients-simultaneously/

Realtime system with pushpin fanout, controlling your devices

Embed Size (px)

Citation preview

Page 1: Realtime system with pushpin fanout, controlling your devices

I. Real-world problems:

- Now a day, all most everything is connected with the Internet, smartphone, tablet, electronic

devices, door, surveillance camera …

- IPv4 problem: due to technology limitation and security

II. Non functional Requirements:

- System shall guarantee message latency below 1000.

- System shall support 2-way communication and trigger from any parties.

- System shall prevent vendor lock in so that we can move and scaling without license

restriction.

- System shall provide service for at least 20.000 devices from the beginning.

- System shall support horizontal scaling.

III. Technology:

After researching and comparison between many solutions WebSockets, Http

Streaming, Http Long Polling ... The suitable technology for this system is http long polling.

HTTP Long Polling is able support HTTPS for encryption and horizontal scalability.

IV. Functional requirements:

We have 2 components in this system:

1. Real-time message streaming server:

● Live connection management.

● 2 way communication between devices, server, application.

● HTTPS support

● Horizontal scaling in Amazon AWS infrastructure.

1. API management server

● API definition for devices

● Device registration.

● Device management.

● User subscription management.

● Authentication

Other components that might be add later: Video streaming, Web user portal.

References:

http://en.wikipedia.org/wiki/Push_technology#Long_polling

http://blog.fanout.io/2013/10/30/pushing-to-100000-api-clients-simultaneously/

Page 2: Realtime system with pushpin fanout, controlling your devices