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

Конференция Java-разработчиков

С 7 по 10 сентября 1997 года в Чикаго состоялась конференция, посвященная применению языка Java для разработки приложений самого разного масштаба - от программ, встроенных в предметы бытовой электроники, до корпоративных комплексов приложений. Докладчики рассказывали о собственном опыте использования Java при построении информационных систем нового поколения.

Спонсорами конференции были четыре компании - Sun Microsystems, IBM, Microsoft и GemStone. Отметим, что в этих компаниях сосредоточено более половины всех разработок, связанных с Java.

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

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

На конференции, а в дальнейшем и на выставке, работало до 30 компаний, специализирующихся в области информационных технологий. Представленные фирмы можно разделить на два типа - разработчики инструментальных средств, поддерживающих Java и CORBA, и компании консультационные, разработчики проектов, специализирующиеся на применении новых технологий и инструментальных средств. К первой группе относятся такие компании, как Sun, IBM, Microsoft, Rational, GemStone, ко второй - I-Kinetiks, Icon Computing, Alta Software и др. Компании первого типа замечательны тем, что формируют новые технологии: Java, JavaBeans, UML, ODBMS. Компании второго типа интересны своим умением использовать эти новые технологии, что является общей проблемой системных интеграторов и разработчиков программного обеспечения. Со специалистами из подобных фирм - докладчиками, представителями, работающими на выставке, - обсуждались в первую очередь вопросы построения реальных надежных систем обработки транзакций, а также проблемы работы с заказчиками, количество заказов и т.п.

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

В настоящий момент проекты, связанные с использованием новых технологий - Java, CORBA, распределенные трехзвенные системы, Интранет - составляют 15-20% от всех новых разработок, ведущихся этими компаниями или их заказчиками. Количество таких проектов растет в экспоненциальной зависимости. Нынешние разработки - это в основном пилотные проекты, в некоторых случаях уже перерастающие в промышленные и внедряющиеся в деятельность предприятий. Практически все проекты поражают грандиозностью будущего размаха, однако сегодня речь идет о реализации лишь части задуманных систем. Являясь максимум пятой частью от всех разработок, эти проекты требуют большого количества специалистов и больших капиталовложений. В компании Alta Software ориентировочно говорили, что стоимость подобных проектов как минимум в 2.5 раза выше, чем обычных, с учетом привлечения одинакового количества разработчиков. Наиболее популярным и пользующимся спросом видом деятельности является обучение новым технологиям - разного рода тренинги, курсы, семинары. Консалтинговые компании зарабатывают на этом больше половины всех средств. В большинстве проектов планируется создать высоконадежные транзакционные системы. Правда, в тех частях, которые реализованы сейчас, нет ни одного примера надежной обработки транзакций (имеются в виду реальные системы, а не средства разработки), однако их добавление планируется в ближайшем будущем. Все соглашаются с необходимостью использования стандартов при разработке крупных систем. При этом в реализованных сейчас компонентах соответствие этим стандартам зачастую отсутствует, но постулируется, что далее разработка будет вестись в соответствии с какой-либо спецификацией.

Необходимо отметить, что в целом все технологии, которые использовались при разработке проектов в компании Jet Infosystems, хорошо коррелируют с теми, которые применяются в западных проектах. Методы построения распределенных систем, архитектурные принципы, инструментальные средства - все соответствует общемировым решениям, современному уровню и тенденциям развития.

Несколько докладчиков в своих выступлениях наглядно рассказали о реальных разработках распределенных систем на Java и CORBA для различных вертикальных рынков - медицинского, финансового, торгового. Ими давались четкие и детальные рекомендации по методике и технологии разработки Интранет-приложений. Важным фактором является успешное внедрение двух рассмотренных на конференции проектов в сферах медицинского обслуживания и продажи автомобилей. Эти проекты принадлежат к числу первых завершенных систем, подтверждающих правильность применения новых технологий.

Bradley Green, представитель компании Alta Software, описал полную архитектуру информационной системы, обслуживающей дилерскую сеть фирм, продающих автомобили. Внедрение этой системы, обеспечивающей возможности дистрибуции и оформление заказов в оперативном режиме, а также позволяющей покупателям производить расчеты через Интернет, увеличило эффективность продаж более чем в полтора раза.

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

Общая архитектура разработанного Интернет-доступа показана на Рис. 1.

Рис. 1. Архитектура доступа к информационной системе через Интернет.

Рис. 1. Архитектура доступа к информационной системе через Интернет.

Подобная архитектура типична для большинства разрабатываемых корпоративных Интернет/Интранет-систем. Многие ведущие компании, включая Sun, IBM, Microsoft, Rational и др., полагают, что будущее принадлежит сходным архитектурам, и создают средства разработки, обеспечивающие их поддержку. Эти компании фактически определяют информационные технологии, которые будут доминировать в течение ближайших лет. Очень важен тот факт, что инструментальные средства для Java разрабатываются практически всеми ведущими фирмами. Это позволяет утверждать, что Java-технология принята как новое средство разработки приложений и построения информационных систем.

