Chauhan, Suryaveer (2017) A Microservice based Architecture for a Presence Service in the Cloud. Masters thesis, Concordia University.
Preview |
Text (application/pdf)
3MBChauhan_MCompSc_F2017.pdf - Accepted Version Available under License Spectrum Terms of Access. |
Abstract
Presence service enables sharing of, and a subscription to the end users presence (online or offline) status. Primarily used for instant messaging applications, the presence service now finds its way into innovative solutions for domains such as wireless sensor networks and Internet of Things. The growth in users of instant messaging applications is ever increasing since the advent of social media networks. Presence service needs to be highly scalable to handle growing load of the users. Moreover, the user activity is inherently dynamic in nature which requires the presence service to be highly elastic to utilise resources efficiently. Traditional presence services are built as monoliths. Monolithic architectures by design are difficult to scale, lacks elasticity and are resource inefficient. Moreover, overprovisioning of resources to handle unanticipated loads further adds to resource inefficiency. Cloud computing and microservices are emerging paradigms that can help tackling the challenges above. Cloud computing with three key facets: Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS), and Software-as-a-Service (SaaS) enable rapid provisioning and release of resources (e.g. storage, compute, network) on demand. Microservices is an approach of developing applications as a set of smaller, independent, and individually scalable services which communicate with each other using lightweight protocols. The on-demand nature of cloud computing provides a platform to achieve elastic scalability whereas microservices increase the scalability of the architecture. This thesis presents a microservice architecture for a presence service in the cloud. The architecture is based on a state of the art business model. The proposed architecture has three main components: A stateless front-end, a repository and a cache. The front end is built as a set of microservices exposed as SaaS. The front end, to remain technology agnostic, communicates with the repository using the Representational State Transfer (REST) interface. The cache provides fast data access to the front end. The front end microservices use message queues to communicate with each other. Besides, to check the feasibility of the architecture, a proof of concept prototype is implemented for a Session Initiation Protocol for Instant Messaging and Presence (SIMPLE) based presence service. Performance measurements have been made for the proposed and traditional architectures. Also, a comparative analysis of the results is done. The analysis of the results shows that the proposed architecture provides the desired scalability and elasticity to the presence service. Moreover, the proposed architecture provides lower response time and higher throughput in comparison to the traditional architecture.
Divisions: | Concordia University > Gina Cody School of Engineering and Computer Science > Computer Science and Software Engineering |
---|---|
Item Type: | Thesis (Masters) |
Authors: | Chauhan, Suryaveer |
Institution: | Concordia University |
Degree Name: | M. Comp. Sc. |
Program: | Computer Science |
Date: | 22 August 2017 |
Thesis Supervisor(s): | Glitho, Roch |
Keywords: | Cloud computing, Microservices, SIP, Presence |
ID Code: | 982880 |
Deposited By: | Suryaveer Singh Chauhan |
Deposited On: | 10 Nov 2017 21:39 |
Last Modified: | 18 Jan 2018 17:55 |
References:
[1] M. Day, J. Rosenberg, H. Sugano. A Model for Presence and Instant Messaging (RFC 2778), February 2000[2] Armbrust, M., Fox, A., Griffith, R., Joseph, A.D., Katz, R., Konwinski, A., Lee, G., Patterson, D., Rabkin, A., Stoica, I. and Zaharia, M., 2010. A view of cloud computing. Communications of the ACM, 53(4), pp.50-58.
[3] Geelan, J., 2009. Twenty one experts define cloud computing. Cloud Computing Journal, 4, pp.1-5.
[4] N. Alshuqayran, N. Ali and R. Evans, "A Systematic Mapping Study in Microservice Architecture," 2016 IEEE 9th International Conference on Service-Oriented Computing and Applications (SOCA), Macau, 2016, pp. 44-51.
[5] Rosenberg, Jonathan. "SIMPLE made simple: An overview of the IETF specifications for instant messaging and presence using the session initiation protocol (SIP)." (2013).
[6] Rosenberg, J., H. Schulzrinne, G. Camarillo, A. Johnston, J. Peterson, R. Sparks, M. Handley, and E. Schooler. "IETF RFC 3261-SIP: Session Initiation Protocol." The Internet Society (2002).
[7] Roach, A. B. "Session Initiation Protocol (SIP)-Specific Event Notification", RFC 3265." (2002).
[8] Niemi, A. SIP extension for event state publication. RFC 3903, 2004.
[9] Rosenberg, J. "A Presence Event Package for the Session Initiation Protocol (SIP)(RFC 3856). IETF." (2004).
[10] Racoh, A. B. "A session initiation protocol (SIP) event notification extension for resource lists." IETF RFC 4662 (2006).
[11] Camarillo, Gonzalo, Adam Roach, and Orit Levin. "Subscriptions to request-contained resource lists in the session initiation protocol (SIP)." (2008).
[12] Sugano, H., S. Fujimoto, G. Klyne, A. Bateman, W. Carr, and J. Peterson. "RFC 3863: presence information data format (PIDF)." Internet Engineering Task Force (2004): 206.
[13] Schulzrinne, H., V. Gurbani, P. Kyzivat, and J. Rosenberg. "RPID: Rich presence extensions to the presence information data format (pidf)(rfc 4480)." IETF (2006).
[14] Schulzrinne, Henning. "CIPID: Contact Information for the Presence Information Data Format." (2006).
[15] Schulzrinne, Henning. "Timed Presence Extensions to the Presence Information Data Format (PIDF) to Indicate Status Information for Past and Future Time Intervals." (2006).
[16] Rosenberg, J. "RFC 4479." A Data Model for Presence, IETF.
[17] Rosenberg, Jonathan. "Presence authorization rules." (2007).
[18] Rosenberg, Jonathan. "An Extensible Markup Language (XML) based format for watcher information." (2004).
[19] Rosenberg, J. "RFC 4825-The Extensible Markup Language Configuration Access Protocol." (2007).
[20] Isomaki, Markus, and Eva Leppanen. "An Extensible Markup Language (XML) Configuration Access Protocol (XCAP) Usage for Manipulating Presence Document Contents." (2007).
[21] Lonnfors, Mikko, Jose Costa-Requena, Eva Leppanen, and Hisham Khartabil. "Functional description of event notification filtering." (2006).
[22] Khartabil, H., E. Leppanen, M. Lonnfors, and J. Costa-Requena. An Extensible Markup Language (XML)-Based Format for Event Notification Filtering. No. RFC 4661. 2006.
[23] Lonnfors, Mikko, Jari Urpalainen, Eva Leppanen, and Hisham Khartabil. "Presence information data format (PIDF) extension for partial presence." (2008).
[24] Lonnfors, Mikko, Jose Costa-Requena, Eva Leppanen, and Hisham Khartabil. "Session initiation protocol (SIP) extension for partial notification of presence information." (2008).
[25] Niemi, A., M. Lonnfors, and E. Leppanen. "RFC 5264." Publication of Partial Presence Information (2008).
[26] Saint-Andre, P. "RFC 3920: Extensible messaging and presence protocol (XMPP)." Instant Messaging and Presence, IETFproposed Standard (2004).
[27] Saint-Andre, P. "RFC 3921: Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence, Oct. 2004." Status: PROPOSED STANDARD.
[28] Day, Mark, Sonu Aggarwal, Gordon Mohr, and Jesse Vincent. Instant messaging/presence protocol requirements. No. RFC 2779. 2000.
[29] Singh, Vishal Kumar, Henning Schulzrinne, Piotr Boni, Boris Elman, and David Kenneson. "Presence aware location-based service for managing mobile communications." In Consumer Communications and Networking Conference, 2007. CCNC 2007. 4th IEEE, pp. 514-519. IEEE, 2007.
[30] M. El Barachi, A. Kadiwal, R. Glitho, F. Khendek and R. Dssouli, "An Architecture for the Provision of Context-Aware Emergency Services in the IP Multimedia Subsystem," VTC Spring 2008 - IEEE Vehicular Technology Conference, Singapore, 2008, pp. 2784-2788.
[31] Vaquero, Luis M., Luis Rodero-Merino, Juan Caceres, and Maik Lindner. "A break in the clouds: towards a cloud definition." ACM SIGCOMM Computer Communication Review 39, no. 1 (2008): 50-55.
[32] Mell, Peter M., and Timothy Grance. "Sp 800-145. the nist definition of cloud computing." (2011).
[33] B. Sotomayor, R. S. Montero, I. M. Llorente and I. Foster, "Virtual Infrastructure Management in Private and Hybrid Clouds," in IEEE Internet Computing, vol. 13, no. 5, pp. 14-22, Sept.-Oct. 2009.
[34] Voorsluys, William, James Broberg, and Rajkumar Buyya. "Introduction to cloud computing." Cloud computing: Principles and paradigms (2011): 1-41.
[35] T. Dillon, C. Wu and E. Chang, "Cloud Computing: Issues and Challenges," 2010 24th IEEE International Conference on Advanced Information Networking and Applications, Perth, WA, 2010, pp. 27-33.
[36] Dragoni, Nicola, Saverio Giallorenzo, Alberto Lluch Lafuente, Manuel Mazzara, Fabrizio Montesi, Ruslan Mustafin, and Larisa Safina. "Microservices: yesterday, today, and tomorrow." arXiv preprint arXiv:1606.04036 (2016).
[37] Pautasso, Cesare, Olaf Zimmermann, Mike Amundsen, James Lewis, and Nicolai Josuttis. "Microservices in Practice, Part 1: Reality Check and Service Design." IEEE Software 34, no. 1 (2017): 91-98.
[38] J. Thönes, "Microservices," in IEEE Software, vol. 32, no. 1, pp. 116-116, Jan.-Feb. 2015.
[39] O. Zimmermann, “Microservices Tenets: Agile Approach to Service Development and Deployment,” Computer Science—Research and Development, 2016
[40] Gabbrielli, Maurizio, Saverio Giallorenzo, Claudio Guidi, Jacopo Mauro, and Fabrizio Montesi. "Self-reconfiguring microservices." In Theory and Practice of Formal Methods, pp. 194-210. Springer International Publishing, 2016.
[41] Newman, Sam. Building microservices: designing fine-grained systems. " O'Reilly Media, Inc.", 2015.
[42] M. Villamizar et al., "Evaluating the monolithic and the microservice architecture pattern to deploy web applications in the cloud," 2015 10th Computing Colombian Conference (10CCC), Bogota, 2015, pp. 583-590.
[43] M. Massoth, R. Acker, N. Buchmann, T. Fugmann, C. Knoell, M. Porzelt, “Ubiquitous Smart Grid Control Solution based on a Next Generation Network as Integration Platform”, ENERGY 2011, The First International Conference on Smart Grids, Green Communications and IT Energy-aware Technologies, pp. 173-178,2011
[44] P. A. Moreno, M. E. Hernando and E. J. Gómez, "Design and Technical Evaluation of an Enhanced Location-Awareness Service Enabler for Spatial Disorientation Management of Elderly With Mild Cognitive Impairment," in IEEE Journal of Biomedical and Health Informatics, vol. 19, no. 1, pp. 37-43, Jan. 2015.
[45] M. El Barachi, A. Kadiwal, R. Glitho, F. Khendek, R. Dssouli, “A Presence-Based Architecture for the Integration of the Sensing Capabilities of Wireless Sensor Networks in the IP Multimedia Subsystem,” in IEEE Wireless Communications and Networking Conference, pp.3116-3121, 2008
[46] W. E. Chen, Y. B. Lin and R. H. Liou, "A weakly consistent scheme for IMS presence service," in IEEE Transactions on Wireless Communications, vol. 8, no. 7, pp. 3815-3821, July 2009.
[47] Dongcheul Lee. “Reducing Multimedia Presence Information Traffic between Mobile Applications”, International Journal of Energy, Information and Communications, Vol. 2, Issue 3, August 2011
[48] K. Peternel, L. Zebec, A. Kos, “Using presence information for an effective collaboration,” in Communication Systems, Networks and Digital Signal Processing, pp.119-123, July 2008
[49] Wei Quan, Jun Wu, Xiaosu Zhan, Xiaohong Huang and Yan Ma, "Research of presence service testbed on cloud-computing environment," 2010 3rd IEEE International Conference on Broadband Network and Multimedia Technology (IC-BNMT), Beijing, 2010, pp. 865-869.
[50] F. Belqasmi, C. Fu, M. Shashvelayati, H. Khlifi, R. Glitho, “A Peer to Peer Architecture for Enabling a Universal Presence Service,” 2010 Fourth International Conference on Next Generation Mobile Applications, Services and Technologies, Amman, pp. 90-95, 2010.
[51] A. Acharya et al., "Programmable presence virtualization for next-generation context-based applications," 2009 IEEE International Conference on Pervasive Computing and Communications, Galveston, TX, 2009, pp. 1-10.
[52] Richardson, Leonard, and Sam Ruby. RESTful web services. " O'Reilly Media, Inc.", 2008.
[53] Newcomer, Eric. Understanding Web Services: XML, Wsdl, Soap, and UDDI. Addison-Wesley Professional, 2002.
[54] Johner, Heinz, Larry Brown, Franz-Stefan Hinner, Wolfgang Reis, and Johan Westman. Understanding ldap. Vol. 6. IBM, 1998.
[55] S. S. Chauhan, S. Yangui, R. H. Glitho and C. Wette, "A case study for a presence service in the cloud," 2016 7th International Conference on the Network of the Future (NOF), Buzios, 2016, pp. 1-7.
[56] “Opensips.” [Online]. Available: http://www.opensips.org/ [Accessed: 01-Aug-2017]
[57] “Redis.” [Online]. Available: https://redis.io/[Accessed: 01-Aug-2017]
[58] R. Hecht and S. Jablonski, "NoSQL evaluation: A use case oriented survey," 2011 International Conference on Cloud and Service Computing, Hong Kong, 2011, pp. 336-341.
[59] “MySQL Database.” [Online]. Available: https://www.mysql.com/ [Accessed: 01-Aug-2017]
[60] “NATS.” [Online]. Available: https://nats.io/ [Accessed: 01-Aug-2017]
[61] “Tomcat Servlet Container.” [Online]. Available: https://tomcat.apache.org/ [Accessed: 01-Aug-2017]
[62] “SIPp traffic generator.” [Online]. Available: http://sipp.sourceforge.net/ [Accessed: 01-Aug-2017]
[63] “Kubernetes.” [Online]. Available: https://kubernetes.io/ [Accessed: 01-Aug-2017]
[64] “Docker.” [Online]. Available: https://www.docker.com/ [Accessed: 01-Aug-2017]
[65] “Openstack.” [Online]. Available: https://www.openstack.org/ [Accessed: 01-Aug-2017]
[66] “cJSON- JSON parser in ANSI C.” [Online]. Available: https://github.com/DaveGamble/cJSON [Accessed: 01-Aug-2017]
[67] “Hiredis- minimalist C client for redis.” [Online]. Available: https://github.com/redis/hiredis [Accessed: 01-Aug-2017]
[68] “Heapster.” [Online]. Available: https://github.com/kubernetes/heapster [Accessed: 01-Aug-2017]
[69] “InfluxDB.” [Online]. Available: https://github.com/influxdata/influxdb [Accessed: 01-Aug-2017]
[70] “Grafana.” [Online]. Available: https://github.com/grafana/grafana [Accessed: 01-Aug-2017]
[71] “CoreOS.” [Online]. Available: https://coreos.com/ [Accessed: 01-Aug-2017]
Repository Staff Only: item control page