Представление архитектурных решений
Наиболее просты для построения графические описания архитектурных решений: достаточно изобразить в виде прямоугольников, выделенные подсистемы и соединить их линиями, символизирующими одновременно и передачу данных между подсистемами, и вызовподпрограмм, и запуск процессов в этих подсистемах. Указаннаяструктурная схема должна сопровождаться текстовым документом, содержащим обоснование принятых архитектурных решений.
Элементами архитектуры ИС являются подсистемы, реализующиебизнес-функции, представленные либо на BFD, либо на IDEF0-диаграммах.В несложных проектах бизнес-функции подсистем располагаются на первом или втором уровне иерархии функций. Чемсложнее проект, тем на более низких уровнях иерархии могут размещаться функции, реализуемые подсистемами ИС. Указанные подсистемы в своей совокупности образуют слой (звено) бизнес-логики. Помимо звена бизнес-логики в архитектуру ИС входят: звеноклиента (clienttier), называемое также слоем представления, и звенохранения данных (datastoretier). Особенности пространственно-процессной реализации указанных трех звеньев образуют конкретныйвариант архитектуры ИС. Прежде всего архитектуры ИС подразделяются на настольную (desktop) и сетевую, использующую сетьпередачи данных. Настольная архитектура используется в тех случаях, когда ИС имеет единственное рабочее место. За этим местомможет работать либо единственный пользователь, либо несколькихпользователей, работающих по очереди. При необходимости одновременной работы двух или большего числа пользователей необходима сетевая архитектура. Схема настольной архитектуры ИС представлена на рис. 16.2.
Рисунок16.2. Настольная архитектура ИС
Настольную архитектуру могут иметь системы только очень малых организаций или отдельных подразделений средних и крупныхпредприятий.
Архитектура ИС – это верхний уровень архитектуры программного обеспечения. Реализация настольной архитектуры прошла существенный путь эволюции. Исторически первые ИС имели программную архитектуру типа «монолит», предполагающую настольную реализацию всех архитектурных элементов в виде одного исполняемогофайла, запускаемого в одном вычислительном процессе на одномкомпьютере с системой файлов в качестве базы данных.
В настоящее время настольные ИС с несложной бизнес-логикойсоздаются средствами СУБД, обычно Access. Если специфика предметной области такова, что сетевая реализация ИС не требуется(одного рабочего места достаточно), но решаемые задачи сложныили разработчик желает реализовать оригинальный стиль взаимодействия пользователя с системой, то разработка пользовательскогоинтерфейса и бизнес-логики осуществляется с помощью одного илинескольких языков программирования. Таблицы данных создаются с помощью СУБД (чаще всего, того же Access), но применениеСУБД ограничивается только этапом генерации физической моделиданных, т. е. созданием файла (или нескольких файлов) базы в процессе реализации ИС.
Доступ к данным во время работы осуществляется с помощьюспециальных средств доступа, таких как ADO, ODBC или BDE (BorlandDataEngine). Функционирования СУБД при этом не требуется. Сходство с монолитом велико: работа ИС реализуется в одном вычислительном процессе на одной машине. Однако различия существенны: подсистемы современных ИС реализуются в виде DLL (DynamicLinkLibrary) – независимых модулей, которые транслируются отдельно – вне главной программы и других библиотек – и не связываются (не линкуются) в единый загружаемый файл, а подключаютсядинамически – во время работы фрагмента программы, которомутребуется функциональность данной DLL.
Преимущество применения DLL заключается в том, что их можносоздавать и совершенствовать почти полностью самостоятельно. ЕслиDLL оформлять как COM-компоненты и вызов функций (методовклассов) осуществлять через интерфейсы, то их можно создавать, используя различные языки программирования.
Современные архитектуры являются клиент-серверными. Термин«сервер» означает программу, с которой одновременно могут работатьнесколько пользователей – клиентов. Для подключения несколькихпользователей к одному серверу, размещенному в одном компьютеретребуется сеть передачи данных. Самыми распространенными серверами являются серверы баз данных, к числу которых относятся SQLSERVER (Microsoft), SQLBASESERVER, OracleSERVER (OracleCorporation), IBMDB2, Informix, Ingres, FIREBIRD.
Клиент-серверная архитектура может быть двухзвенной, трехзвенной или многозвенной. Двухзвенная клиент-серверная архитектураИС представлена на рис. 16.3.
Бизнес-логика может размещаться и на стороне клиента, и на стороне сервера. Изобразительные средства сервера базы данных ограничены хранимыми процедурами – предварительно откомпилированными предложениями языка SQL. Если бизнес-логика предметной области проста, то она может быть реализована в виде хранимыхпроцедур и полностью размещена на стороне сервера. При этом клиенты становятся «тонкими» – они содержат только интерфейс пользователя, содержащего, в свою очередь, команды запуска хранимыхпроцедур EXECUTE<имя процедуры>.
Рисунок 16.3. Двухзвенная клиент-серверная архитектура ИС
Если бизнес-логика сложна, то она реализуется с помощью языков программирования и размещается на стороне клиентов. Клиента при этом становятся «толстыми» – они содержат и интерфейс пользователя, и код программ, реализующих бизнес-логику. Возможна и промежуточная ситуация, когда бизнес-логика размещается частичнона стороне клиента, а частично – на стороне сервера.
Рисунок16.4. Трехзвенная клиент-сервернаяархитектура ИС
Трехзвенная клиент-серверная архитектура ИС представлена нарис. 16.4. Ее суть заключается в выделении бизнес-логики в самостоятельное структурное звено, являющееся клиентом по отношениюк серверу базы данных. Преимущества трехзвенной архитектуры очевидны:
1) бизнес-логика реализуется развитыми средствами языков программирования и может быть сколь угодно сложной;
2) клиенты «тонки», поэтому могут размещаться на маломощныхкомпьютерах;
3) трафик по сетям минимален, поскольку по каналам сети передаются не файлы, а только запросы на решение конкретных задач, запросы на извлечение необходимых данных, самые необходимые(минимальные по объему) данные и результаты их обработки.
Многозвенная архитектура отличается от трехзвенной тем, чтосерверов приложений и серверов баз данных в информационнойсистеме может быть несколько.
Это может показаться странным, но клиент-серверное приложениечасто оформляется не как сетевое, а как настольное – с одним рабочимместом и, естественно, без вычислительной сети. Дело в том, что сервербазы данных и сервера приложений могут запускаться как самостоятельные процессы, параллельные процессу клиента, в одном компьютере. Популярность такого решения объясняется простотой его проектирования и высокими техническими характеристиками серверов какв плане прямой функциональности (сервера имеют достаточно совершенные средства проектирования и генерации баз данных, разработкии даже отладки хранимых и присоединяемых процедур), так и в планепроизводительности, надежности и безопасности баз данных.