Кирилл Сухов
По следам Sun Tech Days: Java FX
JavaFX – платформа, представленая Sun Microsystems в мае 2007 года. Она предназначена для разработки и исполнения RIA (Rich Internet Applications)-приложений. Один из её компонентов – JavaFX Script (https://openjfx.dev.java.net) – скриптовый язык, позволяющий создавать приложения на основе библиотеки Swing и интерфейсов программирования приложений Java 2D, которые могут конкурировать с технологиями Adobe Flash и MS Silverlight. Его плюсом является распространение под открытой лицензией (GNU GPL).
В первый день конференции (обзор конференции Sun Tech Days 2008 см. на стр. 4) Рагхаван Шринвас (Raghavan «Rags» Srinivas, Java Technology Evangelist, Sun Microsystems) во время своего доклада показал скорость и эффективность разработки на данной платформе, продемонстрировав возможности JavaFX Script: ООП, поддержка статических типов и интерфейсов, декларативный синтаксис и автоматическое связывание данных. Язык позволяет вызывать существующий Java-код, имеет библиотеку. JavaFX включает возможность работы с SVG, позволяет (в отличие, скажем, от Java 2D) создавать «композиции» и вообще графические интерфейсы любой мыслимой сложности.
Результат сравнения впечатляет:
// Используется библиотека Swingimport javax.swing.*;public class HelloWorldSwing { public static void main(String[] args) { JFrame frame = new JFrame("HelloWorldSwing"); final JLabel label = new JLabel("Hello World"); frame.getContentPane().add(label); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); }}// Используется JavaFX Scriptimport javafx.ui.*; Frame { title: "Hello World JavaFX" width: 200 height: 50 content: Label { text: "Hello World" } visible: true }
Впрочем, как и в любом примере подобного рода, выше продемонстрированы лишь самые примитивные возможности языка. Поэтому рекомендую ознакомиться с докладом целиком. Как и остальные материалы конференции, его презентация доступна на сайте компании Sun (http://developers.sun.ru/images/stories/techdays/talks/JavaFX_v2.pdf). Для русскоязычных разработчиков имеется Wiki-сервер, по адресу: http://ru.jfx.wikia.com.
Другая существенная составляющая платформы, технология JavaFX Mobile, впервые представленная на конференции JavaOne в мае прошлого года, была освещена 4 апреля в докладе Павла Петрошенко и Алексея Алексеева.
Sun и базы данных
В январе этого года компания Sun Microsystems объявила о покупке компании MySQL AB, разработчика одной из самых популярных СУБД MySQL (http://www.sun.com/aboutsun/pr/2008-01/sunflash.20080116.1.xml). Cообщество пользователей MySQL было обеспокоено судьбой компании, причем это беспокойство касалось как лицензионной политики, так и технологическими перспективами развития сервера.
На Sun Tech Days сотрудники MySQL AB внесли ясность в эти вопросы и успокоили публику, пояснив, что волнения напрасны, а перемены обязательно будут, но только в сторону, благоприятную для пользователей и разработчиков.
В своём докладе «Java и базы данных: Java DB и MySQL» Саймон Риттер (Simon Ritter, Technology Evangelist, Sun Microsystems), подробно рассмотрел все достоинства MySQL, а также новые возможности, появившиеся в версии 5.1.
Среди них:
- Разделение таблиц (Partitioning). Одна таблица может разбиваться на части, которые хранятся в разных местах и даже на различных физических носителях. При этом для пользователя всё будет абсолютно прозрачно – он сможет по-прежнему работать с единой таблицей.
- Строчная репликация (Row-based Replication). Возможность использования для репликации механизма записи событий в двоичный лог информацию только о реально изменённых строках таблицы.
- Новый API для плагинов. Теперь можно создавать подключаемые без перезапуска сервера плагины. Первая разработка в этом направлении – плагин для полнотекстового парсинга с поддержкой пользовательских фильтров, который может использоваться для организации поиска, например, в документах PDF.
- Поддержка Xpath. Давно обещанная возможность появилась вместе с набором новых функций по обработке XML.
- Планировщик событий (Event Scheduler). Возможность через новый объект – событие (event) – задать набор SQL-операторов, выполняющихся по расписанию (для подобной задачи прежде приходилось запускать клиента с помощью crontab).
- Новая утилита mysqlslap – эмулятор клиента, предназначенный для оценки производительности и поиска узких мест.
- Connector/J 5.1 – новое издание официального драйвера JBDC для MySQL с поддержкой типов JDBC-4.0 NCHAR, NVARCHAR и NCLOB, XML и ряда полезных возможностей для быстрой разработки.
В целом все эти возможности вполне достойны увеличения первой цифры номера версии, но дело в том, что MySQL 6 (с новым механизмом хранилища данных Falcon) уже существует и находится в стадии альфа-тестирования.
Ещё один продукт Sun, класса DB, JavaDB, является версией реляционной СУБД Apache Derby, написанной на Java. Особо подчёркивается, что Sun не рассматривает JavaDB как ответвление от проекта Apache Derby – это просто другое наименование той же системы.
JavaDB отличает небольшой размер (2 Мб в jar-архиве), она включена в состав JavaEE, JavaSE и CDC (входит в JDK). Сервер поддерживает стандарты SQL92/99/2003 и JDBC 4.0, может быть применён в качестве многопользовательской, встроенной или автономной СУБД.
Ключевой особенностью применения JavaDB является возможность написания хранимых процедур и функций непосредственно на языке Java, причём с использованием внешнего пространства имён.
Sun не позиционируют MySQL и JavaDB как конкурентные технологии, оставляя за первой клиент-серверную архитектуру, возможность организации кластеров и терабайтные объёмы данных. Для JavaDB декларируются встроенные решения или «приложения уровня отдела» (Departmental level applications), оперирующие данными в объеме нескольких гигабайт.