Архив

Архив раздела ‘Java — язык и технологии’

Helma — и снова серверный JavaScript.

25 июня 2008 Comments off

Приветствуем наших  читателей. В последнее время столько новостей накопилось, смотря на которые я говорю себе - вот про это стоит написать в блоге, что порой не хватает не только рук и времени, но и сил придумать текст. Поэтому я просто открываю в браузере все темы и выжидаю порой несколько дней - те темы, которые актуальны и через такой промежуток времени, действительно заслуживают вашего внимания. Сегодня делая выбор между новой версией ezComponents (при всей моей любви к нему), моим небольшим исследованием компонента поиска в Zend Framework и обновлениями Adobe AIR я выбрал совершенно другую тему - о всех темах выше уже успели написать другие авторы, хотя про поисковый компонент вы ещё прочитаете чуть позже, а сегодня читателей блога ждёт эксклюзивный материал про малоизвестную но интересную технологию и платформу.

Немного ранее я уже рассказывал о разработке компании Aptana - серверной платформы Jaxer, которая позволяет развёртывать приложения на JavaScript на стороне сервера, и объединять таким образом код клиентской и серверной стороны. Конечно, есть много спорностей в таком подходе, как и вообще применимости такого языка как JavaScript для разработки полноценных веб-приложений на сервере, но это не останавливает разработчиков - несмотря на ограничения, вполне можно разрабатывать интереснейшие приложения. Но вот уникальна ли эта платформа? Теперь нет. Читать далее...

Первая альфа-версия ezComponents 2008.1

Приветствуем наших читателей. Новый релиз РНР, 5.2.6 прошел достаточно незамеченным, в частности, наверное, потому, что несет в себе только исправления ошибок и некоторые обновления включенных в состав компонент. Люди же привыкли ждать более существенных обновлений, о которых можно поговорить, а таким обещает быть следующий, 5.3 дистрибутив. Ну а у нас сегодня есть другой повод для разговора и обсуждения - выход наконец первой альфа-версии набора компонент ezComponents 2008.1. Это пока только первая пробная версия, но ее уже стоит загрузить и начать изучать. А вот что там изменилось и добавилось - об этом сейчас и поговорим. Официальный ChangeLog здесь.

Читать далее...

Тестирование веб-приложений — эмулятор интернет-канала Sloppy.

Приветствуем наших читателей. Мы ещё, насколько мне помнится, ни разу не касались тематики тестирования веб-приложений. А ведь это полноценный и большой, востребованный рынок, на котором множество инструментария и компаний. Я когда-то раньше, работая в он-лайн издании Hostinfo.ru писал несколько статей на эту тему, думаю, они актуальны и сейчас, поэтому далее я буду иногда делать обзоры и ПО, связанного с тестированием (различного вида) веб-проектов. Сегодня же мы поговорим об очень простой утилите, но тем не менее которая может стать вашим постоянным и надёжным другом и помощником.

Из всех видов тестирования, самым, по моему мнению, востребованным и распространённым, является тестирование работы системы у пользователей с различным каналом доступа. Ну, может быть, кроме теста совместимости в разных браузерах. И так, нам почти в каждом проекте нужно или очень желательно посмотреть, как люди с разной скоростью подключения будут видеть наш проект. Особенно это касается веб-приложений - от этого иногда зависит вообще работоспособность проекта, в частности, когда загружаются большие AJAX-библиотеки и проект часто взаимодействует с сервером. Вот как раз для таких случаев есть проект Sloppy.

Читать далее...

ExtJS 2.1, превью-версия ExtJS 3.0, Ext GWT — у меня праздник, а у Вас?

logo1.gifПриветствуем наших читателей. Сегодняшний материал у нас совершенно уникальный и очень ожидаемый. У нас несколько очень важных новостей, которыми я очень спешу с вами поделиться. И так, начнем по порядку.

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

