Субъекноориентированное проектирование корпоративной информационной системы вуза

обладающих меньшей сложностью, чем сама система, и задания правил их взаимодействия.

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

Создание ПЭР сводится к запуску эволюционного процесса развития автоматов, например с помощью генетического алгоритма. Для этого необходимо решить как, минимум 4 проблемы:

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

2) разработать алгоритм воспроизводства автоматом;

3) ввести практически значимое понятие эквивалентности автоматов;

4) для реализации операторов скрещивания и мутации создать алгоритмы классификации и выявления эквивалентных автоматов.

ПУ:

экспертная система

нейронная сеть

ОУ:

ФБ:

классификатор

ПЭР:

генетический алгоритм

Рис. 5

УДК 681.3

субъекно-ориентированное проектирование корпоративной информационной системы вуза

А. А. МАСЛЕННИКОВ, О. Е. ЯЧМЕНЕВА Пензенский государственный педагогический университет имени В. Г. Белинского кафедра прикладной математики и информатики

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

Корпоративная информационная система пред- зовать решения на базе «тонкого» клиента. Сосредото-

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

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

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

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

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

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

ИЗВЕСТИЯ ПГПУ • Физико-математические и технические науки « № 8 (12) 2008 г.

веры приложений JEE предоставляют окружение для компонентов корпоративного приложения [1].

Платформа .NET ориентирована в основном на создание web-приложений и настольных однопользовательских систем [2]. Данная платформа не предлагает разработчику готового каркаса для создания корпоративных информационных систем, поддерживающей трехуровневую архитектуру и решения на базе «толстого» клиента.

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

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

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

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

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

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

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

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

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

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

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

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

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

В основе применяемой технологии организации корпоративной информационной системы вуза лежит идея субъектно-ориентированного программирования (subject-oriented programming), предложенная разработчиками IBM [3]. Методика субъектно-ориентированного программирования представляет собой расширение объектно-ориентированной парадигмы, направленное на отражение различных индивидуальных проекций, связанных с моделируемыми объектами. данная методика, помимо прочего, может быть использована для решения проблемы интеграции систем, разработанных сравнительно независимо друг от друга.

ключевым понятием субъектно-ориентирован-ного программирования является понятие субъекта. Под субъектом понимается индивидуальная проекция

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

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

Проблему можно решить несколькими путями.

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

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

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

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

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

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

список литературы

1. Sun Microsystems. Россия и СНГ. Java 2 Enterprise Edition. http:// ru.sun.com/java/j2ee /index.html.

2. Microsoft Россия. Visual Studio .NET. http://msdn. microsoft.com/library/rus/.

3. Subject-oriented programming. http://www.research.ibm. com/sop/.

УДК 004.383.5:519.612

решение систем линейных алгебраических уравнений на графических процессорах с использованием технологии cuda

н. о. МАТВЕЕВА, В. И. ГОРБАЧЕНКО Пензенский государственный педагогический университет имени В. Г. Белинского кафедра вычислительных систем и моделирования

Рассматривается технология программирования графических процессоров CUDA (Compute Unified Device Architecture) фирмы NVIDIA. Предлагаются алгоритмы распараллеливания решения больших систем линейных алгебраических уравнений методом бисопряженных градиентов с использованием технологии CUDA. Эксперименты показали, что для систем большого порядка время решения с использованием CUDA сокращается более чем на порядок по сравнению с решением только на центральном процессоре.

ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ НА ГРАФИЧЕСКИХ ПРОЦЕССОРАХ Уже в течение нескольких лет графические процессоры (GPU) используются для неграфических вычислений. Это связано с тем, что видеокарты состоят из множества мультипроцессоров, которые управляют высокоскоростной памятью, что делает их использование эффективным как для графических, так и для не графических вычислений.

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