Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
java1.docx
Скачиваний:
8
Добавлен:
17.04.2019
Размер:
193.35 Кб
Скачать

Создание файлов client и server corba-приложений

Для создания JAVA-файлов клиента и сервера CORBA приложений необходимо выполнить следующие действия:

  1. Импортировать пакеты поддержки CORBA.

import org.omg.CosNaming*;//Сервис имен

import org.omg.CORBA*;//Классы поддержки стандарта

CORBA.

  1. Создать и инициализировать ORB

ORB orb=ORB init(args.null);

При этом для сервера CORBA дополнительно создается и регистрируется сервант:

Имя_интерфейса Servant экз_серванта=

new_имя_интерфейса Servant();

orb.connekct(экз_серванта);

  1. Обеспечить вхождение в контекст имен

org.omg.CORBA.Object объект=

org.resolve_initial_referencs(“NameService”);

NamingContext контекстИмени=

NamingContext Helper.narrow(объект);

  1. Получить ссылку на объект

NamingComponent компонент Имени=

newNameComponent(“ИмяКомпонента”””);

NameComponent путь[]={компонент имени};

Далее в п.4 нужно записать:

КонтекстИмени.rebind(путь,экз_Серванта);

В тоже время для клиента в п.4записываем:

Имя класса экз_Класса=Имя Класса Helper(

КонтекстИмени.resolve(путь));

  1. Для сервера ожидаем со стороны клиента:

java.lang.Object объект Синхронизации=

new java.lang.Object();

synchronized(объект синхронизации)

{объект синхронизации.wait()}

В тоже время на пятом этапе клиент обращается к удаленному методу

экземпляр Класса.методКлассаСервера();

При этом файл сервера CORBA приложений имеет вид:

import org.omg.CosNaming.*;

import org.omg.CosNaming Context package.*;

import org.omg.CORBA.*;

class Stringer Servant extends_Stringer ImplBase{

public String getString()

{return “Hello from CORBA”;}

public class Stringer Server{

public static void main(String[]args)throws Exception{

ORB orb=ORB.init(args,null);

Stringer Servant servant=new Stringer Servant();

orb connect(servant);

org.omg.CORBA.Object object=

orb.resulve_initial_references(“NameService”);

NameComponent component=new NameComponent

(“StringName”,””);

NameComponent puth[]={component};

context.rebing(path,servant);

java.lang.Object.sync=

new java.lang.Object();

synchronized(sync){sync.waint();}}}

В тоже время java-файл клиентского приложения содержит код:

import org.omg.CosNaming.*;

import.org.omg.CORBA.*;

class StringerClient{

public static void main(string[]args)throws Exception{

ORB orb=ORB.init(args,null);

org.omg.CORBA.Object object=

orb.resolve_initial_references(“NameService”);

NameContext context=NamingContext Helper.nerrow;

NameComponent component=new NameComponent(“StringName”);

NameComponent path[]={component};

Stringer stringer=StringerHelper.nerrow(context=resolve(path));

ystem.out.println(stringer.getString());}}

После компиляции для запуска выполним команды:

  1. Запустим в отдельной сессии сервер имен jdk:

>fnameserv-ORBInitialPort номер Порта

(по умолчанию используется порт 900).

  1. Запускаем в отдельной сессии сервер приложений

>java StringerServer-ORBInitialPort Номер Порта

  1. Запускаем клиентское приложение

>java StringerClient-ORBInitialPort номер Порта –ORBInitialHost Имя Сервера.

Достоинства

Недостатки

  1. Языковая независимость

  2. Платформенная независимость

  3. Динамические вызовы

  4. Масштабируемость

  5. Индустриальная поддержка

  6. CORBA-сервисы

  1. Нет передачи данных по значению.

  2. Отсутствует наименование с помощью URL.

В состав ORG входит более 700 компаний-производителей индивидуальная спецификация разработана этим консорциумом становиться стандарт.

РЕЙТИНГ №2

Структура распределенного J2EE JAVA-приложения

Структура J2EE java-приложений состоит из 4-х слоев:

  1. Клиент (html-страница, JAVA-аплет, JAVA-приложение).

  2. Web-слой (сервлеты, JSP-страницы).

  3. EJB-слой (bin и интерфейсы для работы с ним).

  4. СУБД.

Один или несколько слоев могут отсутствовать, что придает гибкости распределенным приложениям.

Hello World распределенное J2EE JAVA-приложение

Средства разработки

  1. J2SE (v. 1.5.0-12);

  2. J2EE JAVA Web-сервер (Sun JAVA SAS PE9);

  3. Net Beans (v.5.5.1).

Структура

<html>

<head>

<title>J2EE-Application</title></head>

<body>

<H2 Align=”center”>J2EE web-Client</H2>

<p align=”left”>Enter your name</p>

<from method=”bet”action=http://localhost:8080/HI/”hello”>

<p><input type=”text”name=”name”size=”is”></p>

Hello Servlet.java

package web;

import java.io.*;

import java.net.*;

import javax.ejb*;

import java servlet.*;

import javax servlet.http.*;

import my_ejb;

public class Hello Servlet extends;

http Servlet{private Hello Session Local h;

protected void process Request(http Servlet Request reg http ServletRespase res)

throws Servlet Exseption,IDException{

res.setContentType(“text/html;charset=Windows1251);

PrinterWriter out=res.getWriter();

String message.name,message_ejb;

name=reg.getParameter(“name”);

message=”Hello”;

message=message + name;

message_ejb=h.sayHello();

out.println(“<html><head>”);

out.println(“title>J2EE Aplication</title>”);

out.println(“</head><body>”);

out.println(“<p>”message+”</p>”);

out.println(“<p>”+message_ejb+”</p>”);

out.println(“</body></html>”);

out.else();}

protected void doGet(Http Servlet Request reg,http Servlet Response res);

throws ServletException,IoException{

process Request(res,reg);

}}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]