Методы построения распределённых систем автоматизированного проектирования

В.Н. Гридин,
 дир., д.т.н.,проф.,
info@ditc.ras.ru,
ЦИТП РАН , Одинцово
В.И.Анисимов,
проф., д.т.н.,проф.,
vianisimov@inbox.ru
СПбГЭТУ, г. Санкт-Петербург

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

 

Urgent problem in the field of information technology is the decentralization of the architecture of CAD by moving to distributed systems design, built on top of Internet technology, the goal of communication and information exchange between applications. Such independently managed applications are self-contained and can interact with each other in the process of implementing a common task. The most effective method of combining subsystems in a distributed application should be considered organization of the remote procedure call based on service -oriented architecture using web services.

The main burden of the implementation of computational operations in this architecture lies on web services that solve all the problems of modeling systems designed for client applications are assigned only the simplest functions of data preparation and display simulation results.

 

К числу основных задач в области информационных технологий относится внедрение в системы автоматизированного проектирования веб-технологий, что позволяет реализовать построение систем с сервисно-ориентированной архитектурой, при которой информационные ресурсы доставляются потребителям посредством сетевых сервисов. При этом в отличие от традиционных САПР, распределенная система автоматизированного проектирования может состоять из отдельных модулей, функционирующих независимо и взаимодействующих друг с другом посредством одного из SOA-ориентированных протоколов по схеме «запрос – ответ».

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

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

Использование веб-технологий при разработке программного обеспечения систем автоматизированного проектирования позволяет:

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

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

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

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

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

·      Адаптировать существующие приложения к меняющимся условиям проектирования и потребностям заказчика.

Сервис-ориентированная архитектура (SOA) основана на модульном подходе к построению программного обеспечения со стандартными интерфейсами. SOA и использует принципы унификации типовых  процессов, неоднократного использования элементов, и организацию на базе выбранной платформы. Компоненты программного обеспечения можно распределять по различным узлам, и они предлагаются для применения как слабо связанные, независимые приложения. Хотя архитектура SOA не привязывается к какой-либо одной технологии удаленного вызова методов (COM, DCOM, COM+, .NET REMUTING, Java RMI, CORBA и др.), программные комплексы, построенные согласно  SOA, как правило, реализуются как некоторая совокупность веб-сервисов, которые интегрированы согласно с известными стандартными протоколами (WSDL, SOAP). Веб-сервис описывает некоторый набор методов, каждый из которых может быть вызван  в сети через стандартизированные XML-сообщения. На основании таких сообщений можно описать требуемые данные способом, не зависящим от платформы, и реализовать обмен информацией между приложениями, что обеспечивает слабосвязанность приложений.

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

Системы на основе сервис-ориентированной архитектуры относятся к классу мультиагентных систем (МАС), которые  образованы несколькими взаимодействующими интеллектуальными агентами, обеспечивающими автономность, ограниченность представления и децентрализацию отдельных подсистем распределенной информационно-вычислительной системы.

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

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

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

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

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

Возможная архитектура распределенной сервис-ориентированной системы автоматизированного проектирования на основе технологии веб-сервисов приведена на рис. 1

 

рис.1.  Архитектура  сервис-ориентированной системы автоматизированного проектирования

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

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

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

При построении веб-сервисов применяется ряд спецификаций, основанных на открытых стандартах, при этом  стек протоколов выполняется в следующей последовательности:поиск веб-сервиса при помощи протокола UDD, описание веб-сервиса на основе WSDL, вызов веб-сервиса через протокол SOAP, кодирование данных (XML),транспортировка (HTTP).

Основным стандартом технологии веб-сервисов является протокол WSDL. Этот протокол используется для создания описания интерфейса веб-сервиса при этом WSDL-документ описывает информационные блоки сервиса и имеет информацию об интерфейсе и методах, доступных для общего пользования, дает описание типов данных, использующихся при передаче в запросах и ответах по соответствующему протоколу, а также информацию о транспортном протоколе, который используется для работы с сервисом и адресную информацию о расположении описываемого сервиса. Следует заметить, что стандарт документа WSDL является  независящим от какого-либо определенного протокола обмена XML-данными, но содержит встроенные средства поддержки SOAP.

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

Транспортный протокол HTTP применяется для осуществления обмена информацией с веб-сервисом через SOAP-сообщения. Возможно также в качестве транспортного протокола использование стандарта SMTP.

Протокол UDDI используется для создания бизнес-журналов, фиксирующих имена компаний, предоставляющих веб-сервис и соответствующие URL-адреса их WSDL-контрактов. В качестве альтернативы можно использовать стандарт DISCO, который применяется для создания документов поиска, содержащих ссылки на множество конечных пунктов веб-сервисов.

Необходимость в использовании протокола UDDI (или DISCO) возникает только тогда, когда необходимо осуществлять поиск требуемого для решения задач проектирования веб-сервиса. Если же URL-адрес веб-сервиса уже известен, то его можно просто жестко закодировать или поместить в файл конфигурации, а потом вызвать сервис и осуществить обмен информацией, применяя стандартный формат обмена сообщениями.

Вызов метода веб-службы осуществляется из клиентского приложения через прокси-класс, объект которого реализует требуемую заглушку (stub). Прокси-класс осуществляет преобразование передаваемых методу аргументов в SOAP-сообщение и направляет это сообщение веб-сервису. После выполнения сервисом вызываемого метода, прокси-класс получает соответствующий SOAP-ответ и преобразует его в соответствующие типы данных, что позволяет клиентскому приложению отобразить результаты выполнения метода веб-сервиса.

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

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

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

