Журналы
Email: Пароль: Войти Регистрация
В данной статье рассмотрены: постановка задач распараллеливания, понятия алгоритма и его параллельной формы, концепция неограниченного параллелизма и схема сдваивания: приведены примеры, иллюстрирующие излагаемый материал. (С. 18-32)
В статье рассматривается вопрос о влиянии применения унифицированного языка моделирования UML на продуктивность процесса разработки программнго обеспечения. Рассмотрение опирается на предлагаемое авторами расширение известной модели инкрементного процесса разработки программного обеспечения новой концепцией циклов повышения продуктивности. Показано, что за счет применения UML возможно увеличение скорости движения информации в циклах повышения продуктивности и, тем самым, оказание положительного влияния на процесс разработки.

The influence of Unified Modeling Language onto software development process is considered. Authors introduce new concept of productivity increasing cycles into well-known incremental software development process model and base argue upon this innovation. We show, that using UML one can gain the increasing of velocity of information transition within productivity cycles and thus yield increasing of productivity.

Ключевые слова: технология программирования, унифицированный язык моделирования, инкрементный процесс разработки.
Состояния гонки (data race) являются одними из самых трудновоспроизводимых и сложных в обнаружении ошибок многопоточного программирования. Они наступают, когда в параллельной программе происходит два несинхронизированных обращения к одному и тому же участку памяти, из которых одно является записью данных. Обычно гонки ведут к повреждению глобальных структур данных, а их «ручное» обнаружение сильно затруднено. Теме автоматизированного поиска гонок посвящено множество различных исследований, но она продолжает оставаться актуальной. Популярен динамический подход к обнаружению гонок, когда анализ и поиск гонок происходит прямо во время выполнения программы. В данной статье рассматривается эволюция существующих подходов к динамическому обнаружению гонок, анализируются их достоинства и ограничения. Отдельное внимание уделяется вопросу поиска гонок в Java-приложениях.

One of the most hazardous and hardly reproducible errors that occur in multithreaded programs are data races — unsynchronized accesses to same shared memory fragment from several threads, where one access is write. Generally data races are weakly localized and damage global data structures. Manual detection of data races is very complicated. There was a lot of research in this area, but automatic data race detection remains an actual issue. In this review evolution of existing approaches is considered and their advantages and drawbacks are analyzed. Special attention is paid to automatic race detection in Java applications.

Ключевые слова: многопоточность, параллельное программирование, автоматическое обнаружение ошибок, состояние гонки, обзор.
Keywords: concurrency, data race, automatic bugs detection.
С ростом сложности компьютерных систем повышаются затраты на их поддержку и администрирование. Хотя это правило очевидно и давно всем известно, до определённого момента оно остаётся незамеченным. Современные программные комплексы, а в особенности высоконагруженные веб-проекты и другие распределённые компьютерные системы содержат большое число логических компонентов и физических узлов. Системному администратору, поддерживающему такой проект, необходимо отслеживать все происходящие в нём события, оперативно на них реагировать, зачастую в режиме 24/7. На каком-то этапе жизненного цикла проекта человек перестает справляться, поэтому появляется необходимость в автоматизации этих работ. В статье проводится краткий обзор подходов к решению указанной задачи и рассматривается мультиагентная система Cirrocumulus, предлагающая новый подход к администрированию сложных распределённых компьютерных систем.

With growth of computer systems, their administration and support costs also raise. It is an obvious and well-known rule, but it remains unnoticed until a certain moment. Modern software systems, in particular high-loaded web projects or other distributed systems, contain large number of logical and physical components. System administrator who supports such system, has to trace all occurring events, quickly react on them and sometimes do this in 24/7 mode. At some stage of the project a human becomes unable to manage such a complexity and need of some kind of automation arises. This article provides a brief overview of the approaches to solving this problem and describes multi-agent system Cirrocumulus, which offers a new approach to the administration of complex distributed computer systems.

Ключевые слова: управление IT-инфраструктурой, экспертные системы, мультиагентные системы, облачные технологии.
Keywords: IT-infrastructure management, expert systems, multi-agent systems, cloud technologies.
Исполнение байткода под управлением виртуальной машины имеет ряд преимуществ перед традиционным исполнением машинного кода. Это переносимость, безопасность, удобство компиляции и отладки. В то же время, такое исполнение влечет за собой дополнительные накладные расходы. В данной статье описываются два способа исполнения байткода: интерпретация и компиляция. Для каждого из этих методов обсуждаются накладные расходы и узкие места с точки зрения производительности. Дается обзор основных оптимизаций этих методов, которые позволили достичь скорости исполнения, сравнимой со скоростью исполнения машинного кода.

Bytecode execution by virtual machine has several advantages over traditional native code execution. These are portability, safety, ease of compiling and debugging. However, using virtual machine gives an additional overhead. Two ways of bytecode execution are described in this paper. These are interpretation and compilation. Bottlenecks and overheads of each of these methods are discussed. A survey of major optimizations of these methods which allows achieving execution speed comparable with native code execution speed is given.

Ключевые слова: виртуальные машины, байткод, интерпретация, AOT компиляция, JIT компиляция, динамическая компиляция, адаптивные оптимизации.
Keywords: virtual machines, bytcode, interpretation, AOT compilation, JIT compilation, adaptive optimizations.
Библиотека Enterprise Library Integration Pack for Windows Azure – это решение компании Microsoft для выделения «сквозной функциональности» при разработке облачных приложений. Использование этой библиотеки подразумевает модификацию исходного кода целевого приложения. На практике возникают ситуации, когда изменение исходного кода нежелательно. Данная статья описывает методику бесшовной интеграции аспектов и целевого проекта с помощью Aspect.NET, которая позволяет не менять исходный код целевого приложения. C. 3-15.

The Enterprise Library Integration Pack for Windows Azure is a solution by Microsoft for separation of cross-cutting concern in developing cloud applications. Using this library implies modification of the source code of the target application. In practice, there appear situations when any update of the source code is undesirable. The paper covers a method of seamless integration of aspects and the target project with Aspect.NET that allows us to avoid changing the source code of the target application.

Ключевые слова: Enterprise Library, MS Azure, аспектно-ориентированное программирование, бесшовная интеграция, Aspect.NET.
Keywords: Enterprise Library, MS Azure, aspect-oriented programming, seamless integration, Aspect.NET.
Состояния гонки (data races) – это несинхронизированные обращения к одному и тому же участку памяти разных потоков параллельной программы. Состояния гонки являются одними из самых трудно обнаруживаемых ошибок многопоточного программирования. Автоматический поиск гонок является предметом активных исследований в последние двадцать лет, однако, например, для Java-приложений на настоящий момент не существует полноценного программного средства (детектора гонок), применимого для промышленных приложений (сотни и тысячи классов). В статье предлагается идея динамического обнаружения гонок на основе синхронизационных контрактов. Последние помогают корректно исключать из области анализа произвольные части приложения, по той или иной причине не интересные с точки зрения поиска гонок (например код стандартных библиотек), делая процесс поиска гонок гибко управляемым. Это, в свою очередь, позволяет существенно понизить накладные расходы при поиске гонок без потери точности. В статье также представлена реализация этой идеи и апробация созданного инструмента. С. 16-29.

Data races occur in parallel programs when several threads perform concurrent accesses to the same location of shared memory without consistent synchronization. Data races are one of the most hardly detectable multithreading errors. A lot of research in the area of automatic data race detection has been held during last twenty years, but, for example, no full-fledged dynamic data race detector for Java-applications, applicable to industrial systems (hundreds and thousands classes), still exists. In this article an idea of dynamic data race detection based on synchronization contracts is proposed. Synchronization contracts assist to exclude certain, uninteresting from the view of data race detection (for example, code of standard libraries), parts of application form the analysis scope, making data race detection process flexibly manageable. By-turn, it makes possible to reduce overhead significantly without loss of precision. An implementation of this idea and evaluation of resulting tool are also introduced.

