Научная статья на тему 'Компонентное программирование'

Компонентное программирование Текст научной статьи по специальности «Компьютерные и информационные науки»

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

Текст научной работы на тему «Компонентное программирование»

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

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

ЛИТЕРАТУРА

1. Горбунов-ПосадовММ. Расширяемые программы. - М.: Полиптех, 1999.

2. Кастаньетто Дж., Рават Х., Шуман С., Сколло К., Велиаф Д. Профессиональное РНР программирование.- Пер.с англ. - СПб: Символ-Плюс, 2001.

Е.Н. Коробко, А.Н. Литвиненко КОМПОНЕНТНОЕ ПРОГРАММИРОВАНИЕ

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

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

Компонентное программирование - это концепция программирования, в основу которой положено объектное программирование, совместное использование модулей бинарного стандарта и минимизация межмодульных связей [1,2].

Цель компонентного программирования - отказ от реализации новых примитивов в пользу уже существующих программных элементов. Эта цель не достигается, главным образом, из-за того, что задача объединения независимо разработанных компонент в единое целое часто оказывается сложнее, чем самостоятельная разработка нужных модулей. Причина такой ситуации в том, что прямой перенос методов объектно-ориентированного программирования для создания повторно используемых компонент невозможен. Главная причина заключается в том, что компонент должен быть контекстно-независимым. Объектноориентированная декомпозиция очень часто приводит к контекстной зависимости объектов [3,4].

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

Стандартизация интерфейса контекста представляется единственно возможным решением создания контекстно-независимых объектов. Стандарт, применяемый для использования АС:^еХ, для этой роли не подходит, т.к. он очень

сложен и спроектирован исключительно для элементов управления без вложенности (это ярко выраженная двухуровневая клиент-серверная система).

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

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

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

Отказавшись от каркасов, мы сталкиваемся с проблемой организации совместной работы компонент. В качестве «склеивающей» материи предлагается использовать скриптовые языки (VBScript, JavaScript) [5].

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

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

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

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

ЛИТЕРАТУРА

1. Pfister C., Szyberski C. Why objects are not enough?, Queensland University of Technology, Australia, 1998

2. Holzle U. Integrating independently-developed components in object-oriented languages, Stanford University, 1999

3. Grossman M. Component testing, Microsoft Corporation, 1998

4. Cjupce O., Shcmidt R. Components as context-independent units of software, 1998

5. Alencar P.S.D., Cowan D.D., Lucena C.J.P., Nova L.C.M. A model for gluing components, University of Waterloo, Canada, 1999

Д.А. Давыдов, А.В. Кизим, А.Ю. Ошурков РАЗВИТИЕ ГОРОДСКОЙ ИНФОРМАЦИОННОЙ ИНФРАСТРУКТУРЫ

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

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

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

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

В качестве платформы МИС предлагается использовать компьютеры на базе процессоров Intel с операционной системой Microsoft Windows в оптимальной (на соответсвующий момент) аппаратной конфигурации. В качестве аппаратной платформы СУБД возможно использование бизнес - серверов Hewlett - Packard, AS/400, RS/6000 и т.п., на базе различных модификаций операционной системы Windows NT, UNIX и других.

Рабочие станции, используемые в качестве клиентов МГИС, предполагаются на базе процессоров Intel с операционной системой Microsoft Windows.

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

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