автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.01, диссертация на тему:Разработка кроссплатформенного протокола вызова удаленных процедур и репликации данных с целью совершенствования управления машиностроительным предприятием

кандидата технических наук
Перченок, Алексей Алексеевич
город
Москва
год
2011
специальность ВАК РФ
05.13.01
Диссертация по информатике, вычислительной технике и управлению на тему «Разработка кроссплатформенного протокола вызова удаленных процедур и репликации данных с целью совершенствования управления машиностроительным предприятием»

Автореферат диссертации по теме "Разработка кроссплатформенного протокола вызова удаленных процедур и репликации данных с целью совершенствования управления машиностроительным предприятием"

005003138

На правах рукописи

Перченок Алексей Алексеевич

РАЗРАБОТКА КРОССПЛАТФОРМЕННОГО ПРОТОКОЛА ВЫЗОВА УДАЛЕННЫХ ПРОЦЕДУР И РЕПЛИКАЦИИ ДАННЫХ С ЦЕЛЬЮ СОВЕРШЕНСТВОВАНИЯ УПРАВЛЕНИЯ МАШИНОСТРОИТЕЛЬНЫМ ПРЕДПРИЯТИЕМ

Специальность 05.13.01 - «Системный анализ, управление и обработка

информации (технические системы)»

АВТОРЕФЕРАТ - 1 ДЕК 2011

диссертации на соискание ученой степени кандидата технических наук

Москва - 2011

005003138

Работа выполнена в ФГБОУ ВПО Московском государственном технологическом университете «СТАНКИН»

Научные руководители: кандидат технических наук, профессор

Чекменев Сергей Евгеньевич

Официальные оппоненты: доктор технических наук, профессор

Саксонов Евгений Александрович

кандидат технических наук, доцент Баранов Леонид Вячеславович

Ведущее предприятие: ОАО «ВНИИИНСТРУМЕНТ»

Защита состоится « » У2011 г. в/^'часов на заседании диссертационного совета Д 212.142.03 при ФГБОУ ВПО Московском государственном технологическом университете «СТАНКИН» по адресу: 127055, Москва, Вадковский переулок, д. За.

С диссертацией можно ознакомиться в библиотеке ФГБОУ ВПО Московского государственного технологического университета «СТАНКИН».

Автореферат разослан « 2011г.

Ученый секретарь диссертационного совета, к.т.н., доц. / Семячкова Е.Г.

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

Актуальность работы. В современных экономических условиях повышение конкурентоспособности предприятий невозможно без широкого применения средств автоматизации, основанных на компьютерных системах и технологиях. Несмотря на значительный прогресс в данной области, можно заметить, что информационная и вычислительная сложность задач, связанных с производством и управлением, растёт опережающими темпами. Эта тенденция проявляется, в частности, в значительном увеличении объёма конструкторско-технологической информации, подлежащей сбору, хранению, передаче и обработке. С другой стороны, появляются новые формы организации производственной и финансовой деятельности предприятий, такие, как, например, распределенное производство. Эти процессы определяют новые повышенные требования к программно-техническим средствам, входящим в состав автоматизированных систем предприятия. Важная роль при этом принадлежит подсистемам обеспечения оперативности и достоверности передачи данных между подразделениями и сотрудниками.

Для практического решения подобных задач часто применяются два распространенных протокола: SOAP (Simple Object Access Protocol — простой протокол доступа к объектам) и CORBA (Common Object Request Broker Architecture — общая архитектура брокера объектных запросов). Оба протокола имеют ряд существенных недостатков. SOAP для обеспечения кроссплатформенности использует большую избыточность информации, за счет чего понижается скорость передачи данных и скорость обработки на клиентском приложении. CORBA — слишком громоздкий протокол, который несмотря на высокие скорости передачи данных, не обеспечивает возможность взаимодействия в программных модулях, реализованных на разных языках программирования. При этом стоимость проектов на основе протокола CORBA существенно больше, нежели протокола SOAP.

Для решения задачи повышения эффективности передачи данных требуется

разработать механизм обработки данных, обладающий гибкостью, а также

3

экономической и технической целесообразностью. При разработке универсального принципа обработки данных для последующего хранения надо проанализировать принципы передачи и компрессии данных, разработать метод обработки данных, который способен обеспечить разработку программных модулей в установленных финансовых и временных рамках.

В настоящее время методы обработки и передачи массива данных между программными модулями играют особую роль. Они востребованы на всех этапах разработки программных средств.

Целью диссертационной работы является повышение эффективности управления машиностроительным производством за счет увеличения скорости передачи данных между приложениями, реализованными на разных языках программирования, а также разработки новых методов и средств передачи и обработки данных.

Для достижения поставленной цели решались следующие научные и практические задачи:

исследование и сравнительный анализ методов и существующих протоколов передачи данных для вызова удаленных процедур;

исследование связи между спецификациями типов данных в языке программирования и протоколов передачи данных;

разработка универсального метода сериализации данных, независимого от специфики конкретного языка программирования;

разработка программного средства конвертирования данных в строковый формат с учетом предложенного подхода к сериализации данных;

разработка программного модуля декодирования данных на языке программирования, отличном от исходного.

Методы исследования. При разработке теоретических положений диссертационной работы использован аппарат теории вероятности, теории информации, теории баз данных, а также методы объектно-ориентированного программирования и ряд других теорий и методов.

