Технологии программирования в компьютерных сетях
Основные понятия технологии программирования
Тема 4.1. Введение
Раздел 4. Технологии программирования
Технологией программирования называют совокупность методов и средств, используемых в процессе разработки программного обеспечения. Как любая другая технология, технология программирования представляет собой набор технологических инструкций, включающих:
· указание последовательности выполнения технологических операций;
· перечисление условий, при которых выполняется та или иная операция;
· описания самих операций, где для каждой операции определены исходные данные,
· результаты, а также инструкции, нормативы, стандарты, критерии и методы оценки и т. п.
Кроме набора операций и их последовательности, технология также определяет способ описания проектируемой системы, точнее модели, используемой на конкретном этапе разработки.
Различают технологии, используемые на конкретных этапах разработки или для решения отдельных задач этих этапов, и технологии, охватывающие несколько этапов или весь процесс разработки. В основе первых, как правило, лежит ограниченно применимый метод, позволяющий решить конкретную задачу. В основе вторых обычно лежит базовый метод или подход, определяющий совокупность методов, используемых на разных этапах разработки, или методологию.
В компьютерных сетях используются следующие основные технологии программирования:
· Web-технология;
· распределенная COM;
· технология CORBA;
· технология Web Services.
Основной технологией, используемой в настоящее время в компьютерных сетях, в частности, в сети Internet, является Web-технология (от слов World Wide Web – всемирная паутина). Эта технология включают в себя клиентские и серверные средства проектирования и программирования Web-страниц, с помощью которых в компьютерных сетях в настоящее время представлено подавляющее большинство данных.
Для передачи данных между узлами сети в Web-технологии используется гипертекстовый протокол передачи данных – HTTP (HyperText Transfer Protocol).
Модификация СОМ, обеспечивающая передачу вызовов между компьютерами, называется технологией DCOM (Distributed COM – распределенная СОМ).
По технологии DСОМ приложение предоставляет свои службы, используя специальные объекты – объекты DCОМ, которые являются экземплярами классов DCОМ. Объект DСОМ так же, как обычный объект, включает поля и методы, но в отличие от обычных объектов каждый объект DСОМ может реализовывать несколько интерфейсов, обеспечивающих доступ к его полям и функциям.
Объект всегда функционирует в составе сервера – динамической библиотеки или исполняемого файла, которые обеспечивают функционирование объекта.
Перед первым обращением к объекту клиент посылает запрос к библиотеке DСОМ, хранящей информацию обо всех, зарегистрированных в системе классах DСОМ объектов, и передает ей имя класса, идентификатор интерфейса и тип сервера. Библиотека запускает необходимый сервер, создает требуемые объекты и возвращает указатели на объекты и интерфейсы. Получив указатели, клиент может вызывать необходимые функции объекта.
На базе технологии DCOM были разработаны компонентные технологии, решающие различные задачи разработки программного обеспечения:
· OLE-automation или просто Automation (автоматизация) – технология создания программируемых приложений, обеспечивающая программируемый доступ к внутренним службам этих приложений. Вводит понятие диспинтерфейса (dispinterface) – специального интерфейса, облегчающего вызов функций объекта. Эту технологию поддерживает, например, Microsoft Excel, предоставляя другим приложениям свои службы.
· ActiveX – технология, построенная на базе OLE-automation, предназначена для создания программного обеспечения как сосредоточенного на одном компьютере, так и распределенного в сети. Предполагает использование визуального программирования для создания компонентов – элементов управления ActiveX. Полученные таким образом элементы управления можно устанавливать на компьютер дистанционно с удаленного сервера, причем устанавливаемый код зависит от используемой операционной системы. Это позволяет применять элементы управления ActiveX в клиентских частях приложений Internet.
Технология CORBA (Common Object Request Broker Architecture – архитектура универсального посредника запросов) предназначена для взаимодействия объектов разного вида, написанных на разных объектно-ориентированных и процедурных языках, созданных разными объектно-ориентированными системами, и работающих на разных платформах. Она обобщает и удаленный вызов процедур, и службы сообщений, и хранимые процедуры баз данных.
Архитектура CORBA описывается набором стандартов, разработанных группой управления объектами – OMG (Object Management Group).
Группа OMG была создана в 1989 году группой компаний, занимающихся в основном выпускомаппаратных средств. OMG была сформирована с целью разработки стандартов и программного обеспечения для организации взаимодействия между компонентами. С тех пор количество организаций — участниц OMG возросло до 800, к их числу относятся как крупные компании (Sun, IBM, Oracle и Microsoft), так и небольшие исследовательские группы. Кроме CORBA и вопросов взаимодействия различных платформ, OMG также контролирует соблюдение стандартов, установленных для UML. Впервые спецификация CORBA 1.1 была опубликована в 1991 году, с тех пор данная архитектура приобрела большую популярность среди разработчиков. В настоящее время последней спецификацией является CORBA 3.0.
На рис. 4.1.1 изображена диаграмма, условно представляющая архитектуру управления объектами – ОМА (Object Management Architecture). На самом высоком уровне этой диаграммы расположены прикладные объекты, предоставляющие услуги, реализованные с помощью распределенных средств CORBA. Данные объекты предназначены для решения конкретных прикладных задач и не соответствуют стандартам CORBA. Для доменных интерфейсов CORBA (CORBA Domain Interfaces) существует: спецификация OMG, которая определяет принадлежность прикладных средств одному конкретному домену, например, Telecommunications (телекоммуникации), Manufacturing (производство) или Finance (финансы). Самый нижний уровень диаграммы соответствует посреднику запросов объектов – ORB (Object Request Broker). На данном уровне определяются средства, не зависящие от языка и платформы и позволяющие клиентам использовать распределенные службы, а также задается коммуникационный протокол, поддерживающий доступ к сервисным средствам. Существующие в настоящее время приложения CORBA чаще всего непосредственно взаимодействуют со средствами ORB. Выше ORB расположен уровень CORBAservices, компоненты которого предоставляют приложениям CORBA специальные услуги. В качестве примера можно привести службу имен, позволяющую обращаться к объектам по именам, средства, с помощью которых организуются запросы к объектам, соответствующим определенным критериям поиска, и т.д. Выше CORBAservices расположен уровень CORBAfacilities. Компоненты CORBAfacilities предоставляют услуги более высокого уровня, они, например, поддерживают вывод на печать, обмен электронной почтой, обработку документов и т.д. Распределенные прикладные объекты могут использовать средства, предоставляемые любым из уровней ОМА.
Рис. 4.1.5. архитектуру управления объектами в CORBA
Спецификация CORBA 3.0 дополняет базовую ОМА двумя компонентами: minimumCORBA и CORBAcomponents. Новая спецификация позволяет реализовывать уровень ORB, наиболее применимый для приложений уровня предприятия, в виде minimumCORBA. Вариант minimumCORBA реализуется путем удаления ряда возможностей из конфигурации ORB, типичной для предприятия; этим упрощается использование средств CORBA встроенными приложениями. Спецификация CORBAcomponents определяет стандартный набор интерфейсов, так, что компоненты CORBA могут автоматически наследовать средства, предоставляемые средой контейнера. Спецификация CORBAscripting задает порядок объединения компонентов с использованием специального языка сценариев.
Технология Web Services (службы Web) создана фирмами IBM, Microsoft и UserLand. В ее основе лежит передача данных по сети в виде несжатого текста, записанного в одной из байтовых кодировок, либо в одной из кодировок Unicode.
Структура пересылаемых документов записывается с использованием расширяемого языка разметки – XML (eXtensible Markup Language). Для стандартизации структуры документа XML в технологии Web Services разработан специальный протокол доступа к простому объекту – SOAP (Simple Object Access Protocol). Сообщение, записанное на языке XML по правилам протокола SOAP, может принять и обработать любая Web-служба, на каком бы языке программирования она ни была написана, и в какой бы операционной системе она ни работала.
Для передачи сообщений, написанных по правилам протокола SOAP используется тот же протокол HTTP, что и в Web-технологиях, однако можно использовать и другие протоколы, например простой протокол передачи почты – SMTP (Simple Mail Transfer Protocol), либо протокол управления передачей – TCP (Transmission Control Protocol) сети Internet.
В технологии Web Services реализованы также средства описания Web-службы. Сервер, на котором установлена Web-служба, предоставляет всем желающим ее описание. Описание выполняется на специально разработанном языке описания Web-служб – WSDL (Web Services Description Language), который также является приложением языка XML. Клиент, обращающийся к Web-службе, читает ее описание и формирует свой запрос.
Для облегчения поиска нужной Web-службы на серверах формируются реестры, хранящие информацию о местоположении Web-служб вместе с описанием предоставляемых ими услуг. Правила регистрации Web-службы в реестре, а также правила хранения информации в реестре определяются еще одним приложением XML –спецификацией UDDI (Universal Discovery, Description and Integration – универсальное обнаружение, описание и интеграция).
Для Web-служб разработаны спецификации в виде библиотек и пакетов классов. Этим занимаются многие фирмы-производители программного обеспечения. Корпорация Microsoft поставляет программное обеспечение Web Services в рамках технологии Microsoft .NET. Недостатком этой технологии является необходимость использования на серверах одной из серверных версий операционной системы Windows. Технология Web Services реализована также на базе средств языка Java: сервлетов, серверных страниц Java – JSP (Java Server Pages), компонент EJB (Enterprise JavaBeans) с использованием интегрированных сред разработки – IDE (Integrated Development Environment) и средств быстрой разработки приложений – RAD (Rapid Application Development). В отличие от технологии .NET, технологии на основе Java являются многоплатформенными, т.е. могут использоваться на компьютерах с различными процессорами и разными операционными системами.
Далее в дисциплине будет подробно рассмотрена самая распространенная в настоящее время в компьютерных сетях Web-технология. Элементы служб Web будут рассмотрены на втором курсе.