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

Проблемы проектирования распределенных информационных систем с использованием языково-ориентированной парадигмы Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
502
92
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРОЕКТИРОВАНИЕ СИСТЕМ АВТОМАТИЗАЦИИ / ИНФОРМАЦИОННЫЕ СИСТЕМЫ / КАРКАСНАЯ МОДЕЛЬ БЕЗОПАСНОСТИ / ЯЗЫКИ ПРОГРАММИРОВАНИЯ / СРЕДСТВА РАЗРАБОТКИ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Кручинин Алексей Александрович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Кручинин Алексей Александрович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

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

УДК 519.681.2

А. А. Кручинин

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

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

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

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

Например, в 2010-2013 гг. ОАО «НПП "Рубин"» в рамках комплексного проекта с Министерством образования России совместно с ФГБОУ ВПО «Пензенский государственный университет» разработало технологию создания информационных систем персональных данных, в которой оператор обеспечивает надежную защиту интересов субъектов этих данных, но не ограничивает функциональность системы в части возможности использования их доверенным лицом субъекта и допускает мониторинг и сбор статистических данных в обезличенной части информационной системы. Разработаны типовые программно-аппаратные средства защиты для подобных систем в виде каркасных моделей безопасности.

Данная технология получила название «Система обеспечения удаленного доступа с использованием механизмов биометрической нейросетевой идентификации и аутентификации» [1] и прошла опытную эксплуатацию в ФГБОУ ВПО «Пензенский государственный университет», где на ее основе была развернута информационная рейтинговая система для студентов кафедры «Информационное обеспечение управления и производства».

В общем виде система представляет собой сервер централизованного хранения и обработки разнородных данных с обеспечением идентификации и аутентификации пользователей по биометрическим параметрам [2], на котором разворачиваются целевая информационная система, комплексы средств сопряжения для организации доверенного подключения терминалов к серверу биометрической идентификации и аутентификации [3], реализующих периметр безопасности, и разнотипные терминалы доступа [4, 5]. На этих технических средствах были установлены программные средства поддержки системы контроля доступа, состоящие из агента доступа на терминале [6], контроллера доступа на комплексе средств сопряжения [7] и собственно средств декомпозиции и обезличивания данных на сервере.

При проектировании комплекса в основном использовалась ЦМЬ нотация. Реализация отдельных компонентов выполнена с использованием следующих компьютерных языков: С - для средств взаимодействия с биометрическими датчиками, С++ - для сетевых служб и средств взаимодействия с СУБД в части доступа к защищаемым данным, РНР - для организации интерфейса с целевой информационной системой, ИТМЬ - для описания сервисных графических интерфейсов.

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

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

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

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

1. Вместе с языком Cobol, ориентированным на разработку коммерческих приложений, появилось понятие баз данных. Над созданием Cobol работал комитет, в котором были широко представлены ИТ-компании и заинтересованные ведомства США, всю работу курировал Американский национальный институт стандартов (ANSI). В 1967-1971 гг. в рамках Cobol появилось расширение для работы с базами данных, которым занималась специально сформированная группа (CODASYL). Сформулированные в рамках этого расширения языки управления и описания данных полностью соответствовали современным им базам данных, а заложенные в них возможности опережали и предопределяли развитие этой отрасли [10].

В 1971 г. выходит статья Эдгара Кодда, работавшего в IBM, с описанием математической модели реляционных баз данных. Прикладное описание этой модели приводится в 1975 г. Кристофером Дейтом, также из IBM, а в 1977 г. продается первый экземпляр ре-

ляционной СУБД IBM System R со встроенным языком запросов SQL [11]. Уже в начале 1980-х гг. все разработчики стремятся заявить о поддержке реляционного подхода и языка SQL.

К началу 1990-х гг. SQL по факту становится коммерческим международным стандартом для работы с базами данных. Рабочая группа CODASYL расформирована в начале 1980-х гг., а сам Cobol остается языком, используемым только в рамках американского экономического программного обеспечения.

2. В 1974 г. в Министерстве обороны США осознали, что теряется много времени, усилий и денег на разработку и сопровождение встроенных компьютерных систем. В это время в интересах ведомства использовалось около 450 различных языков программирования и их расширений. Это привело к тому, что в Министерстве обороны США начали исследования по созданию единого мощного языка программирования, который должен был бы использоваться всеми поставщиками встроенных компьютерных систем.

