Приоритет «отложенной» транзакции
Рассмотрим те же политики назначения приоритетов, что и для случая «непосредственной» транзакции.
Назначение приоритета для случая порождения «отложенной» транзакции очень похоже, как и в случае порождения «непосредственной» транзакции. В случае использования DIV и SL методов приоритет отцовской транзакции будет изменяться, когда порождается отложенная транзакция, а в случае использования PD метода нет.
Рассмотрим транзакцию T, которая порождает i-ю отложенную транзакцию в момент времени t. Тогда приоритет породившей транзакции будет следующим:
· PD метод:
Pt(T)=d(T)
· DIV метод:
Pt(T)=Pt(T)–Xt( ). (4.9.12)
· SL метод:
. (4.9.13)
Предположим, что транзакция T породила m отложенных транзакций до своего завершения. Пусть – j-ая отложенная транзакция, j£m, начинает свою работу в момент времени w (после того, как породившая транзакция закончила свою работу). Тогда приоритет транзакции
будет следующим:
· PD метод:
. (4.9.14)
· DIV метод:
. (4.9.15)
Т.е. запас свободного времени отцовской транзакции делится поровну между всеми отложенными транзакциями. Эта величина плюс оценка времени выполнения подтранзакции определяет приоритет подтранзакции.
· SL метод:
. (4.9.16)
Т.е. приоритет вычисляется как количество времени оставшегося до истечения директивного срока минус оценка времени, необходимого на выполнение всех отложенных транзакций.
Заключение
Изменение требований, предъявляемых к СУБД в системах реального времени, влечет за собой необходимость пересмотра и дополнительных исследований во многих областях теории БД, включая протоколы управления транзакциями.
В системах реального времени транзакции имеют ассоциированные директивные сроки, а используемые критерии производительности отличаются от тех, что используются в классических СУБД. Поэтому протоколы управления транзакциями, используемые в классических СУБД, показывают далеко не лучшую производительность в системах реального времени.
За последние несколько лет был предложен ряд специализированных протоколов управления транзакциями для систем реального времени, которые учитывают специфику таких систем. Интересно, что в отличие от случая классических СУБД, в системах реального времени «оптимистические» протоколы показывают лучшие результаты по сравнению с «пессимистическими».
В системах реального времени зачастую не только транзакции, но и сами данные имеют временную природу. Для корректной работы транзакции необходимо гарантировать, чтобы она использовала корректный набор данных. При этом недостаточно рассматривать корректность по отдельности каждого используемого элемента данных, поскольку данные могут быть взаимозависимыми. Эта особенность также требует серьезных модификаций протоколов управления транзакциями.
В системах реального времени применяются не только простые модели транзакций. В частности, широко распространено применение активных баз данных в системах реального времени. Наряду с особенностями, присущими СУБД реального времени, в таких системах необходимо учитывать также вопросы назначения приоритетов подтранзакциям.
Конкретные системы реального времени зачастую имеют очень жесткие требования к производительности алгоритмов управления транзакциями, и обобщенные подходы им плохо подходят. С другой стороны, такие системы часто имеют ряд уникальных особенностей, которые позволяют придумать специализированный протокол управления транзакциями для этой конкретной системы, который будет показывать лучшие результаты. Обычно это достигается при помощи оптимизации производительности для класса наиболее важных транзакций за счет ухудшения ее для прочих транзакций.
В данной теме затронута только часть проблем, связанных с поддержкой целостности данных в СУБД, но многое осталось за ее рамками. В частности, известны попытки использовать другие критерии корректности, отличные от сериализуемости [79], другие наборы свойств транзакций (вместо ACID). Также в системах реального времени большое внимание уделяется формальным методам, используемых для моделирования, спецификации ограничений, проверки корректности [79].
СЕРВЕРЫ
Введение
Интегрированная система (ИС) современного предприятия обслуживает потоки коллективно используемых данных: сценарии технологических процессов, документооборот, движение товарно-материальных ценностей, статистику и анализ управленческой деятельности, бухгалтерскую отчетность, распределение всех видов ресурсов и т.д. Эффективность организации ИС определяется временем, потраченным на обработку информации, в сочетании с достаточным уровнем безопасности.
По мере развития технологий средств связи спектр задач, опирающихся на информационно-технические ресурсы, расширяется, и прежде всего это относится к сфере телекоммуникаций. Организация доступа к электронной почте и Internet, распределенная обработка данных, управление сетями, распространение информации, ее защита, реализация хостинга, IP-телефония, системы обмена сообщениями – решение этих и других классов задач возлагается на серверный парк предприятий.
Классификацию серверов по назначению, производительности или программно-аппаратной платформе обычно заменяют разделением по «масштабу»: сервер масштаба предприятия, масштаба отдела, департамента, рабочей группы [127]. Деление это условное, поскольку «масштабы» предприятий, отделов и рабочих групп могут весьма существенно различаться. Обычно здесь исходят из количества пользователей – например, считают предприятием организацию с числом пользователей более 100. Для сервера масштаба предприятия важными являются показатели вычислительной мощности, емкости подсистем хранения данных, пропускной способности внутренних и внешних шин. К этим серверам предъявляются наиболее высокие требования по отказоустойчивости и времени восстановления работоспособности после сбоя.
Аппаратная база таких продуктов варьируется от многопроцессорных RISC-систем с возможностью установки более сотни процессоров – систем, допускающих «горячую замену» практически любого критически важного компонента (процессоров, дисков, блоков питания, вентиляторов, контроллеров и модулей памяти) до скромных одно- и двухпроцессорных на платформе х86 без возможности замены компонентов «на ходу». Последние характерны для массового рынка, о них в основном и пойдет речь.
Более важной для принятия решения при строительстве ИС представляется классификация серверов по функциональности. Исходя из распределения по масштабу трудно судить однозначно, можно ли эффективно решать все IT-задачи предприятия, отдела или рабочей группы с помощью сервера соответствующей мощности. Иногда для тысяч пользователей сервер с 4-6 процессорами может оказаться избыточным, а небольшая, но очень активная рабочая группа в состоянии «освоить» на 100% производительность и более мощных систем. Исходя из вышесказанного при классификации есть мнение руководствоваться не соотношением числа пользователей и числа процессоров (емкости дисков и пр.), а брать за точку отсчета масштабность и сложность решаемых прикладных задач.
Виды серверов
Сегодняшний сервер отличается от «большой персоналки». Это не просто очень большая емкость хранения – это еще очень высокая пропускная способность. Это не просто высокая производительность – это высочайшая скорость вычислений, часто в многопроцессорной среде. Это не просто повышенная надежность – это бессбойная работа, основанная на применении дисковых массивов, а в ряде случаев и кластерных технологий. А еще это обязательная масштабируемость – современный сервер должен переживать не один этап модернизации.
Итак, сервер – это не просто дорогой компьютер. Это весьма современный и очень сложный продукт. Изучая существующие предложения, вам придется делать выбор исходя не только из требований к вычислительной мощности, масштабируемости, надежности и степени готовности. Каковы условия поставки данных продуктов? Каковы условия поддержки в сервисных центрах производителя? Какое обучение требуется техническим специалистам? Одни серверы «универсальны», другие ориентированы на Windows 2000 Server, третьи – на определенную версию UNIX. Что именно нужно вам?
Тому, что такое сервер и как серверы классифицируются по типу выполняемых задач, посвящен данный раздел. Об основных требованиях, предъявляемых к современным серверам, об особенностях архитектуры различных серверов и о методах оценки их производительности вы узнаете из второго раздела данной темы «Особенности современных серверов».
С точки зрения аппаратных средств сервер – это компьютер, который способен оказывать некоторые услуги другим подсоединенным к нему компьютерам. Подразумевается, что компьютеры каким-то образом связаны с сервером и друг с другом.
Правильно подобрать сервер для организации – это нелегкая задача. Широкий выбор серверных систем требует от руководителей ИТ-служб реалистично оценивать требования к их вычислительной мощности, масштабируемости, надежности и степени готовности. Они должны четко сформулировать требования к серверам, изучить возможности поддержки, а также определить будущие затраты на модернизацию. Кроме того, надо хорошо ориентироваться в разнообразии предлагаемой на рынке продукции.
Серверы можно классифицировать, например, как по классу решаемых задач, так и по количеству обслуживаемых клиентов. В соответствии со вторым подходом различают серверы масштаба рабочей группы (workgroup); отдела (department); средних организаций (midrange); предприятия (enterprise).
Нужно сказать, что поскольку в рамках каждого типа конфигурация серверов значительно варьируется, четких границ между ними установить нельзя. Мощные компьютеры младшего класса могут выполнять роль серверов начального уровня в старшем смежном классе и наоборот.
Отметим, что классификаций серверов существует довольно много, причем все они в той или иной степени перекрываются. Так, фирмы-производители часто подразделяют выпускаемые серверы по типу исполнения: сверхтонкие (blade), классические напольные (tower), предназначенные для установки в стойки (rack) и с высокой степенью масштабируемости (super scalable). Сверхтонкие компьютеры позволяют не только экономить место, отводимое под каждый сервер, но и уменьшать энергопотребление. Напольные серверы обеспечивают высокую гибкость при размещении компонентов в корпусе и легко наращиваемы. Серверы для установки в стойку предназначены для консолидации серверных систем в центрах обработки данных и использования с внешними подсистемами памяти. Они могут эффективно применяться для кластерных решений, когда сами серверы, внешняя память и дополнительные устройства размещаются в одних и тех же стойках. Серверы с высокой степенью масштабируемости обычно предназначены для крупных предприятий и способны обеспечить решение практически любых задач корпорации.
Ниже описываются некоторые распространенные типы серверов, классифицируемых по классу решаемых задач.
Web-серверы
Web-сервер похож на роботизированный буфет. Клиент запрашивает у него нечто – в нашем случае файл, – а Web-сервер получает этот файл и пересылает его клиенту. В большинстве случаев оригинальный Web-сервер ничего с этим файлом не делает, просто отпасовывая его клиенту. Современные Web-серверы одновременно обрабатывают большое число запросов и быстро выдают ответы на них; кроме того, они способны обрабатывать запросы более сложными способами, чем простая пересылка документа.
Применяемое программное обеспечение:
Операционная система Windows 2003 Server (IIS сервер).
Операционная система ASP Linux (Apache).
Серверы приложений
Для сервера приложений характерны расширенные возможности обработки информации, а взаимодействие с клиентом становится подобным работе приложения. В маркетинге термином «сервер приложений» обычно обозначают предлагаемое продавцами комплексное решение, которое содержит все требуемые компоненты технологий. Для некоторых организаций такой комплексный подход к построению сервера приложений облегчает разработку благодаря унификации разрабатываемых моделей и централизации поддержки.
Серверы баз данных
Серверы баз данных используются для обработки бизнес-транзакций и пользовательских запросов. По мере расширения электронного бизнеса используемые базы данных усложняются и увеличиваются в объеме. Ключевая характеристика сервера баз данных – его способность быстро извлекать и форматировать данные. Решающую роль в этом играют вычислительная мощность и масштабируемость системы.
Применяемое программное обеспечение:
Операционная система Windows 2003 Server (Microsoft SQL Server 2000).
Файл-серверы
Файл-сервер делает именно то, о чем говорит его название: обеспечивает взаимодействие между сетевыми станциями и дает пользователям доступ к файлам, которые необходимы им для работы. Кроме того, файл-сервер обычно ограничивает несанкционированный доступ к данным. Собственно, разница между файл-сервером и сервером приложений заключается в том, что первый хранит программы и данные, а второй выполняет программы и обрабатывает данные.
Применяемое программное обеспечение:
Операционная система Windows 2003 Server (FTP сервис).
«Беспроводной» сервер
В своей простейшей интерпретации такой компьютер может представлять собой типичный Web-сервер или сервер приложений, который просто знает, как передавать документы, составленные на стандартном для беспроводных устройств языке. Часто в качестве такого языка выступает Wireless Markup Language (WML). Адаптация Web-сервера для работы в качестве беспроводного сервера, способного обрабатывать документы WML-типа, обычно сводится просто к тому, чтобы обучить сервер распознаванию этих документов. Web-серверу требуется только сообщить клиенту, что документ составлен в формате для беспроводных устройств, и на этом его работа заканчивается.
Прокси-серверы
Две основные функции этого компьютера заключаются в следующем. Во-первых, он действует как посредник, помогая пользователям получить информацию из Интернета и при этом обеспечивая защиту сети. Во-вторых, прокси-сервер может сохранять часто запрашиваемую информацию в кэш-памяти на локальном диске, быстро доставляя ее пользователям без повторного обращения к Интернету. Прокси-сервер стал весьма популярным способом стыковки корпоративных интрасетей с Интернетом.
Операционная система Windows 2003 Server (Microsoft ISA Server 2004)
Применяемое программное обеспечение:
Операционная система ASP Linux (Squid).
Брандмауэры
Прокси-серверы можно сконфигурировать так, что они будут принимать или отвергать определенные типы сетевых запросов, поступающие как из локальной сети, так и из Интернета. В такой конфигурации прокси-сервер становится межсетевым экраном – брандмауэром. Брандмауэр, как и подразумевает его «боевое» имя, представляет собой средство обеспечения безопасности, задачи которого во многом схожи с работой пограничников: осматривать каждый фрагмент данных, который пытается пересечь границу сети.
Почтовые серверы
Подобно прокси-серверу, почтовый сервер (иногда называемый сервером сообщений) должен заниматься как входящими, так и исходящими запросами. Одна из задач почтового сервера – чтение адресов входящих сообщений и доставка корреспонденции в соответствующие почтовые ящики в пределах интрасети. В зависимости от развитости почтового сервера он может предоставлять администратору большую или меньшую степень контроля над локальными почтовыми ящиками, типами и размерами сообщений, которые они в состоянии получать, автоматическими ответами, которые можно составлять, и т. п.
Операционная система Windows 2003 Server (Microsoft Exchange Server 2004)
Применяемое программное обеспечение:
Операционная система ASP Linux (Sendmail).
Серверы DHCP
В настоящее время во многих локальных сетях (интрасетях) также используется протокол TCP/IP, но иногда применяются и оригинальные протоколы обмена, такие, как NetBEUI или AppleTalk. IP-адрес компьютерам можно присваивать вручную, или же на одной из машин запускается так называемый сервер DHCP (Dynamic Host Configuration Protocol), который автоматически присваивает IP-адрес каждой локальной машине. Основное преимущество сервера DHCP – свобода изменения конфигурации локальной сети при ее расширении, добавлении или удалении машин (например, портативных ПК).
Применяемое программное обеспечение:
Операционная система Windows 2003 Server (DHCP сервис).
Серверы FTP
Подобные серверы, работающие на основе протокола File Transfer Protocol, уже много десятилетий назад стали стандартом де-факто при перемещении файлов в Интернете. FTP-серверы поддерживают работу простых файловых менеджеров – клиентов. Сложные FTP-серверы обеспечивают администратору большие возможности управления в том, что касается прав на подключение и совместного использования файлов, типов разделяемых файлов и их размещения. Конфигурируемые ресурсы, выделяемые ряду соединений с сервером, ограничения на количество передаваемых данных и минимальную скорость передачи и т.п., становятся все более популярными средствами, помогающими повысить безопасность FTP-серверов.
Принт-серверы
Такие серверы позволяют всем подключенным к сети компьютерам распечатывать документы на одном или нескольких общих принтерах. В этом случае отпадает необходимость комплектовать каждый компьютер собственным печатающим устройством. Кроме того, принимая на себя все заботы о выводе документов на печать, принт-сервер освобождает компьютеры для другой работы. Например, принт-сервер хранит посланные на печать документы на своем жестком диске, выстраивает их в очередь и выводит на принтер в порядке очередности.
Серверы удаленного доступа
Эти системы позволяют связываться с офисной сетью по телефонным линиям. Находясь с ноутбуком где-нибудь вдали от офиса, всегда можно получить нужный файл, проверить, не пришла ли электронная почта, словом, получить любую необходимую информацию. При наличии хороших каналов связи разница между работой в офисе и вне его в этом случае практически незаметна.
Применяемое программное обеспечение:
Операционная система Windows 2003 Server (IAS сервис).
Факс-серверы
В известном смысле факс-серверы служат мостом между старым и новым способами ведения бизнеса. Во многих отношениях факс-сервер подобен упоминавшемуся ранее почтовому серверу. Оба эти типа серверов представляют собой мосты между исходящими и входящими сообщениями, оба должны направлять входящие сообщения по указанному адресу. В случае почтовых серверов — это всегда почтовый ящик конкретного пользователя. В случае факс-серверов для небольшой однопользовательской среды часто подразумевается, что принимающий сообщение компьютер и является местом назначения, поэтому модель почтового ящика здесь не работает. С другой стороны, факс-серверы, предназначенные для корпоративного использования, имеют некоторые параллели с моделью сервера электронной почты, обеспечивая доставку входящих факсов по конкретным адресам, присвоенным пользователям.
Серверные приставки
Существует огромное количество устройств, определяемых термином appliance server. Не сразу бывает понятно, что имеется в виду (appliance переводится как «аппарат, прибор, приспособление, устройство», в том числе и как бытовой электроприбор) и чем такой сервер отличается от других серверов. Вообще говоря, слово «appliance» на самом деле не имеет отношения к конкретному типу сервера как таковому; здесь имеется в виду тип его комплектования и поставки. Фактически этот термин означает просто сервер любого типа, который продается уже настроенным, сконфигурированным и готовым к включению в сеть. Например, если предлагается сервер, описываемый как устройство для Web-хостинга, то реально продается Web-сервер (называемый еще сервером приложений), подаваемый как устройство «включи и работай», поскольку оно подходит для установки в существующую сеть. На рынке также имеются серверные приставки для управления трафиком, для создания виртуальных частных сетей – VPN, кэширующие устройства и т. д.