+7 (495) 987 43 74 ext. 3304
Join us -              
Рус   |   Eng

Authors

Keyno P.

Degree
PhD in Engineering, Senior Lecturer, Department no.316, Moscow Aviation Institute, Moscow
E-mail
science@blockset.ru
Location
Moscow
Articles

Automated development of dynamic websites by using declarative programming language

The article examines the theoretical background of a new methodology in the Web-development of server- and the client-sides. The authors have developed a methodology BlockSet, including a declarative programming language with interpreter application. The main idea of the article is the redistribution of the abstraction levels. Such redistribution allows reduce the period for mastering of the proposed methodology and amount of appropriate. It also allows to accelerate the design process. The article considers the advantages and disadvantages of declarative and imperative programming. Similarities with the BEM methodology used in «Yandex» are described. Authors reject database design concepts but make accent on the data abstraction is one of the basic principle as one of the basic principle of the methodology which proposes extended data types. The result is the decreasing of the abstraction level and increasing the data model flexibility. This approach makes no differences between data sources, whether it would be the database or file storage. It is considered as the unified concept. The basic principles of MVC (Model-View-Controller) are considered. The main practical component of the work is the development of BML interpreter. This language is based on BlockSet methodology. The direct relationship between the BML structure and the visual editor is shown. Thus, it is possible the modeling of the logic and design of Web-document without programming. Some examples of the proposed methodology are presented.
Read more...

Design and implementation of a declarative web-interface modeling language interpreter on a high-performance distributed systems

The article examines the development process of the BML interpreter and the high-performance cluster building with BML support. The language allows to modeling a web-interfaces and their business logic in a declarative form. The article contains the comparative analysis of some critical components in the system. In particularly there is a comparison of efficiency of the Web platforms in static and dynamic environments between CGI, FastCGI and traditional PHP programming. Efficiency of compiling and interpreting languages also considered. According to study, the FastCGI platform with the C++ language gives the best result of performance. Detailed architecture with the base system components is considered. The interpreter contains low-level programming elements and requires performing the following tasks: HTTP requests parsing, store and retrieve user sessions, interact with DBMS, parsing of XML-like documents, processing a regular expressions, provide the computed data to templates and etc. There are some resource-intensive processes in the interpreter and they are also requiring detailed analysis. The BML language based on XML syntax therefore its interpreter require a proper XML-parser. Authors chose libxml2 as the best way for the fast development although it shown not highest efficiency. Some of components are developed independently: HTTP-parser, configuration files parser, session manager, all interface classes and more. In the article presented the development process of the interpreter in high-performance systems as complex engineering solution. Keywords: Web, backend, server programming, highload systems, cloud computing, clusters, servers, interpreter, declarative programming, CGI, FastCGI, BML, BlockSet, HTML, XML, MVC, C++.
Read more...

Software architecture of synchronizer as part of declarative Web-application modeling language interpreter

The main line of work is developing of specific low-level software for synchronizing data structures between file system and clients. The data represents the logic of BML that also developed by author. The language stores their logic in the XML-like structure that has elements and properties. One of the elements is «Set» that associates with a table in a relational database. And element «Block» associates with a field of some data. The main difference is in the extended nature of elements. So, Block can have specific data type and Set can have relations between other sets. When BML developer modifies the source code it causes problems with database rebuilding. The modified project can produce a high load in the system. So, that process should be distributed by the child process. On the other hand, there is second problem related with constant reading of filesystem data. So, synchronizer should perform also file caching function. Synchronizer through the specified interval checks any modified properties like date or checksum of files in the working directory with BML and totally reloads logic structure data when such changes will be. Author also proposes using of non-blocking sockets for interaction with clients. Necessary data transmits through BSON (Binary JSON) and they should be interpreted by each client that receives it. In the article author made a complex architecture of low-level software and proposes some non-standard solutions.
Read more...

Regular expression cardinality (size) calculation as optimality criterion in URL routing

