Design, Prototype Implementation, and Comparison of Scalable Web-Push Architectures on Amazon Web Services Using the Actor Model

Hussachai Puripunpinyo, M. Samadzadeh
{"title":"Design, Prototype Implementation, and Comparison of Scalable Web-Push Architectures on Amazon Web Services Using the Actor Model","authors":"Hussachai Puripunpinyo, M. Samadzadeh","doi":"10.1109/ICSEng.2017.42","DOIUrl":null,"url":null,"abstract":"Push technology has become an essential part of many web applications that require near real-time notification. The Hypertext Transfer Protocol (HTTP) is widely used for exchanging information between clients and servers. The growth of the Internet of Things (IoT) and the expansion/penetration of Internet access to new areas have resulted in the ever-rapidly increasing number of Internet users. Consequently, scalability has become one of the key requirements of modern web applications. One of the challenging problems of scalability is scaling out web-push applications since they are constrained by unshareable resources and their stateful nature. Amazon Web Services (AWS) is the leading cloud service provider that offers a variety of services. Web-push applications can leverage the services that AWS provides. Developers can build their entire service stack on Amazon Elastic Compute Cloud (EC2) if other services cannot fulfill their business requirements. To enable the scalability feature, a centralized message mediator is needed to orchestrate and coordinate messages across the web-push nodes. The publish-subscribe pattern should be implemented from upstream to downstream in order to optimize the flow of data. This paper examines the technologies that could be used as building blocks to create scalable web-push applications, and proposes three architectures using three different messaging services, i.e., Amazon Simple Notification Service (SNS), Redis Pub/Sub, and Apache ActiveMQ. A couple of push and pull models as well as an adaptive push/pull model are introduced and experimentally compared in this paper. The actor model, on account of its being a robust model, is used for handling concurrency and for coordinating the flow of messages between a messaging server and a web client. We created a chat room application to evaluate the architectures with different criteria and conditions, and the push technology used our experimentation was WebSocket. From our experiment, we found that Amazon SNS performed relatively poorly compare to the other two due to the overhead of web services calls. The architectures using Redis Pub/Sub and ActiveMQ performed equally well even though the ActiveMQ server took more time to process messages. We acknowledge that there are a large number of factors involved in and potentially affecting the performance, and that the response time is merely one of the properties that ought to be considered in making a design decision.","PeriodicalId":202005,"journal":{"name":"2017 25th International Conference on Systems Engineering (ICSEng)","volume":"29 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2017-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"3","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2017 25th International Conference on Systems Engineering (ICSEng)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICSEng.2017.42","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 3

Abstract

Push technology has become an essential part of many web applications that require near real-time notification. The Hypertext Transfer Protocol (HTTP) is widely used for exchanging information between clients and servers. The growth of the Internet of Things (IoT) and the expansion/penetration of Internet access to new areas have resulted in the ever-rapidly increasing number of Internet users. Consequently, scalability has become one of the key requirements of modern web applications. One of the challenging problems of scalability is scaling out web-push applications since they are constrained by unshareable resources and their stateful nature. Amazon Web Services (AWS) is the leading cloud service provider that offers a variety of services. Web-push applications can leverage the services that AWS provides. Developers can build their entire service stack on Amazon Elastic Compute Cloud (EC2) if other services cannot fulfill their business requirements. To enable the scalability feature, a centralized message mediator is needed to orchestrate and coordinate messages across the web-push nodes. The publish-subscribe pattern should be implemented from upstream to downstream in order to optimize the flow of data. This paper examines the technologies that could be used as building blocks to create scalable web-push applications, and proposes three architectures using three different messaging services, i.e., Amazon Simple Notification Service (SNS), Redis Pub/Sub, and Apache ActiveMQ. A couple of push and pull models as well as an adaptive push/pull model are introduced and experimentally compared in this paper. The actor model, on account of its being a robust model, is used for handling concurrency and for coordinating the flow of messages between a messaging server and a web client. We created a chat room application to evaluate the architectures with different criteria and conditions, and the push technology used our experimentation was WebSocket. From our experiment, we found that Amazon SNS performed relatively poorly compare to the other two due to the overhead of web services calls. The architectures using Redis Pub/Sub and ActiveMQ performed equally well even though the ActiveMQ server took more time to process messages. We acknowledge that there are a large number of factors involved in and potentially affecting the performance, and that the response time is merely one of the properties that ought to be considered in making a design decision.
使用Actor模型的Amazon Web Services上可扩展Web推送架构的设计、原型实现和比较
推送技术已经成为许多需要近实时通知的web应用程序的重要组成部分。超文本传输协议(Hypertext Transfer Protocol, HTTP)广泛用于客户端和服务器之间的信息交换。物联网(IoT)的发展和互联网接入向新领域的扩展/渗透,导致互联网用户数量不断快速增长。因此,可伸缩性已成为现代web应用程序的关键需求之一。可扩展性的挑战之一是扩展web推送应用程序,因为它们受到不可共享资源和有状态特性的限制。亚马逊网络服务(AWS)是领先的云服务提供商,提供多种服务。web推送应用程序可以利用AWS提供的服务。如果其他服务不能满足他们的业务需求,开发人员可以在Amazon Elastic Compute Cloud (EC2)上构建他们的整个服务堆栈。为了启用可伸缩性特性,需要一个集中式消息中介来跨web-push节点编排和协调消息。为了优化数据流,应该从上游到下游实现发布-订阅模式。本文研究了可以作为构建块来创建可扩展的web推送应用程序的技术,并提出了使用三种不同消息传递服务的三种架构,即Amazon Simple Notification Service (SNS), Redis Pub/Sub和Apache ActiveMQ。本文介绍了两种推拉模型和一种自适应推拉模型,并进行了实验比较。由于参与者模型是一个健壮的模型,它被用于处理并发性和协调消息服务器和web客户端之间的消息流。我们创建了一个聊天室应用程序,用不同的标准和条件来评估体系结构,我们实验使用的推送技术是WebSocket。从我们的实验中,我们发现由于web服务调用的开销,Amazon SNS的表现相对较差。使用Redis Pub/Sub和ActiveMQ的架构表现同样好,尽管ActiveMQ服务器需要更多的时间来处理消息。我们承认,有很多因素会影响性能,响应时间只是在做出设计决策时应该考虑的属性之一。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信