论文标题
选定的互联网通信协议的比较审查
Comparative review of selected Internet communication protocols
论文作者
论文摘要
借助各种通信方法和协议,许多软件架构师面临着选择服务以共享信息的最佳方法的问题。为了使通信技术具有功能性和实用性,它应该使开发人员能够为处理的数据定义一组CRUD方法。研究团队比较了本文中最常用的数据传输协议和概念:REST,Websocket,GRPC GraphQL和SOAP。为此,在Python中实现了一组Web服务器,每个网络服务器都使用了一项检查的技术。然后,团队对一组定义的操作进行了自动测量时间和数据传输开销:创建一个实体,检索100个实体的列表并获取一个实体的详细信息。设计测试是为了避免数据库连接或Docker-Compose环境特征所干扰的结果。研究小组得出结论,GRPC是最有效,最可靠的数据传输方法。另一方面,GraphQl原来是所有人中最慢的通信方法。此外,其服务器和客户库库在Web服务器中使用适当使用造成了最大的问题。由于与Python的兼容性有限,并且在现代Web解决方案中缺乏知名度,因此SOAP没有参加基准测试。
With a large variety of communication methods and protocols, many software architects face the problem of choosing the best way for services to share information. For communication technology to be functional and practical, it should enable developers to define a complete set of CRUD methods for the processed data. The research team compared the most commonly used data transfer protocols and concepts in this paper: REST, WebSocket, gRPC GraphQL and SOAP. To do that, a set of web servers was implemented in Python, each using one of the examined technologies. Then, the team performed an automated benchmark measuring time and data transfer overhead for a set of defined operations: creating an entity, retrieving a list of 100 entities and fetching details of one entity. Tests were designed to avoid the results being interfered by database connection or docker-compose environment characteristics. The research team has concluded that gRPC was the most efficient and reliable data transfer method. On the other hand, GraphQL turned out to be the slowest communication method of all. Moreover, its server and client libraries caused the most problems with proper usage in a web server. SOAP did not participate in benchmarking due to limited compatibility with Python and a lack of popularity in modern web solutions.