![](/stc/img/evkova.png)
Технология CORВA (Различие технологий распределенных объектов)
Содержание:
Введение
В этой работе сравниваются популярные модели распределенных объектов / стандарты промежуточного программного обеспечения; CORBA, DCOM и Java / RMI. Эти модели в определенной степени конкурируют и имеют сильные и слабые стороны в отношении переносимости, языка программирования и аппаратной поддержки, простоты использования и доступности. Все модели способствуют повторному использованию через интерфейсы компонентов и услуги распределенных объектов. Все три стандарта были расширены с помощью моделей компонентов
[CDK01] определяет распределенную систему как систему, в которой аппаратные или программные компоненты, расположенные на сетевых компьютерах, обмениваются и координируют свои действия только путем передачи сообщений. Вычислительные устройства могут быть подключены к широкому спектру сетей, например, к Интернету, сетям мобильных телефонов, корпоративным сетям, домашним сетям или их комбинациям. Современные программные системы, такие как интернет-приложения и корпоративные приложения, предлагают многоуровневые, основанные на компонентах архитектуры, которые включают промежуточное программное обеспечение для распространения компонентов на гетерогенных платформах. Платформы варьируются от мобильных устройств, таких как персональные цифровые помощники (PDA), ноутбуки и мобильные телефоны; вездесущие устройства, такие как телевизоры, холодильники и автомобили; для разных типов компьютеров, таких как мейнфреймы и ПК. Три наиболее доминирующие технологии распределенных объектов или промежуточное ПО - это CORBA, DCOM и Java / RMI. Это расширения традиционных объектно-ориентированных систем, позволяющие распределять объекты по гетерогенной сети. Объекты могут находиться в своем собственном адресном пространстве вне приложения или на другом компьютере, кроме приложения, и по-прежнему будут называться частью приложения. История и эволюция каждой из технологий распределенных объектов весьма различны и учитывают различные требования к нескольким платформам, языкам или сетевым протоколам.
CORBA - CommonBrokerArchitecture - это открытая инфраструктура вычислительных вычислений, стандартизованная группой управления объектами (OMG), и представляет собой спецификацию, основанную на технологиях, предлагаемых (и частично предоставленных) в индустрии программного обеспечения [CORBA]. CORBA является наиболее распространенным стандартом промежуточного программного обеспечения на рынке, отличном от Windows. OMG была основана в 1989 году для содействия внедрению объектно-ориентированной технологии и многоразовых программных компонентов. DCOM - модель распределенных компонентных объектов, является стандартом, разработанным Microsoft, и является распределенным расширением стандарта COM [COM]. Стандарт COM основан на разработке технологии составных документов для интеграции частей документа (например, спред-листов, изображений, презентаций, текстовых процессоров и т. Д.), Созданных различными приложениями Windows. COM - наиболее распространенная в мире модель программного обеспечения для компонентов и доминирует на рынке настольных компьютеров. Java / RMI - Java / RemoteMethodInvocation - это стандарт, разработанный JavaSoft. Java выросла с языка программирования до трех основных и полностью совместимых платформ; J2SE (Java 2 StandardEdition), J2EE (Java 2 EnterpriseEdition) и J2ME (Java 2 MicroEdition). J2SE - это основополагающий язык программирования и набор инструментов для кодирования и разработки компонентов. J2EE дополняет J2SE и представляет собой набор технологий и компонентов для развития предприятий и Интернета. J2ME используется для создания программного обеспечения для встроенных, мобильных, потребительских и других небольших устройств, таких как PersonalDigitalAssistants (PDA) и мобильных телефонов.
Все три стандарта имеют расширения для компонентов, CORBA с CORBA ComponentModel (CCM), COM с сервером транзакций Microsoft (COM + / MTS) и Java / RMI с компонентами JavaBean и EnterpriseJavaBeans (EJB). Microsoft собирается предоставить новую инфраструктуру разработки приложений под названием .NET. Не уверен, поддерживается ли .NET на нескольких платформах. В этом эссе не приводятся примеры кода в описаниях и сопоставлениях различных технологий. Примеры кода можно найти, например. [Чжун] и [Радж].
Глава 1. Различие технологий распределенных объектов
Обзор технологий распределенных объектов В этом разделе дается краткий технологический обзор различных технологий распределенных объектов, сравниваемых в этом эссе. Все три технологии распределенных объектов основаны на клиент-серверном подходе, реализованном как сетевые вызовы, работающие на уровне бит и байтов, передаваемых по сетевым протоколам, таким как TCP / IP. Чтобы избежать жесткой и подверженной ошибкам реализации сетевых вызовов непосредственно на клиенте и серверах {объектах}, стандарты распределенных технологий затрагивают сложные сетевые взаимодействия посредством абстрактных и скрывают проблемы с сетью и вместо этого позволяют программисту сосредоточиться на программировании бизнес-логики , Основная идея сетевых абстракций, таких как RPC (RemoteProcedureCall), заключается в замене локального (серверного) и удаленного (клиентского) конца на заглушки. Это позволяет как клиенту, так и серверу строго использовать соглашения о локальном вызове и тем самым не знать о вызове удаленной реализации или вызванном удаленно. Для этого клиентский вызов обрабатывается клиентом-заглушкой (прокси), который упорядочивает параметры и отправляет их, вызывая проводной протокол, такой как IIOP, ORPC или JRMP, на удаленный конец, где другая заглушка получает параметры, отменяет и вызывает истинный сервер. Маршалинговые и неаршаллинговые действия отвечают за преобразование значений данных из их локального представления в сетевой формат и в удаленное представление [Szyperski98]. Различия в формате, такие как порядок байтов и числовые представления, перекрываются таким образом. Объектные сервисы, предлагаемые всеми тремя подходами, определяются через интерфейсы. Интерфейс для всех определяется как совокупность именованных операций, каждая из которых имеет определенную подпись и необязательно тип возврата. Интерфейс служит контрактом между сервером и клиентом.
1.1. CORBA
В этом разделе кратко рассматриваются компоненты, определенные в OMG эталонной модели архитектуры (OMA), как показано на рисунке 1 [Шмидт]. Объектные службы - это не зависящие от домена интерфейсы, которые используются многими программами распределенных объектов. OMG назначила объектные сервисы, такие как служба именования, которая позволяет клиентам находить объекты на основе имен. Существуют также спецификации для управления жизненным циклом, безопасности, транзакций, уведомления о событиях, сохранения и запроса объекта и т. Д. [OMG]. Однако поставщики отказались от некоторых услуг, обычно потому, что они были непрактичными или неэффективными. Общие средства ориентированы на приложения конечного пользователя. Примером общего средства является компонент компонента распределенных документов (DDCF). DDCF позволяет осуществлять презентацию и обмен объектами на основе модели документа, например, облегчает связывание объекта электронной таблицы с текстовым документом. Обычные объекты в основном были заброшены или захвачены новыми вертикальными рабочими силами области промышленности. Интерфейсы домена заполняют роли, подобные объектным службам и общим объектам, но ориентированы на конкретные области приложений, такие как производство, телекоммуникации и т. Д. Интерфейсы приложений - это интерфейсы, разработанные специально для данного приложения.
Рисунок 1. Архитектура эталонной модели OMG [Vinoski97]
Брокер запроса объекта (ORB) является ядром архитектуры CORBA. ORB - это центральная объектная шина, где объекты CORBA прозрачно взаимодействуют с другими объектами CORBA, локально или удаленно [Vinoski97]. Он обеспечивает базовую прозрачность обмена сообщениями, связью, каталогом, безопасностью и местоположением и изолирует приложения от деталей об оборудовании, сети и системе. ORB упрощает распределенное программирование, отделяя клиента от деталей вызовов метода. Это делает запросы клиентов кажутся локальными вызовами процедур.
На рисунке 2 показана архитектура ORB CORBA.
Протокол Internet-Inter-ORB (IIOP) был разработан в спецификации CORBA 2.0 в качестве протокола для связи между ORB от разных поставщиков. IIOP является специализацией общего межорганизационного протокола (GIOP) и работает поверх TCP / IP. CORBA полагается на IIOP или другие специализации GIOP для удаленных объектов. Объект CORBA представляет собой объект программирования, который состоит из идентификатора, интерфейса и реализации, который известен как Servant. Слуга - это объект языка программирования реализации, который определяет операции, поддерживающие интерфейс CORBA IDL [Schmidt]. OMG определила язык определения интерфейса (IDL), который объявляет интерфейсы и методы объекта сервера CORBA. Каждый объект CORBA должен быть объявлен в IDL. Компилятор IDL создает окурки и скелеты, которые служат «клеем» между клиентским и серверным приложениями, соответственно, и ORB. Синтаксис CORBA IDL похож на C ++ и включает семантику для множественного наследования через интерфейсы и пользовательские исключения. Когда клиент CORBA запрашивает услугу с объекта сервера CORBA, ORB несет ответственность за: • Найдите реализацию объекта сервера. • Подготовьте объект к запросам. • Дать ссылку на объект обратно на объект клиента. • Общайтесь с запросами на объект сервера. • Возврат результата сервера обратно клиенту.
Взаимодействия выполняются либо интерфейсом ORB, либо через ObjectAdapter (базовый или переносимый объектный адаптер - POA). Интерфейс ORB представляет собой абстрактный интерфейс для ORB, чтобы отделить приложения от деталей реализации. Этот интерфейс предоставляет различные вспомогательные функции, такие как преобразование ссылок на объекты в строки и наоборот и создание списков аргументов для запросов, выполненных через интерфейс динамического вызова (см. Раздел 4 «Вызов объектов»). Адаптер объекта помогает ORB с доставкой запросов к объекту и с активацией объекта. Адаптер объекта связывает реализации объектов с ORB. Адаптеры объектов могут быть специализированы для поддержки определенных стилей реализации объектов (таких как адаптеры объектов OODB для персистентности и адаптеры объектов библиотеки для не-удаленных объектов) [Schmidt]. Для получения дополнительной информации о CORBA см., Например, [CORBA] [CDK01] [Orfali96] [Orfali97] [Orfali98] [Vinoski97].
Рисунок 3: Общая архитектура DCOM [Chung]
1.2. DCOM
Модель распределенных компонентных объектов (DCOM) поддерживает удаленные объекты, работая по протоколу, называемому вызовом удаленных процедур объекта (ORPC) [Raj]. ORPC построен поверх DCE / RPC и взаимодействует со службами времени выполнения в COM. На рисунке 3 показана общая архитектура DCOM [Chung].
COM использует таблицы переменных процедуры (таблицы отправки), содержащие указатели на функции, представляющие интерфейсы. Этот макет памяти соответствует виртуальной таблице таблиц C ++ (vtable) и используется для статического вызова объектов. Объекты сервера DCOM поддерживают несколько интерфейсов, каждый из которых представляет собой другое поведение объекта. Клиент получает указатель на один из интерфейсов сервера, а затем начинает вызывать открытые методы сервера через указатель интерфейса, как если бы объект находился в адресном пространстве клиента.
Выпущенная вслед за Windows 98 операционная система Windows Me ( windowsme) продолжала линию Windows 9x и имела много новых возможностей: средства восстановления информации после сбоев, улучшенные возможности работы с мультимедиа и ряд других.
Параллельно с Windows 9x, начиная с 1993 года, выпускалась корпоративная операционная система Windows NT (NT - New Technology (Новая технология)), которая с самого начала проектировалась с учетом всех требований, предъявляемых к современным операционным системам: расширяемости, переносимости, надежности, совместимости, производительности. Эти свойства были достигнуты за счет применения передовых технологий структурного проектирования, таких как клиент-сервер, микроядра, объекты.
В отличие от Windows 9x, в которой реализована многозадачность без вытеснения, в Windows NT используется механизм многозадачности с вытеснением.
Windows NT поддерживает симметричную многопроцессорную организацию вычислительного процесса, в соответствии с которой операционная система может выполняться на любом свободном процессоре или на всех процессорах одновременно, разделяя память между ними. Учитывая, что многозадачность реализуется на уровне нитей, разные части одного и того же процесса могут действительно выполняться параллельно.
Windows NT поддерживает существующие файловые системы, включая файловую систему MS-DOS (FAT), файловую систему CD-ROM, файловую систему OS/2 (HPFS) и собственную новую файловую систему (NTFS).
В отличие от большинства других операционных систем, Windows NT изначально разрабатывалась с учетом возможности работы в сети. В результате этого функции совместного использования файлов, устройств и объектов встроены в интерфейс с пользователем.
Дальнейшая эволюция операционных систем семейства Windows привела к объединению технологии NT с линейкой 9х. В 2000 году появилась операционная система Windows 2000, построенная на технологии NT и вобравшая в себя все лучшие качества Windows 9х. Наиболее важные отличия этой системы от предыдущих заключаются в использовании нового ядра Windows NT, что повысило надежность работы операционной системы с точки зрения корректности выполнения многозадачных приложений, расширило возможности сетевых настроек и позволило использовать файловую систему NTFS (New Technology File System - Файловая система NT), надежность которой подтверждена годами использования на серверных платформах.
Прямой наследницей Windows 2000 явилась вышедшая в 2002 году операционная система Windows XP (eXPerience - опыт) , также созданная на основе технологии NT. Система стала более простой, надежной, безопасной и быстрой.
В Windows XP используется привычный интерфейс Windows, но более простой и «интеллектуальный». Удалены лишние элементы пользовательского интерфейса, а стандартные элементы стали интуитивно понятными. Упрощен механизм поиска информации, ставший при этом более эффективным. Обеспечивается поддержка многих национальных языков. Благодаря использованию новых программ-мастеров, упрощена настройка системы для подключения новых устройств, сетевых соединений и т.д. Имеются эффективные, встроенные в систему инструменты для работы в Интернете, которые ускоряют навигацию и поиск информации в WWW, позволяют передавать мгновенные текстовые сообщения, общаться в режиме реального времени посредством передачи звука и видео.
Поддерживаются устройства нового поколения: компьютеры с возможностью управления питанием, шины AGP, USB и IEEE 1394, DVD-диски, адаптеры ATM, кабельные модемы и т.д. Имеется встроенная сетевая поддержка для подключения к системам Windows NT Server, Novel NetWare и Unix.
В Windows XP появилось множество средств для индивидуальных домашних пользователей, в том числе поддержка профессиональной работы с цифровым мультимедиа -цифровыми изображениями, музыкой, видео, DVD-файлами, а также многие другие возможности.
В настоящее время последней разработкой компании Microsoft является ОС Windows 7. Корпорация Microsoft планировала разработку операционной системы Blackcomb, которая была переименована в Vienna, а затем стала известна как Windows 7, с 2000 года. Blackcomb должна была заменить Windows XP, но стала преемницей Vista. В октябре 2008 года Windows 7 стало официальным названием ОС. Ожидалось, что финальная версия Windows 7 выйдет во второй половине 2009 года, однако позже Microsoft назвала в качестве срока начало 2010 года. В конце октября 2008 Microsoft продемонстрировала Windows 7. Позднее вышли бета-версия и релиз-кандидат ОС. Окончательная версия системы появилась 22 июля. Windows 7, в том числе и российская версия, появилась в магазинах 22 октября 2009 года.
1.3. Java
Java / RMI RMI поддерживает удаленные объекты, запуская протокол, называемый JavaRemoteMethodProtocol (JPMP). Сериализация объектов в значительной степени используется для маршалирования и демонтажа объектов в виде потоков. И клиент, и сервер должны быть написаны на Java, чтобы иметь возможность использовать сериализацию объекта. Объект сервера Java определяет интерфейсы, которые могут использоваться для доступа к объекту за пределами текущей виртуальной машины Java (JVM) из другой JVM, например, для другой машины. Реестр RMI на сервере хранит информацию о доступных объектах сервера и предоставляет службу именования для RMI. Клиент получает ссылку на объект сервера через реестр RMI на сервере и вызывает методы на объекте сервера, как если бы объект находился в адресном пространстве клиента. Объекты сервера называются с использованием URL-адресов, и клиент получает ссылку на объект сервера, указав URL-адрес. Когда клиент Java / RMI запрашивает службу с сервера Java / RMI, он выполняет следующие действия [Java / RMI]: • инициирует соединение с удаленной JVM, содержащей удаленный объект, • маршалирует параметры удаленной JVM, • ожидает результата вызова метода, • отменяет отмену возвращаемого значения или возвращаемого исключения; • возвращает значение вызывающему.
Используя сериализацию объектов, данные и код могут передаваться между сервером и клиентом - это позволяет запускать разные экземпляры объекта на клиентских и серверных машинах. Чтобы гарантировать, что код загружен или загружен безопасно, RMI обеспечивает дополнительную безопасность. Чтобы объявить удаленный доступ к объектам сервера в Java, каждый объект сервера должен реализовать интерфейс java.rmi.Remote. java.rmi.server.RemoteObject и его подклассы, java.rmi.server.RemoteServer, java.rmi.server.UnicastRemoteObject и java.rmi.activation.Activatable предоставляют функции сервера RMI. Класс java.rmi.server.RemoteObject предоставляет реализации для методов java.lang.Object, hashCode, equals и toString, которые разумны для удаленных объектов. Классы UnicastRemoteObject и Activatable предоставляют методы, необходимые для создания удаленных объектов и делают их доступными для удаленных клиентов. Подклассы идентифицируют семантику удаленной ссылки, например, является ли сервер простым удаленным объектом или является активируемым удаленным объектом (который выполняется при вызове) [Java / RMI]. Класс java.rmi.server.UnicastRemoteObject определяет одноэлементный (одноадресный) удаленный объект, ссылки которого действительны только при активном серверном процессе. Класс java.rmi.activation.Activatable - абстрактный класс, который определяет активируемый удаленный объект, который начинает выполняться, когда его удаленные методы вызывают, и может закрыться при необходимости [Java / RMI]. Java / RMI можно использовать на разных платформах и операционных системах, пока на платформе реализована реализация JVM. Для дополнительной информациио Java / RMI и распределенных вычислениях на Java, см., например, [Java / RMI] [Mahmoud00] [Orfali98].
Глава 2. Компонентные модели
В этом разделе представлено краткое описание моделей компонентов, которые расширяют представленные технологии распределенных объектов.
2.1. Компонентная модель CORBA
Компонентная модель CORBA (CCM) была введена для решения проблем повторного использования часто мелкозернистых программных объектов в качестве строительных блоков для создания компонентов и компонентов. Объекты CORBA как на стороне клиента, так и на стороне сервера были сложны для сборки в системах. CCM - это спецификация структуры компонентов, которая представляет как клиентскую, так и серверную сторону распределенной архитектуры. CCM позволяет создавать инструменты, которые могут собрать безопасные, надежные, эффективные масштабируемые системы CORBA за гораздо меньшее время, чем раньше [Welsh01]. Использование (автоматизированных) инструментов, скорее всего, улучшит качество приложений CORBA и уменьшит время и усилия для создания приложений CORBA.
Как и компоненты EJB, компоненты CCM будут работать в контейнере. Контейнер состоит из одного или нескольких специализированных переносных объектных адаптеров (POA) с услугами Persistence, Transaction, SecurityandNotification.
Выпущенная вслед за Windows 98 операционная система Windows Me ( windowsme) продолжала линию Windows 9x и имела много новых возможностей: средства восстановления информации после сбоев, улучшенные возможности работы с мультимедиа и ряд других.
Параллельно с Windows 9x, начиная с 1993 года, выпускалась корпоративная операционная система Windows NT (NT - New Technology (Новая технология)), которая с самого начала проектировалась с учетом всех требований, предъявляемых к современным операционным системам: расширяемости, переносимости, надежности, совместимости, производительности. Эти свойства были достигнуты за счет применения передовых технологий структурного проектирования, таких как клиент-сервер, микроядра, объекты.
В отличие от Windows 9x, в которой реализована многозадачность без вытеснения, в Windows NT используется механизм многозадачности с вытеснением.
Windows NT поддерживает симметричную многопроцессорную организацию вычислительного процесса, в соответствии с которой операционная система может выполняться на любом свободном процессоре или на всех процессорах одновременно, разделяя память между ними. Учитывая, что многозадачность реализуется на уровне нитей, разные части одного и того же процесса могут действительно выполняться параллельно.
Windows NT поддерживает существующие файловые системы, включая файловую систему MS-DOS (FAT), файловую систему CD-ROM, файловую систему OS/2 (HPFS) и собственную новую файловую систему (NTFS).
В отличие от большинства других операционных систем, Windows NT изначально разрабатывалась с учетом возможности работы в сети. В результате этого функции совместного использования файлов, устройств и объектов встроены в интерфейс с пользователем.
Дальнейшая эволюция операционных систем семейства Windows привела к объединению технологии NT с линейкой 9х. В 2000 году появилась операционная система Windows 2000, построенная на технологии NT и вобравшая в себя все лучшие качества Windows 9х. Наиболее важные отличия этой системы от предыдущих заключаются в использовании нового ядра Windows NT, что повысило надежность работы операционной системы с точки зрения корректности выполнения многозадачных приложений, расширило возможности сетевых настроек и позволило использовать файловую систему NTFS (New Technology File System - Файловая система NT), надежность которой подтверждена годами использования на серверных платформах.
Прямой наследницей Windows 2000 явилась вышедшая в 2002 году операционная система Windows XP (eXPerience - опыт) , также созданная на основе технологии NT. Система стала более простой, надежной, безопасной и быстрой.
В Windows XP используется привычный интерфейс Windows, но более простой и «интеллектуальный». Удалены лишние элементы пользовательского интерфейса, а стандартные элементы стали интуитивно понятными. Упрощен механизм поиска информации, ставший при этом более эффективным. Обеспечивается поддержка многих национальных языков. Благодаря использованию новых программ-мастеров, упрощена настройка системы для подключения новых устройств, сетевых соединений и т.д. Имеются эффективные, встроенные в систему инструменты для работы в Интернете, которые ускоряют навигацию и поиск информации в WWW, позволяют передавать мгновенные текстовые сообщения, общаться в режиме реального времени посредством передачи звука и видео.
Поддерживаются устройства нового поколения: компьютеры с возможностью управления питанием, шины AGP, USB и IEEE 1394, DVD-диски, адаптеры ATM, кабельные модемы и т.д. Имеется встроенная сетевая поддержка для подключения к системам Windows NT Server, Novel NetWare и Unix.
В Windows XP появилось множество средств для индивидуальных домашних пользователей, в том числе поддержка профессиональной работы с цифровым мультимедиа -цифровыми изображениями, музыкой, видео, DVD-файлами, а также многие другие возможности.
В настоящее время последней разработкой компании Microsoft является ОС Windows 7. Корпорация Microsoft планировала разработку операционной системы Blackcomb, которая была переименована в Vienna, а затем стала известна как Windows 7, с 2000 года. Blackcomb должна была заменить Windows XP, но стала преемницей Vista. В октябре 2008 года Windows 7 стало официальным названием ОС. Ожидалось, что финальная версия Windows 7 выйдет во второй половине 2009 года, однако позже Microsoft назвала в качестве срока начало 2010 года. В конце октября 2008 Microsoft продемонстрировала Windows 7. Позднее вышли бета-версия и релиз-кандидат ОС. Окончательная версия системы появилась 22 июля. Windows 7, в том числе и российская версия, появилась в магазинах 22 октября 2009 года.
.
2.2. JavaBeans и EnterpriseJavaBeans
JavaBeans и EnterpriseJavaBeans Компонент JavaBean - это модель графического компонента Java. Компонентная модель EnterpriseJavaBean (EJB) представляет собой компонентную модель для неграфических компонентов Java, используемых для упаковки распределенных промежуточных сервисов. Модель EJB инкапсулирует бизнес-логику на стороне сервера и состоит из двух основных элементов; объект Java или компонент, связанный вместе как компонент EJB, и контейнер EJB. Контейнер обеспечивает связь между компонентом и его средой. Контейнер предоставляет услуги промежуточного уровня, такие как параллелизм, постоянство, безопасность и поддержка многопоточности. Контейнер также обеспечивает связь между окружающей средой и компонентом и управление компонентами компонента. EJB поддерживает три типа контейнеров: Entity, Session и Service. EJB является частью J2EE, который включает в себя как Java / RMI, так и Java-IIOP в качестве промежуточного варианта. Использование Java-IIOP гарантирует совместимость с серверами CORBA, написанными практически на любом поддерживаемом языке. J2EE также включает в себя обязательный мост RMI-IIOP, который позволяет J2EE-серверам приложений взаимодействовать с клиентами и серверами CORBA и RMI. Sun определила архитектуру программного обеспечения SunOpenNetEnvironment (Sun ONE), которая является прямым конкурентом Microsoft .NET. Архитектура программного обеспечения Sun ONE решает такие проблемы, как конфиденциальность, безопасность и личность. Он определяет практики и соглашения для поддержки ситуационного контекста, такого как тип клиентского устройства и местоположение пользователя. И он поддерживает системы, которые могут использоваться во многих сетевых типах, таких как традиционный Интернет, беспроводной Интернет и домашняя сеть. Архитектура предназначена для обеспечения того, чтобы интеллектуальные веб-сервисы, разработанные с использованием любого инструмента, работающего на любой платформе, могли беспрепятственно взаимодействовать. Архитектура программного обеспечения Sun ONE основана на технологии XML, Java и LDAP [SunONE]. См. Веб-сайты Sun / Java (http://java.sun.com/ и http://www.sun.com) для получения дополнительной информации о моделях компонентов JavaBean и EJB и архитектуре Sun ONE.
Глава 3. Сравнение технологий распределенных объектов.
Сравнение технологий распределенных объектов. В этом разделе сравниваются различные распределенные технологии в отношении различных областей, перечисленных ниже. Области выбираются в зависимости от того, где модели имеют наибольшую разницу. Языки программирования CORBA является спецификацией и поэтому может Выпущенная вслед за Windows 98 операционная система Windows Me ( windowsme) продолжала линию Windows 9x и имела много новых возможностей: средства восстановления информации после сбоев, улучшенные возможности работы с мультимедиа и ряд других.
Параллельно с Windows 9x, начиная с 1993 года, выпускалась корпоративная операционная система Windows NT (NT - New Technology (Новая технология)), которая с самого начала проектировалась с учетом всех требований, предъявляемых к современным операционным системам: расширяемости, переносимости, надежности, совместимости, производительности. Эти свойства были достигнуты за счет применения передовых технологий структурного проектирования, таких как клиент-сервер, микроядра, объекты.
В отличие от Windows 9x, в которой реализована многозадачность без вытеснения, в Windows NT используется механизм многозадачности с вытеснением.
Windows NT поддерживает симметричную многопроцессорную организацию вычислительного процесса, в соответствии с которой операционная система может выполняться на любом свободном процессоре или на всех процессорах одновременно, разделяя память между ними. Учитывая, что многозадачность реализуется на уровне нитей, разные части одного и того же процесса могут действительно выполняться параллельно.
Windows NT поддерживает существующие файловые системы, включая файловую систему MS-DOS (FAT), файловую систему CD-ROM, файловую систему OS/2 (HPFS) и собственную новую файловую систему (NTFS).
В отличие от большинства других операционных систем, Windows NT изначально разрабатывалась с учетом возможности работы в сети. В результате этого функции совместного использования файлов, устройств и объектов встроены в интерфейс с пользователем.
Дальнейшая эволюция операционных систем семейства Windows привела к объединению технологии NT с линейкой 9х. В 2000 году появилась операционная система Windows 2000, построенная на технологии NT и вобравшая в себя все лучшие качества Windows 9х. Наиболее важные отличия этой системы от предыдущих заключаются в использовании нового ядра Windows NT, что повысило надежность работы операционной системы с точки зрения корректности выполнения многозадачных приложений, расширило возможности сетевых настроек и позволило использовать файловую систему NTFS (New Technology File System - Файловая система NT), надежность которой подтверждена годами использования на серверных платформах.
Прямой наследницей Windows 2000 явилась вышедшая в 2002 году операционная система Windows XP (eXPerience - опыт) , также созданная на основе технологии NT. Система стала более простой, надежной, безопасной и быстрой.
В Windows XP используется привычный интерфейс Windows, но более простой и «интеллектуальный». Удалены лишние элементы пользовательского интерфейса, а стандартные элементы стали интуитивно понятными. Упрощен механизм поиска информации, ставший при этом более эффективным. Обеспечивается поддержка многих национальных языков. Благодаря использованию новых программ-мастеров, упрощена настройка системы для подключения новых устройств, сетевых соединений и т.д. Имеются эффективные, встроенные в систему инструменты для работы в Интернете, которые ускоряют навигацию и поиск информации в WWW, позволяют передавать мгновенные текстовые сообщения, общаться в режиме реального времени посредством передачи звука и видео.
Поддерживаются устройства нового поколения: компьютеры с возможностью управления питанием, шины AGP, USB и IEEE 1394, DVD-диски, адаптеры ATM, кабельные модемы и т.д. Имеется встроенная сетевая поддержка для подключения к системам Windows NT Server, Novel NetWare и Unix.
В Windows XP появилось множество средств для индивидуальных домашних пользователей, в том числе поддержка профессиональной работы с цифровым мультимедиа -цифровыми изображениями, музыкой, видео, DVD-файлами, а также многие другие возможности.
В настоящее время последней разработкой компании Microsoft является ОС Windows 7. Корпорация Microsoft планировала разработку операционной системы Blackcomb, которая была переименована в Vienna, а затем стала известна как Windows 7, с 2000 года. Blackcomb должна была заменить Windows XP, но стала преемницей Vista. В октябре 2008 года Windows 7 стало официальным названием ОС. Ожидалось, что финальная версия Windows 7 выйдет во второй половине 2009 года, однако позже Microsoft назвала в качестве срока начало 2010 года. В конце октября 2008 Microsoft продемонстрировала Windows 7. Позднее вышли бета-версия и релиз-кандидат ОС. Окончательная версия системы появилась 22 июля. Windows 7, в том числе и российская версия, появилась в магазинах 22 октября 2009 года.
CORBA и DCOM поддерживают как статические, так и динамические вызовы объектов. COM реализует динамический вызов, немного отличающийся от DII / DSI в CORBA (см. Ниже) или JavaReflection. Обычно компилятор MIDL создает прокси-сервер и код-заглушку, зарегистрированные в системном реестре Windows. Интерфейс IDispatch используется динамически для вызова методов на интерфейсе на основе маршалинга, управляемого библиотекой. Вместо использования отдельной DLL-прокси / заглушки, которая содержит информацию, специфичную для интерфейса, общий маршалер может выполнять маршалинг, читая информацию о библиотеке типов [Grimes97].
Объекты CORBA могут быть вызваны интерфейсом динамического вызова (DII на рисунке 2), который позволяет клиенту напрямую обращаться к базовым механизмам запросов, предоставляемым ORB. Приложение использует DII для динамического запроса запросов к объектам, не требуя привязки к конкретному интерфейсу IDL. В отличие от окон IDL (которые разрешают только запросы в стиле RPC), DII также позволяет клиентам делать блокировку отложенной синхронной (отдельной операции отправки и получения) и односторонние (только для отправки) звонки. Однако информация об объекте должна находиться в Репозитории информации (см. Рис. 2). Динамический скелетный интерфейс (DSI на рисунке 2) является аналогом сервера на стороне клиента DII. ORB может доставлять запросы к реализации объекта. Реализация объекта не имеет знаний о типе объекта, который он реализует во время компиляции. Клиент, делающий запрос, понятия не имеет, использует ли реализация специфичные для типа IDL-скелеты или использует динамические скелеты.
Любой объект Java наследует объект java.lang.Object, который содержит информацию о типе. Отражение и интроспекция могут использоваться для запроса информации о типе объекта. API Reflection API (в версии 1.2 спецификации языка Java), однако, не интегрирован с Java / RMI [Emmerich00].
3.1. Передача параметров
Три технологии поддерживают параметры, проходящие по значению по ссылке. Интерфейсы COM и CORBA передаются в качестве ссылок, интерфейсы Java должны реализовывать интерфейс java.rmi.Remote для передачи по ссылке, все остальные объекты и параметры передаются по значению. Параметры, которые являются объектами Java, должны реализовывать интерфейс Serializable для передачи по значению.
Параметры COM могут быть указаны в IDL либо для передачи по значению, либо по ссылке. Параметры CORBA, которые не указаны как интерфейсы CORBA, включая сложные типы данных, передаются по значению. Причина этого в том, что CORBA не определяет классы в IDL (объекты CORBA могут быть реализованы практически на любом языке, включая языки, которые не являются объектно-ориентированными). Объект по значению (OBV) является совершенно новым расширением стандарта CORBA. OBV означает, что объект CORBA, помимо передачи по ссылке, также может передаваться по значению по сети. Эта функция синергетична с отображением Java-to-IDL [Welsh01]. Но в отличие от Java, это только состояние, которое может быть передано, это из-за возможного другого языка на другом конце.
3.2. Сбор мусора
И DCOM, и Java пытаются выполнить сборку мусора для удаленных серверных объектов. CORBA не пытается выполнять сборку мусора общего назначения, но некоторые продукты CORBA включают в себя собственные услуги по сбору мусора. Объект COM-сервера отслеживает клиентов, используя подсчет ссылок, как описано в 2.2. Когда клиенты не ссылаются на экземпляр COM-объекта, он удаляет себя. Метод DCOM для сбора мусора (механизм pinging) подвергся критике из-за увеличения сетевого трафика. Объекты Java имеют встроенный подсчет ссылок, где отдельный процесс в JVM, сборщик мусора выпускает экземпляры, когда ни один другой объект не имеет ссылок на объект.
Поддержка оборудования
DCOM в основном поддерживается на платформе Windows, но он пытался обеспечить COM на других аппаратных платформах, не будучи очень успешным (например, SOLARIS); CORBA и Java / RMI поддерживаются практически на всех аппаратных платформах.
Основным преимуществом промежуточного программного обеспечения Java является то, что одна и та же версия приложения может с небольшими изменениями работать на любой платформе с совместимой JVM.
Сетевые протоколы Сетевой протокол DCOM сильно привязан к RPC, сетевые протоколы CORBA и Java / RMI не являются [Chung]. Была предоставлена спецификация CORBA GIOP (GeneralInter-ORB Protocol) для обеспечения взаимодействия между ORB, работающими на разных сетевых протоколах. IIOP - это интернет-специализация GIOP, обеспечивающая транспорт через безопасные уровни сокетов через TCP / IP. Все CORBA 2-совместимые ORB могут использовать альтернативные протоколы, если они также обеспечивают IIOP [Welsh01]. Сетевые протоколы для трех стандартов не являются основными протоколами для Интернета. DCOM и IIOP обычно не работают поверх брандмауэров, где HTTP является единственным используемым протоколом. Тем не менее, Java ORB можно загрузить в виде апплета (ORBlet), упрощающего распространение. Java ORB могут также смешиваться и сопоставляться без перекомпиляции, если установлен JVM.
Безопасность Модель безопасности DCOM в Windows NT основана главным образом на безопасности NT LAN Manager, в то время как CORBA определила собственную службу безопасности для проверки подлинности клиентов. Модель безопасности Windows NT является специфичной для Windows и не соответствует другим стандартам безопасности, таким как Kerberos. Это вызывает осложнения для безопасности компонентов DCOM, если используются другие протоколы безопасности или LAN, напримерNovellNetWare. DCOM ожидает, что пользователь будет аутентифицирован и авторизирован как пользователь в домене Windows NT для контроля доступа к компонентам. Если NovellNetWare заботится об аутентификации пользователя и авторизации на стороне клиента, а пользователь не определен как пользователь Windows NT, это вызывает проблемы с авторизацией на сервере DCOM. Тем не менее, можно избежать этих проблем, не используя встроенную защиту сервера DCOM, с возможными последствиями, которые могут иметь вредоносное использование. Еще одна проблема с безопасностью Windows NT - это масштабируемость и отсутствие поддержки делегирования. В Windows 2000 реализована модель безопасности Kerberos, которая более масштабируема и поддерживает делегирование и взаимную аутентификацию между сервером и клиентом. CORBA обеспечивает безопасность на двух уровнях, где уровень 1 включает аутентификацию пользователя, авторизацию, шифрование данных и целостность. Уровень 1 позволяет приложениям, не поддающимся безопасности, относиться к безопасному домену. Уровень 2 обеспечивает более сильную модель безопасности, где приложения защищены от безопасности. Java / RMI использует встроенные механизмы безопасности Java. Для повышения уровня безопасности можно использовать отдельный менеджер безопасности (java.rmi.RMISecurityManager), например, используя SecureSocketLayer (SSL). Менеджер безопасности не является обязательным, но позволяет клиентам RMI обрабатывать сериализованные объекты, где у клиента нет соответствующих файлов классов в локальном пути класса. Компонентные модели
С конвергенцией моделей компонентов EJB и CCM на самом деле это только две конкурирующие модели компонентов, Microsoft и другие. Хотя EJB и CCM полностью объектно-ориентированы, COM + / MTS основаны на компонентах. Все они предоставляют такие услуги, как транзакции, безопасность, параллелизм и многопоточность. Масштабируемость хорошо поддерживается всеми моделями через продукты сервера приложений.
И EJB, и CCM предоставляют XML-дескрипторы для маркировки компонентов с информацией о упаковке и развертывании. Кроме того, CCM предоставляет дескрипторы сборки, чтобы показать, как компоненты CORBA должны быть связаны между собой. Библиотеки данных и библиотеки типов используются в Windows NT для развертывания компонентов DCOM. В Windows 2000 сценарии развертывания автоматически создаются для конкретного сервера при установке компонента DCOM. Эти сценарии развертывания могут быть установлены вручную или загружены (если клиент является интернет-браузером).
Большинство продуктов серверов приложений, поставляемых сегодня, включают поддержку всех трех компонентных моделей, даже если основная архитектура часто строится поверх архитектуры CORBA. Компоненты DCOM обычно расширяются мостом CORBA при установке на сервере приложений.
Наибольшее различие между составными моделями заключается в понятии идентичности объекта и жизненного цикла, когда COM обычно не неявно обрабатывает состояние вместе с идентификатором объекта. Состояние должно быть загружено отдельно после создания COM-объекта. Время жизни объекта COM ограничено временем жизни его клиентов и, в конечном счете, временем жизни процесса, в котором он существует [Rosen98]. COM-объект в MTS может за свою жизненную нагрузку и хранить несколько различных идентифицируемых состояний и использоваться несколькими клиентами. Клиентские программы обычно отвечают за явное управление состояниями и его ассоциациями с объектами COM. Клиентские программы для объектов CCM (CORBA) и EJB не имеют понятия состояния с отдельным идентификатором, кроме объекта, который его инкапсулирует.
Заключение
Распределенные объекты и модели компонентов, сравниваемые в этом эссе, весьма схожи по отношению к архитектуре и поддерживаемым функциям. Это также вывод большинства опубликованных статей, которые сравнивали технологии последних лет (например, [Chung] [GR00] [MCP98] [Raj] [Payton] [Welsh01] [Rosen98]). Наиболее значительным различием в архитектуре является понятие идентичности объекта и жизненного цикла.
Преимущество CORBA заключается в объектно-ориентированной, более современной и оснащенной более широкими возможностями, чем COM. Технология CORBA имела большой недостаток: она слишком низкоуровневая и сложная, и поэтому ее трудно освоить, требуя очень опытных разработчиков [Welsh01]. Поэтому объекты CORBA трудно использовать повторно. CCM - отличный шаг в направлении определения и группировки объектов CORBA для более высоких абстракций как компонентов. Еще одним преимуществом CORBA является то, что разработчики могут выбирать практически любой язык, аппаратную платформу, сетевой протокол и технологию персистентности, а также использовать CORBA.
Платформа Java и промежуточное ПО для объектов являются очень хорошим выбором для интеграции приложений и поддерживаются практически всеми серверами приложений, интеграционными брокерами, мониторами транзакций, серверами XML, продуктами интеграции B2B / корпоративных приложений и механизмами перевода данных [GR00]. CORBA дополняет Java в интеграции приложений и унаследованных систем, написанных на других языках, чем Java.
Технологии Microsoft, такие как DCOM, COM + / MTS, являются очень хорошим выбором для организаций, которые в основном используют технологии Windows для запуска критически важных приложений. Самый большой недостаток технологий Microsoft - ограничение (текущее?) Для платформы Windows.
Совместимость между различными объектными моделями была проблемой, поскольку война промежуточного программного обеспечения началась в середине 1990-х годов. Внедрение Java как языка Интернета еще больше вызвало проблему взаимодействия, тем более, что большинство приложений были написаны в других технологиях. С тех пор Java выросла с языка программирования до полной платформы разработки приложений и поддерживается большинством систем интеграции приложений. Стандарт Java (J2EE) был расширен для обеспечения реализации ORB (Java-IIOP) в дополнение к RMI в качестве опции распределенной технологии. Архитектуры Java и CORBA достаточно схожи, чтобы взаимодействовать легко, в то время как COM относительно несовместим с этими двумя. OMG определила мост CORBA-COM для решения проблем совместимости этих двух моделей распределенных объектов (см. [Rosen98] для подробного описания совместимости COM-CORBA).
XML (eXtensibleMark-upLanguage) и SOAP вместе с серверами приложений показали большую перспективу для взаимодействия между различными объектными моделями. Microsoft и OMG, а также многие другие поставщики приняли XML. XML является истинным независимым от платформы стандартом и может использоваться любым типом приложения или объектной модели на любой аппаратной платформе. XML-файлы являются ASCII-файлами и могут транспортироваться по HTTP-протоколу, избегая проблем с, например, брандмауэрами. Недостатком XML является определение согласованных метамоделей между поставщиками и потребителями XML-сообщений. Кроме того, XML достаточно пространственный, с возможными очень большими издержками описательной информации. Тем не менее, можно использовать переводчики стилей-листов как XSLT, чтобы перевести данный XML-файл из XML-модели в другую XML-модель. SOAP удовлетворяет необходимость обмена структурированными данными через Интернет независимо от базовых платформ. SOAP в отличие от CORBA не предлагает никаких услуг или инструментов управления. Аргумент брандмауэра в пользу SOAP может быть сомнительным, если SOAP выполняет вызовы RPC через брандмауэры. Это подрывает режим безопасности, поскольку брандмауэр считает, что это просто безопасный веб-трафик, который проходит через него. Microsoft .NET обещает реализовать как XML, так и SOAP, что дает возможность приложениям Windows легко взаимодействовать с приложениями, отличными от Windows. Серверы приложений представляют собой конвергенцию нескольких технологий, включая модели объектов и компонентов, распределенную обработку приложений и мониторы транзакций объектов. Серверы приложений, такие как транзакции, безопасность, настойчивость, потоки, службы именования и службы каталогов, а также функции распределенной обработки. Серверы чаще всего поддерживают все EJB, CORBA и COM, обеспечивая интероперабельность между компонентами. Интегрированные средства среды разработки (IDE) поддерживают разработчиков для создания и использования фреймворков и различных архитектур, часто основанных на шаблонах. Эволюция поддержки инструмента для разработки распределенных систем может помочь избежать значительной части сложного программирования распределенных компонентов. Сервер приложений и интегрированные среды разработки вместе, скорее всего, позволят разработать компоненты, которые используют распределенную технологию, которая наилучшим образом разрешит требования к распределенному приложению. Также возможно поддерживать интерфейсы от любой из распределенных технологий, основанных на типе клиентов, запрашивающих услуги от компонента (ов).
Список литературы
1. Shelley Gaskin, Robert L. Ferrett GO! with Microsoft Windows 7 Comprehensive; Prentice Hall - Москва, 2011. - 720 c.
2. Баула В. Г., Томилин А. Н., Волканов Д. Ю. Архитектура ЭВМ и операционные среды; Академия - Москва, 2011. - 336 c.
3. Воробьев Л. В., Давыдов А. В., Щербина Л. П. Системы и сети передачи информации; Академия - Москва, 2009. - 336 c.
4. Вычислительные системы, сети и телекоммуникации: Учебник для вузов. 2-е издание /Под ред. В.Л. Бройдо. – М.: «Альянс – Пресс», 2004 г. – 495 с.
5. Галатенко В. А. Программирование в стандарте POSIX. Курс лекций; Интернет-университет информационных технологий - Москва, 2004. - 560 c.
6. Ганеев Р. М. Проектирование интерфейса пользователя средствами Win32 API; Горячая Линия - Телеком - , 2007. - 360 c.
7. Гримов С.С Локальные сети: структура и работа. – Спб.: БХВ-Питер, 2004. – 432с.
8. Дейтел Х. М., Дейтел П. Дж., Чофнес Д. Р. Операционные системы. Часть 2. Распределенные системы, сети, безопасность; Бином-Пресс - Москва, 2011. - 704 c.
9. Коньков К. А. Устройство и функционирование ОС Windows. Практикум к курсу "Операционные системы"; Бином. Лаборатория знаний - Москва, 2008. - 208 c.
10. Магда Ю. С. UNIX для студента; БХВ-Петербург - Москва, 2007. - 480 c.
Мартемьянов Ю. Ф., Яковлев А. В., Яковлев А. В. Операционные системы. Концепции построения и обеспечения безопасности; Горячая Линия - Телеком - , 2011. - 338 c.
11. Мертенс Петер Интегрированная обработка информации. Операционные системы в промышленности; Финансы и статистика - , 2007. - 424 c.
12. Назаров С. В., Гудыно Л. П., Кириченко А. А. Операционные системы. Практикум для бакалавров; КноРус - Москва, 2012. - 376 c.
13. Операционные системы; Либроком - Москва, 2010. - 352 c.
14. Основы работы в операционной системе Windows. Практикум пользователя персонального компьютера; Феникс - Москва, 2007. - 176 c.
15. Партыка Т. Л., Попов И. И. Операционные системы, среды и оболочки; Форум - Москва, 2010. - 544 c.
16. Практикум по операционным системам; Либроком - Москва, 2010. - 328 c.
17. Свиридова М. Ю. Операционная система Windows XP; Академия - Москва, 2006. - 192 c.
18. Свиридова М. Ю. Операционная система Windows ХР; Академия - Москва, 2009. - 192 c.
19. Торчинский Ф. И., Ильин Е. С. Операционная система Solaris; Интернет-университет информационных технологий, Бином. Лаборатория знаний - Москва, 2011. - 600 c.
- Основы работы с операционной системой Windows 7 (Администрирование ОС Windows7, основные задачи и принципы)
- Анализ и оценка средств реализации структурных методов анализа и проектирования экономической информационной системы (Анализ существующих решений для розничной торговли)
- Трудовая мотивация и адаптационный потенциал сотрудников организаций (Понятие адаптации)
- Управление поведением в конфликтных ситуациях (Теоретические аспекты исследования методов исследований конфликтов в организациях)
- Влияние кадровой стратегии на работу службы персонала (Особенности Влияния кадровой стратегии на работу службы персонала «Северо-Западное пароходство»)
- Разработка нового товара и выведение его на рынок (на конкретном примере)
- Россия в системе международных кредитных отношений
- Международный валютный фонд: цели, функции, особенности (Современные финансовые институты)
- Финансовая политика и ее реализация в РФ (Проблемы финансовой политики РФ на современном этапе)
- Способы представления данных в информационных системах (Представление данных в системах обработки данных)
- Информация в материальном мире (Информация в современном обществе)
- Методы и средства проектирования информационных систем и технологий (Выбор средства для моделирования бизнес-процессов)