https://iu5bmstu.ru/index.php?title=%D0%A1%D0%9F%D0%90%D0%A1%D0%9E%D0%98_(10)_-_%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F_%E2%84%9613_-_%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B8_%D0%B2%D1%8B%D0%B1%D0%BE%D1%80_%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D1%8B_(%D0%BF%D1%80%D0%BE%D0%B4%D0%BE%D0%BB%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5)&feed=atom&action=historyСПАСОИ (10) - Лекция №13 - Анализ и выбор архитектуры (продолжение) - История изменений2024-03-29T09:27:39ZИстория изменений этой страницы в викиMediaWiki 1.41.0https://iu5bmstu.ru/index.php?title=%D0%A1%D0%9F%D0%90%D0%A1%D0%9E%D0%98_(10)_-_%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F_%E2%84%9613_-_%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B8_%D0%B2%D1%8B%D0%B1%D0%BE%D1%80_%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D1%8B_(%D0%BF%D1%80%D0%BE%D0%B4%D0%BE%D0%BB%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5)&diff=3859&oldid=prevILobster: /* Шлюзы */ очепятка2013-06-16T09:24:10Z<p><span dir="auto"><span class="autocomment">Шлюзы: </span> очепятка</span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="ru">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Предыдущая версия</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Версия от 12:24, 16 июня 2013</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l86">Строка 86:</td>
<td colspan="2" class="diff-lineno">Строка 86:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Опишем организацию доступа приложения Oracle к серверу Informix.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Опишем организацию доступа приложения Oracle к серверу Informix.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Если в этом приложении встречается SQL оператор, то он передаётся на сервер Oracle. Если таблицы, указанные в этом операторе, хранятся на сервере Oracle, <del style="font-weight: bold; text-decoration: none;">но </del>оператор выполняется, и результаты возвращаются на рабочую станцию. Если указаны таблицы сервера Informix, то Oracle обращается к этом серверу через шлюз и там всё как раньше.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Если в этом приложении встречается SQL оператор, то он передаётся на сервер Oracle. Если таблицы, указанные в этом операторе, хранятся на сервере Oracle, <ins style="font-weight: bold; text-decoration: none;">то </ins>оператор выполняется, и результаты возвращаются на рабочую станцию. Если указаны таблицы сервера Informix, то Oracle обращается к этом серверу через шлюз и там всё как раньше.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>По той же схеме осуществляется доступ приложения Informix к серверу Oracle.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>По той же схеме осуществляется доступ приложения Informix к серверу Oracle.</div></td></tr>
</table>ILobsterhttps://iu5bmstu.ru/index.php?title=%D0%A1%D0%9F%D0%90%D0%A1%D0%9E%D0%98_(10)_-_%D0%9B%D0%B5%D0%BA%D1%86%D0%B8%D1%8F_%E2%84%9613_-_%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D0%B8_%D0%B2%D1%8B%D0%B1%D0%BE%D1%80_%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D1%8B_(%D0%BF%D1%80%D0%BE%D0%B4%D0%BE%D0%BB%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5)&diff=3463&oldid=prevILobster: Новая страница: «{{Backward|l=СПАСОИ (10) - Лекция №12 - Анализ и выбор архитектуры}} __TOC__ == Анализ и выбор архитекту…»2013-05-06T14:53:14Z<p>Новая страница: «{{Backward|l=СПАСОИ (10) - Лекция №12 - Анализ и выбор архитектуры}} __TOC__ == Анализ и выбор архитекту…»</p>
<p><b>Новая страница</b></p><div>{{Backward|l=СПАСОИ (10) - Лекция №12 - Анализ и выбор архитектуры}}<br />
__TOC__<br />
== Анализ и выбор архитектуры распределённой системы ==<br />
<br />
=== Модели доступа к данным ===<br />
<br />
==== Модель доступа по технологии Интернет/Интранет ====<br />
<br />
В рамках этой модели используются следующие варианты:<br />
* доступ к данным из CGI и API программ;<br />
* доступ к данным из Java-апплетов и управляющих элементов ActiveX.<br />
<br />
===== CGI и API =====<br />
<br />
[[Файл:10semSPASOIl13pic1.png|center|700px]]<br />
<br />
Браузер отображает страницу, пользователь заполняет поля формы и жмёт <code>submit</code>, который связан с определённой CGI-программой. Программы выполняется на сервере, обращаясь к ODBC, который обращается к БД. Результаты выполнения запросов возвращаются к CGI-программе, которая генерирует новый HTML и отдаёт его на рабочую станцию пользователю в веб-браузер.<br />
<br />
<font color="green">'''Преимущества CGI:'''<br />
* веб-сервер выступает в роли сервера-приложений (централизованное администрирование CGI-программ);<br />
* CGI-интерфейс универсален и реализован во всех веб-серверах;<br />
* для доступа к данным подходит любой веб-браузер.<br />
</font><br />
<br />
<font color="red">'''Недостатки CGI:'''<br />
* каждая CGI-программа (даже самая крохотная) выполняется как задача на уровне ОС. Инициализация каждой задачи и переключение между задачами занимает много времени, так как требуется переключение между блоками управления страницей;<br />
* CGI-программы не поддерживают контекст связи с БД. БД открывается при каждом вызове очередной (да и той же самой) CGI-программы.<br />
</font><br />
<br />
Для устранения недостатков CGI используется API-интерфейс (активные страницы):<br />
* ASP;<br />
* PHP;<br />
* JSP.<br />
<br />
В отличие от CGI выполняются как потоки в рамках одной задачи - не создают новые задачи в рамках ОС.<br />
<br />
<font color="green">'''Преимущества API:'''<br />
* выполняются быстрее, чем CGI;<br />
* позволяют поддерживать контекст соединения с БД.<br />
</font><br />
<br />
<font color="red">'''Недостатки API:'''<br />
* программы разных производителей несовместимы между собой;<br />
* платформозависимы.<br />
</font><br />
<br />
===== Java-апплеты и ActiveX =====<br />
<br />
[[Файл:10semSPASOIl13pic2.png|right|400px]]<br />
<br />
HTML интерпретатор анализирует документ, если встречает апплет, то браузер обращается к веб-серверу с запросом на чтение соответствующей Java программы. Эта программа загружается на рабочую станцию и интерпретируется Java машиной.<br />
<br />
Если встречается SQL оператор, то через JDBC идёт обращение к серверу БД. Результаты выполнения запросов возвращаются в Java программу, и она выводит результаты в браузер.<br />
<br />
<font color="green">'''Преимущества Java:'''<br />
* программа выполняется на рабочей станции. Неожиданно это стало преимуществом;<br />
* Java апплеты мобильны, язык гибок для написания сложных программ;<br />
* JDBC интерфейс является универсальным, SQL внутри Java не зависит от СУБД;<br />
* большое количество открытых Java программ.<br />
</font><br />
<br />
<font color="red">'''Недостатки Java:'''<br />
* Java программы передаются по сети, поэтому они должны быть небольшими, что накладывает ограничение на функционал;<br />
* пользователь с подозрением относится к выполняемым на его рабочей станции прилетевшим из интернетов Java программам;<br />
* Java программы работают медленее, чем бинарный код;<br />
* сложность разработки Java апплетов, выполняющих доступ к БД.<br />
</font><br />
<br />
Как и Java апплеты, объекты ActiveX загружаются на рабочую станцию. В управляющие элементы могут быть включены SQL операторы. Но в отличие от Java, в ActiveX выполняется бинарный код (то есть, они быстрее). Недостатком является Microsoft - ActiveX работает только на платформе MS Windows.<br />
<br />
=== Интероперабельные системы ===<br />
<br />
Методы доступа к разнородным СУБД.<br />
<br />
В настоящее время для этого используются:<br />
* шлюзы;<br />
* ODBC и его аналоги;<br />
* XML и веб-сервисы.<br />
<br />
==== Шлюзы ====<br />
<br />
Схема объединения разнородных систем с помощью шлюза:<br />
<br />
[[Файл:10semSPASOIl13pic3.png|center|700px]]<br />
<br />
Опишем организацию доступа приложения Oracle к серверу Informix.<br />
<br />
Если в этом приложении встречается SQL оператор, то он передаётся на сервер Oracle. Если таблицы, указанные в этом операторе, хранятся на сервере Oracle, но оператор выполняется, и результаты возвращаются на рабочую станцию. Если указаны таблицы сервера Informix, то Oracle обращается к этом серверу через шлюз и там всё как раньше.<br />
<br />
По той же схеме осуществляется доступ приложения Informix к серверу Oracle.<br />
<br />
==== ODBC ====<br />
<br />
[[Файл:10semSPASOIl13pic4.png|center|700px]]<br />
<br />
При выполнении приложения встречается SQL оператор, происходит обращение к менеджеру драйверов, тот выбирает соответствующий драйвер, и происходит обращение к серверу БД. Результаты потом обратно на рабочую станцию, как обычно.<br />
<br />
Обращение к ODBC в Windows:<br />
# с помощью функции <code>SQL_CONNECT</code> приложение подключается к серверу БД. Несколько серверов - несколько операторов;<br />
# в строковой переменной подготавливается SQL оператор;<br />
# с помощью функции <code>SQL_EXECUTE</code> происходит выполнение этого SQL оператора;<br />
# если было возвращено несколько записей, то необходимо организовать цикл, в котором с помощью функции <code>SQL_FETCH</code> будет выбираться очередная запись.<br />
<br />
{{Forward|l=СПАСОИ (10) - Лекция №14 - Анализ и выбор архитектуры (продолжение)}}<br />
<br />
[[Категория:Структурное проектирование АСОИ (10 семестр)]]<br />
[[Категория:Конспекты лекций и семинаров]]</div>ILobster