Logo GenDocs.ru

Поиск по сайту:  

Загрузка...

Лекции - Архитектура корпоративных сетей - файл 1.doc


Лекции - Архитектура корпоративных сетей
скачать (309 kb.)

Доступные файлы (1):

1.doc309kb.16.11.2011 00:47скачать

содержание
Загрузка...

1.doc

Реклама MarketGid:
Загрузка...
Корпоративные сети.


Эпитет "корпоративный" часто используется для характеристики продуктов вычислительных систем. Корпоративными могут быть названы почти все типы элементов вычислительной системы, от концентраторов и маршрутизаторов до серверов и операционных систем - разве что сетевые адаптеры редко удостаиваются такой чести. Эта характеристика также применяется и к системам управления базами данных : Oracle, Informix, Sybase, DB2 - все это примеры СУБД, которые часто называются корпоративными. Среди специалистов и производителей существуют различные толкования этого термина (равно, как и любого другого), поэтому иногда бывает трудно понять, почему производитель называет свое детище корпоративным, а продукцию конкурентов - нет. Интуитивно с прилагательным "корпоративный" связывается образ чего-то крупного, мощного, производительного и надежного. Тем не менее, хочется иметь более твердую почву под ногами, и основания для этого есть. Имеется несколько устоявшихся признаков корпоративности, и их можно применять универсально, как к аппаратуре, так и к программным продуктам, в том числе и базам данных. Наличие этих признаков гарантирует хорошую работу продуктов в корпоративной сети. Эти признаки тесно связаны с особенностями и спецификой корпоративных сетей, поэтому для четкого формулирования требований к корпоративным базам данных необходимо ясное понимание особенностей корпоративных сетей.

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

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

Аналогичным образом некоторые СУБД поступают и с коммуникационными функциями операционных систем. Примерами здесь могут служить такие компоненты баз данных как Oracle SQL*Net или Ingres Net, в которых реализованы популярные транспортные протоколы. Понятно, что дублирование транспортных функций ОС дополнительными компонентами СУБД происходит не от хорошей жизни, а от ограниченности сетевых возможностей универсальных операционных систем: отсутствия тех или иных протоколов или низкоскоростной их реализации.

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

Очевидно, что использование единой транспортной системы для всех приложений вычислительной системы облегчило бы жизнь и пользователям, и администраторам. И в этом направлении корпоративные сети быстро развиваются, позволяя своим пользователям отказаться от транспортных услуг отдельных, хотя и очень важных приложений и использовать общие средства.

Итак, что же такое корпоративные сети? В англоязычной литературе этот вид сетей чаще называется "enterprise-wide networks" (дословно - сеть масштаба предприятия), а в нашей стране прижился другой термин иностранного происхождения - корпоративные сети, что, на наш взгляд, больше соответствует самой сути таких сетей. Термин "корпоративная" отражает с одной стороны величину сети, так как корпорация - это крупное, большое предприятие. С другой стороны, этот термин несет в себе смысл объединения, то есть корпоративная сеть - это сеть, получившаяся в результате объединения нескольких, как правило, разнородных сетей. Кроме того, дух корпоративности - это дух некоего единства, общности, и в этом смысле корпоративные сети - это сети, в которых неоднородные компоненты живут в счастливом согласии.

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

Кроме того, непременным атрибутом такой сложной и крупномасштабной сети является гетерогенность - нельзя удовлетворить потребности тысяч пользователей с помощью однотипных элементов и однородных структур. В корпоративной сети обязательно будут использоваться различные типы компьютеров - от мейнфреймов до персоналок, 3-5 типов операционных систем, с десяток различных коммуникационных протоколов, несколько СУБД и множество других приложений.

^ Превышение количественными изменениями некоторой критической массы и породило новое качество - корпоративную сеть.

Термин "корпоративность" связывает описанный вид сетей с принадлежностью их одному предприятию, причем крупному. Этот признак не является главным, а просто отражает тот факт, что крупномасштабная, гетерогенная и хорошо интегрированная сеть чаще всего получается в результате усилий предприятия при объединении своих отдельных сетей в единую информационную систему. Поэтому, если сеть обладает отмеченными выше особенностями, но не принадлежит одной корпорации, то ее все равно можно назвать корпоративной.

Корпоративные сети возникли не на пустом месте. Сначала на предприятиях создавались небольшие локальные сети, используемые только небольшой группой сотрудников - так называемые сети рабочих групп, затем они вырастали в сети отделов и кампусов (площадок).

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

Сети кампусов - соединяют несколько сетей отделов внутри отдельного здания или внутри одной территории предприятия. Эти сети являются все еще локальными сетями, хотя и могут покрывать территорию в несколько квадратных километров. Сервисы такой сети включают взаимодействие между сетями отделов, доступ к базам данных предприятия, доступ к факс-серверам, высокоскоростным модемам и высокоскоростным принтерам.

Сети отделов или рабочих групп используются группой людей, объединенных решением общей задачи, такой, например, как бухгалтерский учет или маркетинг. Главной целью сетей отделов является разделение ресурсов, таких как приложения, данные, лазерные принтеры и, возможно, низкоскоростные модемы. Обычно сети отделов имеют один или два файловых сервера и не более чем 30 пользователей. Сети отделов, как правило, не разделяются мостами на подсети (сегменты). Даже когда сети отделов соединены в корпоративную сеть, большая часть трафика локализуется в сети отдела, потому что именно в ней выполняется большая часть работы. Как правило, пользователи в 80% случаев обращаются к локальным ресурсам, а в 20% случаев - к удаленным ресурсам.

Сети рабочих групп и отделов обычно создаются на основе какой либо одной сетевой технологии - Ethernet, Token Ring, или, если в рабочей группе происходит обмен большими объемами информации (например, мультимедийными файлами), то высокоскоростные протоколы, такие как FDDI, Fast Ethernet или 100VG-AnyLAN.

Такая сеть обычно использует одну или максимум две сетевые ОС. Чаще всего это сеть с выделенным сервером NetWare 3.x или Windows NT, или же одноранговая сеть, например сеть Windows for Workgroups. Все пользователи рабочей группы или отдела пользуются СУБД одного типа, чаще всего настольными СУБД типа dBase, Paradox или FoxPro, пользующимися файловым сервером для хранения разделяемых данных.

Сети отделов не требуют сложного управления, так как решаемые на этом уровне задачи поддержания сети относительно просты. В функции администратора входит добавление новых пользователей, устранение простых отказов, инсталляцию новых узлов и установку новых версий программного обеспечения. Сложные задачи, такие как установка принципиально нового программного обеспечения, выполняются консультантами или представителями фирм- поставщиков. Средства управления сетей отделов хорошо отработаны и разнообразны, так же, как и сами сети отделов, уже давно применяющиеся и достаточно отлаженные. Такой сетью может управлять сотрудник, посвящающий обязанностям администратора только часть своего времени. В большинстве случаев администратор сети отдела не имеет специальной подготовки, но чаще всего он является тем человеком в отделе, который лучше всех разбирается в компьютерах и само- собой получается так, что он занимается администрированием сети. В нашей стране большинство сетей относится именно к этому типу.