Ключевые слова: многопоточность, параллельное программирование, автоматическое обнаружение ошибок, состояние гонки.
Keywords: concurrency, data race, automatic bugs detection.
Один из ключевых аспектов управления повторным использованием документации является поиск повторяющихся фрагментов текста в уже существующих документах. Дело в том, что документация редко начинает разрабатываться как повторно используемая. Кроме того, ее в принципе удобно создавать как набор обычных текст, переходя к выделению одинаковых фрагментов с определенного момента процесса разработки. В данная статье предлагается использовать для поиска повторов в XML-документации (представление технической документации в XML-формате сегодня является основным направлением в области средств поддержки технической документации) известную технику поиска клонов в ПО (software clone detection). В работе использован алгоритм и программное средство Clone Miner, поиск клонов организован как поиск повторов в «плоском» тексте с XML-фильтрацией. Предложенное решение реализовано в среде Eclipse с технологией DocLine. Представлены также результаты апробации решения. С. 30-40.

One of he key issues of reuse management of software documentation is a finding duplicated document fragments. It is important when we apply reusable approaches to existing documentation. In turn it can be done under documentation revision: it appeared, the volume of the documentation was big, and there were a lot of problems in maintenance. We consider XML documentation because this is mainstream in technical documentation development now. We offer to use software clone detection technique for finding document duplicated fragments. As a basis clone detection tool we used Clone Miner. We present also a tool that implements of the approach we offered.

Ключевые слова: поиск клонов, семейства программных продуктов, повторное использование документация, управление вариативностью.
Keywords: software clone detection, software product lines, documentation reuse, variability management.
В статье рассматривается задача интерпретации визуальных языков моделирования. Приводится обзор основных основанных на технологии преобразования графов способов описания исполнимой семантики визуальных языков, необходимой для осуществления такой интерпретации. Кратко описывается Dynamic Meta Modeling, анализируются подходы, использующиеся в средстве AToM3 и при организации анимированной интерпретации диаграмм с помощью средства GenGED. Приведено сравнение основных подходов к заданию исполнимой семантики, а также делаются выводы относительно применимости рассмотренных подходов при разработке DSM-платформ.

The paper describes interpretation of visual modeling languages. An overview of approaches to definition of visual languages' operational semantics based on graph transformations is given. We briefly describe Dynamic Meta Modeling and analyze approaches that are employed in AToM3 and for animated diagram interpreting in GenGED tool. A comparison of main approaches to executable semantics definition is presented along with conclusions on application of these approaches in development of DSM platforms.

Ключевые слова: семантика визуальных языков, преобразования графов, графовые грамматики.
Keywords: semantics of visual langiages, graph transformations, graph grammars.
Рассматривается мультиагентная система планирования задач в программно-конфигурируемых сетях. Система предназначена для моделирования распределения и выполнения задач на вычислительных ресурсах с учетом динамических характеристик и топологии сети. C. 3-11.

The article describes the multi-agent system for tasks scheduling in software-configurable networks. The system is designed to simulate the distribution of tasks to computing resources with the consideration of network dynamic characteristics and topology.

Ключевые слова: мультиагентная система, планирование в реальном времени, адаптивность, программно-конфигурируемые сети.
Keywords: multi-agent system, real-time scheduling, adaptability, software-configurable network.
Статья посвящена одной из ключевых задач теории графов – задаче максимального потока и её применению для эффективной балансировки загрузки в вычислительных сетях. Приведены краткая история задачи максимального потока, обзор некоторых задач из теории графов, которые так или иначе связаны с задачей максимального потока, методов решения этой задачи и модель балансировки загрузки, сводящуюся к частному случаю задачи параметрического потока. С. 3-9.

This paper is devoted to one of the main problems of graph theory, maximum flow problem, and its application for efficient network load balancing. The paper contains a guide to the maximum flow problem including brief history of the problem, related graph theory problems and basic algorithm concepts. Network load balancing model is considered based on a special case of parametric flow problem.

Ключевые слова: оптимизация, планирование, сетевые потоки, теория графов, задача максимального потока, задача параметрического потока.
Keywords: optimization, scheduling, network flows, graph theory, maximum flow problem, parametric flow problem.
Описывается метод построения контекстно зависимых сплайновых челночных процессоров, используемых в SYNTAX-технологии для реализации синтаксически управляемых трансляций. Метод базируется на RBNF-грамматиках, представляемых в виде модифицированных диаграмм Н. Вирта, граф-схем. Процессоры обладают линейной оценкой сложности по времени относительно длины входного предложения. С. 3-15.

The method of creation contextually dependent spline shuttle processors used in SYNTAX-technology for implementation of syntactically controlled translations is described. The method is based on RBNF-grammars, represented in a form of modified N. Wirth’s charts, graph-schemes. The processors possess the linear estimation of complexity on time concerning length of an input sentence.

Ключевые слова: грамматики, синтаксические диаграммы Н. Вирта, граф-схемы, трансляции.
Keywords: grammars, N. Wirth’s syntactic flowcharts, graph-schemes, regular splines, translations.
В данной статье рассмотрены общие вопросы использования больших данных в практической плоскости коммерческой деятельности компаний. Автор делает акцент на задачи, которые могут быть решены с использованием больших данных в телекоммуникационной сфере. Проанализированы характеристики клиентов компании, которые позволяют судить об их потенциальном оттоке. Выявлены кластеры, для которых получены наиболее успешные результаты предсказания. С. 3-8.

The article observes general questions of big data usage in practice in commercial activities of companies. The author makes an accent on the problems that can be solved in the telecommunications with the help of big data. He analyzes clients’ characteristics that help to judge about their potential churn rate. The author identifies clusters, for which the best prediction results were received.

Ключевые слова: большие данные, телекоммуникации, отток, svm, нейронные сети, вектор-машины.
Keywords: data, telecommnications, churn, support vector machines, neural networks.
Аспектно-ориентированный подход позволяет отделить бизнес-логику приложения от сквозной функциональности. В данной работе описывается реализация системы Aspect.NET, которая интегрирована в Microsoft Visual Studio 2013 и позволяет создавать аспектно-ориентированные программы на платформе Microsoft.NET. Сквозная функциональность представляется в виде статических методов класса аспекта, а их интеграция в целевую сборку производится отдельной консольной программой - компоновщиком на этапе пост-компиляции с помощью библиотеки Mono.Cecil. Данный подход позволяет на этапе компиляции интегрировать новую функциональность в целевой проект без его модификации. С. 5-19

Ключевые слова: аспектно-ориентированное программирование, аспекты, расширение Visual Studio, статическое внедрение аспектов.
В данной работе описывается учебный проект по созданию детектора утечек памяти для интерпретируемого языка. Этот проект ориентирован на студента или группу студентов второго курса. Он разрабатывался в качестве альтернативной формы отчетности по практическим занятиям курса «программирование».
В работе описывается постановка задачи, общая схема проекта, обсуждаются подзадачи и методы их решения. Рассматриваются все стадии проекта: разработка языка, построение интерпретатора, реализация детектора утечек памяти. Кроме того, в статье описывается опыт применения данного проекта в учебном процессе, полученный в осеннем семестре 2016 года. Код проекта доступен на сайте GitHub.

In this paper, we describe an educational project for creating a memory leak detector for an interpreted language. This project is intended for a student or a group of second-year students. It was developed as an alternative form of classroom assignment in an introductory programming course.
The statement of the problem, and the general outline of the project are described in the paper; the subtasks and methods for their solution are also discussed. All stages of the project are considered: language development, interpreter construction, implementation of the memory leak detector. In addition, the experience – obtained in the fall semester of 2016 – of applying this project in the educational process is described in the article. The project code is available from GitHub.

Ключевые слова: обучение программированию, интерпретатор, поиск утечек памяти.
Keywords: introductory programming course, interpreter, memory leak detection.
NoSQL системы управления базами данных находятся в поле зрения специалистов области уже довольно давно. Однако на текущий момент очень мало работ связано с данной темой, а в особенности — со сравнением таких систем с традиционными реляционными СУБД. Что касается существующих исследований, то одни статьи являются обзорными, другие используют небольшое количество записей в таблицах в качестве нагрузки или рассматривают только одно окружение для проведения экспериментов, что может давать преимущество одному из объектов сравнения. Данная работа посвящена PostgreSQL и MongoDB. Первая система, несмотря на то, что является свободным программным обеспечением, стремительно набирает популярность в том числе и в корпоративном сегменте, а вторая отличается от большого числа NoSQL решений хорошей проработанностью и поддержкой. С целью обеспечения полноты сравнения, эксперименты проводились в различных окружениях и с различной нагрузкой. С. 48-63.

