文章的正确链接:
Gibadullin R.F.
富客户端应用程序中的线程安全控制调用
// 软件系统和计算方法.
2022. № 4.
和。 1-19.
DOI: 10.7256/2454-0714.2022.4.39029 EDN: IAXOMA URL: https://cn.nbpublish.com/library_read_article.php?id=39029
注释,注释:
在丰富的客户端应用程序中发布第一个版本.NET Framework时,有一个专注于消息处理周期的模板,其中使用内置队列从工作线程传输执行单元。 接下来,开发了一个广义的ISynchronizeInvoke解决方案,其中源线程可以将委托排队到接收器线程,并作为可选选项等待此委托的完成。 架构中引入异步页面支持后ASP.NET ISynchronizeInvoke模板不相似,因为异步ASP.NET 页面不映射到单个线程。 这是创建一个更通用的解决方案–SynchronizationContext的原因,这是研究的主题。 本文提供了如何在不违反用户应用程序的线程安全性的情况下从工作线程更新用户界面元素的实际示例。 在这方面,提出了解决方案:使用Beginlnvoke或Invoke方法对用户界面线程消息对此委托进行排队;通过SynchronizationContext类的Current属性捕获用户界面线程的同步上下文;使用过时的BackgroundWorker类, SynchronizationContext抽象类在平台中实现的特殊性并没有被忽略ASP.NET ... 关于使用封送机制的实用建议是在与集中服务器开发多客户端聊天的例子上形成的。
关键词:
编程, 多线程, 视窗表格, Windows演示文稿基础, 通用Windows平台, 同步上下文, 代表们, NET框架, 并行编程, 设计模式
文章的正确链接:
Kiryanov D.A.
可扩展的聚合系统,可处理50,000个RSS源
// 软件系统和计算方法.
2022. № 4.
和。 20-38.
DOI: 10.7256/2454-0714.2022.4.39124 EDN: FLDOVB URL: https://cn.nbpublish.com/library_read_article.php?id=39124
注释,注释:
The subject of the study is the architecture of the RSS feed aggregation system. The author considers in detail such aspects of the topic as choosing the right data aggregation strategy, an approach to scaling a distributed system, designing and implementing the main modules of the system, such as an aggregation strategy definition module, a content aggregation module, a data processing module, a search module. Particular attention in this study is given to a detailed description of the libraries and frameworks chosen for the implementation of the system under consideration, as well as databases. The main part of the system under consideration is implemented in the C# programming language (.Net Core) and is cross-platform. The study describes the interaction with the main data stores used in the development of the aggregation system, which are PostgreSQL and Elasticsearch. The main conclusion of the study is that before developing an aggregation system, it is necessary to analyze the publication activity of data sources, on the basis of which it is possible to form an acceptable strategy for updating the search index, saving a significant amount of resources. computing power. Content aggregation systems, such as the one considered in this study, should be distributed, built on the basis of event-driven and microservice architectures. This approach will make the system resistant to high loads and failures, as well as easily expandable. The author's special contribution to the study of the topic is a detailed description of the high-level architecture of the RSS aggregator, designed to process 50,000 channels.
关键词:
content categorization, cross-platform, fault tolerance, scalability, competing consumers pattern, microservice architecture, RabbitMQ, Elasticsearch, RSS aggregation, expert system
文章的正确链接:
Barabash K.A., Mangusheva A.R., Obukhova M.Y., Grigoryan K.A.
LISP解释器的开发
// 软件系统和计算方法.
2022. № 4.
和。 39-53.
DOI: 10.7256/2454-0714.2022.4.39289 EDN: ZAAPXY URL: https://cn.nbpublish.com/library_read_article.php?id=39289
注释,注释:
本文重点介绍了LISP解释器开发的各个方面。 尽管LISP现在并不是最流行的语言(在2022年11月的TIOBE指数中,这种语言排在第30位),但作者所做的工作是相关的。 今天许多流行的想法和软件技术最初是使用LISP机器开发的。 开发的解释器允许程序员避免定义程序元素(函数,类等)。)不必要的。 此外,开发结果允许您运行任何返回有意义结果的LISP实体。 现代LISP解释器没有重载函数的能力,这就是为什么用户必须记住大量的函数名,这些函数名的动作是相同类型的。 这使学习过程大大复杂化,因为您必须在文档中查找原始函数的名称。 正因为如此,大多数潜在用户退出了培训,回到了现代编程语言,而不知道LISP语言的可能性。 这篇文章揭示了一个LISP解释器的创建,它能够在与对象交互的方便性方面与现代编程语言竞争。 本文还提出了一种方法,通过对对象的引用计数来提供垃圾回收机制。
关键词:
通用lisp, 横向lisp, lisp编程, 编程语言, C语言, 垃圾收集器, 解释器开发, lisp解释器, 面向对象编程, 函数式编程
文章的正确链接:
Volushkova V.L., Volushkova A.Y.
使用API优先时作为微服务API工件的单一规范格式
// 软件系统和计算方法.
2022. № 4.
和。 54-62.
DOI: 10.7256/2454-0714.2022.4.39235 EDN: MFEXNN URL: https://cn.nbpublish.com/library_read_article.php?id=39235
注释,注释:
研究的对象是微服务的交互协议(API-应用程序编程接口)。 微服务API是开发的一个重要对象,因为微服务是由不同的开发团队创建的,尽管如此,可能彼此依赖。 为了建立一个统一的微服务交互系统,采用了API优先服务器应用程序通信协议同步的方法。 这项工作的目的是创建一种使用spring库为服务器java应用程序开发微服务API的方法。 该方法基于这样一个事实,即API被声明为微服务应用程序开发的主要部分,因此在初始设计阶段创建。 提出了一种基于单一微服务API和TDD测试技术的方法,提高了管理java服务器应用程序开发的效率。 微服务API是使用规范作为API工件创建的。 开发的方法允许:使用由另一个团队创建的API,而不考虑项目语言;提高开发团队的生产力;定性地记录方法和模型;减少手工编写程序的数量,因为代码是从规范自动生成的;通过使用TDD和在实现之前使用API,比传统的设计方法(代码-frist)更早地识别API设计错误。
关键词:
空气污染指数, 空气污染指数优先, 代码-frist, 测试, TDD技术, 微型服务, 应用服务器, 发展周期, Rest客户端, 春天
文章的正确链接:
Koronkov S.O.
自动研究直升机飞行员工作量的方法
// 软件系统和计算方法.
2022. № 4.
和。 63-74.
DOI: 10.7256/2454-0714.2022.4.36459 EDN: MIVFFZ URL: https://cn.nbpublish.com/library_read_article.php?id=36459
注释,注释:
该研究的主题是需要对直升机飞行员的工作量进行研究与缺乏监管和技术文件规定的方法之间的矛盾,以确保在测试新飞机期间进行此类研究。 该研究的目的是提供在测试现代化和创建的直升机模型以及飞行训练期间对飞行员工作量进行客观化的可能性。 作者详细研究了该主题的各个方面,如飞行员工作量研究计划的发展;通过安装一套研究注意力储备的技术手段完成直升机;确定飞行员的工作量;确定飞行员工作量的整体指标并根据工作量研究结果得出结论。 进行的理论和实验研究的主要结论是,开发的研究直升机飞行员工作量的方法,以确定他在进行专业活动时的注意力储备为基础,为在半自然建模复合体上进行直升机测试和飞行模拟器训练期间的工作量提供了充分的定义。 对所开发解决方案的有效性进行验证和研究的结果表明,直升机测试期间飞行员工作量的客观化提供了一个机会,可以证实有关改进和改进直升机舱布局的行业建议,使测试计划飞行部分的要点合理化,并加强飞行人员的专业培训过程。
关键词:
直升机飞行员, 工作量, 注意储备, 解决一个额外的任务, 机组人员培训, 航空设备测试, 飞行员模拟器训练, 航空人机工程学, 飞行工作心理学, 航空心理生理学
文章的正确链接:
Kovalev S., Smirnova T., Filippov V., Andreeva A.
关于建模一个社会群体的数字双打
// 软件系统和计算方法.
2022. № 4.
和。 75-83.
DOI: 10.7256/2454-0714.2022.4.39264 EDN: MPUQIE URL: https://cn.nbpublish.com/library_read_article.php?id=39264
注释,注释:
研究的对象是数学建模方法。 该研究的主题是数学方法在建模社会群体的数字双胞胎中的应用。 这项工作的目的是为一个社会群体的数字对应者建模。 数字孪生体是物理对象或过程的数字副本,通过正确的方法,它有助于改进主要和辅助业务流程。 这一概念是第四次工业革命的一部分,旨在帮助更快地发现问题,找出在不同条件下会发生什么,从而生产出更好的产品。 在本文中,考虑了一些应用方面,提出了社会群体数字双胞胎数学理论的主要条款。 为了解决创建社会群体(学生)的数字双数作为工具之一的问题,作者提出使用人口算法的技术。 该研究的新颖之处在于应用swarm part算法对社会群体的数字双胞胎进行建模。 选择粒子群方法作为研究工具。 由于所研究的社会群体在空间中找到最佳位置,因此基于它们的粒子群模型的数字孪生的元素可以在空间中搜索,特别是函数的极值。 例如,它适用于在机器学习中找到损失函数的最小值。 使用三个库进行了Java脚本语言的图形模拟.js的。 数据处理是使用C#作业系统执行的,该系统提供计算过程的并行化,并集成到实体组件系统中。 实施了一个程序,将学生群体的活动模拟为社会群体数字双重的构成要素之一。 群算法在实际应用领域前景广阔。 在他们的基础上,不仅可以解决数字双胞胎的问题,还可以管理机器人,机器人系统和复合体组。
关键词:
数字孪生, 社会团体, 数学模型, 群体算法, boids模型, Java脚本语言, 人口算法, 职位系统库, 搜索算法, 模型的并行化