9.3.2. Влияние intranet-технологии
В предыдущих разделах курса уже говорилось довольно много о технологии Internet/Intranet. В этом пункте мы сосредоточимся на возможных архитектурных решениях Intranet-систем.
Возникновение и внедрение в широкую практику высокоуровневых служб Всемирной Сети Сетей Internet (e-mail, ftp, telnet, Gopher, WWW и т.д.) естественным образом повлияли на технологию создания корпоративных информационных систем, породив направление, известное теперь под названием Intranet. По сути дела, информационная Intranet-система - это корпоративная система, в которой используются методы и средства Internet. Такая система может быть локальной, изолированной от остального мира Internet, или опираться на виртуальную корпоративную подсеть Internet. В последнем случае особенно важны средства защиты информации от несанкционированного доступа.
Хотя в общем случае в Intranet-системе могут использоваться все возможные службы Internet, наибольшее внимание привлекает гипермедийная служба WWW (WorldWideWeb - Всемирная Паутина). Видимо, для этого имеются две основные причины. Во-первых, с использованием языка гипермедийной разметки документов HTML можно сравнительно просто разработать удобную для использования информационную структуру, которая в дальнейшем будет обслуживаться одним из готовых Web-серверов. Во-вторых, наличие нескольких готовых к использованию клиентских частей - браузеров, или "обходчиков", избавляет от необходимости создавать собственные интерфейсы с пользователями, предоставляя им удобные и развитые механизмы доступа к информации. В ряде случаев такая организация корпоративной информационной системы (рисунок 9.5) оказывается достаточной для удовлетворения потребностей компании.
Рис. 9.5. Простая организация Intranet-системы с использованием средств WWW
Однако при всех своих преимуществах (простота организации, удобство использования, стандартность интерфейсов и т.д.) эта схема обладает сильными ограничениями. Прежде всего, как видно из рисунка 9.5, в информационной системе отсутствует прикладная обработка данных. Все, что может пользователь, это только просмотреть информацию, поддерживаемую Web-сервером. Далее, гипертекстовые структуры трудно модифицируются. Для того, чтобы изменить наполнение Web-сервера, необходимо приостановить работу систему, внести изменения в HTML-описания и только затем продолжить нормальное функционирование. Наконец, далеко не всегда достаточен поиск информации в стиле просмотра гипертекста. Базы данных и соответствующие средства выборки данных по-прежнему часто необходимы.
На самом деле, все перечисленные трудности могут быть разрешены с использованием более развитых механизмов Web-технологии. Эти механизмы непрерывно совершенствуются, что одновременно и хорошо и плохо. Хорошо, потому что появляются новые возможности. Плохо, потому что отсутствует стандартизация.
Что касается логики приложения, то при применении Web-технологии существует возможность ее реализации на стороне Web-сервера. Для этого могут использоваться два подхода - CGI (CommonGatewayInterface) и API (ApplicationProgrammingInterface). Оба подхода основываются на наличии в языке HTML специальных конструкций, информирующих клиента-браузера, что ему следует послать Web-серверу специальное сообщение, при получении которого сервер должен вызвать соответствующую внешнюю процедуру, получить ее результаты и вернуть их клиенту в стандартном формате HTTP (рисунок 9.6).
Рис. 9.6. Вызов внешней процедуры Web-сервера
Заметим, что подход CGI является более надежным (внешняя программа выполняется в отдельном адресном пространстве), но менее эффективным, чем подход API (в этом случае внешние процедуры компонуются совместно со стандартной частью Web-сервера).
Рис. 9.7. Доступ к базе данных в Intranet-системе
Аналогичная техника широко используется для обеспечения унифицированного доступа к базам данных в Intranet-системах. Язык HTML позволяет вставлять в гипертекстовые документы формы. Когда браузер натыкается на форму, он предлагает пользователю заполнить ее, а затем посылает серверу сообщение, содержащее введенные параметры. Как правило, к форме приписывается некоторая внешняя процедура сервера. При получении сообщения от клиента сервер вызывает эту внешнюю процедуру с передачей параметров пользователя. Понятно, что такая внешняя процедура может, в частности, играть роль шлюза между Web-сервером и сервером баз данных. В этом случае параметры должны специфицировать запрос пользователя к базе данных. В результате получается конфигурация информационной системы, схематически изображенная на рисунке 9.7.
На принципах использования внешних процедур основывается также возможность модификации документов, поддерживаемых Web-сервером, а также создание временных "виртуальных" HTML-страниц.
Даже начальное введение в Intranet было бы неполным, если не упомянуть про возможности языка Java. Java - это интерпретируемый объектно-ориентированный язык программирования, созданный на основе языка Си++ с удалением из него таких "опасных" средств как адресная арифметика. Мобильные коды (апплеты), полученные в результате компиляции Java-программы, могут быть привязаны к HTML-документу. В этом случае они поступают на сторону клиента вместе с документом и выполняются либо автоматически, либо по явному указанию. Апплет может быть, в частности, специализирован как шлюз к серверу баз данных (или к какому-либо другому серверу). При применении подобной техники доступа к базам данных схема организации Intranet-системы становится такой как на рисунок 9.8.
Рис. 9.8. Доступ к базе данных на стороне клиента Intranet-системы
На наш взгляд, Intranet является удобным и мощным средством разработки и использования информационных систем. Как мы уже отмечали, единственным относительным недостатком подхода можно считать постоянное изменение механизмов и естественное отсутствие стандартов. С другой стороны, если информационная система будет создана с использованием текущего уровня технологии и окажется удовлетворяющей потребностям корпорации, то никто не будет обязан что-либо менять в системе по причине появления более совершенных механизмов.
9.3.3. Особенности архитектур приложений, ориентированных на оперативную аналитическую обработку
Специфика архитектур приложений, ориентированных на оперативную аналитическую обработку, связана с особенностями организации требуемых хранилищ информации - складов данных (datawarehouse) и рынков данных (datamarts). Мы кратко обсудили возможные архитектурные решения и не будем больше возвращаться к этому вопросу (хотя упомянуть его нужно было обязательно, поскольку это отдельное направление архитектурной организации информационных систем).
9.3.4. Перспективные архитектуры глобальных распределенных информационных приложений
Нет никаких проблем, если с самого начала информационное приложение проектируется и разрабатывается в духе подхода открытых систем: все компоненты являются мобильными и интероперабельными, общее функционирование системы не зависит от конкретного местоположения компонентов, система обладает хорошими возможностями сопровождаемости и развития. К сожалению, на практике этот идеал является трудно достижимым. По разным причинам (мы перечислим некоторые из них ниже) возникают потребности в интеграции независимо и по-разному организованных информационно-вычислительных ресурсов. Видимо, ни в одной действительно серьезной распределенной информационной системе не удастся обойтись без применения некоторой технологии интеграции. К счастью, теперь существует путь решения этой проблемы, который сам лежит в русле открытых систем, - подход, предложенный крупнейшим международным консорциумом OMG (ObjectManagementGroup).
Остановимся на некоторых факторах, стимулирующих использование методов интеграции разнородных информационных ресурсов:
Решение проблемы интеграции неоднородных информационных ресурсов началось с попыток интеграции неоднородных баз данных. Направление интегрированных или федеративных систем неоднородных БД и мульти-БД появилось в связи с необходимостью комплексирования систем БД, основанных на разных моделях данных и управляемых разными СУБД.
Основной задачей интеграции неоднородных БД является предоставление пользователям интегрированной системы глобальной схемы БД, представленной в некоторой модели данных, и автоматическое преобразование операторов манипулирования БД глобального уровня в операторы, понятные соответствующим локальным СУБД. В теоретическом плане проблемы преобразования решены, имеются реализации.
При строгой интеграции неоднородных БД локальные системы БД утрачивают свою автономность. После включения локальной БД в федеративную систему все дальнейшие действия с ней, включая администрирование, должны вестись на глобальном уровне. Поскольку пользователи часто не соглашаются утрачивать локальную автономность, желая тем не менее иметь возможность работать со всеми локальными СУБД на одном языке и формулировать запросы с одновременным указанием разных локальных БД, то развивается направление мульти-БД. В системах мульти-БД не поддерживается глобальная схема интегрированной БД и применяются специальные способы именования для доступа к объектам локальных БД. Как правило, в таких системах на глобальном уровне допускается только выборка данных. Это позволяет сохранить автономность локальных БД.
Как правило, интегрировать приходится неоднородные БД, распределенные в вычислительной сети. Это в значительной степени усложняет реализацию. Дополнительно к собственным проблемам интеграции приходится решать все проблемы, присущие распределенным СУБД: управление глобальными транзакциями, сетевую оптимизацию запросов и т.д. Очень трудно добиться эффективности. Как правило, для внешнего представления интегрированных и мульти-БД используется (иногда расширенная) реляционная модель данных. В последнее время все чаще предлагается использовать объектно-ориентированные модели, но на практике пока основой является реляционная модель. Поэтому, в частности, включение в интегрированную систему локальной реляционной СУБД существенно проще и эффективнее, чем включение СУБД, основанной на другой модели данных.
Основным недостатком систем интеграции неоднородных баз данных является то, что при этом не учитываются "поведенческие" аспекты компонентов прикладной системы. Легко заметить, что даже при наличии развитой интеграционной системы, большинство из указанных выше проблем не решается. Естественным развитием взглядов на информационные ресурсы является их представление в виде набора типизированных объектов, сочетающих возможности сохранения информации (своего состояния) и обработки этой информации (за счет наличия хорошо определенного множества методов, применимых к объекту). Наиболее существенный вклад в создание соответствующей технологии внес международный консорциум OMG, выпустивший ряд документов, в которых специфицируются архитектура и инструментальные средства поддержки распределенных информационных систем, интегрированных на основе общего объектно-ориентированного подхода.
В базовом документе специфицируется эталонная модель архитектуры (OMA - ObjectManagementArchitecture) распределенной информационной системы (рисунок 9.9). Согласованная с архитектурой OMA прикладная информационная система представляется как совокупность классов и экземпляров объектов, которые взаимодействуют при поддержке брокера объектных заявок (ORB - ObjectRequestBroker). ORB, общие средства (CommonFacilities) и объектные службы (ObjectServices) относятся к категории промежуточного программного обеспечения (middleware) и должны поставляться вместе. Объектные службы представляют собой набор услуг (интерфейсов и объектов), которые обеспечивают выполнение базовых функций, требуемых для реализации прикладных объектов и объектов категории "общие средства" (например, специфицированы служба именования объектов, служба долговременного хранения объектов, служба управления транзакциями и т.д.). Общие средства содержат набор классов и экземпляров объектов, поддерживающих функции, полезные в разных прикладных областях (например, средства поддержки пользовательского интерфейса, средства управления информацией и т.д.).
Рис. 9.9. Эталонная модель OMA
В основе OMA лежит базовая объектная модель COM (CoreObjectModel), в которой специфицированы такие понятия, как объект, операция, тип, подтипизация, наследование, интерфейс. Определены также способы согласованного расширения COM в разных объектных службах.
Интерфейсы объекта-клиента и объекта-сервера должны быть определены на специальном языке IDL (InterfaceDefinitionLanguage), который очень напоминает компонент спецификации класса (без реализации) языка Си++. Обращения к ORB могут быть сгенерированы статически при компиляции спецификаций IDL или выполнены динамически с использованием специфицированного в документах OMGAPI брокера объектных заявок. Правила построения и использования ORB определены в документе OMGCORBA (CommonObjectRequestBrokerArchitecture).
Заметим, что архитектура, предложенная OMG, не является единственно возможной. В частности, альтернативные (и очень популярные) решения предлагает компания Microsoft со своей моделью SOM и продуктами OLE, ActiveX, OLEDB.
Основным выводом из материала этого пункта является то, что проблемы интеграции неоднородных информационных ресурсов являются актуальными для корпораций и существуют технологии, позволяющие решать эти проблемы.
В заключение данного раздела курса повторим, что приведенная классификация методов и технологий не является полностью ортогональной. В реальной жизни требуется использовать разумные сочетания технологических и архитектурных решений. Наша цель не состоит в том, чтобы выдать готовые рецепты построения информационной системы. Мы стремимся погрузить слушателей в мир информационных технологий с тем, чтобы в дальнейшем было проще ориентироваться в этом мире и понимать значение его сущностей.
В этом разделе мы кратко обсудим проблемы построения информационных приложений, которые, с одной стороны, примыкают к чисто техническим проблемам, а с другой стороны, тес- но связаны с проблемами организационными. Отметим, что в данном разделе многое является спорным и отражает личную точку зрения автора (которая совпадает с точкой зрения многих авторитетных специалистов).
9.4.1. Как правильно оценить текущие и будущие потребности организации
На самом деле, это является одной из наиболее сложных задач. Недооценка потребностей приводит к размножению мелких информационных систем, обеспечивающих отдельные информационные нужды предприятий (например, бухгалтерия, складское хозяйство, отдел кадров, служба маркетинга и т.д.). В дальнейшем может оказаться, что эти системы частично дублируют одна другую, а их информация сильно перекрывается. Наличие нескольких информационных систем, построенных на разных технологиях, - это и источник "унаследован- ных" систем. Переоценка потребностей может привести к созданию чрезмерно масштабной системы с неразумным расходованием средств и потребностью в квалифицированном штате администраторов.
Самое главное, что здесь невозможны общие рекомендации. Руководители организации обладают (или, по крайней мере, должны обладать) развитой интуицией относительно перспектив развития. Сторонние компании-интеграторы имеют больший опыт создания информационных систем, могут лучше оценить доступность недорогих и эффективных решений.
9.4.2. Как выбрать базовые аппаратно-программные средства, чтобы не потратить слишком много денег и не ограничить будущее развитие приложения
Естественно, что требования к аппаратно-программным средствам определяются требованиями к информационной системе в целом. Какие бы информационные возможности не требовались служащим корпорации, окончательное решение всегда принимается ее руководством, которое корректирует требования к информационной системе и формирует окончательное представление об аппаратной среде (что является исходной точкой и проектов, выполняемых сторонними интеграторами). На наш взгляд, имеются четыре возможных позиции руководства по поводу места информационной системы в корпорации: пессимистическая, пессимистически-оптимистическая, оптимистически-пессимистическая и оптимистическая.
Руководитель-пессимист рассуждает следующим образом. Корпорации нужно продержаться хотя бы какое-то время. Без информационной системы это невозможно. Нужно выбрать самое дешевое решение, которое может быть реализовано максимально быстро. Руководитель не думает, что будет с корпорацией через два года (вернее, поскольку он пессимист, то думает, что, скорее всего, через два года корпорация просто не будет существовать или у нее сменится руководитель). При такой позиции наиболее подходящим является некоторое закрытое и законченное техническое решение. Например, это может быть полностью сбалансированная локальная сеть Novell с выделенным файл-сервером и фиксированным числом рабочих станций. Жесткость решения затем закрепляется соответствующим программным обеспечением информационной системы. Возможности расширения системы отсутствуют, реинжиниринг требует практически полной переделки системы.
Пессимистически-оптимистический руководитель не ожидает краха корпорации или своего собственного увольнения. Но он не надеется на изменение статуса компании, например, на появление зарубежных филиалов. Возможно, корпорация будет несколько развиваться, возможно, появятся новые виды бизнеса, возможно, увеличится число служащих. Но поскольку руководитель все-таки более пессимист, чем оптимист, то он не очень высоко оценивает шансы на развитие (дай-то Бог, чтобы за два года мы выросли на 20%). Такой позиции руководства больше всего подходит закрытое решение, обладающее ограниченными возможностями расширения. Например, это может быть локальная сеть Novell, в которой пропускная способность превосходит потребности имеющихся рабочих станций, а файл-сервер может быть оснащен дополнительными магнитными дисками. Если пессимизм руководителя окажется неоправданным, то корпорация встретится с потребностью сложного реинжиниринга.
Руководитель с оптимистически-пессимистической позицией ставит своей целью развитие корпорации. Он учитывает, что при развитии корпорации потребуется соответствующее развитие информационной системы, для чего, вообще говоря, может понадобиться сменить сервер баз данных. Он учитывает, что при развитии корпорации могут образоваться территориально разнесенные офисы, в результате чего, возможно, потребуется перейти к использованию распределенной базы данных. Он учитывает, в конце концов, что корпорации могут потребоваться развитые средства телекоммуникации с удаленными филиалами и/или партнерами. Пессимизм руководителя состоит только в том, что он заранее делает ставку на одного производителя (эти-то продукты я знаю). Например, может быть сделана установка на использование только Intel-платформ в среде Microsoft или только Alpha-платформ с VAX/VMS. Вообще говоря, это здоровый пессимизм, поскольку однородность аппаратно-программной среды существенно облегчает ее администрирование. Но как обидно будет этому руководителю, если ему предложат дешево купить прекрасный аппаратный продукт другого производителя. Придется либо отказаться, либо снова производить изнурительный реинжиниринг.
Наконец, руководитель-оптимист разделяет позицию оптимистически-пессимистического руководителя по поводу перспектив развития корпорации, но при этом желает сохранить возможность использования различных аппаратных платформ. Он стимулирует построение открытой корпоративной информационной системы, которая может неограниченно наращиваться за счет подключения новых сегментов сети, включения новых серверов и рабочих станций. Оптимистический подход, естественно, требует применения международных стандартов, что облегчает комплексирование аппаратного комплекса и обеспечивает реальное масштабирование информационной системы. Если начать построение корпоративной системы с сети Ethernet с использованием стека протоколов TCP/IP, то это начало оптимистического решения. В этом случае проблемы реинжиниринга практически отсутствуют (пока не сменятся стандарты).
Конечно, приведенная классификация является несколько утрированной. В жизни все гораздо сложнее. В частности, нельзя не учитывать влияние на руководителя технических специалистов. Чем грамотнее составляется обоснование на приобретение технических средств, тем обоснованнее оптимизм или пессимизм руководителя. Конечно, многое определяется возможными денежными затратами. Но стоит заметить, что оптимистический подход (по сути дела, это подход открытых систем) требует минимальных затрат на начальном этапе становления корпоративной системы (если, конечно, не учитывать необходимость приобретения хорошего программного сервера баз данных).
Главный вывод этого пункта состоит в том, что выбор технических средств для построения корпоративной информационной системы - это непростая задача, включающая технические, политические и эмоциональные аспекты. Ни в коем случае комплексирование аппаратуры нельзя пускать на самотек. Простой пример. Многие считают, что чем больше тактовая частота аппаратного сервера баз данных, то тем быстрее будет работать СУБД. Вообще говоря, это неправильно. Быстродействие любого сервера баз данных в основном определяется объемом основной памяти и/или числом процессоров. Другими словами, с одинаковой тщательностью нужно относиться и к выбору общей аппаратной архитектуры системы, и к выбору конфигурации каждого из ее компонентов.
9.4.3. Какие этапы разработки проекта приложения являются наиболее дорогостоящими и почему
Это в большой степени зависит от масштабности проекта и вида проектируемого информационного приложения. Например, если используется традиционная двухзвенная архитектура системы с применением одного из современных сервера баз данных, то, по всей видимости, самой дорогой частью проекта будет проект базы данных. И понятно, почему. Во-первых, для проектирования сложной базы данных трудно обойтись без дорогостоящей системы автоматизации проектирования (CASE-системы). Во-вторых, корректность схемы базы данных и правильность ее построения являются залогом работоспособности и эффективности будущей информационной системы. Поэтому к проектированию базы данных должны применяться максимальные усилия.
Если же по архитектурным соображениям выбирается многозвенная архитектура "клиент-сервер" с несколькими серверами баз данных и серверами приложений, работающими под управлением общего монитора распределенных транзакций, то трудоемкость проекта несколько перераспределяется. Конечно, по-прежнему критично важен проект (распределенной) базы данных. Но не менее важно понять, где и какие серверы приложений будут использоваться, будет ли применяться репликация и т.д.
Для организации прикладной системы оперативной аналитической обработки информации, основанной на использовании склада данных, наибольшие накладные расходы требуются именно на организацию склада данных, включая механизмы источников данных, очистки и согласования данных, возможности многомерного представления информации и т.д.
9.4.4. Что такое "унаследованная система" (legacysystem) и как поступить с этим "наследством"
Особенно трудно создавать современную высокотехнологичную информационную систему в организации, где уже используются информационные системы, основанные на технологии предыдущих поколений. Такие системы называются унаследованными. С ними связаны следующие проблемы: (1) они не приспособлены к интеграции с системами нового поколения; (2) системы часто используются на морально устаревших аппаратно-программных платформах и не могут быть легко перенесены на новые платформы; (3) недоступны разработчики систем, а сами они написаны на старых и трудно постигаемых языках программирования (в частности, на языках ассемблера); (4) без этих систем организация не может существовать, причем не допускается даже временный выход из строя.
Отмеченные проблемы кажутся настолько сложными и противоречивыми, что первым является желание закрыть на них глаза. Собственно, так многие и делают. Пока унаследованная система работает, пускай работает, а когда перестанет функционировать, тогда и подумаем, что делать. Решение простое, но очень ненадежное. Известны примеры, когда мультимиллиардные компании несли колоссальные убытки из-за выхода из строя унаследованной системы.
Так что же делать? Прежде всего нужно оценить важность унаследованной системы для организации. Если окажется, что некоторое время без нее можно обойтись, то самым дешевым решением будет воспроизводство системы на новой технологии, которая в будущем не воссоздаст аналогичные проблемы. Если же остановка функционирования системы недопустима, то при проектировании нового поколения информационной системы предприятия потребуется применять некоторую промежуточную технологию типа той, которую мы уже упоминали.
9.4.5. Как перенести существующее приложение на другую аппаратно-программную платформу
Конечно, возможность подобного переноса должна быть предусмотрена при первоначальной разработке приложения. Очевидно, что без участия компании-разработчика или ее ответственного представителя невозможно произвести перенос сервера баз данных. Обычно крупные платформы для своих заказчиков оказывают услугу по поставке аналогичного или усовершенствованного продукта для другой платформы (естественно, не бесплатно, но существенно дешевле, чем обошлась бы покупка полностью заново).
Так что основные проблемы могут быть связаны с портированием клиентских частей информационной системы и серверов приложений (а также Web-серверы, если система является Intranet-ориентированной и используется свободно доступный Web-сервер). Опять же, если покупается готовая информационная система или ее сборкой/разработкой занимается компания-интегратор, то условия возможности переноса должны быть точно оговорены в контракте (главное не забыть, что этот перенос может понадобиться).
Наиболее сложным, с одной стороны, и наиболее естественно решаемым является случай, когда организация сама занимается проектированием и разработкой информационной системы. Тогда прежде всего нужно решить, какая операционная система будет использоваться на клиентских местах. Если это какая-то разновидность ОС UNIX (что встречается все реже), то клиентская часть приложения должна разрабатываться с использованием некоторого мультиплатформенного средства разработки, опирающегося на стандарты этой ОС. Тогда с большой вероятностью особые проблемы при переносе не возникнут. Если же будет использоваться операционная система компании Microsoft (Windows 95 или NT), то с большой вероятностью аппаратной платформой клиентской части будет Intel, и проблемы с переносом могут проявиться при смене версии операционной системы. Аналогичные соображения применимы к серверам приложений.
Назад | Содержание | Вперед