• No results found

The idea for this evaluation was to make proposal of improvements for the current system so that any further development may be able to more easily solve the addressed issues and incorporate the implemented modifications. For this to be possible, work would have to be performed to implement the addressed issues as the modified solution does not completely reflect the behaviour of the current solution.

With the use of level 1 in the web server very many different types of use cases could be implemented. This is a trade-off between generalization and complexity and use cases that are similar to that of the current use case would have to do more work to add the missing functionality.

Further work for the separation of messaging channels should focus on the internal mes-saging system if the performance aspect is not good enough. Completely separate channels on the back end would add extra scalability issues as well as a more decoupled system.

An interesting aspect of the messaging service is the use of a type-based publish subscribe system instead of a topic-based one. This would make it possible to create a hierarchy of parent channels and sub channels and allow much more intricate ways to send messages.

This could be used, for example, to group channels using a parent channel where logging tools could be deployed on the parent which would be able to receive all messages from the children.

Another interesting aspect for future work is the support for dynamic channels for clients.

Enabling the functionality so that users can create their own channels would open up much more use cases and it is also in line with the direction the current use case is taking with the voting functionality, being more of a social entertainment. The base for this has also been given much time in the in-depth study that focuses on different publish-subscribe solutions with some focus on authentication in the publish-subscribe solutions.

Chapter 8

Acknowledgement

The author wishes to thank Dohi Sweden for providing the prerequisites for a very interesting and educational thesis that has given the author great insight and experience in how a project in computer science is performed and managed. The author has been given help by everyone at Dohi Sweden and could not be more grateful for all their hard work and support. Special thanks go out to Anton Lundin, Stefan Tingstr¨om and Olle H˚aff for their efforts in guiding the author, and Linus M¨ahler Lundgren for his immensely valuable help throughout the whole project.

Finally, thanks to the internal supervisor at Ume˚a University, Jan-Erik Mostr¨om. Thank you for the help during the thesis project and for taking the time to read through this lengthy report.

75

76 Chapter 8. Acknowledgement

References

[1] Virgillito Antonino. Publish/Subscribe Communication Systems: from Mod-els to Applications.

http://goo.gl/N4hsT. Visited 20/03/2013.

[2] Atmosphere. Product github.

http://goo.gl/QelPc. Visited 14/02/2013.

[3] Andrew D. Birrel and Bruce Jay Nelson. Implementing Remote Procedure Calls.

http://goo.gl/yTjni. Visited 22/02/2013.

[4] Dhruba Borthakur. The Hadoop Distributed File System: Architecture and Design.

http://goo.gl/iv0fi. Visited 22/02/2013.

[5] caniuse.com. Can I use Web Sockets?

http://goo.gl/kqEgF. Visited 22/02/2013.

[6] Antonio Carzaniga, David S. Rosenblum, and Alexander L. Wolf. Design and Eval-uation of a Wide-Area Event Notification Service.

http://goo.gl/rZb19. Visited 18/03/2013.

[7] Miguel Castro et al. SCRIBE: A large-scale and decentralized application-level multicast infrastructure.

http://goo.gl/9oVVZ. Visited 20/03/2013.

[8] Jeffrey Dean and Sanjay Ghemawat. MapReduce: Simplified Data Processing on Large Clusters.

http://goo.gl/87mH5. Visited 22/02/2013.

[9] Jean Dollimore, Tim Kindberg, and George Coulouris. Distributed Systems: Con-cepts and Design.

ISBN: 978-0321263544. Published 14/06/2005.

[10] Sam Dutton. Getting started with WebRTC.

http://goo.gl/VCAQd, note = Visited 22/02/2013.

[11] Fidler E. et al. The PADRES Distributed Publish/Subscribe System.

http://goo.gl/TcW39. Visited 19/03/2013.

[12] EventMachine. Official homepage.

http://goo.gl/3HZf5. Visited 14/02/2013.

[13] Daniel Ford et al. Availability in Globally Distributed Storage Systems.

http://goo.gl/h5wQJ. Visited 22/02/2013.

[14] fxn. Why HTTP Streaming?

http://goo.gl/xsXg4. Visited 11/02/2013.

77

78 REFERENCES

[15] Netcraft homepage. December 2012 Web Server Survey.

http://goo.gl/oVIn6. Visited 15/02/2013.

[16] Patrick Hunt et al. ZooKeeper: Wait-free coordination for Internet-scale sys-tems.

http://goo.gl/eQm2L. Visited 22/02/2013.

[17] Peter Saint-Andre Jack Moffitt Ian Paterson Dave Smith. XEP-0124: Bidirectional-streams Over Synchronous HTTP (BOSH).

[20] Chen Jianxia, Ramaswamy Lakshmish, and Lowenthal David. Towards Efficient Event Aggregation in a Decentralized Publish-Subscribe System.

http://goo.gl/Hp9CT. Visited 19/03/2013.

[21] M. Tim Jones and IBM. Process real-time big data with Twitter Storm.

http://goo.gl/wWEom. Visited 22/02/2013.

[22] Apache Kafka. A high-throughput distributed messaging system.

http://goo.gl/XPpjh. Visited 22/02/2013.