The article is devoted to the subject of finite automata theory and regular expressions. It has practical and theoretical issues. The theoretical issue considers a calculation of cardinality (size) of regular expression. The main problem is in the redundant parts of regular expressions. We are considering their simplification. This process splits into two parts: redundancy removing, finite condition adding. Finite condition introduced to remove uncertainty and allows calculate exact number of all combinations. In case of complex regular expressions the intersection of patterns appeared. The most difficult problem is to calculate cardinality with that intersection. Authors propose to avoid using of complex regular expressions with intersections. The parameter of cardinality will be used in practical part as optimality criterion. The practical issue operates with objects identified by pattern and input string on the other side. Input string represents user-defined URL and objects represented by dynamic Web-page with variable parts. Each variable of the input data involved in behavior of the web-server in data selection. The main thesis proposed by authors in assignment of priority to the ambiguous patterns. The pattern with the lowest cardinality will be the most suitable. The solution should help to route URLs in classical developing methods.
Read more...

Analytical and quantitative method of software quality evaluation for imperative and declarative programming of dynamic Web-applications

Abstract: The main line of the article is the proof of the concept of BML language. BML is the main part of BlockSet methodology created for Web-development. The article examines the problem of software evaluation on that basis. At beginning of the work authors proposes the new model with complex of criteria. The criteria includes a lot of properties: psychological factors of developers, the language features, system requirements and so on. Psychological factors includes perception and training speed. Language features are flexibility, instructions set, complexity, recipe set. The problem is in difference between of imperative and declarative programming. There are a few methods of evaluation by criteria listed above suitable for both language paradigms. The «threshold entry» term introduced and found correlation between volume and quality of source code. Also authors propose term of «fault probability» related to the complex of typical project faults appeared during project developing. In the classification of software metrics authors revealed three main characteristics for evaluation: work amount, style of code, developer effort. Authors applied the hierarchy analysis method to identify the most important criterion. Due to research authors proposed «recipe set» block for further study as fundamental criterion for others.
Read more...

Using «Abstract factory» pattern in implementation of validation and data-transformation module of BlockSet interpreter software

The article considers the architecture of validation and data-transformation module used in BML interpreter. BML is declarative modeling domain-specific language created by authors for web-developing. The article discusses about theoretical basis and practical implementation of Block element. Definition of the architecture class inheritance and search for a universal solution are considered for writing the corresponding module using some design patterns one of them is «abstract factory». The pattern allows making of universal architecture of Block class. There is a problem related with Block nature. The block can be declared in BML language with different data types, so that data must be validated and transformed in different ways. In case of integer data type we need to check that it has only digits, but string type has no limits with allowed characters. The string consisted digits in integer type should be converted to number by internal algorithms. So, we need to develop architecture with universal input with different ways to process data depended on their type. The solution of using the «abstract factory» pattern is the best way to that task. Authors developed abstract class named «Block» with virtual methods and different concrete classes for each block of different data type. Each concrete class has a standard set of methods inherited of abstract class.
Read more...

Architecture development of internet-service for science conferences organizing with workflow automatization

The article examines the relevance of development architecture the cloud internet-service for organization application workflow on the scientific conferences. The main goal of the development is the building of digital scientific community to unite scientists, publishers and conference hosts. Article describes a functional set for automatic deployment of a customizable web-resource that can be easily configured to provide individual interface for processing application based on organizer’s purposes. Organizer can operate flexible model if fields which provides a wide range of functions for designing applications forms. Such model can provide a fields order, their types and additional options for each application in different sections. Every project can be divided into sections and each section can be operated by different persons. Each application has a status that shows a progress of revisited work. There are a four kind of status: approved, declined, in process, incomplete. Approved works automatically publishing on a user web-resource. All approved works also will be published on a automaticallygenerated digest that can be printed or uploaded on a web-site as electronic resource. The system can generate several kinds of a output documents like a digest, spreadsheet with statistics, programme of the event and so on. The internet-service that developed and described in the article can be interested by universities and scientific organizations. It optimizes a workflow of different events and decrease of routine tasks by digitalization.
Read more...