^ Основными признаками сети рабочей группы или отдела являются таким образом, однородность и небольшой масштаб.

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

Итак, следующим шагом в эволюции сетей является объединение локальных сетей нескольких отделов в единую сеть здания или группы зданий. Такие сети называют сетями кампусов. Сети кампусов могут простираться на несколько километров, но при этом глобальные соединения не требуются. Сети кампусов имеют позвоночник (backbone) или главную сеть, и подсети, подобные ребрам. Для повышения производительности предприятия иногда используют маршрутизаторы, однако чаще подсети присоединяются к позвоночнику с помощью мостов или быстродействующих многопортовых мостов нового поколения - коммутирующих концентраторов (switching hubs).

В сети кампуса в каждом отделе осуществляется администрирование своими серверами, но сотрудники отдела получают доступ к некоторым файлам и ресурсам сетей других отделов. Услуги, предоставляемые сетями кампусов, не ограничиваются простым разделением файлов и принтеров, а часто включают доступ и к серверам других типов, например, к факс-серверам и к серверам высокоскоростных модемов. Важным сервисом, предоставляемым сетями кампусов, стал доступ к корпоративным базам данных, независимо от того, располагаются ли они на серверах баз данных или на миникомпьютерах.

Именно на уровне сети кампуса начинаются проблемы интеграции. В общем случае, отделы уже выбрали для себя компьютеры и приложения (а, следовательно, и сеть), которые подходят им наилучшим образом. Однако, то, что подходит отделу продаж, может не подойти, например, отделу разработчиков. Типы компьютеров, сетевых операционных систем, сетевого аппаратного обеспечения могут отличаться в каждом отделе. Например, инженерный отдел может использовать операционную систему UNIX и сетевое оборудование Ethernet, отдел продаж может использовать операционные среды DOS/Novell и оборудование Token Ring. Очень часто сеть кампуса соединяет разнородные компьютерные системы, в то время как сети отделов используют однотипные компьютеры. Часто сети кампусов оказываются соединенными случайным образом. Например, два отдела, которые работают вместе, могут соединить свои компьютерные системы, а уже затем к ним захочет присоединиться третий отдел. Отсюда вытекают сложности управления сетями кампусов. Администраторы должны быть в этом случае более квалифицированными, их нужно специально обучать. В случае сбоев и отказов администратору уже недостаточно проверить надежность соединения разъема. Нужны более изощренные средства оперативного управления сетью.

Сеть кампуса содержит в себе многие признаки корпоративной сети - ей не хватает только масштабности и наличия глобальных связей. Корпоративная сеть - это объединения сетей нескольких кампусов, а сеть кампуса - это объединение сетей рабочих групп и отделов. Чем больше количество объединяемых сетей, тем более ярко выражены новые качественные признаки.

В результате, многие существующие методы и подходы к решению традиционных задач сетей меньших масштабов для корпоративной сети оказались непригодными. На первый план вышли такие задачи и проблемы, которые в сетях рабочих групп, отделов и даже кампусов либо имели второстепенное значение, либо вообще не проявлялись.

Например, простейшая для небольшой сети задача ведения учетной информации о пользователях выросла в сложную проблему для сети масштаба предприятия. Использование глобальных связей заставило специалистов по локальным сетям выйти в новый для них мир телекоммуникаций. Особое значение приобрели задачи преодоления гетерогенность - в сети появились многочисленные шлюзы, обеспечивающие согласованную работу различных ОС и сетевых системных приложений. Для обеспечения совместной работы в сети различных коммуникационных протоколов стали широко использоваться многопротокольные маршрутизаторы и транслирующие мосты.

Расширился и круг услуг, предоставляемых конечному пользователю: кроме традиционных сервисов локальных сетей - разделения файлов и принтеров - в джентльменский набор сервисов корпоративной сети обычно входят почтовая служба, средства коллективной работы, поддержка удаленных пользователей, факс-сервис, обработка голосовых сообщений, организация видеоконференций и пр. и пр.

Важное значение приобретает время реакции приложений в корпоративной сети - при динамичном рынке для успешной борьбы с конкурентами решения необходимо принимать в реальном масштабе времени, что требует соответствующей организации корпоративной сети и ее приложений, в том числе СУБД, способной оперативно отрабатывать запросы к данным (поддержка режима On Line Transaction Processing, OLTP). В то же время в большой корпоративной сети обеспечить хорошее время реакции особенно сложно - этому мешает высокая интенсивность потока запросов, создаваемых сотнями и тысячами сотрудников корпорации, необходимость производить поиск данных в базах колоссальных размеров, невысокая скорость глобальных линий связи между отделениями корпорации, замедление скорости взаимодействия в шлюзах, согласующих неоднородные компоненты различных подсетей. В корпоративных системах предыдущих поколений с таким положением вещей мирились - особенно крупные базы данных хранились централизованно на мейнфреймах и обеспечивали доступ к данным в пакетном режиме, не дающем быстрой реакции на запрос. Теперь же требования работы в реальном времени стали для корпораций насущной необходимостью и одним из основных требований, предъявляемых к корпоративным сетям и корпоративным приложениям.

Корпоративные сети состоят из продуктов, часть из которых можно назвать корпоративными. Понятие "корпоративности" продукта включает в себя несколько аспектов, среди которых важнейшими являются:


  • масштабируемость, то есть способность одинаково хорошо работать в большом диапазоне различных количественных характеристик сети,

  • совместимость с другими продуктами, то есть способность работать в сложной гетерогенной среде интерсети в режиме plug-and-play.

Очевидно, в корпоративной сети могут использоваться не только продукты класса корпоративных, но и продукты уровня отделов и рабочих групп. Корпоративные продукты используются на магистрали сети, там, где они организуют разделение ресурсов между большим количеством пользователей, в пределе - между всеми пользователями корпорации. Продукты же рабочих групп предоставляют свои ресурсы в основном только членам своей рабочей группы, поэтому их производительность, надежность и другие свойства могут быть гораздо более скромными, чем у корпоративных продуктов. Поэтому в одной и той же сети успешно справляются со своими обязанностями и СУБД Access компании Micosoft, работающая на 486-х персоналках и СУБД Oracle, работающая на суперсерверах компаний Digital, Hewlett-Packard или Tricord. Access обеспечивает, например, разделение данных только для 12 сотрудников небольшого вспомогательного отдела, а Oracle предоставляет доступ к жизненно важной для корпорации информации (о выпускаемых ею продуктах, объемах продаж, производственных планах и т.п.) для всех сотрудников корпорации, в том и для упомянутых сотрудников вспомогательного отдела. Oracle может выполнить эту задачу, так как является корпоративным продуктом, а Access с ней бы не справился, так как это продукт уровня рабочей группы, он и не разрабатывался для поддержки большого числа пользователей и больших массивов данных. Соответственно возможностям различаются и цены корпоративных продуктов и продуктов рабочих групп.

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

