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