NoSQL database management systems have been under examination by industry specialists for quite some time. However, at the moment there are very few works connected with this topic, and in particular - with the comparison of such systems with traditional relational DBMSs. As for the existing studies, some articles are plain overviews, some use a small number of records in tables as a workload or they only consider one environment for conducting experiments, which can give advantage to one of the comparison objects. This paper is concerned with PostgreSQL and MongoDB. The first system, despite being free and open-source software, is rapidly gaining popularity even in the corporate world, whereas the second one differs from a large number of NoSQL solutions in its meticulousness and support. In order to ensure the completeness of the comparison, the experiments were carried out in different environments and with different loads.

Ключевые слова: анализ прозводительности, время выполнения запросов, системы управления базами данных, MongoDB, NoSQL, OLAP, OLTP, PostrgeSQL, SQL.
Keywords: perfomance, analysis, database management systems, query execution time, MongoDB, NoSQL, OLAP, OLTP, PostrgeSQL, SQL.
В статье описано расширение проекта РуСи, позволяющее использовать параллельные нити стандарта POSIX Threads. Это дало возможность существенно повысить эффективность использования многочисленных датчиков в популярных ныне системах Интернет вещей и в роботах, разрабатываемых на математико-механическом факультете СПбГУ. С. 25-30.

The article describes the extension of RuC project, which allows the use of parallel threads of the POSIX Threads standard. This made it possible to significantly improve the efficiency of the use of numerous sensors in the now popular systems of the Internet of things and in robots developed at the faculty of mathematics and mechanics of St. Petersburg state University.

Ключевые слова: Параллельные нити, стандарт POSIX Threads, проект РуСи.
Keywords: Parallel threads, POSIX Threads standard, RuC project.
В связи с развитием новых технологий и расширением сферы применения вычислительной техники и сетей, в частности, с появлением Интернета вещей все чаще возникает потребность в применении совокупности вычислительных устройств для решения одной задачи. При этом чаще всего эти устройства являются географически распределенными и отличаются друг от друга техническими характеристиками. В данной статье рассматривается возможность адаптации методов параллельных вычислений, изначально предназначенных для систем с раздельной памятью, к распределенным системам. Рассматриваются особенности распределенных систем, способы представления таких систем и алгоритмов на этих системах. В статье предлагается подход к представлению алгоритмов с учетом особенностей распределенной системы в виде проекции информационного графа алгоритма на граф взаимосвязей узлов. Этот подход позволяет исследовать алгоритм в статическом режиме, не перебирая при этом все состояния сети и алгоритма. С. 31-38.

In connection with the development of new technologies and the expansion of the use of computers and networks, in particular with the advent of the Internet of things, there is an increasing need to use a combination of computing devices to solve one problem. pagebreak In this case, most often these devices are geographically distributed and differ from each other by technical characteristics. This article explores the possibility of adapting the methods of parallel computations originally intended for systems with separate memory to distributed systems. The features of distributed systems, ways of representing such systems and algorithms on these systems are considered. The article proposes an approach to the representation of algorithms taking into account the features of a distributed system in the form of a projection of an information graph of the algorithm onto a interconnection graph. This approach allows us to investigate the algorithm in static mode without going through all the network and algorithm states.

Ключевые слова: оптимизация, алгоритм, информационный граф, мощность узла, пропускная способность, время выполнения, операция, процесс, единица времени, время передачи.
Keywords: optimization, algorithm, information graph, node power, throughput capacity, execution time, operation, process, processor, unit of time, transmission time.
В данной статье предлагается анализ разработанных нами методов оптимизации параллельного алгоритма с учётом и без учёта времени выполнения каждой операции. Данные методы могут быть применены как к последовательным алгоритмам для получения их параллельного аналога, так и к параллельным алгоритмам с целью повышения их качества. Предлагаемые методы оптимизации параллельного алгоритма позволяют уменьшить объём коммуникаций между процессорами и соответственно сократить время выполнения всего алгоритма. С. 38–48.

In this paper, we propose an analysis of our (developed by us) methods for optimizing the parallel algorithm, taking into account and without taking into account the execution time of each operation. These methods can be applied on sequential algorithms in order to obtain their parallel analogue as well as on parallel algorithms in order to improve their quality. The proposed methods for optimizing the parallel algorithm can reduce the amount of communication between processors and, accordingly, reduce the execution time of the entire algorithm.

Ключевые слова: оптимизация, алгоритм, информационный граф, список следования, время выполнения, операция, процесс, информационная зависимость, единица времени.
Keywords: optimization, algorithm, information graph, sequence list, execution time, operation, process, processor, information dependence, unit of time.
Чтобы оставаться конкурентноспособным сегодня в телекоммуникационном бизнесе, необходимо определять клиентов, которые недовольны предоставляемыми услугами, поэтому прогнозирование оттока стало актуальной проблемой в данной сфере. В этой статье рассмотрены основные современные алгоритмы машинного обучения, которые применялись для решения этой задачи, включая дерево принятия решений (DT – Decision Trees), наивный байесовский классификатор (NB – Naive Bayes Classifier), случайный лес (RF – Random Forest), искусственные нейронные сети (NN – Artificial Neural Network), метод k-ближайших соседей (KNN – K-Nearest Neighbors), линейный дискриминантный анализ (LDA – Linear Discriminant Analysis), метод опорных векторов (SVM – Support Vector Machine) и их ансамблирование (бэггинг и бустинг) с целью продемонстрировать превосходство новой технологии CatBoost в мерах эффективности классификаторов. Для достижения цели была проведена классификация данных и выявлены конкретные преимущества метода CatBoost в сравнении с другими на основе полученных результатов.
Для проведения исследования нами были проанализированы четыре базы данных: 3 датасета находятся в открытом доступе и 1 датасет, предоставленный российской мобильной компанией. Зачастую размерность этих баз данных высока, что приводит к ряду проблем (в том числе несбалансированности классов, корреляции параметров), которые решаются методом уменьшения размерности: метод главных компонент (PCA – Principal Component Analysis).
Полученные результаты сравниваются между собой, а также с результатами, представленными другими исследователями на основе открытых баз данных. Эффективность классификаторов оценивается с помощью таких мер, как площадь под кривой (AUC), точность, F1-мера и время. С. 5-23.

In order to remain competitive today in the telecommunications business, it is necessary to identify customers who are dissatisfied with the services provided. Therefore, forecasting subscriber churn has become an essential issue in this area.
This article overviews different machine learning techniques including Decision Trees (DT), Naive Bayes Classifier (NB), Random Forest (RF), Artificial Neural Network (NN), K-Nearest Neighbors (KNN), Linear Discriminant Analysis (LDA), Support Vector Machine (SVM) and their ensembles (bagging and boosting) in order to demonstrate the superiority of the CatBoost technology in gaging the effectiveness of classifiers. To achieve the goal, data was classified and the specific advantages, when compared to others, of the CatBoost method were revealed based on obtained results.
For the study, we analyzed four databases: 3 datasets are in open access and 1 dataset was provided by a Russian mobile company. Often, the dimension of these databases is high, which leads to a number of problems (including class imbalances, parameter correlations), which are solved by employing the dimensionality reduction method: Principal Component Analysis (PCA).
The results obtained are compared with each other as well as with the results presented by other researchers based on open databases. The effectiveness of classifiers is evaluated using measures such as the area under the curve (AUC), accuracy, F1-measure, and time.

Ключевые слова: анализ данных, машинное обучение, балансировка данных, обработка данных, ансамбли моделей.
Keywords: data mining, machine learning, data balancing, data preparation, ensemble.
Микросервисная парадигма -популярный подход при разработке различных систем, который характеризуется разбиением монолитной системы на большое количество небольших по размеру приложений. Работающие вместе и реализующие необходимую логику, компоненты выполнены с применением наиболее подходящих для них технологий. Подход также позволяет осуществлять простое масштабирование наиболее нагруженных частей, однако, среда передачи данных между компонентами не позволяет в достаточной степени гарантировать их совместимость при разработке и поддержке. Существует очень ограниченный набор средств для поддержания согласованной работы всей системы при изменении входных или выходных параметров какого-либо микросервиса из её состава. Проблема особенно актуальна в случае асинхронного взаимодействия частей системы, так как существующие решения и стандарты покрывают в основном синхронное взаимодействие, основывающееся на протоколах семейства RPC или REST, или используются для высокоуровневого описания автоматизируемых бизнес-процессов. Одним из способов обеспечения совместимости компонентов системы является предварительная проверка типов аргументов перед тем, как сервисы начнут работу. В данной работе представлена разработка и тестирование метода для предварительной проверки типов в событийной модели взаимодействия микросервисов. Разработанный подход использует RabbitMQ в качестве хранилища типов очередей сообщений и специализированную библиотеку для проверки микросервисами возможности использовать выбранную очередь. Таким образом, совокупность брокера и библиотеки позволяют избежать расхождения типов аргументов и результатов микросервисов в событийной микросервисной архитектуре (на англ.). С. 43-53.