[23] Markku Laine. RESTful Web Services for the Internet of Things.

http://goo.gl/axg7K. Visited 05/03/2013.

[24] lighttpd. Official homepage.

http://goo.gl/fD0IY. Visited 22/02/2013.

[25] Netcraft LTD. September 2012 Web Server Survey.

http://goo.gl/1aiWK. Visited 16/05/2013.

[26] Peter Lubbers. How HTML5 Web Sockets Interact With Proxy Servers.

http://goo.gl/9yCtQ. Visited 22/02/2013.

[30] Bill Nitzberg and Virginia Lo. Distributed Shared Memory: A Survey of Issues and Algorithms.

http://goo.gl/jxJpy. Visited 22/02/2013.

[31] Node.js. Official homepage.

http://goo.gl/zpsh4. Visited 14/02/2013.

[32] Frank Greco Peter Lubbers. HTML5 Web Sockets: A Quantum Leap in Scal-ability for the Web.

http://goo.gl/DysTB. Visited 11/02/2013.

[33] Nicholas Pi¨el. Asynchronous Servers in Python.

http://goo.gl/ulToK. Visited 22/02/2013.

REFERENCES 79

[34] Apache Qpid. Open Source AMQP Messaging.

http://goo.gl/vRMA3. Visited 22/02/2013.

[35] RabbitMQ. Distributed RabbitMQ brokers.

http://goo.gl/jq1S6. Visited 22/02/2013.

[36] Jun Rao. Open-sourcing Kafka, LinkedInˆas distributed message queue.

http://goo.gl/hqgOa. Visited 22/02/2013.

[37] David Recordon. Tornado: Facebook’s Real-Time Web Framework for Python.

http://goo.gl/H3PDx. Visited 22/02/2013.

[38] HTML 5 Doctor Remy Sharp. Server-Sent Events.

http://goo.gl/BLl0v. Visited 22/02/2013.

[39] Antony Rowstron et al. SCRIBE: The design of a large-scale event notification infrastructure.

http://goo.gl/AuiDv. Visited 18/03/2013.

[40] Ken Schwaber and Jeff Sutherland. The Scrum Guide.

http://goo.gl/JSmQQ. Visited 22/02/2013.

[41] Dmitry Sheiko. WebSockets vs Server-Sent Events vs Long-polling.

http://goo.gl/1dSK1. Visited 11/02/2013.

[42] Chien Shih-Chiang, Kao Yung-Wei, and Yuan Shyan-Ming. A Generic Publish/Subscribe Framework for Peer-to-Peer Environment.

http://goo.gl/MGZSr. Visited 19/03/2013.

[43] Bruce Snyder, Dejan Bosanac, and Rob Davies. ActiveMQ in action.

http://goo.gl/omWIR. Visited 22/02/2013.

[44] Ian Sommerville. Batch data processing systems.

http://goo.gl/tFqnp. Visited 22/02/2013.

[45] Mudhakar Srivatsa and Ling Liu. Securing Publish-Subscribe Overlay Services with EventGuard.

[48] Aater Suleman. What makes parallel programming hard?

http://goo.gl/sZl4k. Visited 16/05/2013.

[49] Dio Synodinos. HTML 5 Web Sockets vs. Comet and Ajax.

http://goo.gl/rjyps. Visited 22/02/2013.

[50] Datasalt Systems. Real-time feed processing with Storm.

http://goo.gl/nOLxb. Visited 22/02/2013.

[51] Sasu Tarkoma. Publish / Subscribe Systems: Design and Principles.

ISBN: 9781119951544. Published 13/07/2012.

[52] Apache Thrift. Official homepage.

http://goo.gl/pYp5V. Visited 22/02/2013.

[53] Tornado. Official homepage.

http://goo.gl/3oWrm. Visited 14/02/2013.

80 REFERENCES

[54] Twisted. Official homepage.

http://goo.gl/m0nXr. Visited 14/02/2013.

[55] Vert.x. Official homepage.

http://goo.gl/G9iHT. Visited 14/02/2013.

[56] Google Inc. W3C Ian Hickson. Server-Sent Events, W3C Candidate Recom-mendation 11 December 2012.

http://goo.gl/NofUz. Visited 13/02/2013.

[57] WebRTC. Official homepage.

http://goo.gl/oITWk. Visited 22/02/2013.

[58] Google developers website. Channel API Overview.

http://goo.gl/MMpjR. Visited 22/02/2013.

[59] Websocket.org. What is WebSocket?

http://goo.gl/Kg4gm. Visited 22/02/2013.

[60] Tom White. Hadoop: The Definitive Guide.

ISBN: 9781449311520. Published 05/2012.

[61] Brian Whitman. Replacing Amazon SQS with something faster and cheaper.

http://goo.gl/qdmdn. Visited 22/02/2013.

[62] Apache Wiki. ZooKeeper Overview.

http://goo.gl/pc0Ih. Visited 22/02/2013.

[63] WikiVS.com. lighttpd vs nginx.

http://goo.gl/1Dmnk. Visited 22/02/2013.

[64] Walter Wong. Efficient Content Authentication in Publish/Subscribe Sys-tems.

http://goo.gl/p7bQh. Visited 20/03/2013.