ИТ – тормоз или двигатель, покупаем готовое или

advertisement
Когда произойдет и какой будет революция в технологиях
создания и внедрения корпоративных систем
Аншина Марина Львовна
директор департамента ПО, ЗАО «Ай Эс Джи», Москва
e-mail: m.anshina@isgr.ru
заместитель председателя правления, Фонд ФОСТАС, e-mail: manshina@fostas.ru
Аннотация
Революция в программном обеспечении уже происходит. Пытаясь примирить сложность
современных прикладных систем и настоятельные требования, предъявляемые бизнесом к
скорости и качеству их создания, внедрения и внесения в них изменений, поставщики
вынуждены изменять архитектуру своих решений, выделяя отдельные программные слои,
которые получили название прикладных платформ. В докладе формулируется понятие
прикладной платформы, проводится их классификация, определяется их место в
корпоративной архитектуре современных предприятий. В заключение предпринята
попытка спрогнозировать развитие программных моделей, в частности, прикладных
платформ различных типов.
Вступление
В области ИТ существуют свои вечные вопросы, которые из года в год задают себе и
коллегам члены ИТ-сообщества. Например, «ИТ – тормоз или двигатель развития
бизнеса», «сколько стоит ИТ и сколько приносит компании», «покупаем готовое или
разрабатываем свое». Как и положено, ответы на эти вопросы сменяют друг друга с
пугающей последовательностью. С учетом скорости развития ИТ, каждый год выбирает
свою точку зрения.
Однако и ИТ развиваются по спирали, и поэтому старый ответ на новом витке
основывается на новых доводах: новых стандартах, технологиях и опыте. Вот и сейчас в
последнем из заданных выше вопросах мы переходим на новый уровень. А именно можно
сказать, что традиционная дилемма теперь звучит следующим образом: «Покупаем
ширпотреб или приобретаем готовое базовое ПО, из которого можно быстро и
качественно получить индивидуальное решение».
Появление нового способа создания ПО – на основе прикладных платформ.
Определение прикладной платформы.
Таким образом, в ИТ появляется новое понятие – прикладная платформа, которое можно
определить следующим образом: «Программное обеспечение, предназначенное для
проектирования, разработки и выполнения программных компонентов,
автоматизирующих деятельность различных конкретных предприятий». Большинство
современных платформ, кроме того, включают в себя средства мониторинга и управления
программными компонентами.
Прикладная платформа неразрывно связана со всем жизненным циклом построенного на
ней ПО (в том смысле, что без нее ПО не может эксплуатироваться) и обычно сама
состоит из разнообразных взаимосвязанных компонентов.
Прикладная платформа позволяет с одной стороны существенно сократить сроки
разработки ПО, а с другой – повысить его индивидуальность, его соответствие
потребностям компании, ее стратегическим и оперативным задачам, запросам
сотрудников и других заинтересованных лиц.
Прикладная платформа позволяет также повысить гибкость ПО и часто берет на себя
отдельные сервисы; технические, общие для многих программных систем, такие как
обеспечение безопасности, поддержка транзакционной целостности, обработка событий,
управление сообщениями и прикладные, определяемые конкретной функциональной
областью предлагаемой платформы. Прикладные платформы все чаще разрабатываются
для отдельных функциональных областей, например, управление ресурсами предприятия,
телекоммуникационные процессы стандарта eTOM, поддержка клиентов.
Основные отличия таких прикладных платформ от настраиваемых программных систем
заключаются в следующем:
 прикладная платформа позволяет предприятию создать ПО «под себя», а
настраиваемая система позволяет только выбрать один из нескольких
предопределенных вариантов;
 прикладная платформа предполагает определенные возможности по развитию
созданного на ее основе ПО, а настройка готовой системы осуществляется при ее
установке и дальнейшие изменения затруднительны.
Типы и характеристики прикладных платформ.
Прежде всего, прикладные платформы можно разделить на 2 вида: технические и
функциональные. Первые в простейшем варианте представляют собой развитые средства
разработки, например, на Java и виртуальную машину Java, необходимую для выполнения
разработанных программ. Функциональные платформы обычно включают
функциональные компоненты, автоматизирующие отдельные функции бизнес-процессов
в определенной предметной области.
Технические прикладные платформы можно разделить на несколько типов:
 по поддерживаемым ОС и программным языкам;
 по возможностям расширения и добавления новых компонентов.
Функциональные прикладные платформы также можно разделить на несколько типов:
 по охватываемой функциональной области (чем уже область, тем более «готовые»
программные компоненты могут в нее входить, тем проще создание ПО на такой
платформе)
 по объему и качеству предоставляемых сервисов, технических и функциональных;
 по уровню предоставляемых средств построения ПО (от высокоуровневого
моделирования до написания кода на языке программирования).
В качестве основных специфических характеристик прикладных платформ обоих типов
надо назвать следующие:
 зрелость платформы (насколько быстро и просто можно разработать на ее основе
готовое ПО)
 функциональные границы (какого типа ПО можно на ее основе создавать)
 простота (насколько быстро и просто можно ее освоить).
