Archive

Author Archive

Аутентификация при помощи OpenID в вашем Web-приложении

November 3rd, 2010 No comments

OpenID – это децентрализованный механизм аутентификации. С его помощью я могу подтвердить, что являюсь владельцем URI, например http://openid.jstevenperry.com/steve, и могу его использовать для аутентификации на любом сайте, поддерживающем OpenID, таком, как Google, Slashdot или WordPress. Преимущества OpenID для конечных пользователей совершенно очевидны. Однако в процессе работы с ним я задался вопросом: не использовать ли OpenID для реализации надежной системы аутентификации для Web-приложений на Java, которые я разрабатываю для своих заказчиков?

В этой серии из двух статей демонстрируется использование библиотеки openid4java и широко известного провайдера OpenID, myOpenID, для создания системы аутентификации для Web-приложения, написанного на Java. Вы также узнаете о получении пользовательской информации при помощи расширения SReg (OpenID Simple Registration Extension).

Мы начнем с рассмотрения того, что представляет собой OpenID, как получить собственную учетную запись, а затем перейдем к вопросам аутентификации. Далее будут рассмотрены шаги, необходимые для реализации процесса аутентификации по OpenID средствами openid4java. Прочитав следующую статью, вы узнаете о создании собственного провайдера OpenID.

На протяжении всей статьи мы будем работать с Web-приложением на основе Wicket, которое было создано специально для этой серии. Ссылка на архив с исходным кодом находится в разделе Загрузка. Кроме того, обратите внимание на библиотеку openid4java (см. раздел Ресурсы).

Замечание. Эта статья посвящена использованию OpenID в Web-приложениях, написанных на Java, однако OpenID может применяться для любых приложений.

Подробности на IBM developerWorks Россия

Tags: ,

Android и iPhone – войны браузеров

October 21st, 2010 No comments

Разнообразные пользовательские приложения, работающие на платформах iPhone и Android, завоевали широкую популярность у владельцев мобильных устройств. Развитие мобильных и Web-технологий открывает новые возможности в сфере мобильных Web-приложений.

Часть 1.WebKit спешит на помощь

В рамках статьи рассматривается построение простого приложения для мониторинга сети, которое может выполняться как на браузере настольного компьютера, так и на обоих мобильных браузерах.

Часть 2. Разработка приложения для браузера на платформе iPhone или Android

В этой статье мы продолжим наше знакомство с мобильными Web-технологиями и закончим разработку Web-приложения для мониторинга сети, которое будет выполняться на браузерах iPhone и Android. Наше приложение будет использовать локальное SQL-хранилище и технологию Ajax, обеспечивающую широкую функциональность приложений для мобильных браузеров. Кроме того, приложение будет использовать популярную JavaScript-библиотеку jQuery.

Источник IBM developerWorks Россия

Tags: ,

Практические советы по подготовке к экзамену SCJP 6. Цель SCJP

October 5th, 2010 No comments

Для оценки знаний в области Java будущих и настоящих специалистов разработчиков программного обеспечения, компания Sun Microsystems предложила серию экзаменов по Java-сертификации.

Что такое SCJP? Термин SCJP (Sun Certified Java Programmer) — это сертификат, оценивающий знания программиста, прошедшего экзамен. Цель SCJP выявление и подготовка будущих специалистов.

Экзамен Sun Certified Programmer for the Java Platform. Standard Edition 6 (SCJP 6) достаточно сложный, так как оценивается огромный пласт знаний. Экзаменационные вопросы проверяют понимание основных принципов Java и практическое применение знаний экзаменуемого в области Java-технологий. Перечень вопросов включенных в экзаменационный лист требуют глубокого понимания синтаксиса и семантики языка.

В большинстве случаев сдача SCJP дает возможность применять широкий инструментарий, вдобавок к ранее известным родственным JAVA технологиям программирования.

Полученный сертификат гарантирует, что его владелец способен разрабатывать серьезные приложения как для серверной части (server side), так и для настольных систем (desktop) используя Java 6.

Источник IBM developerWorks Россия

Tags: ,

Разработка приложений для Java

September 15th, 2010 No comments

Расширения реального времени для Java™ (real-time Java) сочетают в себе легкость программирования на языке Java с обеспечением производительности, которая требуется приложениям, работающим в режиме реального времени. Эти расширения предоставляют возможности по организации среды реального времени, не поддерживаемые стандартными виртуальными машинами Java.

Часть 1. Отличительные возможности режима реального времени в Java

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

Часть 2. Повышение качества сервиса, предоставляемого приложением

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

Часть 3. Создание, валидация и анализ Java-приложений, работающих в режиме реального времени

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

Подробнее на IBM developerWorks Россия

Tags:

Корпоративные блоги, MetaWeblog и XML-RPC

August 25th, 2010 No comments

Сегодня блоги – это не просто персональные дневники; они стали идеальной платформой публикации в Интернете. Внутри предприятия блоги часто являются центральным каналом взаимодействий в управлении, разработке и маркетинге, что делает важным выбор в качестве инструмента для ведения блогов открытого программного обеспечения, соответствующего стандартным XML API. Познакомьтесь с одной из таких программ, MetaWeblog (широко применяемый API блогов), и научитесь использовать этот API для написания своих собственных инструментальных программ для поддержки блогов.

В настоящее время большинство людей хорошо знакомо с персональными блогами и блогами, спонсируемыми компаниями или отраслевыми структурами. Последние очевидно являются новыми ответвлениями традиционных корпоративных и отраслевых Web-сайтов. Их содержимое может варьироваться от неуклюже составленных анонсов товаров и рекламы до действительно полезных и глубоких исследований тем, связанных с товарами компании и будущими направлениями развития отрасли.

Подробнее на IBM developerWorks Россия

Tags: , ,

Программирование на Python

August 18th, 2010 No comments

Часть 1. Возможности языка и основы синтаксиса

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

Часть 2: Строки в Python

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

Часть 3: Списки в питоне

В этой статье будут рассмотрены вопросы, связанные с базовым типом Python — списками. Будет показано, что этот универсальный инструмент превосходит аналоги из других языков программирования. Большое количество встроенных функций позволяет решать прикладные задачи за минимально короткое время. Типовое разнообразие списков в виде стеков, очередей, кортежей, сетов позволяет охватывать широкий круг алгоритмов.

Часть 4. Словари

Cловари наряду со списками являются наиболее простыми, гибкими и мощными коллекционными типами. Словарь, как и список, является изменяемым (mutable) типом данных, хотя и содержит неизменяемые ключи и может неограниченно расти. Если вам нужна коллекция с доступом по ключу — словарь подходит для этого лучше всего. Если вам нужна коллекция для хранения произвольных объектов произвольной вложенности — словарь в этом вам поможет.

Часть 5. Модули

Импорт модулей — это основа программной архитектуры в питоне. Большие программы состоят из большого количества файлов, и объединяет их линковка во время исполнения на основе импорта. Модули структурируют программу, разбивая логику на отдельные компоненты. Код внутри одного модуля изолирован от остальных модулей, что минимизирует коллизию имен внутри программы.

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

Часть 6. Классы

Основные свойства ООП — полиморфизм, наследование, инкапсуляция. Класс — это пользовательский тип, состоящий из методов и атрибутов. Инстанс класса создается путем вызова имени класса как функции с параметрами. Объект состоит из атрибутов и методов. Атрибут — это переменная, метод — это функция. Отличия метода от функции в том, что у него есть первый параметр — self. Полиморфизм позволяет нам работать с различными типами объектов так, что нам не нужно задумываться о том, к какому типу они принадлежат.

Tags:

JiBX 1.2: Часть 2. От XML-схемы к коду Java

August 13th, 2010 No comments

JiBX — это инструмент для установления соответствия между данными XML и объектами Java. JiBX давно известен как самый быстрый и гибкий способ установления соответствия между кодом Java и XML. Однако сложность этих определений соответствия и ограниченная поддержка все более широко используемых определений XML-схемы иногда расхолаживали пользователей. К счастью, в версии JiBX 1.2 сделано многое для решения этих проблем. Из этого руководства вы узнаете об использовании новых функций JiBX 1.2 для простой генерации кода Java из существующего определения XML-схемы и для чтения/записи XML-документов в соответствии со сгенерированными определениями схемы — и все это без необходимости вдаваться в детали определений соответствия JiBX.

В первой части был описан обратный процесс преобразования кода Java в определения XML-схемы.

В второй части рассказывается о том, как с помощью JiBX 1.2 сгенерировать очищенный код благодаря лучшей интерпретации схемы и исключению ненужных классов. Вы также узнаете, как настроить сгенерированный код, чтобы он лучше отвечал вашим требованиям, в том числе используя такие настройки, которые легко исключают ненужные компоненты схемы.

Смотрите другие материалы о Java на IBM developerWorks Россия

Tags: , ,

JiBX 1.2: Часть 1. От кода Java к XML-схеме

August 4th, 2010 No comments

JiBX – это инструмент для установления соответствия между данными XML и объектами Java. JiBX давно известен как самый быстрый и гибкий способ установления соответствия между кодом Java и XML. Однако сложность этих определений соответствия и ограниченная поддержка все более широко используемых определений XML-схемы иногда расхолаживали пользователей. К счастью, в версии JiBX 1.2 многое сделано для решения этих проблем. Из этого руководства вы узнаете об использовании новых функций JiBX 1.2 для простой генерации определений XML-схемы из существующего кода Java и чтении и записи XML-документов в соответствии со сгенерированными определениями схемы – и все это без необходимости вдаваться в детали определений соответствия JiBX. Во второй части описан обратный процесс преобразования определений XML-схемы в код Java.

Это руководство проведет вас по процессу использования JiBX для генерации определений XML-схемы из кода Java. Сначала вы увидите, как на основе простой модели данных Java сгенерировать соответствующую этой модели схему с параметрами по умолчанию. Оттолкнувшись от этой платформы, вы научитесь легко применять целый ряд настроек для управления фактическими значениями, которые используют и к которым обращаются ваши классы Java, будь то обязательные или опциональные значения, используемые в XML имена и пространства имен и даже сгенерированная структура определений схемы. В процессе чтения вы увидите, как JiBX повышает ценность сгенерированных вами схем, используя ваши инвестиции в Javadocs для автоматического документирования определений схемы. Проведя работу с приведенными здесь примерами, вы сможете использовать JiBX для генерации качественных определений XML-схемы из своих собственных классов структуры данных Java.

Подробнее на IBM developerWorks Россия

Tags: , ,

MySQL & PostgreSQL

July 28th, 2010 No comments

При сравнении MySQL и PostgreSQL исторически сформировался следующий подход:

MySQL часто рассматривают как быструю базу данных, более легкую в настройке и использовании, в то время как PostgreSQL с самого начала разрабатывалась как база с большим числом настроек и более точным соответствием стандарту.

Часть 1: Сравнительный анализ.
MySQL и PostgreSQL – две наиболее популярные open-source базы данных в мире. Каждая база имеет свои особенности и отличия. Если вам нужно быстрое хранилище для простых запросов с минимальной настройкой, я бы порекомендовал MySQL. Если вам нужно надежное хранилище для большого объема данных с возможностью расширения, репликации, полностью соответствующее современным стандартам языка SQL, я бы предложил использовать PostgreSQL.

Часть 2: Конфигурация MySQL.

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

Часть 3: Конфигурация PostgreSQL.

Конфигурация, идущая по умолчанию, в большинстве случаев не рассчитана на максимальное использование ресурсов – это справедливо как для PostgreSQL, так и для MySQL. Пути по умолчанию для каталогов можно изменить непосредственно при сборке из исходников. Некоторые параметры постгресу можно передавать из командной строки. Так же можно определить переменную окружения PGOPTIONS, а значения некоторых переменных можно изменить прямо в процессе выполнения запросов.

Часть 4: Масштабирование MySQL.

Проблемы масштабирования возникают не сразу – они появляются внезапно и в определенный момент. Если вы к этому не готовы, то вас ждут большие проблемы. Компания, которая не в состоянии масштабировать свои приложения, терпит крах. Причины могут иметь свои корни как в железе, так и в софте. База данных, разнесенная по нескольким серверам и имеющая большую пользовательскую нишу, должна иметь более высокие требования по готовности для большего числа запросов.

Часть 5: Масштабирование PostgreSQL.

В предыдущей статье мы обсудили вопросы масштабирования MySQL. Рассмотрим эти моменты для сервера баз данных PostgreSQL.

Часть 6: Репликация MySQL.

Реализация репликаций в MySQL имеет ряд недостатков, над которыми активно ведется работа. Google выпустил несколько патчей, улучшающих возможности репликации. Ведется работа над multimaster и построчной репликациями, которые появятся в будущих версиях. Имеются планы по автоматической конфигурации слэйвов. Все это вселяет уверенность в том, что одна из самых востребованных на сегодняшний день open-source баз данных MySQL станет еще продуктивнее, еще быстрее, еще надежнее.

Tags: ,

Защита JavaBeans в приложениях JSF

July 21st, 2010 No comments

Эта серия из пяти статей знакомит с системой безопасности Acegi и показывает, как использовать Acegi для обеспечения безопасности корпоративных Java-приложений. Эта заключительная статья продолжает обсуждение использования Acegi для обеспечения безопасности приложений JSF. В части 4 я показал, как можно обеспечить безопасность страницы JavaServer Faces (JSF) с использованием Acegi без написания какого-либо программного кода на Java. Я также подробно разобрал события, которые происходят при развертывании приложения JSF-Acegi и при обращении пользователя к нему. В этот раз я сосредоточусь на методах обеспечения безопасности JavaBeans в приложениях JSF.

Сначала я покажу, что концепции безопасности bean-компонентов, которые я описывал в части 3 этой серии, могут применяться и к приложениям JSF, но не идеальны для них. Затем я продемонстрирую пару новых методов, особенно удобных для обеспечения безопасности JavaBeans, используемых в приложениях JSF. Я закончу обсуждение представлением четырехступенчатой стратегии, которая позволяет использовать Acegi для обеспечения безопасности bean-компонентов в приложениях JSF без написания какой-либо защитной программы на Java.


Подробнее на IBM developerWorks Россия

Tags: ,