Microservice architecture is a popular approach for building various systems. It consists of various dedicated small-sized components from a solid application. Components work together and provide the required business-logic, but each one can be implemented with the most suitable technique. Moreover, overloaded parts can be scaled easily. However, a data transfer layer does not guarantee compatibility of services during their development and maintenance. After changing input or output data type of any microservice of the system, there is a limited set of options to keep up the compatibility. The problem is especially urgent for asynchronous communication because existing systems and standards work mostly with synchronous RPC or REST interoperation or cover high-level description of business-logic. One way to guarantee compatibility is a preliminary check of data types before the services start to serve requests. The current paper describes the development and testing of the method applied to the event-driven system of microservices. The developed approach extends message broker RabbitMQ to store queue types. Also, the approach uses the library to check the microservices ability to use selected queues. Both the library and the extension solves the problem of type inconsistency in a microservice event-driven architecture.

Ключевые слова: микросервисная архитектура, статическая типизация, событийная модель, SOA, композиция сервисов.
Keywords: microservice architecture, static typing, event-driven model, SOA, services composition.
В статье дается обзор существующих методов верификации динамической памяти; проводится их сравнительный анализ; оценивается применимость для решения задач управления, контроля и верификации динамической памяти. Данная статья состоит из восьми разделов. Первый раздел - введение. Во втором обсуждаются проблемы управления динамической памятью. В третьем рассматривается исчисление Хоара. В четвёртом речь идёт о преобразованиях heap в стек. Пятый вводит понятие анализа образов динамической памяти. Шестой посвящен ротации указателей, седьмой - логике распределенной памяти. В последнем разделе рассматриваются возможные направления дальнейших научных исследований в данной области, в частности: распознавание на уровне записи различных экземпляров объектов; автоматизация доказательств; использование «горячего» кода, то есть программного кода, который сам себя обновляет при запуске программы; расширение интуитивности объяснений доказательств и другие. С. 5-30.

The article provides an overview of the existing methods of dynamic memory verification; their comparative analysis is carried out; the applicability for solving problems of control, monitoring, and verification of dynamic memory is evaluated. This article is divided into eight sections. The first section is an introduction, the second discusses dynamic memory management problems, the third discusses Hoare's calculus, the fourth considers heap transformations to stack, the fifth introduces the concept of dynamic memory image analysis, the sixth is dedicated to the rotation of pointers, the seventh is on the logic of distributed memory. The last section discusses possible directions of further research in this area; more specifically: recognition at recording level of various instances of objects; automation of proofs; “hot” code, that is, software code that updates itself when the program runs; expanding intuitiveness of proof explanations and others.

Ключевые слова: верификация динамической памяти, иcчисление Хоара, логика распределенной памяти, операции с указателями.
Keywords: dynamic memory verification, Hoare calculus, distributed memory, pointers arithmetics.
В этой статье описываются задачи систем визуальной одометрии и SLAM и их основные применения. Далее перечисляются основные подходы, использованные научным сообществом для создания таких систем в разное время. Мы также углубляемся в более современный метод, основанный на совместной оптимизации, и разбираем его вариации в зависимости от требований к решению. Наконец, мы рассматриваем современные направления исследований в области визуальной одометрии и кратко представляем свои наработки. С. 5-14.

In this paper we describe the tasks of Visual Odometry and Simultaneous Localization and Mapping systems along with their main applications. Next, we list some approaches used by the scientific community to create such systems in different time periods. We then proceed to explain in detail the more recent method based on bundle adjustment and show some of its variations for different applications. At last, we overview present-day research directions in the field of visual odometry and briefly present our work.

Ключевые слова: визуальная одометрия, SLAM, автономная навигация, ADAS, UAV.
Keywords: visual odometry, SLAM, autonomous navigation, ADAS, UAV.
Проблема трансляции базы данных из одного формата в другой периодически появляется в разных организациях по разным причинам. Сегодня хорошо отработан механизм смены формата реляционных баз данных. Но с появлением новых типов баз данных, таких как NoSql, проблема трансляции вновь стала очень актуальной в связи с радикальным отличием способов организации данных в различных базах данных. В статье рассматривается формализованный метод, основанный на теории множеств, по выбору числа и состава коллекций для базы данных типа ключ-документ. Исходными данными являются свойства объектов, информация о которых хранится в базе данных, и совокупность запросов, которые наиболее часто выполняются. Рассмотренный метод можно применять не только при создании новой базы данных типа ключ-документ, но также при трансформации существующей, при переходе от реляционных баз данных к NoSql, при консолидации баз данных. С. 15-28.

The work of transforming a database from one format periodically appears in different organizations for various reasons. Today, the mechanism for changing the format of relational databases is well developed. However, with the advent of new types of databases, such as NoSQL, this problem is prevalent due to the radically different ways of data organization at the various databases. This article discusses a formalized method based on set theory, at the choice of the number and composition of collections for a key-value type database. The initial data are the properties of objects, about which information is stored in the database, and the set of queries that are most frequently executed. The considered method can be applied not only when creating a new keyvalue database, but also when transforming an existing one, when moving from relational databases to NoSQL, when consolidating databases.

Ключевые слова: NoSql, запрос к базе данных, коллекция, ключ-значение, трансляция данных, формат данных, оптимизация структуры базы данных.
Keywords: NoSql, database query, collection, key-value, data translation, data format, database structure optimization.
В настоящее время в учебный процесс всех высших учебных заведений широко внедряются программные средства учебного назначения различного типа: от средств поддержки проведения лекций, практических и лабораторных занятий до оценки знаний студентов. Помимо программ, разрабатываемых и распространяемых (на платной или бесплатной основе) крупными компаниями, в каждом вузе широко распространена практика, когда ряд подобных программ пишется относительно небольшими коллективами собственных разработчиков, которые учитывают сложившуюся в данном вузе методику преподавания тех или иных дисциплин и в состоянии быстро откликаться на постоянно меняющиеся требования к учебному процессу. В последнем случае перед разработчиками встает двуединая задача. С одной стороны, они должны создать необходимый продукт как можно быстрее, но, с другой стороны, он должен отвечать необходимым требованиям по качеству, в том числе по надежности. Для оценки этого параметра применяются различные модели надежности. В частности, на ранних этапах создания программного модуля может быть использована модель Миллса. Одним из ее недостатков в рассматриваемой области является то, что для оценки достоверности результата, даваемого данной моделью, желательно знать ожидаемое начальное количество ошибок в программе. Данное значение может быть получено с использованием простой интуитивной модели надежности программного обеспечения, которая не требует ведения сложного журнала наблюдений за ходом тестирования и не требует сложных вычислений. В работе показывается, каким образом возможно совместить применение этих моделей в одну иерархическую модель, которая может быть эффективно использована в рассматриваемой предметной области. С. 66-79.

Currently, various types of educational software are widely introduced into the educational process of all higher education institutions, from lecture support tools, practical and laboratory classes to assessing students' knowledge. In addition to programs developed and distributed (for a fee or free of charge) by large companies, each University has a widespread practice when a number of such programs are written by relatively small teams of their own developers, who take into account the existing methods of teaching certain disciplines in this university and are able to respond quickly to constantly changing requirements for the educational process. In the latter case, developers face a two-fold task. On the one hand, they need to create the necessary product as quickly as possible, but on the other hand, it must meet the necessary quality requirements, including reliability. Various reliability models are used to evaluate this parameter. In particular, the Mills model can be used at the early stages of creating a software module. One of its disadvantages in this area is that in order to assess the reliability of the result given by this model, it is desirable to know the expected initial number of errors in the program. This value can be obtained using a simple intuitive software reliability model that does not require a complex log of monitoring the progress of testing and does not require complex calculations. The paper shows how it is possible to combine the use of these models into a single hierarchical model that can be effectively used in the subject area under consideration.

