Уютно обосновавшись на платформе Windows, Inprise обратила свой взор на другое невспаханное поле — UNIX и, в частности, на Solaris от Sun Microsystems. Так что на свет вот-вот появится новая разновидность JBuilder 3 под кодом PrimeTime. Название, правда, несколько сложновато: JBuilder 3 Enterprise, Solaris Edition. Но пусть вас не смущает ориентация на ОС Solaris — этот продукт одинаково хорошо работает и на Windows и даже на Linux. Не догадываетесь почему? Правильно, JBuilder 3 for Solaris целиком и полностью реализован на Java! Ну как, господа скептики, кто сказал, что не бывает серьезного ПО, сделанного на Java? Именно здесь на практике и пригодилась переносимость этого языка.

Вообще, JBuilder 3 for Solaris представляет собой Borland JBuilder 3 Enterprise, однако слегка эволюционировавший. Значит, те из вас, кто уже работает на JBuilder 3, могут смело считать себя опытными пользователями JBuilder 3 for Solaris. Так что не будем рассматривать возможности всей линии продуктов JBuilder 3 — об этом вы сможете прочесть в статье «Новый JСтроитель берется за дело» (см. «Мир ПК», N 5/99, с. 30), — а сфокусируемся на том новом, что появилось в JBuilder 3 for Solaris.

Среда разработчика

В принципе, JBuilder как продукт для программистов с самого начала отличался оригинальностью. Можно даже говорить о некоем эксперименте над пользователями — здесь впервые была обкатана идея применения многопанельного окна для работы над проектом. Она прижилась и нашла свое продолжение в Delphi и C++Builder. JBuilder 3 for Solaris также внес посильную лепту в дальнейшее развитие концепции суперинтегрированной среды разработчика — панелей еще больше, работать еще проще.

Но наибольшее впечатление производит дизайн. Дело в том, что в основе пользовательского интерфейса лежит библиотека Java-классов Swing, по поводу которой давно уже идут дебаты, способна ли она заменить собой святая святых Java — интерфейс AWT. При каждом упоминании о Swing, являющейся уже неотъемлемой частью JDK от JavaSoft, подчеркивается ее медленная работа. Уж не знаю, происходит ли эта заторможенность от болезней роста, но в JBuilder 3 for Solaris интерфейс среды перерисовывается и вообще функционирует с такой скоростью, которой иная не-Java-среда может только позавидовать! Напрашивается мысль, что где-то в глубине библиотека классов была подвергнута редактированию. И тот факт, что вместе с JBuilder 3 for Solaris нужно устанавливать специально поставляемый вариант JDK 1.2.2, лишь подтверждает эту мысль. Эксперимент по установке стандартного JDK 1.2.2 вместо штатного от Borland привел к ошибке загрузки классов, отвечающих за Open Tools API, — программного интерфейса для расширения возможностей JBuilder. Но в целом работоспособность сохранилась.

Вот что приятно в пользовательских интерфейсах на базе Swing, так это их умение меняться подобно хамелеонам. Изначально среда разработчика JBuilder 3 for Solaris была настроена на вид Metal — пожалуй, самый удачный вариант внешнего вида. Понятно, что на вкус и цвет товарища, как говорится, днем с огнем не сыщешь, поэтому есть еще пара вариантов на выбор: милый сердцу юниксоидов Motif и привычный многим Windows. Субъективно же Metal работает быстрее.

Для тех, кто не знает, — открытый проект в JBuilder показывается в окне под названием AppBrowser, обычно имеющем три панели: проекта, структуры и редактора. Первая панель пополнилась удобным переключателем проектов в виде раскрывающегося списка. Подобный же список облегчает разработчику подключение классов, пакетов и произвольных файлов.

Рис. 1

Панель структуры тоже изменилась. Все пиктограммы для обозначения методов, классов и полей основаны на UML, что вполне согласуется с развитием современной методологии разработки программного обеспечения (рис. 1).