Научная новизна работы заключается в:

- установлении новых связей между спецификациями типов данных в языках программирования и протоколах передачи данных;

- разработке нового метода обработки данных, обеспечивающего кроссплатформенность;

- разработке нового метода сериализации данных для повышения эффективности передачи данных между программными модулями.

Практическая значимость работы заключается в сокращении времени принятия решения персоналом предприятия за счет реализации метода компрессии данных и вызова удаленных процедур, обеспечивающих эффективную передачу данных между программными модулями.

Использование результатов работы. Разработанная система внедрена в одной из крупнейших в России компаний по хранению данных жилищного фонда ООО «ГДЕЭТОТДОМ.РУ». Система успешно используется на протяжении двух лет.

Апробация работы. По материалам работы были сделаны доклады на научной конференции МГТУ им. Н.Э. Баумана, Москва, 2005 г.; VIII научной конференции МГТУ «СТАНКИН» и «Учебно-научного центра математического моделирования МГТУ «СТАНКИН» - ИММ РАН» Москва, 2005 г.; Ежегодной студенческой научной конференции МГТУ «СТАНКИН», 2008 г.

Публикации. По теме диссертации было опубликовано 4 печатных работы.

Структура и объем работы. Диссертация состоит из введения, четырех глав и заключения, списка использованной литературы и приложения. Содержание диссертации изложено на 98 листах машинописного текста, список литературы содержит 37 наименований, количество иллюстраций - 35, количество таблиц - 5.

ОСНОВНОЕ СОДЕРЖАНИЕ РАБОТЫ

Во введении обосновывается актуальность темы, формулируются основные задачи и дается общая характеристика диссертационной работы.

В первой главе проводится анализ узких мест, возникающих при передаче информации по локальной сети. Анализируются методы и средства повышения

эффективности передачи информации на предприятии за счет выбора оптимальных протоколов передачи данных, а также проблемы, связанные с использованием современных протоколов вызова удаленных процедур. Рассматривается проблема использования протоколов на различных устройствах, программное обеспечение которых реализовано на разных языках программирования.

Основной практической задачей диссертации является разработка эффективного метода передачи данных между программными модулями, реализованными на разных языках программирования.

Любое приложение, которое требует вычислений на удаленной системе, работает, передавая данные через сеть. Здесь следует выделить задачу передачи данных между различными программными комплексами, а также проблемы, связанные с применением таких разнородных комплексов. На рисунке 1 показано в каких местах могут возникнуть задержки при передаче информации по сети между программными модулями.

Существующую систему анализа отказоустойчивости оборудования и передачи информации на рабочую станцию сотрудника предприятия можно модернизировать и за счет этого повысить производительность и отказоустойчивость всей системы. Также в случае возникновения экстренных и нештатных ситуаций соответствующая информация может быть получена и обработана значительно быстрее.

За счет увеличения скорости передачи данных можно не только повысить оперативность принятия решения, но и повысить производительность подсистемы хранения данных. Это может быть достигнуто за счет повышения скорости декодирования и подготовки данных к хранению, а также повышения скорости чтения данных.

Проблемы, связанные с передачей данных, затрагивают принимающую сторону и почти никак не влияют на сервер. Основной проблемой, которая встречается на стороне клиентского приложения, является несовпадение типов данных на уровне языка программирования, использованного при разработке клиентского приложения.

j ¡Дляповышения j

I j эффективности на данном j ; ¡участиепотребуется: j

j | дополнительное ПО для ) ;¡чтения информации из базы ] ! • данных и удобный формат ! | [сообщенийраспознаваемый j ji перед выводом на терминал, i

¡1 I

I! j

!& простоя; \ \ _____е.:______ !!

19. Отмочен. j| для хранения в базе данных. ;;_j

Рис. 1 Схема передачи данных между подразделениями предприятия Распределенная архитектура системы привносит дополнительные проблемы. Выполнение вызывающей программы и вызываемой локальной процедуры реализуется в рамках единого процесса. Но в реализации RPC участвуют как минимум два процесса по одному в каждой машине. В случае если один из них аварийно завершится, могут возникнуть следующие ситуации: при аварии вызывающей процедуры, удаленно вызванные процедуры станут «осиротевшими», а при аварийном завершении удаленных процедур станут «обездоленными родителями», пытающимися вызвать процедуры, которые будут безрезультатно ожидать ответа от удаленного сервера.

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

Арибры составам

оборудования моторьи j швмппшшы

i

;l Наладка; {

2. Обработка; j

3l Подиаяадо; j

S. Эиапроитомпмц j

& Оинд ание; j

7. Нетработы; j

_ _ _ t

| Для повышения ; эффективности ка данном [ участке потребуется: | стандартизация формата | обмена данными и выбор | оптимального протокола | обмена сообщениями. ! Формат сообщения должен | быть оперативно : декодирован и подготовлен

Невошзжиость - —

пересылки и Нмомадеии«

получения ШОТДМИЫХ

данных

Не!0!МОЖНОСТЬ

реализовать протает*«« программирования

Нижая

отказоустойчивость протокола

Рис. 2. Возможные проблемы передачи данных между модулями программного комплекса, реализованными на разных языках программирования

На рисунке 3 показана последовательность команд, которую необходимо выполнить для каждого ЛРС-вызова, на рисунке 4 продемонстрировано какая доля общего времени выполнения RPC тратится на выполнение каждого их описанных 14 этапов. Исследования были проведены на мультипроцессорной рабочей станции DEC Firefly.

Клиент Сервер

ю

<6

и

вить епбфхдоиг

¡Ъуршшигъ буфер Вмоммтф^ми ПУМЙМ иеаоммпяма мккадру

Лфштньшююшстздр Оирбйвшмйрбсвообчвяи* Л0ИШ1№Цр1С11У(М10КОМбЦМИ1 Хшшиштий мюерфсйс

быпомпътрсбуси S |юр*бяу

Ломсммярмн ) рыаепк кум i

ihptMmen КОЯЯрОВПкСООбЦЕ Офямльдал Ояцдмицаиам Лрервиь Ороцвсс1 UUUU(M(M((ll6) нне серверному аабу [(П|(ММПМЯ г—

10 *s

V

Рис. 3. Этапы выполнения процедуры RPC

=r о

Ct 15%

Стаб клиента

Ядро клиента

Стаб

Ядро сервера сервера

Номер процесса

Рис. 4. Распределение времени между 14 этапами выполнения RPC Процессы при вызове удаленных процедур выполняются следующим образом:

1) вызвать стаб;

2) подготовить буфер;

3) упаковать параметры;

4) заполнить поле заголовка;

5) вычислить контрольную сумму в сообщении;

6) выполнить прерывание для обращения к ядру клиента; сформировать очереди пакетов на выполнение; передать сообщения контроллеру по шине QBUS; передать данные по сети Ethernet;

10) получить пакет от контроллера;

11) обработать прерывание при обращении к ядру сервера;

12) вычислить контрольную сумму;

