Введение в программное обеспечение предприятия. Что такое программное обеспечение предприятия, страница 2

В процессе роста предприятия сталкиваются с некоторыми ограничениями. Одно из наиболее обычных ограничений — неспособность компьютерных аппаратных средств масштабироваться в соответствии с растущими потребностями предприятия в обработке данных. Другое ограничение — невозможность разместить большее количество людей в прежнем физическом или даже географическом местоположении. Таким образом, возникает проблема рассредоточения. Увеличение количества физических компьютеров решает проблему обработки, но создает потребность в распределенном программном обеспечении. Выделение нового здания или нового филиала удовлетворяет самые настоятельные потребности, но создает проблему поддержания одинакового уровня обслуживания в разных местах территориально рассредоточенного предприятия.

Главная проблема может состоять в соединении ранее раздельных систем для получения более эффективного результата в масштабе предприятия. Традиционные системы, как правило, разрабатывались в расчете на определенные задачи и в основном не были рассчитаны на интеграцию с другими системами. Например, управление кадрами в свое время могло рассматриваться как совершенно отдельная задача, без особого взаимодействия с управлением финансовой деятельностью, а управление сбытом имело мало точек соприкосновения с обслуживанием клиентов, если вообще их имело. Такой изолированный подход к разработке программного обеспечения часто давал в результате превосходные программы, предназначенные для удовлетворения определенных потребностей, но в то же время их архитектуру было трудно интегрировать.

Родственная проблема — необходимость работать с программными продуктами разных производителей. Частью из-за особенностей развития, а частью по необходимости программное обеспечение предприятия часто представляло собой аналогичные программы разных производителей, используемых для одной и той же цели. Например, хотя приложение управления кадрами базировалось на Oracle 8i, приложение обслуживания клиентов могло быть построено на основе Microsoft SQL Server.

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

Это лишь некоторые из наиболее обычных проблем, которые должны быть решены в ходе разработки программного обеспечения предприятия.

Развитие программного обеспечения предприятия

Еще не так давно миром правили большие универсальные компьютеры, и все программное обеспечение было привязано к этому центральному типу машин. Такой централизованный подход давал преимущества простоты (всю работу по обработке данных выполняла одна система), нераздельности всех ресурсов и т.п. С другой, отрицательной, стороны это означало физические ограничения универсальности, зависимость от отказа одного критического компонента, ограниченную доступность из удаленных мест и т.д.

Такие централизованные приложения обычно называются одноуровневыми. Понятие уровень (tier, буквально — ярус) в словаре определяется как "один из нескольких рядов, которые поднимаются друг за другом или друг над другом". В программном обеспечении уровень — это прежде всего абстракция, главная цель которой — помочь в осмыслении архитектуры, связанной с определенным приложением, путем разбиения программы на отдельные логические уровни. Более подробно уровни рассматриваются в главе 6.

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

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