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


Валерий Шляхов
Валерий Шляхов

Как пояснил в своем приветственном слове Валерий Шляхов, глава представительства Sun Microsystems в Украине и Молдове, конференция для Java-разработчиков проходит во время эпохальных событий. Как известно, в этом году корпорация открыла исходный код своей ОС Solaris для того, чтобы привлечь ресурсы мирового сообщества OpenSource с целью построения более эффективных, способных и надежных версий этой ОС. В своем намерении совершенствоваться корпорация идет дальше и открывает для доступа в рамках лицензии GNU саму платформу Java. Под знаком этих событий и проводилась ежегодная конференция в Киеве. Для участия в конференции в Украину прибыли сразу три “технологических евангелиста” Sun Microsystems, которые считаются идеологами Java, доносящими новые концепции до прикладных программистов и демонстрирующими на практике возможности новых версий инструментариев для разработки приложений.

Спикер: Саймон Риттер
Тема доклада: Sun и разработчики

Один из наиболее известных “евангелистов” компании, Саймон Риттер, в своем приветственном слове, открывающем конференцию, описал основные принципы взаимодействия Sun Microsystems с мировым сообществом производителей ПО. По его словам, в эволюционных процессах последних десятилетий эпоха “голого железа” постепенно сменялась эпохой “толстых клиентов” — концепцией рабочего места на основе ПК, а им на смену пришли терминальные клиенты. Компания эволюционировала в соответствии с главными тенденциями рынка, постепенно расширялась во всех областях развития, дойдя до эпохи веб-коммуникаций.


Эволюция принципов программирования по версии Sun — программисту остается все меньше операций, все больше функций берет на себя виртуальная машина
Эволюция принципов программирования по версии Sun — программисту остается все меньше операций, все больше функций берет на себя виртуальная машина
Сегодняшняя эра Web 2.0 характеризуется большим количеством задач по сравнению с предыдущими версиями. Современному программисту остается написание кода на межплатформенных языках программирования (XML, Java, Ruby и др.), остальное выполняет виртуальная машина и передает полученные результаты устройству. Сейчас команда разработчиков Sun работает над совершенствованием старых и введением новых технологий, таких как Java Virtual Machine (Project Phobos, jMaki, JavaScript in JavaSE 6), Native Scripting (Cool Tools), а в дальнейшем планируется более тесное сотрудничество с сообществом Open Source под эгидой JavaME и JavaSE. Современный программный инструментарий от Sun Microsystems включает в себя такие, уже успевшие хорошо зарекомендовать себя компоненты, как DTrace, Two Layer Multi-Threading, Virtual Containers и другие. Наиболее эффективной аппаратной частью для выполнения многопоточных задач, по мнению г-на Риттера, является процессор UltraSPARC T1. Созданный на основе концепции OpenSPARC, он в наиболее полной мере удовлетворяет запросам новой эпохи Web 2.0.

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

Спикер: Джоуи Шен
Тема доклада: Технический обзор
Solaris 10


Схематический принцип действия DTrace
Схематический принцип действия DTrace
Джоуи Шен, технический специалист компании, описал основные преимущества десятой версии ОС Solaris. Сегодняшний обновленный Solaris способен работать на самых распространенных аппаратных платформах (SPARC/x64/x86) и поддерживает бинарную совместимость для систем, начиная с версии 2,6. Не в последнюю очередь Solaris совершенствуется благодаря проекту OpenSolaris, в рамках которого участники сообщества Open Source могут заявить свои собственные инициативы по совершенствованию исходного кода этой ОС.

Отличительными чертами новой версии Solaris являются встроенные функции DTrace, инструментарий виртуализации Sun Contatiners, средства самодиагностики и упреждения сбоев Predictive Self-Healing, а также возможности файловой системы ZFS. Особый интерес у участников вызвала технология DTrace, которая, по словам Джоуи Шена, является тем универсальным инструментом динамической отладки, который с нетерпением ждали программисты на протяжении десятилетий. DTrace представляет собой тысячи “зондов-индикаторов”, которые встраиваются в тело кода системы и предназначаются для сбора разнообразной информации о состоянии системы и управления ею. Как пояснил г-н Шен, DTrace эффективен как в пространстве пользователя (User-Level), так и в ядре системы (Kernel-Level), при этом абсолютно не снижая суммарную производительность системы.

Спикер: Тао Майкл Ли
Тема доклада: Инструментарий с открытым кодом для Java-разработчиков: NetBeans и Creator


