首页 > 最新文献

Программные системы и вычислительные методы最新文献

英文 中文
Syntax Tree Development for Automated Serial-to-Parallel Code Translator for Multicore Processors 多核处理器自动串行到并行代码转换器的语法树开发
Pub Date : 2023-01-01 DOI: 10.7256/2454-0714.2023.1.38483
I. Viktorov, R. Gibadullin
The emergence of multicore architectures has extremely stimulated the area of parallel computing. However, developing a parallel program and manually paralleling inherited sequential program codes are time-consuming work. The programmer should have good skills in using parallel programming methods. This fact determines the relevance of the subject of the research – the development of a serial-to-parallel code translator. The article gives a review of existing solutions in the chosen direction of research and considers their advantages and disadvantages. The principle of formation of a syntactic tree which is based on JSON format (the text format of data exchange based on JavaScript) is offered and an example of formation of a syntactic tree on the basis of this principle is considered. The result of the work is an approach for building a program platform for translating sequential code into parallel code. The distinctive feature of the developed platform is the web-service, which potentially allows you to extend the translator with other programming languages. The interaction with the programming environment is realized by means of REST-requests (HTTP-requests designed to call remote procedures). The developed software platform consists of three modules: the query processing module, which provides interaction with external systems through REST-requests; the tree building module, which forms a syntax tree on the basis of the source program code; the code conversion module, which obtains parallel program code on the basis of the syntax tree.
多核架构的出现极大地刺激了并行计算领域的发展。然而,开发并行程序和手动并行继承顺序程序代码是一项耗时的工作。程序员应该具备使用并行编程方法的良好技能。这一事实决定了本研究课题的相关性——开发一种串并行代码翻译器。本文对所选研究方向的现有解决方案进行了回顾,并考虑了它们的优缺点。给出了基于JSON格式(基于JavaScript的数据交换文本格式)的语法树的形成原理,并给出了基于该原理的语法树的形成实例。这项工作的结果是建立一个将顺序代码转换为并行代码的程序平台的方法。开发的平台的独特特性是web服务,它可能允许您使用其他编程语言扩展翻译程序。与编程环境的交互是通过rest请求(设计用于调用远程过程的http请求)实现的。开发的软件平台包括三个模块:查询处理模块,通过rest请求提供与外部系统的交互;树形构建模块,在源程序代码的基础上形成语法树;代码转换模块,在语法树的基础上获取并行程序代码。
{"title":"Syntax Tree Development for Automated Serial-to-Parallel Code Translator for Multicore Processors","authors":"I. Viktorov, R. Gibadullin","doi":"10.7256/2454-0714.2023.1.38483","DOIUrl":"https://doi.org/10.7256/2454-0714.2023.1.38483","url":null,"abstract":"\u0000 The emergence of multicore architectures has extremely stimulated the area of parallel computing. However, developing a parallel program and manually paralleling inherited sequential program codes are time-consuming work. The programmer should have good skills in using parallel programming methods. This fact determines the relevance of the subject of the research – the development of a serial-to-parallel code translator. The article gives a review of existing solutions in the chosen direction of research and considers their advantages and disadvantages. The principle of formation of a syntactic tree which is based on JSON format (the text format of data exchange based on JavaScript) is offered and an example of formation of a syntactic tree on the basis of this principle is considered. The result of the work is an approach for building a program platform for translating sequential code into parallel code. The distinctive feature of the developed platform is the web-service, which potentially allows you to extend the translator with other programming languages. The interaction with the programming environment is realized by means of REST-requests (HTTP-requests designed to call remote procedures). The developed software platform consists of three modules: the query processing module, which provides interaction with external systems through REST-requests; the tree building module, which forms a syntax tree on the basis of the source program code; the code conversion module, which obtains parallel program code on the basis of the syntax tree.\u0000","PeriodicalId":155484,"journal":{"name":"Программные системы и вычислительные методы","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130117495","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 3
The Eye-Tracking Study of the Film Frame Composition Influence on the Visual Perception 电影画面构成对视觉感知影响的眼动追踪研究
Pub Date : 2023-01-01 DOI: 10.7256/2454-0714.2023.1.39634
The research is aimed at studying the elements that affect the visual perception of the film frame in order to develop methodological recommendations for the process harmonization of the film frame. The object of research is a film frame. The subject of the research is the technology of film frame processing. The purpose of this work is to obtain experimental data of the film frame viewing pattern and to identify statistical patterns to confirm or refute the formulated hypothesis. The goal of the study is to conduct an experimental study of the influence of composition on the parameters of the film frame viewing pattern. The influence of the factor of the mutual ratio of the areas of the centers of interest to the background on the parameters of the template for viewing the stimulus material is investigated. As a result, the methodology has been developed for conducting experimental studies of human perception of visual information using an eye-tracking software and hardware complex. When analyzing data on the influence of the objects size factor. The results obtained show that under the condition that objects occupy a small area of the frame, the observer needs more time to consider this frame. As well as in the case when objects occupy most of the frame (more than 40%). In the first case, due to the small size of the objects, it becomes more difficult for the observer to find objects in the frame space. In the second case, it takes time to identify objects, since they tend to be perceived as a background due to their large size.
该研究旨在研究影响电影框架视觉感知的因素,以便为电影框架的过程协调制定方法学建议。研究的对象是一个电影框架。本课题的研究对象是胶片帧处理技术。本工作的目的是获得电影帧观看模式的实验数据,并识别统计模式来证实或反驳所制定的假设。本研究的目的是对构图对电影画面观看模式参数的影响进行实验研究。研究了兴趣中心面积与背景的互比因子对观察刺激材料模板参数的影响。因此,该方法已被开发用于使用眼动追踪软件和硬件复合物进行人类视觉信息感知的实验研究。在分析数据时对对象大小的影响因素。结果表明,在物体占据帧的较小面积的情况下,观察者需要更多的时间来考虑该帧。以及对象占据大部分框架(超过40%)的情况。在第一种情况下,由于对象的尺寸较小,观察者在帧空间中寻找对象变得更加困难。在第二种情况下,识别物体需要时间,因为它们很大,往往被视为背景。
{"title":"The Eye-Tracking Study of the Film Frame Composition Influence on the Visual Perception","authors":"","doi":"10.7256/2454-0714.2023.1.39634","DOIUrl":"https://doi.org/10.7256/2454-0714.2023.1.39634","url":null,"abstract":"\u0000 The research is aimed at studying the elements that affect the visual perception of the film frame in order to develop methodological recommendations for the process harmonization of the film frame. The object of research is a film frame. The subject of the research is the technology of film frame processing. The purpose of this work is to obtain experimental data of the film frame viewing pattern and to identify statistical patterns to confirm or refute the formulated hypothesis. The goal of the study is to conduct an experimental study of the influence of composition on the parameters of the film frame viewing pattern. The influence of the factor of the mutual ratio of the areas of the centers of interest to the background on the parameters of the template for viewing the stimulus material is investigated. As a result, the methodology has been developed for conducting experimental studies of human perception of visual information using an eye-tracking software and hardware complex. When analyzing data on the influence of the objects size factor. The results obtained show that under the condition that objects occupy a small area of the frame, the observer needs more time to consider this frame. As well as in the case when objects occupy most of the frame (more than 40%). In the first case, due to the small size of the objects, it becomes more difficult for the observer to find objects in the frame space. In the second case, it takes time to identify objects, since they tend to be perceived as a background due to their large size.\u0000","PeriodicalId":155484,"journal":{"name":"Программные системы и вычислительные методы","volume":"88 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132642151","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
Methodology of automated study of the workload of a helicopter pilot 直升机飞行员工作负荷的自动研究方法
Pub Date : 2022-04-01 DOI: 10.7256/2454-0714.2022.4.36459
Sergei Olegovich Koronkov
The subject of the study is the contradiction between the need to conduct a study of the workload of helicopter pilots and the lack of methods regulated by regulatory and technical documents to ensure that such studies are carried out during the testing of new aircraft. The purpose of the study was to ensure the possibility of objectification of the pilot's workload during testing of modernized and created helicopter models, as well as in the process of flight simulator training. The author examines in detail such aspects of the topic as the development of a pilot workload research program; the completion of a helicopter by installing a set of technical means for studying attention reserves; determining the pilot's workload; determining the integral indicator of the pilot's workload and drawing up a conclusion based on the results of the workload study.     The main conclusion of the conducted theoretical and experimental research is that the developed methodology for studying the workload of a helicopter pilot, based on determining the reserves of his attention when performing professional activities, provides an adequate definition of the workload when performing helicopter tests on semi-natural modeling complexes and during flight simulator training. The results of verification and research of the effectiveness of the developed solutions have shown that the objectification of the pilot's workload during helicopter testing provides an opportunity to substantiate industry recommendations on the refinement and improvement of the layout of helicopter cabins, to rationalize the points of the flight part of the test program and to intensify the process of professional training of flight personnel.
这项研究的主题是对直升机飞行员工作量进行研究的需要与缺乏监管和技术文件规定的方法以确保在新飞机测试期间进行此类研究之间的矛盾。该研究的目的是确保在现代化和创建的直升机模型测试期间以及在飞行模拟器训练过程中飞行员工作量客观化的可能性。作者详细研究了该主题的一些方面,如试点工作量研究计划的发展;完成了一套通过安装直升机来研究注意力储备的技术手段;确定飞行员的工作量;确定飞行员工作量的积分指标,并根据工作量研究的结果得出结论。所进行的理论和实验研究的主要结论是,在确定直升机飞行员在进行专业活动时的注意力储备的基础上,制定了研究直升机飞行员工作量的方法,为在半自然建模复合体上进行直升机测试和飞行模拟器训练期间进行工作量提供了充分的定义。对所开发的解决方案的有效性的验证和研究结果表明,在直升机测试过程中,飞行员工作量的客观化提供了一个机会,可以证实有关改进和改进直升机机舱布局的行业建议,使测试计划的飞行部分要点合理化,并加强飞行人员的专业培训过程。
{"title":"Methodology of automated study of the workload of a helicopter pilot","authors":"Sergei Olegovich Koronkov","doi":"10.7256/2454-0714.2022.4.36459","DOIUrl":"https://doi.org/10.7256/2454-0714.2022.4.36459","url":null,"abstract":"\u0000 The subject of the study is the contradiction between the need to conduct a study of the workload of helicopter pilots and the lack of methods regulated by regulatory and technical documents to ensure that such studies are carried out during the testing of new aircraft. The purpose of the study was to ensure the possibility of objectification of the pilot's workload during testing of modernized and created helicopter models, as well as in the process of flight simulator training. The author examines in detail such aspects of the topic as the development of a pilot workload research program; the completion of a helicopter by installing a set of technical means for studying attention reserves; determining the pilot's workload; determining the integral indicator of the pilot's workload and drawing up a conclusion based on the results of the workload study.     The main conclusion of the conducted theoretical and experimental research is that the developed methodology for studying the workload of a helicopter pilot, based on determining the reserves of his attention when performing professional activities, provides an adequate definition of the workload when performing helicopter tests on semi-natural modeling complexes and during flight simulator training. The results of verification and research of the effectiveness of the developed solutions have shown that the objectification of the pilot's workload during helicopter testing provides an opportunity to substantiate industry recommendations on the refinement and improvement of the layout of helicopter cabins, to rationalize the points of the flight part of the test program and to intensify the process of professional training of flight personnel. \u0000","PeriodicalId":155484,"journal":{"name":"Программные системы и вычислительные методы","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127865133","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
About Modeling Digital Twins of a Social Group 关于一个社会群体的数字双胞胎建模
Pub Date : 2022-04-01 DOI: 10.7256/2454-0714.2022.4.39264
S. Kovalev, T. Smirnova, V. Filippov, A. Andreeva
The object of the study is mathematical modeling methods. The subject of the study is the application of mathematical methods in modeling digital twins of a social group. The aim of the work is to model the digital counterparts of a social group. A digital double is a digital copy of a physical object or process, with the right approach, it helps to improve the main and auxiliary business processes. This concept is part of the fourth industrial revolution and is designed to help detect problems faster, find out what will happen to the original in different conditions and, as a result, produce better products. In this article, some applied aspects are considered, the main provisions of the mathematical theory of digital twins of social groups are presented. To solve the problem of creating a digital double of a social group (students) as one of the tools, the authors proposed to use the technologies of population algorithms. The novelty of the research consists in the application of the swarm part algorithm for modeling digital twins of a social group. The particle swarm method was chosen as a research tool. As the social group under study finds the optimal position in space, so the element of the digital twin of the particle swarm model based on them can search in space, in particular, the extremes of functions. Which, for example, is applicable to finding the minimum of the loss function in machine learning. A graphical simulation in the Java Script language was performed using the three library.js. Data processing was performed using the C# Job System, which provides parallelization of computing processes and is integrated into the Entity Component System. A program was implemented that simulates the activity of a student group as one of the constituent elements of a digital twin of a social group. Swarm algorithms are promising in the field of practical application. On their basis, it is possible not only to solve the problems of digital twins, but also to manage groups of robots, robotic systems and complexes.
研究的对象是数学建模方法。本研究的主题是数学方法在社会群体数字双胞胎建模中的应用。这项工作的目的是为一个社会群体的数字对应物建模。数字替身是物理对象或流程的数字副本,通过正确的方法,它有助于改进主要和辅助业务流程。这个概念是第四次工业革命的一部分,旨在帮助更快地发现问题,找出原始产品在不同条件下会发生什么,从而生产出更好的产品。本文从应用方面考虑,给出了社会群体数字孪生数学理论的主要规定。为了解决作为工具之一的社会群体(学生)的数字双重创造问题,作者提出使用人口算法技术。本研究的新颖之处在于将群体部分算法应用于社会群体的数字双胞胎建模。选择粒子群方法作为研究工具。由于所研究的社会群体在空间中找到了最优位置,因此基于它们的粒子群模型的数字孪生元素可以在空间中搜索,特别是函数的极值。例如,它适用于寻找机器学习中损失函数的最小值。在Java Script语言中使用三个库.js进行图形模拟。数据处理使用c#作业系统进行,该系统提供并行计算过程,并集成到实体组件系统中。实施了一个程序,模拟学生群体的活动,作为社会群体的数字双胞胎的组成要素之一。群算法在实际应用领域具有广阔的应用前景。在此基础上,不仅可以解决数字双胞胎的问题,还可以管理机器人群体、机器人系统和综合体。
{"title":"About Modeling Digital Twins of a Social Group","authors":"S. Kovalev, T. Smirnova, V. Filippov, A. Andreeva","doi":"10.7256/2454-0714.2022.4.39264","DOIUrl":"https://doi.org/10.7256/2454-0714.2022.4.39264","url":null,"abstract":"\u0000 The object of the study is mathematical modeling methods. The subject of the study is the application of mathematical methods in modeling digital twins of a social group. The aim of the work is to model the digital counterparts of a social group. A digital double is a digital copy of a physical object or process, with the right approach, it helps to improve the main and auxiliary business processes. This concept is part of the fourth industrial revolution and is designed to help detect problems faster, find out what will happen to the original in different conditions and, as a result, produce better products. In this article, some applied aspects are considered, the main provisions of the mathematical theory of digital twins of social groups are presented. To solve the problem of creating a digital double of a social group (students) as one of the tools, the authors proposed to use the technologies of population algorithms. The novelty of the research consists in the application of the swarm part algorithm for modeling digital twins of a social group. The particle swarm method was chosen as a research tool. As the social group under study finds the optimal position in space, so the element of the digital twin of the particle swarm model based on them can search in space, in particular, the extremes of functions. Which, for example, is applicable to finding the minimum of the loss function in machine learning. A graphical simulation in the Java Script language was performed using the three library.js. Data processing was performed using the C# Job System, which provides parallelization of computing processes and is integrated into the Entity Component System. A program was implemented that simulates the activity of a student group as one of the constituent elements of a digital twin of a social group. Swarm algorithms are promising in the field of practical application. On their basis, it is possible not only to solve the problems of digital twins, but also to manage groups of robots, robotic systems and complexes.\u0000","PeriodicalId":155484,"journal":{"name":"Программные системы и вычислительные методы","volume":"299 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133471951","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Development of the LISP Interpreter LISP解释器的开发
Pub Date : 2022-04-01 DOI: 10.7256/2454-0714.2022.4.39289
K. Barabash, Alina Mangusheva, M. Obukhova, Karen Albertovich Grigoryan
The article highlights aspects of the development of the LISP interpreter. Despite the fact that LISP is not the most popular language these days (in the TIOBE index for November 2022, this language is in 30th place), the work done by the authors is relevant. Many popular ideas and software technologies today were first developed using LISP machines. The developed interpreter allows the programmer to avoid defining program elements (functions, classes, etc.) unnecessarily. Also, the development result allows you to run any LISP entity that returns a meaningful result. Modern LISP interpreters do not have the ability to overload functions, which is why users have to memorize a huge number of function names whose actions are of the same type. This greatly complicates the learning process, since you have to look for the names of primitive functions in the documentation. Because of this, most of the potential users drop out of training, returning to modern programming languages, without knowing the possibilities of the LISP language. The article reveals the creation of a LISP interpreter capable of competing with modern programming languages in terms of ease of interaction with objects. The article also suggests an approach that provides a garbage collection mechanism by counting references to objects.
本文重点介绍了LISP解释器开发的各个方面。尽管LISP现在不是最流行的语言(在2022年11月的TIOBE索引中,这种语言排在第30位),但作者所做的工作是相关的。今天许多流行的思想和软件技术最初都是使用LISP机器开发的。开发的解释器允许程序员避免不必要地定义程序元素(函数、类等)。此外,开发结果允许您运行任何返回有意义结果的LISP实体。现代LISP解释器不具备重载函数的能力,这就是为什么用户必须记住大量操作类型相同的函数名的原因。这极大地复杂化了学习过程,因为您必须在文档中查找原语函数的名称。因此,大多数潜在用户放弃了培训,回到现代编程语言,而不知道LISP语言的可能性。本文揭示了如何创建一个LISP解释器,该解释器能够在与对象交互的便利性方面与现代编程语言竞争。本文还提出了一种通过计算对对象的引用来提供垃圾收集机制的方法。
{"title":"Development of the LISP Interpreter","authors":"K. Barabash, Alina Mangusheva, M. Obukhova, Karen Albertovich Grigoryan","doi":"10.7256/2454-0714.2022.4.39289","DOIUrl":"https://doi.org/10.7256/2454-0714.2022.4.39289","url":null,"abstract":"\u0000 The article highlights aspects of the development of the LISP interpreter. Despite the fact that LISP is not the most popular language these days (in the TIOBE index for November 2022, this language is in 30th place), the work done by the authors is relevant. Many popular ideas and software technologies today were first developed using LISP machines. The developed interpreter allows the programmer to avoid defining program elements (functions, classes, etc.) unnecessarily. Also, the development result allows you to run any LISP entity that returns a meaningful result. Modern LISP interpreters do not have the ability to overload functions, which is why users have to memorize a huge number of function names whose actions are of the same type. This greatly complicates the learning process, since you have to look for the names of primitive functions in the documentation. Because of this, most of the potential users drop out of training, returning to modern programming languages, without knowing the possibilities of the LISP language. The article reveals the creation of a LISP interpreter capable of competing with modern programming languages in terms of ease of interaction with objects. The article also suggests an approach that provides a garbage collection mechanism by counting references to objects.\u0000","PeriodicalId":155484,"journal":{"name":"Программные системы и вычислительные методы","volume":"78 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132923677","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Thread-safe Control Calls in Enriched Client Applications 增强客户端应用程序中的线程安全控制调用
Pub Date : 2022-04-01 DOI: 10.7256/2454-0714.2022.4.39029
R. Gibadullin
When the first version of the .NET Framework was released, there was a pattern in enriched client applications that focused on message processing loops, where an embedded queue was used to pass execution units from worker threads. A generalized ISynchronizeInvoke solution was then developed in which the source thread could queue a delegate to the destination thread and, as an optional option, wait for that delegate to complete. After asynchronous page support was introduced into the ASP.NET architecture, the ISynchronizeInvoke pattern did not work because asynchronous ASP.NET pages are not mapped to a single thread. This was the reason for creating an even more generalized solution – SynchronizationContext, which is the subject of the research. The article uses practical examples to show how to update UI elements from worker threads without breaking thread-safety of the user application. Solutions proposed in this aspect are: using Beginlnvoke or Invoke methods to put this delegate into the UI thread message queue; capturing the UI thread synchronization context via the Current property of the SynchronizationContext class; using the deprecated BackgroundWorker class, which provides an implicit capture of the UI thread synchronization context. The peculiarity of implementation of the SynchronizationContext abstract class in ASP.NET platform is not left unnoticed. Practical recommendations on the use of marshalling mechanism on the example of development of multiclient chat with a centralized server are formulated.
当. net Framework的第一个版本发布时,在富客户端应用程序中有一种模式专注于消息处理循环,其中使用嵌入式队列来传递来自工作线程的执行单元。然后开发了一个通用的isynsynchronizeinvoke解决方案,其中源线程可以将委托排队到目标线程,并作为可选选项等待该委托完成。异步页面支持被引入ASP。. NET体系结构中,isynsynchronizeinvoke模式不起作用,因为异步ASP。. NET页不映射到单个线程。这就是创建一个更通用的解决方案的原因——SynchronizationContext,这也是本研究的主题。本文使用实际示例来展示如何在不破坏用户应用程序线程安全的情况下从工作线程更新UI元素。在这方面提出的解决方案是:使用begininvoke或Invoke方法将此委托放入UI线程消息队列;通过SynchronizationContext类的Current属性捕获UI线程同步上下文;使用已弃用的BackgroundWorker类,它提供了对UI线程同步上下文的隐式捕获。ASP中SynchronizationContext抽象类实现的特点。. NET平台并没有被忽视。在使用集中式服务器开发多客户机聊天的示例中,给出了使用编组机制的实用建议。
{"title":"Thread-safe Control Calls in Enriched Client Applications","authors":"R. Gibadullin","doi":"10.7256/2454-0714.2022.4.39029","DOIUrl":"https://doi.org/10.7256/2454-0714.2022.4.39029","url":null,"abstract":"\u0000 When the first version of the .NET Framework was released, there was a pattern in enriched client applications that focused on message processing loops, where an embedded queue was used to pass execution units from worker threads. A generalized ISynchronizeInvoke solution was then developed in which the source thread could queue a delegate to the destination thread and, as an optional option, wait for that delegate to complete. After asynchronous page support was introduced into the ASP.NET architecture, the ISynchronizeInvoke pattern did not work because asynchronous ASP.NET pages are not mapped to a single thread. This was the reason for creating an even more generalized solution – SynchronizationContext, which is the subject of the research. The article uses practical examples to show how to update UI elements from worker threads without breaking thread-safety of the user application. Solutions proposed in this aspect are: using Beginlnvoke or Invoke methods to put this delegate into the UI thread message queue; capturing the UI thread synchronization context via the Current property of the SynchronizationContext class; using the deprecated BackgroundWorker class, which provides an implicit capture of the UI thread synchronization context. The peculiarity of implementation of the SynchronizationContext abstract class in ASP.NET platform is not left unnoticed. Practical recommendations on the use of marshalling mechanism on the example of development of multiclient chat with a centralized server are formulated.\u0000","PeriodicalId":155484,"journal":{"name":"Программные системы и вычислительные методы","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129398885","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 2
A Scalable Aggregation System Designed to Process 50,000 RSS Feeds 一个可扩展的聚合系统,设计用于处理50,000个RSS提要
Pub Date : 2022-04-01 DOI: 10.7256/2454-0714.2022.4.39124
Denis Aleksandrovich Kiryanov
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.
本文研究的主题是RSS提要聚合系统的体系结构。本文从数据聚合策略的选择、分布式系统的扩展方法、聚合策略定义模块、内容聚合模块、数据处理模块、搜索模块等主要模块的设计与实现等方面进行了详细的研究。本研究特别注意详细说明为实施所考虑的系统而选择的库和框架以及数据库。所考虑的系统的主要部分是用c#编程语言实现的。Net Core),并且是跨平台的。该研究描述了在聚合系统开发中使用的主要数据存储PostgreSQL和Elasticsearch的交互。研究的主要结论是,在开发汇总系统之前,有必要对数据源的出版活动进行分析,在此基础上可以形成可接受的搜索索引更新策略,从而节省大量资源。计算能力。内容聚合系统,比如本研究中考虑的系统,应该是分布式的,建立在事件驱动和微服务架构的基础上。这种方法将使系统能够抵抗高负载和故障,并且易于扩展。作者对该主题研究的特殊贡献是详细描述了RSS聚合器的高级体系结构,设计用于处理50,000个通道。
{"title":"A Scalable Aggregation System Designed to Process 50,000 RSS Feeds","authors":"Denis Aleksandrovich Kiryanov","doi":"10.7256/2454-0714.2022.4.39124","DOIUrl":"https://doi.org/10.7256/2454-0714.2022.4.39124","url":null,"abstract":"\u0000 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.\u0000","PeriodicalId":155484,"journal":{"name":"Программные системы и вычислительные методы","volume":"107 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130921596","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
A Single Specification Format as a Microservice API Artifact when Using API-First 当使用API优先时,单一规范格式作为微服务API工件
Pub Date : 2022-04-01 DOI: 10.7256/2454-0714.2022.4.39235
V. Volushkova, Aleksandra Yurievna Volushkova
The object of research is the interaction protocols (API - Application Programming Interface) of microservices. The microservices API is an important development object because each microservice can be a client for any other microservice and be created by a separate team. To build a unified system of interaction between microservices, the API-First methodology for synchronizing communication protocols for server applications was used. The aim of the work is to create a way to develop API microservices of server java applications using spring-boot, spring-web, openapi-generator, springdoc libraries. The method is based on the fact that the API is the most important part of the product and therefore is created at the initial design stage. An approach based on a single microservices API and TDD testing technique is proposed, which increases the efficiency of managing the development of server-side java applications. The microservices API is built using the specification as the API artifact. The developed technique allows: use the created API by another team, regardless of the development language; increase the productivity of development teams; to carry out a qualitative description of methods and models; reduce the amount of routine code by generating code from the specification; identify API design errors earlier than with the standard development approach (API after implementation) by applying TDD and working with the API before it is implemented.
研究的对象是微服务的交互协议(API - Application Programming Interface)。微服务API是一个重要的开发对象,因为每个微服务都可以是任何其他微服务的客户端,并由单独的团队创建。为了在微服务之间建立一个统一的交互系统,使用了API-First方法来同步服务器应用程序的通信协议。这项工作的目的是创建一种使用spring-boot、spring-web、openapi-generator、springdoc库来开发服务器java应用程序的API微服务的方法。该方法基于API是产品最重要的部分这一事实,因此在初始设计阶段创建。提出了一种基于单一微服务API和TDD测试技术的方法,提高了管理服务器端java应用程序开发的效率。微服务API是使用规范作为API构件构建的。开发的技术允许:使用另一个团队创建的API,而不考虑开发语言;提高开发团队的生产力;对方法和模型进行定性描述;通过根据规范生成代码来减少例程代码的数量;通过应用TDD并在API实现之前使用它,比使用标准开发方法(实现后使用API)更早地识别API设计错误。
{"title":"A Single Specification Format as a Microservice API Artifact when Using API-First","authors":"V. Volushkova, Aleksandra Yurievna Volushkova","doi":"10.7256/2454-0714.2022.4.39235","DOIUrl":"https://doi.org/10.7256/2454-0714.2022.4.39235","url":null,"abstract":"\u0000 The object of research is the interaction protocols (API - Application Programming Interface) of microservices. The microservices API is an important development object because each microservice can be a client for any other microservice and be created by a separate team. To build a unified system of interaction between microservices, the API-First methodology for synchronizing communication protocols for server applications was used. The aim of the work is to create a way to develop API microservices of server java applications using spring-boot, spring-web, openapi-generator, springdoc libraries. The method is based on the fact that the API is the most important part of the product and therefore is created at the initial design stage. An approach based on a single microservices API and TDD testing technique is proposed, which increases the efficiency of managing the development of server-side java applications. The microservices API is built using the specification as the API artifact. The developed technique allows: use the created API by another team, regardless of the development language; increase the productivity of development teams; to carry out a qualitative description of methods and models; reduce the amount of routine code by generating code from the specification; identify API design errors earlier than with the standard development approach (API after implementation) by applying TDD and working with the API before it is implemented.\u0000","PeriodicalId":155484,"journal":{"name":"Программные системы и вычислительные методы","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126475510","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Problems of automation of the broadcasting and production complex 广播制作自动化问题复杂
Pub Date : 2022-03-01 DOI: 10.7256/2454-0714.2022.3.38800
S. S. Kuznetsov
In the TV and radio industry, the efficiency of the hardware and software of broadcast production complexes is the basis of competitive advantage, and therefore, in the context of global digitalization, television industry companies face the task of constantly improving broadcast production complexes. Such improvement is largely provided by new technologies, some of which are aimed at automating broadcasting processes. In the article, the author analyzes the existing problems of automation of broadcast production complexes and concludes that such problems are caused by the desire of TV and radio companies to replace the traditional approach to the production of programs using a team of specialists with software.   However, the effectiveness of this approach is questionable, especially if the release of the program is associated with live work, where in an uncertain situation it is not possible to react promptly to any events using automated software. Hence, automation of production processes in the field of broadcasting becomes an effective and economical technology only with the correct configuration of the software and careful calculation of automation prospects. The real prospects for automation of broadcast production complexes are currently in almost unexplored areas for the television sphere - the areas of voice control, which is based on artificial intelligence based on various algorithms for training artificial neural networks, which requires additional study and development of an appropriate model adapted to a specific task.
在电视广播行业中,广播制作综合体的硬件和软件的效率是竞争优势的基础,因此,在全球数字化的背景下,电视行业企业面临着不断完善广播制作综合体的任务。这种改进主要是由新技术提供的,其中一些旨在使广播过程自动化。在文章中,作者分析了广播制作综合体自动化存在的问题,并得出结论,这些问题是由电视和广播公司希望用软件取代传统的专家团队制作节目的方法造成的。然而,这种方法的有效性是值得怀疑的,特别是如果程序的发布与实时工作相关联,在不确定的情况下,使用自动化软件不可能对任何事件做出快速反应。因此,只有正确配置软件和仔细计算自动化前景,广播领域生产过程的自动化才能成为一种有效而经济的技术。广播制作综合体自动化的真正前景目前在电视领域几乎未开发的领域-语音控制领域,这是基于基于各种算法的人工智能来训练人工神经网络,这需要额外的研究和开发适合特定任务的适当模型。
{"title":"Problems of automation of the broadcasting and production complex","authors":"S. S. Kuznetsov","doi":"10.7256/2454-0714.2022.3.38800","DOIUrl":"https://doi.org/10.7256/2454-0714.2022.3.38800","url":null,"abstract":"\u0000 In the TV and radio industry, the efficiency of the hardware and software of broadcast production complexes is the basis of competitive advantage, and therefore, in the context of global digitalization, television industry companies face the task of constantly improving broadcast production complexes. Such improvement is largely provided by new technologies, some of which are aimed at automating broadcasting processes. In the article, the author analyzes the existing problems of automation of broadcast production complexes and concludes that such problems are caused by the desire of TV and radio companies to replace the traditional approach to the production of programs using a team of specialists with software.   However, the effectiveness of this approach is questionable, especially if the release of the program is associated with live work, where in an uncertain situation it is not possible to react promptly to any events using automated software. Hence, automation of production processes in the field of broadcasting becomes an effective and economical technology only with the correct configuration of the software and careful calculation of automation prospects. The real prospects for automation of broadcast production complexes are currently in almost unexplored areas for the television sphere - the areas of voice control, which is based on artificial intelligence based on various algorithms for training artificial neural networks, which requires additional study and development of an appropriate model adapted to a specific task.\u0000","PeriodicalId":155484,"journal":{"name":"Программные системы и вычислительные методы","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131809973","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Object-transactional Extension of Cilk++ cilk++的对象事务扩展
Pub Date : 2022-03-01 DOI: 10.7256/2454-0714.2022.3.38823
V. V. Pekunov
In this paper, we consider the problem of developing compact tools that support programming in dynamic transactional memory, implying operational generation of transactional pages, for the Cilk++ language. It is argued that such an implementation requires weakened transaction isolation. The current state of the problem is analyzed. It is noted that the existing solutions are quite cumbersome, although they allow you to work with complex data structures such as lists and trees. It is argued that it is necessary to develop new solutions in the style of minimalism based on the use of specialized classes (generating transactional pages; implementing consistent transactional variables) in combination with a set of keywords characteristic of Cilk++.   Appropriate new solutions are proposed. New syntax elements are introduced, implemented using language extension tools specific to the Planning C platform. The semantics of new language elements is described. It is noted that, unlike analogues, the developed tools allow declaratively to "build" transactions into a network (network schedule of work), which determines the order of execution of transactions and the potential for parallelism that exists at the same time. The proposed approach was tested on the example of the task of constructing a histogram. It is also mentioned about the successful solution, using the developed tools, of the problem of training an artificial neural network by the method of error back propagation and the problem of integer linear programming by the method of branches and boundaries.
在本文中,我们考虑了为cilk++语言开发支持动态事务性内存编程的紧凑工具的问题,这意味着事务性页面的操作生成。有人认为,这样的实现需要弱化事务隔离。分析了问题的现状。需要注意的是,现有的解决方案相当麻烦,尽管它们允许您处理复杂的数据结构,如列表和树。有人认为,有必要在使用专门化类(生成事务性页面;实现一致的事务性变量),并结合cilk++的一组关键字特征。提出了适当的新解决方案。引入了新的语法元素,使用特定于Planning C平台的语言扩展工具实现。描述了新语言元素的语义。值得注意的是,与类似的工具不同,开发的工具允许声明性地将事务“构建”到网络(网络工作计划)中,这决定了事务的执行顺序和同时存在的并行性的潜力。以构造直方图为例,对该方法进行了验证。文中还介绍了利用所开发的工具成功地解决了用误差反向传播法训练人工神经网络问题和用分支边界法求解整数线性规划问题。
{"title":"Object-transactional Extension of Cilk++","authors":"V. V. Pekunov","doi":"10.7256/2454-0714.2022.3.38823","DOIUrl":"https://doi.org/10.7256/2454-0714.2022.3.38823","url":null,"abstract":"\u0000 In this paper, we consider the problem of developing compact tools that support programming in dynamic transactional memory, implying operational generation of transactional pages, for the Cilk++ language. It is argued that such an implementation requires weakened transaction isolation. The current state of the problem is analyzed. It is noted that the existing solutions are quite cumbersome, although they allow you to work with complex data structures such as lists and trees. It is argued that it is necessary to develop new solutions in the style of minimalism based on the use of specialized classes (generating transactional pages; implementing consistent transactional variables) in combination with a set of keywords characteristic of Cilk++.   Appropriate new solutions are proposed. New syntax elements are introduced, implemented using language extension tools specific to the Planning C platform. The semantics of new language elements is described. It is noted that, unlike analogues, the developed tools allow declaratively to \"build\" transactions into a network (network schedule of work), which determines the order of execution of transactions and the potential for parallelism that exists at the same time. The proposed approach was tested on the example of the task of constructing a histogram. It is also mentioned about the successful solution, using the developed tools, of the problem of training an artificial neural network by the method of error back propagation and the problem of integer linear programming by the method of branches and boundaries.\u0000","PeriodicalId":155484,"journal":{"name":"Программные системы и вычислительные методы","volume":"353 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123334223","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
期刊
Программные системы и вычислительные методы
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1