Файл: Распределенные системы обработки информации (Анализ тестов и технология Сorba).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 21.05.2023

Просмотров: 169

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

5. Основные службы универсальные CORBA

Трехуровневая архитектура систем, спецификациям OMG, в системы данными, взаимодействующих CORBA- и интерфейсы представления .

Однако очевидно, в ИС требуется множество объектных , которые зависят предметной и базовую для распределенными . С целью создания приложений OMG стандартизовал часто сервисы ( CORBAservices 1.).

Сервис Жизненнго Цикла (Life Cycle Service) определяет создания, , перемещения удаления на .

Сервис Именования (Naming service) для и ссылок CORBA-объекты. Его задача в , чтобы образом соединение друг другом. Служба представляет хранилище ссылок. Обращение этому выполняется получения объектной , идентифицируемой читаемому ( разработчику) объекта.

Сервис Событий (Event ) обеспечивает асинхронного приложений.

Сервис Долговременного Хранения (Persistence ) предоставляет универсальных для экземпляров в памяти. Сервис таким , что его на объектной данных.

Сервис Транзакций (Transaction ) поддерживает моделей , включая транзакции. Сервис необходим корректной приложений многопользовательском .

Сервис Отношений (Relationship service) логические между CORBA-. Сервис определяет дополнительных объектов: и . Роль представляет CORBA-объект, характер , а характеризует объектов области.

Сервис Контроля Совместного Доступа (Concurrency service) клиентам свои при разделяемых . Управление разделяемыми осуществляется помощью . Каждая блокировка с ресурсом единственным . Сервис определяет несколько блокировок, соответствуют способам .

Сервис Внешнего Представления (Externalization service) копию CORBA- в некоторого представления - , элемента данных т. .

Сервис Запросов (Query Sevice) обеспечивает запросов объектов. Он собой SQL и на спецификациях SQL3 языке запросов (Object Query Language - OQL).

Сервис Лицензирования (Licensing Service) операции отслеживания компонентов, обеспечить компенсацию использования.

Данный поддерживает модель компонента любой его цикла.

Сервис Свойств (Properties Service) операции, позволяют ассоциировать величины ( свойства) любым .

Сервис Времени (Time Service) предоставляет для времени среде объектов. Кроме , предусматривает для и событиями, на время.

Сервис Безопасности (Security Sercice) полную для безопасности объектов. Он аутентификацию, контроля , конфиденциальность, и прав между .

Сервис Коммерции (Trade Service) обеспечивает «Желтые » для ; это возможность оповещать своих и заявки себе «рынок ».


Сервис Контейнеров (Collection Service) предоставляет CORBA для и общедоступных .

Известно, что OMG не независимыми от . Часть из может создана базе служб. Согласно OMG, существует на . 1 зависимостей службы другой.

Универсальные предоставляют интерфейсов уровня делятся два : горизонтальные вертикальные.

Рис. . Граф зависимостей , специфицированных OMG

Горизонтальные средства интерфейсы, зависящие предметной . В настоящее существует спецификация универсальных , состоящая следующих :

1) Средств интерфейса. Они аспекты, представления , и инструменты разработки , средства автоматизации работы, на стол () пользователя т. .

Средств управления . Они предоставляют , с которых моделировать, , сохранять, , перемещать и ею. Предполагается, данный должен из спецификаций:

  • моделирование ( правила, которым структуризация доступ информации),
  • и информации ( использование данных систем ),
  • информационный ,
  • стандарты и , поддерживающие информацией разделяемые , сетевые или интерфейсы.

) Средств управления . Они задают утилит, функции администрирования, есть интерфейсы операций, за , мониторинг, , конфигурирование т. .

4) Средств задачами. Предполагается, данный будет четырьмя : службы потоками (workflow ), службы агентов ( facility), управления (rule facility), автоматизации ( facility).

Вертикальные предназначены поддержки областей : финансовой , промышленного , медицины т. .

Разрабатываются спецификации средств:

) Средств обработки . Специфицируют доступ обмен данными. Роль службы в приложений пользователя проверке, , визуализации сохранению данных.

) Средств поддержки супермагистрали ( facility). Специфицируется сетей, и их , а множество информации набор , обеспечивающих и доступ этой .

3) Средств автоматизированного . Обеспечивают интеграцию функций с компьютеров. В объединяемых могут также процессами , контроль , финансовые маркетинговые .

4) Средств распределенных . Службы этой должны базис, основе возможно построение функционирование модели.

) Средств информатизации газовой нефтяной . Эта предметная характеризуется количеством и сложностью .

6) Средств коммуникаций ( facility). Включают формы транзакций: валюты, платежами, и .п.

) Средств поддержки приложений. Обслуживают , разработку, и приложений, корпоративную систему. Данные включают анализа, , реализации, и системы.


6. СОЗДАНИЕ CORBA ПРИЛОЖЕНИЯ В J++BUILDER

2. Написание интерфейса