Mathematical model of genetic algorithm in implementation for scheduling tasks of complex technical objects during pre-production stages

The article describes the problems of scheduling systems development. The authors demonstrate complexity of feasible schedules generation for comprehensive technological databases. The study concluded that the task belongs to the class of non-polynomial complexity. The article formalizes the task to plan as a single mathematical model. Particular emphasis was placed on the fact that the mathematical model should have the property of practical problem solving. The main task is to minimize the project development time, and the main goal is to uniform loading of each resource in a complex system. This article proves that exact solution of mathematical optimization is not effective since it demands huge amount of computational resources. Authors demonstrate that genetic algorithm implementation allows to find approximate feasible solution. The authors concluded that it is acceptable to use hybrid algorithms to solve the problem. It is proposed to use heuristic methods to further improve the resulted mathematical model. Article also demonstrates how these modules are integrated into technological data visualization systems developed by them. The PrPlan software package allows interacting with existing systems in the enterprise and includes process data uploading interfaces. It can group process operations of the same type and ensure generation of technological solutions based on prototypes. The developed mathematical model and software will significantly optimize the technological processes in production and ensure a high level of stability in the performance of each operation. It enforces a significant economic growth and increase the efficiency of the enterprise in general. The developed mathematical model was successfully tested in practice in the developed PrPlan software package. Additional optimizations that can be implemented in the model can be equally well made in the algorithm of the software system. This will allow us to make changes quickly, without disturbing existing processes.
Read more...

Permission system and its management organization in BlockSet project

The article discusses the features of the permissions system in the BlockSet project. Its principles is shown both from the position of administration and from the position of its internal organization. The authors have shown the possibility of implementing access control of various levels of complexity with simple and accessible tools of the BlockSet project. In the classical development of a dynamic web-application, the obvious solution is often to write the business-logic of permissions as part of the server side itself, that is, such code will be written in advance taking into account the specificity of the resource being developed, will have opportunities, the need for which was described in advance and, perhaps, can afford the disadvantages, the presence of which will not be so critical due to the fact that it was determined in advance again which aspects of the final system would not be so important. The complexity of developing such system for big projects like BlockSet lies precisely in the fact that the requirements are not known in advance. And considering the paradigm of flexibility of this project, it is necessary to take into account all, or almost all possible requirements for creating such systems and create tools for their implementation. To solve the problem of flexibility, the stored permissions are located directly in the database itself so that each piece of information can be associated with a separate set of permission properties. For storage of such a complex structure PostgreSQL is used. It uses composite data types that allow avoiding high productivity costs when storing structures in the JSON form when creating additional entities. Thus, all attributes except primary keys are composite and consist of a block of information value of the required data type and two blocks of rights: dynamic dynamic_p, described below and static static_p, the data type that stores an array of strings. Due to the possibility to set a separate set of permissions for each piece of information, the necessary flexibility is achieved. However, if we’ll take an analogy with users and groups, permissions set for each cell is a very time-consuming and inefficient practice in most situations. To refer to a group of blocks, there are simultaneously block-interfaces and dynamic permissions. The usage example is very simple. With the task to create a forum, it may often be necessary to manage all the posts of the same topic simultaneously. The permission system in the BlockSet project allows describing in detail the distinctions between operations and rights over various pieces of information between users and groups, which corresponds to the project’s paradigms on flexibility and low entry threshold, and also significantly optimizes the development process.
Read more...

On the issue of indexing file storage based on FTP

This article discusses the server indexing system based on the FTP protocol. The article describes a set of functions for indexing files, search engine and database. The authors have shown the possibility of FTP server indexing, possible problems and the ways of solving them. Despite the evolution of file storages through the 34 years passed after the creation of FTP protocol this issue remains relevant and useful because of big amount of data, stored on FTP servers and wide functionality of developed search system. The search system developed by the project consists of three main parts: indexing system, database and Web-service. Indexing system is the most important and difficult part of the project, it indexes various types of servers, which are fundamentally different from each other in the format of data on files, and avoids link traps and upload indexed data to database. To ensure multi-threaded operation and efficiency, the indexing system is implemented with Python. Web-service accepts requests from the end user, makes a request to the database and returns the search result. The user can create a query specifying the full or partial file name, file type and size. The unique difference of this system is the storage of the change history of files and servers that can be tracked for each file, directory or server.
Read more...