13) переключить контекст в пространство пользователя;

14) выполнить стаб.

На основании проведенных тестов для протоколов передачи данных было установлено, что основным проблемой для протокола является не только обработка сообщений, но и сами сообщения, передаваемые по сети. Скорость

передачи сообщений в основном зависит от размера сообщения, а также загрузки локальной сети. Снизить нагрузку на сеть возможно за счет снижения объема передаваемой информации. Для решения данной проблемы, потребуется анализ протоколов ЯР С на уровне сообщений, передаваемых по сети.

В настоящее время существует несколько протоколов, с помощью которых можно осуществлять вызов удаленных процедур и распределять обработку данных между программными модулями. Весь набор существующих программных модулей можно разбить на несколько типов, но объединяют их общие технологические решения. Все модули такого рода передают разные форматы сообщений, одни передают битовый формат сообщений, а другие генерируют строковый формат.

На основании проведенного анализа протоколов передачи данных системы удаленного вызова процедур можно сформулировать ряд требований, выполнение которых необходимо для достижения поставленной цели:

- требуется разработка метода упаковки данных в сообщение, передаваемое по сети, которое бы легко распознавалось получателем и в кратчайшие сроки могло быть деконвертировано в исходную структуру;

- в отличие от локального вызова, удаленный вызов процедур обязательно использует нижележащую систему связи, однако это не должно быть явно видно ни в определении процедур, ни в самих процедурах;

- требуется повышение отказоустойчивости протоколов процедур удаленного доступа;

- требуется разработать метод, который бы позволял принимать и передавать сообщения по сети в независимости от программных модулей, используемых в системе;

- требуется оптимизация сообщений для повышения скорости передачи данных по сети.

Во второй главе производится анализ методов, обеспечивающих независимость использования протокола передачи данных и вызова удаленных процедур от среды реализации и формулируется точное определение

кроссплатформенности. Кроссплатформенным протоколом вызова удаленных процедур называется такой протокол, поддержку которого можно реализовать на любом языке программирования, без использования специальных надстроек над системой.

Кроссплатформенность протокола возможно реализовать тремя методами:

• привести к единому виду формат обмена сообщениями между системами хранения и обработки данных;

• обеспечить распознавание сообщения посылаемого между клиентом и сервером;

• обеспечить работу всех программных модулей модуля на едином открытом протоколе передачи данных.

В диссертационной работе приводятся обоснования необходимости использования единого формата сообщений для обеспечения кроссплатформенности.

Типы данных, присваиваемые переменным в программе, имеют важное значение для протоколов, ориентированных на битовый формат сообщений. Типы переменных считаются ключевой интерфейсной составляющей каждой программы. Практически любое изменение типов данных приведет к изменению и логической, и реализационной структуры программной системы.

Таким образом, именно использование ограниченного набора типов данных, конвертируемых в битовое сообщение в протоколе, не позволяет использовать дополнительные специализированные структуры типа «объект». Существующие протоколы с битовыми сообщениями поддерживают очень ограниченный набор типов данных, который используется в базовых вычислениях и, фактически, иной формат сообщений непригоден для передачи и хранения более сложных структур.

Одним из недостатков существующих протоколов передачи данных, является применяемый способ упаковки данных в сообщение, которое передается по локальной сети. Большинство протоколов, передающих результат посредством XML, обязаны передавать избыточную информацию для поддержания целостности

данных. Эту проблему можно решить, применив методы сериализации передачи данных.

Сериализация в программировании — процесс перевода какой-либо структуры данных в последовательность битов. Обратной к операции сериализации является операция десериализации — восстановление начального состояния структуры данных из битовой последовательности.

