В пилотном проекте объекты могут работать нормально. Но заставить их работать в масштабе предприятия -задача по-прежнему дорогостоящая и неблагодарная

Прошлым летом на выставке Object World команда по информационным системам Фила Хедли получила приз за использование объектных технологий. Столкнувшись с необходимостью замены вычислительной системы, настолько старой, что IBM уже собиралась прекратить ее ремонтировать, эта группа для построения приложения стоимостью $500 000 для административного управления несколькими отделами Департамента санитарии округа Лос-Анджелес успешно запрягла самые свежие объектно-ориентированные и клиент-серверные технологии.

Так отчего же Хедли не кричит на каждом углу о том, какие это чудесные средства?

Хедли, аналитик из Уиттера (шт. Калифорния), сообщил: "Нам пришлось изрядно поволноваться, проходя график освоения объектно-ориентированных средств -Smalltalk и Enfin/2 корпорации Easel". Затем, после масштабирования приложения на распределенную производственную среду, ему пришлось столкнуться с суровой действительностью: несмотря на хваленые преимущества объектно-ориентированных технологий, в картине недоставало некоторых важных "деталей". Он добавил, что "некоторые обещания оказались правдивыми, а другие -нет".

Как ни посмотри, опыт группы Хедли не оригинален. Использование объектов -наборов данных, объединенных с программной логикой -для создания приложений обещает постоянно повторяемый как молитва список преимуществ, из которых выделяются многократная используемость кода и ускорение разработки приложений. Однако реальные пользователи не всегда получают от объектов реальные преимущества. Прототип работает отлично, а после масштабирования приложения для реальной среды часто обнаруживаются неприятности, которых в лаборатории не было видно. Среди них: высокая стоимость, длительный период освоения технологии и вопросы, связанные с распределенным управлением, иллюзорность многократного использования и недостаточная производительность.

ДЕФИЦИТ ТАЛАНТОВ

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

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

И даже если обучение прошло успешно, есть еще один подводный камень. "Обучив своих людей, вы получаете продуктивных работников с более высокой рыночной ценой" -таково мнение Эдриена Боулза, директора по управлению консультативной фирмы Atelier Research (Уэстпорт, шт. Коннектикут). Например, затратив приличную сумму на обучение языку Smalltalk, менеджерам отделов информационных систем, возможно, придется повысить зарплату бывшим программистам на Коболе с $70 000 до $100 000 [в год], чтобы их не переманили. Здесь, правда, есть утешение, добавил Боулз, что программист будет работать в полтора раза продуктивнее.

Масштабирование пилотных приложений может оказаться дорогим удовольствием еще по одной причине. Посмотрим на пример типографской фирмы R.R. Donnelley & Sons (Лайзл, шт. Иллинойс). Группа исследований и разработок этой фирмы потратила полмиллиона долларов на построение модели объектного приложения для архивации электронных изображений. Этот проект, написанный на Си++ и использующий объектно-ориентированную СУБД фирмы Ontos, дал возможность тестерам сохранять изображения в объектно-ориентированной базе данных и извлекать их оттуда по описательной информации. И все же, как сказал Брюс Бьюкет, технический сотрудник, маловероятно, что пилотный проект получит дальнейшее развитие из-за высокой стоимости его внедрения.

Часть затрат фирмы R.R. Donnelley была связана с построением библиотек классов объектов для создания приложения. Дороги также дисковые массивы, необходимые для хранения больших объектов, -стоимость хранения в расчете на гигабайт данных обходится примерно в сто раз дороже, чем хранение таблиц базы данных.

РАСПРЕДЕЛЕННОЕ ПРЕПЯТСТВИЕ

Еще одну трудность создают распределенные платформы. Обычно фирмы создают прототип объектно-ориентированного приложения на одной машине и на одной платформе. Но когда приходится его внедрять, тепличных условий однородной среды уже нет. А это значит, что для распространения объектной технологии на различные типы аппаратного и программного обеспечения необходимо использовать посредников (ORB -Object Request Broker). Трудность в том, что рынок ORB далеко еще не созрел и не существует надежного управления объектами, необходимого для распределенных приложений.