Создание CORBA на Java с интерфейса объекта, язык интерфейсов (Interface Definition Language, IDL).

Создадим hello.

module HelloApp

{

Hello

{

string sayHello();

void ();

};

};

Данный интерфейс лишь метода и sayHello. Причем, не , что эти , главное определяем, они и какие них и параметры.

Далее запустить IDL-to-Java :

idlj - Hello.idl

В директории новая HelloApp, в содержаться java-. Каждый из имеет назначение.

• HelloPOA. java — класс, представляет ни иное, скелет (skeleton) обеспечивает сервера.

• _HelloStub. — класс, заглушку () клиента. Обеспечивает клиента.

• HelloHelper. и HelloHolder. — классы, вспомогательные для CORBA .

• HelloOperations.java — , содержащий интерфейса на Java.

• Hello.java — -наследник HelloOperations, интерфейс .omg.CORBA.Object.

2. Создание

Теперь наша — написать , реализующий hello. В случае будет HelloImpl. Обратите , на , что является класса HelloPOA. В HelloImpl методы, в Hello..

Для упрощения объявление можно из HelloOperations.java, jdlj.

HelloImpl extends HelloPOA {

ORB orb;

void setORB(ORB _val) {

= orb_;

}

// implement sayHello()

public String sayHello() {

"\nHello world !!\";

}

// implement () method

void () {

orb.(false);

}

}

Следующим будет собственно части . Это будет HelloServer.

В нем всего метод – функция .

Первое что делаем, ORB. Затем создаем класса объекта (HelloImpl) регистрируем в ORB. Дальше специальную имен (NameService) регистрируем ней удаленного , чтобы смог найти.

Рассмотрим эти .

1. Создание инициализация ORB. Производится статического init ORB

ORB orb = ORB.(args, );

2. Создание класса объекта регистрация в ORB

HelloImpl helloImpl = HelloImpl();

helloImpl.setORB(orb);

. Получение контекста (NamingContext)

org..CORBA.Object objRef = orb._initial_("NameService");

NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);

В строчке получаем ссылку службу (NameService). Но фактически обыкновенный CORBA- и того, использовать как имен (NamingContext), вызвать narrow NamingContextHelper, который бы данный CORBA-.

4. Регистрация удаленного (HelloImpl)

String name = "Hello";

NameComponent [] = ncRef.to_( name );

ncRef.(path, );

Регистрация имени для , чтобы смог удаленный . Этой цели функция (NameComponent[] nc, Object ) интерфейса NamingContext.

. Ожидание запросов клиента

.run();

Теперь готов работе.

// HelloServer.

import HelloApp.*;

org..CosNaming.*;

import .omg.CosNaming.NamingContextPackage.*;

org..CORBA.*;

import .omg.PortableServer.*;

org..PortableServer.POA;

import .util.Properties;

HelloImpl extends HelloPOA {

ORB orb;

void setORB(ORB _val) {

= orb_;

}

// implement sayHello()

public String sayHello() {

"\nHello world !!\";

}

// implement () method

void () {

orb.(false);

}

}

class HelloServer {


static main(String []) {

try{

// and the ORB

ORB = ORB.init(, null);

// reference rootpoa & the POAManager

POA =

POAHelper.narrow(.resolve__references("RootPOA"));

.the_POAManager().();

// create and it the ORB

HelloImpl helloImpl = HelloImpl();

helloImpl.setORB(orb);

// object from servant

.omg.CORBA.Object = rootpoa._to_(helloImpl);

Hello href = HelloHelper.(ref);

// the naming

// NameService invokes name

org..CORBA.Object objRef =

orb._initial_("NameService");

// Use NamingContextExt which part the Interoperable

// Naming Service (INS) .

NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);

// the Object Reference Naming

String name = "Hello";

NameComponent [] = ncRef.to_( name );

ncRef.(path, );

System.out.("HelloServer ready waiting ...");

// for from

orb.();

}

catch (Exception ) {

System.err.("ERROR: " + e);

.printStackTrace(System.out);

}

System..println("HelloServer Exiting ...");

}

}

3. Создание

Перейдем к кода клиента.

Основные написания приложения

  1. Создание инициализация ORB
  2. Получение службы (NamingContext)
  3. Нахождение удаленного
  4. Вызов метода sayHello.
  5. Вызов shutdown.

Как , первые пункта с создания приложения, рассматривать не .

Третий пункт тоже просто. Создается NameComponent. Вызывается метод (NameComponent[] path), отыскивает имени объект ( CORBA-объект). При метода (org..CORBA.Object obj) helloHelper (сгенерированного компилятором) объектную на hello.

String = "Hello";

helloImpl = HelloHelper.narrow(ncRef._str());

Теперь можно метод sayHello:

System..println(helloImpl.sayHello());

Метод завершает сервера.

helloImpl.();

//testClient.java HelloApp.*;

import .omg.CosNaming.*;

org..CosNaming.NamingContextPackage.*;

import .omg.CORBA.*;

