В Санкт-Петербурге прошёл очередной форум Sun Tech Days для разработчиков
Ещё несколько лет назад постсоветское пространство воспринималось как перспективный, но все-таки несколько отстающий в технологическом смысле регион. Сегодня Россия, Украина и другие «братские республики» превратились в мощную кузницу ИТ-специалистов. В первую очередь это касается наукоёмких и творческих направлений, к которым, без сомнения, относится разработка программного обеспечения.
Веб меняет всё
С ключевым докладом, затронувшим все важнейшие направления мероприятия, выступил исполнительный вице-президент, руководитель отдела разработки программного обеспечения Sun Microsystems Рич Грин (Rich Green). Рефреном в речи спикера, да и, пожалуй, во всем мероприятии, звучала мысль о необходимости развития сообщества разработчиков Open Source и идеи открытости кода в целом. Разъясняя позиции Sun Microsystems, Рич Грин отметил, что интересы компании тесно переплетены с многочисленными сетевыми сообществами. Sun Microsystems уже много лет выступает в роли вдохновителя идеи открытого ПО. Так, около года назад компания полностью открыла коды своих ключевых программных продуктов — Java и Solaris, и прилагает много усилий для развития сообществ разработчиков. За счёт двустороннего взаимообмена происходит обогащение новыми идеями и, как следствие, ускорение развития технологий.
Процессы написания и сопровождения ПО претерпевают серьезные изменения. Традиционная модель заключалась в разработке сложных технологий для их дальнейшей продажи, при этом в центре схемы находился отдельно взятый персональный компьютер. Сегодня приложения в основном создаются с расчетом на веб. Цикл проектирования и разработки программ занимал довольно длительное время — месяцы, а то и годы, тогда как теперь всё делается, по словам Рича Грина, «безотлагательно и итеративно». В настоящее время приложение представляет собой своеобразный конструктор из скриптов и библиотек, в отличие от распространенной ранее монолитной структуры, в которую было чрезвычайно сложно вносить какие-либо изменения. В старой модели программисты писали код главным образом в соответствии с конкретными потребностями заказчиков. Теперь они могут свободно использовать чужие наработки и предоставлять собственные другим программистам. В корне изменилась и система реализации ПО: всё чаще пользователь не покупает программу на диске, а загружает её через интернет, подписываясь на обновления и дополнительные сервисы. Наконец, в прошлом разработка контролировалась только поставщиком ПО — теперь же, если речь идет об открытых программах, контроль возлагается еще и на плечи сообществ, что создает благоприятную среду для общения и обмена опытом. Для Sun Microsystems, в частности, это означает возможность услышать критику и пожелания с другой стороны, найти интересные предложения и задействовать их для дальнейшего усовершенствования продукции.
«Ускорение технологий зависит не только от числа людей, непосредственно занятых в веб-сообществах, но и от усовершенствования платформ, которые могут использовать программисты для максимально быстрой разработки приложений. И здесь особенно важна идея Open Source. Интенсивность, с которой новые технологии бесплатно становятся доступными всем в виде открытых кодов, снижает потребность в «изобретении велосипеда» при разработке новых проектов и позволяет архитекторам и программистам сосредоточиться на их сути», — считает Рич Грин.
Технологии в развитии
Большая часть докладов была посвящена ключевым технологиям Sun Microsystems, их развитию и практическому применению.
GlassFish
Рич Грин назвал SOA GlassFish одним из популярнейших открытых проектов в мире. По его словам, за год своего существования, к июлю 2006 года, этот сервер приложений был загружен из сети более 7 млн. раз.
GlassFish — основная платформа распространения open ESB — проекта, который является открытой реализацией концепции сервис-ориентированной архитектуры. Сообщество активно участвует в разработке различных компонентов системы. Например, было создано более 100 адаптеров, реализующих различные протоколы для платформы open ESB. За время существования проекта GlassFish продукт вырос из стадии reference implementation спецификации Java EE 5 до продукта уровня промышленного использования.
В настоящее время доступна вторая версия дистрибутива GlassFish. Дальнейшее развитие концепций SOA движется в направлении повышения гибкости использования компонентов GlassFish. То есть пользователь или разработчик может установить и использовать лишь то, что необходимо для функционирования open ESB, а всё, что понадобится в дальнейшем, загружается по мере необходимости. Среди важных изменений можно также упомянуть поддержку REST-сервисов. Эти концепты будут реализованы в третьей версии платформы.
Java
Число ПК, на которых установлена виртуальная машина Java, приближается к 800 миллионам, а количество мобильных устройств с поддержкой этой технологии исчисляется миллиардами.
Java как язык программирования постоянно обогащается и обрастает новыми технологиями. Хороший пример — объявленное около года назад семейство JavaFX для создания многофункциональных интернет-приложений (rich Internet applications).
Различие между языком Java и виртуальной машиной Java стало более выразительным. Для создания и поддержки скриптовых технологий необходима динамическая платформа, помогающая эффективно использовать возможности сложных систем. В связи с этим компания приближает JVM к применению в скриптовых языках.
По мнению представителей Sun Microsystems, в будущем Java превратится в универсальную платформу для самых разнообразных технологий. Благодаря Java-машине, одни и те же приложения работают и на персональных компьютерах, и на мобильных телефонах. Рич Грин считает, что с открытием исходных кодов Java будет развиваться ещё более динамично.
MySQL
Рич Грин рассказывает о тенденциях в области разработки ПО |
Виртуализация
Тема виртуализации в мире ИТ сегодня — одна из самых популярных и распространённых. Согласно исследованиям аналитического агентства Gartner, крупнейшими игроками на этом рынке являются VMWare, Microsoft и Sun Microsystems. Первые две компании предлагают платные продукты, из тройки лидеров лишь Sun стоит на страже Open Source. Сегодня компания развивает виртуализацию по четырём направлениям. Среди них — виртуализация серверов и управления, а также поддержка виртуальных контейнеров в операционной системе Solaris. А после приобретения компании Innotech продуктовый портфель Sun Microsystems пополнился инструментами виртуализации персональных рабочих станций.
Solaris
Прошло около года с тех пор, как Sun Microsystems открыла исходные коды операционной системы Solaris. Представители компании планируют развивать Solaris в русле потребностей корпоративного рынка, где позиции данной ОС традиционно сильны. Сегодня Sun Microsystems предлагает две модели лицензирования: Solaris Enterprise и Open Solaris. По мнению Яна Мердока, вице-президента Sun Microsystems по связям с сообществом разработчиков, классический вариант Solaris подходит для тех систем, где важна отказоустойчивость, к примеру, СУБД уровня предприятия. Система активно поддерживается разработчиками, обновляется раз в неделю, при этом отличается длительным жизненным циклом — около 5 лет. В свою очередь, Open Solaris ориентирована на гибкие и динамично меняющиеся условия, к примеру, для использования в качестве платформы веб-серверов.
Ян Мердок рассказал о путях и методах построения сообщества разработчиков, опираясь на личный опыт. Некоторое время назад он занимался организацией сообщества Linux Debian. «Для создания полноценного сообщества мало лишь открыть исходный код. Надо очень хорошо понимать, чего именно вы добиваетесь от независимых разработчиков, и четко сформулировать эти запросы. Что касается Open Solaris — мы пытаемся оформить техническое ядро и снабдить его дополнительными пакетами и периферией, которые вызовут дополнительный интерес. На этом этапе крайне важно не жалеть средств, инвестировать в независимых разработчиков — ведь, чтобы эта махина заработала, число участников должно достичь некоторой критической массы. Тогда можно рассчитывать на то, что кто-то за пределами компании начнёт разрабатывать экосистему и периферийные пакеты, которые будут представлять ценность как для пользователей, так и для производителей ОС. В ходе развития сообщества Linux Debian такой подход полностью себя оправдал: мы убедились, что важнейшим показателем успешности операционной системы является число прикладных программ, которые на ней работают, и рассчитываем на то, что Solaris-сообщество также активно приступит к реализации новых программных решений», - рассказал Ян Мердок.
Среди основных конкурентных преимуществ Solaris на современном этапе развития авторы системы называют поддержку функции динамической трассировки DTrase, виртуальные контейнеры и файловую систему ZFS, которая позволяет делать мгновенные снимки состояния ОС и производить «откат» в сохранённые состояния. В настоящее время архитекторы системы заняты разработкой технологии создания пакетов для сборки дистрибутивов.
Многие доклады были посвящены новшествам в IDE NetBeans, улучшению совместимости приложений, разработкам систем реального времени посредством Java Real-Time Systems и пр. Помимо сессионных докладов и практических мастер-классов, организаторы развернули тематические стенды, где участники мероприятия могли получить ответы на волнующие их вопросы непосредственно из уст специалистов Sun Microsystems.
Комментарий эксперта
Sun Microsystems всегда относилась к числу инновационных компаний. Благодаря этому на практике были реализованы множество новых технологий, которые постоянно совершенствуются. Специалисты Sun Microsystems находятся в непрерывном поиске новых идей. Вероятно, они далеко не сразу получат практическое применение, а лишь после ряда исследований и экспериментов. Один из самых известных евангелистов компании, Саймон Риттер, занимается сетевыми вычислениями, RFID, беспроводными сенсорными сетями, робототехникой и носимыми внедрёнными вычислительными средствами. На Sun Tech Days он продемонстрировал интересный прибор — управляющую посредством сенсоров «перчатку» с установленной на ней Java-машиной. Это устройство разработано на экспериментальной платформе Sun SPOT (Small Programmable Object Technology). Об этой и других актуальных технологиях Sun Microsystems Саймон Риттер рассказал редакции PCWeek/UE.
PCWeek/UE: В чём состоит идея Sun SPOT?
Саймон Риттер и его чудо-перчатка — демонстрация возможностей Sun SPOT |
PCWeek/UE: Если говорить о технологиях, подобных Sun SPOT, не требует ли поддержка новых возможностей изменений в JVM на уровне ядра?
С. Р.: Нет. В ядре мы менять ничего не собираемся, потому что для нас очень важно, чтобы Java оставалась единой средой. Ведь сама идея состояла в том, что написанное на Java приложение должно работать где угодно. Запустили на сервере? Работает? Теперь можно не волноваться, программа запустится и на настольном ПК, и на мобильном телефоне, и вот на такой Sun SPOT-перчатке. Самое интересное, что в этом мини-устройстве реализован тот же язык Java, что и на любом другом компьютере. Механизмы сбора «мусора», многопотоковости ничем не отличаются от «взрослых» аналогов. Отличия состоят в том, что для разных типов устройств реализованы различные библиотеки классов. То есть для мобильного телефона она одна, для мобильного устройства с сенсорными датчиками — другая. Но сам язык Java одинаков на сервере, в перчатке и на настольной машине.
PCWeek/UE: Вы упомянули многопотоковость. Эта тема остаётся одной из самых актуальных, вероятно, уже лет пять. Как сегодня эти возможности реализованы в Java, разрабатываются ли новые библиотеки?
С. Р.: В первую очередь хотел бы упомянуть так называемые одновременно работающие библиотеки C, которые мы реализовали в Java SE 5. Идея этих параллельно работающих библиотек состояла в том, чтобы разработчики получили функционал высокого уровня для создания программ многопотоковой обработки. К тому же Java изначально хорошо приспособлена для встраивания различных потоков обработки, если это требуется. Единственная трудность заключалась в том, чтобы обеспечить взаимодействие между потоками, заставить их «общаться» между собой. Управление таким взаимодействием было реализовано чересчур примитивно: из команд были доступны лишь синхронизация потоков, режим ожидания, режим сна, режим оповещения — вот, собственно, и всё! То есть сложилась ситуация, когда писать приложения, допускающие многопотоковую обработку, по сути, было легко, а вот написать их без ошибок — практически невозможно. Во избежание этого и была предложена идея с параллельными библиотеками C. При их разработке мы продумали все механизмы, конструктивные элементы, которыми разработчики теперь охотно пользуются, к примеру, блокировка параллельной записи, так называемые семафоры. Такой подход существенно упрощает работу программиста, пишущего «параллельный» код. Правда, мы ещё не успели реализовать эти библиотеки для миниатюрных устройств.
PCWeek/UE: Каким вы видите будущее Java Enterprise Edition, в частности EJB, учитывая, что ряд вендоров не очень охотно поддерживает EJB3 (Enterprise Java Beans, версия 3)?
С. Р.: Вообще-то, EJB3 — это большой шаг вперёд для разработчиков приложений корпоративного уровня. Дело в том, что даже в то время, когда мы только начинали разработку Java, идея EJB витала в воздухе — ведь нужно было как-то оградить разработчиков отдельных компонентов программы от заботы о дальнейшем развёртывании этих компонентов. То есть разработчики в принципе не должны думать о том, какая потом будет применяться СУБД или какой менеджер транзакций, — это уже не их печаль. Таким образом, задача программистов упростилась. Однако при сборке приложения воедино возникали большие, так называемые, программные накладные расходы, что было совершенно не оптимально.
Мы проанализировали ситуацию и увидели, что сеансы EJB очень популярны, в то время как комплексное EJB особым успехом не пользовалось. Для устранения присущих EJB недостатков в кратчайшие сроки появилось множество сообществ разработчиков программ с открытым кодом. И в EJB3 мы пытались использовать их опыт, внедрить их идеи в официальный релиз. В данном случае мы задействовали функцию аннотации из Java SE 5 для того, чтобы максимально упростить создание EJB. Кроме того, мы создали специальное средство, обеспечивающее взаимодействие с базами данных. Всё это разработчики приняли на ура.
Практически любая компания, которая занимается EJB и Java, имеет своих представителей в группе разработки спецификаций. И, кроме того, существует так называемая Java Community Process — специализированная группа, которая занята разработкой Java-стандартов.
PCWeek/UE: Участники группы — штатные сотрудники Sun Microsystems?
С.Р.: Вот это очень важный момент! Sun Microsystems организовала эту рабочую группу, но теперь она не зависит от нас. Так или иначе, в Java Community Process представлена любая компания, которая всерьёз занимается Java, к примеру, IBM, Oracle, Nokia, Vodaphone, BEA Systems, Sony Ericsson. Ну и собственно спецификацию EJB разрабатывают не только Sun, но и IBM, Oracle, BEA Systems, - все, кто заинтересован в развитии системы. Поэтому, на мой взгляд, большинство как раз охотно принимает EJB3 и активно пользуется этими технологиями.
PCWeek/UE: Около года назад открыли исходники Java и Solaris. Как бы вы оценили первые последствия этого события? Как происходит взаимодействие между сообществами и внутри них? Знакомы ли вам их движущие силы?
С. Р.: Прежде всего, просто открыть исходные коды — ещё не значит создать сообщество разработчиков. Вы можете сколько угодно выкладывать на узле в интернете исходные коды своих программ для загрузки, но это ничего не даст. Как уже отмечал в своем докладе Рич Грин, компания прилагает все усилия, чтобы сделать доступными не только собственные коды, но и те ресурсы, которые могут привлечь разработчиков. Именно это может побудить их объединиться в сообщество. Хороший пример — инструментарий разработчика JDK.
Уже сегодня большое количество людей, не являющихся сотрудниками Sun, присоединяются к сообществу Solaris и вносят большой вклад в исправление ошибок в Open Solaris. То есть первые результаты уже видны. Формирование Java-сообщества продвигается не столь быстро, но процесс идёт. От независимых разработчиков уже поступили некоторые полезные соображения, учтённые нами при создании и усовершенствовании JDK.
Хороший пример — те дистрибутивы, которые распространяются с Linux. Пока мы не открыли Java, это были написанные на Java программы с закрытым кодом. Сейчас эти дистрибутивы стали открытыми, и пользователи Linux могут установить их. Второй хороший пример: в настоящее время во многих странах, скажем, в Бразилии, приняли законодательство, согласно которому в госсекторе можно использовать только программные средства с открытым кодом.
PCWeek/UE: В мае прошлого года была анонсирована JavaFX. Какое место занимает эта технология в ряду других подобных разработок, к примеру Microsoft SilverLight и Adobe Flex?
С. Р.: С одной стороны, мы хотим предоставить те же средства разработки пользовательского интерфейса, какие доступны в этих конкурирующих разработках. Мы предложили скриптовый язык, позволяющий очень быстро создавать пользовательский интерфейс и наполнять его информационным контентом. Достаточно буквально нескольких строк кода — и готова красивая и хорошо работающая программа. Конечно, использование Java предоставляет серьезное преимущество. Мы берём средства разработчика JavaFX и тут же получаем программу на Java — с красивым интерфейсом, да еще и кроссплатформенную. И кроссплатформенность означает, что программа будет работать на мобильном телефоне, на игровой приставке, а не только на компьютере. За этим стоит 12 лет опыта разработки виртуальных машин Java. Это значит, что технология предлагает и высокую скорость расчёта, и хорошую защиту, и надёжность. Именно поэтому разработчики полюбили JavaFX практически сразу после её появления.
PCWeek/UE: «Простые смертные», то есть не программисты, а пользователи, слышали о Java как о платформе для мобильных приложений. Недавно появилась перспективная платформа Android от Google. Как вы оцениваете это начинание, как будет взаимодействовать Android и Java?
С. Р.: Прежде всего, проект Android, который запустила Google, представляет собой то, что мы называем стеком программ для мобильных телефонов, то есть иерархию программ разного уровня. Большинство компаний, выпускающих мобильные телефоны, обеспечивают поддержку разных операционных систем. Три самые крупные — это Linux, Symbian и Windows Mobile. А Java, так сказать, «сидит» поверх этих ОС и работает и с Linux, и c Symbian. Будет ли под иерархическим набором Google работать Java? Поживем — увидим. Пока что у Google есть лишь средство преобразования Java-программ в свой внутренний формат. Поэтому разработчики как писали программы на Java, так и будут писать.
PCWeek/UE: Какими Вы как технологический евангелист видите тенденции в отрасли разработки ПО? Какие изменения, по Вашему мнению, произойдут, скажем, в ближайшие 10 лет?
С. Р.: Несколько недель тому назад я как раз делал на эту тему доклад в Бразилии. Мое убеждение: язык Java переживёт эти 10 лет и значительно усовершенствуется за этот период.
Кстати, когда появлялся очередной язык-скрипт, например, Ruby, Ruby on rails, Python, PHP, обязательно находились скептики, которые предсказывали скорую кончину Java. Но ничего подобного не случилось, Java никуда не исчезла. Слишком широк спектр платформ, на которых работают Java-программы. Дело в том, что каждый из таких скриптовых языков очень хорошо решает какие-то определённые, специфические задачи. А сила языка Java в том, что с помощью программ, написанных на нем, можно решать практически любые задачи. Поэтому мой прогноз состоит в том, что уровень интеграции между скриптовыми языками и Java значительно возрастёт. И, кроме того, я предполагаю, что Java будет использоваться для написания программ к самым разнообразным устройствам.