WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Советы » Опыт проектирования и разработки банковской системы для трехуровневой архитектуры клиент-сервер. Введение

Опыт проектирования и разработки банковской системы для трехуровневой архитектуры клиент-сервер. Введение


Дата публикации: 30-09-2010

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

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

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

Кроме того, использование в программе встроенных в базу данных процедур не обеспечивает переносимость программы между различными СУБД.

Программисты-практики хорошо представляют, что такое встроенные процедуры, как сложно их создавать и отлаживать и как затруднена их поддержка. Вот комментарий специалиста. "Эксплуатировать мощные сетевые приложения без TP-монитора - это все равно, что переходить через высокоскоростную магистраль с закрытыми глазами... Встроенные процедуры, выполненные в виде модулей СУБД, имеют ограниченные возможности по распределению загрузки и контролю надежности. Они не могут использовать ресурсы вне базы данных, и, в конечном счете, пользователям приходится выполнять (большую) работу на компьютерах-клиентах, что сильно снижает производительность" (Линда Радосевич, "PCWEEK", 29 мая 1995 г., стр. 10).

К новой технологии активных агентов фирмы Oracle (неплохой в целом технологии) применимы примерно те же соображения, что и к хранимым процедурам.

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

Актуальность этой темы кажется нам очевидной, так как автору статьи известны несколько отечественных крупных проектов в области трехзвенной архитектуры клиент-сервер, в ходе которых создаются особо ответственные приложения, предназначенные для эксплуатации в тяжелом режиме (7х24) сотнями и тысячами пользователями. Некоторые проекты уже успешно завершены, остальные находятся в процессе разработки.

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

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Март 2017 (1)
Февраль 2017 (3)
Январь 2017 (1)
Август 2016 (1)
Май 2016 (2)
Ноябрь 2015 (1)

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41

Друзья сайта

Хотите продать свой сайт?
- Мы быстро и удобно для Вас сможем его купить:
  • Заявка на продажу сайта
  • Раcсматриваем цены на каждый сайт в индивидуальном порядке.

    Случайная цитата

    Eric S. Raymond:

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

    Опрос

    Какой антивирус Вы используете?

    Kaspersky Antivirus
    NOD32
    Norton Antivirus
    Dr.Web
    Panda
    Аvast!
    ClamWin
    Другой...