CORBA (Common Object Request Broker Architecture) в Java

Содержание

Слайд 2

ВОПРОСЫ:

CORBA (Common Object Request Broker Architecture)
Понятие CORBA .
Архитектура CORBA
IDL (Interface Definition Language)
Брокер

ВОПРОСЫ: CORBA (Common Object Request Broker Architecture) Понятие CORBA . Архитектура CORBA
объектных запросов (ORB).
Этапы создания проекта на основе CORBA
Контрольные вопросы .

Слайд 3

Вопрос 1
Понятие CORBA
Основные термины

Вопрос 1 Понятие CORBA Основные термины

Слайд 4

ПОНЯТИЕ CORBA

OMG (сокр. от англ. Object Management Group—
800 организаций
С 1989 American Airlines

ПОНЯТИЕ CORBA OMG (сокр. от англ. Object Management Group— 800 организаций С
один из основателей OMG.
Некоторое время в консорциуме участвовала корпорация Microsoft.

Слайд 5

1ПОНЯТИЕ CORBA

CORBA - Common Object Request Broker Architecture
— общая архитектура брокера

1ПОНЯТИЕ CORBA CORBA - Common Object Request Broker Architecture — общая архитектура
объектных запросов) — одна из технологий написания распределённых приложений, продвигаемый консорциумом (рабочей группой) OMG - объектно-ориентированная
задача - обеспечение взаимодействия программ,
суть — независимая от языка работа с удаленными обектами

Слайд 6

ПОНЯТИЕ CORBA

Задача CORBA - интеграция изолированных систем.
Цель - создание распределенных компьютерных систем.
Преимущества :

ПОНЯТИЕ CORBA Задача CORBA - интеграция изолированных систем. Цель - создание распределенных

прозрачность вызова (invocation transparency  ),
прозрачность реализации (implementation transparency )
и прозрачность локализации ( location transparency ) 
CORBA использует:
инкапсуляцию,
наследование,
полиморфизм, 
динамическое связывание.

Слайд 7

1ПОНЯТИЕ CORBA

ППО:
через SQL,
RPC (Remote Procedure Call),
TP мониторы (Transaction Proceesing)

1ПОНЯТИЕ CORBA ППО: через SQL, RPC (Remote Procedure Call), TP мониторы (Transaction

Groupware –
MOM - Message-Oriented Middleware

Слайд 8

2ПОНЯТИЕ CORBA Основные понятия

1.CORBA-объект (target object) –
object reference
2. Идентификатор объекта (object ID) -

2ПОНЯТИЕ CORBA Основные понятия 1.CORBA-объект (target object) – object reference 2. Идентификатор

(Portable Object Adapter).
3. Сервант 
необходимо отделять CORBA-объекты от сервантов.

Слайд 9

3ПОНЯТИЕ CORBA

4. Скелетон 
5. Активизация
6. Активизированные объекты
6. Временные объекты 
8. Деактивизация 
9. Объектный адаптер

3ПОНЯТИЕ CORBA 4. Скелетон 5. Активизация 6. Активизированные объекты 6. Временные объекты

Слайд 10

4ПОНЯТИЕ CORBA

10. ORB (Брокер объектных запросов ) - основной компонент CORBA..
коммутационная плата
библиотека

4ПОНЯТИЕ CORBA 10. ORB (Брокер объектных запросов ) - основной компонент CORBA.. коммутационная плата библиотека процесс-демон.

процесс-демон.

Слайд 11

Архитектура CORBA

Архитектура CORBA

Слайд 12

5ПОНЯТИЕ CORBA

четыре основных элемента:
1) ORB
2) Сервисы CORBA 
3) CORBA facilities
4) Application Objects 

5ПОНЯТИЕ CORBA четыре основных элемента: 1) ORB 2) Сервисы CORBA 3) CORBA facilities 4) Application Objects

Слайд 13

ПОНЯТИЕ CORBA

Технология работы:
«заглушка» (Stub) – в клиентской части.
«скелет» (Skeleton) –

ПОНЯТИЕ CORBA Технология работы: «заглушка» (Stub) – в клиентской части. «скелет» (Skeleton)
у серверного объекта.
- реализация серверного объекта.
-уникальная объектная ссылка.
-передача ORB данных от клиента.

Слайд 14

ПОНЯТИЕ CORBA

Интерфейс не зависит:
от местоположения реализации объекта,
языка программирования.
При создании определения интерфейса оговариваются:

ПОНЯТИЕ CORBA Интерфейс не зависит: от местоположения реализации объекта, языка программирования. При
операции
параметры
исключения
интерфейс
взаимодействие с клиентом объекта,
доступ к реализациям объектов.

Слайд 15

ПОНЯТИЕ CORBA

Клиент - это приложение
реализация объекта - это код и данные
ORB- все

ПОНЯТИЕ CORBA Клиент - это приложение реализация объекта - это код и
действия для:
нахождения,
реализации,
подготовке реализации
передаче данных

Слайд 16

ПОНЯТИЕ CORBA

интерфейс
public interface Hello extends java.rmi.Remote
{
String sayHello() throws java.rmi.RemoteException;
}
класс
public class

