EmintWeb: Creation of embedded web applications in C++ for specific systems

IF 2.4 4区 计算机科学 Q2 COMPUTER SCIENCE, SOFTWARE ENGINEERING
Juan Domingo, Jose Ignacio Panach, Esther Dura
{"title":"EmintWeb: Creation of embedded web applications in C++ for specific systems","authors":"Juan Domingo,&nbsp;Jose Ignacio Panach,&nbsp;Esther Dura","doi":"10.1016/j.softx.2024.101809","DOIUrl":null,"url":null,"abstract":"<div><p>Most contemporary web applications are primarily coded in interpreted languages (JavaScript, PHP, Python...) and are initiated by the web server. This requires solving the persistence issue: HTTP/HTTPS is a stateless protocol but user identity and computational state across consecutive requests must be preserved, typically using cookies and/or backend database servers.</p><p>This work develops embedded web applications: single compiled executable programs that encapsulate a web server. These applications are coded in a compiled language (in our case, C++). They initiate a separate thread for each session to establish optionally encrypted communication with the client and the HTML5 code for each page is dynamically generated at runtime.</p><p>This approach offers several advantages: it enhances security on both the server and client sides. On the server side there is only one file on disk (the executable) that can be altered. On the client side cookies are not needed and client-side code execution can be eliminated. Also, the use of compiled code enhances speed and faster application performance compared to interpreted languages.</p><p>This methodology is realized through a framework named EmintWeb (Embedded Interactive Web Development) which comprises a C++ code generator to create the HTML5 pages at runtime and link them with the business logic code of the application. Subsequently, it generates the executable that serves the application. An example of the same application developed using EmintWeb and PHP is provided to evaluate the speed and robustness of both implementations. This approach is not a replacement for current web frameworks but a software system to build web applications using C++ for systems that require the specific characteristics mentioned before.</p></div>","PeriodicalId":21905,"journal":{"name":"SoftwareX","volume":null,"pages":null},"PeriodicalIF":2.4000,"publicationDate":"2024-07-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S2352711024001808/pdfft?md5=8ad0f1465c44b085b9a0f38d9c34169f&pid=1-s2.0-S2352711024001808-main.pdf","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"SoftwareX","FirstCategoryId":"94","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S2352711024001808","RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q2","JCRName":"COMPUTER SCIENCE, SOFTWARE ENGINEERING","Score":null,"Total":0}
引用次数: 0

Abstract

Most contemporary web applications are primarily coded in interpreted languages (JavaScript, PHP, Python...) and are initiated by the web server. This requires solving the persistence issue: HTTP/HTTPS is a stateless protocol but user identity and computational state across consecutive requests must be preserved, typically using cookies and/or backend database servers.

This work develops embedded web applications: single compiled executable programs that encapsulate a web server. These applications are coded in a compiled language (in our case, C++). They initiate a separate thread for each session to establish optionally encrypted communication with the client and the HTML5 code for each page is dynamically generated at runtime.

This approach offers several advantages: it enhances security on both the server and client sides. On the server side there is only one file on disk (the executable) that can be altered. On the client side cookies are not needed and client-side code execution can be eliminated. Also, the use of compiled code enhances speed and faster application performance compared to interpreted languages.

This methodology is realized through a framework named EmintWeb (Embedded Interactive Web Development) which comprises a C++ code generator to create the HTML5 pages at runtime and link them with the business logic code of the application. Subsequently, it generates the executable that serves the application. An example of the same application developed using EmintWeb and PHP is provided to evaluate the speed and robustness of both implementations. This approach is not a replacement for current web frameworks but a software system to build web applications using C++ for systems that require the specific characteristics mentioned before.

EmintWeb:用 C++ 为特定系统创建嵌入式网络应用程序
大多数当代网络应用程序主要以解释型语言(JavaScript、PHP、Python......)编码,并由网络服务器启动。这就需要解决持久性问题:HTTP/HTTPS 是一种无状态协议,但用户身份和计算状态必须在连续请求中得到保存,通常使用 cookies 和/或后台数据库服务器。这些应用程序是用编译语言(在我们的例子中是 C++)编写的。它们为每个会话启动一个单独的线程,与客户端建立可选的加密通信,每个页面的 HTML5 代码在运行时动态生成。在服务器端,磁盘上只有一个文件(可执行文件)可以更改。在客户端,不需要 cookie,客户端代码的执行也可以避免。此外,与解释型语言相比,使用编译后的代码可以提高速度,加快应用程序的性能。这种方法是通过一个名为 EmintWeb(嵌入式交互式 Web 开发)的框架实现的,该框架包括一个 C++ 代码生成器,用于在运行时创建 HTML5 页面,并将其与应用程序的业务逻辑代码连接起来。随后,它生成为应用程序服务的可执行文件。我们提供了一个使用 EmintWeb 和 PHP 开发相同应用程序的示例,以评估两种实现方式的速度和稳健性。这种方法并不是当前网络框架的替代品,而是一种软件系统,用于使用 C++ 为需要上述特定特性的系统构建网络应用程序。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
SoftwareX
SoftwareX COMPUTER SCIENCE, SOFTWARE ENGINEERING-
CiteScore
5.50
自引率
2.90%
发文量
184
审稿时长
9 weeks
期刊介绍: SoftwareX aims to acknowledge the impact of software on today''s research practice, and on new scientific discoveries in almost all research domains. SoftwareX also aims to stress the importance of the software developers who are, in part, responsible for this impact. To this end, SoftwareX aims to support publication of research software in such a way that: The software is given a stamp of scientific relevance, and provided with a peer-reviewed recognition of scientific impact; The software developers are given the credits they deserve; The software is citable, allowing traditional metrics of scientific excellence to apply; The academic career paths of software developers are supported rather than hindered; The software is publicly available for inspection, validation, and re-use. Above all, SoftwareX aims to inform researchers about software applications, tools and libraries with a (proven) potential to impact the process of scientific discovery in various domains. The journal is multidisciplinary and accepts submissions from within and across subject domains such as those represented within the broad thematic areas below: Mathematical and Physical Sciences; Environmental Sciences; Medical and Biological Sciences; Humanities, Arts and Social Sciences. Originating from these broad thematic areas, the journal also welcomes submissions of software that works in cross cutting thematic areas, such as citizen science, cybersecurity, digital economy, energy, global resource stewardship, health and wellbeing, etcetera. SoftwareX specifically aims to accept submissions representing domain-independent software that may impact more than one research domain.
×
引用
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学术文献互助群
群 号:481959085
Book学术官方微信