Ключевые слова: программные средства учебного назначения, надежность программного обеспечения, модели надежности, модель Миллса, простая интуитивная модель.
Keywords: educational software, software reliability, Mill’s error seeding model, simple intuitive software reliability model.
В этой статье мы обсуждаем реализацию графического процессора открытой библиотеки градиентного бустинга CatBoost. Реализация обеспечивают наиболее эффективную производительность на GPU среди общедоступных библиотек, и мы хотим поделиться идеями проектирования и используемыми алгоритмами. (На англ.) С. 59–73.

In this paper we discus GPU implementation of open-sourced gradient boosting library CatBoost. This implementations shows the state-of-the-art performance among openly-available libraries and we want to share design insights and used algorithms.

Ключевые слова: NVIDIA, GPU, градиентный бустинг, деревья решений, GBM, категориальные признаки.
Keywords: NVIDIA, GPU, Gradient boosting, Decision trees, GBM, Categorical features.
В статье описывается программный уровень архитектуры системы мониторинга функционирования компьютерной сети с модулем диагностики аномалий. Предлагается программное решение для данного уровня архитектуры системы мониторинга сети. Также в статье отражены результаты проверки архитектуры системы мониторинга функционирования компьютерной сети с модулем диагностики аномалий на соответствие требованиям: возможность кластеризации аномалий в работе сети, ручное и автоматическое управление формированием сценариев воздействия на узлы, возможность масштабирования системы мониторинга сети, наличие раздельного хранения данных для статистики и сценариев воздействия на узлы и др. Кроме этого, в статье представлены результаты тестирования разработанного программного решения. Тесты проводились по кластеризации аномалий компьютерной сети и формированию сценариев воздействия на наблюдаемые нестабильные сетевые узлы. Полученные результаты показывают, что разработанное программное обеспечение позволяет проводить кластеризацию аномалий в работе компьютерной сети, а также осуществлять формирование сценариев воздействия на такие узлы при проведении дополнительной диагностики нестабильных узлов. С. 35-50.

This article describes the software architecture level of the computer network operation monitoring system with an anomaly diagnostics module. A software solution for this level of network monitoring system architecture is proposed. Also, the article reflects the results of tests of compliance with the requirements to the architecture of the monitoring system of computer network operation with an anomaly diagnostics module: the ability to cluster anomalies in the network, manual and automatic control of forming scenarios of impact on nodes, the ability to scale the network monitoring system, the availability of separate data storage for statistics and scenarios impact on nodes and other requirements. In addition, this article presents the results of testing the developed software solution. The tests were conducted to cluster computer network anomalies and forming scenarios of impact on the observed unstable network nodes. The results show that the developed software allows you to cluster anomalies in the computer network, as well as during additional diagnostics of unstable nodes to form scenarios of impact on such nodes.

Ключевые слова: система мониторинга компьютерной сети, компьютерная сеть, модуль диагностики аномалий, архитектура информационной системы.
Keywords: network monitoring system, computer network, anomaly diagnostics module, information system architecture.
В данной статье анализируется проблема сбора и накопления готовых программных решений студентов с возможностью их непосредственного выполнения (тестирования). Для решения проблемы предлагается подход на основе технологии контейнерной виртуализации. Каждое программное решение автоматически разворачивается в изолированном docker-контейнере. Подход апробирован на практике. Спроектирована и разработана программная платформа, позволяющая размещать готовые прикладные разработки, тестировать варианты существующих решений разного уровня и сложности, анализировать применяемые технологии и подходы, оценивать работу используемых методов и алгоритмов. Программная платформа реализована в виде клиент-серверного web-приложения. Проблема размещения и запуска стека приложений без привлечения дополнительного серверного оборудования и~ресурсозатратных технологий решается применением виртуализации на основе гипервизора. Виртуальная машина для разработанного web-приложения создана на базе программного гипервизора. Полученный в рамках исследования анализ видов виртуализации ресурсов позволяет делать выводы о применимости используемых технологий для решения других прикладных задач. С. 51-59.

This article analyzes the problem of collecting and storing the program solutions of students that can be directly executed, tested. Container-based virtualization technologies are proposed to solve the problem. Each software development is automatically deployed in one or more isolated docker-containers. The approach has been tested in practice. A software platform for publishing ready-made application solutions has been designed and developed. The platform services allow testing ready-made developments of different level and complexity, analyzing the applied technologies and approaches, evaluating the performance of the used methods and algorithms. The software platform is implemented on the basis of client-server web- application. The problem of deploying and running the portal application stack without additional server hardware and resource-intensive technologies is solved by using hypervisor-based virtualization. The virtual machine for the developed web- application was created on the basis of a software hypervisor. The analysis of resource virtualization types obtained in the framework of the research allows us to draw conclusions about the applicability of the used technologies for solving other practical tasks.

Ключевые слова: виртуализация ресурсов, вычислительные процессы, контейнер, образ, банк программных разработок, клиент-серверное приложение, Docker-система, Docker Hub.
Keywords: resource virtualization, computing processes, container, image, software development base, client-server application, Docker-system, Docker Hub.
Одной из самых сложных и трудновоспроизводимых ошибок в многопоточных программах являются состояния гонки (data race) – несинхронизированные обращения к одному и тому же участку памяти из различных потоков, из которых одно является записью данных. Обычно гонки слабо локализуемы, и ведут к повреждению глобальных структур данных, а их «ручное» обнаружение сильно затруднено. В этой области было проведено множество различных исследований, но автоматическое обнаружение гонок остается актуальной задачей. В данной статье рассматриваются статические и post-mortem методы обнаружения гонок, отдельное внимание уделяется вопросу поиска гонок в Java-приложениях.

One of the most hazardous and hardly reproducible errors that occur in multithreaded programs are data races – unsynchronized accesses to same shared memory fragment from several threads, where one access is write. Generally data races are weakly localized and damage global data structures. Manual detection of data races is very complicated. There was a lot of research in this area, but automatic data race detection remains an actual issue. In this review static and post-portem approaches to data race detection are covered with an emphasis on race detection in Java programs.

Ключевые слова: многопоточность, параллельное программирование, автоматическое обнаружение ошибок, состояние гонки, обзор.
Keywords: concurrency, data race, automatic bugs detection.
В статье рассмотрены основы аспектно-ориентированного программирования (АОП) и его использование для разработки надежных и безопасных программ. Описаны принципы, архитектура и возможности системы Aspect.NET - инструментария АОП для платформы .NET, разработанного в Санкт-Петербургском университете и используемого в 18 странах мира.
Предложены методы применения аспектно-ориентированного программирования для задач безопасности в ASP.NET-приложениях, таких как: аутентификация, авторизация, олицетворение, защита от Cross-Site Scripting атаки, инструментирование ASP.NET приложений для безопасности. Разработаны аспекты безопасности для ASP.NET-приложений в системе Aspect.NET. Проанализированы эффективность и производительность применения этих аспектов в ASP.NET-приложениях.

Methods of application of aspect-oriented programming for security tasks in ASP.NET-applications, such as: authentication, authorization, impersonation, Cross-Site Scripting attacks protection, instrumenting ASP.NET-applications for security, are suggested. Security aspects for ASP.NET-applications in Aspect.NET system are developed. Efficiency and productivity of application of these aspects in ASP.NET-applications are analyzed.

Ключевые слова: аспектно-ориентированное программирование, АОП, Aspect.NET, веб-приложение, Microsoft.NET, ASP.NET, безопасность.
Keywords: aspect-oriented programming, AOP, Aspect.NET, Web application, Microsoft.NET, ASP.NET, security.
Описаны методы применения системы Aspect.NET при разработке ASP.NET приложений и взаимодействие Aspect.NET с ASP.NET. Выделены задачи Web-программирования, которые требуют решения в виде реализации сквозной функциональности приложения: протоколирование, безопасность (authentication, authorization, impersonation), криптография строки запроса, криптография cookie-файлов, кодирование гипертекста, расширение пользовательского веб-интерфейса. Предложены методы применения аспектно-ориентированного программирования для задач разработки веб-приложений на платформе Microsoft.NET.