NetBeans позволяет совместно работать над кодом сразу нескольким разработчикам
NetBeans позволяет совместно работать над кодом сразу нескольким разработчикам
В своем техническом обзоре г-н Ли продемонстрировал участникам конференции новые практические способы решения наиболее актуальных и востребованных задач, возникающих на разных этапах разработки Java-приложений. Новые версии популярных “пакетов разработчика” от Sun Microsystems — NetBeans и Creator, несут в себе как усовершенствованные старые функции, так и ряд новых. По словам г-на Ли, NetBeans является оптимальным средством, которое помогает решать наиболее распространенные задачи для большинства разработчиков, в то время как Sun Java Studio Creator подойдет в большей степени для корпоративных разработчиков. Основными плюсами NetBeans являются простота в эксплуатации, легкий старт, полноценная поддержка Java SE и J2EE, Java DB, CVS Support, Debugger. В отличие от NetBeans, Sun Java Studio Creator включает в себя page navigator, наиболее полную библиотеку JavaServer компонентов, использует framework JavaServer, а также обладает поддержкой баз данных.

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


JDK6 обладает новой усовершенствованной консолью
JDK6 обладает новой усовершенствованной консолью
Спикер: Саймон Риттер
Тема доклада: DTrace: продуктивность, мониторинг и настройка в Solaris 10


Как исправить неполадки в программном обеспечении? Solaris 10 обладает улучшенной системой контроля. При возникновении “фатальной ошибки” (fatal error) программист имеет возможность постфактум получить dump или core файл, анализируя который с помощью mdb или dbx, можно отследить проблемный фрагмент кода и впоследствии устранить неполадку. Но в то же время существует множество неявных и не-фатальных ошибок, которые отследить и исправить бывает крайне сложно. К ним также можно отнести “хитрые” (tricky) ошибки, которые проявляются в виде любого неприемлемого системного поведения.

Функциональность DTrace предусматривает динамически конфигурируемую систему, а именно: достаточное количество инструментов для организации накопления контрольных данных, возможность динамического подключения инструментария, приемлемое падение производительности и гарантию безопасности. Поэтому DTrace насчитывает более чем 38 000 “зондов”, встроенных в Solaris 10, возможность создавать дополнительные “зонды” по ходу работы, новый мощный и динамически интерпретируемый язык для подключения зондов, нулевое исполнение, если зонды не подключены, и др. Каждый сценарий DTrace состоит из набора операторов, каждый оператор в свою очередь определяет набор действий, возможных, когда запущен один из активированных зондов. Для глобальных переменных отсутствует необходимость определения, DTrace самостоятельно подбирает необходимый тип. Поддержка DTrace в дальнейшем будет встроена в JVM.

Спикер: Джоуи Шен
Тема доклада: Возможности языка Java SE: сегодня и завтра



Типичное окно Sun Studio, режим отладки
Типичное окно Sun Studio, режим отладки
Версия Java “Tiger” (JavaSE 5) появилась в середине 2004 года вслед за J2SE 1.4. Все приложения J2SE 1.4 будут гарантированно работать и под Java SE 5. По словам г-на Шена, Tiger — широко распространенная, быстродействующая и устойчивая система, о чем также свидетельствует постоянно растущее количество загрузок этой версии с сайта Sun Microsystems. В общей сложности Tiger был скачан более 260 млн. раз и установлен на 60% новых ПК. В новой версии поддерживаются технологии OpenGL, SAX 2.0, AMD64 и многие другие. По быстродействию Java SE 5 превышает все предыдущие версии- J2SE 1.2.2 J2SE 1.3.1 J2SE 1.4.2. Основными новыми особенностями являются увеличение возможностей для циклов, статический импорт, метаданные и другие.

JDK 6 — инструментарий, который поддерживает большинство основных и новых технологий, среди которых Longhorn Look & Feel, JAXB 2.0, Core JVM. Пакет JDK 6, по словам г-на Шена, обеспечивает легкость разработки, поддерживает компонент Annotation Processors, XML (компонент Streaming API for XML), веб-сервисы (компонент WS Metadata), диагностику, мониторинг и менеджмент и др.

Спикер: Саймон Риттер
Тема доклада: Проект Glassfish и Java EE 5



