Предисловие редакторов русского издания
Вид материала | Документы |
СодержаниеРаспределенные объекты в стиле CORBA Что такое распределенные объекты CORBA? |
- От редакторов русского издания, 12579.28kb.
- Предисловие переводчика и редактора русского издания, 173.31kb.
- Предисловие от редакторов, 3279.6kb.
- Крайон книга третья. Алхимия человеческого духа руководство по переходу человечества, 3416.54kb.
- Электронная библиотека студента Православного Гуманитарного Университета, 3857.93kb.
- Предисловие, 5158.35kb.
- Автор файла (январь 2009г.): Мухамеджан Мухамеджанов, 250.83kb.
- Предисловие ко второму изданию, 1366.96kb.
- Аллан Кардек спиритизм в самом простом его выражении содержание, 4227.55kb.
- Философия русского религиозного искусства XVI-XX вв. Антология, 6335.43kb.
Распределенные объекты в стиле CORBA
Возможно, секрет успеха OMG заключается в том, что эта группа создает спецификации интерфейсов, но не код как таковой. Интерфейсы, определенные OMG, всегда основаны на реальных технологиях, разработанных компаниями — членами этой группы. Спецификации написаны на пассивном языке описания интерфейсов IDL (Interface Definition Language), который определяет функциональность компонентов, — т.е. внешние (часто называемые контрактными) интерфейсы с потенциальными клиентами (в программном смысле). Компоненты, написанные на IDL, должны быть доступны независимо от программных языков, инструментальных средств, операционных систем и сетевой инфраструктуры программных компонент. А после принятия в декабре 1994 спецификации CORBA 2.0 эти компоненты будут способны взаимодействовать через объектные брокеры CORBA, созданные разными производителями.
Что такое распределенные объекты CORBA?
Объекты CORBA представляют собой интеллектуальные единицы способные жить в любом месте сети. Они упакованы в виде двоичных компонентов, к которым удаленные клиенты могут обращаться, вызывая их методы. Как язык, так и компилятор, используемые для создания серверных объектов, являются полностью прозрачными для клиентов. Клиент не обязан знать, где располагается распределенный объект или под управлением какой операционной системы он выполняется. Он может находиться в том же процессе или на машине, расположенной где-то в "межгалактической" сети. Кроме того, клиенту не нужно знать, как реализован серверный объект. Например, серверный объект может быть реализован как набор классов C++ или с помощью миллиона строк на КОБОЛе - клиент не почувствует разницу. В чем действительно нуждается клиент, так это в опубликованном интерфейсе своего серверного объекта. Такой интерфейс служит связующим контрактом между клиентом и сервером. Весь смысл в IDL
Как мы уже сказали, CORBA использует контракты IDL для указания границ компонентов и их контрактных интерфейсов с потенциальными клиентами. CORBA IDL является чисто декларативным языком. Это означает, что он не описывает детали реализации. Вы можете использовать IDL, чтобы лаконично определить API, а также некоторые важные моменты, например, обработку ошибок. Методы, определенные на языке IDL, могут быть реализованы и вызваны из любых языков, которые обеспечивают поддержку CORBA. В настоящий момент это С, C++, Ada и Smalltalk (COBOL, Java и Objective С находятся в работе) (Примечание переводчика: в настоящее время эти компиляторы уже созданы). Программисты имеют дело с объектами CORBA, используя естественные и хорошо знакомые языковые конструкции. Для всех сервисов и компонентов, которые связаны с шиной CORBA, IDL предоставляет интерфейсы, не зависящие от операционной системы и языка программирования. IDL позволяет взаимодействовать клиентским и серверным объектам, написанным на различных языках (рис. 1-1).
Вы можете использовать OMG IDL для указания атрибутов компонентов, родительских классов, от которых они
унаследованы, исключительных ситуаций, порождаемых компонентами, генерируемых ими событий, а также методов, которые поддерживаются интерфейсом компонентов, включая входные и выходные параметры методов и их типы данных. Грамматика IDL является подмножеством C++ с дополнительными ключевыми словами для поддержки концепции распределенности, кроме того, полностью поддерживаются особенности стандарта препроцессора C++ и директивы pragma.
Амбициозность целей CORBA заключается в «IDL-изации» всего клиент/серверного middleware и всех компонентов, взаимодействующих через ORB. OMG надеется достичь этих целей с помощью следующих двух шагов: 1) она превратит все в гвозди и 2) даст каждому молоток.
• «Гвоздем» программы станет IDL. Он позволяет производителям компонентов описать на стандартном языке определений интерфейсы и структуры поставляемых объектов. Определенные с помощью IDL контракты связывают производителей распределенных объектных сервисов с их клиентами. Объект, который запрашивает что-либо у другого объекта, обязан знать интерфейс этого объекта. Репозитарий Интерфейсов (Interface Repository) CORBA содержит определения всех таких интерфейсов. Он содержит метаданные, позволяющие компонентам находить друг друга динамически во время выполнения (run-time). Это делает CORBA самоопределяемой системой.
• «Молоток» состоит из набора распределенных сервисов, которые будут поставлять производители OMG. Такие сервисы определяют:
какие объекты существуют в сети, какие методы они предоставляют, и какие -адаптеры объектных интерфейсов они поддерживают. Местонахождение объекта должно быть прозрачным для клиента. Не должно иметь значения, находится ли объект в том же процессе или где-то во вселенной.
Звучит знакомо? Конечно. Мы описываем «объектную волну» клиент/серверных вычислений. Нынешнее время — время взаимодействующих объектов в противоположность взаимодействующим процессам (Целью этой новой волны является создание для индустрии программного обеспечения некоего объектного подобия "Lego" (самый популярный в мире игрушечный конструктор, прим. ред.) , не зависящего от конкретных производителей, не зависящего от операционных систем, и языков программирования.) Целью этой "новой волны" является создание мультипроизводителей, мультиоперационных систем, муль-тиязыков, функционирующих в "Лего" мире, используя объекты. (Примечание переводчика: В данном случае "Лего" имеет смысл универсального идеального конструктора для создания программных компонентов). Такие производители, как Oracle, Sun, HP, IBM, Digital, Apple, Netscape, Tandem и NCR, используют CORBA как стандартный, IDL-ный интерфейс на объектной дороге. IDL является контрактом, который связывает их всех вместе.
Рис из номера. Наелись; "Дож* зампно. ао чего все похож» на позли "