Панель редактора может быть «расщеплена» для одновременной работы с несколькими файлами или получения иного вида исходного текста. Если вы программируете в среде UNIX, то вас, несомненно, порадует возможность пользоваться клавиатурной раскладкой Emacs. А еще редактор «всеяден» и умеет выделять цветом синтаксис файлов многих типов, в том числе исходных и заголовочных: Cи, Cи++, SQL, XML, IDL, HTML, ASP, JSP, ... Достаточно? Вы можете даже открыть в редакторе class-файл. JBuilder 3 for Solaris декомпилирует класс и покажет вам его структуру, правда, без конкретной реализации. По крайней мере этого хватит для того, чтобы понять, что же там у него внутри.

Рис. 2

Теперь о панели сообщений. Она «обросла» закладками для показа сообщений от различных подсистем JBuilder 3 for Solaris (компилятора, отладчика), результатов поиска и т. д. В режиме отладки на ней появляется интерфейс, благодаря которому можно посмотреть протокол выполнения и вывод программы, ввести консольные данные. Сюда же были перенесены окна отображения состояния потоков, а также мониторинга значений переменных и точек останова (рис. 2).

Мастера

Поскольку в данной статье рассматривается бета-версия JBuilder 3 for Solaris Field Test 3 (билд 3.0.319.0), довольно трудно определить, насколько изменилась палитра галереи объектов. Однако можно точно сказать, какие объекты и мастера уже есть на тех двух закладках (New и Enterprise), которые удалось увидеть. На закладке New располагается стандартный джентльменский набор для создания приложений, аплетов, компонентов JavaBeans и т. д. Закладка Enterprise адресована корпоративному разработчику и в основном связана с технологией CORBA (рис. 3).

Рис. 3

Вряд ли стоит обращать внимание на мастера генерации аплетов и прочих стандартных Java-объектов. Но вот мастер Data Module 2-Tier Application может оказаться полезным. С его помощью всего за три минуты вы сделаете двух-уровневую СУБД с простым пользовательским интерфейсом. Для этого сначала мастер Data Module должен создать модуль данных, который передается затем Data Module 2-Tier Application. Последний анализирует выборку данных из модуля и генерирует окно с полями ввода для каждого выбранного столбца базы данных. А заодно и добавляет в это окно швартуемую панель с навигационными кнопками.

Что касается закладки Enterprise, то она весьма и весьма интересна. Взять, к примеру, генератор серверных страниц Java (Java Server Page). Такого рода страницы находятся в «юрисдикции» Java 2 Enterprise Edition (J2EE), как, впрочем, и некоторые другие приложения и объекты, создаваемые JBuilder 3 for Solaris. Мастер построения создания серверных страниц за два шага генерирует исходные тексты, причем и для самой странички и для подчиненного компонента JavaBean (рис. 4).

Рис. 4

Конечно, этот компонент — рудиментарный и служит лишь для демонстрации того, как надо увязывать серверную страницу и JavaBean. Но вы можете подключить к генерируемой странице любой JavaBean на втором шаге работы мастера. Так что поле для маневра есть. А поскольку ошибки в работе с Internet-приложениями все-таки бывают, мастер Java Server Page сделает для вас еще одну страницу, которая появится при сбое.

Здесь придется слегка отклониться от темы и вернуться к среде разработчика, потому что для редактирования серверных страниц в ней много чего имеется. Во-первых, можно посмотреть исходный текст страницы и увидеть, как она будет выглядеть с точки зрения конечного пользователя. Во-вторых, можно, так сказать, «не отходя от кассы», взглянуть на страницу и ее исходный текст, используя реальное соединение с сервером. Это позволит обнаружить множество «хитрых» ошибок еще на этапе разработки. Любопытно, что панель структуры в режиме просмотра исходного текста серверной страницы показывает все тэги и их свойства (рис. 5).

Рис. 5

Странички можно даже запускать и отлаживать в среде JBuilder 3 for Solaris с помощью инструментария JSP/SHTML Runtime, который включается в меню Project?Project Properties?Run page?JSP/SHTML.