Подобно большой организации, корпоративная сеть нуждается в централизованном хранении как можно более полной справочной информации о самой себе (начиная с данных о пользователях, серверах, рабочих станциях и кончая данными о кабельной системе). Естественно организовать эту информацию в виде базы данных специального системного назначения. Данные из этой базы могут быть востребованы многими сетевыми системными приложениями, в первую очередь системами управления и администрирования. Кроме этого, такая база полезна при организации электронной почты, систем коллективной работы, службы безопасности, службы инвентаризации программного и аппаратного обеспечения сети, да и для практически любого крупного бизнес- приложения, в том числе и СУБД. Чем больше возможностей по хранению данных о элементах сети предоставляет справочная служба сетевой операционной системы, тем меньше потребности в отдельной системе администрирования СУБД, хотя пока потребность в последней сохраняется, и в одной корпоративной сети одновременно работает несколько администраторов - каждый из них администрирует свой слой сети - коммуникационное оборудование, серверы, операционные системы, базы данных и т.п.

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

В идеале сетевая справочная информация должна быть реализована в виде единой базы данных, а не представлять собой набор баз данных, специализирующихся на хранении информации того или иного вида, как это часто бывает в реальных операционных системах. Например, в Windows NT имеется по крайней мере пять различных типов справочных баз данных. Главный справочник домена (NT Domain Directory Service) хранит информацию о пользователях, которая используется при организации их логического входа в сеть. Данные о тех же пользователях могут содержаться и в другом справочнике, используемом электронной почтой Microsoft Mail. Еще три базы данных поддерживают разрешение низкоуровневых адресов: WINS - устанавливает соответствие Netbios- имен IP-адресам, справочник DNS - сервер имен домена - оказывается полезным при подключении NT-сети к Internet, и наконец, справочник протокола DHCP используется для автоматического назначения IP-адресов компьютерам сети. Ближе к идеалу находятся справочные службы, поставляемые фирмой Banyan (продукт Streettalk III) и фирмой Novell (NetWare Directory Services), предлагающие единый справочник для всех сетевых приложений.

Справочная служба Streettalk уже давно выпускается компанией Banyan и является наиболее отработанным продуктом этого типа. Многие третьи фирмы купили у компании Banyan лицензию и используют службу Streettalk в своих системах.

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

^ Другим характерным примером специфики корпоративных сетей является подход к построению и поддержке распределенных приложений.

Сетевые распределенные приложения строятся, как известно, в модели клиент-сервер. При этом, в небольших сетях наибольшее распространение получила двухзвенная схема этой модели: на сервере выполняется часть приложения, связанная с выполнением запросов к базе данных и к файловому сервису, а на клиентских машинах - часть, реализующая логику обработки данных приложения, а также организующая интерфейс с пользователем. Большинство современных корпоративных систем управления базами данных представляют собой классический пример двухзвенной модели клиент-сервер: клиентская часть генерирует запросы на поиск данных в некоторой стандартной форме, чаще всего на языке SQL, и реализует логику обработки данных, а СУБД отрабатывает получаемых от клиентов запросы, осуществляя поиск данных в своих таблицах. Именно этот вариант модели клиент-сервер часто считается единственно возможным, а файловому серверу отказывают в титуле "клиент-сервер", хотя на самом деле здесь есть и клиент, и сервер, просто распределение функций между ними иное - сервер выполняет централизованное хранение и поиск файлов, а клиент - все остальное. Закрепление титула "клиент-сервер" за СУБД, выполняющей на сервере функции поиска записей, имеет основание - при этом резко сокращается трафик между клиентскими и серверными компьютерами, а также уменьшаются требования к вычислительной мощности клиентских компьютеров, правда, только для приложений с простой логикой обработки данных.

Однако, в корпоративных сетях обязательно имеются и сложные приложения, требующие для реализации логической обработки данных большой вычислительной мощности. Для них более подходящей является многозвенная схема, позволяющая разделить приложение на большее число частей. Например, приложение будет выполняться более эффективно, если освободить файл-сервер от выполнения запросов к базе данных и перенести СУБД на отдельный, более мощный компьютер. Из этих же соображений часто оказывается целесообразным перенести обработку логики приложения с персональных компьютеров также на отдельный компьютер большой вычислительной мощности - сервер приложений, так как вычислительная часть общих для корпорации программных систем может быть слишком емкой и неподъемной для рабочих станций клиентов.

Сервер приложений должен базироваться на мощной аппаратной платформе (мультипроцессорные системы, часто на базе RISC-процессоров, специализированные кластерные архитектуры). ОС сервера приложений должна обеспечивать высокую производительность вычислений, а значит поддерживать многонитевую обработку, вытесняющую многозадачность, мультипроцессирование, виртуальную память и наиболее популярные прикладные среды (UNIX, Windows, MS-DOS, OS/2). В этом отношении сетевую ОС NetWare трудно отнести к корпоративным продуктам, так как в ней отсутствуют почти все требования, предъявляемые к серверу приложений. В то же время хорошая поддержка универсальных приложений в Windows NT собственно и позволяет ей претендовать на место в мире корпоративных продуктов.

При построении распределенных приложений важным является способ взаимодействия частей - синхронный или асинхронный. Синхронный способ, при котором часть приложения, выдавшая запрос, блокируется на время его выполнения, а серверная часть, получив запрос, должна немедленно заняться его выполнением, мало подходит для корпоративных приложений. Так как из-за больших расстояний (нередко с включением глобальных связей) время выполнения запроса может оказаться слишком большим, то клиентская часть приложения может быть приостановлена на долгое время, с другой стороны, большая интенсивность и случайный характер потока запросов может дезорганизовать работу сервера.

Поэтому корпоративные приложения эффективнее строить с применением асинхронной связи между отдельными частями. В этом случае необходимо иметь дополнительную службу (относящуюся к так называемому классу middleware), которая принимала бы запросы от клиентской части приложения, вела бы очередь таких запросов (желательно на диске для повышения отказоустойчивости) и планировала бы загрузку сервера. Асинхронный способ взаимодействия предъявляет менее жесткие требования к устойчивости физической связи между клиентом и сервером, что особенно важно для коммутируемых глобальных каналов, которые в общем случае всегда могут разделять части приложений в корпоративной сети. Примерами продуктов, которые поддерживают асинхронную передачу сообщений между клиентами и серверами, являются системы DECmessage Q от Digital Equipment, Message Express от Momentum Software и Copernicus от New Paradigm Software.

