Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
java1_2013_2014 / java16.pptx
Скачиваний:
131
Добавлен:
16.04.2015
Размер:
506.07 Кб
Скачать

Базовые службы

Java Authentication and Authorization Service (JAAS) предоставляет возможность приложению JEE аутентифицировать и авторизовать пользователей и группы пользователей

(C)В.О. Сафонов.

2013

EJB

Enterprise JavaBean – компонента

(корпоративная компонента) ~ класс, поля и методы которого реализуют бизнес-логику. Ее можно представить в виде строительного блока, который может использоваться как самостоятельно, так и совместно с другими компонентами для исполнения бизнес-логики на JEE- сервере

(C) В.О. Сафонов. 2013

Servlet

Технология Java Servlet позволяет определить классы сервлетов. Класс сервлета расширяет возможности серверов, доступные приложениям при использовании ими модели программирования "запрос - ответ".

(C)В.О. Сафонов.

2013

Технология JavaServer

Pages

Технология JavaServer Pages позволяет встраивать фрагменты кода сервлета прямо в текстовые документы. JSP-страница представляет собой текстовый документ, который содержит два типа текста: статичные шаблонные данные, которые могут быть представлены в любом текстовом формате, таком как HTML, WML и XML, а также JSP-элементы, которые определяют способ построения динамичного содержимого страницы

(C)В.О. Сафонов.

2013

RMI

Remote Method Invocation: javax.rmi.*

Клиент

 

Сервер

 

 

RMI registry

 

 

Service 1

 

Network

Service 2

 

 

RMI

protocol

 

 

stubs

proxy

 

skeletons

(C) В.О. Сафонов.

 

 

2013

 

 

RMI - интерфейсы

Удалённый интерфейс должен расширять java.rmi.remote

Каждый метод должен бросать java.rmi.RemoteException

Объектные параметры и возвращаемые значения должны быть объявлены расширяющими Remote интерфейс.

Класс должен расширять UnicastRemoteObject и реализовывать расширенный Remote интерфейс

import java.rmi.Remote;

import java.rmi.RemoteException;

public interface PerfectTimeI extends Remote {

public long getPerfectTime() throws RemoteException;

}

(C) В.О. Сафонов. 2013

Пример определения удалённого класса

import java.rmi.*; import java.rmi.server.*; import java.rmi.registry.*; import java.net.*;

public class PerfectTime extends UnicastRemoteObject implements PerfectTimeI {

public long getPerfectTime() throws RemoteException { return System.currentTimeMillis(); }

public PerfectTime() throws RemoteException {}

public static void main(String[] args) throws Exception { System.setSecurityManager( newRMISecurityManager()); PerfectTime pt = new PerfectTime(); Naming.bind("//peppy:2005/PerfectTime", pt); System.out.println("Ready to do time");

}

}

(C) В.О. Сафонов. 2013

 

Комментарии к примеру

Необходимо реализовать конструктор для бросания исключения

Для работы Naming необходим запущенный сервер rmiRegistry

wnd: start rmiregistry 2005

Unix: rmiregistry 2005 &

Bind: нельзя писать localhost,

необходимо иметь активные соединения

TCPIP

Порт по умолчанию 1099 – можно не писать.

Имя сервиса может быть произвольным

Registry можно создать самому

LocateRegistry.createRegistry(2005) необходимо

быть уверенным в единоличном пользовании им.

(C) В.О. Сафонов. 2013

Создание клиента

package c15.rmi; import java.rmi.*;

import java.rmi.registry.*;

public class DisplayPerfectTime {

public static void main(String[] args) throws Exception { System.setSecurityManager(new

RMISecurityManager());

PerfectTimeI t = (PerfectTimeI)Naming.lookup(

"//peppy:2005/PerfectTime"); for (int i = 0; i < 10; i++) {

System.out.println

("Perfect time = " + t.getPerfectTime());

}

}

}

(C) В.О. Сафонов. 2013

Комментарии к примеру

Приведение полученного объекта именно к интерфейсу, расширяющему Remote, является обязательным

Далее используется полученный удалённый объект

(C) В.О. Сафонов. 2013

Соседние файлы в папке java1_2013_2014