Разработка была начата в 1975 г. после того, как в Министерстве обороны США был сформирован, а затем разослан список требований к языку. Из 15 проектов в итоге выбрали язык Ada, разработанный под руководством француза Жана Ишбиа [12].

Единым стандартом для разработки встраиваемых программ язык Ada не стал, поэтому Министерство обороны США в начале 80-х гг. с целью обеспечения единообразного понимания подсистем различными проектными группами инициировало работы по созданию языка описания на основе синтаксиса языка Ada. В 1987 г. спецификация языка VHDL была принята в качестве стандарта ANSI/IEEE STD 1076-1987. Удобство и относительная универсальность конструкций этого языка достаточно быстро привели к созданию программ моделирования систем на основе их описания в терминах VHDL. С начала 90-х гг. разрабатываются прямые компиляторы VHDL-описаний в аппаратные реализации различных классов. Это наряду с необходимостью более адекватного представления в языке современных тенденций цифровой схемотехники привело к созданию расширенного стандарта ANSI/IEEE STD 1076-1993 - язык VHDL стал языком программирования [13].

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

3. «Группе была поставлена задача создать распределенную систему, которую можно было бы в качестве современной программной технологии продавать производителям бытовой электроники», - вспоминает Джеймс Гослинг [14]. Так, в 1991 г. появились язык Oak и проект Green. Этот язык начал свое существование как расширение языка С++ с заменой наиболее опасных семантических конструкций и применением в рамках проекта Green технологий байт-кодов и виртуальной машины для обеспечения переносимости приложений.

В течение трех лет данную технологию программирования пытались продать различным производителям бытовой техники (даже был разработан единый бытовой пульт управления - устройство *7). В 1993 г. после ряда аудиторских проверок проект собирались закрыть, но Патрик Нотон настоял на переориентации технологии на активно развивающиеся сети Internet. Маркетологи Sun сменили название технологии, и уже в сентябре 1994 г. с презентации Web-браузера с поддержкой Java началась эпоха динамических Internet-приложений [14].

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

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

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

- взаимосвязь с быстроразвивающимися технологиями - Java и Интернет, SQL и реляционные базы данных;

- наличие качественных средств разработки - Java и Eclips, VHDL и множество совместимых систем САПР;

- наглядность и возможность применения в области специализации без серьезных навыков программирования - схемотехники самостоятельно используют VHDL для простого программирования ПЛИС, большинство экономистов свободно могут составить простые запросы на SQL (особенно на Западе в 1990-х гг.).

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

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

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

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

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

- должна поддерживаться языково-ориентированная парадигма для обеспечения разделения разных категорий разработки: дизайн, СУБД, сетевой обмен и т.д. - для возможности параллельной и независимой работы разных категорий разработчиков;

- должны совмещаться функции средства проектирования и средства программирования - для уменьшения роли кодировщиков в проекте;

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

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

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

граммистами, но сейчас разработка программного обеспечения является исключительно

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

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

1. Пат. 118089 Российская Федерация, МПК G 07 C 11/00 (2006/01), G 06 К 9/00 (2006/01). Система обеспечения удаленного доступа с использованием механизмов биометрической нейросетевой идентификации и аутентификации / Безяев В. С., Сериков И. В., Сериков А. В., Кручинин А. А., Иванущак Н. Н., Чигирев М. А. ; заявитель и патентообладатель ОАО «НПП "Рубин"». - № 2012113444/08 ; заявл. 06.04.2012 ; опубл. 10.07.2012, Бюл. № 19.

2. Пат. 117243 Российская Федерация, МПК H 04 W 12/00 (2009.01), G 06 F 1/18 (2006.01), G 06 F 1/32 (2006/01). Сервер централизованного хранения и обработки разнородных данных с обеспечением идентификации и аутентификации пользователей по биометрическим параметрам / Сериков И. В., Сериков А. В., Кручинин А. А., Иванущак Н. Н., Акимов М. В. и др. ; заявитель и патентообладатель ОАО «НПП "Рубин"». - № 2012109033/08 ; заявл. 11.03.2012 ; опубл. 20.06.2012, Бюл. № 17.