В корпоративных сетях для связи клиентских и серверных частей приложений кроме используются и ряд других средств, относящихся к классу middleware, а не только упомянутые средства асинхронной обработки сообщений (message-oriented midleware, MOM). Широко используемые в сетевых операционных системах и сетевых утилитах средства удаленного вызова процедур RPC также относятся к классу middleware. Кроме того, в этот класс входят мониторы обработки транзакций (transaction processing monitors, TP), осуществляющие прием потока запросов транзакций от клиентов и осуществляют балансировку этих потоков при передаче их на серверы баз данных, постановку их в очередь, архивацию и восстановление после сбоев. Перспективным, но пока еще не нашедшими практического воплощения являются средства брокеров запроса объектов (object request broker, ORB), которые работают подобно средствам асинхронной обработки запросов, но только с привлечением концепции объектно-ориентированной технологии.

Использование средств класса middleware в корпоративных сетях связано с необходимостью упорядочить хаотический поток запросов от огромного числа клиентов к большому количеству серверов, создать некоторые регулирующие эти потоки механизмы, подобно регулировщикам движения на оживленных городских магистралях.

^ Важную роль в обеспечении необходимых свойств корпоративной сети играет структура транспортной системы и ее согласованность.

Транспортная система корпоративной сети должна обеспечивать:


  • передачу пакетов через разнородные сети с совершенно различными принципами организации транспортных операций,

  • многоуровневое иерархическое построение (наличие магистрали сети, к которой присоединяются транспортные артерии нижних уровней),

  • хорошую структуризацию за счет разделения сети на подсети небольшого размера с регулярными связями,

  • поддержку быстрых протоколов, таких как FDDI, Fast Ethernet и 100VG- AnyLAN, для устранения узких мест.

Объединение транспортных потоков отдельных сетей в корпоративной сети происходит за счет использования общего для всех сетей магистрального протокола сетевого уровня модели OSI, который правильнее было бы назвать межсетевым.

Введение сетевого уровня позволяет соединять сети, в которых работают различные протоколы канального уровня, при этом при передаче пакета из сети в сеть пакет сетевого уровня освобождается от оболочки канального уровня одного вида и заменяется оболочкой канального уровня другого вида. Информацией, на основе которой делается эта замена, является номер сети и номер узла в сети, которая не меняется при переходе пакета из сети в сеть.

К сожалению, существует большого количество протоколов сетевого уровня, равно как и протоколов канального уровня. Все они решают одну задачу, но несколько разными способами, поэтому сетевым интеграторам и администраторам приходится в больших сетях иметь дело одновременно с несколькими сетевыми протоколами. Очень популярными протоколами сетевого уровня, использующимся для объединения сетей, входящих в корпоративную сеть, является протоколы IP и Novell IPX.

Протоколы сетевого уровня не являются протоколами только локальных сетей. С их помощью можно создавать интерсети, включающие как локальные, так как и глобальные сети. В каждой из этих сетей действуют свои правила внутренней доставки пакетов, а их совместная работа становится возможной благодаря наличию общего протокола сетевого уровня.

В последнее время роль объединяющего протокола сетевого уровня все чаще выполняет сетевой протокол IP, ведущий свое происхождение от сети Internet и операционной системы Unix. Для этого протокола существуют стандарты его использования над всеми основными протоколами канального уровня локальных сетей, таких как Ethernet, Token Ring, FDDI, Fast Ethernet и 100VG- AnyLAN, а также над протоколами глобальных сетей - X.25, frame relay, PPP. Уже имеется спецификация для использования IP над протоколами таких перспективных сетей как АТМ - так называемая спецификацией Classical IP. Важным достоинством IP является его высокая эффективность при работе на относительно низкоскоростных глобальных линиях связей. Протокол IPX фирмы Novell был изначально разработан для объединения небольшого числа локальных сетей, поэтому он расточительно использует полосу пропускания линий связи и не так хорошо работает на магистралях корпоративных сетей, как IP, хотя Novell в последнее время предпринимает немало усилий для улучшения своего стека коммуникационных протоколов.

Структуризация транспортной подсистемы корпоративной сети и ее иерархическое многоуровневое построение - это взаимосвязанные понятия. Структуризация - это деление крупной системы на отдельные взаимосвязанные подсистемы, а иерархическое многоуровневое дерево - это наиболее часто используемый тип структурирования транспортных связей в корпоративной сети.

Сеть, предоставленная самой себе, имеет свойство разрастаться хаотически. Такая стихийно создаваемая сеть плохо управляема и подвержена частым сбоям и отказам. Проблемы ранних сетей Ethernet, которые росли таким образом, хорошо известны: отсутствие технического обоснования проводимых изменений, их неполная документированность приводили к слишком большим затратам сил и времени на поиск причин возникающих отказов и сбоев. Масштабные же системы нужно особенно тщательно планировать и структурировать, выбирая для каждой сети соответствующие типы кабельных систем, протоколы и устройства соединения сетей - повторители, мосты, маршрутизаторы и шлюзы.

Целью вычислительной сети является предоставление пользователям доступа ко всем ресурсам сети. Но не всем пользователям нужен постоянный доступ ко всем ресурсам. В большинстве случаев им нужен доступ к ресурсам сети их отдела, и только изредка - доступ к удаленным ресурсам. Поэтому сеть предприятия часто реализуется как совокупность подсетей. Большинство сетей разрабатывается на основе структуры с позвоночником, к которому через мосты и маршрутизаторы присоединяются подсети. Эти подсети обслуживают различные отделы. Подсети могут делиться и далее на сегменты для обслуживания рабочих групп.

^ Деление сети на подсети уменьшает общий трафик, повышает гибкость, увеличивает защиту данных и облегчает управление сетью.

Сегментация уменьшает общий сетевой трафик. При достижении трафиком границы 30%-40% от полной пропускной способности, пользователи сети Ethernet начинают чувствовать значительное уменьшение производительности сети из-за постоянных коллизий. В сетях Token Ring также при достижении трафиком границы 20%-30% от предельной пропускной способности, конкуренция за доступ к кольцу начинает приводить к заметным задержкам.

Пользователи взаимодействуют в основном с пользователями и ресурсами своего отдела. Здесь применимо правило 80/20 - около 80% трафика является локальным, а 20% идет в удаленные сегменты. Путем сегментации сети на подсети отделов можно значительно уменьшить трафик, проходящий через всю сеть, и тем самым повысить производительность сети.

Подсети увеличивают гибкость сети. При построении сети как совокупности подсетей каждая подсеть может быть адаптирована к специфическим потребностям рабочей группы или отдела. При этом эти подсети могут взаимодействовать.