Сериализация используется для передачи объектов по сети и для сохранения их в файлы. Например, нужно создать распределённое приложение, разные части которого должны обмениваться данными со сложной структурой. В таком случае для типов данных, которые предполагается передавать, пишется код, который осуществляет сериализацию и десериализацию. Объект заполняется нужными данными, затем запускается процесс сериализации, в результате чего получается, например, JSCW-документ. JSON (англ. JavaScript Object Notation) — текстовый формат обмена данными предложенный в компании Yahoo. Результат сериализации передаётся принимающей стороне, например, по протоколу электронной почты или HTTP. Приложение-получатель создаёт объект того же типа и вызывает код десериализации, получая в результате объект с теми же данными, что были в объекте приложения-отправителя.

Процесс сериализации и десералиизации реализован в качестве библиотек для таких языков как Python, С#, PHP, а также для многих других компилируемых и интерпретируемых языков программирования.

В рамках исследования повышения скорости за счет использование метода передачи данных, основанного на принципах сериализации, проведены тесты и доказана эффективность метода при использовании его в процедурах удаленного вызова (Рис. 6).

Решение вопроса увеличения скорости передачи данных было бы неполным, если бы не был проведен анализ возможности использования существующих методов и средств кодирования передаваемых данных в строку с последующим сжатием. Проблема стоит очень остро, так как все существующие на данный момент протоколы обладают избыточностью информации. На данный момент существует множество способов архивации и упаковки данных. Наиболее

эффективным для строки, в которой будут явно повторяться элементы, будет алгоритм Лемпеля-Зива-Велча.

Приложение!

Объект еерналтации

Сериалшациия

Поток вывода

Приложение 2

Копия объекта

Дасернализация

Поток ввода

Рис.5. Схема сериализации и десериализации объекта.

50

100 150 200

Количество бит в сообщении

!1г5

250

Рис,6. Зависимость количества байт от выбранного типа упаковки данных.

Для обеспечения эффективной упаковки данных метод сериализации должен использовать алгоритмы сжатия, а также методы хранения кодовых слов для дальнейшей расконвертации. При этом должна сохраняться высокая скорость декомпрессии. Именно скорость декомпрессии стала одним из критических факторов при реализации алгоритма на интерпретируемых языках программирования.

В третьей главе описанные выше методы повышения эффективности передачи данных рассматриваются с технической точки зрения, и описывается вариант реализации каждого метода.

Для того чтобы реализовать метод передачи данных, нужно определить порт системы, через который будет осуществляться взаимодействие клиентской программы и сервера. Самым распространенным портом, который, не запрещен политикой безопасности многих предприятий является 80 порт протокола HTTP. Важным аспектом выбора будет повышение безопасности связи между клиентской программой и сервером, а также общедоступность.

Как было показано во второй главе, самым эффективным методом передачи данных в строковом формате является строка представления сериализованных данных. На данный момент сериализация, поддерживаемая в языке С#, или в языке PHP, не подходит для передачи по протоколу HTTP, так как она избыточна за счет хранения таких атрибутов, как тип данных, количество символов и элементов структуры.

Для того чтобы решить эту проблему, требуется сопоставление данных представленных в языке С#, с упрощенной структурой сериализации для дальнейшей обработки (табл. 1).

Табл. 1. Сопоставление типов данных в типизированном языке с типами _при упрощенной сериализации данных._

Тип данных в С# Преобразование типа

Все числовые типы, например Int32, Decimal или Double Number

Епит Number

Boolean Boolean

String, Char String

Timespan, Guid, Uri String

XmlQualifiedName String

Продолжение таблицы 1

Array типа Byte Array

Datetime String

DatetimeOffset String

Типы XML и ADO.NET (XmlElement, XElement. Массивы XmlNode, String

ISerializable,

DataSet).

DBNull String

Коллекции, словари и массивы Array

Сложные типы (с примененным атрибутом DataContractAttribute или SerializableAttribute) String

Значение Null для любого типа Null

Теперь можно говорить о том, что структура сериализации оптимальна с точки зрения мультиязычности применения. Но для повышения скорости еще требуется применение метода сжатия. Сжатие данных должно быть не только максимально удобным для конвертации, но и для последующей интерпретации. Для реализации метода сжатия были использованы идеи алгоритмов IZ-сжатия (метод сжатия Зива-Лемпела).

Метод сжатия Зива-Лемпела, описанный во второй главе, наиболее хорошо подходит для достижения поставленной цели. Сущность метода состоит в том, что последовательность символов заменяется указателем на то место, где они в тексте уже ранее появлялись.

Для облегчения раскодирования даже на клиентских языках программирования, таких как JavaScript, потребовалось упростить метод Зива-Лемпела. Самые повторяющиеся последовательности символов содержатся не в значении ячеек массива, а в самих ключах массива. Поэтому все ключи массива, повторяющиеся более одного раза, можно вынести в строку ключей, а в самом массиве указать только адрес на ключ-замену.

Для того чтобы подтвердить качество сжатия по ключам массива, возможно использовать формулу Хартли, которая позволяет найти количество информации в случайном сообщении фиксированного алфавита. Пусть XI, ..., Хп — ключи этого алфавита, а PI,..., Рп — вероятности их появления в массивах, тогда: Н = Pl*log2(l / PI) +... + Pn*log2(l / Pn) (1)