Большое разнообразие отмечается и в лагере CORBA-инструментов. Если вы всерьез занимаетесь разработкой приложений на базе этой технологии, то, очевидно, мастер Use CORBA Server Interface станет вашим верным помощником, потому что он создает «оболочку» в виде компонента JavaBean, через который удобно обращаться к серверам CORBA. Здесь на практике реализуется делегирование полномочий и сокрытие сложных деталей реализации. В напарники данному мастеру может подойти еще один инструмент — CORBA Server Interface Implementation. В его задачу входит создание начального исходного текста для CORBA-объекта. Следует заметить, что оба упомянутых мастера выполняют свою работу на основе IDL-описания объектов.

Второй пары мастеров — HTML CORBA Client Application и CORBA Server Application — хватит для того, чтобы построить небольшую распределенную систему с сервером, у которого есть окно мониторинга обращений, и клиентом в виде активной серверной страницы со встроенным компонентом JavaBean. Причем на биты и байты последнего ложится бремя ответственности за удаленное соединение с сервером. Пользователь системы через браузер задает параметры и получает результат.

Среди прочих корпоративных «бубулин» можно выделить инструмент EJB Interfaces (меню Wizards?EJB Interfaces), создающий для компонентов Enterprise JavaBeans XML-дескрипторы развертывания в соответствии со спецификацией EJB 1.1.

Компилятор и отладчик

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

Новый отладчик использует в своей работе программный интерфейс Java 2Debugging API и может отслеживать сразу несколько приложений, а также осуществлять удаленную отладку и «зацепляться» за код, выполняемый другим процессом.

С пользовательской точки зрения значительно улучшен интерфейс, особенно в части включения и отключения трассировки классов. Щелчок мышью на левом поле напротив точки останова приводит к появлению диалоговой панели со свойствами данной точки, а сам останов можно установить на произвольный метод, класс или его поле.

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

VisiBroker for Java 4.0

JBuilder 3 for Solaris — это очередной прорыв Inprise в мире CORBA. Да, не меньше. Так, бета-версия VisiBroker for Java 4.0 под кодовым названием Sage, оставаясь совместимой с предыдущими версиями VisiBroker, тем не менее заставляет по-иному взглянуть на процесс создания и использования распределенных систем.

Как обычно, комплект поставки VisiBroker включает в себя инструментарий и библиотеки, необходимые для компиляции и отладки CORBA-приложений, брокер объектных запросов, прокси-сервер Gatekeeper, а также документацию и сервисы.

Почему я сказал о радикальных изменениях? Потому что иначе никак нельзя назвать включение в VisiBroker 4.0 переносимого адаптера объектов (POA), средств поддержки протокола GIOP 1.2 и передачи объектов по значению нового программного интерфейса интерцепторов. Сами по себе эти вещи довольно известны и вот уже несколько лет регламентируются спецификациями OMG. Однако лично мне удалось посмотреть на «живую» реализацию впервые.

Изменился соответственно компилятор IDL. Во-первых, он стал нечувствителен к регистру (давно пора!). Во-вторых, добавились ключевые слова abstract, custom, factory, native, private, public, supports, truncatable, valuetype и ValueBase. В-третьих, обращение к энумераторам теперь происходит в духе Cи++. Если ранее, имея описание

module x { 
  enum myEnum { name1, name2, name3 }; 
};
нужно было ссылаться на имя name1 как
 x::myEnum::name1

то в VisiBroker 4.0 следует обращаться к нему в контексте содержащего энумератор контейнера:

x::name1

С инструментами и утилитами тоже произошли кое-какие перемены. Так, Smart Agent после запуска не оставляет окно на Рабочем столе, а прячется в «лоток». Репозитарий интерфейсов irep запускается в фоне без всяких консолей или графических окон и несовместим со старыми версиями.

Остальные изменения не столь существенны и носят скорее вспомогательный характер.

*  *  *

Похоже, создание распределенных систем, в которых задействованы гетерогенные сети с различным оборудованием и программными платформами, становится если не тривиальным, то по крайней мере заметно более простым делом. Время незаменимых специалистов проходит. JBuilder 3 for Solaris четко отражает стратегию развития IT-рынка, направленную на «примирение» Windows и UNIX при «посредничестве CORBA. А новый пакет корпорации Borland — это своеобразный индикатор успеха подобной стратегии.