Подсети повышают безопасность данных. Помещая пользователей на различные физические сегменты можно запретить доступ к некоторым ресурсам. Это уменьшает частоту появления пользовательских ошибок и внутреннего разрушения данных. С помощью сегментации можно обеспечить, например, циркуляцию трафика только в пределах финансового отдела. Устанавливая различные логические фильтры на мосты и маршрутизаторы, можно контролировать доступ к ресурсам. Мосты обеспечивают минимум средств управления доступом, маршрутизаторы обладают большими возможностями.

Подсети упрощают управление сетью. Побочным эффектом уменьшения уровня трафика и повышения безопасности данных является упрощение управляемости сети. Проблемы локализуются внутри сегмента. Как и в случае структурированной кабельной системы проблемы одной подсети не оказывают влияния на другие подсети. Подсети образуют логические домены управления сетью.

Сети должны проектироваться на двух уровнях: физическом и логическом. Логическое проектирование определяет места расположения ресурсов, приложений и способы доступа пользователей к ресурсам. Физическое проектирование определяет точное задание типов устройств (марку и модель), мест прокладки кабеля, типов глобальных сервисов (протокол, тип передающей среды, типы модемов и т.д.). Соотношение между логическим и физическим уровнями проектирования в некотором смысле аналогично соотношению между функциональной и принципиальной электрическими схемами. Например, использование повторителя создает в сетях стандартов 10Base-T, 10Base-F и Token Ring физические сегменты - отрезки кабеля, соединяющие по схеме "точка-точка" станции. Однако логически эти отрезки представляют по прежнему один сегмент, моноканал в случае Ethernet'а и логическое кольцо для сетей Token Ring. Применение же мостов, маршрутизаторов и шлюзов приводит к появлению логических сегментов, локализующих трафик внутри себя.

Как уже было сказано выше, наиболее часто встречающейся структурой коммуникационных связей в корпоративной сети является многоуровневая иерархическая структура. В чистом виде такая структура часто используется на уровне сетей кампусов, когда в корне сети располагается мощный модульный корпоративный концентратор, выполняющий функции и маршрутизатора и моста и коммутатора по отношению к подключенным к нему сегментам сетей. Магистраль кампуса может в этом случае образовываться внутренней высокопроизводительной шиной корпоративного концентратора с пропускной способностью в несколько гигабит в секунду. Сети, подключаемые к центральному концентратору, образуются с помощью концентраторов масштаба отделов и рабочих групп.

Для объединения сетей кампусов глобальными связями используются, как правило, более нерегулярные структуры - например, ячеистая структура, отражающая географию отделений корпорации и интенсивность трафика между ними. Но и здесь часто выделяется центральная, наиболее скоростная сеть, которая служит магистралью всей корпоративной сети, а сети остальных отделений присоединяются к ней менее скоростными линиями.

Особую важность приобретают для корпоративной сети вопросы безопасности данных. С одной стороны, в крупномасштабной сети объективно существует больше возможностей для несанкционированного доступа - из-за децентрализации данных и большой распределенности "законных" точек доступа, из-за большого числа пользователей, благонадежность которых трудно установить, а также из-за большого числа возможных точек несанкционированного подключения к сети. С другой стороны, корпоративные бизнес-приложения работают с данными, которые имеют жизненно важное значение для успешной работы корпорации в целом. И для защиты таких данных в корпоративных сетях применяется весь спектр имеющихся средств защиты - избирательные или мандатные права доступа, сложные процедуры аутентификации пользователей, программная и аппаратная шифрация, локализация трафика и т.п.

Те же причины обуславливают и повышенные требования к высокой готовности и отказоустойчивости системы. Основные средства достижения этих свойств - избыточность аппаратуры и данных на всех уровнях: кабельных связей, источников питания, процессоров, компьютеров, маршрутизаторов, репликация баз данных, кластеризация вычислений.

Как можно заметить, каждое из этих свойств корпоративной сети может быть важно и для сети небольшого масштаба. Например, можно найти такую область применения, для которой и для небольшой локальной сети очень важны требования безопасности данных и высокой готовности. Но для небольших сетей эти требования могут быть важными или не очень, в зависимости от характера выполняемых ею задач. Для корпоративных же сетей выполнение этих требований обязательно всегда.

Создать крупномасштабную гетерогенную среду для проверки свойств корпоративности не только сложно, но и накладно. Поэтому существуют специальные лаборатории, которые занимаются тестированием и сертификацией продуктов на предмет пригодности их для работы в корпоративной сети. В частности, такие услуги и потребителям и производителям оказывает американская фирма The Tolly Group, которая с помощью специального оборудования может создавать сложную гетерогенную среду, соответствующую требованиям заказчика, и испытывать в ней новое оборудование или программную систему. Клиентами The Tolly Group являются и компании-призводители, заинтересованные в получении лого "Enterprise Ready", причем не только новички, завоевывающие рынок, но и такие гранды как Cisco, IBM, Motorola-Codex, 3Com, Wellfleet и многие другие.

Иногда бывает полезно подняться над деревьями и посмотреть на лес с общих позиций. Поскольку корпоративные сети - это частный случай больших систем, то к их организации применимы те общие методы и принципы, которые были сформулированы в теории больших систем: деление системы на подсистемы, многоуровневое иерархическое построение, сочетающее принципы централизации и децентрализации при сохранении единства системы, принцип необходимого разнообразия, говорящий о том, что сложная по функциям система не может иметь простую структуру и однотипные элементы. Если внимательно присмотреться ко всем службам и подсистемам корпоративной сети (например, к описанным в этой статье), то легко заметить использование в них всех этих общих принципов и подходов. Справедливо и обратное: если эти признаки отсутствуют, то вряд ли изучаемый предмет можно отнести к классу корпоративных.
^

Архитектуры реализации корпоративных информационных систем.


При построении корпоративных информационных сетей, как правило, используются две базовые архитектуры: Клиент-сервер и Интернет/Интранет. В чем же преимущества и недостатки использования каждой из данных архитектур и когда их применение оправдано? Найти ответы на эти вопросы мы постараемся в данном разделе. Одной из самых распространенных на сегодня архитектур построения корпоративных информационных систем является архитектура КЛИЕНТ-СЕРВЕР.



^ Рис.1. Компоненты архитектуры Клиент-сервер и их свойства.

В реализованной по данной архитектуре информационной сети клиенту предоставлен широкий спектр приложений и инструментов разработки, которые ориентированы на максимальное использование вычислительных возможностей клиентских рабочих мест, используя ресурсы сервера в основном для хранения и обмена документами, а также для выхода во внешнюю среду. Для тех программных систем, которые имеют разделение на клиентскую и серверную части, применение данной архитектуры позволяет лучше защитить серверную часть приложений, при этом, предоставляя возможность приложениям либо непосредственно адресоваться к другим серверным приложениям, либо маршрутизировать запросы к ним. Средством (инструментарием) для реализации клиентских модулей для ОС Windows в данном случае является, как правило, Delphi. Однако при этом частые обращения клиента к серверу снижают производительность работы сети, кроме этого приходится решать вопросы безопасной работы в сети, так как приложения и данные распределены между различными клиентами. Распределенный характер построения системы обуславливает сложность ее настройки и сопровождения. Чем сложнее структура сети, построенной по архитектуре КЛИЕНТ-СЕРВЕР, тем выше вероятность отказа любого из ее компонентов.



