СПАСОИ (10) - Лекция №13 - Анализ и выбор архитектуры (продолжение)

Материал из Кафедра ИУ5 МГТУ им. Н.Э.Баумана, студенческое сообщество
Перейти к навигации Перейти к поиску

...начало

Анализ и выбор архитектуры распределённой системы

Модели доступа к данным

Модель доступа по технологии Интернет/Интранет

В рамках этой модели используются следующие варианты:

  • доступ к данным из CGI и API программ;
  • доступ к данным из Java-апплетов и управляющих элементов ActiveX.
CGI и API

Браузер отображает страницу, пользователь заполняет поля формы и жмёт submit, который связан с определённой CGI-программой. Программы выполняется на сервере, обращаясь к ODBC, который обращается к БД. Результаты выполнения запросов возвращаются к CGI-программе, которая генерирует новый HTML и отдаёт его на рабочую станцию пользователю в веб-браузер.

Преимущества CGI:

  • веб-сервер выступает в роли сервера-приложений (централизованное администрирование CGI-программ);
  • CGI-интерфейс универсален и реализован во всех веб-серверах;
  • для доступа к данным подходит любой веб-браузер.

Недостатки CGI:

  • каждая CGI-программа (даже самая крохотная) выполняется как задача на уровне ОС. Инициализация каждой задачи и переключение между задачами занимает много времени, так как требуется переключение между блоками управления страницей;
  • CGI-программы не поддерживают контекст связи с БД. БД открывается при каждом вызове очередной (да и той же самой) CGI-программы.

Для устранения недостатков CGI используется API-интерфейс (активные страницы):

  • ASP;
  • PHP;
  • JSP.

В отличие от CGI выполняются как потоки в рамках одной задачи - не создают новые задачи в рамках ОС.

Преимущества API:

  • выполняются быстрее, чем CGI;
  • позволяют поддерживать контекст соединения с БД.

Недостатки API:

  • программы разных производителей несовместимы между собой;
  • платформозависимы.

Java-апплеты и ActiveX

HTML интерпретатор анализирует документ, если встречает апплет, то браузер обращается к веб-серверу с запросом на чтение соответствующей Java программы. Эта программа загружается на рабочую станцию и интерпретируется Java машиной.

Если встречается SQL оператор, то через JDBC идёт обращение к серверу БД. Результаты выполнения запросов возвращаются в Java программу, и она выводит результаты в браузер.

Преимущества Java:

  • программа выполняется на рабочей станции. Неожиданно это стало преимуществом;
  • Java апплеты мобильны, язык гибок для написания сложных программ;
  • JDBC интерфейс является универсальным, SQL внутри Java не зависит от СУБД;
  • большое количество открытых Java программ.

Недостатки Java:

  • Java программы передаются по сети, поэтому они должны быть небольшими, что накладывает ограничение на функционал;
  • пользователь с подозрением относится к выполняемым на его рабочей станции прилетевшим из интернетов Java программам;
  • Java программы работают медленее, чем бинарный код;
  • сложность разработки Java апплетов, выполняющих доступ к БД.

Как и Java апплеты, объекты ActiveX загружаются на рабочую станцию. В управляющие элементы могут быть включены SQL операторы. Но в отличие от Java, в ActiveX выполняется бинарный код (то есть, они быстрее). Недостатком является Microsoft - ActiveX работает только на платформе MS Windows.

Интероперабельные системы

Методы доступа к разнородным СУБД.

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

  • шлюзы;
  • ODBC и его аналоги;
  • XML и веб-сервисы.

Шлюзы

Схема объединения разнородных систем с помощью шлюза:

Опишем организацию доступа приложения Oracle к серверу Informix.

Если в этом приложении встречается SQL оператор, то он передаётся на сервер Oracle. Если таблицы, указанные в этом операторе, хранятся на сервере Oracle, то оператор выполняется, и результаты возвращаются на рабочую станцию. Если указаны таблицы сервера Informix, то Oracle обращается к этом серверу через шлюз и там всё как раньше.

По той же схеме осуществляется доступ приложения Informix к серверу Oracle.

ODBC

При выполнении приложения встречается SQL оператор, происходит обращение к менеджеру драйверов, тот выбирает соответствующий драйвер, и происходит обращение к серверу БД. Результаты потом обратно на рабочую станцию, как обычно.

Обращение к ODBC в Windows:

  1. с помощью функции SQL_CONNECT приложение подключается к серверу БД. Несколько серверов - несколько операторов;
  2. в строковой переменной подготавливается SQL оператор;
  3. с помощью функции SQL_EXECUTE происходит выполнение этого SQL оператора;
  4. если было возвращено несколько записей, то необходимо организовать цикл, в котором с помощью функции SQL_FETCH будет выбираться очередная запись.

продолжение...