RU2313824C2 - Information client-server system and method for providing graphical user interface - Google Patents

Information client-server system and method for providing graphical user interface Download PDF

Info

Publication number
RU2313824C2
RU2313824C2 RU2005130007/09A RU2005130007A RU2313824C2 RU 2313824 C2 RU2313824 C2 RU 2313824C2 RU 2005130007/09 A RU2005130007/09 A RU 2005130007/09A RU 2005130007 A RU2005130007 A RU 2005130007A RU 2313824 C2 RU2313824 C2 RU 2313824C2
Authority
RU
Russia
Prior art keywords
server
data
objects
client
request
Prior art date
Application number
RU2005130007/09A
Other languages
Russian (ru)
Other versions
RU2005130007A (en
Inventor
ев Михаил Васильевич Бел (RU)
Михаил Васильевич Беляев
Original Assignee
Михаил Васильевич Беляев
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Михаил Васильевич Беляев filed Critical Михаил Васильевич Беляев
Priority to RU2005130007/09A priority Critical patent/RU2313824C2/en
Publication of RU2005130007A publication Critical patent/RU2005130007A/en
Application granted granted Critical
Publication of RU2313824C2 publication Critical patent/RU2313824C2/en

Links

Images

Abstract

FIELD: data transmission in computer networks.
SUBSTANCE: in accordance to the invention, expandable, usable with various client-server informational systems, system of dynamically created program objects is used, wherein program objects are divided onto a fixed number of categories, which are matched with predetermined program interfaces, where creation of request to server and processing of response from server represent predetermined chains of program object method calls.
EFFECT: reduced load on communication line in client-server system.
2 cl, 6 dwg

Description

Область техники, к которой относится изобретениеFIELD OF THE INVENTION

Изобретение относится к передаче данных в компьютерных сетях и может быть использовано в распределенных информационных системах.The invention relates to data transmission in computer networks and can be used in distributed information systems.

Общепринятые терминыCommon Terms

Информационная система клиент-сервер - распределенная информационная система, состоящая из компьютера-сервера и одного или нескольких компьютеров-клиентов, в которой каждый клиент соединен с сервером линией связи. В настоящее время в качестве линий связи наиболее часто используется среда Интернет. Основная работа в системе клиент-сервер выполняется компьютером-сервером. Пользователь информационной системы взаимодействует с компьютером-клиентом.Client-server information system - a distributed information system consisting of a server computer and one or more client computers, in which each client is connected to the server by a communication line. Currently, the Internet environment is most commonly used as communication lines. The main work in the client-server system is performed by the computer-server. The user of the information system interacts with the client computer.

Запрос - последовательность сигналов, пересылаемая по линии связи с клиентского компьютера на серверный компьютер. Сигналы запроса определяют, какие именно действия должен выполнить сервер, а также характер данных, которые ожидает клиент от сервера.Request - a sequence of signals sent over a communication line from a client computer to a server computer. Request signals determine exactly what actions the server should perform, as well as the nature of the data that the client expects from the server.

Отклик - последовательность сигналов, пересылаемая по линии связи с серверного компьютера на клиентский компьютер. В отклике содержатся данные для клиента.A response is a sequence of signals sent over a communication line from a server computer to a client computer. The response contains data for the client.

Программный объект - определенным образом организованная совокупность сигналов в памяти компьютера. Программные объекты создаются и используются в процессе работы компьютера в соответствии с алгоритмами объектно-ориентированного программирования. Каждый программный объект обладает специфическим набором методов и характеризуется набором значений свойств объекта. Программные объекты взаимодействуют между собой, вызывая методы друг друга. Обычно взаимодействие происходит посредством обработчиков событий.Software object - in a certain way organized set of signals in the computer's memory. Software objects are created and used in the process of computer operation in accordance with the algorithms of object-oriented programming. Each program object has a specific set of methods and is characterized by a set of object properties. Software objects interact with each other, calling each other's methods. Typically, interaction occurs through event handlers.

Метод объекта - определенным образом организованная совокупность сигналов в памяти компьютера. Вызов метода приводит эти сигналы в действие. Метод может возвращать данные, являющиеся результатом выполнения метода.An object method is in a certain way an organized collection of signals in the computer's memory. A method call drives these signals. A method can return data resulting from the execution of a method.

Свойство объекта - характеристика объекта, содержащая данные одного из заранее преопределенных типов. Запись и чтение свойства осуществляются через вызовы соответствующих методов объекта.Property of an object is a characteristic of an object that contains data from one of the predefined types. Writing and reading properties are carried out through calls to the corresponding methods of the object.

События - действия пользователя или какие-либо иные изменения в компьютерной системе.Events - user actions or any other changes in a computer system.

Конфигурация программного объекта - конкретный набор значений свойств этого объекта.The configuration of a software object is a specific set of property values for this object.

Описание программного объекта - данные, передающие конфигурацию программного объекта. Для описаний программных объектов могут использоваться различные двоичные или текстовые форматы.Description of a software object - data transmitting the configuration of a software object. Various binary or text formats can be used to describe program objects.

Версия описания программного объекта - дополнительные данные, относящиеся к описанию программного объекта, позволяющие различать варианты конфигураций объекта.Version of the description of the program object - additional data related to the description of the program object, allowing to distinguish between the configuration options of the object.

Интерфейс (программный) - определенный набор методов и свойств. Для поддержки программного интерфейса объект должен обладать всеми методами и свойствами, относящимися к данному интерфейсу.An interface (software) is a specific set of methods and properties. To support a software interface, an object must have all the methods and properties related to this interface.

Поведение объекта - реакция объекта на события в системе, зависящая от его конфигурации. Программные объекты изначально обладают некоторым поведением, то есть зависящей от конфигурации объекта заранее предопределенной реакцией на события в системе.The behavior of an object is the reaction of an object to events in the system, depending on its configuration. Software objects initially have some behavior, that is, depending on the configuration of the object with a predefined reaction to events in the system.

Обработчик события - определенным образом организованная совокупность сигналов в памяти компьютера, выполняющаяся в ответ на наступление конкретного события в компьютерной системе. Обработчики событий в значительной мере определяют поведение программных объектов. Они модифицируют изначальное поведение объектов, являются средством индивидуализации этого поведения и обычно обеспечивают взаимодействия между объектами.Event handler - a certain way organized set of signals in the computer's memory, executed in response to the onset of a specific event in a computer system. Event handlers largely determine the behavior of software objects. They modify the initial behavior of objects, are a means of individualizing this behavior, and usually provide interactions between objects.

Сценарий - текст, содержащий программу на одном из языков программирования, внедренный в веб-страницу или другой документ. Обработчики событий могут реализовываться путем динамического преобразования (интерпретации) текста сценария в совокупность сигналов, соответствующих обработчику события.A script is text containing a program in one of the programming languages embedded in a web page or other document. Event handlers can be implemented by dynamically converting (interpreting) script text into a set of signals corresponding to an event handler.

Веб-приложение - информационная система клиент-сервер, использующая в качестве клиентской программы веб-браузер. Поведение программных объектов клиентской части веб-приложения задается с помощью сценариев, внедренных в веб-страницы.Web application - a client-server information system that uses a web browser as a client program. The behavior of program objects in the client part of a web application is specified using scripts embedded in web pages.

Архитектура «тонкий клиент» - в соответствии с этой концепцией клиентская программа (так называемый «тонкий клиент») только отображает элементы пользовательского интерфейса, а все события пользовательского интерфейса обрабатываются на сервере. Это создает дополнительную (помимо обычных в системе клиент-сервер запросов и откликов) нагрузку на линии связи.Thin client architecture - in accordance with this concept, the client program (the so-called “thin client”) only displays user interface elements, and all user interface events are processed on the server. This creates an additional (in addition to the usual requests and responses in the client-server system) load on the communication line.

Кэширование - сохранение веб-страниц и других документов на машиночитаемом носителе данных клиентского компьютера с целью их повторного использования и уменьшения за счет этого нагрузки на линии связи. В веб-приложениях механизм кэширования веб-браузера обычно приходиться отключать, так как он может препятствовать обновлению данных (приводить к ошибочному использованию устаревших сохраненных данных).Caching - saving web pages and other documents on a computer-readable storage medium of a client computer with the aim of reusing them and reducing due to this the load on the communication line. In web applications, the web browser caching mechanism usually has to be disabled, as it can prevent data from being updated (leading to erroneous use of outdated stored data).

Хеширование - разновидность шифрования без возможности расшифровки (однонаправленное шифрование).Hashing is a type of encryption without the possibility of decryption (unidirectional encryption).

Аутентификация пользователя - процедура, выполняемая при подключении пользователя к системе, когда пользователь с помощью условного имени и пароля удостоверяет свои пользовательские права.User authentication - a procedure that is performed when a user connects to the system, when the user verifies his user rights using a conditional name and password.

Авторизация пользователя - процедура подтверждения полномочий пользователя в процессе работы информационной системы.User authorization - the procedure for confirming the user's authority in the process of the information system.

Термины, введенные автором изобретенияTerms coined by the inventor

Самодостаточный объект - программный объект, не требующий для своего функционирования каких-либо обработчиков событий. Самодостаточные программные объекты способны адекватно функционировать лишь в составе определенной системы.A self-contained object is a software object that does not require any event handlers for its functioning. Self-contained software objects are able to function adequately only as part of a particular system.

Система самодостаточных объектов - определенным образом организованная система программных объектов, в которой взаимосвязи между ними определяются исключительно конфигурацией этих объектов. Установленные определенным образом взаимосвязи между самодостаточными программными объектами позволяют системе адекватно функционировать без использования обработчиков событий в каком-либо виде, в том числе без использования сценариев. Механизм функционирования системы самодостаточных программных объектов описан ниже.A system of self-contained objects is a certain way organized system of software objects, in which the relationship between them is determined solely by the configuration of these objects. The relationships between self-contained software objects established in a certain way allow the system to function adequately without the use of event handlers in any form, including without the use of scripts. The mechanism of functioning of the system of self-contained software objects is described below.

Уровень техникиState of the art

В настоящее время широкое распространение получили информационные системы клиент-сервер. Человек, пользователь информационной системы клиент-сервер, непосредственно взаимодействует с компьютером-клиентом. В ответ на действия пользователя (например, нажатия клавиш или щелчки манипулятора «мышь») компьютер-клиент, работающий под управлением клиентской программы, посылает по линии связи сигналы запроса к компьютеру-серверу. Клиентская программа предоставляет пользовательский интерфейс на компьютере-клиенте и преобразует действия пользователя в сигналы запроса к серверу.Currently, client-server information systems are widely used. A person, a user of the client-server information system, interacts directly with the client computer. In response to user actions (for example, keystrokes or mouse clicks), the client computer running the client program sends request signals to the server computer via the communication line. The client program provides a user interface on the client computer and converts user actions into request signals to the server.

Компьютер-сервер работает под управлением серверной программы. По получении сигналов запроса сервер в соответствии с запросом выполняет некоторые преобразования данных, хранящихся на машиночитаемых носителях, производит выборку данных с тех же или иных машиночитаемых носителей и пересылает эти данные по линии связи в виде соответствующих сигналов на компьютер-клиент. По получении сигналов отклика компьютер-клиент представляет данные, полученные с сервера, пользователю в удобном для него виде и при необходимости записывает часть или все полученные данные на машиночитаемый носитель данных компьютера-клиента. Обмен сигналами-запросами и сигналами-откликами в системе продолжается так долго, как это необходимо пользователю для решения конкретной задачи. Помимо компьютера роль клиента может выполнять мобильный телефон или другое устройство коммуникации, работающее под управлением клиентской программы.The computer server is running a server program. Upon receipt of the request signals, the server, in accordance with the request, performs some transformations of data stored on computer-readable media, selects data from the same or other computer-readable media, and sends these data over the communication line in the form of corresponding signals to the client computer. Upon receipt of the response signals, the client computer presents the data received from the server to the user in a convenient form and, if necessary, writes part or all of the received data to the computer-readable storage medium of the client computer. The exchange of request signals and response signals in the system continues as long as it is necessary for the user to solve a specific problem. In addition to the computer, the role of the client can be played by a mobile phone or other communication device that is running a client program.

Таким образом, для функционирования информационной системы клиент-сервер необходимы две программы - серверная и клиентская. Обычно серверная программа имеет доступ к информационным ресурсам в виде баз данных и выполняет основную работу в системе клиент-сервер. Клиентская программа выполняет небольшую часть работы, обеспечивая пользовательский интерфейс и выполнение запросов к серверу.Thus, for the functioning of the client-server information system, two programs are needed - server and client. Typically, the server program has access to information resources in the form of databases and performs the main work in the client-server system. The client program does a small part of the work, providing a user interface and querying the server.

Во многих информационных системах в качестве клиентской программы используется программы веб-браузеры, такие как Microsoft Internet Explorer, Mozilla или Opera, то есть эти информационные системы являются веб-приложениями. В отличие от веб-сайтов, предоставляющих пользователю заранее предопределенный набор веб-страниц, веб-приложение работает интерактивно и предоставляет веб-страницы, созданные динамически в соответствии с запросом пользователя. Сильной стороной веб-приложений является универсальность клиентской программы. Веб-браузер устанавливается на компьютере-клиенте один раз, часто при установке операционной системы. Затем он может использоваться в качестве клиентской программы в самых различных веб-приложениях. Это исключает необходимость установки специализированных клиентских программ для каждого отдельного веб-приложения. В веб-приложении логика работы информационной системы и способ представления информации клиенту целиком определяется серверной стороной. Поэтому достаточно частые изменения в этой логике и способах представления информации не требуют каких-либо изменений в клиентской программе.Many information systems use web browsers as a client program, such as Microsoft Internet Explorer, Mozilla or Opera, that is, these information systems are web applications. Unlike websites that provide the user with a predefined set of web pages, the web application is interactive and provides web pages created dynamically according to the user's request. The strength of web applications is the versatility of the client program. The web browser is installed on the client computer once, often during the installation of the operating system. It can then be used as a client program in a wide variety of web applications. This eliminates the need to install specialized client programs for each individual web application. In a web application, the logic of the information system and the way information is presented to the client is entirely determined by the server side. Therefore, quite frequent changes in this logic and methods of presenting information do not require any changes in the client program.

Однако возможности веб-приложений ограничены. Это связано с довольно бедными возможностями пользовательского интерфейса, предоставляемого веб-браузером. В последнее время предпринимаются попытки усовершенствования пользовательского интерфейса веб-приложений на основе спецификаций XForms [XForms 1.0 (W3C Recommendation) http://www.w3.org/TR/xforms/] и WebForms 2.0 [WebForms 2.0 (Working Draft) http://whatwg.org/specs/web-forms/current-work/]. Тем не менее, новые спецификации не позволяют преодолеть разрыв, отделяющий пользовательский интерфейс веб-приложений от значительно более совершенного графического пользовательского интерфейса, предоставляемого системами Windows, MacOS, XWindow, Java и др. Поэтому в случаях, когда распределенная информационная система нуждается в развитом графическом пользовательском интерфейсе, разработчики вынуждены создавать специализированные клиентские программы, «родные» для данной клиентской платформы, то есть базирующиеся на интерфейсах программирования приложений конкретной клиентской платформы. В этом случае для каждой информационной системы требуется своя клиентская программа, каждое изменение в логике работы информационной системы или способах представления информации пользователю требует обновления клиентской программы (ее переустановки на клиентском компьютере). Пересылка и переустановка новых версий клиенткой программы вызывает дополнительную нагрузку на линии связи, создает значительные неудобства для пользователей, приводит к дополнительным финансовым затратам.However, web application capabilities are limited. This is due to the rather poor user interface features provided by the web browser. Recently, attempts have been made to improve the user interface of web applications based on the XForms [XForms 1.0 (W3C Recommendation) http://www.w3.org/TR/xforms/] and WebForms 2.0 [WebForms 2.0 (Working Draft) specifications http: / /whatwg.org/specs/web-forms/current-work/]. Nevertheless, the new specifications do not allow us to bridge the gap separating the user interface of web applications from the much more advanced graphical user interface provided by Windows, MacOS, XWindow, Java, etc. Therefore, in cases where a distributed information system needs a developed graphical user interface interface, developers are forced to create specialized client programs that are "native" to this client platform, that is, based on programmer interfaces applications of a specific client platform. In this case, each information system requires its own client program, each change in the logic of the information system or the methods for presenting information to the user requires updating the client program (reinstalling it on the client computer). Sending and reinstalling new versions by the client of the program causes an additional load on the communication line, creates significant inconvenience for users, leads to additional financial costs.

Задачей данного изобретения является создание технологии (системы и способа) разработки информационных систем клиент-сервер с развитым пользовательским графическим интерфейсом, в которой деловая логика и способы представления информации целиком находятся на стороне сервера, а клиентская часть представлена универсальной программой, не требующей переустановки для каждого отдельного приложения. При этом функционирование графического пользовательского интерфейса, то есть адекватное взаимодействие объектов пользовательского интерфейса с пользователем и между собой, должно происходить исключительно на клиентском компьютере без обращений к серверу. Техническим результатом изобретения должно стать исключение дополнительной нагрузки на линии связи, которую создает пересылка установочных пакетов и обновленных версий клиентских программ.The objective of this invention is to create a technology (system and method) for developing client-server information systems with a developed graphical user interface in which business logic and methods for presenting information are entirely on the server side, and the client part is represented by a universal program that does not require reinstallation for each individual applications. At the same time, the functioning of the graphical user interface, that is, the adequate interaction of the user interface objects with the user and with each other, should occur exclusively on the client computer without accessing the server. The technical result of the invention should be the elimination of additional load on the communication line, which creates the transfer of installation packages and updated versions of client programs.

Известны способы предоставления развитого графического пользовательского интерфейса веб-приложения за счет внедрения в веб-страницы компонентов ActiveX или Java апплетов [X.Дейтел, П.Дейтел, Т.Нието. Как программировать для Интернет & WWW. M. "Бином", 2002, 1184 с.]. Однако эти способы не решают поставленной задачи, так как соответствующие внедряемые компоненты не являются универсальными (для каждого веб-приложения требуются специализированные компоненты) и требуют обновления при изменении логики работы информационной системы или изменения способа представления информации. То же самое относиться и к новой технологии Java Web Start[Java Web Start Technology, http://java.sun.com/products/javawebstart/], которая предназначена для усовершенствования Java апплетов.Known methods for providing a developed graphical user interface of a web application by introducing ActiveX or Java applets into web pages [X. Deitel, P. Daytel, T. Nieto. How to program for the Internet & WWW. M. Binom, 2002, 1184 pp.]. However, these methods do not solve the problem, since the corresponding implemented components are not universal (specialized components are required for each web application) and require updating when changing the logic of the information system or changing the way information is presented. The same applies to the new Java Web Start Technology [Java Web Start Technology, http://java.sun.com/products/javawebstart/], which is designed to improve Java applets.

Известны варианты реализации информационной системы клиент-сервер в архитектуре «тонкого клиента» [US 2002130900; US 2003135825]. Согласно [US 2002130900; US 2003135825] объекты пользовательского интерфейса создаются динамически, по описаниям на языке структурной разметки XML, полученным с сервера. Это позволяет уменьшить нагрузку на линии связи за счет универсального характера клиентской программы. Однако дополнительная нагрузка на линии связи из-за обработки клиентских событий на сервере сводит на нет это преимущество.Known implementation options for the client-server information system in the architecture of the "thin client" [US 2002130900; US2003135825]. According to [US 2002130900; US 2003135825] user interface objects are created dynamically, according to descriptions in the XML structural markup language, received from the server. This allows you to reduce the load on the communication line due to the universal nature of the client program. However, the additional load on the communication line due to the processing of client events on the server negates this advantage.

Наиболее близким аналогом данного изобретения является [WO 2004019160]. В [WO 2004019160] предлагается программные объекты пользовательского интерфейса на клиентском компьютере создавать динамически на основании полученных с сервера описаний на каком-либо языке структурной разметки (XML, XSL, DHTML, XHTML, HTML). Индивидуализация поведения программных объектов пользовательского интерфейса достигается с помощью сценариев на языке JavaScript. Считается, что такие системы могут обладать свойством расширяемости, то есть в систему по мере необходимости могут быть добавлены объекты новых типов. Однако для работы сценария обычно необходимо задание объектной модели - набора заранее предопределенных объектных типов (классов, в терминологии объектно-ориентированного программирования), что противоречит принципу расширяемости. Эти предложения пока не получили распространения, возможно, именно из-за указанного противоречия и сложности реализации универсального механизма поддержки сценариев.The closest analogue of the present invention is [WO 2004019160]. In [WO 2004019160] it is proposed to create user interface program objects on a client computer dynamically based on descriptions received from the server in any structural markup language (XML, XSL, DHTML, XHTML, HTML). Individualization of the behavior of program objects of the user interface is achieved using scripts in the JavaScript language. It is believed that such systems can have the property of extensibility, that is, objects of new types can be added to the system as necessary. However, for a script to work, it is usually necessary to specify an object model - a set of predefined object types (classes, in the terminology of object-oriented programming), which contradicts the principle of extensibility. These proposals have not yet received distribution, possibly because of this contradiction and the complexity of implementing a universal script support mechanism.

Раскрытие изобретенияDisclosure of invention

В изобретении поставленная задача решается путем использования на клиентской стороне универсальной системы динамически создаваемых, самодостаточных программных объектов и организации работы информационной системы клиент-сервер в соответствии с определенным алгоритмом. Так же, как в [US 2002130900; US 2003135825; WO 2004019160] в данном изобретении программные объекты на клиентском компьютере создаются динамически по их описаниям, полученным с сервера, но в данном изобретении объекты пользовательского интерфейса не встраиваются в веб-браузер, а функционируют в составе универсальной клиентской программы. В отличие от [US 2002130900; US 2003135825] в данном изобретении для функционирования пользовательского интерфейса не требуется обращения к серверу. В отличие от [WO 2004019160] в данном изобретении для функционирования системы не требуется поддержки механизма сценариев. Использование в данном изобретении системы самодостаточных программных объектов исключает сложности реализации универсального механизма поддержки сценариев. Для осуществления данного изобретения не имеет принципиального значения используемый формат описаний самодостаточных объектов.In the invention, the problem is solved by using on the client side a universal system of dynamically created, self-contained software objects and organizing the operation of the client-server information system in accordance with a certain algorithm. Same as in [US 2002130900; US2003135825; WO 2004019160] in this invention, program objects on a client computer are created dynamically from their descriptions received from the server, but in this invention, user interface objects are not embedded in a web browser, but function as part of a universal client program. In contrast to [US 2002130900; US 2003135825] in this invention, the server is not required to function as a user interface. Unlike [WO 2004019160], the present invention does not require the support of a scripting mechanism for the operation of the system. The use of a system of self-contained software objects in this invention eliminates the complexity of implementing a universal script support mechanism. For the implementation of the present invention, the format used to describe self-contained objects is not of fundamental importance.

В отличие от обычно используемых программных объектов, чье поведение в значительной степени определяется обработчиками событий, поведение самодостаточного программного объекта целиком определяется заданием его конфигурации, то есть набором значений свойств этого объекта. Реакция самодостаточного программного объекта на события в системе зависит от конфигурации объекта, но при каждой конкретной конфигурации она заранее предопределенна и не подлежит модификации с помощью обработчиков событий.Unlike commonly used program objects, whose behavior is largely determined by event handlers, the behavior of a self-contained program object is entirely determined by its configuration, that is, by a set of property values for this object. The reaction of a self-contained program object to events in the system depends on the configuration of the object, but with each specific configuration it is predetermined and cannot be modified using event handlers.

Каким же образом может быть обеспечено адекватное взаимодействие самых разнообразных объектов, если модификация их поведения не предполагается? Для этого в изобретении объекты на клиентской стороне объединяются в систему самодостаточных программных объектов, функционирование которой учитывает унифицированный характер взаимодействий объектов в рамках системы клиент-сервер.How can an adequate interaction of a wide variety of objects be ensured if a modification of their behavior is not expected? For this, in the invention, objects on the client side are combined into a system of self-contained software objects, the operation of which takes into account the unified nature of the interactions of objects within the client-server system.

Краткое описание чертежейBrief Description of the Drawings

Фиг.1 поясняет функционирование системы самодостаточных объектов в случае запроса на модификацию и получение данных.Figure 1 explains the functioning of the system of self-sufficient objects in the case of a request for modification and receipt of data.

На фиг.2 представлена блок-схема алгоритма при запросе на модификацию и получение данных.Figure 2 presents the block diagram of the algorithm when requesting modification and receipt of data.

Фиг.3 поясняет функционирование системы самодостаточных объектов при запросе нового контейнера. Для простоты на этой схеме не показан механизм кэширования.Figure 3 explains the functioning of the system of self-contained objects when requesting a new container. For simplicity, the caching mechanism is not shown in this diagram.

На фиг.4 представлена блок-схема алгоритма при запросе нового контейнера без механизма кэширования.Figure 4 presents the block diagram of the algorithm when requesting a new container without a caching mechanism.

Фиг.5 поясняет механизм кэширования при запросе нового контейнера.5 illustrates a caching mechanism when requesting a new container.

На фиг.6 представлена блок-схема алгоритма кэширования при запросе нового контейнера.Figure 6 presents a block diagram of the caching algorithm when requesting a new container.

Фиг.7 демонстрирует пример оконной формы, предназначенной для проведения платежей по кредитным картам.7 illustrates an example of a window form for credit card payments.

На фиг.8 представлена блок-схема алгоритма при проведении платежей по кредитным картам.On Fig presents a block diagram of the algorithm when making payments on credit cards.

На фиг.9 представлена блок-схема алгоритма при полном или выборочном шифровании запроса.Figure 9 presents the block diagram of the algorithm for full or selective encryption of the request.

На фиг.10 представлена блок-схема алгоритма при полном или выборочном расшифровывании отклика.Figure 10 presents the block diagram of the algorithm for full or selective decryption of the response.

На фиг.11 представлена блок-схема алгоритма запуска универсальной клиентской программы.Figure 11 presents a block diagram of the algorithm for launching a universal client program.

Осуществление изобретенияThe implementation of the invention

Все самодостаточные объекты в системе подразделяются на несколько категорий. Принадлежность объекта к той или иной категории определяет его роль и поведение в системе. В системе самодостаточных объектов предусмотрены следующие категории объектов:All self-contained objects in the system are divided into several categories. The belonging of an object to one or another category determines its role and behavior in the system. In the system of self-sufficient objects, the following categories of objects are provided:

- Контейнеры - предназначены для объединения самодостаточных объектов в группы. В пользовательском интерфейсе эти объекты представлены в виде оконных форм и различных группирующих панелей. Назначение объекта контейнера - иметь доступ ко всем самодостаточным объектам, которые он объединяет, с целью передачи им данных, полученных с сервера, или получения от них данных для формирования запроса к серверу. Описание контейнера включает описания всех относящихся к нему объектов, в том числе и других контейнеров. Любой самодостаточный объект (за исключением оконных форм) входит в состав какого-либо контейнера. Оконные формы существуют независимо, являясь контейнерами верхнего уровня.- Containers - designed to combine self-contained objects into groups. In the user interface, these objects are presented in the form of window forms and various grouping panels. The purpose of the container object is to have access to all self-contained objects that it combines in order to transmit data received from the server to them or to receive data from them to form a request to the server. The container description includes descriptions of all objects related to it, including other containers. Any self-contained object (with the exception of window forms) is part of a container. Window forms exist independently, being top-level containers.

- Инициаторы - кнопки, пункты меню и другие объекты, способные инициировать запрос к серверу на основании действий пользователя (нажатий клавиш или щелчков мышью).- Initiators - buttons, menu items and other objects that can initiate a request to the server based on user actions (keystrokes or mouse clicks).

- Получатели - надписи, строки ввода, текстовые области, списки, таблицы, диаграммы и другие объекты, способные получать и, возможно, отображать данные, полученные с сервера.- Recipients - labels, input lines, text areas, lists, tables, charts, and other objects that can receive and possibly display data received from the server.

- Запросчики - строки ввода, текстовые области, списки, таблицы и другие объекты, способные предоставлять содержащиеся в них данные для формирования запроса к серверу.- Interrogators - input lines, text areas, lists, tables and other objects capable of providing the data contained in them to form a request to the server.

- Декораторы - картинки и другие элементы графического дизайна, не способные взаимодействовать с пользователем. Декораторы не оказывают влияния на работу информационной системы, их наличие или отсутствие определяет исключительно внешний вид оконных форм.- Decorators - pictures and other graphic design elements that are not able to interact with the user. Decorators do not affect the operation of the information system, their presence or absence determines exclusively the appearance of window forms.

- Посредники - специальные самодостаточные объекты, являющиеся связующим звеном между объектами других категорий.- Intermediaries - special self-sufficient objects, which are a link between objects of other categories.

Некоторые самодостаточные объекты могут относиться сразу к нескольким категориям, например одновременно быть запросчиками и получателями.Some self-contained objects can belong to several categories at once, for example, at the same time be interrogators and recipients.

Принадлежность объекта к некоторой категории требует наличия обязательных для этой категории атрибутов, то есть поддержки соответствующего интерфейса.The belonging of an object to a certain category requires the presence of attributes mandatory for this category, that is, support for the corresponding interface.

Перечислим минимальный достаточный набор методов и свойств интерфейсов соответствующих перечисленных категорий самодостаточных объектов.We list the minimum sufficient set of methods and properties of the interfaces of the corresponding listed categories of self-sufficient objects.

Интерфейс Инициатор:Initiator Interface:

- свойство Посредник - определяет, какой именно посредник будет приведен в действие с помощью данного инициатора.- the Reseller property - determines which intermediary will be activated with the help of this initiator.

Интерфейс Посредник:Intermediary Interface:

- свойство Контейнер - определяет контейнер, который будет участвовать в формировании запроса;- the Container property - defines the container that will participate in the formation of the request;

- свойство ТипЗапроса - определяет характер запроса. Минимальный набор, достаточный для работы системы, включает следующие типы запросов: запрос нового контейнера; запрос данных для существующего контейнера; запрос, модифицирующий данные на сервере с последующим получением данных с сервера; запрос, модифицирующий данные на сервере без последующего получения с сервера каких-либо данных; несколько вариантов запросов для аутентификации пользователей;- RequestType property - determines the nature of the request. The minimum set sufficient for the system to work includes the following types of requests: request for a new container; request data for an existing container; a request modifying the data on the server with the subsequent receipt of data from the server; a request that modifies data on the server without subsequently receiving any data from the server; several query options for user authentication;

- свойство ИмяКонтейнера - определяет, какой именно контейнер требуется (если запрашивается новый) или для какого контейнера запрашиваются данные;- the ContainerName property - determines which container is required (if a new one is requested) or for which container the data is requested;

- свойство АдресСервера - содержит сетевой адрес сервера, реализующего информационную систему;- property ServerAddress - contains the network address of the server that implements the information system;

- метод Пошел - приводит посредника в действие.- the Go method - brings the intermediary into action.

Интерфейс Запросчик:Interrogator Interface:

- метод ПолучитьЗапрос - возвращает часть запроса, соответствующую данному запросчику.- the method GetRequest - returns the part of the request that corresponds to this requestor.

Интерфейс Получатель:Recipient Interface:

- метод УстановитьДанные - передает соответствующие данные конкретному получателю.- SetData method - transfers the corresponding data to a specific recipient.

Интерфейс Контейнер:Container Interface:

- метод СформироватьЗапрос -возвращает полный запрос к серверу. При вызове этого метода контейнер перебирает все относящиеся к нему объекты-запросчики и вызывает для каждого запросчика метод ПолучитьЗапрос, формируя из полученных частей полный запрос.- the method Generate Request - returns a full request to the server. When this method is called, the container iterates over all related requestor objects and calls the Get Request method for each requestor, forming a complete request from the received parts.

- метод РаспределитьДанные - перебирает все относящиеся к контейнеру объекты-получатели, вызывает для каждого метод УстановитьДанные и таким образом передает соответствующие данные каждому конкретному получателю.- the Distribute Data method - iterates over all recipient objects related to the container, calls the Set Data method for each, and thus transfers the corresponding data to each specific recipient.

Интерфейс Декоратор не требуется.Decorator interface is not required.

Все самодостаточные объекты должны иметь свойство Имя, значение которого их идентифицирует.All self-contained objects must have the Name property, the value of which identifies them.

При запросах новых контейнеров может быть использован специальный механизм кэширования, который обеспечивает дополнительное уменьшение нагрузки на линии связи. В перечисленный набор методов и свойств интерфейсов не включены свойства, необходимые для защиты данных путем полного или выборочного шифрования запросов и откликов и хранения кэшированных описаний объектов в зашифрованном виде (см. ниже).When requesting new containers, a special caching mechanism can be used, which provides an additional reduction in the load on the communication line. The listed set of methods and properties of interfaces does not include the properties necessary to protect data by fully or selectively encrypting requests and responses and storing cached object descriptions in encrypted form (see below).

Проследим по фиг.1 взаимодействие клиента и сервера в случае запроса на модификацию и получение данных (блок-схема фиг.2).Let us follow in figure 1 the interaction of the client and server in the case of a request for modification and receipt of data (block diagram of figure 2).

Условные обозначения: 1 - сервер, 2 - клиент, 3 - клиентская программа, 4 - стадия формирования запроса, 5 - стадия обработки отклика.Legend: 1 - server, 2 - client, 3 - client program, 4 - request generation stage, 5 - response processing stage.

Последовательность действий:Sequencing:

- Пользователь 6 приводит в действие Инициатор 7 (кнопку, пункт меню и т.п.) (блок 21).- User 6 activates the Initiator 7 (button, menu item, etc.) (block 21).

- Инициатор 7 вызывает для Посредника 8 метод Пошел (блок 22).- Initiator 7 calls the Go method for Intermediary 8 (block 22).

- Посредник 8 для Контейнера 9 вызывает метод СформироватьЗапрос (блок 23).- The broker 8 for Container 9 calls the Create Request method (block 23).

- Контейнер 9 опрашивает относящиеся к нему самодостаточные объекты-запросчики (цикл, блоки 24-26), вызывая для каждого из них метод ПолучитьЗапрос (блок 24), формирует запрос из частей, соответствующих запросчикам (блок 25), и возвращает сформированный запрос Посреднику 8 (блок 27). (Блок 26 проверяет условие - все ли запросчики обработаны?)- The container 9 interrogates the self-contained requestor objects related to it (cycle, blocks 24-26), calling the Get Request method (block 24) for each of them, forms a request from the parts corresponding to the requestors (block 25), and returns the generated request to Intermediary 8 (block 27). (Block 26 checks the condition - are all interrogators processed?)

- Посредник 8 пересылает запрос Серверной Программе 10 по адресу АдресСервера (блок 28).- The intermediary 8 forwards the request to the Server Program 10 at the address Server Address (block 28).

- Серверная Программа 10 модифицирует данные в Базе Данных 12 (блок 29), запрашивает и получат данные из Базы Данных 12 (блок 30).- Server Program 10 modifies data in Database 12 (block 29), requests and receives data from Database 12 (block 30).

- Серверная Программа 10 приводит данные к нужному формату (блок 31) и пересылает их Посреднику 8 (блок 32).- Server Program 10 converts the data to the desired format (block 31) and sends them to the Intermediary 8 (block 32).

- Посредник 8 передает полученные данные в уже существующий Контейнер 13, вызывая метод РапределитьДанные (контейнер 13 может совпадать с исходным контейнером 9) (блок 33).- The intermediary 8 transfers the received data to the already existing Container 13, calling the Distribute Data method (container 13 may coincide with the original container 9) (block 33).

- Контейнер 13 распределяет полученные данные между относящимися к нему самодостаточными объектами-получателями (цикл, блоки 34-35), вызывая метод УстановитьДанные для каждого получателя (блок 34). (Блок 35 проверяет условие - все ли получатели обработаны?)- The container 13 distributes the received data between related self-sufficient recipient objects (cycle, blocks 34-35), calling the Set Data method for each recipient (block 34). (Block 35 checks the condition - are all recipients processed?)

По фиг.3 проследим взаимодействия клиента и сервера при запросе нового контейнера (без кэширования) (блок-схема фиг.4).In Fig.3 we will trace the interaction of the client and the server when requesting a new container (without caching) (block diagram of Fig.4).

Последовательность действий:Sequencing:

- Пользователь 6 приводит в действие Инициатор 7 (кнопку, пункт меню и т.п.) (блок 41).- User 6 activates the Initiator 7 (button, menu item, etc.) (block 41).

- Инициатор 7 вызывает для Посредника 8 метод Пошел (блок 42).- Initiator 7 calls the Go method for Intermediary 8 (block 42).

- Посредник 8 для Контейнера 9 вызывает метод СформироватьЗапрос (блок 43).- Broker 8 for Container 9 calls the Create Request method (block 43).

- Контейнер 9 опрашивает относящиеся к нему самодостаточные объекты-запросчики (цикл, блоки 44-46), вызывает для каждого из них метод ПолучитьЗапрос (блок 44), формируя запрос из частей, соответствующих запросчикам (блок 45), и возвращает сформированный запрос Посреднику 8 (блок 47). (Блок 46 проверяет условие - все ли запросчики обработаны)- The container 9 polls the related self-contained requestor objects (cycle, blocks 44-46) related to it, calls the Get Request method (block 44) for each of them, forming a request from the parts corresponding to the requestors (block 45), and returns the generated request to Intermediary 8 (block 47). (Block 46 checks the condition that all requestors are processed)

- Посредник 8 пересылает запрос Серверной Программе 10 по адресу АдресСервера (блок 48).- The intermediary 8 forwards the request to the Server Program 10 at the address Server Address (block 48).

- Серверная Программа 10 находит и считывает описание нового контейнера, находящееся на Серверном Машиночитаемом Носителе Данных 11 (блок 49).- Server Program 10 finds and reads the description of the new container located on the Server Machine-readable Storage Media 11 (block 49).

- Серверная программа 10 пересылает описание нового контейнера Посреднику 8 (блок 50).- The server program 10 sends the description of the new container to the Broker 8 (block 50).

- Посредник 8 по полученному описанию создает Новый Контейнер 14 (блок 51).- The intermediary 8 on the received description creates a New Container 14 (block 51).

- Посредник 8 направляет повторный запрос на сервер, теперь для получения данных для Нового Контейнера 14 (блок 52).- The broker 8 sends a second request to the server, now to receive data for the New Container 14 (block 52).

- Серверная Программа 10 запрашивает и получает данные из Базы Данных 12 (блок 53).- Server Program 10 requests and receives data from Database 12 (block 53).

- Серверная Программа 10 приводит данные к нужному формату и пересылает их Посреднику 8 (блок 54).- Server Program 10 brings the data to the desired format and sends it to the Intermediary 8 (block 54).

- Посредник 8 передает полученные данные в уже существующий Новый Контейнер 14, вызывая метод РаспределитьДанные (блок 55).- The broker 8 transfers the received data to the existing New Container 14, calling the Distribute Data method (block 55).

- Контейнер 14 распределяет полученные данные между относящимися к нему самодостаточными объектами-получателями (цикл, блоки 56 -57), вызывая метод УстановитьДанные для каждого получателя (блок 56). (Блок 57 проверяет условие - все ли получатели обработаны?)- The container 14 distributes the received data between the related self-sufficient recipient objects (cycle, blocks 56-57), calling the SetData method for each recipient (block 56). (Block 57 checks the condition - are all recipients processed?)

Проследим по фиг.5 функционирование механизма кэширования при запросе нового контейнера (блок-схема фиг.6).Let us follow in FIG. 5 the operation of the caching mechanism when a new container is requested (block diagram of FIG. 6).

Вначале, вплоть до получения Посредником 8 от Контейнера 9 сформированного запроса, выполняются действия в соответствии с фиг.3 (блоки 41-47 фиг.4). Далее выполняются следующие действия:Initially, until the Intermediary 8 receives from the Container 9 the generated request, the actions are performed in accordance with figure 3 (blocks 41-47 of figure 4). The following actions are performed:

- Посредник 8 ищет на Клиентском Машиночитаемом Носителе Данных 15 описание нового контейнера и версию этого описания (блок 61). Если описание и его версия присутствуют на клиентском компьютере (блок 62), Посредник 8 включает в запрос версию описания (блок 63).- Intermediary 8 searches on the Client Machine-readable Storage Media 15 for a description of the new container and a version of this description (block 61). If the description and its version are present on the client computer (block 62), the intermediary 8 includes in the request a version of the description (block 63).

- Посредник 8 пересылает запрос Серверной Программе 10 по адресу АдресСервера (блок 64).- The intermediary 8 forwards the request to the Server Program 10 at the address Server Address (block 64).

- Серверная Программа 10 находит и считывает описание нового контейнера и версию описания, находящиеся на Серверном Машиночитаемом Носителе Данных 11 (блок 65).- Server Program 10 finds and reads the description of the new container and the version of the description located on the Server Machine-readable Storage Media 11 (block 65).

- Серверная Программа 10 сравнивает версии описаний с клиентского 15 и серверного 11 машиночитаемых носителей данных (блок 66). Если версии описаний совпадают, то Серверная Программа включает в отклик соответствующий признак (блок 67). В этом случае описание и его версия на клиентский компьютер не пересылаются. Если версии не совпадают или версия описания в запросе отсутствует, Серверная Программа включает в отклик описание и его версию (блок 68).- Server Program 10 compares the versions of descriptions from client 15 and server 11 machine-readable storage media (block 66). If the versions of the descriptions match, then the Server Program includes the corresponding attribute in the response (block 67). In this case, the description and its version are not sent to the client computer. If the versions do not match or the description version is not in the request, the Server Program includes the description and its version in the response (block 68).

- Серверная программа 10 пересылает отклик Посреднику 8 (блок 69).- The server program 10 forwards the response to the Intermediary 8 (block 69).

- Посредник 8 анализирует отклик. Если признак совпадения версий отсутствует (блок 70), то Посредник сохраняет полученные описание и его версию на клиентском Машиночитаемом Носителе Данных 15, при необходимости, заменяя имеющиеся описание и его версию (блок 71). В противном случае используется уже имеющееся описание (блок 72).- Intermediary 8 analyzes the response. If there is no sign of version coincidence (block 70), then the Intermediary saves the received description and its version on the client Machine-readable Data Carrier 15, replacing the existing description and its version if necessary (block 71). Otherwise, the existing description is used (block 72).

- Посредник 8 по имеющемуся описанию (возможно, только что полученному) создает Новый Контейнер 14 (блок 73).- The intermediary 8, according to the description (possibly just received), creates a New Container 14 (block 73).

- Далее выполняются действия в соответствие с фиг.3 для получения данных для нового контейнера (блоки 52-57 фиг.4).- Next, the actions are performed in accordance with figure 3 to obtain data for a new container (blocks 52-57 of figure 4).

Если к последующему сеансу работы в логике работы информационной системы или способе представления данных не произойдет изменений, описания контейнеров будут считываться с клиентского машиночитаемого носителя данных. По линиям связи будет передаваться только версии описаний контейнеров и признаки того, что описания не изменились. При необходимости внесения изменений в логику работы информационной системы или в способ представления информации, помимо изменений в работе серверной программы, достаточно внести изменения в хранящиеся на серверном машиночитаемом носителе данных описания соответствующих контейнеров и изменить версии этих описаний. В этом случае хранящиеся на клиентском машиночитаемом носителе данных описания соответствующих контейнеров будут обновлены в последующем сеансе работы. Таким образом, механизм кэширования, с одной стороны, позволяет оперативно обновлять логику работы информационной системы и способы представления информации, а с другой - снижает нагрузку на линии связи за счет того, что описание каждого контейнера обновляется только при необходимости.If there is no change in the logic of the information system or the way of presenting data for the next session, the container descriptions will be read from the client computer-readable data carrier. Only versions of container descriptions and signs that descriptions have not changed will be transmitted over communication lines. If it is necessary to make changes in the logic of the information system or in the way of presenting information, in addition to changes in the operation of the server program, it is enough to make changes to the descriptions of the respective containers stored on the server computer-readable medium and change the versions of these descriptions. In this case, the descriptions of the respective containers stored on the client machine-readable medium will be updated in a subsequent work session. Thus, the caching mechanism, on the one hand, allows you to quickly update the logic of the information system and how to present information, and on the other hand, reduces the load on the communication line due to the fact that the description of each container is updated only if necessary.

Возможность и необходимость применения механизма кэширования для описаний контейнеров связана с тем, что эти описания могут оставаться неизменными на протяжении многих сеансов работы. Для данных, поступающих с сервера в самодостаточные объекты-получатели, кэширование не применяется, так как эти данные могут изменяться даже в течение одного рабочего сеанса.The possibility and necessity of using the caching mechanism for container descriptions is related to the fact that these descriptions can remain unchanged for many work sessions. For data coming from the server to self-contained recipient objects, caching is not used, since this data can change even during one working session.

Как указано выше, для правильной работы веб-приложений обычно приходится отключать существующий в веб-браузерах механизм кэширования. Это связано с тем, что протокол HTTP и язык разметки HTML, используемые в веб-приложениях, не позволяют отличать данные, изменяющиеся часто, от данных, изменяющихся редко. Поэтому механизм кэширования веб-браузера может препятствовать обновлению данных и приводить к ошибочному использованию устаревших сохраненных данных. Отключение механизма кэширования в веб-приложениях приводит к полной перезагрузке веб-страниц при каждом запросе. Это создает дополнительную (значительную и необоснованную) нагрузку на линии связи при работе веб-приложений.As indicated above, for the web applications to work properly, you usually have to disable the caching mechanism that exists in web browsers. This is because the HTTP protocol and the HTML markup language used in web applications do not distinguish between data that changes frequently and data that does not change often. Therefore, the caching mechanism of the web browser can prevent data from being updated and lead to the erroneous use of obsolete stored data. Disabling the caching mechanism in web applications leads to a complete reload of web pages with each request. This creates an additional (significant and unreasonable) load on the communication line when running web applications.

Фиг.1-6 иллюстрируют взаимодействия внутри системы самодостаточных объектов. Мы рассмотрели два типа запросов. Алгоритмы выполнения запросов других типов не имеют принципиальных отличий от рассмотренных алгоритмов. Функционирование системы в полной мере использует режим "запрос-отклик", характерный для любой системы клиент-сервер. Именно функционирование информационной системы в этом режиме позволяет выстроить универсальные последовательности действий. Важно отметить, что рассмотренные последовательности действий могут выполняться без привлечения каких-либо обработчиков событий, в том числе основанных на сценариях.1-6 illustrate interactions within a system of self-contained objects. We examined two types of queries. Algorithms for executing requests of other types do not have fundamental differences from the considered algorithms. The functioning of the system makes full use of the request-response mode, which is characteristic of any client-server system. It is the functioning of the information system in this mode that allows us to build universal sequences of actions. It is important to note that the considered sequence of actions can be performed without involving any event handlers, including those based on scripts.

Для успешного участия в выполнении запроса и получения отклика достаточно правильно сконфигурировать систему самодостаточных объектов, то есть правильно установить значения их свойств. В частности, в случае запроса, показанного на фиг.1, у объектов должен быть правильно установлен ряд свойств:To successfully participate in the execution of the request and receive the response, it is enough to correctly configure the system of self-sufficient objects, that is, correctly set the values of their properties. In particular, in the case of the query shown in FIG. 1, a number of properties must be correctly set for objects:

- у Инициатора 7 свойство Посредник должно указывать на Посредника 8, участвующего в запросе;- at Initiator 7, the Mediator property must indicate the Mediator 8 participating in the request;

- у Посредника 8 свойство Контейнер должно указывать на Контейнер 9, формирующий запрос; свойство ТипЗапроса должно соответствовать типу запроса; свойство ИмяКонтейнера должно соответствовать имени Контейнера 14, для которого запрашиваются данные; свойство АдресСервера должно содержать соответствующие данные;- in the Intermediary 8, the Container property should point to the Container 9 that forms the request; the RequestType property must match the type of request; the ContainerName property must match the name of Container 14 for which data is requested; the ServerAddress property must contain the relevant data;

- Контейнер 9 должен включать все объекты, необходимые для формирования запроса, с правильно установленными конфигурациями.- The container 9 should include all the objects necessary for the formation of the request, with correctly installed configurations.

Все необходимые для конфигурирования данные могут содержаться в описании Контейнера 9 (в этом случае и Инициатор 7, и Посредник 8 содержатся в Контейнере 9). Конфигурирование объектов выполняется создавшим их посредником, сразу после их создания на основании описания содержащего их контейнера.All the data necessary for configuration can be contained in the description of Container 9 (in this case, both Initiator 7 and Intermediary 8 are contained in Container 9). The configuration of objects is performed by the intermediary who created them, immediately after their creation based on the description of the container containing them.

Для участия в системе самодостаточному объекту необходимо и достаточно поддерживать интерфейс, соответствующий его (объекта) категории. В силу этого обстоятельства предлагаемая система может легко пополняться новыми самодостаточными объектами, то есть является расширяемой. Самодостаточные объекты, дополняющие систему, могут быть размещены в файлах динамически загружаемых библиотек на машиночитаемом носителе данных клиентского компьютера. После записи динамически загружаемой библиотеки на машиночитаемый носитель данных клиентского компьютера содержащиеся в ней самодостаточные объекты могут использоваться в самых различных информационных системах. Таким образом, расширение системы самодостаточных объектов требует лишь однократной передачи по линиям связи небольших по объему динамически загружаемых библиотек.To participate in the system, a self-sufficient object is necessary and sufficient to maintain an interface corresponding to its category. Due to this circumstance, the proposed system can easily be replenished with new self-sufficient objects, that is, it is expandable. Self-contained objects supplementing the system can be placed in files of dynamically loaded libraries on a computer-readable storage medium of a client computer. After writing a dynamically loaded library to a computer-readable storage medium of a client computer, the self-contained objects contained in it can be used in a wide variety of information systems. Thus, the expansion of the system of self-sufficient objects requires only a single transfer via communication lines of small dynamically loaded libraries in volume.

Рассмотрим теперь взаимодействие системы самодостаточных объектов с пользователем. Характер этого взаимодействия так же, как их взаимодействия внутри системы, полностью определяется конфигурацией самодостаточных объектов. Самодостаточные объекты воспринимаются пользователем информационной системы как элементы графического пользовательского интерфейса. По своей сути они должны предоставлять развитый графический пользовательский интерфейс, характерный для клиентских платформ Windows, MacOS, XWindow или Java. Поэтому они создаются на базе интерфейсов программирования приложений конкретной клиентской платформы. Адекватное поведение объектов пользовательского интерфейса предполагает:Let us now consider the interaction of the system of self-sufficient objects with the user. The nature of this interaction, as well as their interaction within the system, is completely determined by the configuration of self-contained objects. Self-contained objects are perceived by the user of the information system as elements of a graphical user interface. At their core, they must provide an advanced graphical user interface that is specific to the Windows, MacOS, XWindow, or Java client platforms. Therefore, they are created on the basis of application programming interfaces of a specific client platform. Adequate behavior of user interface objects involves:

- набор ограничений ввода информации, соответствующий текущему варианту использования объектов;- a set of restrictions on the input of information corresponding to the current use of objects;

- предупреждение пользователя о его неадекватных действиях;- warning the user about his inappropriate actions;

- взаимную согласованность объектов.- mutual consistency of objects.

Покажем, каким образом все эти функции можно реализовать без использования обработчиков событий, исключительно путем настройки конфигурации самодостаточных объектов. Рассмотрим пример. На фиг.7 схематически показана оконная форма 101, предназначенная для проведения платежей по кредитным картам (для упрощения показаны не все необходимые поля). Выпадающий список 102 представляет собой специализированный объект, содержащий список поддерживаемых кредитных карт, например: VISA, American Express, Золотая Корона и т.д. Поля ввода 103-107 предназначены для ввода соответствующих цифровых и буквенных данных: 103 - номера кредитной карты, 104 и 105 - месяца и года годности кредитной карты, 106 - суммы платежа и 107 - имени держателя карты. Объекты 102-107 являются запросчиками. Кнопки 108 и 109 инициируют операции передачи запроса на сервер и закрытия оконной формы соответственно. На фигуре не показан посредник, который присутствует в контейнере 101, но для пользователя является невидимым. У посредника свойство Контейнер должно указывать на оконную форму 101. У кнопки 108 свойство Посредник должно указывать на существующего посредника.We show how all these functions can be implemented without the use of event handlers, solely by configuring the configuration of self-contained objects. Consider an example. Fig. 7 schematically shows a window form 101 for credit card payments (not all required fields are shown for simplicity). Drop-down list 102 is a specialized object containing a list of supported credit cards, for example: VISA, American Express, Golden Crown, etc. Input fields 103-107 are intended for entering the corresponding digital and alphabetic data: 103 - credit card numbers, 104 and 105 - months and expiration dates of the credit card, 106 - payment amounts and 107 - name of the card holder. Objects 102-107 are interrogators. Buttons 108 and 109 initiate the operation of sending a request to the server and closing the window form, respectively. The figure does not show an intermediary that is present in the container 101, but is invisible to the user. For the reseller, the Container property should point to the window form 101. At the button 108, the Reseller property should point to the existing intermediary.

Покажем, как могут быть реализованы ограничения ввода информации. Для полей ввода ограничения можно связать со свойствами ТипСодержимого и МаксимальнаяДлина. Свойство МаксимальнаяДлина определяет максимально возможное количество введенных символов. Свойство ТипСодержимого определяет, какие символы могут вводиться в строку. Так для строк ввода 103-105 свойство ТипСодержимого должно быть установлено в значение Целый. Этот тип содержимого допускает ввод только цифровых символов. Для строки ввода 106 свойство ТипСодержимого должно быть установлено в значение Денежный. Этот тип содержимого допускает ввод только цифровых символов и символа десятичного разделителя (точки или запятой, в зависимости от региональных настроек). Аналогично настраиваются и другие поля ввода. В процессе ввода символов, объект - строка ввода проверяет соответствие вводимых символов значению свойства ТипСодержимого и игнорирует недопустимые символы. Важно, что контроль ввода выполняется самим объектом, а не внешним по отношению к объекту обработчиком события.We show how restrictions on inputting information can be implemented. For input fields, restrictions can be associated with the ContentType and MaximumLength properties. The MaximumLength property determines the maximum possible number of characters entered. The ContentType property determines which characters can be entered in a string. So for input lines 103-105, the ContentType property should be set to Integer. This type of content only accepts numeric characters. For input line 106, the ContentType property must be set to Cash. This type of content allows only numeric and decimal separator characters (periods or semicolons, depending on regional settings). Other input fields are configured similarly. In the process of entering characters, the input line object checks that the entered characters match the value of the ContentType property and ignores invalid characters. It is important that input control is performed by the object itself, and not by an event handler external to the object.

Покажем, как могут быть реализованы предупреждения пользователя о его неадекватных действиях (блок-схема фиг.8). В рассматриваемом случае типичными неадекватными действиями пользователя являются незаполненные поля ввода или невыбранный тип кредитной карты. При нажатии пользователем кнопки 108 действия выполняются в следующем порядке:We show how user warnings about his inadequate actions can be implemented (block diagram of Fig. 8). In this case, typical inadequate user actions are blank input fields or an unselected type of credit card. When the user presses the button 108, the actions are performed in the following order:

- Кнопка 108 приводит в действие посредник (вызывает для посредника метод Пошел) (блок 81).- Button 108 activates the intermediary (calls the Forward method for the intermediary) (block 81).

- Посредник вызывает для контейнера 101 (на которого указывает свойство Контейнер) метод СформироватьЗапрос (блок 82).- The intermediary calls for the container 101 (indicated by the Container property) the Create Request method (block 82).

- Контейнер 101 перебирает относящиеся к нему самодостаточные объекты-запросчики 102-107 (цикл, блоки 83-86), вызывая для каждого из них метод ПолучитьЗапрос (блок 83). (Блок 86 проверяет все ли запросчики обработаны.)- The container 101 iterates over related self-contained requestor objects 102-107 (cycle, blocks 83-86), calling the Get Request method (block 83) for each of them. (Block 86 checks to see if all requestors are processed.)

- При вызове метода ПолучитьЗапрос для выпадающего списка 102 происходит проверка адекватности действий пользователя (блок 84). В данном случае выбрал ли пользователь тип кредитной карты. Если пользователь не выбрал тип кредитной карты, что является неадекватным действием, работа программы прерывается, выпадающий список открывает для пользователя окно сообщения (блок 85) с текстом «Не выбран тип кредитной карты».- When you call the Get Request method for the drop-down list 102, the user actions are checked for adequacy (block 84). In this case, did the user choose the type of credit card. If the user has not selected the type of credit card, which is an inadequate action, the program is interrupted, the drop-down list opens a message box for the user (block 85) with the text “No type of credit card selected”.

- При вызове метода ПолучитьЗапрос для каждой из строк ввода 103-107, каждая строка самостоятельно проверяет адекватность действий пользователя (блок 84). Для строк ввода это означает проверку, заполнено ли это поле. Если пользователь не заполнил строку ввода 103, что является неадекватным действием, работа программы прерывается, строка ввода 103 открывает для пользователя окно сообщения (блок 85) с текстом «Не заполнено поле «Номер кредитной карты». (Текст «Номер кредитной карты» должен содержаться в свойстве ИмяПоля строки ввода 103.)- When calling the Get Request method for each of the input lines 103-107, each line independently checks the adequacy of user actions (block 84). For input lines, this means checking if this field is filled. If the user does not fill in the input line 103, which is an inadequate action, the program is interrupted, the input line 103 opens a message box for the user (block 85) with the text “The field“ Credit card number ”is not filled. (The text "Credit card number" should be contained in the Name field property of input line 103.)

- Если все поля заполнены, то выполняются действия для получения нового контейнера - оконной формы с результатами проведения платежа (блоки 47-57).- If all the fields are completed, then the steps are taken to obtain a new container - a window form with the results of the payment (blocks 47-57).

При каждой остановке работы программы пользователь должен выполнить необходимые корректировки и снова нажать кнопку 108. Важно, что контроль неадекватных действий пользователя и сообщение об этом выполняется самим объектом, а не внешним по отношению к объекту обработчиком события.Each time the program stops, the user must make the necessary adjustments and press the button 108 again. It is important that the control of inadequate user actions and a message about this are performed by the object itself, and not by an event handler external to the object.

Покажем, каким образом можно реализовать взаимно согласованное поведение самодостаточных объектов. В рассматриваемом примере (фиг.7) количество цифр в номере кредитной карты (строка ввода 103) зависит от типа кредитной карты, выбранного в выпадающем списке 102. Так, например, номер кредитной карты VISA может состоять из 13 или 16 цифр, номер кредитной карты American Express из 15 цифр, номер карты Dinners Club из 14 цифр и т.д. Кроме того, корректные номера кредитных карт подчиняются правилам, специфичным для каждого конкретного типа карты. Поэтому именно объекты 102 и 103 должны действовать согласованно. Для решения этой задачи строка ввода номера кредитной карты должна обладать свойством СписокКредитныхКарт, указывающим на список 102. В этом случае, в процессе ввода, допустимое количество введенных цифр может быть согласованно с типом кредитной карты, выбранным в списке 102, а при вызове метода ПолучитьЗапрос для строки ввода 103 можно по соответствующему алгоритму осуществить проверку соответствия введенного номера типу кредитной карты. В случае несоответствия введенного номера типу кредитной карты пользователь может быть предупрежден соответствующим сообщением. Важно, что эта работа выполняется самим самодостаточным объектом строка ввода, а не обработчиком события.We show how mutually consistent behavior of self-contained objects can be realized. In this example (Fig. 7), the number of digits in the credit card number (input line 103) depends on the type of credit card selected in the drop-down list 102. For example, a VISA credit card number can consist of 13 or 16 digits, a credit card number American Express 15 digits, Dinners Club card number 14 digits, etc. In addition, the correct credit card numbers are subject to rules specific to each particular type of card. Therefore, it is precisely the objects 102 and 103 that must act in concert. To solve this problem, the credit card number entry line must have the List of Credit Cards property pointing to list 102. In this case, during the input process, the acceptable number of entered digits can be consistent with the type of credit card selected in list 102, and when you call the Get Request method for input lines 103, you can check the correspondence of the entered number to the type of credit card using the appropriate algorithm. If the entered number does not match the type of credit card, the user can be warned with a corresponding message. It is important that this work is performed by the input line object itself, and not by the event handler.

Таким образом, мы показали, как без использования обработчиков событий может быть обеспечено адекватное поведение объектов пользовательского интерфейса.Thus, we have shown how, without the use of event handlers, adequate behavior of user interface objects can be ensured.

Рассмотренные выше последовательности действий составляют, по сути, основу для оригинального протокола работы информационной системы клиент-сервер, который может быть сформулирован после их определенной формализации. Данный протокол может выполняться поверх известных сетевых протоколов, таких как TCP/IP, HTTP, HTTPS, SOAP [X.Дейтел, П.Дейтел, Т.Нието. Как программировать для Интернет & WWW. M. "Бином", 2002, 1184 с.] и других, например протоколов передачи данных в сетях мобильной связи. Выбор базового сетевого протокола не имеет принципиального значения и сказывается только на особенностях реализации. Выбор протокола более высокого уровня (например, HTTP по сравнению с TCP/IP или SOAP по сравнению с HTTP) позволяет упростить процесс реализации. Напротив выбор протокола низкого уровня позволит сделать передаваемые пакеты данных более компактньми и уменьшить объем данных, пересылаемых по линиям связи.The sequences of actions considered above form, in essence, the basis for the original protocol of the client-server information system, which can be formulated after they are formalized. This protocol can be run on top of well-known network protocols such as TCP / IP, HTTP, HTTPS, SOAP [X. Deitel, P. Daytel, T. Nieto. How to program for the Internet & WWW. M. "Binom", 2002, 1184 pp.] And others, for example, data transfer protocols in mobile networks. The choice of a basic network protocol is not critical and affects only the implementation features. Choosing a higher level protocol (for example, HTTP compared to TCP / IP or SOAP compared to HTTP) simplifies the implementation process. On the contrary, the choice of a low-level protocol will make the transmitted data packets more compact and reduce the amount of data sent over communication lines.

Остановимся кратко на вопросах, связанных с аутентификацией и авторизацией пользователей. Мы будем различать три уровня аутентификации:Let us dwell briefly on issues related to authentication and user authorization. We will distinguish three levels of authentication:

- Простейший случай, когда информационная система предоставляет открытый доступ всем желающим и аутентификация не требуется, относится к нулевому уровню. В этом случае запрос на вход в систему не содержит каких-либо данных о пользователе.- The simplest case, when the information system provides open access to everyone and authentication is not required, refers to the zero level. In this case, the login request does not contain any user information.

- Если связь клиента и сервера осуществляется по защищенному соединению (например, в качестве базового выбран протокол HTTPS), то имя пользователя и пароль могут быть переданы по линиям связи на сервер непосредственно в запросе на аутентификацию. В этом случае для аутентификации достаточно одного запроса (первый уровень).- If the client and server communicate over a secure connection (for example, HTTPS is selected as the base protocol), then the username and password can be transferred via the communication lines to the server directly in the authentication request. In this case, a single request is sufficient for authentication (first level).

- Если используется незащищенное соединение, то передавать пароль по линии связи в открытом или даже хешированном виде нельзя. В этом случае аутентификация потребует выполнения двух запросов (второй уровень) и может быть проведена в два приема по типу дайджест-аутентификации или по протоколу Kerberos [Джоел Скембрей, Майк Шема Секреты хакеров. Безопасность Web-приложений - готовые решения, М. «Вильяме», 2003, 383 с.].- If an insecure connection is used, it is impossible to transmit the password over the communication line in the open or even hashed form. In this case, authentication will require two requests (second level) and can be carried out in two stages, such as digest authentication or Kerberos protocol [Joel Skambrej, Mike Shema Secrets of hackers. Web application security - ready-made solutions, M. "William", 2003, 383 pp.].

В любом случае успешная аутентификация означает выделение пользователю уникального идентификатора сеанса. На нулевом уровне аутентификации идентификатор сеанса выделяется пользователю без проверки имени и пароля. В процессе дальнейшей работы информационной системы идентификатор сеанса может включаться во все запросы на получение данных и контейнеров, таким образом при каждом запросе выполняется авторизация пользователя.In any case, successful authentication means allocating a unique session identifier to the user. At the zero authentication level, the session identifier is allocated to the user without checking the name and password. In the process of further work of the information system, the session identifier can be included in all requests for data and containers, thus, at each request, user authorization is performed.

Если в качестве базового сетевого протокола используется протокол без шифрования данных, например TCP/IP или HTTP, то защита данных, в виде полного или выборочного шифрования запросов и откликов, может быть встроена непосредственно в рассматриваемую систему. Для этого необходимо, чтобы интерфейсы Запросчик, Получатель и Контейнер включали следующие свойства:If a protocol without data encryption, such as TCP / IP or HTTP, is used as the basic network protocol, then data protection, in the form of full or selective encryption of requests and responses, can be built directly into the system in question. For this, it is necessary that the Interrogator, Recipient, and Container interfaces include the following properties:

Интерфейс Запросчик:Interrogator Interface:

- свойство-флаг ШифроватьЗапрос устанавливается, если часть запроса, соответствующую данному запросчику, следует зашифровать.- the encrypt property Request is set if the part of the request corresponding to this requestor should be encrypted.

Интерфейс Получатель:Recipient Interface:

- свойство-флаг РасшифроватьОтклик устанавливается, если часть отклика, соответствующую данному получателю, следует расшифровать.- the DecryptResponse flag property is set if the part of the response corresponding to this recipient should be decrypted.

Интерфейс Контейнер:Container Interface:

- свойство-флаг ШифроватьПолныйЗапрос устанавливается, если весь запрос следует зашифровать- the flag property Encrypt Full Request is set if the entire request should be encrypted

- свойство-флаг РасшифроватьВесьОтклик устанавливается, если весь отклик следует расшифровать.- the decrypt All Response flag property is set if the entire response should be decrypted.

Алгоритмы шифрования могут быть реализованы в виде динамически загружаемых библиотек. Для полного и/или частичного шифрования запросов и расшифровывания откликов могут использоваться различные алгоритмы. Таким образом, одновременно может быть использовано до 4 различных алгоритмов шифрования.Encryption algorithms can be implemented as dynamically loaded libraries. Various algorithms can be used to fully and / or partially encrypt requests and decrypt responses. Thus, up to 4 different encryption algorithms can be used simultaneously.

Покажем, как можно выполнить полное и/или частичное шифрование при формировании запроса (блок-схема фиг.9). При вызове метода СформироватьЗапрос (блок 121) контейнер опрашивает относящиеся к нему самодостаточные объекты-запросчики (цикл 122-126), вызывая для каждого из них метод ПолучитьЗапрос (блок 122). Если у запросчика установлено свойство ШифроватьЗапрос (блок 123), контейнер шифрует эту часть запроса (блок 124) с помощью динамически загружаемой библиотеки и включает ее в полный запрос (блок 125) в зашифрованном виде. Блок 126 проверяет, все ли запросчики обработаны. Если у контейнера установлено свойство ШифроватьПолныйЗапрос (блок 127), то сформированный запрос дополнительно шифруется (блок 128) перед отправкой на сервер (блок 129).We will show how it is possible to perform full and / or partial encryption when generating a request (block diagram of Fig. 9). When calling the Generate Request method (block 121), the container polls the self-contained requestor objects related to it (cycle 122-126), calling the Get Request method (block 122) for each of them. If the requestor has the EncryptQuery property set (block 123), the container encrypts this part of the request (block 124) using a dynamically loaded library and includes it in the full request (block 125) in encrypted form. Block 126 checks whether all interrogators have been processed. If the Encrypt Full Request property is set on the container (block 127), then the generated request is additionally encrypted (block 128) before being sent to the server (block 129).

Покажем, как можно выполнить полное и/или частичное расшифровывание при получении отклика с сервера (блок-схема фиг.10). При вызове метода РапределитьДанные (блок 141), если у контейнера установлено свойство РасшифроватьВесьОтклик (блок 142), то контейнер расшифровывает отклик, полученный с сервера (блок 143) с помощью динамически загружаемой библиотеки. Контейнер распределяет полученные данные между, относящимися к нему самодостаточными объектами-получателями (цикл, блоки 144-148), вызывая метод УстановитьДанные для каждого получателя (блок 144). Если у конкретного получателя установлено свойство РасшифроватьОтклик (блок 145), контейнер расшифровывает данные (блок 146) с помощью динамически загружаемой библиотеки, предназначенные для этого получателя, перед вызовом метода УстановитьДанные (блок 147). Блок 148 проверяет, все ли получатели обработаны.We show how you can perform full and / or partial decryption when receiving a response from the server (block diagram of figure 10). When calling the Distribute Data method (block 141), if the container has the Decrypt All Response property set (block 142), the container decrypts the response received from the server (block 143) using a dynamically loaded library. The container distributes the received data between the self-contained recipient objects related to it (cycle, blocks 144-148), calling the Set Data method for each recipient (block 144). If the Decrypt Response property is set for a specific recipient (block 145), the container decrypts the data (block 146) using the dynamically loaded library intended for this recipient before calling the SetData method (block 147). Block 148 checks to see if all recipients are processed.

Ключи шифрования могут быть получены с сервера при аутентификации пользователя по протоколу Kerberos [Джоел Скембрей, Майк Шема, Секреты хакеров. Безопасность Web-приложений - готовые решения, М. «Вильяме», 2003, 383 с.]. Эти ключи действуют в течение одного рабочего сеанса.Encryption keys can be obtained from the server during user authentication using the Kerberos protocol [Joel Skambray, Mike Shema, Secrets of hackers. Web application security - ready-made solutions, M. "William", 2003, 383 pp.]. These keys are valid for one working session.

Аналогично может быть организовано шифрование данных, содержащих описания контейнеров. В этом случае описания контейнеров должны передаваться по линии связи и храниться на клиентском машиночитаемом носителе данных в зашифрованном виде. Ответственность за расшифровку описаний может быть возложена на посредника. Необходимость расшифровки может быть указана с помощью установки свойства посредника РасшифровыватьОписаниеКонтейнера. Сеансовый ключ не может использоваться для расшифровки описания контейнера, так как это описание может считываться с клиентского машиночитаемого носителя данных неоднократно, в течение нескольких рабочих сеансов. В качестве ключа для расшифровки описания контейнера может быть использован пароль пользователя непосредственно или в хешированном виде.Similarly, encryption of data containing container descriptions can be arranged. In this case, the container descriptions should be transmitted over the communication line and stored in an encrypted form on a client computer-readable storage medium. Responsibility for decrypting descriptions may be assigned to the intermediary. The need for decryption can be indicated by setting the broker property DecryptContainerDescription. The session key cannot be used to decrypt the description of the container, since this description can be read from the client machine-readable storage medium repeatedly, during several working sessions. The user password can be used directly or in the hashed form as a key for decrypting the container description.

Рассмотрим теперь работу клиентского компьютера под управлением универсальной клиентской программы, основанной на системе самодостаточных программных объектов.Let us now consider the operation of a client computer running a universal client program based on a system of self-contained software objects.

Универсальная клиентская программа должна включать богатый набор самодостаточных объектов, который может удовлетворить потребности большинства информационных систем делового характера. Включение объекта в систему означает, что объекты такого типа могут создаваться и конфигурироваться на основе их описаний. Те немногие информационные системы, для которых стандартного набора самодостаточных объектов будет недостаточно, могут быть пополнены дополнительными объектами, содержащимися в динамически загружаемых библиотеках.A universal client program should include a rich set of self-contained objects that can satisfy the needs of most business information systems. The inclusion of an object in the system means that objects of this type can be created and configured based on their descriptions. Those few information systems for which a standard set of self-sufficient objects will not be enough can be replenished with additional objects contained in dynamically loaded libraries.

Для начала работы конкретного приложения клиентской программе достаточно иметь следующие данные:To start a specific application, the client program needs to have the following data:

- сетевой адрес сервера приложения;- network address of the application server;

- способ аутентификации пользователей, принятый в данном приложении;- The method of user authentication adopted in this application;

- имя первого контейнера, то есть контейнера, запрашиваемого непосредственно после аутентификации пользователя;- name of the first container, that is, the container requested immediately after user authentication;

- список динамически загружаемых библиотек с самодостаточными объектами, дополняющими систему (при необходимости);- a list of dynamically loaded libraries with self-contained objects that complement the system (if necessary);

- список динамически загружаемых библиотек с алгоритмами для полного или частичного шифрования запросов и откликов (при необходимости).- A list of dynamically loaded libraries with algorithms for full or partial encryption of requests and responses (if necessary).

Эти данные могут храниться в файле инициализации приложения на клиентском машиночитаемом носителе. Рассмотрим последовательность действий в начале сеанса работы клиентского компьютера под управлением универсальной клиентской программы (блок-схема фиг.11):This data may be stored in an application initialization file on a client computer-readable medium. Consider the sequence of actions at the beginning of a client computer session running a universal client program (flowchart of Fig. 11):

- из файла инициализации на машиночитаемом носителе данных клиентского компьютера считываются данные об адресе сервера приложения, способе аутентификации, имени первого запрашиваемого контейнера и именах файлов динамически загружаемых библиотек (блок 161);- data on the application server address, authentication method, name of the first requested container and file names of dynamically loaded libraries are read from the initialization file on a computer-readable storage medium of the client computer (block 161);

- если список имен файлов динамически загружаемых библиотек не пуст (блок 162), то загружаются (блок 163) динамические библиотеки с дополнительными самодостаточными объектами и библиотеки с реализацией алгоритмов шифрования;- if the list of file names of dynamically loaded libraries is not empty (block 162), then dynamic libraries with additional self-contained objects and libraries with encryption algorithms are loaded (block 163);

- для выполнения запросов аутентификации создается и конфигурируется объект-посредник (блок 164);- to perform authentication requests, an intermediary object is created and configured (block 164);

- если способ аутентификации пользователя требует введения имени пользователя и пароля (первый и второй уровни) (блок 165), то создается, а затем отображается на экране монитора специальная оконная форма, содержащая строки ввода имени и пароля и кнопку ввода в систему (блок 166);- if the user authentication method requires the introduction of a username and password (first and second levels) (block 165), then a special window form is created and then displayed on the monitor screen containing the name and password input lines and the system enter button (block 166) ;

- если используется аутентификация нулевого уровня, то запрос на вход в систему выполняется без каких-либо действий пользователя (блок 167);- if zero level authentication is used, then the login request is executed without any user actions (block 167);

- если используется аутентификация первого или второго уровня, то аутентификация производится после ввода пользователем имени и пароля и нажатия кнопки входа в систему с помощью, соответственно, одного или двух запросов (блок 168);- if authentication of the first or second level is used, then authentication is performed after the user enters the username and password and presses the login button using, respectively, one or two requests (block 168);

- в случае успешной аутентификации (блок 169) существующий посредник запрашивает по известному имени первый создаваемый контейнер (первую оконную форму) (блок 170);- in case of successful authentication (block 169), the existing intermediary requests, by a known name, the first created container (first window form) (block 170);

- посредник создает и конфигурирует по полученному описанию первую оконную форму (блок 171);- the intermediary creates and configures the first window form according to the received description (block 171);

- дальнейшая работа информационной системы идет по пути, который определяется содержимым первой оконной формы. На этой форме должны находиться посредники, запрашивающие другие оконные формы. Таким образом, логика дальнейшей работы информационной системы полностью определяется сервером (в частности, через получаемое с сервера описание первой оконной формы) (блок 172);- Further work of the information system follows a path that is determined by the contents of the first window form. This form must contain intermediaries requesting other window forms. Thus, the logic of the further operation of the information system is completely determined by the server (in particular, through the description of the first window form received from the server) (block 172);

- работа пользователя с информационной системой завершается после закрытия им первой оконной формы (блок 173).- the user’s work with the information system ends after he closes the first window form (block 173).

Таким образом, мы показали, как клиентский компьютер под управлением универсальной клиентской программы, основанной на системе самодостаточных программных объектов, может выполнять работу, логика которой полностью определяется сервером. В силу универсальности клиентской программы она может управлять работой клиентского компьютера в самых различных информационных системах, предоставляя развитый графический пользовательский интерфейс. Не требуется переустановка клиентской программы для работы в других информационных системах, а также и при изменении логики работы и способов представления данных. Это приводит к достижению необходимого технического результата - снижению нагрузки на линии связи из-за исключения дополнительной нагрузки, которую создает пересылка установочных пакетов и обновленных версий клиентских программ. Исключается также нагрузка на линии связи, специфичная для систем клиент-сервер в архитектуре «тонкого клиента».Thus, we showed how a client computer running a universal client program based on a system of self-contained software objects can perform work whose logic is completely determined by the server. Due to the universality of the client program, it can control the operation of the client computer in a wide variety of information systems, providing an advanced graphical user interface. You do not need to reinstall the client program to work in other information systems, as well as when changing the logic of work and methods of presenting data. This leads to the achievement of the necessary technical result - to reduce the load on the communication line due to the exclusion of the additional load created by sending installation packages and updated versions of client programs. The load on communication lines specific for client-server systems in the thin client architecture is also excluded.

Хотя настоящее изобретение описано посредством примеров его выполнения, объем данного изобретения не ограничивается этими примерами, но определяется лишь формулой изобретения с учетом возможных эквивалентов.Although the present invention is described by way of examples of its implementation, the scope of the present invention is not limited to these examples, but is determined only by the claims taking into account possible equivalents.

Claims (12)

1. Информационная система, состоящая из сервера и одного или нескольких клиентов, соединенных с сервером линией связи, в которой работу по модификации и выборке данных выполняет сервер, а клиенты выполняют запросы к серверу на модификацию и выборку данных и предоставляют развитый графический пользовательский интерфейс, отличающаяся использованием на каждом клиенте расширяемой, пригодной для разнообразных информационных систем клиент - сервер системы динамически создаваемых программных объектов, в которой программные объекты разделены на фиксированное число категорий, а им в соответствие поставлены заранее предопределенные программные интерфейсы, причем формирование запроса к серверу и обработка отклика от сервера представляют собой заранее предопределенные цепочки вызовов методов программных объектов.1. An information system consisting of a server and one or more clients connected to the server by a communication line in which the server performs the modification and selection of data, and the clients perform requests to the server for modification and selection of data and provide a developed graphical user interface that differs using on each client an expandable, suitable for a variety of information systems, client - server system of dynamically created program objects, in which program objects are divided They are assigned to a fixed number of categories, and they are assigned predefined program interfaces, and the formation of a request to the server and the processing of the response from the server are predefined chains of calls to methods of program objects. 2. Информационная система по п.1, отличающаяся использованием в качестве базового, сетевого протокола TCP/IP.2. The information system according to claim 1, characterized in using TCP / IP as the base network protocol. 3. Информационная система по п.1, отличающаяся использованием в качестве базовых, сетевых протоколов HTTP и HTTPS.3. The information system according to claim 1, characterized in that it uses HTTP and HTTPS as the basic network protocols. 4. Информационная система по п.1, отличающаяся использованием в качестве базового, протокола SOAP поверх сетевых протоколов HTTP и HTTPS.4. The information system according to claim 1, characterized in that it uses the SOAP protocol over the HTTP and HTTPS network protocols as the base one. 5. Информационная система по п.1, отличающаяся поддержкой на серверной стороне сеансового протокола с авторизацией по идентификатору сеанса.5. The information system according to claim 1, characterized in support on the server side of the session protocol with authorization by session identifier. 6. Информационная система по п.1, отличающаяся применением аутентификации пользователей по типу дайджест-аутентификации.6. The information system according to claim 1, characterized in the application of user authentication according to the type of digest authentication. 7. Информационная система по п.1, отличающаяся применением аутентификации пользователей по протоколу Kerberos.7. The information system according to claim 1, characterized in the application of user authentication via the Kerberos protocol. 8. Информационная система по п.1, отличающаяся применением механизма кэширования описаний самодостаточных объектов.8. The information system according to claim 1, characterized in using a caching mechanism for descriptions of self-contained objects. 9. Информационная система по п.1, отличающаяся применением полного и/или выборочного шифрования запросов и откликов с использованием сеансовых ключей.9. The information system according to claim 1, characterized in using full and / or selective encryption of requests and responses using session keys. 10. Информационная система по п.1, отличающаяся использованием описаний самодостаточных объектов, передаваемых по линиям связи и кэшированных на клиентском машиночитаемом носителе данных в зашифрованном виде.10. The information system according to claim 1, characterized in using descriptions of self-contained objects transmitted over communication lines and cached on a client computer-readable storage medium in encrypted form. 11. Информационная система по п.1, отличающаяся тем, что в качестве линий связи используются сети радио и мобильной связи, а в качестве клиентов используются сотовые телефоны.11. The information system according to claim 1, characterized in that the radio and mobile networks are used as communication lines, and cell phones are used as clients. 12. Способ предоставления графического пользовательского интерфейса на компьютере-клиенте в информационной системе клиент - сервер, в котором при помощи объекта-инициатора, предназначенного для указания объекта-посредника, инициируют формирование запроса к серверу объектом-посредником, предназначенным для связи объектов между собой, определяют объект-контейнер, предназначенный для объединения объектов-запросчиков в группы, участвующий в формировании запроса, в объекте контейнере осуществляют опрос объектов-запросчиков, включающий в себя контроль ввода данных, в результате которого определяют, соответствуют ли данные, содержащиеся в объектах-запросчиках, установленной максимальной длине, определяющей максимально возможное количество введенных данных, и тип содержимого, который определяет, какие символы могут вводиться, при этом данные, не соответствующие упомянутым максимальной длине и типу данных, игнорируются, а в случае, если объект-запросчик не содержит никаких данных, прерывают работу программы и пользователю выдают сообщение, что он не ввел необходимые данные, объекты-запросчики представляют данные, на основании которых формируют запрос к серверу, который возвращают объекту-посреднику, с помощью которого пересылает запрос серверу, на основании которого получают данные из базы данных сервера, с помощью которого их приводят к нужному формату и пересылают их объекту-посреднику, при помощи которого передают полученные с сервера данные другому объекту-контейнеру, которым распределяют данные между относящимися к нему объектами-получателями, предназначенными для приема и отображения данных в виде графического пользовательского интерфейса.12. The method of providing a graphical user interface on a client computer in a client-server information system in which, using an initiator object to indicate an intermediary object, initiates the formation of a request to the server by an intermediary object designed to communicate between objects, determine a container object intended for combining requestor objects into groups participating in the formation of a request; in a container object, polling of requestor objects is carried out, including the control of data entry, which determines whether the data contained in the requestor objects matches the maximum length that determines the maximum possible amount of data entered, and the type of content that determines which characters can be entered, while the data does not correspond to those mentioned the maximum length and type of data are ignored, and if the requestor object does not contain any data, the program is interrupted and the user is given a message that he did not enter the necessary data e, the requestor objects represent the data on the basis of which they form a request to the server, which is returned to the intermediary object, with the help of which it forwards the request to the server, on the basis of which the data is received from the server database, with the help of which they are converted to the desired format and sent to the intermediary object, by means of which the data received from the server is transferred to another container object, which distributes the data between the recipient objects related to it, intended for receiving and displaying data in de GUI.
RU2005130007/09A 2005-09-26 2005-09-26 Information client-server system and method for providing graphical user interface RU2313824C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2005130007/09A RU2313824C2 (en) 2005-09-26 2005-09-26 Information client-server system and method for providing graphical user interface

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2005130007/09A RU2313824C2 (en) 2005-09-26 2005-09-26 Information client-server system and method for providing graphical user interface

Publications (2)

Publication Number Publication Date
RU2005130007A RU2005130007A (en) 2007-04-10
RU2313824C2 true RU2313824C2 (en) 2007-12-27

Family

ID=37999886

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2005130007/09A RU2313824C2 (en) 2005-09-26 2005-09-26 Information client-server system and method for providing graphical user interface

Country Status (1)

Country Link
RU (1) RU2313824C2 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2504832C2 (en) * 2008-11-14 2014-01-20 Бейджинг Согоу Текнолоджи Девелопмент Ко., Лтд. Method and apparatus for processing page resources
RU2507574C2 (en) * 2008-05-26 2014-02-20 Майкрософт Корпорейшн Page-by-page breakdown of hierarchical data
RU2595755C2 (en) * 2011-09-09 2016-08-27 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Recovery after failure of cluster client
US9438696B2 (en) 2005-05-25 2016-09-06 Microsoft Technology Licensing, Llc Data communication protocol
US9462039B2 (en) 2011-06-30 2016-10-04 Microsoft Technology Licensing, Llc Transparent failover
RU2604431C2 (en) * 2011-06-13 2016-12-10 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Automated transformation of user interface object and code generation
RU2608472C2 (en) * 2011-06-13 2017-01-18 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Techniques for adapting interpretive run time application to multiple clients
US10284626B2 (en) 2011-06-29 2019-05-07 Microsoft Technology Licensing, Llc Transporting operations of arbitrary size over remote direct memory access
US10630781B2 (en) 2011-09-09 2020-04-21 Microsoft Technology Licensing, Llc SMB2 scaleout

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9438696B2 (en) 2005-05-25 2016-09-06 Microsoft Technology Licensing, Llc Data communication protocol
RU2507574C2 (en) * 2008-05-26 2014-02-20 Майкрософт Корпорейшн Page-by-page breakdown of hierarchical data
US8825700B2 (en) 2008-05-26 2014-09-02 Microsoft Corporation Paging hierarchical data
RU2504832C2 (en) * 2008-11-14 2014-01-20 Бейджинг Согоу Текнолоджи Девелопмент Ко., Лтд. Method and apparatus for processing page resources
RU2604431C2 (en) * 2011-06-13 2016-12-10 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Automated transformation of user interface object and code generation
RU2608472C2 (en) * 2011-06-13 2017-01-18 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Techniques for adapting interpretive run time application to multiple clients
US10284626B2 (en) 2011-06-29 2019-05-07 Microsoft Technology Licensing, Llc Transporting operations of arbitrary size over remote direct memory access
US9462039B2 (en) 2011-06-30 2016-10-04 Microsoft Technology Licensing, Llc Transparent failover
RU2595755C2 (en) * 2011-09-09 2016-08-27 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Recovery after failure of cluster client
US10630781B2 (en) 2011-09-09 2020-04-21 Microsoft Technology Licensing, Llc SMB2 scaleout

Also Published As

Publication number Publication date
RU2005130007A (en) 2007-04-10

Similar Documents

Publication Publication Date Title
RU2313824C2 (en) Information client-server system and method for providing graphical user interface
US7269664B2 (en) Network portal system and methods
US7117504B2 (en) Application program interface that enables communication for a network software platform
US11748182B2 (en) System and method for integrating multiple applications
US9183537B2 (en) Content authoring and deployment technology
US7730499B2 (en) Protocol agnostic request response pattern
KR100998515B1 (en) Methods for distributed program execution with file-type association in a client-server network
WO2007001206A1 (en) Client-server information system and method for presentation of a graphical user's interface
US11038855B2 (en) Encryption filter
US20050187895A1 (en) Dynamically customizing a user interface for the aggregation of content
US20030078960A1 (en) Architecture and process for creating software applications for multiple domains
US20070250711A1 (en) System and method for presenting and inputting information on a mobile device
EP1126681A2 (en) A network portal system and methods
CA2632793A1 (en) Information server and mobile delivery system and method
US20050071439A1 (en) Mobility device platform
EP1562099A1 (en) Method and computer system for document encryption
JP4944411B2 (en) Menu generation system, menu generation method, and menu generation program
EP2040190A2 (en) Processing HTML extensions to enable support of information cards by relying party
US10901581B2 (en) Assimilation method and system for browser and non-browser display window
US10180862B1 (en) System and method for integrating multiple applications operating on a shared platform
US7860987B2 (en) Apparatus for providing service in response to user request and method therefor
US20050228982A1 (en) Data communication system control method, data communication system, and information processing apparatus
US6763355B2 (en) Method and apparatus in mark-up language documents for providing mark-up language hidden attributes
US11533282B1 (en) Specifying and testing open communication protocols
US20240004740A1 (en) System and method for interoperability communication using raised intents

Legal Events

Date Code Title Description
PC4A Invention patent assignment

Effective date: 20080617

MM4A The patent is invalid due to non-payment of fees

Effective date: 20140927