Изменениям подверглась и лицензионная политика в отношении библиотеки и других разработок компании Ext LLC. Если раньше продукты были доступны под двумя лицензиями, одна из которых, открытая, была частично модифицированной и совместимой с LGPL, то теперь компания отказалась от собственной лицензии и перевела распространение продуктов под стандартную лицензию GPL v3. Я не берусь глубоко анализировать этот шаг и, в частности, его последствия, но все же, GPL v3 это прогрессивная лицензия, ее используют или планируют использовать ряд крупнейших проектов, она поддерживается фондами и за ней стоят годы труда квалифицированных юристов и просто общественность, поэтому такой шаг следует расценивать как положительный и всячески его приветствовать. Конечно же, вопрос об правомерности использования библиотеки в каждом конкретном случае следует решать индивидуально и по-разному, но от такого шага ExtJS никак не стал менее открытым или сложнее в использовании. Читать далее...

#5. Интересное с мира SourceForge.net: распределенная система кеша ehcache для приложений любого уровня

ehcache_logo.gifПриветствую вас, уважаемые читатели! Сначала хотел бы принести извинения за столь длинный перерыв в ведении блога, это было связано с некоторыми сложностями и большой занятостью , но я очень постараюсь исправиться и далее писать постоянно. Спасибо всем, кто остался нашими верными читателями!

Сегодня я хотел бы рассказать об одном интересном проекте, который вам пригодится при проектировании и реализации сложных веб-приложений на платформе Java. Речь идет о ehcache - универсальной системе распределенного кеширования для Java приложений и сервлетов. Это необычно небольшое приложение (честно, такого уровня системы, размером в несколько сотен Кб это редкость, при этом высокого качества), которое реализует кеш как динамический (в оперативной памяти), так и дисковый кеш, причем изначально спроектированное для работы с кешами большого обьема (порядка гигабайтов) и в распределенных системах. Читать далее...

#4. Интересное с мира SourceForge.net:: Hyperic HQ Enterprise Monitoring — система мониторинга корпоративного уровня

19 февраля 2008 2 комментария

logo.gifПриветствуем наших читателей, очередной выпуск "вкусностей" из мира открытых проектов, размещённых на сайте SourceForge.net. На этот раз я обратил внимание на солидную и серьёзную разработку, претендующую на корпоративный уровень применения, что, конечно, не лишает её привлекательности и в других сегментах, где требуются схожие возможности.

Речь идёт о системе мониторинга Hyperic HQ, которая предназначена для обеспечения постоянного и полного контроля за всей ИТ-инфраструктурой. Она может применяться и в дата-центрах, и хостинговых компаниях, для слежения за собственными серверами внутри компании, для стартапов где нужна и важна максимальная доступность и оперативное реагирование на возникшие проблемы. Читать далее...

Технологии инакомыслия: исследуем работу с СУБД через JDBC не выходя из РНР

php_jdbc.jpgПриветствуем наших читателей. Сегодня у нас нетривиальная статья-исследование. Честно говоря,  я ещё сам не знаю, выйдет ли из него что-то стоящее и рабочее, но попытаться стоит. Спросите почему? Сейчас. Начнём с основных понятий. И так, JDBC - это, если расшифровать, Java Database Connectivity, то есть, специальный API для Java, который позволяет унифицировать доступ к различным базам данных, вне зависимости от типа СУБД. Концепция JDBC основана на понятии "драйвера", который может загружаться в во время выполнения и отвечает за унификацию доступа к СУБД. Этот API входит в стандартную поставку Java (в пакете java.sql). Расшифровывать PHP мы не будем, надеюсь всем понятно. Но открыт вопрос "зачем?". Если вы постоянный читатель нашего блога, вы могли заметить несколько статей о различных JDBC драйверах, позволяющих организовать пулы коннектов, кластеризацию и отказоустойчивость соединения с базой данных, таким образом организовать высокопроизводительный интерфейс для доступа к СУБД, причём, не привязываясь к определённым особенностям базы данных. Но вот для РНР такого, к сожалению нет, из встроенных интерфейсов доступа есть только mysqli и PDO, теперь ещё появился вариант mysqlnd (это то, что касается СУБД MySQL). Таким образом, для построения отказоустойчивой архитектуры на базе РНР и MySQL необходимо применять сторонние решение - систему кластеризации MySQL, MySQL Proxy или ещё что-то. Но ведь наши друзья-разработчики из мира Java могут иметь это все (в первую очередь, пул коннектов и кластеризацию) прямо "out of the box", применяя просто нужный JDBC драйвер (например, описанный нами HA-JDBC). Непорядок, сказал себе я вчера, и пошёл исследовать тему взаимодействия приложений на РНР и баз данных через JDBC.