Heterogenius data collecting in scientific communities using portfolio management system in ConfID service

The article examines the relevance of the development of the scientific social environment in the form of a ConfID Web application. One of the important aspects is the implementation of the mechanism for the automated accumulation of achievements, which may include patents, personal electronic certificates, output data of publications, and participation in conferences. The ConfID project plays the role of a portfolio, on the basis of which the profile of each participant is formed. Any participant has the opportunity to look for fellow scientists in order to conduct cooperative research to help with reviews on dissertations and act as their opponents. The proposed configuration model of electronic certificates will optimize resources for data storage, as well as their processing. The ecosystem under development consists of two main projects - ConfID and ConfLab. Due to the possibility of interserver interaction between projects, the full life cycle of scientific events is provided. An important aspect of the problem being solved is the documentary support of scientific flows at all stages of the life cycle. Particular attention was paid to the description of the algorithm for generating and storing graphic documents such as letters and other related materials. It is such documents that form the basis for filling the scientific portfolio of both a young scientist and a senior researcher. The project presented in this work demonstrates a complex technical solution in the form of an architecture that ensures the interconnectedness of disparate scientific communities by aggregating heterogeneous data on the scientific achievements of practical scientists. Among other things, the architectural solution of the system itself is of scientific interest as a model for applying the best practices for constructing systems of this kind.
Read more...

Development of the «supplier selection Protocol» module based on the Directum electronic document management system

Any activity of the organization is reflected in documents, and to improve the quality of business processes, it is necessary to maintain constant improvement of the information processing process. In this regard, I consider it relevant to consider the process of developing an electronic document management module based on the integration platform for business solutions Directum. The purpose of the research is to analyze the possibilities of forming business solutions in the Directum system, which allows you to build a corporate content management system, as well as to build a full-fl electronic document management system [2]. A step-by-step analysis of the development of the electronic document management module «supplier selection Protocol» using the tools and capabilities of the Directum platform was carried out. For this purpose, a structural method was used, by splitting the problem into a set of independent stages available for understanding and solving, and hierarchical ordering. The author developed a solution for putting information from an electronic document card into a template for an electronic Word document based on the platform, since the standard Directum solution has some disadvantages. Automation of routine user actions for initialization and start of a typical route is demonstrated. As a result, it was concluded that the Directum system, using its built-in components, allows you to develop automation for any business processes of the organization, as well as to develop any additional functionality using the platform tools Read more...

Permissions access meta-management implementation using BML in the BlockSet project

Development of a web-resource today is a very frequent and not always simple task. Especially if we are not talking about a static one-page website, but about a dynamic web application with an unlimited number of pages, as well as the ability to withstand heavy loads, typical of such projects. To solve these problems, there are very few ready-made solutions. Of the best ones, perhaps, only WebDSL can be distinguished, but even it has a number of drawbacks inherited from the Java project implementation language, such as, for example, low flexibility, high performance costs and the need to install a java-machine. The development process was carried out using a relatively low-level C++ general purpose programming language, which saved the project from the problems that its competitors faced, ensured high interpreter performance and cross-platform system-wide. The authors described in detail the selected means of the meta-management of the access rights of the BlockSet project, as well as the syntax of their use in the declarative highly abstract subject-oriented language BML, using simple and accessible examples to demonstrate the conciseness, but the constructiveness of the selected syntax solutions. The results obtained are of great value, as they significantly simplify the further process of administering a web resource, which is also one of the main tasks of the BlockSet project. Thus, the BML language, together with the system of access rights, provides flexible, powerful, and at the same time fairly simple and understandable methods for organizing the required system, which corresponds to the project’s paradigms on flexibility and a low threshold of entry, and also significantly optimizes the development process. Read more...