Эволюция взаимодействия Sun Microsystems с сообществом Open Source
Эволюция взаимодействия Sun Microsystems с сообществом Open Source
Enterprise Edition 5 (Java EE 5) представляет собой значительно усовершенствованную среду программирования для разработки корпоративных приложений на базе Java EE. Обновленная среда разработчика предоставляет возможность выбора платформы Glassfish или Solaris. Основная задача проекта заключается в возможности создания приложений на этой платформе, которое осуществлялось бы как можно дешевле, быстрее и надежнее. В пакете применяются такие технологии, как Enterprise JavaBeans (EJB) 3.0, Java Persistence, JavaServer Faces, Java API для веб-сервисов на базе XML (JAX-WS) и Annotations. В EJB 3.0 добавлена поддержка программирования посредством Plain Old Java Objects (POJOs). Инструментарий JavaServer Faces 1.2 значительно упрощает создание пользовательского интерфейса для веб-приложений, разработчики получают возможность работать с подготовленными пакетами компонентов, которые можно вызвать из приложения. Средства JAX-WS помогают организовать вызов веб-сервисов более простым способом, благодаря автоматическому созданию клиентского и серверного кода. Чтобы сократить размер дескрипторов развертывания, создаваемых разработчиком, была введена система аннотаций (Annotations).

Спикер: Тао Майкл Ли
Тема доклада: JAX-WS и WSIT



Окно Sun Studio Analyzer в режиме дизассемблера
Окно Sun Studio Analyzer в режиме дизассемблера
В своем втором практическом докладе, который был проведен в формате живой демонстрации, г-н Ли описал инструментарий для веб-программистов, разрабатывающих веб-сервисы различных типов. Например, сервисы архитектуры типа REST (акроним от Representational State Transfer). В основе REST лежит принцип, согласно которому каждый URL приводит к уникальному ресурсу и может быть скомбинирован с таким веб-сервисом как XML-RPC. Данные могут возвращаться в форматах XML, PDF, PNG, JPG, SVG. Еще одна разновидность сервисов — SOAP (Simple Object Access Protocol), обычно используется для поиска удаленного вызова процедур, но иногда слишком тяжеловесен для работы, в то время как RSS работает с XML документами, удобен, прост и часто используется в комбинации с REST или другими веб-сервисами.

Новый интерфейс для создания веб-сервисов JAX-WS упрощает процедуру вызова веб-службы за счет автоматического генерирования программного кода клиентской и серверной части приложения. JAX-WS является частью платформ Java SE 6 и Java EE 5. JAX-WS может применяться как для SOAP/RPC, так и для REST веб-сервисов.

Спикер: Иван Пазыменко
Тема доклада: Sun Studio - инструментарий разработчика


Планы по дальнейшему развитию инструментариев для разработчиков
Планы по дальнейшему развитию инструментариев для разработчиков
Комплексный инструментарий разработчика Sun Studio может быть реализован как на архитектурах 32-битных, так и на 64-битных платформах, с использованием программных архитектур Solaris или Linux, и аппаратных платформ SPARC или x86/x64. Основные компоненты Sun Studio — компиляторы, отладчик, профилировщик, утилиты и библиотеки, интегрированная среда разработки (Integrated Developing Environment), основанная на NetBeans. Отладчик (dbx) обслуживает языки С, C++, Fortran и Java, поддерживает интерфейс командной строки, графический интерфейс, интегрированный в IDE. Предусмотрены три вида запуска отладчика: запуск и отладка процесса под управлением отладчика, присоединение к работающему процессу и отладка core-файлов. Также возможна отладка на уровне машинного или исходного кода.

Профилировщик, который состоит из коллектора и анализатора, легок и удобен в использовании, поддерживает языки С, C++, Fortran и Java, а также профилировку многопоточных программ. С его помощью можно выяснить, как программа попала в определенную точку, какие функции требуют наибольшего количества ресурсов, какова их интенсивность и объем. С помощью утилит Dmake и Data Race Detection Tool (DRDT) можно увеличить скорость сборки проекта. Параллелизация в Sun Studio может быть реализована тремя различными способами — ручная, полуавтоматическая и автоматическая.

Спикер: Сергей Кочугуев
Тема доклада: Sun Studio Analyzer - на стыке технологий


Sun Studio Performance Tools из Sun Studio Analyzer позволяет определить ресурсы, которые использует программа, какие из функций и модулей она потребляет больше всего, а также ветвление потока выполнения до попадания в ту или иную точку. Для Java можно узнать, какие ресурсы определяет JVM, выявить методы, скомпилированные в машинный код и их эффективность.

Структурно Sun Studio Analyzer состоит из компонентов Collector, DataRace Detection Tool, Analyzer, er_print, er_src, Libcollector. Компонент Collector выполняет функции трассировки отдельных вызовов и сборку отпечатков стеков вызова. Libcollector управляет сбором данных непосредственно из программы. С помощью er_print, er_src можно получить доступ к собранной информации из командной строки. При работе с Java существует 3 режима отображения информации: User, Expert, Machine. Режим User позволяет работать с программой на Java, Expert открывает доступ к JVM (memory management, signal handling, HotSpot), в то время как режим Machine открывает для работы все подробности, а также несколько скомпилированных версий одного метода.