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