Файл: СИСТЕМЫ ПРОГРАММИРОВАНИЯ (Структура современной системы программирования).pdf
Добавлен: 21.05.2023
Просмотров: 1484
Скачиваний: 10
СОДЕРЖАНИЕ
ГЛАВА 1. Структура современной системы программирования
1.7. Архитектура «клиент-сервер»
1.8. Трехуровневая архитектура. Серверы приложений
ГЛАВА 2. ОБЗОР СОВРЕМЕННЫХ СИСТЕМ ПРОГРАММИРОВАНИЯ
2.1. Системы программирования компании Borland/lnprise
2.2. Системы программирования фирмы Microsoft
2.4. Системы программирования под ОС Linux и UNIX
2.5. Система программирования для сети Интернет
2.5.1. Язык HTML. Программирование статических Web-страниц
2.5.2. Язык HTML. Программирование динамических Web-страниц
2.5.3. Языки Java и Java Script. Программирование динамических Web-страниц
Лексический анализ «на лету» – мощная функция, значительно облегчают труд, связанный с подготовкой исходного текста. Она входит не только в состав многих систем программирования, но также и в состав многих текстовых редакторов, поставляемых отдельно от систем программирования
Другой удобной сервисной функцией в современных системах программирования является система подсказок и справок. Как правило, она содержит три основные части:
- справку по семантике и синтаксису используемого входного языка;
- подсказку по работе с самой системой программирования;
- справку о функциях библиотек, входящих в состав системы программирования.
Система подсказок и справок в настоящее время является составной частью многих прикладных и системных программ. Как правило, она поддерживается соответствующими утилитами ОС. Поэтому, кроме всего прочего, многие системы программирования включают в свой состав сервисные функции, позволяющие создавать и дополнять систему подсказок и справок.
1.7. Архитектура «клиент-сервер»
Распространение динамически подключаемых библиотек и ресурсов прикладных программ привело к ситуации, когда большинство прикладных программ стало представлять собой не единый программный модуль, а набор сложным образом взаимосвязанных между собой компонентов. Многие из этих компонентов либо входили в состав ОС, либо же требовалась их поставка и установка от других разработчиков, которые очень часто могли быть никак не связаны с разработчиками самой прикладной программы.
При этом среди всего множества компонентов прикладной программы можно было выделить две логически цельные составляющие: первая – обеспечивающая «нижний уровень» работы приложения, отвечающая за методы хранения, доступа и разделения данных; вторая – организующая «верхний уровень» работы приложения, включающий в себя логику обработки данных и интерфейс пользователя.
Первая составляющая, как правило, представляла собой набор компонентов сторонних разработчиков. Часто она так или иначе была связана с доступом к базам данных, которые могли предусматривать достаточно сложную организацию. Для работы ее компонентов требовалось наличие высокопроизводительной вычислительной системы.
Вторая составляющая включала в себя собственно алгоритмы, логику и весь интерфейс, созданные разработчиками программы. Она требовала наличие связи с методами доступа к данным, содержащимся в первой составляющей. Требования к вычислительным системам, необходимым для выполнения ее компонентов, были обычно существенно ниже, чем для первой составляющей.
Тогда сложилось понятие приложения, построенного на основе архитектуры «клиент-сервер». В первую (серверную) составляющую такого приложения относят все методы, связанные с доступом к данным. Чаще всего их реализует сервер БД (сервер данных) из соответствующей СУБД (системы управления базами данных) в комплекте с драйверами доступа к нему. Во вторую (клиентскую) часть приложения относят все методы обработки данных и представления их пользователю. Клиентская часть взаимодействует, с одной стороны, с сервером, получая от него данные, а с другой стороны - с пользователем, ресурсами приложения и ОС, осуществляя обработку данных и отображение результатов. Результаты обработки клиент опять-таки может сохранить в БД, воспользовавшись функциями серверной части.
Кроме того, со временем на рынке СУБД стали доминировать несколько наиболее известных компаний-производителей. Они предлагали стандартизованные интерфейсы для доступа к создаваемым ими СУБД. На них, в свою очередь, стали ориентироваться и разработчики прикладных программ.
Такая ситуация оказала влияние и на структуру систем программирования. Многие из них стали предлагать средства, ориентированные на создание приложений в архитектуре «клиент-сервер». Как правило, эти средства поставляются в составе системы программирования и поддерживают возможность работы с широким диапазоном известных серверов данных через один или несколько доступных интерфейсов обмена данными. Разработчик прикладной программы выбирает одно из доступных средств плюс возможный тип сервера (или несколько возможных типов), и тогда его задача сводится только к созданию клиентской части приложения, построенной на основе выбранного интерфейса.
Создав клиентскую часть, разработчик может далее использовать и распространять ее только в комплексе с соответствующими средствами из состава системы программирования. Интерфейс обмена данными обычно входит в состав системы программирования. Большинство систем программирования предоставляют возможность распространения средств доступа к серверной части без каких-либо дополнительных ограничений.
Что касается серверной части, то возможны два пути: простейшие серверы БД требуют от разработчиков приобретения лицензий на средства создания и отладки БД, но часто позволяют распространять результаты работы без дополнительных ограничений; мощные серверы БД, ориентированные на работу десятков и сотен пользователей, требуют приобретения лицензий как на создание, так и на распространение серверной части приложения. В этом случае конечный пользователь приложения получает целый комплекс программных продуктов от множества разработчиков.
1.8. Трехуровневая архитектура. Серверы приложений
Трехуровневая архитектура разработки приложений явилась логическим продолжением идей, заложенных в архитектуре «клиент-сервер».
Недостатком архитектуры приложений типа «клиент-сервер» стал тот факт, что в клиентской части приложения совмещались как довольно сложные функции, связанные с обработкой получаемых от сервера данных, так и более простые функции организации интерфейса пользователя. Для выполнения этих функций к вычислительной системе должны предъявляться различные требования, и в том случае когда выполняется сложная обработка данных, эти требования со стороны «клиентской» части приложения могут быть непомерно велики. Кроме того, обработка данных («бизнес-логика» приложения), как правило, изменяется незначительно по мере прохождения жизненного цикла, развития приложения и выхода его новых версий. В то же время интерфейсная часть может серьезно видоизменяться и в предельном случае подстраиваться под требования конкретного заказчика.
Еще одним фактором, повлиявшим на дальнейшее развитие архитектуры «клиент-сервер», стало распространение глобальных сетей и всемирной сети Интернет. Многие приложения стали нуждаться в предоставлении пользователю возможности доступа к данным посредством сети. Возможностей архитектуры «клиент-сервер» для этой цели стало во многих случаях недостаточно, поскольку клиент зачастую мог не иметь никаких вычислительных ресурсов, кроме программы навигации по сети (браузера, browser).
Поэтому дальнейшим развитием архитектуры «клиент-сервер» стало разделение клиентской части в свою очередь еще на две составляющих: сервер приложений (английские термины «application server» или «middleware»), реализующий обработку данных («бизнес-лотку» приложения), и «тонкий клиент» («thin client»), обеспечивающий интерфейс и доступ к результатам обработки (далее «тонкий клиент» будем называть просто «клиентом»). Серверная часть осталась без изменений, но теперь она получила название «сервер баз данных» («database server»), чтобы не путаться с сервером приложений.
Разделение клиентской части на две составляющих потребовало организации взаимодействия между этими составляющими. Причем это взаимодействие должно, с одной стороны, быть достаточно тесным, так как клиент должен выполнять отображение получаемых от сервера данных за время с разумной задержкой (желательно минимальной); а с другой стороны, он должен допускать обмен данными по протоколам, поддерживаемым глобальными сетями. Поэтому появилось некоторое число стандартов, ориентированных на организацию такого рода взаимодействия. Стали появляться новые интерфейсы обмена данными. Среди них можно выделить семейство стандартов COM/DCOM, предложенных фирмой Microsoft для ОС семейства Microsoft Windows, а также семейство стандартов CORBA (Common Object Request Broker Architecture), поддерживаемое широким кругом производителей и разработчиков программного) обеспечения для большого спектра различных ОС.
Системы программирования в настоящее время ориентируются на поддержку средств разработки приложений в трехуровневой (трехзвенной) архитектуре. Средства поддержки тех или иных стандартов сейчас появляются в составе многих систем программирования. Принципы их использования и распространения аналогичны принципам, применяемым для средств поддержки архитектуры типа «клиент-сервер». Следует заметить, что существуют системы программирования, ориентированные на разработку либо клиентской части, либо сервера приложений; и в то же время многие системы программирования стремятся предоставить разработчикам средства для создания обеих частей в трехуровневой архитектуре. Серверная часть (сервер баз данных) в трехуровневой архитектуре по-прежнему чаще всего является продуктом другого разработчика.
ГЛАВА 2. ОБЗОР СОВРЕМЕННЫХ СИСТЕМ ПРОГРАММИРОВАНИЯ
2.1. Системы программирования компании Borland/lnprise
2.1.1. Turbo Pascal
Система программирования Turbo Pascal была создана компанией Borland на основе расширения языка Pascal, получившего название Borland Pascal.
Сам язык Pascal был предложен Н. Виртом в конце 70-х годов как хорошо структурированный учебный язык. Расширения, привнесенные в язык компанией Borland, преследовали две основные цели:
- упрощение обработки в языке структур, представляющих наиболее распространенные типы данных – строки и файлы (например, в язык был внесен новый тип данных string);
- реализация в языке основных возможностей объектно-ориентированных языков программирования.
Последнее нововведение потребовало серьезной доработки синтаксиса языка. В него были внесены новые ключевые слова, синтаксические конструкции и типы данных. Однако предложенный вариант языка нельзя признать удачным, хотя бы потому, что в нем не полностью реализованы все механизмы объектно-ориентированного программирования. Например, отсутствуют такие мощные средства, как исключения и шаблоны. Есть и другие сложности в использовании языка.
Компания Borland построила и реализовала эффективный однопроходный компилятор с языка Borland Pascal. За счет этого в данной системе программирования удалось добиться относительно высокой скорости компиляции исходных программ. Для ускорения работы компоновщика компанией Borland был предложен собственный уникальный формат объектных файлов – модулей исходной программы – TPU (Turbo Pascal Unit). По этой причине модули, созданные в системе программирования Turbo Pascal, не могли быть использованы в других системах программирования. Также из них невозможно было создавать библиотеки, ориентированные на другие языки и системы программирования. Обратная задача - использование стандартных объектных файлов и библиотек в системе программирования Turbo Pascal – была решаема, но имела серьезные ограничения. В состав системы программирования Turbo Pascal, кроме компилятора с языка Borland Pascal, входил также компилятор с языка ассемблера. Среда программирования позволяла компоновать как единые исполняемые файлы, так и оверлейные программы для ОС типа MS-DOS.
Первоначально система программирования Turbo Pascal строилась на основе библиотеки RTL (run time library) языка Borland Pascal. Эта библиотека не предоставляла пользователю широкого набора функций - в основном она только реализовывала базовые математические функции и функции языка. Однако можно сказать об одной характерной черте данной библиотеки - она включала в свой состав объектный код менеджера памяти для управления распределением динамической памяти («кучей» – heap – в терминах языка Pascal), который автоматически подключался к каждой результирующей программе, созданной с помощью данной системы программирования. Этот модуль получился доволъно удачным и нашел свое дальнейшее применение в других системах программирования данной компании-разработчика.
Несмотря на недостатки, система программирования Turbo Pascal получила широкое распространение и завоевала свое место на рынке. Основной причиной явилось то, что система впервые была построена в виде интегрированной среды. Данный факт предопределил ее широкое распространение, и, прежде всего, в университетской среде, где требовались простые и понятные в использовании средства разработки.
Система программирования Turbo Pascal получила широкое распространение и дальнейшее развитие. Компания Borland выпустила несколько ее реализации (наиболее распространенные из них – версии 5.5 и 7.0). Последние реализации данной системы программирования могли создавать результирующие программы, ориентированные на работу как в ОС типа MS-DOS, так и в среде типа Microsoft Windows. В них были реализованы все основные преимущества, предоставляемые интегрированной средой программирования, такие как лексический анализ программ «на лету» и встроенная контекстная подсказка.
По мере распространения системы программирования Turbo Pascal шла разработка библиотек подпрограмм и функций для нее. Были созданы такие библиотеки, как Turbo Professional (TP), Turbo Vision, Object Window Library (OWL) для среды MS-DOS и ObjectWindows для среды Microsoft Windows. Широкому распространению данных библиотек по-прежнему мешал тот факт, что в системе программирования Turbo Pascal используется уникальный, нестандартный формат объектных файлов. Отсутствие стандарта языка Borland Pascal во многом сдерживало развитие этой системы программирования и не способствовало ее применению как профессионального средства разработки.
Система программирования Turbo Pascal это одна из самых распространенных в настоящее время систем программирования учебного назначения. Кроме того, это первая появившаяся на рынке система программирования, которая полностью реализовала в себе идеи интегрированной среды программирования.