3. Пат. 116673 Российская Федерация, МПК G 08 C 17/02 (2006/01). Комплекс средств сопряжения для организации доверенного подключения терминалов к серверу биометрической идентификации и аутентификации / Сериков И. В., Сериков А. В., Кручинин А. А., Иванущак Н. Н., Акимов М. В. и др. ; заявитель и патентообладатель ОАО «НПП "Рубин"». - № 2012109032/08 ; заявл. 11.03.2012 ; опубл. 27.05.2012, Бюл. № 15.

4. Пат. 114540 Российская Федерация, МПК G 06 К 9/20 (2006/01), G 08 С 17/02 (2006/01). Терминал доступа к серверу биометрической системы на основе анализа паппиллярного рисунка пальца / Сериков И. В., Сериков А. В., Кручинин А. А., Иванущак Н. Н., Акимов М. В. и др. ; заявитель и патентообладатель ОАО «НПП "Рубин"». - № 2011144277/08 ; заявл. 01.11.2011 ; опубл. 27.03.2012, Бюл. № 9.

5. Пат. 113605 Российская Федерация, МПК G 08 C 17/00 (2006/01). Терминал доступа к серверу биометрической системы на основе анализа рукописного почерка / Сериков И. В., Сериков А. В., Кручинин А. А., Иванущак Н. Н., Белохвостиков Д. С. и др. ; заявитель и патентообладатель ОАО «НПП "Рубин"». - № 2011144040/08 ; заявл. 31.10.2011 ; опубл. 20.02.2012, Бюл. № 5.

6. Свидетельство о государственной регистрации программы для ЭВМ 2012614782 Российская Федерация. Программное средство поддержки системы контроля доступа. Служба биометрической аутентификации на основе анализа папиллярного рисунка пальца (РДПИ.01313-01) / Сериков А. В., Кручинин А. А., Дугин А. О., Хлебунов И. В. (РФ). - №2012614017 ; заявл. 16.04.2012 ; зарег. в Реестре программ для ЭВМ 29.05.2012.

7. Свидетельство о государственной регистрации программы для ЭВМ 2013613656 Российская Федерация. Сетевое программное обеспечение для организации защищенного обмена данными (РДПИ 01328-01) / Кручинин А. А., Дугин А. О., Хлебунов И. В., Нелюбов А. В. (РФ). -№ 2013611126 ; заявл. 18.02.2013 ; зарег. в Реестре программ для ЭВМ 11.04.2013.

8. Машин, Т. С. Web-сервисы Java / Т. С. Машин. - СПб. : БХВ-Петербург, 2012. - 560 с.

9. Брукс, Ф. П. Проектирование процесса проектирования: записки компьютерного эксперта = The Design of Design: Essays from a Computer Scientist / Ф. П. Брукс. - М. : Вильямс, 2012. -464 с.

10. Олле, Т. В. Предложения КОДАСИЛ по управлению базами данных / Т. В. Олле ; пер. с англ. В. И. Филиппова, С. М. Кругловой. - М. : Статистика и финансы, 1981. - 286 с.

11. Дейт, К. Введение в системы баз данных : пер. с англ. / К. Дейт. - 6-е изд. - Киев ; М. ; СПб. : Вильямс, 2000. - 848 с.

12. Гавва, А. Е. Адское программирование. Ada-95. Компилятор GNAT [Электронный ресурс] / А. Е. Гавва // Ada_Ru. 2004. - URL: http://www.ada-ru.org/

13. Бибило, П. Н. Основы языка VHDL : учеб. пособие / П. Н. Бибило. - Изд. 5-е. - М. : ЛИБРОКОМ, 2012. - 328 с.

14. Вебер, Д. Технология Java в подлиннике : пер. с англ. / Д. Вебер. - СПб. : БХВ-Петербург, 2000. - 1104 с.

15. Степин, В. С. Цивилизация и культура / В. С. Степин. - СПб. : СпбГУП, 2011. - 409 с.

Кручинин Алексей Александрович

аспирант,

Пензенский государственный университет

Krychinin Aleksei Aleksandrovich

postgraduate student,

Penza State University

E-mail: tedios_hedgehog@mail.ru

УДК 519.б81.2 Кручинин, А. А.

Проблемы проектирования распределенных информационных систем с использованием языковоориентированной парадигмы / А. А. Кручинин // Вестник Пензенского государственного университета. -2014. - № 2 (б). - C. 99-104.

i Надоели баннеры? Вы всегда можете отключить рекламу.