где Н — количество бит информации в одном ключе сообщения. Это число показывает минимальное среднее число бит, необходимых для представления одного ключа данного сообщения.

В работе рассмотрена проблема, связанная с отказоустойчивостью протокола передачи информации. Поскольку распределенные службы будут совершенно независимыми от реализации компонентами, реализованными на разных языках программирования, а управление процессами и потоками сильно зависит от платформы, можно считать, что каждый экземпляр службы работает в своем отдельном процессе, к которому не имеют доступа все остальные экземпляры других служб или той же самой службы.

Отправитель

Отправка сообщения

Получатель

Получение сообщения

Рис.7. Метод повышения отказоустойчивости для протокола передачи

данных

Возможность обеспечения отказоустойчивости служб предусмотрена в архитектуре приложений. Ее можно добиться дублированием их реализаций и

регистрацией нескольких точек доступа к службам, реализующим один и тот же интерфейс.

Реализация описанных выше методов позволит протоколам удаленного вызова процедур выйти на новый уровень эффективности передачи сообщений, обеспечив возможность реализации протокола вне зависимости от использованного языка программирования. А также, что немаловажно, реализация метода сжатия данных повысит скорость передачи сообщения, и понизит нагрузку на сеть. В данной главе рассмотрена возможность повышения отказоустойчивости протокола передачи данных и разработана методика повышения уровня отказоустойчивости при передаче сообщений (см. Рис.7).

В четвертой главе предложена реализация описанных выше методов в виде модификации системы удаленного вызова процедур LZS (Lempel-Ziv Serialized). Главной отличительной чертой протокола является то, что его реализация может поддерживаться на любом языке программирования.

Для клиентского и серверного приложения достаточно иметь открытый порт, чтобы передать и получить данные. Для самой простой реализации, достаточно иметь спецификацию данных основаного языка программирования и открытый, например 80 {HTTP) порт. Для приложений, в которых требуется поддержка защиты передаваемой информации можно использовать 443 порт, или протокол передачи данных HTTPS.

Для реализации передачи данных по сети требуется применить всего три метода, которые могут открыть и закрыть сокет, чтобы освободить порт от передачи информации.

Резюмируя вышесказанное, можно отметить следующие свойства разработанного протокола LZS:

1) поддержка любого языка программирования, как компилируемого, так и интерпретируемого;

2) возможность получать и передавать данные по любым системным портам, разрешенным на клиенте и сервере;

3) сокращение сетевого трафика путем компрессии данных;

4) использование собственного протокола упаковки и передачи данных;

17

5) передача и получение данных с использованием методов РОБТ и

6) поддержка передачи данных по зашифрованному каналу;

7) использование только стандартных методов языка программирования;

8) независимость от аппаратной части компьютера;

9) возможность свободного распространения в исходных кодах.

На данный момент не существует протокола, который был бы полным аналогом 128. Например, по сравнению с протокол протокол ЫБ более

прост в использовании. Можно выделить следующие конкурентные преимущества протокола 12Б'.

1) для реализации протокола не требуется использовать дополнительные языки программирования;

2) протокол мультиязычен, поэтому для использования результатов работы протокола не требуется применение дополнительных языков программирования;

3) не требуется дополнительных программных модулей ни на клиентском, ни на серверном ПО;

4) не требуется контролировать типы данных, используемые в исходном языке.

После расчетов и подготовки тестового программного модуля, было проведено тестирование сжатия данных в массиве, состоящем из одинаковых ключевых элементов. Как видно из рисунка 8, с ростом повторений набора ключей массива повышается и качество сжатия. При каждом последующем повторении ключа массива, затраты при конвертации определяются только значением элементов ключей и ссылками на исходный ключевой элемент. При этом объем переданной информации сокращается за счет сжатия данных. При сравнении протоколов выяснилось, что количество переданной информации в протоколе ЬТБ меньше чем у его аналога. Одной из целей диссертации было увеличение скорости передачи данных через сеть. Для этого был проведен тест на одинаковых

структурах данных. Как и в предыдущем тесте, результаты сравнивались с результатами протокола .180N.

О 50 100 150 200 250

Количество бит в сообщении

Рис. 8. Сравнение протоколов передачи данных без сжатия и со сжатием.

О 0.002 0.004 О.ООб 0,008 О.О! 0.012

Скорость передачи данных, иле

Рис. 9. Сравнение протоколов по скорости передач данных

Прирост в скорости при передаче данных продемонстрирован на рисунке 9. При первом тесте за счет дополнительных байт, указывающих на принадлежность к протоколу ЪТБ, существовала некоторая задержка передачи данных, а уже в последующих тестах протокол за счет сжатия стал существенно превосходить в скорости протокол Случаи передачи одной структуры редки, а при

передаче нескольких структур протокол будет превосходить аналоги.

Данный протокол может найти применение в самых различных областях, начиная от передачи данных для репликации между серверами, до передачи данных через интернет. Если внутри локальной сети, при репликации данных, защита от несанкционированного доступа не принесет практической пользы, то при передаче данных через интернет методы защиты оправданы. Защита при передаче данных, которые представлены в строковом формате и легко читабельны, более актуальна.

ОСНОВНЫЕ ВЫВОДЫ И РЕЗУЛЬТАТЫ:

1. В диссертации решена задача, имеющая важное практическое значение для предприятий машиностроения, заключающаяся в повышении эффективности передачи данных с целью совершенствования управления и производства.

2. Установлены связи между типами данных, разрешенных языком программирования при конвертации данных из массива в строковый формат, что повышает степень переносимости данных.

3. Предложен метод сериализации данных, который показал свою эффективность. Этот метод повышает скорость передачи данных в ~1,5 раза за счет минимизации передаваемой информации.

4. Повышена эффективность передачи данных по сети в строковом формате открытыми методами за счет применения алгоритма сжатия сериализованных данных, предложенного в диссертационной работе.

5. Разработана система кодирования данных для последующей передачи по сети на интерпретируемом языке программирования. При этом не использованы дополнительные модули и ресурсы серверов, что существенно повышает степень переносимости программы на различные платформы.

6. Реализована система раскодирования сообщений и приведения типов данных к разрешенным на принимающей стороне, что показывает мультиязычность разработанного протокола LZS. При этом для реализации использована платформа UNIX и компилируемый язык программирования, что демонстрирует обратимость метода кодирования.

7. Результаты диссертационной работы могут быть использованы на предприятиях машиностроения, а также в учебном процессе по направлению 220305.65 «Автоматизированное управление жизненным циклом продукции» в высших технических учебных заведениях.

СПИСОК РАБОТ, ОПУБЛИКОВАННЫХ ПО ТЕМЕ ДИССЕРТАЦИИ:

Публикации журналах, входящих в перечень ведущих периодических изданий

ВАК РФ:

1. Перченок А.А. Мультиязычный высокоскоростной протокол передачи данных, основанный на принципах сериализации// Вопросы защиты информации; М. -2010, №4.-с. 45-50.

Другие публикации:

2. Перченок А.А., Колесников А.С., Пюрецкий А.А. Интерпретатор языка FP// Тез. докл. Всероссийская конференция студентов, аспирантов и молодых ученых МГТУ им. Н.Э. Баумана, 2005 г.;

3. Перченок А.А., Колесников А.С., Пюрецкий А.А. Разработка и программная реализация интерпретатора языка FP в среде MICROSOFT VISUAL STUDIO 7.0 // Тез. докл. VIII научной конференции МГТУ «СТАНКИН» и «Учебно-научного центра математического моделирования МГТУ «СТАНКИН» - ИММ РАН» Москва, 2005 г.;

4. Перченок А.А. Исследование методов SEO-оптимизации интернет ресурсов и разработка автоматизированной системы оптимизации контента информационного сайта предприятия// Тез. докл. Ежегодная студенческая научная конференция МГТУ «СТАНКИН», 2008 г.

Формат 60x90/16. Заказ 1485. Тираж 100 экз. Усл.-печ. л. 1,2. Печать офсетная. Бумага для множительных аппаратов. Отпечатано в ООО "ФЭД+", Москва, Ленинский пр. 42, тел. 774-26-96

Оглавление автор диссертации — кандидата технических наук Перченок, Алексей Алексеевич

ВВЕДЕНИЕ

ГЛАВА 1. ИССЛЕДОВАНИЕ ПРОТОКОЛОВ ПЕРЕДАЧИ ДАННЫХ МЕЖДУ РАСПРЕДЕЛЕННЫМИ ПРИЛОЖЕНИЯМИ, ИХ КЛАССИФИКАЦИЯ, ПРИНЦИП РАБОТЫ, ПРЕИМУЩЕСТВА И НЕДОСТАТКИ

1.1 Анализ узких мест при передаче данных по локальной сети

1.2 Постановка задачи передачи данных между клиент-серверным приложением

1.3 Передача данных между распределенными системами и обработка их

1.4 Классификация протоколов ЫРС

1.5 Протоколы передачи битовых сообщений

1.6 Протоколы передачи данных основанные на строковых сообщениях

1.7 Сравнение типов передачи данных вызова удаленных процедур 38 Выводы

ГЛАВА 2. МЕТОДЫ ОБЕСПЕЧЕНИЯ КРОССПЛАТФОРМЕННОСТИ ПРОТОКОЛОВ ВЫЗОВА УДАЛЕННЫХ ПРОЦЕДУР И РЕПЛИКАЦИИ ДАННЫХ

2.1 Решение проблемы взаимодействия программных модулей, реализованных на разных языках программирования, через сетевые протоколы

2.2 Методы минимизации объема передаваемых данных

2.3 Повышение эффективности методов и средств упаковки данных в строку 57 Выводы

ГЛАВА 3. МЕТОДЫ ПОВЫШЕНИЕ ЭФФЕКТИВНОСТИ ПЕРЕДАЧИ ДАННЫХ ПО ПРОТОКОЛАМ УДАЛЕННОГО ВЫЗОВА ПРОЦЕДУР И ОБЕСПЕЧЕНИЕ ВЫСОКОЙ СКОРОСТИ ПЕРЕДАЧИ ИНФОРМАЦИИ

3.1 Метод высокоэффективного сжатия данных для последующей передачи данных удаленной процедуре.

3.2 Повышение отказоустойчивости системы между клиентской и серверной программой

Выводы