Methods of application of the Aspect.NET system for ASP.NET application development and interaction of Aspect.NET system with ASP.NET are covered. Typical tasks of Web-programming that require solution in the form of cross-cutting concern implementation are selected, such as: logging, security (authentication, authorization, impersonation), query string cryptography, cookie cryptography, html encoding, user Web interface extension. Methods of application of aspect-oriented programming for Web application development tasks on Microsoft.NET platform are suggested.

Ключевые слова: аспектно-ориентированное программирование, АОП, Aspect.NET, Веб-приложение, Microsoft.NET, ASP.NET.
Keywords: aspect-oriented programming, AOP, Aspect.NET, Web application, Microsoft.NET, ASP.NET.
В статье освещаются существующие методологии и подходы к разработке программного обеспечения. Отмечаются их преимущества и недостатки и подчеркивается необходимость выбора правильного метода разработки. Описывается концепция экспертной системы для определения такого метода на основе технологии Knowledge.NET, разработанной на кафедре информатики СПбГУ под руководством проф. В.О. Сафонова.

In this article the existing methodologies of Software Development are shown. Advantages and disadvantages of these methodologies are described. The necessity of choosing of the right method is highlighted. The concept of the expert system which is given such recommendations is described. The system is based on the Knowledge.NET technology, developed at the Department of Computer Science of Saint-Petersburg State University under the guidance of Prof. Safonov.

Ключевые слова: разработка, программное обеспечение, Knowledge.NET, экспертная система.
Keywords: development, software, Knowledge.NET, expert system.
В связи со стремительным развитием информационных технологий в наше время информация приобретает всё большую значимость. Утечка важных данных может привести к катастрофическим последствиям. Посредством интернета, локальной или беспроводной сети злоумышленники могут получить доступ к секретной информации, которая им совсем не предназначена. Это может привести как к финансовым, так и к информационным потерям. Таким образом, на данный момент IT-безопасность становится необходимым элементом при построении любой IT-инфраструктуры и напрямую влияет на целостность и конфиденциальность всей цифровой информации в целом. Учитывая скорость развития информационных технологий и повседневного взаимодействия с ними в жизни каждого отдельно взятого человека, понятия надёжности и безопасности хранения, обработки и передачи частной информации приобретают новую значимость. С учетом всех реалий можно выделить основную идею: необходимо иметь в виду постоянное требование надёжности и безопасности вычислений (TWC, от Trustworthy Computing) при разработке и сопровождении продуктов в сфере ИТ. В данной работе предлагается реализовать методы надёжности и безопасности программирования с помощью аспектно-ориентированного программирования.

Due to the prompt growth of IT industry, information getting more valuable in our days. Leak of the important information can cause catastrophic consequences. Malefactors can obtain secret data using networks. Thus for now IT-security became required element in building IT-Infrastructure and has directly connection with integrity and confidentiality of whole digital data. Considering everyday interaction with IT of many different people, concepts of trustworthy, security, processing, transferring of private data getting new significance. Main idea is to keep trustworthy computing (TWC) principles in all stages of software development and products support. Methods of TWC are implemented with aspect-orientated programming (AOP) in this work.

Ключевые слова: аспектно-ориентированное программирование, Aspect.NET, надежность и безопасность вычислений, IT безопасность.
Keywords: aspect-oriented programming, Aspect.NET, Trustworthy computing, IT security.
В настоящее время в области разработки ПО развивается предметно-ориентированное визуальное моделирование, нацеленное на разработку визуальных решений для отдельных предметных областей, проектов и задач. Однако продолжают остро стоять вопросы управления такими проектами, не хватает развитых системных подходов, позволяющих преодолеть многочисленные риски таких разработок. В связи с этим представляют интерес отдельные успешные решения. В данной работе представлено визуальное решение РУП (РУсско-финское Приграничное сотрудничество), созданное на базе Microsoft Visio и использовавшееся для проектирования контента Web-системы, предназначенной для поддержки русских путешественников в Финляндии, а финских – в России (информация о публичных и государственных услугах). Это решение дополняет инструмент онтологического инжиниринга ОРГ-Мастер, использовавшийся для создания модели контента указанной выше Web-системы: был создан визуальный язык и соответствующий графический редактор, реализована генерация из этого редактора в ОРГ-Мастер, а также поддержана циклическая разработка. С. 3-16.

Domain specific modeling addresses to development of efficient visual modeling solutions for particular domains and even for single software projects. But there is a lack of systematic approaches in this area. Therefore, research community is interesting in information about successful domain specific solutions. In the paper, the visual modeling solution for development of information e-service is presented. The main focus of the solution is content modeling of an information e-service. The content is quite complicated and rather big, and its structure directly influences into user interface and features of the software. We used enterprise architecture management tool ORG-Master to collect and structure information for the content. But it appeared the tool does not support visual modeling of the content structure (it was quite natural for it because it is oriented for other tasks). To close this gap we developed small visual language, graphical editor on the base of Microsoft Visio, generator to ORG-Master and synchronizator for round-trip engineering. The paper describes the solution lifecycle: problems, which have led to idea of using domain specific modeling, selecting functionality to meet time and financial constraints, and other practical questions, which we resolved to use domain specific modeling successfully.

Ключевые слова: предметно-ориентированное моделирование, визуальное моделирование, модельно-ориентированная разработка, DSM, domain-specific modeling, DSM-подход, MDA, model-driven architecture, model-driven development, MDD, DSM, DSL, UML, Интернет-сервисы, e-сервисы, Web-приложения, онтологии, онтологический инжиниринг, Semantic Web.
Keywords: domain-specific modeling, enterprise architecture management, ontology engineering, Microsoft Visio, e-service, information e-service.
Проблема обработки и хранения BigData, основную часть которых составляет неструктурированная информация, привела к появлению NoSQL баз данных, которые стремительно завоевали популярность. Одно время даже высказывалось мнение, что традиционные реляционные СУБД обречены. Действительно ли это так? Решают ли новомодные системы те задачи, которые стоят в настоящее время перед системами хранения данных?

The article is a review of the main trends in the modern DBMS. It looks at the main features and capabilities of traditional relational databases and describes the way they are adapted to meet the challenges that data management systems are currently faced with. The article also discusses NoSQL databases and their key characteristics, as well as their capabilities in comparison with relational DBMS. Pp. 3-12.

Ключевые слова: СУБД, NoSQL, рейтинг DB-Engines, целостность данных, продолжительность транзакций, согласованность данных, доступность данных, устойчивость к разделению.
Keywords: DBMS, NoSQL, DB-Engines Ranking, Integrity, Durability, Consistence, Availability, Partition tolerance.
В этой статье описываются задачи систем визуальной одометрии и SLAM и их основные применения. Далее перечисляются основные подходы, использованные научным сообществом для создания таких систем в разное время. Мы также углубляемся в более современный метод, основанный на совместной оптимизации, и разбираем его вариации в зависимости от требований к решению. Наконец, мы рассматриваем современные направления исследований в области визуальной одометрии и кратко представляем свои наработки. С. 5-14.

In this paper we describe the tasks of Visual Odometry and Simultaneous Localization and Mapping systems along with their main applications. Next, we list some approaches used by the scientific community to create such systems in different time periods. We then proceed to explain in detail the more recent method based on bundle adjustment and show some of its variations for different applications. At last, we overview present-day research directions in the field of visual odometry and briefly present our work.

Ключевые слова: visual odometry, SLAM, autonomous navigation, ADAS, UAV.
Keywords: visual odometry, SLAM, autonomous navigation, ADAS, UAV.
Описаны возможности Aspect.NET - системы аспектно-ориентированного программирования для платформы .NET. Приведены примеры аспектов, описан метаязык их спецификации, даны практические сведения для работы в системе. Продолжение. Начало статьи см. № 3, 2008.

The article describes features and use of Aspect.NET - aspect-oriented programming toolkit for .NET platform. Samples of aspects are provided, AOP meta-language is described, practical information on using the system is given.

Ключевые слова: аспектно-ориентированное программирование.

