Норенков И.П. - Автоматизированное производство (1054022), страница 54
Текст из файла (страница 54)
В CASE-системе фирмы IBM,включающей части VisualAge (для клиентских приложений) и VisualGen (для серверных приложений), базовым языком выбран SmallTalk. В среде разработки приложений клиент-сервер SQLWindowsоригинальные фрагменты программ пишутся на специальном языке SAL. Нужно заметить, что для реализации вычислительных процедур и, в частности, для написания миниспецификаций используетсяобычная для 3GL технология программирования.Обычно после написания ПП на базовом языке компилятор системы переводит программу напромежуточный "-код. Вместе с интерпретатором "-кода эта программа рассматривается, как ЕХЕфайл. В некоторых развитых средах компилируется обычный ЕХЕ-файл, не требующий интерпретации для своего исполнения.Помимо упрощения написания пользовательского интерфейса, в средах RAD предусматриваются средства для реализации и ряда других функций.
Так, в наиболее развитой версии Visual Basic кним относятся средства выполнения следующих функций:— поддержка ODBC, что дает возможность работы с различными СУБД;— разработка баз данных;— разработка трехзвенных систем распределенных вычислений;.— интерактивная отладка процедур на SQL Server;— управление версиями при групповой разработке ПО;— моделирование и анализ сценариев распределенных вычислений.Для создания сред RAD в случае +$&$(#8# 0"#8")//'"#()*'9 требуется решить ряд дополнительных проблем, обусловливаемых многоплатформенностью в гетерогенных сетях, обилием применяемых форматов данных, необходимостью защиты информации и т.п. Решение этих проблем достигнуто в объектно-ориентированных технологиях на базе языка сетевого программирования Java. Кроме того, с помощью Java удается решить еще одну актуальную для Internet и Intranet задачу — сделатьWeb-страницы интерактивными.Платформенная инвариантность в Java достигается, благодаря введению виртуальной метамашины с системой команд, максимально приближенной к особенностям большинства машинных языков.Любой Web-сервер при наличии запроса на Java-программу со стороны клиента транслирует (компилирует) эту программу на язык метамашины.
Скомпилированный модуль, называемый байт-кодом, пересылается клиенту. Клиент должен выполнить интерпретацию байт-кода. Соответствующие интерпретаторы в настоящее время имеются в браузерах всех основных разработчиков Web-технологий.Java используется двояким образом. Во-первых, как средство “оживления” Web-страниц. В этомслучае программный Java-компонент называют )04$/, аплет встраивается в страницу с помощьюспециального тега, имеющегося в языке HTML. Во-вторых, Java — универсальный язык программирования и может быть использован для написания любых приложений, не обязательно привязанныхк Web-технологии.Хотя и ранее были известны технологии на базе промежуточных "-кодов, именно технологияJava, оказалась наилучшим образом приспособленной для использования в гетерогенной сетевой среде. Она последовательно отражает принципы объектно-ориентированного программирования и обеспечивает приемлемую эффективность (производительность) исполнения программ.
Эту эффективность можно еще более повысить, если в браузерах заменить интерпретацию на компиляцию.Для разработки ПО на языке Java создан ряд инструментальных средств. Основной средой явля&.+.)$(*),$" . !"#$%!#&'&($"!))$*+($*,#&($"!)&*1435@!"! 5:&:#*%)K*:(*AK & +($5(!%%)$-%*#$A&F*:,&* ,$%+@*,:K:!+(ется JDK (Java Developer’s Kit). В ней имеются: 1) библиотеки классов, в том числе библиотеки основных элементов языка, часто используемых оболочек (wrapper), процедур ввода-вывода, компонентов оконного интерфейса и др.
2) инструментальные средства такие, как компилятор байт-кодов, интерпретатор, просмотрщик аплетов, отладчик, формирователь оконных форм и т.п. Развитую RADсреду — PowerJ — предлагает фирма Sybase.Значительное внимание уделяется разработке инструментальных сред для создания Web-узлов, примером такойсреды может служить HAHTSite фирмы HAHTSoftware. Для разработки Java-программ из готовых компонентов можноиспользовать среду IBM Visual Age for Java, в которой имеются (как и в среде VB) версии учебная, профессиональная иобщецелевая (Enterprise), и др.Наряду с самостоятельными RAD-системами имеются и RAD-системы в составе САПР. Это прежде всего упомянутая выше система CAS.CADE фирмы Matra Datavision.'4/340.0-04-48+.0-+849:001. -.604D4@++. Появление компонентно-ориентированных технологий вызвано необходимостью повышения эффективности разработки сложных программных систем, являющихся в условиях использования корпоративных и глобальных вычислительных сетейраспределенными системами.
Компонентно-ориентированные технологии основаны на использовании предварительно разработанных готовых программных компонентов.Компиляция программ из готовых компонентов — идея не новая. Уже первые шаги в области автоматизации программирования были связаны с созданием библиотек подпрограмм. Конечно, для объединения этих подпрограмм в конкретные прикладные программы требовалась ручная разработка значительной части программного кода на языках третьего поколения.
Упрощение и ускорение разработки прикладного ПО достигается с помощью языков четвертого поколения (4GL), но имеющиеся системы на их основе являются специализированными и не претендуют на взаимодействие друг с другом.Современные системы интеграции ПО построены на базе объектной методологии.Так, выше приведены примеры библиотек классов, применяя которые прикладные программисты могут создавать субклассы в соответствии с возможностями наследования, заложенными в используемые объектно-ориентированные языки программирования.
При этом интероперабельность компонентов в сетевых технологиях достигается с помощью механизмов, подобных удаленному вызовупроцедур RPC. К библиотекам классов относятся MFC, библиотеки для доступа к реляционным БД(например, для встраивания в прикладную программу драйверов ODBC) и др.Преимущества использования готовых компонентов обусловлены тщательной отработкой многократно используемых компонентов, их соответствием стандартам, использованием лучших из известных методов и алгоритмов.В то же время в компонентах библиотек классов спецификации интерфейсов не отделены от собственно кода, следовательно, использование библиотек классов не профессиональными программистами проблематично. Именно стремление устранить этот недостаток привело к появлению CBD —компонентно-ориентированных технологий разработки ПО.
Составными частями таких технологийявляются унифицированные способы интеграции программного обеспечения.Возможны два способа включения компонентов (модулей) в прикладную программу — модернизация (reenginering) или инкапсуляция (encapsulation или wrapping).L#-$"*'6)='9 требует знания содержимого компонента, интероперабельность достигается внесением изменений собственно в сам модуль.
Такой способ можно назвать способом “белого ящика”.Очевидно, что модернизация не может выполняться полностью автоматически, требуется участиепрофессионального программиста.D*%)0+749='9 выполняется включением модуля в среду с помощью интерфейса — его внешнего окружения (оболочки — wrapper). При этом компонент рассматривается как “черный ящик”: спецификации, определяющие интерфейс, выделены из модуля, а детали внутреннего содержимого скрыты от пользователя.
Обычно компоненты поставляются в готовом для использования виде скомпилированного двоичного кода. Обращения к модулю возможны только через его интерфейс. В спецификации интерфейса включаются необходимые для интероперабельности сведения о характеристикахмодуля — /#-745*)9 )2+&")%='9. В состав этих сведений могут входить описания всех входных и выходных для модуля данных (в том числе имеющихся в модуле интерактивных команд), структура командной строки для инициализации процедур, сведения о требуемых ресурсах.&.+.)$(*),$" . !"#$%!#&'&($"!))$*+($*,#&($"!)&*1445@!"! 5:&:#*%)K*:(*AK & +($5(!%%)$-%*#$A&F*:,&* ,$%+@*,:K:!+(Компонентно-ориентированные системы построены на основе инкапсуляции компонентов.
Вархитектуре этих систем можно выделить следующие части: 1) прикладная программа (клиент), создаваемая для удовлетворения возникшей текущей потребности; 2) посредник (брокер или менеджер),служащий для установления связи между взаимодействующими компонентами и для согласования ихинтерфейсных данных; 3) множество компонентов, состоящих каждый из программного модуля, реализующего некоторую полезную функцию, и оболочки (интерфейса). В спецификации интерфейсамогут быть указаны характеристики модуля, реализуемые методы и связанные с модулем события (например, реакции на нажатие клавиш).Собственно интерфейс представляет собой обращения к функциям модуля, называемым в СВDтехнологиях методами.
Эти обращения переводятся в двоичный код, что обеспечивает при их использовании независимость от языка программирования. Один и тот же модуль может реализовывать несколько разных функций, поэтому у него может быть несколько интерфейсов или методов. Каждыйновый создаваемый интерфейс обеспечивает доступ к новой функции и не отменяет прежние возможно еще используемые интерфейсы.Схематично взаимодействие компонентов можно представить следующим образом. Клиент обращается с запросом на выполнение некоторой процедуры. Запрос направляется к посреднику. В посреднике имеется предварительно сформированный каталог (реестр или репозиторий) интерфейсовпроцедур с указанием компонентов-исполнителей.