ГЛАВА 4. РЕАЛИЗАЦИЯ ПРОТОКОЛА ПЕРЕДАЧИ ДАННЫХ ОСНОВАННОГО НА ПРИНЦИПАХ СЕРИАЛИЗАЦИИ, ОЦЕНКА ЭФФЕКТИВНОСТИ ИСПОЛЬЗОВАНИЯ И ПРИМЕР ВНЕДРЕНИЯ.

4.1 Работоспособный протокол с точки зрения использующего его программиста

4.2 Оценка эффективности разработанного протокола вызова удаленных процедур

4.3 Применение протокола передачи данных на машиностроительном предприятии при репликации данных между удаленными филиалами

Выводы

Введение 2011 год, диссертация по информатике, вычислительной технике и управлению, Перченок, Алексей Алексеевич

Актуальность работы. В современных экономических условиях повышение конкурентоспособности предприятий невозможно без широкого применения средств автоматизации, основанных на компьютерных системах и технологиях. Несмотря на значительный прогресс в данной области, можно заметить, что информационная и- вычислительная сложность задач, связанных с производством и управлением, растёт опережающими темпами. s Эта тенденция проявляется, в частности, в значительном-увеличении объёма конструкторско-технологической информации, подлежащей сбору, хранению, передаче и обработке. С другой стороны, появляются новые формы организации производственной и финансовой деятельности предприятий, такие, как, например, распределенное производство. Эти процессы определяют новые повышенные требования к программно-техническим средствам, входящим в состав автоматизированных систем предприятия! Важная, роль при этом принадлежит подсистемам обеспечения оперативности и достоверности передачи данных между подразделениями и сотрудниками.

Для* практического решения подобных задач часто применяются два распространенных протокола: SOAP {Simple Object Access Protocol — простой протокол доступа к объектам) и CORBA {Common Object Request Broker Architecture — общая архитектура брокера объектных запросов). Оба протокола имеют ряд существенных недостатков. SOAP для обеспечения кроссплатформенности использует большую избыточность информации, за счет чего понижается скорость передачи данных и скорость обработки на клиентском приложении. CORBA — слишком громоздкий протокол, который несмотря на высокие скорости передачи данных, не обеспечивает возможность взаимодействия в программных модулях, реализованных на разных языках программирования. При этом стоимость проектов на основе протокола С ORB А существенно больше, нежели протокола SOAP.

Для решения задачи повышения эффективности: передачи данных требуется разработать механизм обработки данных, обладающий гибкостью,, а также экономической и технической целесообразностью. При разработке универсального принципа обработки: данных для последующего \ хранения надо проанализировать принципы; передачи и компрессии данных, разработать метод обработки данных, который способен обеспечить разработку программных модулей в установленных финансовых и временных рамках.

В настоящее время методы обработки; и передачи массива данных между программными модулями играют особую роль. Они востребованы на всех этапах разработки программных средств.

Целью диссертационной работы является повышение эффективности управления машиностроительным производством; за счет, увеличения скорости передачи данных между приложениями, реализованными на разных языках программирования, а также разработки новых методов- и средств передачи и обработки данных.

Для достижения поставленной-цели были решены следующие научные . и практические задачи: - исследование и сравнительный анализ методов и существующих протоколов передачи данных для вызова-удаленных процедур;

- исследование связи между спецификациями типов данных в языке программирования и протоколов передачи данных; разработка универсального' метода сериализации данных^ независимого от специфики конкретного языка программирования; разработка программного средства конвертирования данных в строковый формат с учетом предложенного подхода к сериализации данных; разработка программного модуля декодирования; данных на языке программирования, отличном от исходного.

Методы исследования. При разработке теоретических положений диссертационной; работы использован аппарат теории вероятности, теории информации, теории баз данных, а также методы объектно-ориентированного программирования и ряд других теорий и методов.

Научная новизна работы заключается в:

- установлении новых связей между спецификациями типов данных в языках программирования и протоколах передачи данных;

- разработке нового метода: обработки данных, обеспечивающего кроссплатформенность;

- разработке нового метода сериализации данных для? повышения эффективности; передачи: данных между программными модулями!

Практическая значимость, работы заключается в сокращении времени принятия решения персоналом предприятия; за счет реализации: метода компрессии данных и. вызова удаленных процедур^ обеспечивающих эффективную передачу данных между программными модулями.

Реализация работы. Разработанная: система внедрена в одной из крупнейших в России компаний по хранению данных жилищного фонда ООО «ГДЕЭТОТДОМ.РУ». Система успешно используется на протяжении двух лет.

Апробация работы. По материалам работы были сделаны доклады на научной конференции МЕТУ им. Н.Э. Баумана, Москва, 2005 г.; VIII научной конференции МГТУ «СТАНКИН» и «Учебно-научного центра математического моделирования МГТУ «СТАНКИН» - ИММ РАН» Москва,

2005 г.; Ежегодной студенческой научной конференции МГТУ «СТАНКИН», 2008 г.

Публикации. По теме диссертации было опубликовано 4 печатных работы, 1 из них в печатном издании рекомендованном ВАК.

Структура и объем работы. Диссертация состоит из введения, четырех глав и заключения, списка использованной литературы и приложения. Содержание диссертации изложено на 98 листах машинописного текста, список литературы содержит 37 наименований, количество иллюстраций 35, количество таблиц 5.

Заключение диссертация на тему "Разработка кроссплатформенного протокола вызова удаленных процедур и репликации данных с целью совершенствования управления машиностроительным предприятием"