class HelloClient

{

Hello helloImpl;

public void (String args[])

{

{

// create initialize ORB

ORB orb = ORB.(args, );

// get root context

.omg.CORBA.Object objRef =

.resolve__references("NameService");

// Use NamingContextExt of NamingContext. This

// part the Interoperable Service.

NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);

// the Object Reference Naming

String name = "Hello";

helloImpl = HelloHelper.(ncRef.resolve_(name));

System..println("Obtained handle server : " +

helloImpl);

System.out.(helloImpl.sayHello());

helloImpl.shutdown();

} (Exception e) {

System..println("ERROR : " + ) ;

e.printStackTrace(System.);

}

}

}

2. Компиляция и приложения

Файлы HelloServer. and HelloClient., Hello.idl папка HelloApp, idkj. должны в папке.

Для клиента сервера в строке

javac *. HelloApp/*.java

.exe в …\.5.\bin.

Среда Eclipse позволяет CORBA-приложения. Для

1. Запустить orbd - Object Request Broker Daemon (…\.5.\bin\.exe). Это , чтобы смогли ссылку службу .

start -ORBInitialPort 1050

Параметр -ORBInitialPort– порта, котором работать имен.

. Запуск сервера

java HelloServer -ORBInitialPort -ORBInitialHost localhost

Указывается , на работает имен. Параметр -ORBInitialHost хост, котором сервер .

3. Запуск

java HelloClient -ORBInitialPort -ORBInitialHost localhost

Указывается , на работает имен. Параметр -ORBInitialHost хост, котором сервер .

Для удобства и можно bat-:


idlj - Hello.idl

*.java HelloApp/*.

start HelloServer -ORBInitialPort 1050 -ORBInitialHost

java HelloClient -ORBInitialPort -ORBInitialHost localhost

ЗАКЛЮЧЕНИЕ

Нужно , что CORBA нацелена достижение - разработки систем:

  • систем , находящихся условиях и неоднородности, также и информационных ;
  • интеграция;
  • ;
  • миграция ;
  • повторное неоднородных ресурсов;
  • жизненного систем.

Совершенствование подхода уже 25 . В течении времени улучшил исследования промышленных, решений, создавать , распределенные системы, способны экономически образом. Можно гипотезу, консолидация сетевых, и -ориентированных сможет на более уровень и информационных .

СПИСОК ЛИТЕРАТУРЫ

  1. Белоусов В.Е., Дехтенко В.О., Белоусов А.В. Применение технологии CORBA задачах систем // сборник трудов XX Международной -практической . 2016
  2. Калиниченко Л.А., Когаловский М.Р. Интероперабельность в CORBA 2.//СУБД. -2013. -№ .
  3. Кен Арнольд, Джеймс Гослинг, Дэвид Холмс. Язык программирования Java™.
  4. Кирьянов С.К. Применение CORBA для машины запросов // Вестник Нижегородского Университета . Н.И. Лобачевского. Серия: Математическое моделирование оптимальное . – 2014. - № . – С. 258-
  5. Маслобоев А.В., Шишаев М.Г. Распределенные системы компьютерные обработки : учеб. . – Апатиты: Изд-во КФ ПетрГУ,
  6. Омельченко А.И. Особенности построения информационных на технологии CORBA // Материалы VIII Международной -практической . 2015
  7. Сравнение COM CORBA [Электронный ресурс] URL: ://kunegin./ref3//12.
  8. СОМ или CORBA [Электронный ] URL: http://.narod./base/_or_.html
  9. Механизм удаленных – RPC [Электронный ресурс] URL: ://delphiworld..ru//rpc_.html
  10. PowerBuilder .0 - инструментарий создания распределенных -серверных [Электронный ресурс] URL: ://www..ru//www2//1996//97.
  11. Разработка распределённого Web- [Электронный ресурс] URL: ://www..ru//webdevelopment/-57-.xml
  12. Понятие -серверных [Электронный ресурс] URL: ://bourabai./dbt/.htm
  13. Компоненты приложения. Клиент- взаимодействие роли . [Электронный ресурс] URL: ://www..info//lecture5.
  14. Шевцов А.Н., Шырынханова Д.Ж. Разработка алгоритмов приложения модели анализа исправления экзаменационного . Theoretical & Applied Science. «Development of Applied Mathematics», ISPC, .05., Taraz, Kazakhstan. - №5, . -p.-83. [Электронный ] URL: http://.ru/.asp?=20357857
  1. СОМ или CORBA [Электронный ресурс] URL: http://delphiworld.narod.ru/base/com_or_corba.html

  2. PowerBuilder 5.0 - открытый инструментарий для создания сложных распределенных клиент-серверных приложений [Электронный ресурс] URL: http://www.osp.ru/data/www2/dbms/1996/05/97.htm; Разработка распределённого Web-приложения [Электронный ресурс] URL: http://www.rsdn.ru/article/webdevelopment/49-57-distributedapps.xml