Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
197
Добавлен:
17.04.2018
Размер:
641.54 Кб
Скачать

ИП. CORBA. Пример. Класc клиента RcalcClient. Страница 2

МИЭТ, 2017.

/*

ArrayList temp = new ArrayList(); temp.add(1.0F); temp.add(2.0F); temp.add(3.0F); BigData bd = new BigData();

Объект BigData напрямую использовать нельзя т.к. тип данных ArrayList не поддерживается в IDL

*/

float[] bd = {1.0F, 2.0F, 3.0F};

Result rr = RCImpl.makeCalculate(bd); System.out.println("--------------------------------------"); System.out.println(rr.getSupremum());

} catch (Exception e) { System.out.println("ERROR : " + e) ; e.printStackTrace(System.out);

}

}

}

ИП. CORBA. Пример. Класc сервера RСalcServer. Страница 1

МИЭТ, 2017.

package RemoteCalculate;

import java.util.Properties; import org.omg.CosNaming.*; import org.omg.CORBA.*; import org.omg.PortableServer.*; import org.omg.PortableServer.POA;

import RemoteCalculate.*;

public class RCalcServer {

public static void main(String args[]) { try {

// запускаем объектный брокер запросов (Object Request Broker). ORB orb = ORB.init(args, null);

/* Получаем ссылку на POA PortableObjectAdapter который обеспечивает связь локальных методов с "сервантом" сервант это код, который обрабатывает запросы клиента к CORBA-объекту сервера */

POA rootpoa = POAHelper.narrow(orb.resolve_initial_references("RootPOA")); rootpoa.the_POAManager().activate();

//создаем сервант и регистрируем его в ORB RCalcImpl RCImpl = new RCalcImpl(); RCImpl.setORB(orb);

//получаем объектную ссылку на сервант

org.omg.CORBA.Object ref = rootpoa.servant_to_reference(RCImpl); RCalc href = RCalcHelper.narrow(ref);

ИП. CORBA. Пример. Класc сервера RСalcServer. Страница 2

МИЭТ, 2017.

// Создаем объект пространства имен ORB

org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService"); NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);

//регистрируем в объекте пространства имен имя по которому

//через объектную ссылку будут вызваны методы локального объекта String name = "RCalc";

NameComponent path[] = ncRef.to_name( name ); ncRef.rebind(path, href);

System.out.println("RCalcServer ready and waiting ...");

// ожидаем запросов от клиента orb.run();

} catch (Exception e) { System.err.println("ERROR: " + e); e.printStackTrace(System.out);

}

System.out.println("RCalcServer Exiting ...");

}

}

ИП. CORBA. Пример. Запуск

МИЭТ, 2017.

1. Запускаем ORB из командной строки:

Start orbd -ORBInitialPort 900 -ORDBInitialHost 192.168.1.34

2.Запускаем север из среды IDE

3.Запускаем файл клиента из среды IDE

ИП. CORBA. Пример. Запуск

МИЭТ, 2017.

ИП. CORBA. Пример. Запуск

МИЭТ, 2017.

ИП. Другие способы вызова методов удаленных сервисов

МИЭТ, 2017.

А как-же PHP, JavaScript и т. д.?

SOAP

Simple Object Access Protocol

Будет рассмотрено в следующей лекции

Соседние файлы в папке Интернет технологии