Анализируя выступления в дебатах и на круглых столах, можно сделать вывод, что компании по-разному относятся к Java. В основном спор сводится к тому, является ли Java просто новым языком программирования, или это технология, применимая к разным областям информатики и способная изменить сегодняшние представления о компьютерных системах. Одним из главных сторонников языка Java, как новой технологии, естественно, является Sun Microsystems. Sun - компания, разработавшая Java, сделала эту технологию своим стратегическим направлением. В рамках корпорации Sun создано несколько дочерних компаний, основным элементом деятельности которых является Java. Так, фирма Javasoft ведет большинство проектов, связанных с разработкой программного обеспечением на Java, - графических инструментальных сред, трансляторов, прикладных систем. Недавно Sun приобрела французскую компанию Chorus, специализирующуюся на производстве программного обеспечения для бытовой техники, средств связи и другой электроники (см. [1] и [2]). С помощью этой фирмы Sun надеется использовать Java во множестве повсеместно применяемых электронных приборов.

IBM - второй сильнейший сторонник Java. IBM также воспринимает Java, как новую технологию, и в полной мере способствует ее продвижению. Сегодня более 200 продуктов поддерживают Java, в том числе общеизвестные средства разработки семейства VisualAge. Примечателен тот факт, что IBM рассматривает Java как основное средство конкурентной борьбы с Microsoft. В IBM даже создан специальный институт, который так и называется, - "Институт конкурентной борьбы с Microsoft".

Сама корпорация Microsoft также называет себя сторонником Java, упорно и последовательно отстаивая свою позицию в этой области. Корпорация Microsoft рассматривает Java исключительно как новый язык программирования, который, как говорят ее специалисты, имеет свои достоинства и недостатки. Microsoft выпускает средства разработки с поддержкой Java, однако, к сожалению, его продукты делаются несовместимыми с остальными операционными средами. Так, например, продукт Visual J++ генерирует Java-код, который может выполняться только виртуальной машиной от Microsoft. Выступления представителей Microsoft на конференции еще раз подчеркнули обособленность позиции корпорации в мире Java. В частности, Microsoft не собирается поддерживать спецификацию Java RMI, обеспечивающую взаимодействие распределенных объектов, так как имеет собственную технологию DCOM.

Другие компании, имеющие достаточную известность в мире программных разработок, в основном поддерживают Java как новую технологию. GemStone, лидер в области объектных СУБД, в последних версиях продукта обеспечивает доступ к хранимым объектам средствами Java. Rational, ведущий разработчик объектных CASE-средств, уже имеет продукты из семейства Rational Rose с генерацией кода на Java. Компания Iona Technologies, которая лидирует в области создания CORBA-совместимых продуктов, также поддерживает Java-технологию и уже разработала продукт OrbixWeb, являющийся реализацией брокера объектных запросов для Java.

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

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

Другим направлением развития является новая объектная компонентная среда JavaBeans (см. [1]). Эта спецификация конкурирует с технологией Microsoft DCOM. JavaBeans, однако, поддерживается целым рядом компаний и, что более важно, рассматривается вопрос о стандартизации JavaBeans как компонентной среды в рамках консорциума OMG (на сегодня принятым стандартом является OpenDoc, но в силу различных нетехнических причин эта спецификация не смогла доказать свою работоспособность). JavaBeans развивается очень быстро. Встроить поддержку JavaBeans в свои средства разработки обещают в ближайшем будущем несколько компаний, в числе которых Symantec, IBM, Microsoft. На конференции теме JavaBeans было посвящено много выступлений, что свидетельствует о большом интересе к этой среде. По результатам обсуждений можно сказать, что JavaBeans - еще очень молодая технология и, соответственно, имеет определенные недостатки. На ее основе нет еще готовых приложений, но потенциал ее роста чрезвычайно велик.

Следующим направлением развитием Java является технология взаимодействия распределенных объектов в сети. Фактически, в Java определена новая архитектура, получившая название Java RMI (Remote Method Invocation - удаленный вызов методов). Эта архитектура отличается от хорошо известных сегодня CORBA и DCOM. Java RMI включает в себя определенные элементы, существующие в каждой из этих технологий. Консорциум OMG также развивает эту архитектуру и дополняет последнюю спецификацию CORBA 2.0 новыми элементами из RMI.

Еще одним очень перспективным направлением представляется аппаратная поддержка Java. В первую очередь следует упомянуть сетевые компьютеры или Java-терминалы. Кроме того, Sun планирует разработать (и уже разработал - см. заметку "Объявлен первый микропроцессор семейства microJava" в этом же номере Jet Info) специальные Java-процессоры, исполняющие команды виртуальной Java-машины. Эти процессоры предполагается встраивать в бытовую электронику, средства связи, системы обработки пластиковых карточек и т.п.

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

Все компании, включая Microsoft, признают компонентную среду JavaBeans и собираются создавать инструментальные средства с поддержкой этой спецификации. Технологии CORBA и Java интегрируются и в сумме заполняют те пробелы, которые есть в каждой из них. Предполагается, что следующая версия спецификации CORBA будет включать основные принципы, заключенные в распределенной модели вычислений в языке Java, то есть будет поддерживать Java RMI. Сделано это будет путем модификации протокола IIOP с добавлением в него новых возможностей. Ожидается, что методология, разработанная компанией Rational, - Unified Method на основе языка моделирования Unified Modeling Language - в ближайшее время будет принята консорциумом OMG как стандарт для моделирования распределенных систем.

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

Литература

  1. Владимир Галатенко , Александр Таранов. Компонентная объектная модель JavaBeans
  2. Создание сетевой инфраструктуры Интранет. Материал компании Bay Networks.

Статья опубликована в журнале Jet Info, №22, 1997 г.