Взаимодействие программ в информационных системах

Сказанное выше относилось к технологиям разработки отдельных программ. Но в настоящее время программы, как правило, должны являться частью некоторой инфор­мационной системы (ИС),т.е. функционировать не сами по себе, а во взаимодействие с большим количеством дру­гих программ. Также программы должны уметь «исполь­зовать» другие программы и системы, разработанные сто­ронними организациями. Например, ваша программа мо­жет подготовить некоторый отчетный документ в формате Microsoft Word, и этот документ будет доступен на всех компьютерах, на которых установлен Word (но на кото­рых может не быть вашей программы). Аналогично, мож­но из прикладной программы создать итоговые чертежи в формате распространенных графических систем (напри­мер, в формате AutoCAD или Corel Draw). В этом случае один из основных вопросов — организация взаимного об­щения программ друг с другом и с источником данных. В качестве последнего в ИС выступают базы данных (БД), вместе с системой управления базами данных (СУБД). Программы, работающие в составе ИС, получают инфор­мацию из БД, к которым имеют доступ и другие програм­мы. В этом случае естественным образом создается воз­можность взаимосвязи приложений через данные. Например, одна программа записывает результаты своей рабо­ты, а другая использует их как начальные данные для своей работы. Этот простейший уровень взаимосвязи тре­бует одного — унификацию данных и форматов их хране­ния. Для целей унифицированного доступа к данным ис­пользуются специальные языки, например SQL (Structured Query Language — язык структурированных запросов).

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

Однако часто требуется обмен информацией между про­граммами, выполняющимися одновременно (параллельно). Желательно, чтобы этот обмен не зависел от языка про­граммирования, на котором написаны разные программы, а в сетевых системах не зависел и от операционных сис­тем, установленных на разных компьютерах. Яркий при­мер подобной организации взаимосвязи — Интернет, в гло­бальную сеть соединены компьютеры с различными опе­рационными системами (Windows, Unix, Solaris, сотовые телефоны и др.).

Простейшими средствами параллельного общения вна­чале были файлы совместного доступа, или разделяемые файлы (файлы, к которым могут иметь одновременный доступ несколько программ), которые появились еще на заре Windows. Также ранним средством является буфер обмена ClipBoard, доступный практически всем приложе­ниям Windows, в котором можно временно хранить для передачи другим программам информацию различного фор­мата — текстовую, графическую и т.п. Несколько позже для межпрограммного взаимодействия использовалась тех­нология DDE — динамический обмен данными. Сегодня актуальность DDE ниже из-за появления новых техноло­гий, а использование БД, буфера обмена и разделяемых файлов как простейшего варианта межпрограммного вза­имодействия остается актуальным.

Позднее появилась технология связывания и внедрения объектов OLE1 (Object Linking and Embedding). Благода­ря OLE1 появилась возможность создавать составные до­кументы (например, в документ Word вставлять таблицу Exel, при ее редактировании из Word используются воз­можности Exel). На смену ей пришла технология OLE2, позволяющая различным программам предоставлять друг другу свои функции (сервис). Программа, предоставляю­щая свои функции, называется сервером, а программа, их использующая — клиентом. В этой технологии одна про­грамма может не просто вызвать другую, но использовать ее отдельные функции.

Следующим шагом на пути совершенствования межпро­граммного обмена явилась технология компонентной мо­дели объектов (СОМ — Component Object Model). Эта тех­нология заключается в стандартизированном описании служб программы, к которым она дает доступ другим про­граммам. В технологии СОМ неважно, на каких языках написаны программы и где они выполняются: в одном по­токе, в разных потоках, на разных компьютерах. Расши­рение этих возможностей дает технология DCOM — рас­пределенная модификация СОМ. Отметим, что СОМ под­разумевает взаимосвязь на уровне специальных объектов, структура которых во многом схожа с рассмотренными ранее объектами внутри одной программы.

Необходимо сказать о еще одной стремительно развива­ющейся технологии — Интернет. В Интернете располага­ются и базы данных, и серверы, с которыми общаются приложения пользователя.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: