Распределенные системы обработки информации

После компиляции программы создается HTML-файл, содержащий фрагмент:

<applet code=”MyFile.class” … />

В классе, унаследованном от Applet, есть методы, связанные с жизненным циклом апплета:

init() – выполняется при инициализации апплета, аналог функции main(). Должен быть перегружен.

start() – выполняется при запуске апплета.

stop() – выполняется, когда пользователь пок

идает страницу с апплетом.

destroy() – выполняется при завершении работы браузера.

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

Если в классе апплета, унаследованном от Applet, определить функцию main, можно добиться работы приложения как в виде апплета, так и в виде обособленного приложения.

Апплеты работают в обособленной «песочнице» (sandbox). При выполнении апплетов действуют строгие правила безопасности: нельзя запускать исполняемые файлы на компьютере пользователя, нельзя взаимодействовать ни с какими компьютерами, кроме сервера, нельзя обращаться к локальной файловой системе, нельзя получать информацию о локальном компьютере (за исключением минимальной). Нарушение этих правил ведет к генерации исключения SecurityException. Некоторые правила можно обойти, если подписать апплет электронной подписью.

1.17 Технология RMI в Java

RMI (remote method invocation) – технология удаленного вызова методов объектов, написанных на Java. Клиент – тот, кто вызывает метод. Сервер – тот, чей метод вызывается. На клиентской стороне представителем серверного объекта является заглушка (stub), метод которой фактически вызывает клиент. При вызове метода заглушка осуществляет сериализацию объектов, их кодирование (маршалинг), упаковывает их в блок вместе с информацией о вызываемом методе и передает серверу. На сервере объект-получатель (скелетон) выполняет обратные действия, осуществляет выполнение метода, и таким же образом передает результаты обратно клиенту.

Для удаленного вызова клиент использует интерфейсную переменную (которая на самом деле ссылается на заглушку).

При передаче объекта между виртуальными машинами обе машины должны иметь доступ к файлу класса.

Совместно используемый интерфейс должен расширять интерфейс java.rmi.Remote, а все методы интерфейса должны сообщать о том, что при их выполнении может возникнуть исключение RemoteException. Соответственно, при любом вызове удаленного метода надо перехватывать RemoteException. Серверный объект должен наследовать java.rmi.server.RemoteServer (абстрактный класс), но можно и конкретную реализацию – UnicastRemoteObject.

В JDK классы заглушки и каркасы (скелетоны) генерируются автоматически, раньше нужно было использовать утилиту rmic.

Для получения ссылки на заглушку на клиентской стороне используется служба регистрации самозагрузки (bootstrap registry service). Сервер регистрирует удаленный объект под определенным именем, а клиент его получает. Например:

// сервер

IfaceImpl pl = new IfaceImpl();

Context namingContext = new InitialContext();

namingContext.bind(“rmi:myobject”m pl);

// клиент

Iface p = (Iface)namingContext.lookup(“rmi://myserver.com/toaster”);

Служба регистрации автозагрузки должна быть запущена в операционной системе отдельно

1.18 Об интерфейсе JDBC

Модель JDBC основана на ODBC: программа взаимодействует с диспетчером драйверов JDBC, который выбирает подходящий в данном случае драйвер (например, драйвер Oracle) или мост (например, мост JDBC/ODBC). Целью разработки JDBC была разработка модели, работающей одинаково независимо от платформы и от поставщика данных. Предполагалось, что вся работа с БД будет осуществляться с помощью SQL и Java. Классы JDBC располагаются в пакетах java.sql и javax.sql.

Подключение к БД:

Connection con = DriverManager.getConnection(url, username, password);

Выполнение запроса:

Statement st = con.createStatement();

ResultSet rs = st.executeQuery(“SELECT …”);

ResultSet может быть сделан обновляемым (то есть вносимые изменения отражаются в БД), если указать особые параметры при создании Statement.

По умолчанию каждая SQL-команда выполняется в своей транзакции, но можно это отключить:

con.setAutoCommit(false);

con.commit();

con.rollback();

1.19 Общие сведения о технологии CORBA

CORBA (common object request broker architecture) – технология удаленной работы с объектами. CORBA, в отличие от RMI, обеспечивает взаимодействие между объектами, написанными на разных языках. Для этого используется брокер объектных запросов (ORB), который работает и на клиенте, и на сервере.

Сначала описывается интерфейс на языке IDL. Потом это описание компилируется в классы-заглушки и вспомогательные классы на целевых языках. Затем реализуются и компилируются объекты-серверы, после чего они регистрируются в программе-сервере (наиболее удобны способ регистрации – использование службы имен CORBA, аналогичной реестру RMI). После этого уже можно создавать программу-клиент и запускать клиент и сервер.

2. Общие положения теории РСОИ

2.1 Понятие о РСОИ

РС содержит компоненты, которые распределены по разным компьютерам.

РС – набор независимых компьютеров, представляющихся их пользователям единой системой. Пользователи и приложения единообразно работают в РС, независимо от того, где и когда происходит их взаимодействие.

Хост – компьютер, на котором размещены компоненты вычислительной системы: аппаратура и сетевая ОС.

Взаимодействие РС

А – головная боль для программистов.

РС содержит несколько хостов и более одного компонента. Компоненты должны взаимодействовать друг с другом.

Взаимодействие компонентов:

Предоставляет доступ к своим службам

Компонент может запрашивать обслуживание у других компонентов

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

Промежуточный слой.

Хост – компьютер, на котором выполняются компоненты, составляющие часть распределенной системы.

Распределенная система – группа автономных хостов, соединенных при помощи компьютерных сетей.

На каждом хосте:

выполняются компоненты

функционирует промежуточный слой. Компоненты, которые координируют свои действия, таким образом, что пользователь воспринимает систему как единое интегрированное вычислительное средство.

2.2 Примеры РСОИ

Распределенная система вычислений от Google.

РС Nutch построен на основе Hadoop — это фреймворк, реализующий идею MapReduce. Термины map и reduce пришли из функционального программирования, где они означают следующее: reduce это функция типа α -> β, map — функция типа (α -> β) -> [α] -> [β]. То есть map применяет переданную ей первым аргументом функцию reduce к списку элементов типа α и на выходе получается список элементов типа β. Например, если мы определим функцию square x = x ∗ x, вызов map square[1,2,3] вернет [1,4,9]. Если reduce функция без побочных эффектов (то есть она не изменяет ничего за пределами своей области видимости), то применять ее можно одновременно к нескольким элементам входного списка. Гугловый фреймворк MapReduce позволяет прозрачно для программы разносить эти вычисления по многим машинам. Hadoop представляет собой open-source реализацию этой же идеи на Java.

Страница:  1  2  3  4  5  6  7  8  9 


Другие рефераты на тему «Программирование, компьютеры и кибернетика»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы