Heroku поддерживает связь с Ruby для обеспечения масштабируемости приложений Java

Heroku представляет собой разновидность PaaS, которая привносит существенные новшества в методы разработки на языке Java™— отчасти благодаря тому, что его родным языком (и философией) является Ruby. Heroku объединяет свойственный Ruby гибкий и непринужденный подход к разработке приложений с реализованной в Git интеллектуальной распределенной моделью развертывания, открывая доступ к ним для разработчиков на языке Java через знакомые библиотеки Java. В этом выпуске Java development 2.0 Эндрю Гловер создает новую инкарнацию своего приложения для слежения за местоположением мобильных устройств с помощью Apache Wink, Jetty и Maven; а затем развертывает его в Heroku, используя высокоэффективную масштабируемую инфраструктуру Git.

Разработка Ruby-приложения MapReduce для Hadoop

 

Теперь, когда вы установили, настроили и поработали с Hadoop в различных (одноузловой и многоузловой) конфигурациях, можно перейти к созданию приложений внутри инфраструктуры Hadoop. В заключительной части серии статей о Hadoop будут рассмотрены API-интерфейсы и потоки данных Hadoop. Кроме того, будет продемонстрировано их использование на примере небольших приложений map и reduce.

Создание, реализация и установка приложения для Facebook в системе Google App Engine

Отсутствие поддержки Java™ на платформе Facebook не должно быть препятствием для создания приложений для Facebook на языке Java. Эта статья показывает, как создать приложение для Facebook, реализовать его на Java и установить в облаке Google App Engine.

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

 

Шаблоны проектирования представляют один из способов решения проблем, но если вы в основном используете объектно-ориентированные языки, то в один прекрасный момент можете начать думать только в терминах шаблонов проектирования. В этой статье из цикла "Функциональное мышление" Нил Форд демонстрирует решения для стандартной проблемы несовместимости интерфейсов, основанные на традиционных шаблонах программирования, метапрограммировании и композиции функций. У каждого подхода есть свои преимущества и недостатки, но мышление в терминах "дизайна" решений помогает рассмотреть проблемы с других точек зрения.

Шаблон Интерпретатор и расширение языка

Шаблон Интерпретатор (Interpreter) из каталога книги Design Patterns позволяет расширять язык за счет создания новых языков на основе уже имеющегося. Большинство функциональных языков программирования позволяют расширять себя различными способами, например, с помощью перегрузки операторов и сопоставления шаблонов. Хотя в Java™ поддержка данных приемов отсутствует, языки следующего поколения, основанные на JVM, будут обладать подобными возможностями, которые будут отличаться особенностями реализации. В этой статье Нил Форд исследует, как Groovy, Scala и Clojure обеспечивают реализацию идеи, лежащей в основе шаблона проектирования Интерпретатор, за счет функциональных расширений, которые в принципе отсутствуют в Java.

Добавление стильных инструментов навигации в приложение для Android-устройств

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

Обзор мобильных устройств Android и создание своего первого приложения

У мобильных технологий многообещающая перспектива, и Android представляет собой жизнеспособную и интересную для разработчиков платформу. Этот новый цикл статей начинается с введения в Android, специально предназначенного для тех Java™-программистов, которые только знакомятся с мобильными технологиями. Читатель узнает о трехуровневой системе многоверсионности Android (и поймет, почему это важно), а затем сможет настроить свою собственную среду разработки и создать свое первое Android-приложение.

Применение шифрования с закрытым ключом для защиты облачных данных

Защита данных вызывает серьезные опасения у организаций, рассматривающих возможность применения облачных вычислений, хотя во многих случаях такие опасения излишни. В этом выпуске Java development 2.0: Вторая волна разработки Java-приложений вы узнаете, как использовать шифрование с закрытым ключом и расширенный стандарт шифрования для защиты конфиденциальных данных при перенесении их в облако. Кроме того, вы вкратце познакомитесь со стратегией шифрования, играющей важную роль в максимальном повышении эффективности условного поиска в распределенных облачных хранилищах.

Как быстро превратить Web-приложение в облачное

Вы построили Web-приложение для одного заказчика, но хотите, чтобы оно эффективно работало в облачной среде. Как преобразовать обычное приложение в полноценное мультитенантное облачное SaaS-приложение? Автор на конкретном примере демонстрирует условия и изменения, необходимые для переноса Web-приложения в облако, и показывает, как это сделать. Затем, в качестве бонуса, он предлагает программное обеспечение, разработанное его компанией, которое позволяет применить подход «плагина» для достижения мультитенантности.

Приступим к изучению методов совершенствования объекта Person, начиная со следующих:

Сериализация это процесс сохранения состояния объекта в последовательность байт; десериализация это процесс восстановления объекта, из этих байт. Java Serialization API предоставляет стандартный механизм для создания сериализуемых объектов. В этой статье вы увидите как сериализовать объект, и почему сериализация иногда необходима. Вы узнаете об алгоритме сериализации используемом в Java и увидите пример, который иллюстрирует сериализованый формат объекта. В конце у вас должно сложиться чёткое представление о том, как работает алгоритм сериализации, а так же каким образом представлены части объекта в сериализованном виде.

«Пользователи действительно реагируют на скорость» - Марисса Майер, вице-президент Google раздела исследований и пользовательского опыта.
Мы будем объяснять, почему эта цитата верна в этой главе. Ее ключевая мысль для публики на саммите Web 2. - "медленно и осторожно не выиграть гонку". Сегодня люди хотят быстро и яростно. Не убедил? Хорошо, давайте посмотрим на некоторые аргументы:

  • 500мс потери - потерять 20 процентов трафика в Google (это может быть, поэтому Есть только десять результатов на странице в исследовании).
  • Увеличение задержки на 100 мс стоит 1 процента от продаж на Amazon.
  • Сокращение на 25 процентов веса страницы - выиграть 25 процентов пользователей в среднесрочной перспективе для Google.

Сегодня поговорим о том, как создаются технологии. Очень интересно не только то, что получается в итоге, а то, почему были приняты те или иные решения, как эти решения влияли на развитие проекта,  что делалось и почему, как развивался проект. А итогом – что имеем сейчас. Для чего это нужно? Правильно, либо понять, что тот путь был оптимальным и пойти по нему, либо сразу начать использовать уже найденные технологии, либо пойти по альтернативному пути. Мы ведь уже знаем, с какими трудностям нам придется столкнуться.

В этом отношении весьма интересны решения, которые выдерживают колоссальные нагрузки, но при этом нередко используют доступные технологии и бесплатные инструменты, к тому же они нередко предлагают свой код к ознакомлению. Встречайте, facebook. facebook использует unix-платформу, php, MySQL, кэширование, то есть все те решения, которые используются при разработке практически любого самого простого сайта. Как они со всем справляются?

Мы начинаем цикл статей, посвященный архитектуре. Забежим вперед и дадим анонс. В следующий раз мы поговорим о другом популярном решении, которое сразу создавалось как высокотехнологичное (java, oracle, resin), посмотрим, получилось ли избежать проблем?

Архитектура технологии EJB

Чаще всего системы строятся следующим образом. Есть клиентское приложение, которое соединяется с сервером БД и посредством SQL запросов манипулирует данными, отображаемыми в клиентском GUI интерфейсе. Клиентская часть таких систем обычно очень сложная и на сервер баз данных возлагается, в основном задача, хранения и поддержки целостности данных. Иногда базы данных поддерживают хранимые процедуры, что позволяет снизить сетевой трафик между сервером и клиентом. Такая система изображена на рис. 1.

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

Условная компиляция достаточно полезная вещь, с этим, наверное, никто спорить не будет. Иметь возможность собирать разные версии приложения без изменений исходных текстов очень удобно. Условная компиляция есть в С/С++, в VB и еще наверно не в одном языке программирования. Но ее нет почему-то в Java. Может этому есть разумное объяснение, а может и нет. В любом случае лучше иметь этот инструмент в языке, а уж разработчики сами решат, пользоваться им или нет.

Подключение Java-программы к реляционной СУБД с помощью JDBC выполняется в три этапа:
  1. Установка связи между Java-программой и диспетчером базы данных.
  2. Передача SQL-команды в базу данных с помощью объекта Statement.
  3. Чтение полученных результатов из базы данных и использование их в программе.

 Несколько полезных классов Java позволят упростить процесс отладки.

Первые Java программы страдали бедностью интерфейсов. Более того, создание интерфейса, который запускался бы на любой платформе, часто было сложной задачей. Однако библиотека Swing изменила все. Благодаря Swing ваши приложения могут прекрасно выглядеть и прекрасно работать и под Windows, и под Linux, и на любой другой платформе.

Вверх