РЕФЕРАТ
по дисциплине «Информатика»
на тему «Архитектуры реализации корпоративных информационныхсистем»
1.Архитектура КЛИЕНТ-СЕРВЕР
Припостроении корпоративных информационных сетей, как правило, используются двебазовые архитектуры: Клиент-сервер и Интернет/Интранет. В чем же преимущества инедостатки использования каждой из данных архитектур и когда их применениеоправдано? Найти ответы на эти вопросы мы постараемся в данном разделе.
Однойиз самых распространенных на сегодня архитектур построения корпоративныхинформационных систем является архитектура КЛИЕНТ-СЕРВЕР.
/>
Рис.1.Компоненты архитектуры Клиент-сервер и их свойства.
Вреализованной по данной архитектуре информационной сети клиенту предоставленширокий спектр приложений и инструментов разработки, которые ориентированы намаксимальное использование вычислительных возможностей клиентских рабочих мест,используя ресурсы сервера в основном для хранения и обмена документами, а такжедля выхода во внешнюю среду. Для тех программных систем, которые имеютразделение на клиентскую и серверную части, применение данной архитектурыпозволяет лучше защитить серверную часть приложений, при этом, предоставляявозможность приложениям либо непосредственно адресоваться к другим сервернымприложениям, либо маршрутизировать запросы к ним. Средством (инструментарием)для реализации клиентских модулей для ОС Windows в данном случае является, какправило, Delpfi.
Однакопри этом частые обращения клиента к серверу снижают производительность работысети, кроме этого приходится решать вопросы безопасной работы в сети, так какприложения и данные распределены между различными клиентами. Распределенныйхарактер построения системы обуславливает сложность ее настройки исопровождения. Чем сложнее структура сети, построенной по архитектуреКЛИЕНТ-СЕРВЕР, тем выше вероятность отказа любого из ее компонентов.
/>
Рис.2.Сравнительные характеристики двух- и трехзвенной архитектуры клиент-сервер.
Впоследнее время все большее развитие получает архитектура Интернет/Интранет. Воснове реализации корпоративных информационных систем на базе даннойархитектуры лежит принцип «открытой архитектуры», что во многомопределяет независимость реализации корпоративной системы от конкретногопроизводителя. Все программное обеспечение таких систем реализуется в видеаплетов или сервлетов (программ написанных на языке JAVA) или в виде cgi-модулей(программ написанных как правило на Perl или С).
Основнымиэкономическими преимуществами данной архитектуры являются:
· относительнонизкие затраты на внедрение и эксплуатацию;
· высокаяспособность к интеграции существующих гетерогенных информационных ресурсовкорпораций;
· повышениеуровня эффективности использования оборудования (сохранение инвестиций).
· прикладныепрограммные средства доступны с любого рабочего места, имеющего соответствующиеправа доступа;
· минимальныйсостав программно-технических средств на клиентском рабочем месте (теоретическинеобходима лишь программа просмотра — броузер и общесистемное ПО);
· минимальныезатраты на настройку и сопровождение клиентских рабочих мест, что позволяетреализовывать системы с тысячами пользователей (причем многие из которых могутработать за удаленными терминалами).
2.Архитектура Интернет/Интранет
/>
Рис.3.Компоненты архитектуры Интернет-Интранет и их свойства.
Вобщем случае АИС, реализованная с использованием данной архитектуры включаетWeb-узлы с интерактивным информационным наполнением, реализованных при помощитехнологий Java, JavaBeans и JavaScript, взаимодействующих с предметной базойданных, с одной стороны, и с клиентским местом с другой. База данных, в своюочередь, является источником информации для интерактивных приложений реальноговремени.
Позапросу клиента WEB узел осуществляет следующие операции (рис.7):
· ОтправляетASCII коды HTML страниц (или VRML документов), включающие при необходимостиэлементы javaScript;
· Отсылаетдвоичный код запрошенного ресурса (изображения, адио-, видеофайла, архива ит.п.);
· Отсылаетбайт коды JAVA апплетов.
· Принимаетконкретную информацию от пользователя (результат заполнения активной формы, илистатистическую информацию запрошенную CGI скриптом);
· Осуществляетзаполнение базы данных;
· Принимаетсообщения от пользователя и регламентирует доступ к ресурсам Web узла на основеанализа принятой информации (проверка паролей и т.п.);
· Принимаетинформацию от пользователя и в зависимости от нее динамически формирует HTMLстраницы, либо VRML документы, обращаясь, при необходимости, к базам данных исуществующим на WEB узле HTML страницам и VRML документам.
·
/>
Рис.4.Информационные взаимосвязи компонентов WEB узла
Послетого, как клиент получил ответ WEB сервера, он осуществляет следующие операции:
· визуализируетHTML страницу либо VRML документ в окне броузера;
· интерпретируеткоманды JavaScript, модифицирует образ HTML страницы и т.п.;
· интерпретируябайт коды JAVA апплетов, позволяет загружать и выполнять активные приложения;
· ведетдиалог с пользователем, заполняющим формы, и создает новые запросы к WEBсерверу;
· спомощью утилит воспроизводит коды аудио и видео файлов, поддерживаетмультимедийные средства;
· обеспечиваетмоделирование виртуальной реальности просматривая VRML документы.
/>
Рис.5.Функциональная схема интерактивного взаимодействия пользователей в архитектуреинтернет/интранет.
Перечисленныезадачи WEB клиента обеспечиваются возможностями броузера и специализированнымпрограммным обеспечением (утилитами), размещенными на рабочей станции клиента.Следует отметить и тот факт, что жестких стандартов на построение WEB клиентапока нет и его компонентный состав может различаться.
Насегодняшний день известны и широко применяются три основных технологии созданияинтерактивного взаимодействия с пользователем в Web. Первый путь заключается виспользовании Стандартного Интерфейса Шлюза (Commom Gateway Interface) — CGI.Второй — включение JavaScript — сценариев в тело Web-страниц. И наконец самыймощный, предоставляющий практически неограниченные возможности способ — применение технологии Java (ипользование Java-аплетов).
CGI — это механизм длявыбора, обработки и форматирования информации. Возможность взаимодействия,обеспечиваемая CGI, предоставляется во многих формах, но в основном этодинамический доступ к информации, содержащейся в базах данных. Например, многиеузлы применяют CGI для того, чтобы пользователи могли запрашивать базы данных иполучать ответы в виде динамически сформированных Web-страниц (рис.6).
Имеютсяв виду узлы, предоставляющие доступ к базам данных, средствам поиска, и дажеинформационные системы, предающие сообщения в ответ на ввод пользователя. Всеэти узлы используют CGI, чтобы принять ввод пользователя и передать его ссервера Web-базе данных. База данных обрабатывает запрос и возвращает ответсерверу, который в свою очередь пересылает его опять браузеру для отображения.Без СGI база данных этого не смогла бы. Данный интерфейс можно считатьпосредником между браузером, сервером и любой информацией которая должнапередаваться между ними.
Вотличии от HTML, CGI не является языком описания документов. Собственно, это ине язык вообще; это стандарт. Он просто определяет, как серверы Web передаютинформацию, используя приложения, исполняемые на сервере. Это способ расширениявозможностей сервера Web без преобразования при этом его самого. Подобно томукак броузер Web обращается к вспомогательным приложениям для обработкиинформации, которую он не понимает, CGI предоставляет серверу Web возможностьпреложить работу на другие приложения, такие как базы данных и средства поиска.
/>
Рис.6.Схема взаимодействия между браузером, сервером и сценарием CGI
Принаписании программы шлюза (которая может конвертировать ввод из одной системы вдругую) CGI позволяет использовать почти любой язык программирования.Способность использовать при написании программы шлюза любой язык, даже языксценариев, чрезвычайно важна. Самыми популярными языками являются shell, Perl,C и С++. Сценарием традиционно называют программу, которая выполняется спомощью интерпретатора, выполняющего каждую строку программы по мере еесчитывания.
Последовательностьдействий при взаимодействии клиента с программой запущенной на Web-сервереможно сформулировать как следующая последовательность шагов.
1. Браузерпринимает введенную пользователем информацию, как правило с помощью форы.
2. Браузерпомещает введенную пользователем информацию в URL, указывающий имя и местоположениесценария CGI, который требуется ввести в действие.
архитектура клиентсервер интранет
3. Браузерподключается к серверу Web и запрашивает URL. Сервер определяет, что URL долженввести в действие сценарий CGI, и запускает указанный сценарий.
4. СценарийCGI выполняется, обрабатывая все передаваемые ему данные.
5. СценарийCGI динамически формирует Web-страницу и возвращает результат серверу.
6. Сервервозвращает результат клиенту.
7. Браузеротображает результат пользователю
Этоявляется упрощенной схемой взаимодействия между браузером, сервером и сценариемCGI. Наибольшую популярность CGI — сценарии нашли при использовании в качествеобработчиков форм, средства доступа к базам данных, средства осуществлениялокального и глобального поиска, шлюзовых протоколов.
Наибольшеймощью в реализации клиентского программного обеспечения обладают аплеты — программы написанные на языке JAVA. В узком смысле слова Java — этообъектно-ориентированный язык, напоминающий C++, но более простой для освоенияи использования. В более широком смысле Java — это целая технологияпрограммирования, изначально рассчитанная на интеграцию с Web-сервисом, то естьна использование в сетевой среде. Поскольку Web-навигаторы существуютпрактически для всех аппаратно-программных платформ, Java-среда должна быть какможно более мобильной, в идеале полностью независимой от платформы.
Сцелью решения перечисленных проблем были приняты, помимо интеграции сWeb-навигатором, два других важнейших постулата.
1. Быласпецифицирована виртуальная Java-машина (JVM), на которой должны выполняться(интерпретироваться) Java-программы. Определены архитектура, представлениеэлементов данных и система команд Java-машины. Исходные Java-текстытранслируются в коды этой машины. Тем самым, при появлении новойаппаратно-программной платформы в портировании будет нуждаться толькоJava-машина; все программы, написанные на Java, пойдут без изменений.
2. Определено,что при редактировании внешних связей Java-программы и при работеWeb-навигатора прозрачным для пользователя образом может осуществляться поискнеобходимых объектов не только на локальной машине, но и на других компьютерах,доступных по сети (в частности, на WWW-сервере). Найденные объекты загружаются,а их методы выполняются затем на машине пользователя.
Несомненно,между двумя сформулированными положениями существует тесная связь. Вкомпилируемой среде трудно абстрагироваться от аппаратных особенностейкомпьютера, как трудно (хотя и можно) реализовать прозрачную динамическуюзагрузку по сети. С другой стороны, прием объектов извне требует повышеннойосторожности при работе с ними, а, значит, и со всеми Java-программами.Принимать необходимые меры безопасности проще всего в интерпретируемой, а некомпилируемой среде. Вообще, мобильность, динамизм и безопасность — спутникиинтерпретатора, а не компилятора.
Принятыерешения делают Java-среду идеальным средством разработки интерактивныхклиентских компонентов (апплетов) Web-систем. Особо отметим прозрачную дляпользователя динамическую загрузку объектов по сети. Из этого вытекает такоеважнейшее достоинство, как нулевая стоимость администрирования клиентскихсистем, написанных на Java. Достаточно обновить версию объекта на сервере,после чего клиент автоматически получит именно ее, а не старый вариант. Без этогореальная работа с развитой сетевой инфраструктурой практически невозможна.
/>
Рис.7.Java технологии при реализации АИС.
Стандартныйреляционный доступ к данным очень важен для программ на Java, потому чтоJava-апплеты по природе своей не являются монолитными, самодостаточнымипрограммами. Будучи модульными, апплеты должны получать информацию из хранилищданных, обрабатывать ее и записывать обратно для последующей обработки другимиапплетами. Монолитные программы могут себе позволить иметь собственные схемыобработки данных, но Java-апплеты, пересекающие границы операционных систем икомпьютерных сетей, нуждаются в опубликовании открытых схем доступа к данным.
ИнтерфейсJDBC (Java Database Connectivity — связанность баз данных Java) является первойпопыткой реализации доступа к данным из программ Java, не зависящего отплатформы и базы данных. В версии JDK 1.1 JDBC является составной частьюосновного Java API.
JDBC- это набор реляционных объектов и методов взаимодействия с источниками данных.Программа на языке Java открывает связь с таблицей, создает объект оператор,передает через него операторы SQL системе управления базой данных получаетрезультаты и служебную информацию о них. В типичном случае файлы .class JDBC иапплет/приложение на языке Java находятся на компьютере клиенте. Хотя они могутбыть загружены из сети, для минимизации задержек во время выполнения лучшеиметь классы JDBC у клиента. Система управления базой данных (CУБД) и источникданных обычно расположены на удаленном сервере.
Нарисунке 8 показаны различные варианты реализаций связи JDBC с базой данных.Апплет/приложение взаимодействует с JDBC в системе клиента, драйвер отвечает заобмен информацией с базой данных через сеть.
КлассыJDBC находятся в пакете java.sql.*. Все программы Java используют объекты иметоды из этого пакета для чтения и записи в источник данных. Программе, использующейJDBC, требуется драйвер к источнику данных, с которым она будетвзаимодействовать. Этот драйвер может быть написан на другом (не Java) языкепрограммирования, или он может являться программой на языке Java, котораяобщается с сервером, используя RPC (Remote Procedure Call) — удаленный вызовпроцедур или HTTP. Обе схемы приведены на рис.19. Драйвер JDBC может бытьбиблиотекой на другом (не Java), как программа сопряжения ODBC — JDBC, иликлассом Java, который общается через сеть с сервером базы данных, используя RPCили HTTP. Допускается, что приложение будет иметь дело с несколькимиисточниками данных, возможно, с неоднородными. По этой причине у JDBC естьдиспетчер драйверов, чьи обязанность заключаются в управлении драйверами ипредоставлении программе списка загруженных драйверов.
Хотясловосочетание «База данных» входит в расшифровку аббревиатуры JDBC,форма, содержание и расположение данных не интересуют программу Java,использующую JDBC, поскольку существует драйвер к этим данным.
/>
/>
Рис.8Варианты реализации связи JDBC с базой данных
СопряжениеJDBC — ODBC
Вкачестве составной части JDBC поставляется драйвер для доступа из JDBC кисточникам данных ODBC (Open Database Connectivity), и называется«программа сопряжения JDBC — ODBC». Эта программа сопряженияреализована в виде JdbcOdbc.class и является библиотекой для доступа к драйверуODBC.
ПосколькуJDBC конструктивно близок к ODBC, программа сопряжения является несложнойнадстройкой над JDBC. На внутреннем уровне этот драйвер отображает методы Javaв вызовы ODBC и тем самым взаимодействует с любым ODBC — драйвером. Достоинствотакой программы сопряжения состоит в том, что JDBC имеет доступ к любым базамданных, поскольку ODBC — драйверы распространены очень широко.
Всоответствии с правилами Internet JDBC идентифицирует базу данных при помощиURL, который имеет форму:
jdbc::
Убаз данных в Internet/intranet «имя» может содержать сетевой URL
//:/..
может быть любым именем, которое понимает база данных. Имя субпротокола«odbc» зарезервированно для источников данных формата ODBC. ТипичныйJDBC URL для базы данных ODBC выглядит следующим образом:
jdbc:odbc:;User=; PW=
Внутреннееустройство JDBC – приложения
/>
Рис.9.Иерархия классов JDBC и поток API JDBC
Чтобыобработать информацию из базы данных, информационно-обучающая система на языкеJava выполняет ряд шагов. На рис.9 показаны основные объекты JDBC, методы ипоследовательность выполнения, Во-первых, программа вызывает метод getConnection(), чтобы получить объект Connection.Затем она создает объект Statement иподготавливает оператор SQL.
ОператорSQL может быть выполнен немедленно (объект Statement), а может быть откомпилирован(объект PreparedStatement) или представлен в виде вызова процедуры (объект CallableStatement).Когда выполняется метод executeQuery(), возвращается объект ResultSet.Операторы SQL, такие как updatе или delete не возвращают ResultSet. Для таких операторовиспользуется метод executeUpdate(). Он возвращает целое, указывающее количестворядов, затронутых оператором SQL.
ResultSet содержит ряды данных ианализируетcя методом next(). Если приложение обрабатывает транзакции, можнопользоваться методами rollback() и commit() для отмены или подтвержденияизменений, внесенных оператором SQL.
Примерызапроса и модификации базы данных с использованием JDBC
Данныйпример иллюстрирует как при помощи SQL — опрератора SELECT составляется списоквсех студентов из базы данных. Ниже приводятся шаги, которые необходимы длявыполнения этого задания при помощи API JDBC. Каждый шаг имеет форму текста наязыке Java с комментариями.
// описать методы и переменные
public void ListStudents () throws SQLException
{
int i, noOfColumns;
String stNo, stFName, stLName;
// инициализировать и загрузить драйвер JDBC-ODBC
Class.forName («jdbc.odbc.JdbcOdbcDriver»);
// создать объект Connection
Connection ex1Con = DriverManager.getConnection (
«jdbc:odbc:StudentDB;uid=»admin";pw=«sa»");
// создать простой объект Statement
Statement ex1Stmt = ex1Con.createStatement ();
// Создать строку SQL, передать ее СУБД и
// выполнить SQL-оператор
ResultSet ex1rs = ex1Stmt.executeQuery (
«SELECT StudentNumber, FirstName, LastName FROM Students»);
// Обработать каждый ряд и вывести результат на консоль
System.out.println («Student Number First Name Last Name»);
while (ex1rs.next())
{
stNo = ex1rs.getString (1);
stFName = ex1rs.getString (2);
stLName = ex1rs.getString (3);
System.out.println (stNo, stFName, stLName);
}
}
Вследующем примере поле firstName таблицы Students изменяется. Доступосуществляется через поле StudentNumber.
// описать методы, переменные и параметры
public void UpdateStudentName (String stFName, String stLName,String stNo)
throws SQLException
{
int retValue;
//инициализировать и загрузить драйвер JDBC-ODBC
Class.forName («jdbc.odbc.JdbcOdbcDriver»);
// создать объект Connection
Connection ex1Con = DriverManager.getConnection (
«jdbc:odbc:StudentDB;uid=»admin";pw=«sa»");
// создать простой объект Statement
Statement ex1Stmt = ex1Con.createStatement ();
// Создать строку SQL, передать ее СУБД и
// выполнить SQL-оператор
String SQLBuffer = «UPDATE Students SET FirstName =» +
stFName + ", lastName =" + stLName +
«WHERE StudentNumber = » + stNo;
retValue = ex1Stmt.executeUpdate (SQLBuffer);
System.out.println («Модифицированно » + retValue +
" строк в базе данных.")
}
/>
Рис.11.Интерфейс для регистрации пользователя в АИС.
Такимобразом, взаимодействие с базами данных из Java также отличается простотой игибкостью, связанной с эффективной реализацией JDBC API. В сочетании со своейприродной платформо-независимостью, Java предоставляет уникальный инструментдля создания интерактивных распределенных информационно-обучающих систем набаза Internet/Intranet — технологий.
Основнымисложностями при реализации корпоративных систем на базе данной архитектурыявляются:
· отсутствиемногих популярных приложений и средств разработки реализованных в виде JAVAаплетов;
· относительноевысокое время компиляции аплетов на клиентских местах (временно);
· вопросыбезопасной работы в сети.
Список литературы
1. ПоповИ.Г., Мамонов С.Г. Информационные системы. М.: Инфра, 2007.
2. АбросимовА.Г. Бородинова М.А. Теория экономических информационных систем. Учебноепособие — Самара. Изд-во Самарск.гос. экон. акад., 2007.
3.Информационные системы. Учебник /Петров В.Н. – СПб.: Питер, 2008.
4.Информационное обеспечение систем управления. Учебное пособие/Голенищев Э.П.,Клименко И.В. — Ростов н/Д: Феникс, 2009.
5.Интеллектуальные информационные системы в экономике. Учебное пособие/ТельновЮ.Ф. Издание третье, расширенное и доработанное. Серия «Экономика и бизнес». –Москва.: СИНТЕГ, 2009.