ПОНЯТИЕ CORBA интерфейс public interface Hello extends java.rmi.Remote { String sayHello() throws
HelloImpl extends PortableRemoteObject implements Hello
{
public HelloImpl() throws RemoteException {}
public String sayHello() throws RemoteException
{
return "Hello World!\n";
}
}

Слайд 17

ПОНЯТИЕ CORBA

Сформируем серверную часть (3 пункта из предыдущего списка)
import org.omg.CORBA.ORB;
import org.omg.CORBA.Object;
import

ПОНЯТИЕ CORBA Сформируем серверную часть (3 пункта из предыдущего списка) import org.omg.CORBA.ORB;
javax.rmi.PortableRemoteObject;
public class helloServer{
public static void main(String[] args) {
try {
ORB orb = ORB.init(args, null);
Hello hello = new HelloImpl();
String helloIOR = orb.object_to_string((Object)
PortableRemoteObject.toStub(hello));
\\"ior«(Interoperable Object Reference)
Util.writeIOR(helloIOR, "ior", true);
System.out.println("waiting for invocations ...");
orb.run();
} catch (Exception ex) {
ex.printStackTrace();} }}

Слайд 18

ПОНЯТИЕ CORBA
POA и BOA
Объектные адаптеры
 Basic Object Adapter (базовый объектный адаптер), или BOA,
 Portable Object

ПОНЯТИЕ CORBA POA и BOA Объектные адаптеры Basic Object Adapter (базовый объектный
Adapter (POA - переносимый объектный адаптер). 

Слайд 19

ПОНЯТИЕ CORBA

POA - возможность отделить доступ к серванту от самого серванта.
у клиента есть объектная ссылка,

ПОНЯТИЕ CORBA POA - возможность отделить доступ к серванту от самого серванта.
информация о местонахождении  объекта ОА.
 ОА - решение, какой объект (сервант) может обработать данный вызов.

Слайд 20

ПОНЯТИЕ CORBA

Работа сервера на POA состоит из (общий случай):
ссылка на корневой адаптер

ПОНЯТИЕ CORBA Работа сервера на POA состоит из (общий случай): ссылка на
POA;
определение политик нового POA;
создание нового POA
создание серванта;
активация POA.
.

Слайд 21

ПОНЯТИЕ CORBA

CORBA-сервер
на основе стандартного механизма POA
экземпляр ORB
ссылка на службу имен
объект

ПОНЯТИЕ CORBA CORBA-сервер на основе стандартного механизма POA экземпляр ORB ссылка на
"обрезается" (narrow )
публикуется в службе имен.
запускается ORB
.

Слайд 22

ПОНЯТИЕ CORBA

1. ORB orb=ORB.init(args, null);
2. метод resolve_initial_references()
Object,привести к типу POA с помощью

ПОНЯТИЕ CORBA 1. ORB orb=ORB.init(args, null); 2. метод resolve_initial_references() Object,привести к типу

narrow() в Helper-классе объекта POA:
POA rootPOA=POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
.

Слайд 23

ПОНЯТИЕ CORBA

4. POA interface = poaRoot.create_POA(new_POA_name,poaRoot.the_POAManager(),
TestInterfacePolicies);
5. interface.activate_object_with_id(new_POA_name.getBytes(),
new TestInterfaceImpl());
6. poaRoot.the_POAManager().activate();
7. orb.run();
.

ПОНЯТИЕ CORBA 4. POA interface = poaRoot.create_POA(new_POA_name,poaRoot.the_POAManager(), TestInterfacePolicies); 5. interface.activate_object_with_id(new_POA_name.getBytes(), new TestInterfaceImpl());

Слайд 24

ПОНЯТИЕ CORBA

Object Management Architecture ( OMA ) - эталонная архитектура распределенных систем,.
Объекты CORBA –удаленные объекты могут

ПОНЯТИЕ CORBA Object Management Architecture ( OMA ) - эталонная архитектура распределенных
обращаться,
.
Объект - это нечто, что обеспечивает один или более сервисов

Слайд 25

ПОНЯТИЕ CORBA

Серверный объект - набор классов
особенности структуры объектной ссылки CORBA:
формат IOR

ПОНЯТИЕ CORBA Серверный объект - набор классов особенности структуры объектной ссылки CORBA:
- Interoperable Object Reference
протокол GIOP
язык IDL.
транспортные протоколы
параметры для различных транспортов должны быть различными.
ОС несколько профилей. (Совокупность параметров для ТП)
.

Слайд 26

ПОНЯТИЕ CORBA

Компонентная модель CORBA (CCM)
CCM была введена начиная с CORBA 3.0
стандартный

ПОНЯТИЕ CORBA Компонентная модель CORBA (CCM) CCM была введена начиная с CORBA
каркас приложения для компонент CORBA.
Контейнер - набор служб - сервисов CORBA ,
работу выполняет а контейнер приложения.
значительно снижает сложность реализации.

Слайд 27

6ПОНЯТИЕ CORBA

Сервисы CORBA ( CORBAservices )
- базовые сервисы, которые доступны всем объектам, подключенным к коммуникационной

6ПОНЯТИЕ CORBA Сервисы CORBA ( CORBAservices ) - базовые сервисы, которые доступны
шине ORB.

Слайд 28

IDL (Interface Definition Language)

IDL (Interface Definition Language)

Слайд 29

7ПОНЯТИЕ CORBA

IDL (Interface Definition Language)
описательный язык, 
расширение .idl
нет деталей реализации. 
Код, который реализует операции -сервант

7ПОНЯТИЕ CORBA IDL (Interface Definition Language) описательный язык, расширение .idl нет деталей
( servant ).
конкретные языки программирования.

Слайд 30

ПОНЯТИЕ CORBA

На IDL существует несколько возможных структурных объединений:
Enum
module Finance {

ПОНЯТИЕ CORBA На IDL существует несколько возможных структурных объединений: Enum module Finance
enum Currency {pound, dollar, yen, franc};
interface Account {
readonly attribute float balance;
readonly attribute Currency balanceCurrency;
...
};
};
Struct
A struct data type allows you to package a set of named members of various types, for example:
module Finance {
struct CustomerDetails {
string name;
short age;
};
interface Bank {
CustomerDetails getCustomerDetails(in string name);
... }; };
UNION - аналогично

Слайд 31

ПОНЯТИЕ CORBA

Пример использования типа String:
module Finance {
interface Bank {

ПОНЯТИЕ CORBA Пример использования типа String: module Finance { interface Bank {

attribute string sortCode<10>;
attribute string address;
...
};
};
typedef sequence Unbounded;
typedef sequence Bounded;
Спецификацию можно почитать на
http://www.ibm.com/developerworks/webservices/library/co-corbajct3.html

Слайд 32

ПОНЯТИЕ CORBA

Этапы создания распределенных объектных приложений на IDL :
описание объектов на

ПОНЯТИЕ CORBA Этапы создания распределенных объектных приложений на IDL : описание объектов
IDL,
их трансляции на какой-либо язык программирования,
добавление бизнес-логики и компиляция.
Основные понятия
модуль
интерфейс
операция
IDL стаб (stub)

Слайд 33

ПОНЯТИЕ CORBA


C,
C++,
Java,
Cobol,
Smalltalk ,
Lisp
и Ada;
для

ПОНЯТИЕ CORBA C, C++, Java, Cobol, Smalltalk , Lisp и Ada; для
objective C, Visual Basic, Perl и других языков – не все стандартизированы но работают.

Слайд 34

Брокер объектных запросов (ORB).

Брокер объектных запросов (ORB).

Слайд 35

ПОНЯТИЕ CORBA

ORB - это промежуточное ПО, которое устанавливает клиент-серверные отношения между

ПОНЯТИЕ CORBA ORB - это промежуточное ПО, которое устанавливает клиент-серверные отношения между
объектами + спектр сервисов распределен­ного промежуточного программного обеспечения.

Слайд 36

ПОНЯТИЕ CORBA

Позволяет:
вызы­вать сервисы
интероперабельность
посылать - принимать заявки,
поиск реализации объекта-сервера

ПОНЯТИЕ CORBA Позволяет: вызы­вать сервисы интероперабельность посылать - принимать заявки, поиск реализации объекта-сервера

Слайд 37

ПОНЯТИЕ CORBA

вызовы методов компонентов;
реализация как синхронного, так и асинхронного взаимодействия компонентов.

ПОНЯТИЕ CORBA вызовы методов компонентов; реализация как синхронного, так и асинхронного взаимодействия компонентов.

Слайд 38

ПОНЯТИЕ CORBA

Брокер объектных запросов играет в OMA основную роль.
Взаимодействие Клиент – посредством
 заглушки  
Динамический интерфейс

ПОНЯТИЕ CORBA Брокер объектных запросов играет в OMA основную роль. Взаимодействие Клиент

API БОЗ.
 Брокер и сервант:
статический скелет,
динамический интерфейс
объектный адаптер.
Рис.  иллюстрирует взаимодействие с объектным брокером.

Слайд 39

ПОНЯТИЕ CORBA

ПОНЯТИЕ CORBA

Слайд 40

ПОНЯТИЕ CORBA
Пример создания объекта ORB на стороне клиента:
ORB orb = ORB.init(args,

ПОНЯТИЕ CORBA Пример создания объекта ORB на стороне клиента: ORB orb =
null);
org.omg.CORBA.Object objRef =
orb.resolve_initial_references("NameService");
Пример формирования стаба при маршалинге:
Hello hello = (Hello) orb.string_to_object(helloIOR);

Слайд 41

ПОНЯТИЕ CORBA

Интероперабельность брокеров –
CORBA определяет среду для различных реализаций ORB, поддерживающих

ПОНЯТИЕ CORBA Интероперабельность брокеров – CORBA определяет среду для различных реализаций ORB,
общие сервисы и интерфейсы.
обеспечивает мобильность клиентов
Имя файла: CORBA-(Common-Object-Request-Broker-Architecture)-в-Java.pptx
Количество просмотров: 54
Количество скачиваний: 0