По этой причине фирма Nabisco (Парсиппани, шт. Нью-Джерси), серьезно рассмотрев возможности применения объектно-ориентированной технологии для одной разработки масштаба корпорации, сказала "нет". "Мы бы чувствовали себя неуверенно, используя объектно-ориентированные средства в масштабе корпорации", -заявил Грег Диджованни, менеджер фирмы Nabisco по поддержке разработки приложений.

В фирме Nabisco работает распределенное приложение, поддерживающее 1000 пользователей, но, согласно Диджованни, не хватает инструментов управления распределенной объектной средой. Среди отсутствующих элементов можно назвать механизмы распределения и слежения и контроль за версиями. Кроме того, требуется стандарт взаимодействия различных ORB и обмена информацией между ними, но, по словам Диджованни, "стандартов нет даже на разработки, не то что на управление системами".

В то же время фирма Nabisco, придерживаясь в разработках более традиционных технологий, следит за развитием объектных технологий.

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

Кроме того, когда такие общие объекты начинают распухать, во весь рост встают вопросы производительности. У объектов часто есть "крючки", с помощью которых объекты извлекают информацию из реляционных баз данных. Чем больше таких крючков, тем ниже производительность работы с базами данных и объектами.

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

У Роберта Шайера, консультанта фирмы Hurwitz Consulting Group (Ньютон, шт. Массачусетс), в связи с многократным использованием возник такой вопрос: "Как платить разработчикам объектов, если нельзя платить им за строки кода? Награждать за создание объектов? Так вы получите много объектов и слабое повторное использование".

Многие фирмы до сих пор не знают, как ответить на этот вопрос, добавил Шайер.

А ЧЕГО БЕСПОКОИТЬСЯ?

Так зачем стараться создавать промышленные приложения в объектной технологии? В некоторых случаях выгоды весьма ощутимы. Например, Хедли даже после всех хлопот на начальном этапе разработки считает объектно-ориентированную технологию многообещающей. "Объектно-ориентированная среда очень хороша для быстрого внесения изменений, заявил он. -Такое свойство, как наследование, очень облегчает распространение эффекта от изменений сверху вниз, и когда надо что-то исправить, это можно сделать быстро".

Несмотря на большие объемы работ, планирования и предварительных вложений средств в построение библиотек классов, некоторые пионеры технологий уже близки к тому, чтобы заметить преимущества повторного использования кода. Например, компания Banker Trust (Нью-Йорк) сообщила, что благодаря использованию объектно-ориентированных средств смогла повторно использовать код на 70% и сэкономить сотни тысяч долларов.

Еще больше надежд на повторное использование кода дают заранее построенные объектные компоненты. Боулз сказал, что он работает с клиентами-банками над построением компонентов для банковских транзакций, которые можно будет использовать в приложениях всей отрасли, "Более восьмидесяти процентов того, что пишется, является общим для всех приложений, так что создание компонентов имеет смысл", -пояснил он.

Благодаря такой перспективе продажи объектно-ориентированных технологий продолжаются. В начале октября фирма Merril, Lynch & Со купила у фирмы NeXT Computer на 8 млн. долларов объектно-ориентированного программного обеспечения и услуг для ускорения разработки приложений для узлов World-Wide Web. По данным корпорации International Data (Фреймингем, шт. Массачусетс), на рынке средств разработки с использованием компонентов ожидается рост продаж с 1,9 млрд. долларов в 1994 году до 6,9 млрд. долларов в 1998 году.

"Это один из наиболее быстро растущих секторов рынка средств разработки приложений", -заявил Стив МакКлюр, директор корпорации International Data по объектным технологиям.

И все же многие пользователи пребывают в неуверенности, и в том числе Диджованни из фирмы Nabisco. По его мнению, причина возникновения рассказов об успехах объектно-ориентированных технологий имеет свои истоки в финансовых кругах и заключается в том, что фирмы, которые платят миллионные годовые премии отдельным работникам, могут себе позволить резкий рост затрат на объектные технологии. "Затраты здесь такие, что их на мелочах не окупить, -поясняет он. -В то же время мы понимаем, что здесь есть определенные возможности".

Линда Радосевич -независимый автор из Беллмонта, шт. Массачусетс. Ее электронный адрес: lradosev@interserv.com.

Линда Радосевич