Keywords: aspect-oriented programming
В последнее время активно развивается новая парадигма кодирования/декодирования многоразрядных сигналов, имеющих «разреженное» (sparse) представление в некотором базисе. Она опирается на идеи рандомизации измерений и l1-оптимизации. Предложенные недавно новые методы получения и представления сжимаемых данных в англоязычной литературе называются «Compressive Sensing» (опознание по сжатию.

Recently a new paradigm has been developing for the coding/decoding of multidimensional signals having sparse representation in some basis. It is based on ideas of measurement's randomization and l1-optimization. Recently proposed new methods of obtaining and representation of the compressible data are referred to as Compressive Sensing.

Ключевые слова: рандомизированные измерения, l1-оптимизация, восстановление разреженных сигналов.
Keywords: randomized measurements, l1-optimization, sparse signals reconstruction.
В работе рассматривается технология контрактного проектирования (Design-by-Contract), предлагающая систематический подход к спецификации и реализации классов и их взаимосвязей в программной системе. Исследуются преимущества использования технологии с точки зрения повышения надежности программного обеспечения. Для поддержки технологии предлагается использовать методологию аспектно-ориентированного программирования. Приведены основные принципы спецификации контрактов и примеры их реализации с помощью аспектов в системе Aspect.NET.

The article deals with Design-by-Contract technology which provides a systematic approach to specifying and implementing object-oriented software elements. Advantages of the technology with a view to software reliability are discussed. Aspect-Oriented Programming methodology is reviewed and proposed as a method for Design-by-Contract support. Basic concepts of specifying contracts are stated and examples are provided on how to implement contracts by the use of aspects in Aspect.NET system.

Ключевые слова: design-by-contract, DBC, aspect-oriented programming, AOP, Aspect.NET.
Keywords: design-by-contract, DBC, aspect-oriented programming, AOP, Aspect.NET.
Электронные устройства, обладающие высоким уровнем функциональной безопасности, могут быть построены только на основе избыточных аппаратных архитектур. Для сложных систем с высокоскоростными сетевыми интерфейсами предпочтительной является архитектура «2 из 3» (2оо3, TMR) и её модификации. Решения с применением мажорирующих элементов обеспечивают высокую надёжность сетевого вычислителя без ущерба для производительности. В статье рассмотрены методики расчётов показателей надёжности сетевых вычислителей и практические примеры их реализации.

Ключевые слова: отказоустойчивый вычислитель, мажорирование, тройная модульная избыточность, TMR, 2oo3, функциональная безопасность.
Проблема обработки и хранения BigData, основную часть которых составляет неструктурированная информация, привела к появлению NoSQL баз данных, которые стремительно завоевали популярность. Одно время даже высказывалось мнение, что традиционные реляционные СУБД обречены. Действительно ли это так? Решают ли новомодные системы те задачи, которые стоят в настоящее время перед системами хранения данных? С. 5-16.

The problem of storage and processing of big data, the main part of which presented unstructured information, led to the development of NoSQL databases, which have rapidly gained popularity among researchers and users. Some of them once even expressed an opinion that traditional relational databases would become obsolete. Is it indeed so? Would newfangled NoSQL DBMS respond to the challenges currently facing the data management systems? In the present paper we are addressing these issues.

Ключевые слова: СУБД, NoSQL, рейтинг DB-Engines, целостность данных, продолжительность транзакций, согласованность данных, доступность данных, устойчивость к разделению.
Keywords: DBMS, NoSQL, DB-Engines Ranking, Integrity, Durability, Consistence, Availability, Partition tolerance
Проблема трансляции базы данных из одного формата в другой периодически появляется в разных организациях по разным причинам. Сегодня хорошо отработан механизм смены формата реляционных баз данных. Но с появлением новых типов баз данных, таких как NoSql, проблема трансляции вновь стала очень актуальной в связи с радикальным отличием способов организации данных в различных базах данных. В статье рассматривается формализованный метод, основанный на теории множеств, по выбору числа и состава коллекций для базы данных типа ключ-документ. Исходными данными являются свойства объектов, информация о которых хранится в базе данных, и совокупность запросов, которые наиболее часто выполняются. Рассмотренный метод можно применять не только при создании новой базы данных типа ключ-документ, но также при трансформации существующей, при переходе от реляционных баз данных к NoSql, при консолидации баз данных. С. 15-28.

The work of transforming a database from one format periodically appears in different organizations for various reasons. Today, the mechanism for changing the format of relational databases is well developed. However, with the advent of new types of databases, such as NoSQL, this problem is prevalent due to the radically different ways of data organization at the various databases. This article discusses a formalized method based on set theory, at the choice of the number and composition of collections for a key-value type database. The initial data are the properties of objects, about which information is stored in the database, and the set of queries that are most frequently executed.
The considered method can be applied not only when creating a new keyvalue database, but also when transforming an existing one, when moving from relational databases to NoSQL, when consolidating databases.

Ключевые слова: NoSql, запрос к базе данных, коллекция, ключ-значение, трансляция данных, формат данных, оптимизация структуры базы данных.
Keywords: NoSql, database query, collection, key-value, data translation, data format, database structure optimization.
В статье описаны возможности Aspect.NET [1-11] – системы аспектно-ориентированного программирования (АОП) для Microsoft.NET, разработанной в СПбГУ нашим коллективом и используемой в настоящее время в 22 странах мира. Принципы АОП и Aspect.NET описаны в статье [1]. Данная статья имеет практическую направленность – научить пользователей работе в нашей системе. В основу статьи положено руководство пользователя по Aspect.NET 2.1 на английском языке, опубликованное на академическом сайте Microsoft [3] вместе с самой системой. Выражаю надежду, что публикация данной статьи, наряду со статьей [1], послужит еще более широкому распространению АОП и Aspect.NET в России.

The article describes features and use of Aspect.NET - aspect-oriented programming toolkit for .NET platform. Samples of aspects are provided, AOP meta-language is described, practical information on using the system is given.

Ключевые слова: аспектно-ориентированное программирование

Keywords: aspect-oriented programming
В статье рассмотрены возможности, реализованные в новой версии системы Aspect.NET, – многоязыковое аспектно-ориентированное программирование (АОП), то есть возможность реализации целевых программ и аспектов на различных языках. Анализируются роль и принципы реализации многоязыкового АОП, рассматриваются другие подходы к данной проблеме, приводятся примеры использования многоязыкового АОП в системе Aspect.NET, намечаются дальнейшие перспективы развития.

The article covers novel features implemented in the new version of the aspect-oriented programming (AOP) system Aspect.NET - multi-language AOP, i.e. support of implementation of target applications and aspects to be woven in different programming languages. The role and implementation principles of multi-language AOP are analyzed; other work and approaches to the problem are considered; examples of multi-language AOP in Aspect.NET are provided; oncoming perspectives are outlined.

Ключевые слова: аспектно-ориентированное программирование (АОП), Aspect.NET, многоязыковое программирование, C#, Visual Basic.
Keywords: aspect-oriented programming (AOP), Aspect.NET, multi-language programming, C#, Visual Basic.
Алгоритмы стохастической аппроксимации со случайными направлениями демонстрируют хорошие результаты в задачах оптимизации при динамически меняющемся состоянии системы. В работе рассматривается построение регулятора частоты центрального процессора смартфона под управлением Android OS на базе указанных алгоритмов, а также указываются направления для его дальнейшего усовершенствования. Результаты сравнения показывают, что полученный регулятор работает на уровне современных регуляторов, используемых в смартфонах. С. 26-40.

Simultaneous perturbation stochastic approximation demonstrate good results for control theory problems where system states dynamically changes. In this paper a dynamic voltage frequency scaling governor creation based on this approach for smartphone CPU under Android OS is described and ways to improve it are considered. The new governor shows results comparable to default Android OS governors.

Ключевые слова: стохастическая аппроксимация, регулирование частоты, энергосбережение, Android OS.
Keywords: stochastic approximation, dynamic voltage frequency scaling, energy efficiency, Android OS.
Концепция федеративного обучения получила широкое распространение в работе с данными, главным образом благодаря тому, что она позволяет проводить обучение по данным непосредственно на узлах, где они хранятся. В результате передача данных не требуется. После завершения обучения на каждом узле только обученная модель передается на центральный сервер для агрегации.
Многоагентные системы ведут себя аналогичным образом, поскольку агенты позволяют обучать модели машинного обучения на локальных устройствах, сохраняя при этом конфиденциальную информацию. Способность агентов взаимодействовать друг с другом позволяет обобщать (агрегировать) такие модели и повторно использовать их.
В этой статье представлена архитектура многоагентных систем для федеративного обучения. Она выделяет элементы, которые составляют платформу агентов и структуру платформы JADE. Описывает жизненный цикл всех агентов, используемых для выполнения полного цикла обучения в среде MAC_FL. Анализируются и описываются конфигурации размещения агентов для каждой из предложенных архитектур многоагентных систем федеративного обучения: централизованной, децентрализованной и иерархической. C. 30-45.

The concept of federated learning has become widespread in working with data, mainly due to the fact that it allows training on data directly on the nodes where they are stored. As a result, no data transfer is required. After the training is completed on each node, only the trained model is transmitted to the central server for aggregation.
Multi-agent systems behave in a similar way, because agents allow you to train machine learning models on local devices, while preserving confidential information. The ability of agents to interact with each other makes it possible to generalize (aggregate) such models and reuse them.
This article presents the architecture of multi-agent systems for federated learning. It highlights the elements that make up the agent platform and the structure of the JADE platform. Describes the lifecycle of all agents used to perform a full training cycle in the MAC_FL environment. The configurations of agent placement for each of the proposed architectures of multi-agent systems of federated learning are analyzed and described: centralized, decentralized and hierarchical.

Ключевые слова: агент, архитектура, федеративное обучение, многоагентные системы.
Keywords: agent, architecture, federated learning, multi-agent systems.
Данная статья является продолжением цикла исследований, посвящённых исследованию совмещённых операций на процессоре Baikal-T. В ней рассмотрены различные особенности работы команды совмещённого умножения-вычитания. Приведены разнообразные примеры использования команды, сделаны вычисления и сформулированы выводы. Также описаны ситуации, в которых использование команды совмещённого умножения-вычитания оправдано, и ситуации, в которых её использование не выгодно относительно времени работы программы. С. 82-93.

This article is a continuation of a cycle of research devoted to the study of combined operations on the Baikal-T processor. It discusses various features of the combined multiplication-subtraction command. Various examples of using the command are given, calculations are made and conclusions are formulated. It also describes situations in which the use of the combined multiplication-subtraction command is justified, and situations in which its use is not profitable relative to the operating time of the program.

Ключевые слова: MIPS, процессор Байкал, умножение-вычитание, оптимизация, ассемблер.
Keywords: MIPS, Baikal processor, multiply-subtraction, optimization, assembler.
Цель статьи – научить студентов и аспирантов программистских специальностей правильно писать научные работы – курсовые, дипломы, статьи, тезисы докладов, диссертации – и убедить их в том, насколько им необходимо следить за работами других авторов и, тем самым, за развитием ИТ. Статья может быть также полезна моим уважаемым коллегам – вузовским преподавателям.
В статье рассматриваются современные подходы к разработке надежных и безопасных программ (trustworthy computing - TWC). Особое внимание уделено взаимосвязи TWC и аспектно-ориентированного программирования (АОП), применению АОП и системы Aspect.NET для разработки надежных и безопасных программ [1].

The article covers modern approaches to trustworthy computing (TWC). Special attention is paid to tight relationship of TWC and aspect-oriented programming (AOP), to applying AOP and the Aspect.NET toolkit for trustworthy software development [1].

Ключевые слова: Надежность программ, безопасность программ, защита конфиденциальной информации, аспектно-ориентированное программирование.

Keywords: aspect-oriented programming, information protection, software reliabilityб software security
Данная статья посвящена исследованию эффективности команды совмещённого умножения--сложения на процессоре Baikal-T. Рассмотрены различные примеры использования команды, сделаны измерения и сформулированы выводы, в каких случаях применение совмещённого умножения-сложения даёт выигрыш в вычислениях и в каких ситуациях применение команды невыгодно с точки зрения скорости выполнения программы. С. 46-56.

This article is devoted to the study of the efficiency of the multiply-add operation instruction on the Baikal-T processor. Various examples of using the command are considered, measurements are made and conclusions are formulated in which cases the use of multiply-add operation gives a gain in calculations and in which situations the use of the command is unprofitable in terms of program execution speed.

Ключевые слова: MIPS, процессор Байкал, умножение-сложение, оптимизация, ассемблер.
Keywords: MIPS, Baikal processor, multiply–addition, optimization, assembler.
Отслеживание нескольких целей — это классическая задача обработки сигналов, которая возникает во многих приложениях, например в управлении воздушным, морским и дорожным движением. Сети автономных датчиков служат желательными платформами для многоцелевого отслеживания ввиду их избыточности и реконфигурируемости. Однако сетевая реализация делает невозможным использование классических централизованных подходов к фильтрации, поскольку каждый датчик имеет ограниченные вычислительные возможности и ограниченный доступ к измерениям других датчиков. Помимо топологических ограничений (каждый датчик может взаимодействовать только с несколькими соседними узлами сети), связь между датчиками может быть ограничена, например, из-за ограниченной пропускной способности каналов связи, задержки и искажения данных.
В этой статье предлагается новый алгоритм для распределенного отслеживания нескольких целей в сенсорной сети, который является совмещением алгоритма SPSA и протокола локального голосования. Проводится консолидация алгоритма в условиях неизвестных, но ограниченных помех, оптимизация размера шага алгоритма и моделирование, подтверждающее работоспособность алгоритма. Также описаны возможные приложения для алгоритма. С. 92-107.

Tracking multiple targets is a classic signal processing problem that occurs in many applications such as air, maritime and traffic control. Autonomous sensor networks serve as desirable platforms for multipurpose tracking due to their redundancy and reconfigurability. However, the network implementation makes it impossible to use the classical centralized approaches to filtering, since each sensor has limited computing power and limited access to the measurements of other sensors. In addition to topological limitations (each sensor can only communicate with several neighboring network nodes), communication between sensors can be limited, for example, due to limited bandwidth of communication channels, delay and data distortion.
This article proposes a new algorithm for distributed tracking of multiple targets in a sensor network, which is a combination of the SPSA algorithm and the local voting protocol. The algorithm is consolidated under conditions of unknown but limited noise, the algorithm step size is optimized, and simulation is carried out to confirm the algorithm's performance. Possible applications for the algorithm are also described.

Ключевые слова: многоагентная оптимизация, рандомизированные алгоритмы, существенные неопределенности.
Keywords: multi-agent optimization, randomized algorithms, significant uncertainties.
Данная статья является продолжением исследований, которые посвящены своевременному выявлению и оперативному реагированию на аномалии в работе компьютерной сети при помощи системы мониторинга сети с модулем дополнительной диагностики аномалий. Приведена многоуровневая архитектура системы мониторинга сети с модулем дополнительной диагностики аномалий, в которой учитывается модульный способ организации работы такой информационной системы. Описаны ситуации, в которых предлагаемая архитектура может применяться, приведены ее преимущества и недостатки. Также описывается процесс формирования рабочих сценариев при обработке аномалии в функционировании компьютерной сети с учетом приведенной архитектуры системы мониторинга с модулем дополнительной диагностики аномалий такой сети. Рассмотрены подходы к формированию входных и выходных данных при создании рабочего сценария. С. 55-73.

This article is a continuation of research that focuses on the timely detection and rapid response to anomalies in the computer network with a network monitoring system with additional anomaly diagnostics module. The multi-level architecture of the network monitoring system with the module of additional anomaly diagnostics, which takes into account the modular way of organizing such an information system. Described situations in which the proposed architecture can be applied, listed its advantages and disadvantages. Process of forming of working scenarios at processing of anomaly in functioning of computer network with the account of the given architecture of monitoring system with a module of additional diagnostics of anomalies of such network is also described. Approaches to the formation of input and output data when creating a work scenario are considered.

Ключевые слова: система мониторинга компьютерной сети, компьютерная сеть, мониторинг компьютерной сети, модуль диагностики аномалий, архитектура информационной системы.
Keywords: computer network monitoring system, computer network, computer network monitoring, anomaly diagnostics module, information system architecture.
Статья рассказывает об особенностях языкоориентированного программирования. Детально рассматривает одну из предметных областей описания языков - систему типов - на примере языка HELGINS.
Для пополнения баланса выберите страну, оператора и отправьте СМС с кодом на указанный номер. Отправив одну смс, вы получаете доступ к одной статье.
Закрыть