^ Рис.2. Сравнительные характеристики двух- и трехзвенной архитектуры клиент-сервер.

В последнее время все большее развитие получает архитектура Интернет/Интранет. В основе реализации корпоративных информационных систем на базе данной архитектуры лежит принцип "открытой архитектуры", что во многом определяет независимость реализации корпоративной системы от конкретного производителя. Все программное обеспечение таких систем реализуется в виде аплетов или сервлетов (программ написанных на языке JAVA) или в виде cgi модулей (программ написанных как правило на Perl или С). Основными экономическими преимуществами данной архитектуры являются:

  • относительно низкие затраты на внедрение и эксплуатацию;

  • высокая способность к интеграции существующих гетерогенных информационных ресурсов корпораций;

  • повышение уровня эффективности использования оборудования (сохранение инвестиций).

  • прикладные программные средства доступны с любого рабочего места, имеющего соответствующие права доступа;

  • минимальный состав программно-технических средств на клиентском рабочем месте (теоретически необходима лишь программа просмотра - браузер и общесистемное ПО);

  • минимальные затраты на настройку и сопровождение клиентских рабочих мест, что позволяет реализовывать системы с тысячами пользователей (причем многие из которых могут работать за удаленными терминалами).



^ Рис.3 Компоненты архитектуры Интернет/Интранет и их свойства.

В общем случае АИС, реализованная с использованием данной архитектуры, включает Web-узлы с интерактивным информационным наполнением, реализованных при помощи технологий Java, JavaBeans и JavaScript, взаимодействующих с предметной базой данных, с одной стороны, и с клиентским местом с другой. База данных, в свою очередь, является источником информации для интерактивных приложений реального времени.

^ По запросу клиента WEB узел осуществляет следующие операции.

  • Отправляет ASCII коды HTML страниц (или VRML документов), включающие при необходимости элементы javaScript;

  • Отсылает двоичный код запрошенного ресурса (изображения, аудио-, видеофайла, архива и т.п.);

  • Отсылает байт коды JAVA аплетов.

  • Принимает конкретную информацию от пользователя (результат заполнения активной формы, или статистическую информацию запрошенную CGI скриптом);

  • Осуществляет заполнение базы данных;

  • Принимает сообщения от пользователя и регламентирует доступ к ресурсам Web узла на основе анализа принятой информации (проверка паролей и т.п.);

  • Принимает информацию от пользователя и в зависимости от нее динамически формирует HTML страницы, либо VRML документы, обращаясь, при необходимости, к базам данных и существующим на WEB узле HTML страницам и VRML документам.



Рис.4. Информационные взаимосвязи компонентов WEB узла



Рис.5. Функциональная схема интерактивного взаимодействия пользователей в архитектуре интернет/интранет.

После того, как клиент получил ответ WEB сервера, он осуществляет следующие операции:


  • визуализирует HTML страницу либо VRML документ в окне браузера;

  • интерпретирует команды JavaScript, модифицирует образ HTML страницы и т.п.;

  • интерпретируя байт коды JAVA аплетов, позволяет загружать и выполнять активные приложения;

  • ведет диалог с пользователем, заполняющим формы, и создает новые запросы к WEB серверу;

  • с помощью утилит воспроизводит коды аудио и видео файлов, поддерживает мультимедийные средства;

  • обеспечивает моделирование виртуальной реальности просматривая VRML документы.


. Перечисленные задачи 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-сервере можно сформулировать как следующая последовательность шагов.

  • Браузер принимает введенную пользователем информацию, как правило с помощью форы.

  • Браузер помещает введенную пользователем информацию в URL, указывающий имя и местоположение сценария CGI, который требуется ввести в действие.

  • Браузер подключается к серверу Web и запрашивает URL. Сервер определяет, что URL должен ввести в действие сценарий CGI, и запускает указанный сценарий.

  • Сценарий CGI выполняется, обрабатывая все передаваемые ему данные.

  • Сценарий CGI динамически формирует Web-страницу и возвращает результат серверу.

  • Сервер возвращает результат клиенту.

  • Браузер отображает результат пользователю

Это является упрощенной схемой взаимодействия между браузером, сервером и сценарием CGI. Наибольшую популярность CGI - сценарии нашли при использовании в качестве обработчиков форм, средства доступа к базам данных, средства осуществления локального и глобального поиска, шлюзовых протоколов. Наибольшей мощью в реализации клиентского программного обеспечения обладают аплеты - программы написанные на языке JAVA. В узком смысле слова Java - это объектно-ориентированный язык, напоминающий C++, но более простой для освоения и использования. В более широком смысле Java - это целая технология программирования, изначально рассчитанная на интеграцию с Web-сервисом, то есть на использование в сетевой среде. Поскольку Web-навигаторы существуют практически для всех аппаратно-программных платформ, Java-среда должна быть как можно более мобильной, в идеале полностью независимой от платформы.

^ С целью решения перечисленных проблем были приняты, помимо интеграции с Web-навигатором, два других важнейших постулата.

  • Была специфицирована виртуальная Java-машина (JVM), на которой должны выполняться (интерпретироваться) Java-программы. Определены архитектура, представление элементов данных и система команд Java-машины. Исходные Java-тексты транслируются в коды этой машины. Тем самым, при появлении новой аппаратно-программной платформы в портировании будет нуждаться только Java-машина; все программы, написанные на Java, пойдут без изменений.

  • Определено, что при редактировании внешних связей 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:<DNS - имя ODBC>;User=<имя пользователя>; PW=<пароль>

Внутреннее устройство JDBC - приложения



^ Рис.9. Иерархия классов JDBC и поток API JDBC

Чтобы обработать информацию из базы данных, информационно-обучающая система на языке Java выполняет ряд шагов. На рис.20 показаны основные объекты JDBC, методы и последовательность выполнения, Во-первых, программа вызывает метод getConnection (), чтобы получить объект Connection.Затем она создает объект Statement и подготавливает оператор SQL. Оператор SQL может быть выполнен немедленно (объект Statement), а может быть откомпилирован (объект PreparedStatement) или представлен в виде вызова процедуры (объект CallableStatement). Когда выполняется метод executeQuery(), возвращается объект ResultSet. Операторы SQL, такие как updatе или delete не возвращают ResultSet. Для таких операторов используется метод executeUpdate(). Он возвращает целое, указывающее количество рядов, затронутых оператором SQL.