Определение программного решения. Варианты построения программного
решения. Его место в программно-аппаратном комплексе
В сравнении с платформой определим программное решение как комплекс программных
компонентов, автоматизирующих отдельную область деятельности конкретного
предприятия. Программное решение может быть построено различными способами:
 на основе прикладной функциональной платформы
 настройкой на параметры предприятия тиражируемого программного обеспечения
типа COTS (Commercial off the shelf)
 разработкой ПО по заказу предприятия на основе технической платформы или на
языке программирования
o внешними компаниями
o собственными силами
o комбинированным способом
 комбинацией вышеперечисленных вариантов.
Конечно, программное решение не может существовать в отрыве от аппаратного
обеспечения и средств связи, но весь программно-аппаратный комплекс не является
темой данного выступления. Мы решили ограничиться в нем только архитектурным
слоем программных систем, подразумевая, что остальные нижележащие
архитектурные слои строятся с учетом его потребностей
Технологии и стандарты прикладных платформ
В качестве наиболее популярного стандарта прикладных платформ необходимо отметить
стандарт Java 2 Platform Enterprise Edition, объединяющий J2EE Application Server, J2SE и
средства разработки и построения программных систем в стандарте J2EE и Web-сервисов.
Вообще понятие прикладных платформ неразрывно связано с понятием Серверов
Приложений (Application Server) и технологией J2EE (Java 2 Enterprise Edition).
Другим стандартом, к которому часто обращаются разработчики прикладных платформ
технического вида, является технология CORBA, в частности протокол IIOP и Объектные
Сервисы. Прикладные платформы функционального вида все чаще строятся на основе
стандартов бизнес-процессов, относящихся к области BPM (Business Process Management).
К наиболее популярным стандартам этого типа относятся BPEL (Business Process
Execution Language), BPML (Business Process Modelling Language) и BPMN (Business
Process Management Notation)
В перечислении стандартов, лежащих в основе прикладных платформ, необходимо
упомянуть также и SOA, как идеологическую основу построения многих прикладных
платформ.
Готовые тиражируемые программные решения.
Если еще не так давно крупнейшие игроки рынка ПО обещали предложить такой набор
программных компонентов, из которого любое предприятие смогло бы выбрать
компоненты, покрывающие все его потребности, то сейчас стало понятно, что
1. разнообразие стоящих перед различными предприятиями задач столь велико, что
не позволяет продолжать унификацию программных систем;
2. гибкость программных решений приобретает все большее значение, а
унифицированные решения практически не бывают гибкими;
3. настройка бизнес-процессов компании на бизнес-процессы, заложенные в готовом
программном решении затратна, дорогостояща и редко успешна;
4. потребности бизнеса вынуждают предприятия все чаще отстаивать
индивидуальность своих программных решений
5. готовые решения позволяют предприятию создать «кусочную автоматизацию», но
не позволяют построить полноценную архитектуру программных систем.
Рост популярности прикладных платформ. Новая программная идеология.
Все это привело к тому, что с одной стороны поставщики все чаще позиционируют свои
продукты как прикладные платформы, с другой – предприятия все чаще стремятся
приобрести более гибкое и индивидуальное решение.
Кроме чисто организационных и технических изменений в проектах разработки и
внедрения программных систем такой поворот вынуждает к новой идеологии: покупаем
дорогой полуфабрикат (прикладную платформу), на основании которого путем
существенных и затратных усилий проектируем и собираем собственное программное
решение, которое постоянно надо развивать и поддерживать. Все это категорически
противоречит решению краткосрочных задач путем наименьших усилий или покупке
готового дорогостоящего решения, тяжелейшему его внедрению, а потом безоблачному
счастью в течение нескольких (или десятков - ?) лет.
Бедность рынка прикладных платформ.
Основными игроками рынка универсальных прикладных платформ, а именно, платформ
не привязанных к отдельной функциональной области, являются следующие
производители:
IBM (Web Sphere), BEA (Web Logic), Oracle (Oracle Application Server). К числу других
следует отнести Cordys, InterSystems, Novell, SAP and Sun Microsystems (данные взяты из
отчетов Gartner Group). В отдельных функциональных областях имеются свои игроки:
например SAP является лидером в области прикладных платформ для управления
ресурсами предприятия.
Однако рынок прикладных платформ все еще достаточно беден и при выборе конкретного
решения предприятие оказывается перед лицом существенных рисков и проблем.
Методы подбора платформы. Отличие от выбора готового программного
решения.
При этом выбор прикладной платформы представляется делом еще более трудным, чем
выбор тиражируемого программного решения. Это связано с тем, что появляется еще одна
степень свободы, связанная со специфическими свойствами прикладных платформ,
описанными выше, и, прежде всего с их зрелостью.
Место разработок. Требования к разработкам в новой парадигме.
Рост популярности прикладных платформ вовсе не означает, что все программное
обеспечение будет строиться на их основе. Заказные разработки или разработка ПО
силами собственных специалистов, о полной и окончательной гибели которых уже не раз
говорили, вовсе не собираются уходить со сцены. Существуют определенные, обычно
узко специальные задачи, которые выгоднее и рациональнее разрабатывать на языках
программирования, получая мобильные, легко обслуживаемые модули.
Сочетание в архитектуре готовых программных решений, прикладных
платформ и разработанного ПО.
Грамотная архитектура слоя программных приложений должна представлять собой
гармоничное сочетание 3 основных типов программных решений: настраиваемых
тиражируемых программных систем, прикладных платформ и разработанного под
конкретные задачи ПО. Методика построения подобной архитектуры может быть,
например следующей. Из задач, стоящих перед ИТ выделяются те, которые покрываются
готовым ПО и при этом изменения которых в ближайшие годы не будут существенны. Из
остальных задач выделяются крупные функциональные «подвижные» части, для которых
наилучшим образом подходят прикладные платформы. Отдельные оставшиеся задачи
реализуют либо на выбранных платформах, либо, если это неэффективно, - путем
разработки в программных кодах.
Прогноз развития моделей ПС
Можно предположить варианты развития моделей разработки программных систем,
приведенные в таблице 1.
1
2
3
4
5
6
7
Наи
мено
вани
Индивидуальна
я разработка с
использованием
Автоматическ
ая генерация
кода на
Низкоуровневая
платформа,
сервер
Функциональ
ная
прикладная
Функциональная
прикладная
платформа с набором
Тиражируемо
е
программное
е
типа
ПО
библиотек
классов
различных
типов
основе
построенных
моделей
приложений с
основными
"системными"
сервисами*)
Тип
прил
оже
ний
Отдельные узко
специализирова
нные функции;
Приложения
реального
времени;
Драйверы
устройств
Критические
для бизнеса
приложения
Бизн
естреб
ован
ия к
ПО
Реализация
специальных
требований и
уникальной
функционально
сти
Некритически
е
приложения;
по мере
развития и
совершенство
вания
инструментов
автоматическ
ой генерации
расширение
области
использовани
я
Время важнее
качества
ТСО
Тип
комп
аний
Большая
Разработчики
ППО
Уро
вень
разв
ития
ИТ в
комп
ании
Перс
пект
ивы
Высокая
культура
разработки
Область
использования
будет
постепенно
Большая
Мелкие
компании –
разработчики,
выходящие на
рынок;
подразделени
я ИТ с
высокой
квалификацие
й
Высокий
Будет
активно
использоватьс
я для
платформа с
набором
готовых
прикладных
сервисов и
инструментам
и
прикладного
конструирова
ния - сборки,
конфигуриро
вания,
описания
процессов, а
также
пользовательс
ких
интерфейсов
Интеграцион
ные решения,
Webприложения,
порталы,
системы типа
workflow
готовых модулей и
шаблонов
пользовательских
интерфейсов,
позволяющая
собирать программное
решение без
программирования
решение с
настройками
Корпоративные
приложения,
сочетающие как
стандартные
(например,
выполнение
требований
законодательства), так
и уникальные бизнеспроцессы.
Стандартный
функционал
(web-сайты,
системы
дистанционно
го обучения,
бухгалтерия,
налогообложе
ние, )
Необходимо
высокое
качество
системных
функций,
устойчивая и
надежная
работа
приложения
Средняя
Крупные и
средние
компании
Уникальность
и сложность
объекта
автоматизаци
и
Сложный и большой
функционал при
ограниченном
времени на создание и
внедрение системы
Простота
использовани
я и
поддержки,
скорость
внедрения
Средняя
Крупные и
средние
компании
Средняя
Крупные и средние
компании
Низкая
Средние и
малые
компании
Высокий
Очень
высокий
Средний
Низкий
Станет
основной для
высокотехнологичных
Станет
основной для
развитых
средних и
Станет основной для
средних и крупных
компаний не
имеющих сильных
Станет
основной для
мелких
компаний или
сужаться, но не
исчезнет
нестандартны
х задач.
малых и
крупных
ИТ-подразделений
компаний с
средних
компаний
низким
компаний с
уровнем ИТ
уникальными
бизнесзадачами
*)- под системными сервисами здесь понимаются такие функции, как транзакционность,
безопасность, управление событиями, хранение и т.д. (соответствуют объектным сервисам CORBA).
Только реальная картина потребностей и возможностей компании – Заказчика с одной
стороны, и понимание ситуации на рынке прикладного программного обеспечения – с
другой, должна служить основой для выбора тех или иных вариантов программных
решений.
Текущая ситуация состоит в прекращении споров о том, какой путь лучше: заказная
разработка, готовое тиражируемое решение или нечто промежуточное. Корпоративная
архитектура современного предприятия объединяет различные подходы, а современные
стандарты и технологии умеют сочетать различные программные решения для построения
единой прикладной среды предприятия.
Download