Основные выводы и результаты

1. В диссертации решена задача, имеющая важное практическое значение для предприятий машиностроения, заключающаяся в повышении эффективности передачи данных с целью совершенствования управления и производства.

2. Установлены связи между типами данных, разрешенных языком программирования при конвертации данных из массива в строковый формат, что повышает степень переносимости данных.

3. Предложен метод сериализации данных, который показал свою эффективность. Этот метод повышает скорость передачи данных в —1,5 раза за счет минимизации передаваемой информации.

4. Повышена эффективность передачи данных по сети в строковом формате открытыми методами за счет применения алгоритма сжатия сериализованных данных, предложенного в диссертационной работе.

5. Разработана система кодирования данных для последующей передачи по сети на интерпретируемом языке программирования. При этом не использованы дополнительные модули и ресурсы серверов, что существенно повышает степень переносимости программы на различные платформы.

6. Реализована система раскодирования сообщений и приведения типов данных к разрешенным на принимающей стороне, что показывает мультиязычность разработанного протокола LZS. При этом для реализации использована платформа UNIX и компилируемый язык программирования, что демонстрирует обратимость метода кодирования.

7. Результаты диссертационной работы могут быть использованы на предприятиях машиностроения, а также в учебном процессе по направлению 220305.65 «Автоматизированное управление жизненным циклом продукции» в высших технических учебных заведениях.

Библиография Перченок, Алексей Алексеевич, диссертация по теме Системный анализ, управление и обработка информации (по отраслям)

1. Аншина М. Симфония CORBA. «Открытые системы» №3 1998г -14с.

2. Ахтырченко К. В., Леонтьев В. В. Распределенные объектные технологии в информационных системах. «СУБД» №6 — 1997г— 18с.

3. Брюхов Д.О, Задорожный В.И, Калиниченко Л. А, Курошев М.Ю, Шумилов С.С Интероперабельные информационные системы: архитектуры и технологии. «СУБД» №4 — 1995г 10с.

4. Елманова Н. Распределенные вычисления и технологии Inprise. «Комьютер-Пресс» №5- 1999г 20с.

5. Елманова Н. Оптимизация приложений C++Builder в архитектуре клиент/сервер. «Компьютер-Пресс» №4 — 1998г — 22с.

6. Коржов В. Многоуровневые системы клиент-сервер. «Сети» №6 -1998г- 16с.

7. Орфали Р., Харкин Д., Эдварде Д. Основы CORBA: Пер. с англ. М.: МАЛИП, Горячая Линия - Телеком, 1999 г. - 144с.

8. Калиниченко Л.А., Когаловский М.Р. Стандарты OMG: Язык определения интерфейсов IDL в архитектуре CORBA. «СУБД» №2 -1996г-22с.

9. Калиниченко Л.А., Когаловский М.Р. Интероперабельность брокеров в стандарте CORBA 2.0. «СУБД» №3 1996г- Юс.

10. Пуха Ю. Объектные технологии построения распределенных информационных систем. «СУБД» №3 1996г- 14с.

11. Ахтырченко К. В. Применение технологии CORBA при построении распределенных информационных систем. «СУБД» №2 — 1998г— 19с.

12. Аншина М. Увлекательное путешествие с CORBA 3: по широким просторам распределенных приложений. «СУБД» №6 1996г— 17с.

13. Э.Таненбаум. Современные операционные системы Питер, 2004, 2-е издание - 87 с.

14. В.Г. Олифер, Н.А. Олифер Сетевые операционные системы. Питер, 2005-402-414 с.

15. Уолл Л., Кристиансен Т, Орвант д, Программирование на Perl. Третье издание. Oreilly, 2007 стр. 262.25. http://ru.wikipedia.org/wiki/SOAP Электронный ресурс., 01.2011

16. Черный С.Г. Вестник СумДУ. Серия техничной науки. №1. 2010г. стр.91.

17. Паппас К., Мюррей У. «Visual С++. Руководство для профессионалов»: пер. с англ. Спб.: BHV - Санкт-Петербург, 1996. -912 е., ил.

18. R.Barker "CASE* Method Entity Relationship Modelling". - Oracle Inc., 1990-243 c.

19. Грабер Мартин. "Введение в SQL". Пер. с англ. М.: Издательство "ЛОРИ", 1996.-375 с.30. http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%BA%D1%83%D1 %80%D 1 %81 %D0%B8%D 1 %8F Электронный ресурс., 03.2011

20. Тонни Стаблибайн. "Регулярные выражения". Пер. с англ. Спб.: Питер, 2004г. 30с.

21. Джоэл Спольски. "Джоэл о программировании". Символ — Санкт-Петербург Москва - 119с.

22. Фленаган Д. "JavaScript", четвертое издание. Пер. с англ. СПб.-М.: Издательство "Символ-плюс", 2006. - 186 с.

23. Сэломон Д. "Сжатие данных, изображений и звука". Техносфера — Москва 2004г - 86с.

24. Ватолин Д., Ратушняк А., Смирнов М., Юкин В. Методы сжатия данных. Устройство архиваторов, сжатие изображений и видео. М.: ДИАЛОГ-МИФИ - 2002. - 60 с.36. http://citforum.ru/database/articles/compressingdata/ Электронный ресурс., 2004г.