Метод  индексно-адресных матриц. Метод основан на том, что вводится некоторая целочисленная матрица, которая в точности повторяет структуру исходной матрицы W, входящую в уравнение системы моделирования. В качестве элементов индексно-адресная матрица содержит порядковый номер a ненулевых элементов матрицы W, которые перечисляются в некотором массиве WZ. При этом если порядковый номер ненулевого элемента исходной матрицы равен a, то в индексно-адресную матрицу вводится значение A(i,j)=a.

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

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

WZ – для значений ненулевых элементов  исходной матрицы.

WI   для номеров строк ненулевых элементов.

WJ   для номеров столбцов ненулевых элементов.

NR – для хранения относительного адреса a следующего ненулевого элемента строки (a – порядковый номер элемента в массиве WZ)

NC – для хранения относительного адреса a следующего ненулевого элемента столбца.

ER – для относительного адреса a  входа в очередную строку.   

EC   для относительного адреса a  входа в очередной столбец.

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

Если учесть, что массивы WZ, WI, WJ, NR, NC имеют длину m, определяемую числом ненулевых элементов, а

Сокращенный метод Кнута позволяет уменьшить число используемых массивов путем исключения из полного описания массивов, которые реализуют сканирование по столбцам. При этом  для компактного описания исходной матрицы необходимо ввести только массивы WZ, WJ, NR, ER. Аналогично можно составить вариант сокращенной схемы  Кнута, позволяющий осуществить сканирование только по столбцам. При этом для компактного описания  необходимо использовать только массивы WZ, EC, NC, WI.

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

 Методы фиксированного формата.  К методам фиксированного формата относятся метод строчного формата и метод строчно-столбцового формата.

Для использования метода строчного фиксированного формата  требуются следующие массивы:

WZ   для хранения значения ненулевых элементов  исходной матрицы.

WJ – для хранения индексов столбцов ненулевых элементов исходной матрицы W.

ER – массив, содержащий указатели точек входа в очередную строку.

Длина массивов WZ, WJ составит m элементов, а длина массива ER составит n +1 элементов, при этом  в n +1 заносится значение m +1.

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

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

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

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

 WD  для хранения диагональных элементов.

 WL – для хранения ненулевых элементов, расположенных ниже диагонали (поддиагональных элементов)

 WU – для хранения ненулевых элементов, расположенных выше диагонали (наддиагональных элементов).        

В соответствие с методом при формировании массива WU наддиагональные элементы записываются по строкам, а при формировании массива WL поддиагональные элементы записываются по столбцам. Согласно принятому порядку формирования массивов  WU, WL, относительный адрес некоторого элемента , расположенного в массиве WU, совпадает с относительном адресом элемента , расположенном в массиве WL. Отмеченное свойство существенно упрощает процесс программирования  для организации сканирования элемента.

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

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

На основании сравнительной оценки методов следует, что наибольший интерес для практической реализации высокопроизводительного программного обеспечения распределенных систем автоматизации схемотехнического проектирования представляют метод индексно-адресных матриц и метод строчно-столбцового фиксированного формата. Первый метод, хотя и имеет сравнительно низкую эффективность, но характеризуется чрезвычайно простой технологией реализации программного обеспечения, для построения которого достаточно выполнить формирование индексно-адресной матрицы A и одномерного массива  параметров моделируемой схемы WZ. Массив WZ целесообразно создавать как объект класса коллекций ArrayList, что позволяет использовать для формирования и обработки этого массива методы класса коллекций.  Обработка данных компактного массива WZ осуществляется на основании результатов простого сканирования индексно-адресной матрицы A, при этом относительный адрес элемента  wij в массиве WZ определяется значением элемента A(i,j). Использование этого метода особенно целесообразно в случаях, когда имеется программное обеспечение системы моделирования на основе полного описания разреженных матриц, так как его переработка к форме с компактной обработкой данных требует минимальных затрат трудовых ресурсов.

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

При реализации двухэтапной процедуры на первом, символьном  этапе решается задача определения размеров всех используемых массивов, при этом не ставится задача численного формирования этих массивов. Поскольку задача формирования численных массивов на символьном этапе не ставится, то выполнение этого этапа  может быть осуществлено путем заполнения всех массивов произвольными численными константами, которые должны отобразить наличие или отсутствие соответствующих элементов матрицы некоторой информацией. Иначе говоря, на первом этапе работа над численной матрицей может быть заменена обработкой некоторой индексной матрицы C,  элементы которые имеют только два произвольных значения, (например, 0  и 1). При этом, если в исходной матрицы некоторый элемент 0, то для введенной индексной матрице  C, соответствующий элемент , а все остальные элементы равны 0. Таким образом, вместо рассмотрения исходной схемы, будет рассматриваться некоторый “портрет” этой схемы, в  точности отображающий ее структуру, но не содержащий информации о численных значениях параметров. Проведение процедуры LU-факторизации над индексной матрицей C позволяет выявить все появляющиеся при LU-факторизации новые ненулевые элементы и установить тем самым фактический формат всех массивов. Все параметры этого формата на заключительном шаге символьного этапа заносятся в координатные массивы WJI и ECR, что позволяет после выполнения символьного этапа удалить индексную матрицу  C.

Формирование численных массивов WD, WU, WL осуществляется на втором этапе, при выполнении которого используются определенные на первом этапе форматы массивов, учитывающие зарезервированные места для всех новых ненулевых элементов. Для формирования компактных численных массивов, а также для решения систем уравнений на основе LU-факторизации, используются виртуальные алгоритмы формирования и обработки компактных массивов, не требующие  построения полного математического описания задачи.

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

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

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