ResultSet содержит ряды данных и анализируется методом 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 +

" строк в базе данных.")

}



^ Рис.10. Интерфейс для регистрации пользователя в АИС.

Таким образом, взаимодействие с базами данных из Java также отличается простотой и гибкостью, связанной с эффективной реализацией JDBC API. В сочетании со своей природной платформо-независимостью, Java предоставляет уникальный инструмент для создания интерактивных распределенных информационно-обучающих систем на база Internet/Intranet - технологий.

^ Основными сложностями при реализации корпоративных систем на базе данной архитектуры являются:

  1. отсутствие многих популярных приложений и средств разработки реализованных в виде JAVA аплетов;

  2. относительное высокое время компиляции аплетов на клиентских местах (временно);

  3. вопросы безопасной работы в сети.
^

Сравнительные исследования типовых серверных платформ.


Выбирая платформу для АИС, нужно учитывать множество аспектов. На решение влияют соображения, связанные с надежностью (кластеризация и балансировка нагрузки), среды разработки, работы над содержанием узла и защиты информации. Результаты тестирования различных платформ широко представлены в периодической печати, представим здесь лишь некоторые обобщения материалов тестирования [].

При проведении испытаний оценивались Solaris 2.6, Windows NT Server 4 и Red Hat Linux 6.02 (ядро 2.2.11) при эксплуатации четырех web-серверов, занимающих ведущие позиции в мире: Microsoft Internet Information Server 4 (IIS), Netscape Enterprise Server 3.61, Web Server 2.1 корпорации Sun и Stronghold Web Server 2.4.1 (популярный вариант Web-сервера Apache с функциями защиты от несанкционированного доступа) (на тестах использовались триал версии указанного программного обеспечения). Все платформы были испытаны с помощью новой версии эталонного теста WebBench отделения Ziff-Davis Benchmark Operation.





Рис.11. Сравнительные характеристики различных платформ.
^

Особенности функционирования АИС на платформе Sun.


Solaris - это современная операционная система UNIX клона. Примечательно, что она, опережая свое время, позволяет работать с 64-разрядными прикладными программами и имеет собственные расширения, которые помогают ей выдерживать высокие пользовательские нагрузки Web-узлов с интенсивным обменом информацией. В Solaris также предусмотрены замечательные возможности применения серверных прикладных программ и средств разработки сторонних производителей.



^ Рис.12. Функциональная схема информационной системы на базе Solaris

Ключевой момент для понимания различий между платформами Linux, Microsoft и Sun - способ, которым серверные программы каждой из них обрабатывают большое число подключений. Обычно это делается в многопотоковом режиме. Многопотоковый режим возникает, когда прикладная программа (также называемая процессом) содержит множество небольших блоков исполняемого кода, работающих независимо друг от друга и, возможно, одновременно на разных процессорах. Эти потоки могут совместно пользоваться ресурсами и представляют собой способ организации программы, позволяющий одновременно выполнять несколько задач.

Модель потоков Solaris весьма сложна. Она состоит из потоков на уровне ядра (kthreads) - реальных объектов, передаваемых отдельному процессору; потоков на пользовательском уровне и промежуточной структуры, называемой облегченным (lightweight) процессом. Это позволяет тонко управлять структурой прикладной программы и реализации в ней прикладной многозадачности.


^ Stronghhold на платформе Solaris

Создатели Web-сервера Stronghold (и Apache, основы Stronghold) считают, что многопотоковые программы обычно менее надежны, чем "монолитные". Такое различие стратегий объясняет значительные расхождения показателей производительности, поскольку и Sun Web Server 2.1, и Netscape Enterprise используют второй процессор, установленный в испытательных системах. Поэтому Stronghold, в зависимости от прикладного ПО, не столь эффективно использует оборудование Sun, содержащее до 64 процессоров.

^ Netscape на платформе Solaris

Netscape Enterprise Server 3.61 - Web-сервер, избранный для реализации большинства крупных узлов на основе Solaris, в том числе и корпорации Sun. Инструментальные средства фирмы Netscape, а также предлагаемые независимыми производителями, способствуют разработке сложных прикладных программ для Web с помощью сценариев на языках JavaScript, CORBA, Java.

Еще одна важнейшая система, стоящая за добротными программами для Web на серверах Netscape, - сервер прикладных программ Netscape Application Server (NAS). Сервер NAS - среда программирования для объектов на языках C++ и Java - обеспечивает масштабируемость и устойчивость к сбоям прикладных программ. В NAS имеются инструменты для создания многоуровневых программ, объединяющих HTML и запросы к базам данных на серверах NAS.

^ Sun Web Server

Sun Web Server (SWS) обеспечивает разработку программ, конечно же, на языке Java. На SWS можно использовать сервлеты и разнообразные возможности, такие как CORBA. Сервлеты (servlet) - это Java-программы, запускаемые на сервере и, подобно CGI, передающие сверстанные HTML-страницы браузеру. Для сервлетов существует собственный API к функциям рабочей среды сервера. В SWS также предусмотрена возможность использования серверных Java-страниц (Java Server Pages) - способа обращения к серверным функциям Java со страниц Web и из CGI-программ.

При соответствующем использовании Web-серверов на платформе Solaris, эта операционная система на многопроцессорных станциях превосходит по производительности Windows NT. Такого результата достигла Sun Microsystems благодаря использованию Solaris Network Cache and Accelerator (SNCA) - мощного механизма кэширования для Web-сервера. SWS победил в испытаниях при обслуживании статических страниц. При выполнении динамических CGI-испытаний Netscape на платформе Solaris превзошел и SWS, и IIS для Windows NT.
^

Особенности функционирования АИС на платформе Microsoft.




Рис.13. Функциональная схема информационной системы на платформе Windows NT.

Microsoft Windows NT Server

Windows NT 4 Server и Internet Information Server (IIS) являются исключительно коммерческой web-платформой, разработанной компанией Microsoft. Данная ОС имеет удобный интуитивно понятный интерфейс взаимодействия с пользователем, что делает её довольно привлекательной для использования. Windows NT 4 Server оснащена службой балансировки нагрузки (Windows NT Load Balancing Services), которая позволяет создавать группу серверов и распределять нагрузку между ними. Пользователи при этом видят только один IP-адрес и полагают, что существует только один сервер. Однако служба Load Balancing Services - это неполноценная кластерная система, поэтому она не способна обеспечить такое высокое быстродействие, как настоящий кластер. Windows NT не может работать с мощными аппаратными и программными средствами кластеров, в том числе с собственной службой Microsoft Cluster Service, продуктами серии Infinity компании IBM и продуктами NonStop производства Compaq. У Microsoft есть продукты всех этапов разработки для Web, однако обычно их заменяют изделиями других фирм. Пакет Allaire ColdFusion 4.0, как среда разработки для Web, - отличный пример этого.