Оказалось, в этой области есть достаточно много интересных разработок, так что исследование обещает быть интереснейшим.
Читать далее...

HA-JDBC — строим отказоустойчивый кластер на основе Java и драйвера JDBC

21 января 2008 2 комментария

ha-jdbc.pngПриветствуем наших читателей. Язык Java достаточно популярный, в частности, в корпоративной среде, хотя, конечно, там с ним конкурирует технология .NET/С# от Microsoft. Очень много, на мой взгляд, для популяризации Java, в частности, применительно к веб-сервисам и приложениям, сделала организация Apache Fundation, поддерживая целый стек технологий на основе Apache Tomcat и другие разработки (Ant, Maven, Geronimo). Но это нас заведёт немного не туда. Сегодня я хотел рассказать вам об интересном продукте, помогающем создавать высоконагруженные проекты, строить кластерную архитектуру баз данных и обеспечивать отказоустойчивый уровень абстракции для доступа к СУБД. Все это работает на основе стандартного драйвера JDBC, предназначенного для унификации доступа к различным СУБД из Java приложений. Кстати, одним из типичных применений этого пакета является совместно с сервером Apache Tomcat предоставление доступа к кластеру баз данных для веб-приложений.

Проект имеет название HA-JDBC, которое, наверное, даже не стоит расшифровывать - и так ясно. Мы можем использовать любую СУБД, которая поддерживает доступ через JDBC, например, MySQL (по сути, получится некий аналог MySQL Proxy), PostgreSQL и другие (включая достаточно экзотические, вроде Apache Derby, Firebird, Ingres и другие, по сути любую стандартную СУБД, поддерживающую SQL 92). Высокая доступность означает, что в конфигурации кластера может произойти сбой или полное отключение любого узла, но выполнение текущей транзакции не будет прервано. Эта возможность является одной из базовой для проекта, но для обеспечения других (например, выстраивание пула коннектов к базе) необходимо дополнительное ПО. Читать далее...

#1. Интересное с мира SourceForge.net: генерируем штрих-коды при помощи Barcode4J

16 ноября 2007 Comments off

barcode4j-logo.gifПервым обзором из этой рубрики будет проект Barcode4J. Это приложение, написанное на Java, которое позволяет генерировать различные типы штрих-кодов (1D - 9 различных стандартов, и 2D - два стандарта), выводить их в различных форматах - SVG, EPS, BMP или отрисовывать через интерфейс Java2D. Разработчик может легко добавить и свои собственные форматы представления штрих-кода, либо встроить генератор прямо в свое приложение, например, используя инфраструктуру от Apache (имеется ввиду, процессор Apache FOP (Formatting Objects Processor), а также развернуть его как веб-приложение с использованием сервера Tomсat.

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

Синхронизация удалённых баз данных через интернет: Java, MySQL или Oracle, JDBC и SymmetricDS

16 ноября 2007 4 комментария

symmetric-chrome.pngПриветствую наших читателей. Если вы разрабатываете какую-то распределённую систему, или просто так сложилось, что существуют несколько баз данных (серверов), которые разнесены в пространстве, и между которыми нужно, с одной стороны, обеспечить синхронизацию данных, с другой - каналы связи не позволяют настроить полноценную репликацию, а над данными ещё бы хотелось и проводить какие-то несложные операции во время синхронизации, фильтровать их, да и избежать перегрузки как серверов, так и серверов, в случае если их несколько десятков или даже сотен. Вы считаете, что это редкая проблема и её только в NASA решают? Ну, к примеру, системы распределённых платёжных или торговых терминалов - их вполне в развитой сети может быть несколько тысяч, и нужно постоянно синхронизировать с одним или несколькими основными серверами, причём это вполне может быть и многоуровневая архитектура. А ещё хочется, чтобы такое решение было простое, бесплатное, то есть open-sourсe, и работало на любой платформе... Не спешите одёргивать себя от таких мыслей, все это вполне реально. Как? Используя SymmetricDS.
Читать далее...

Developers.org.ua