Технические решения банковских систем
Любое решение в сфере ИТ должно быть поддержано имеющимся информационно-технологическим окружением. Сети, серверы, рабочие станции и прочее техническое оборудование входят в список системных требований любого программного продукта. Системные требования обычно определяются следующими техническими параметрами:
o процессоры - устройства, выполняющие управление системой и осуществляющие обработку данных;
o память системы - множество устройств, осуществляющих хранение информации;
o интерфейсы - механизмы взаимодействия технических устройств между собой и с внешней средой;
o система коммуникаций или сеть - структуры и механизмы, осуществляющие обмен информацией между компонентами системы;
o операционная система - программное обеспечение, обеспечивающее базовый набор функций управления техническими компонентами системы.
Для простейших систем определяются только требования к одному компьютеру. Обычно это персональный компьютер, который может обеспечить работу всей системы. Такая архитектура носит название централизованной системы. В зависимости от мощности компьютера, на котором они базируются, централизованные системы могут решить и более глобальные задачи. Замена персонального компьютера на многопользовательскую большую, супермини- или мини-ЭВМ позволит сконцентрировать множество задач в рамках одной центральной системы. Однако высокая стоимость данных решений, а также отсутствие достаточного числа специалистов и малое число программных решений, базирующихся на центральном компьютере, ограничивают использование таких систем.
С ростом сложности, объемов информации и числа одновременно выполняемых процессов технические требования выходят за рамки одного устройства и приводят к созданию распределенной системы.
В зависимости от типа распределяемых ресурсов современные технологии предлагают три вида архитектур распределенных систем.
1. Распределенные вычисления - компьютерная система, в которой обработка выполняется несколькими компьютерами, подсоединенными к сети. При этом имеется в виду любая компьютерная система, в которой каждый компьютер решает свою задачу, а сеть поддерживает функционирование системы как единого целого.
2. "Клиент-сервер" - модель построения распределенной вычислительной среды, в которой интерфейсная часть задачи выполняется на машине пользователя, а требующая больших ресурсов обработка запросов осуществляется одним или несколькими серверами.
3. Кластеры - вычислительная система, представляющая собой совокупность относительно автономных систем (компьютеров) с общей дисковой памятью (общей файловой системой), средствами межмашинного взаимодействия и поддержания целостности баз данных. Использование кластеров увеличивает производительность и надежность системы, так как в случае сбоя одного компьютера его работу берет на себя другой. С точки зрения пользователя кластер выглядит как единая система.
Эти архитектуры не являются взаимоисключающими, использование для части ресурсов архитектуры "клиент-сервер" может быть совмещено с использованием распределенных вычислений для других ресурсов.
Первая задача, которая должна быть решена при создании распределенной системы, - какие виды ресурсов будут распределены. При необходимости разделения вычислительных мощностей рассматривается система распределенных вычислений или архитектура "клиент-сервер"; если система обработки больших потоков данных и их хранения - анализируются механизмы кластера.
Технология "клиент-сервер" базируется на принципе специализации составляющих информационной системы. При этом определяются два типа компонентов: сервер и рабочее место пользователя (Desktop).
Сервер - специализированное устройство или программное обеспечение, которое служит для решения общей задачи.
Рабочее место пользователя - компонент ИС, который служит для решения задач конкретного пользователя, например реализации пользовательского интерфейса системы.
Термин "сервер" может трактоваться двояко - мощный выделенный компьютер или программное обеспечение, реализующее одну из служб. В данной главе сервером будет называться программа, которая обеспечивает независимое выполнение некоторой задачи, которая может выполняться как на выделенном компьютере, так и на рабочей станции. Последнее решение часто используется разработчиками систем.
Выбирая архитектуру "клиент-сервер", в первую очередь необходимо определить весь перечень задач, решения которых будут перенесены на серверы. Как правило, это задачи, требующие общего доступа или больших вычислительных мощностей. Ниже приведены службы ИС, наиболее часто используемые как серверы.
Сервер домена определяет список пользователей сегмента сети, а также их права доступа, осуществляет мониторинг соединений, является ядром любой сетевой операционной системы, работающей по принципу "клиент-сервер".
Файл-сервер служит для хранения информации в виде файлов для распределенного доступа к ним, осуществляет контроль доступа к каждому из них. В качестве файл-сервера может служить любой компьютер, который разрешает использовать собственное дисковое пространство. Однако многие сетевые операционные системы предлагают большое число дополнительных сервисов для управления файл-сервером.
Сервер базы данных предназначен для хранения, обработки и обеспечения доступа к структурированной информации. Наиболее часто для решения этих задач используются серверы реляционных баз данных, поддерживающие язык запросов SQL. К ним относятся системы управления базами данных ORACLE, Microsoft SQL, DB2, SYBASE.
Интернет-сервер предоставляет информацию в соответствии с правилами сети Интернет. В простейшем случае то же, что и файловый сервер. Однако понятие интернет-сервера включает в себя и набор дополнительных сервисов, связанных, как правило, с преобразованием информации. Наиболее распространенными являются серверы APACHE и Internet Information Server.
Сервер приложения служит для выполнения специализированных задач. Многие банковские системы имеют серверы приложений, которые обеспечивают выполнение бизнес-логики приложения. При этом за хранение данных и контроль доступа к ним отвечает сервер базы данных.
Сервер архивации осуществляет хранение архивов - больших объемов редко используемой информации. От файл-сервера данный тип серверов отличают собственные механизмы компрессии, индексации хранимой информации и хранения истории вносимых изменений.
Сервер печати управляет печатью на общий принтер. Если он не является специализированным устройством, то входит в состав сетевой операционной системы. Основой сервера печати является механизм управления очередями заданий на печать.
На основе архитектуры "клиент-сервер" определяется список задач, решаемых рабочими станциями и отнесенных к клиентским. К ним обычно относят:
o управление пользовательским интерфейсом - наиболее распространенная задача для рабочей станции, включает в себя обслуживание различных элементов пользовательского интерфейса, таких как изображение на экране, кнопки, поля ввода, списки. Эта задача является промежуточной гранью между архитектурой "клиент-сервер" и терминальным доступом;
o офисные приложения - список задач, обеспечивающих редактирование данных (различные редакторы, текстовые и табличные процессоры). Процесс ручного ввода при редактировании данных не является распределенной задачей и для экономии ресурсов серверов переносится на клиентское место;
o печать - в больших информационных системах функция печати может быть реализована на сервере и на клиентской станции. Обычно печать через сервер обеспечивает вывод на бумагу больших объемов данных, например выписок по счетам. Это объясняется требованием к высокопроизводительному принтеру, который невозможно поставить на каждое рабочее место. С клиентской станции осуществляется печать документов, необходимых только конкретному пользователю;
o загрузка и выгрузка данных - также может выполняться и на клиентском месте, и на сервере. Если данные загружаются в автоматическом режиме и не требуют администрирования загрузки, это выполняет сервер. При случайной загрузке или выгрузке данных - на клиентском АРМ.
В отличие от архитектуры "клиент-сервер" кластер имеет принципиально другие составляющие. Это не законченные задачи, а отдельные функции, выполняемые различными компонентами системы, - как отдельным устройством, так и совокупностью составляющих различных вычислительных систем.
Решения на основе кластерной архитектуры дают ряд преимуществ:
o абсолютная масштабируемость - архитектура позволяет создавать кластеры любых размеров;
o инкрементальная масштабируемость - кластер создается таким образом, что можно наращивать мощность добавлением новых компонент без полной замены всей системы;
o устойчивость к сбоям - в случае выхода из строя одного из компонентов система продолжает работать, поскольку все функции дублируются;
o хорошее соотношение цена/производительность - использование широко распространенных компонентов в качестве составляющих в общем случае требует меньших затрат, чем покупка одного сверхмощного компьютера.
В настоящий момент практически все операционные системы имеют дополнительные решения для реализации кластерных архитектур. Но данные решения составляют только основу кластера. Распределение служб между отдельными устройствами может определяться и программным обеспечением серверов приложения. Таким образом, кластерную архитектуру могут иметь и серверы баз данных, и серверы приложений, если они поддерживают данную функцию.