^ Netscape Enterprise на платформе Windows NT

Netscape Enterprise в среде Windows NT представляет собой Web-сервер, ориентированный на большие нагрузки. Для него имеется множество моделей программирования. Например, помимо общепринятых моделей разработки HTML и CGI в продукте Netscape предусмотрены возможности работы с JavaScript на стороне сервера. Почти все функции сервера Netscape для Solaris работают и на платформе Windows NT.

При тестировании на производительность IIS показал неплохие результаты. Скорость при работе IIS достигнута за счет хорошо организованной обработкой файлового ввода-вывода. Дополняет обработку сообщений в Windows NT возможность асинхронного ввода-вывода, позволяющая обрабатывать запрос одновременно с выполнением операций ввода-вывода в файл или ЛВС. Подобная функция имеется в Solaris, но до сих пор не полностью реализована в Linux. По результатам теста IIS проигрывает SWW при обработке статических страниц, а Netscape Enterprise на платформе NT оказался менее производительным во всех режимах, чем на платформе Solaris.
^

Особенности функционирования АИС на основе Linux.


Все больше растет популярность Linux и её респектабельность как платформы разработки для Web и корпоративных сред. Linux характеризуется рядом преимуществ, таких как широкое сообщество разработчиков открытого кода, поддержка многих моделей комплектующих, и, главная особенность состоит в том, что Linux полностью бесплатная ОС. Linux является разновидностью Unix, и изначально создавалась для работы в сетях. В каждой новой версии Linux появляются некоторые усовершенствования, направленные на повышение масштабируемости и производительности серверных прикладных программ.

^ Apache и Stronghold

Для тестов в среде Linux был использован Stronghold Web Server 2.4.1 компании C2Net. Stronghold - это сервер с возможностями применения технологии SSL, в основе которого лежит Web-сервер Apache. Сервер Stronghold обладает всеми преимуществами Apache, в том числе мощными средствами обеспечения работы с виртуальными базовыми машинами (способность одного web-сервера обслуживать несколько машин одновременно).

Платформа Stronghold, подобно Linux, имеет заслуженную репутацию надежной и стабильной системы. Но Stronghold - и, следовательно, Apache - не оптимизированы для многопроцессорных сред. Поэтому Web-узлы, основанные на серверах Apache, лучше масштабировать путем добавления серверов, а не процессоров.

Напротив, IIS и Netscape Enterprise имеют многопотоковую архитектуру, которая масштабируется на несколько процессоров одного сервера. При испытаниях на многопроцессорных станциях они, как правило, обгоняли Stronghold.

Apache позволяет тонко настраивать ряд параметров (такие как число процессов, доступных клиентам). Для Apache, как и для других серверов, есть механизм работы с сервлетами (Apache Jserv). Механизм работы с сервлетами встраивается в Apache в виде модуля и работает с любой совместимой с JDK 1.1 виртуальной Java-машиной. По производительности дуэт Apache-Linux оказался оптимальным для однопроцессорных систем. По обработке статических страниц он немного уступал SWW и IIS, а по стабильности работы превосходил серверы на платформе Windows NT.

Linux - это функциональность UNIX + пользовательско-ориентированный интерфейс Windows-систем. Большая часть поддерживаемого Linux оборудования - это то, что пользователи реально у себя имеют. Как в результате оказалось - большая часть популярной периферии для 80386/80486 поддерживается (действительно, Linux поддерживает оборудование, которое в ряде случаев не поддерживают некоторые коммерческие UNIX). Хотя некоторые достаточно экзотические устройства пока не поддерживаются.

Важным вопросом при создании АИС является обеспечение жизнестойкости и надежности работы информационных серверов. В качестве иллюстрации эффективности платформы приведем расчет параметров для сервера с 25000 посетителей в день []. Подсчет загрузки: 24ч*60мин*60 сек=86400 секунд в сутках, если каждый посетитель берет с сервера по 10 документов (*.html + графика) то при равномерном распределении загрузки получается 3 обращения к серверу в секунду. Реальное распределение трафика носит характер кривой Гаусса либо синусоиды (в зависимости от содержания сервера), в максимумах которых загрузка достигает 10-20 обр/с. Для нормальной работы такому серверу необходимо около 400 Mb RAM, при хорошей настройке - не менее 200.

При правильной конфигурации сервера не рекомендуется использовать swap. все должно помещаться в оперативной памяти (имеется ввиду, что у сервера swap-область быть должна, но она обязана быть пустой). Для предотвращения перегрузок рекомендуется пользоваться несколькими правилами, снижающими загрузку сервера. Придерживаясь этих правил можно сэкономить около 30% ресурсов сервера.

  1. Для статической информации всегда ставить last-modified в атрибут выдачу CGI-скриптов - документ без временного штампа не сохраняется в локальном кэше, и постоянно перезаписывается при просмотре.

  • CGI программы хранить в любом каталоге кроме /CGI-BIN/, т.к. proxy-серверы не кэшируют файлы, находящиеся в этих каталогах, и каждый раз вынуждены обращаться к вам на сервер.

  • Устанавливать поле last-modified у русского Apache с автоматическим определением кодировки, чтобы на proxy-серверах не оставались файлы в некорректной кодировке.

  • Не применять авторедирект по чарсету в русском Apache.

  • Не использовать фреймы, т.к. вместо одного файла появляется минимум 3.

  • Не использовать анимированные *.gif, т.к. некоторые NN обращаются к серверу перед каждым циклом.

  • 404 код не делать cgi-скриптом, 404 код не делать "красивым" - с графическими изображениями и указаниями на прочие разделы, т.к. сошедший с ума робот собирает невероятное количество 404 ошибок, зацикливаясь в них на веки.

  • Создать на сервере файл robot.txt, т.к. это самый запрашиваемый документ на сервере, и иначе порождает массу 404 (см. п. 7). А также разумные роботы слушаются запретов в этом файле, что уменьшает нагрузку на сервер.

  • ^ Не ставить баннеры наверху страницы, т.к. баннер сверху отнимает 1-2 реквеста из 4-х и в итоге грузится вперед тормозя ваши сайтовые картинки.

  • При вызове баннера не обращаться каждый раз к CGI, а подставлять вместо случайного числа любое число, что можно сделать, например, получив дату на JavaScript.

  • Вызывать баннеры программами на Си, т.к. Perl работает медленнее.

  • На одной машине должен размещаться только информационный сервер, не одновременно с почтой и др. сервисами.

На сегодня архитектура Internet/Intranet, в том числе и на платформе LINUX, уже используется при построении корпоративных ИС для решения задач автоматизации управления банками, управления проектированием, управления ТП, АСУ ТП, электронной коммерции, оперативной информации по курсу валют и акций и т.п.


Скачать файл (309 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации