Базы данных в Интернете и интранете
Технология интранет по существу представляет собой технологию Интернет, перенесенную в среду корпоративных ИС. Архитектура информационных систем в Интернете и интранете является результатом эволюционного перехода от первых многопользовательских централизованных вычислительных систем (мэйнфреймов) через системы типа клиент-сервер к распределенным системам с централизованной обработкой и подготовкой информации к непосредственному потреблению. Рассмотрим кратко указанные этапы эволюции.
1. В мэйнфреймах (рис. 8.13) вычислительные ресурсы, хранимые данные и программы обработки информации сконцентрированы в одной ЭВМ. Основным средством доступа был алфавитно-цифровой терминал (дисплей), управляемый ЭВМ. Вся обработка информации и подготовка ее к выдаче выполнялись на центральной ЭВМ. С терминалов, как правило, в машину передавались коды нажатия клавиш или содержимое буфера экрана, а обратно на терминал — пересылались отображаемые экраны с соответствующими кодами управления отображением.
Рис. 8.13. Централизованная многопользовательская система
Достоинством системы является простота:
· администрирования,
· защиты ин-формации,
· модификации системы.
К недостаткам можно отнести:
· высокую загрузку процессоров и линий связи (как следствие — невысокую реакция системы при большом количестве пользователей),
· низкую надежность (выход из строя ЭВМ приводит к полному отказу всей системы),
· сложность масштабирования системы.
2. Исторически следующим решением в области информационных систем была архитектура клиент-сервер(рис. 8.14).
Рис. 8.14. Системы типа клиент-сервер
В этих системах место терминала заняла ПЭВМ, а мэйнфрейма — компьютер-сервер. Системы типа клиент-сервер имеют следующие достоинства:
· высокая живучесть и надежность,
· легкость масштабирования,
· качественный пользовательский интерфейс,
· возможность одновременной работы с несколькими приложениями,
· высокие характеристики оперативности обработки информации.
Недостатки клиент-серверных систем:
· Ориентация на данные, а не на информацию. Это требует от пользователя знания не только предметной области, но и специфики используемой прикладной программы.
· Сложность переноса таких систем на другие компьютерные платформы и интеграцию с другими пакетами из-за «закрытости» используемых протоколов взаимодействия компонентов систем.
· Сложность администрирования системы и ее уязвимость при непредсказуемых или злонамеренных действиях пользователя или компьютерных вирусов.
3. Корпоративные системы интранет, в отличие от систем клиент-сервер, ориентированы не на данные, а на информацию в ее окончательном и пригодном для использования неквалифицированным пользователем виде (рис. 8.15).
Рис. 8.15. Системы, поставляющие информацию
Такие системы объединяют в себе преимущества централизованных многопользовательских систем и систем типа клиент-сервер. Им присущи следующие черты:
· на сервере порождается информация, пригодная для использования, а не данные (например, в случае СУБД — записи БД);
· при обмене между клиентской и серверной частями используется протокол открытого стандарта, а не какой-то конкретной фирмы;
· прикладная система находится на сервере, и поэтому для работы пользователя на компьютере-клиенте достаточно иметь программу-навигатор (могут быть и другие решения, когда часть обработки производится на компьютере-клиенте).
В случае, когда источником информации в Интернете и интранете являются БД, имеет место взаимодействие компонентов WWW (World Wide Web – всемирная паутина) и традиционных СУБД. Типовыми простейшими схемами организации функционирования программных компонентов, использующих данные из некоторой базы, в настоящее время можно считать следующие три:
- на стороне Web-клиента (рис. 8.16а),
- на стороне Web-сервера (рис. 8.16б),
- на стороне сервера приложений (рис. 4.16в).
Рис. 8.16. Модели доступа к базе данных в Интернете
При доступе к БД на стороне клиента основным средством реализации механизмов взаимодействия Web-клиента и сервера БД является язык Java. Кроме того, могут использоваться элементы управления ActiveX. В качестве вспомогательных средств обработки информации на клиентской стороне (но не для взаимодействия с базами данных) часто используются языки сценариев JavaScript, JScript и VBScript, разработанные для расширения возможностей декларативного языка НТМL (в HTML нет операторов присваивания, сравнения, математических функций и пр.) на основе добавления процедурных средств. Программы-сценарии выполняются на компьютере Web-броузером в режиме интерпретации.
Для обращений к серверам БД из Java-программ разработан стандарт, JDBC (Java DataBase Connectivity — совместимость баз данных для Java), основанный на концепции ODBC. Стандарт JDBC разработан фирмами Sun/ JavaSoft и обеспечивает универсальный доступ к различным базам данных на языке Java.
В модели доступа к БД на стороне сервера обращение к серверу БД обычно производится путем вызова программами Web-сервера внешних по отношению к ним программ в соответствии с соглашениями одного из интерфейсов:
· CGI (Common Gateway Interface — общий шлюзовый интерфейс),
· FastCGI,
· API (Application Program Interface — интерфейс прикладного программирования).
Внешние программы взаимодействуют каким-либо образом с сервером БД на языке SOL, например, непосредственно обращаясь к конкретному серверу или используя драйвер ОDВС.
Внешние программы пишутся на обычных языках программирования типа С, С++ и Паскаль или специализированных языках типа Perl или PHP. Программы, разработанные в соответствии с интерфейсом CGI, называются CGI-сценариями.
Кроме того, для организации доступа серверных программ к информации из БД могут использоваться технологии динамического построения web-страниц (ASP, РНР и IDC/HTХ-страницы) на основе информации БД.
Доступ к БД на стороне сервера приложений обычно применяется при использовании серверов приложений. Основным языком разработки распределенных приложений в этом случае можно считать язык Java, а также технологии CORBA и Enterprise JavaBeans.
Из трех рассмотренных схем однозначного предпочтения тому или иному варианту отдать нельзя. Все зависит от целей и условий разработки клиент-серверных программ:
· аппаратно-программная платформа,
· вид Web-cepвepa,
· нагрузка на Web-сервер,
· характер решаемых задач.
Недостатком первой модели является то, что клиентская часть системы оказывается более нагруженной, чем во второй модели. Кроме того, в некоторых случаях (например, при использовании технологии ActiveX) повышается угроза нарушению защиты информации на клиентской стороне. В то же время разгружается Web-сервер, что является достоинством.
Достоинством модели доступа на стороне сервера является сравнительная простота клиентских программ и удобство администрирования системы, так как основная часть программного обеспечения находится на машине Web-сервера. Очевидным недостатком системы является возможное ухудшение характеристик оперативности получения информации при большой нагрузке на Web-сервер и нехватке его мощности.
В третьей схеме предпринята попытка преодолеть недостатки второй схемы в том случае, когда планируется большая нагрузка на Web-сервер.