Distributed System L-5-6 (Лекции по распределённым системам)
Описание файла
Файл "Distributed System L-5-6" внутри архива находится в папке "Лекции по распределённым системам". PDF-файл из архива "Лекции по распределённым системам", который расположен в категории "". Всё это находится в предмете "распределённые системы" из 10 семестр (2 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "распределённые системы" в общих файлах.
Просмотр PDF-файла онлайн
Текст из PDF
РаспределенныевычислительныесистемыЛекция №5:Стандарты OMG,Архитектура CORBA, ORBАлексей В. Бурдаков, к.т.н.burdakov@usa.net4-1План лекции• OMG, Стандарты• Object Management Architecture (OMA)• Объектная модель OMA/CORBA и языкопределения интерфейсов IDL• Брокер объектных запросов4-21Реализации ORB• Некоммерческие:••••ACE ORB (TAO) – Washington UniversityORBitOmniORB2 – AT&T Laboratories CambridgeROBIN – Fermi National Accelerator Laboratory• Коммерческие:•••••OAKOrbixWebCorbaPlus for C++ - ExpertsoftVisibroker – Inprise (Borland + Visigenic)Orbacus (OmniBroker)http://adams.patriot.net/~tvalesky/freecorba.html4-3Object Management Group• Факты о OMG:• Основана в апреле 1989• Открытое членство (более 1000 организаций: IBM,Oracle, Boeing, ...)• На сегодня самая большая организация постандартизации• Неприбыльная организация• Цель: Создание и развитие стандартов вкомпьютерной индустрии• Интероперабельныеприложениямасштаба предприятия4-42Стандарты OMG• Стандарты на ПО среднего слоя и егоархитектуру• OMA: Object Management Architecture• CORBA:Common Object Request BrokerArchitecture• Стандарты моделирования и определенияметаданных• MOF: Meta Object Facility• MDA: Model Driven Architecture• UML: Unified Modeling Language• XMI: XML Metadata Interchange• CWM: Common Warehouse Metamodel4-5Статус стандартов OMG• Стандарты OMG приняты International StandardizationOrganization / International Electrotechnical Commission•••••CORBA:OMG IDL:Object Trader ServiceMOF:UML:ISO/IEC 19500-2ISO/IEC 14750:1999ISO/IEC 13235:1998ISO/IEC 14769ISO/IEC DIS 19501-14-63Различные уровниабстракции систем3мета-метамодельметамета-метамодель2мета-метаданныеметамета-метаданныеметамодельметамодель1метаданныеметаданныемодельмодель0данныеданныеMeta-ObjectFacilityMOFMOFMeta ObjectModelUML,UML,CWMCWMObjectTypesObjectsмодельмодельсистемысистемыэкземплярыэкземпляры4-7MOF: Meta Object Facility• Две части стандарта:• Обобщенное средство для представленияметамоделей (средств описания различных моделей)• Репозитарий для моделей и метамоделей• Преимущества от использования:• Модели разных метамоделей основанных на MOFмогут храниться в одном репозитарии• UML диаграммы и CWM основаны на MOF• Для определения MOF использован UML, OCL(Object Constraint Language) и вербальноеописание• Проходит стадию обсуждения на стандартISO/IEC 147694-84CWM: Common WarehouseMetamodel• Стандартизирует метамодели данных для баз ихранилищ данных• Определяет метамодели для реляционных имногомерных данных, OLAP и data mining, и т.п.• Позволяет решить проблему обмена даннымимежду различными базами и хранилищамиданных4-9UML: Unified Modelling Language• Графический язык, стандартным образом выражающийанализ требований и проект прикладной системы• История создания:• Множество методов представления объектнооринетированного анализа и проектирования вначале 90-х•Booch’es•OOSE•OMTGrady BoochIvar JacobsonJim Rambaugh• Компания Rational Software объединила различныеязыки проектирования в UML• Будучи независимым от методологии, используетсябольшим числом средств анализа и проектирования4-105UML: Unified Modelling Language• Структурные диаграммы••••КлассовОбъектовКомпонентовРаспределения•••••Варианты использованияПоследовательностиВзаимодействийСостоянийДействий• Поведенческие диаграммы• Диаграммы управления моделями• Пакетов• Моделей• Подсистем4-11XMI: XML Metadata Interchange• XMI – потоковый формат для обмена MOFсовместимыми метаданными включая UMLмодели, создаваемые на этапе анализа ипроектирования• OMG использовал XML в качестве основы дляязыка обмена метамоделями• XMI это отображение MOF в XML• Отображение UML в XML• Отображение CWM в XML4-126MDA: Model Driven Architecture• Много альтернативных платформраспределенных систем:• J2EE (Java 2 Enterprise Edition)• Компонентная модель CORBA• .NET• Недостатки палтформенной зависимости• Перспективы лидерства платформы не ясны• Опасность смешивания бизнес-логики и платформозависимого кода• Ведет к непереносимым компонентам• На серверной стороне: бизнес-логика «переживает»платформы4-13MDA: Model Driven ArchitecturePIMиеженбраотоPSM дляCORBAотображениеPSM для.EJBИсподникина C++JavaисподникиEXE/DLLEJB4-147MDA: Model Driven Architecture• Платформо-независимый способописания спецификаций и разработкиприкладных систем• Платформо-независимая модель (PIM)• Отображение в ряд платформо-зависимыхмоделей (PSM) (например, CORBA, .NET XML/SOAP, …)• MDA нельзя сравнивать с существующимиMiddleware, т.к.
это модель, описывающая общиенезависимые от конкретных Middleware принципыпостроения распределенных систем4-15OMA и CORBA• OMA (Object Management Architecture)• Определяет основные архитектурные компонентыраспределенной неоднородной объектной среды, ихинтерфейсы и протоколы взаимодействия.• CORBA (Common Request Broker Architecture)• Определение спецификации архитектуры иинфраструктуры для создания распределенныхобъектных систем, основанной на архитектурнойконцепции промежуточного слоя(брокера объектных заявок).4-168План лекции• OMG, Стандарты• Object Management Architecture (OMA)• Объектная модель OMA/CORBA и языкопределения интерфейсов IDL• Брокер объектных запросов4-17Object ManagementArchitectureПрикладныеПрикладныеобъектыобъектыИнтерф.Предм.Обл.Общиеср-ваБрокер объектных запросов (ORB)Сервисы CORBAСпецификация OMA определяет эталонную модель распределенныхобъектов и делит из на различные категории4-189Брокер объектных запросов(ORB)• Коммуникационное ядро, шина, обеспечивающаявзаимодействие между объектами и клиентами• Независимо от:••••их расположения в сетиаппаратной платформыпрограммной платформыязыка программированияБрокер объектных запросов (ORB)4-19Прикладные объекты• Объекты, разработанные под конкретные задачи• Стандартизация не нужнаПрикладныеПрикладныеобъектыобъекты4-2010Сервисы CORBA(CORBA Services)• Независимые от предметной областиинтерфейсы к сервисам, реализующим базовуюфункциональность и используемыебольшинством распределенных объектныхприложений• Включает функции:• именования объектов• управления доступом• поддержания непротиворечивых ссылок междуобъектами в распределенной среде• совместного доступа• транзакций• лицензирования• и др.Сервисы CORBA4-21Общие (горизонтальные) средства(Horizontal/Common Facilities)• Расположены между сервисами и прикладнымиобъектами• Являются потенциально применимыми внезависимости от прикладной области• В отличии от Сервисов CORBA ориентированнына приложения конечных пользователей• Distributed Document Component Facility - средствакомпонентов для распределенных документов• интернационализацияCORBAfacilities4-2211Интерфейсы предметной области(Vertical/Domain Interfaces)• Domain Interfaces = Vertical Facilities• Компоненты, реализующие решения проблембизнеса в определенных «вертикальных»сегментах рынка:••••финансыздравоохранениепроизводствои т.д.DomainInterfaces4-23OMA: Использованиеинтерфейсов4-2412План лекции• OMG, Стандарты• Object Management Architecture (OMA)• Объектная модель OMA/CORBA и языкопределения интерфейсов IDL• Брокер объектных запросов4-25Язык определенияинтерфейсов OMG IDL• Описывает интерфейсы объектов CORBA• Язык для выражения всех концепций объектноймодели CORBA• OMG/IDL:• независим от языков программирования• ориентирован на концепции C++• вычислительно не полон (декларативныйязык)• Определены связывания с различными языками• Для совместимости с другими языками IDLразвивается по принципу «чем проще, темлучше»4-2613Объекты (Objects)• Предоставляет один или более сервисов(операций)• Каждый объект имеет один уникальный впределах ORB идентификатор• Множество ссылок на объект• Ссылки:• поддерживают прозрачность расположения• создаются и управляются ORB• постоянны (persistent)• Объекты создаются и уничтожаются вследствиезапросов4-27Типы (Types)Сконструированныетипыtypedef struct _Address {string street;string postcode;string city;Атомарныетипы} Address;typedef sequence<Address> AddressList;interface Team { ...
};Объектные типыТип (type) – идентифицируемая сущность с ассоциированнымпредикатом (математическая функция одного аргумента с булевымрезультатом), определенным на множестве объектов. Сущностьсоответствует типу если предикат для данной сущности определяетзначение TRUE.4-2814Типы (Types) продолжение4-29Типы (Types) прод.• Value Types:• введены в версии 2.3• технология заимствована из RMI• позволяет передавать по значению любой объект• Value Types названы как «объекты с состоянием»(stateful)• Абстрактный интерфейс• концепция схожа с абстрактным классом в С++• на его основе могут быть созданы другие интерфейсыили типы-значения4-3015Модули (Modules)Модули• Областивидимостиmodule Soccer {typedef struct _Address {string street;string postcode;string city;} Address;Soccer::Address};module People {typedef struct _Address {string flat_number;string street;string postcode;string city;string country;} Address;People::Address};4-31Атрибуты (Attributes)interface Player;typedef sequence<Player> PlayerList;interface Trainer;typedef sequence<Trainer> TrainerList;interface Team {Не изменяемоеreadonly attribute string name;значениеattribute TrainerList coached_by;Изменяемоеattribute Club belongs_to;attribute PlayerList players;...};Тип атрибутаИмя атрибута4-3216Операции (Operations)Вид параметра in, out, inoutinterface Team {Список...Типыпараметроввозвращаемых void bookGoalies(in Date d);значенийstring print();};Тип параметраИмя параметра[oneway] <op_type_spec><identifier>(param1,…,paramL)[raises(except1,…exceptN)][context(name1,…nameM)]4-33Запросы (Requests)• Запросы определяются клиентскими объектами• Состав запроса:• Ссылка на серверный объект• Имя запрашиваемой операции• Запрошенные параметры• Информация о контексте (по транзакции, побезопасности)• Запрос выполняется синхронно• Запрос может быть определен:• статически• динамически4-3417Исключения (Exceptions)• Общие исключения (разрыв связи, неправильнаяссылка, отсутствие свободной памяти, и т.п.