
java / java_about_IBM-developerWorks
.pdf
02.09.13 |
IBM developerWorks Россия: Введениев программированиенаJava |
|
|
IBM |
|
|
|
|
Русский |
Anton.M |
Техническиематериалы ПробноеПО Сообщество
Введение в программирование на Java
Что такое "технологии Java"?
Зачем следует изучать Java?
Какие технологии являются основными компонентами платформы Java?
Технологии Java и создание Web-приложений
Технологии Java, SOA и Web-сервисы
Какое отношение имеет Java к динамическим языкам и функциональному программированию?
Java и создание свободного программного обеспечения
Как развивать навыки программирования на Java?
Продукты и технологии IBM для Java-разработчиков
В разделе Java на сайте developerWorks содержатся сотни статей, руководств, советов и материалов, написанных представителями сообщества Java, которые помогут вам максимально эффективно использовать платформу Java и сопутствующие технологии при разработке приложений. Однако начинающим разработчикам, которые только приступают к изучению Java, может быть трудно сориентироваться в огромном объеме ресурсов, доступных в Интернете. Поэтому мы создали эту страницу, на которой представлен обзор базовых Java-технологий в общем контексте возможностей этого языка. Здесь вы найдете ссылки на материалы для дальнейшего изучения Java, например, статьи developerWorks для начинающих и другие образовательные ресурсы, а также ссылки для загрузки продуктов IBM.
Вы - начинающий Java-разработчик? На этой странице вы найдете обзор основных Java™-технологий и их места в разработке современного программного обеспечения. Эта страница, содержащая ссылки на вводные статьи developerWorks по этой и смежным темам, другие образовательные материалы, а также на материалы для загрузки и продукты IBM, является превосходной отправной точкой для изучения Java.
Что такое "технологии Java"?
Java - это одновременно язык программирования и платформа.
Во-первых, Java представляет собой высокоуровневый объектно-ориентированный язык программирования. При компиляции, которая выполняется один раз во время сборки приложения, кодна Java преобразуется в кодна промежуточном языке (байт-код). В свою очередь, байт-коданализируется и выполняется (интерпретируется) виртуальной машиной Java (JVM), которая играет роль транслятора между языком Java и аппаратным обеспечением с операционной системой. Все реализации Java должны эмулировать JVM, чтобы создаваемые приложения могли выполняться на любой системе, включающей виртуальную машину Java.
Во-вторых, Java - это программная платформа, версии которой поставляются для различных аппаратных систем. Существуют три версии Java (см. раздел Редакции платформы Java ниже). Платформа включает в себя JVM и интерфейс прикладного программирования на Java (API), представляющий собой обширный набор готовых программных компонентов (классов), облегчающих разработку и развертывание апплетов и приложений. API Java охватывает многие аспекты разработки на Java, в том числе манипулирование базовыми объектами, сетевое программирование, обеспечение безопасности, генерацию XML и Web-сервисы. API организован в виде набора библиотек, именуемых пакетами, которые содержат классы и интерфейсы для решения связанных друг с другом задач.
В дополнение к API каждая полноценная реализация платформы Java должна включать следующее:
Инструментарий разработчика для компиляции, запуска, мониторинга, отладки и документирования приложений.
Стандартные механизмы развертывания приложений в пользовательской среде.
Инструментарии, позволяющие создавать сложные графические интерфейсы пользователей.
Интеграционные библиотеки для программного доступа к базам данных и удаленного манипулирования объектами.
JVM также является проверенной средой для выполнения приложений, написанных на отличных от Java языках. В частности, Groovy, Scala и специализированные реализации Ruby и Python предоставляют разработчикам возможность исполнения на JVM динамических и функциональных языков (более подробная информация приведена в разделе Какое отношение имеет Java к динамическим языкам и функциональному программированию?).
Язык Java был разработан компанией Sun Microsystems. В настоящее время развитие Java-технологий, в том числе работа над спецификациями, эталонными реализациями и тестами совместимости, осуществляется подконтролем открытой некоммерческой организации JCP (Java Community Process), которая объединяет Java-разработчиков и держателей лицензий. В 2007 г. Sun выпустила свободную версию Java, включающую основные компоненты платформы, подлицензией GNU GPL v2
www.ibm.com/developerworks/ru/java/newto/#ЗачемZ42 |
1/12 |
02.09.13 |
IBM developerWorks Россия: Введениев программированиенаJava |
(GPLv2). Подробнее об этой версии можно прочитать в разделе Java и разработка свободного программного обеспечения.
Зачем следует изучать Java?
Основное преимущество языка Java выражается в переносимости Java-приложений, т.е. способности работать на любых аппаратных платформах и операционных системах, поскольку все JVM, независимо от того, на какой платформе они работают, способны исполнять один и тот же байт-код.
Язык и платформа Java обладают великолепной масштабируемостью. Вы можете легко создавать приложения для устройств с ограниченными ресурсами, адаптируя программное обеспечение, изначально написанное для настольных компьютеров. При этом язык Java идеально подходит и для разработки серверных Web-приложений, при помощи которых пользователь может получать доступ к вычислительным ресурсам в Web. Возможность безопасного выполнения кода, загруженного через сеть, была изначально заложена в конструкцию Java, поэтому этот язык обеспечивает высокий уровень безопасности при работе через Интернет. Web-приложения работают в средах выполнения, называемых Web-контейнерами, которые предоставляют множество удобных сервисов, в том числе диспетчеризацию запросов, обеспечение безопасности и параллельной работы, управление жизненным циклом, а также доступ к таким API, как управление именами, транзакциями и электронная почта. На Java написан рядсерверов приложений, выполняющих функции Web-контейнеров для других компонентов Java, XML и Web-сервисов, которые взаимодействуют с базами данных и динамически формируют содержимое Web-страниц. Подобные серверы также предоставляют среду для развертывания корпоративных приложений и средства для управления транзакциями, кластеризации, обеспечения безопасности, связности и необходимого уровня доступности, производительности и масштабируемости.
Поддерживая применение открытых стандартов в корпоративных приложениях, Java открывает широкие возможности для применения Web-сервисов на основе XML, помогающих бизнес-партнерам обмениваться информационными ресурсами и приложениями (см. раздел Java, архитектура SOA и Web-сервисы). Java лежит в основе многих продуктов и услуг технического консалтинга IBM (см. раздел Продукты и технологии IBM для Java-разработчиков), а также играет ключевую роль для ряда важнейших направлений деятельности компании.
Ознакомьтесь с подходом к сервис-ориентированнойархитектуре (SOA), принятым в IBM, и узнайте, как SOA помогает создавать гетерогенные приложения, функциональность которых обеспечивается из разных источников как внутри, так и за пределами предприятия, тем самым поддерживая горизонтальные бизнес-процессы. IBM предоставляет рядвводных материалов по SOA (EN), ориентированных на бизнес-пользователей и ИТ-специалистов, которые помогут вам начать использовать эту технологию.
Управление бизнес-процессамина основе SOA (EN) - это предлагаемый IBM компонентный подход, предоставляющий весь спектр возможностей для проведения стратегических изменений. Предоставляемые решения базируются на гибком, расширяемом, основанном на открытых стандартах программном обеспечении (в том числе Java) и аппаратной инфраструктуре.
Project Zero - это инкубационный проект IBM, основной задачей которого является создание приложений Web 2.0 с архитектурой SOA по методикам Agile-разработки.
Редакцииплатформы Java
Существуют три редакции платформы Java, позволяющие разработчикам приложений, поставщикам услуг и производителям аппаратного обеспечения создавать решения, отвечающих требованиям конкретных групп пользователей.
Java SE (Java Platform, Standard Edition). Используя Java SE, вы можете создавать и развертывать Java-приложения для настольных компьютеров и серверов, а также разрабатывать встроенное программное обеспечение и программы для систем реального времени. Редакция Java SE включает классы, необходимые для создания Web-сервисов, и базовые компоненты Java EE (Java Platform, Enterprise Edition). Текущей версией платформы Java SE является Java SE 6, также известная как "Мустанг". При этом многие разработчики по-прежнему используют Java SE 5 (Java 5.0, или "Тигр").
Прекрасный обзор возможностей Java SE 5 приведен в статьях колонки Приручение Тигра (EN). Большая часть аспектов программирования для платформы Java SE 5, для которой были созданы многие существующие приложения, по-прежнему актуальны и для Java SE 6.
В статье Мониторинг и диагностика производительности в Java SE 6 описываются новые возможности Java SE 6, служащие для мониторинга и оценки производительности приложений.
В статье Создание функционально насыщенных приложений с помощью JavaFX Script приводится введение в
скриптовый язык, работающий поверх платформы Java SE 6 и служащий для упрощения программирования сложных пользовательских интерфейсов.
В серии из двух статей подназванием Используйте динамические языки динамично содержится введение в API, предоставляемый Java SE 6, который позволяет Java-приложениям выполнять динамический скриптовый коди
www.ibm.com/developerworks/ru/java/newto/#ЗачемZ42 |
2/12 |
02.09.13 IBM developerWorks Россия: Введениев программированиенаJava
наоборот. За более подробной информацией о применении скриптовых языков в Java обратитесь к разделу Какое отношение имеет Java к динамическим языкам и функциональному программированию?.
Java EE (Java Platform, Enterprise Edition). Эта корпоративная версия платформы помогает разработчикам создавать и развертывать переносимые, надежные, масштабируемые и безопасные серверные приложения на Java. Развивая возможности Java SE, Java EE предоставляет API Web-сервисов, компонентных моделей, удаленного взаимодействия и управления для реализации корпоративного программного обеспечения по принципам SOA и Web 2.0.
Прочитайте статьи Познакомьтесь с Java EE 5 и Java EE 5: Мощь и производительность при меньшей сложности, в которых содержится вводный обзор возможностей последней версии платформы Java EE.
Обратите внимание на серию статей о Spring (EN) - популярной инфраструктуре для создания легковесных и надежных приложений Java EE.
Дополнительная информация о Java EE приводится в статьях колонки Исследование J2EE (EN).
Статьи серии Начало пути: Миграция на платформу Java (EN) были написаны специально для разработчиков .NET, клиент-серверных приложений для Windows и приложений ASP, чтобы помочь им перейти на Java.
Java ME (Java Platform, Micro Edition). Java ME предоставляет среду для выполнения приложений, созданных для широкого круга мобильных и встроенных систем, например мобильных телефонов, карманных компьютеров, телевизионных приставок и принтеров. Эта редакция платформы предоставляет средства создания гибких пользовательских интерфейсов, надежную модель обеспечения безопасности, полный спектр встроенных сетевых протоколов, а также мощную поддержку сетевых и оффлайновых динамически загружаемых приложений. Приложения, базирующиеся на спецификациях Java ME, могут быть запущены на множестве устройств и при этом способны эффективно задействовать их системные возможности.
Обратите внимание на серию из четырех статей (EN), которая является исчерпывающим источником информации о
J2ME и стандарте MIDP (Mobile Information Device Profile).
Вам также может быть полезно руководство из двух частей подназванием Создание интеллектуальных приложений для мобильных устройств (EN) при помощи J2ME.
Какие технологии являются основными компонентами платформы Java?
В разделе Java на сайте developerWorks содержится полный перечень стандартных технологий (EN), входящих в состав Java. Ниже перечислены некоторые из компонентов, возможных дополнительных пакетов и расширений, входящих в состав каждой редакции платформы. Для каждой технологии приведено краткое описание, а также ссылка на материалы, в которых описывается ее место в мире Java. Обратите внимание, что многие из компонентов входятв состав всехтрехредакций
платформыJava.
Технологии, входящие в состав Java SE:
Java Foundation Classes (Swing) (JFC) - это набор библиотек Java-классов, служащих для создания графических интерфейсов пользователя и реализации других графических функций в клиентских Java-приложениях. Руководство Введение в Swing (EN), а также статьи Проектирование динамических интерфейсов в Swing (EN) и Улучшение доступности графических интерфейсов пользователя (EN) помогут вам начать работать с Swing.
JavaHelp - это независимая от платформы расширяемая справочная система, позволяющая разработчикам и техническим писателям встраивать справочные страницы в апплеты, программные компоненты, приложения, операционные системы и устройства, а также создавать справочные Web-системы. Обратитесь к статье Создание справочных систем для Java-приложений (EN).
Благодаря Java Native Interface (JNI) Java-приложения, выполняющиеся внутри JVM, могут взаимодействовать с программами и библиотеками, написанными на других языках программирования. Прочитайте статью Обработка событий, сгенерированных платформенно-зависимым кодом, в Java (EN).
Java Platform Debugger Architecture (JPDA) представляет собой отладочную инфраструктуру в Java SE (см. статью Будущее разработки программного обеспечения (EN)).
В состав Java 2D API входят наборы классов для работы с двухмерной графикой, предоставляющих широкие возможности создания изображений и управления альфа-каналами, классы для манипулирования цветовыми палитрами и преобразования цветов, а также операторы для работы с изображениями (см. руководство Введение в Java 2D (EN)).
www.ibm.com/developerworks/ru/java/newto/#ЗачемZ42 |
3/12 |
02.09.13 |
IBM developerWorks Россия: Введениев программированиенаJava |
Технология Java Web Start упрощает развертывание Java-приложений, позволяя пользователям загружать и запускать функционально насыщенные программные средства, например, электронные таблицы, одним нажатием на кнопку мыши, без инсталляции (см. статью Java Web Start (EN)).
Certification Path API предоставляет набор API для создания, формирования и проверки маршрутов сертификации (также известных как "цепочки сертификатов"), служащих для безопасного сопоставления открытых ключей и субъектов доступа (см. статью Генерация цепочек сертификатов для тестирования Java-приложений (EN)).
Java Database Connectivity (JDBC) - это API, предоставляющий средства для доступа к большинству реляционных источников данных из Java-приложений. С его помощью можно подключаться к множеству баз данных SQL, а также другим табличным источникам данных, например, электронным таблицам и неструктурированным файлам. Более подробную информацию можно найти в статье Что нового в JDBC 3.0 (EN) и руководстве Работа с JDBC (EN).
Java Advanced Imaging (JAI) - это объектно-ориентированный API, предоставляющий простую высокоуровневую модель программирования, упрощающую манипулирование изображениями (см. статью Управление изображениями в JSP (EN)).
Java Authentication and Authorization Service (JAAS) - это технология, предоставляющая сервисам средства для аутентификации пользователей и проверки их прав доступа. Она включает Java-реализацию стандартной инфраструктуры PAM (Pluggable Authentication Module) и поддерживает авторизацию на уровне пользователей. За более подробной информацией обратитесь к статьям Технологии JAAS и JSSE для обеспечения безопасности в Java- приложениях (EN), Механизмы авторизации в Java (EN) и руководству Безопасность в Java. Часть 2: Аутентификация и авторизация (EN).
Java Cryptography Extension (JCE) - это набор пакетов, предоставляющих инфраструктуру и реализации алгоритмов шифрования, генерации и обмена ключами и установления подлинности сообщений (Message Authentication Code - MAC). Эта технология также включает поддержку симметричных, асимметричных, блочных и поточных шифров, а также безопасных потоков и опечатанных объектов (sealed objects). Более подробную информацию можно получить в руководстве Безопасность в Java: Основы криптографии (EN).
Java Data Objects (JDO) - это стандартная абстрактная модель долговременного хранения Java-объектов, базирующаяся на интерфейсах. С ее помощью разработчики могут напрямую сохранять экземпляры Java-классов предметной области в постоянном хранилище (например, базе данных). Эта модель в ряде случаев может заменять прямую запись в файл, сериализацию, JDBC, а также использование серверных компонентов EJB, как управляемых контейнерами (Container Managed Persistence - CMP), так и самостоятельно хранящих состояние (Bean Managed Persistence - BMP). Подробнее см.
Практическое руководство по JDO (EN).
Пакет Java Management Extensions (JMX) содержит средства для создания распределенных, модульных, динамических и доступных через Web приложений для управления и мониторинга устройств, программного обеспечения и сетей, основанных на предоставлении сервисов (см. статью Использование компонентов управления платформой Java).
Java Media Framework (JMF) позволяет добавлять аудио-, видео- и другую медиа-информацию в приложения и апплеты на Java (см. руководство Основы Java Media Framework (EN)).
Java Naming and Directory Interface (JNDI) - это унифицированный интерфейс для обращения к различным сервисам имен и каталогов в корпоративной сети. С его помощью приложения могут эффективно подключаться к различным службам имен и каталогов в гетерогенной среде уровня предприятия (см. статьи Оптимизация JNDI промышленного уровня (EN) и Навигация в лабиринте JNDI (EN)).
Java Secure Socket Extensions (JSSE) - это набор пакетов для обеспечения безопасного обмена информацией в Интернете. Они реализуют Java-версию протоколов SSL (Secure Sockets Layer) и TLS (Transport Layer Security) и
предоставляют средства для шифрования данных, проверки целостности сообщений, аутентификации на сервере и на клиенте (последняя возможность не является обязательной). Подробнее о JSSE можно прочитать в статье Обеспечение безопасности в Java при помощи JAAS и JSSE (EN), а также в руководстве Использование JSSE для безопасной передачи данных через сокеты (EN).
Java Speech API (JSAPI) включает в себя спецификации JSGF (формат грамматики Java Speech) и JSML (язык разметки Java Speech). Этот пакет предоставляет возможности для использования речевых технологий в пользовательском интерфейсе. JSAPI - это кросс-платформенный API для поддержки распознавания голосовых команд, систем речевого ввода данных и синтеза речи. За более подробной информацией обратитесь к следующему разделу статьи Интерфейсы пользователя в Java 2 (EN).
Java 3D - это API, предоставляющий кросс-платформенные и масштабируемые возможности для работы с 3D-графикой в
Java-приложениях. API организован в виде набора объектно-ориентированных интерфейсов, складывающихся в единую
www.ibm.com/developerworks/ru/java/newto/#ЗачемZ42 |
4/12 |
02.09.13 |
IBM developerWorks Россия: Введениев программированиенаJava |
простую высокоуровневую модель программирования (см. руководство Комфортная работа с Java 3D (EN)).
Механизм Metadata Facility позволяет разработчикам определять атрибуты для классов, интерфейсов, полей и методов, благодаря чему они могут подвергаться специальной обработке со стороны средств разработки, развертывания и сторонних библиотек на этапе выполнения приложения (см. статью Аннотации в Тигре. Часть 1: Добавление метаданных в Java-код(EN)).
Java Content Repository API - это API для доступа к репозиториям контента в Java SE независимо от их реализации. Подобные репозитории представляют собой высокоуровневые системы управления информацией и являются расширенными вариантами классических репозиториев данных. Подробнее можно прочитать в статье Введение в API для работы с репозиториями контента в Java (EN).
Enumerations (перечисление) - это тип данных, позволяющий описывать различные элементы данных в виде типизированного набора констант (см. статью Введение в перечислимые типы).
Generics (обобщенные типы) позволяют создавать классы с параметрами (абстрактными типами), которые указываются на этапе инстанциирования. За подробностями обратитесь к статье Введение в обобщенные типы в JDK 5.0 (EN), а также ознакомьтесь со статьей Оживите ваши коллекции при помощи обобщенных типов и возможностей параллельного доступа (EN), в которой рассказывается о том, как обобщенные типы облегчают работу с коллекциями в Java SE 6.0.
Утилиты Concurrency - это набор классов, предоставляющих функциональность среднего уровня, которая обычно требуется приложениям, выполняющим параллельную обработку данных (см. руководство Параллелизм в JDK 5.0 (EN)).
Java API for XML Processing (JAXP) - это API, при помощи которого Java-приложения могут разбирать и преобразовывать XML-документы вне зависимости от используемого процессора XML. Это позволяет приложениям легко переключаться между разными процессорами без изменений в прикладном коде. В свою очередь, технология JAXB (Java API for XML Binding) предоставляет возможности для автоматизации сопоставления документов XML и объектов Java. Вначале ознакомьтесь с руководством из трех частей Работа с XML в Java (EN), а затем, если вас интересуют подробности JAXP, обратитесь к статьям Все о JAXP, часть 1 и Все о JAXP, часть 2. Далее прочитайте серию статей Связывание с данными на практике и загляните в раздел XML на сайте developerWorks.
SOAP with Attachments API for Java (SAAJ) предоставляет разработчикам функции для формирования и обработки сообщений в соответствии со спецификацией SOAP 1.1 c указанием SOAP with Attachments (SOAP с вложениями). За более подробной информацией обратитесь к статье Совет: Отправка и получение сообщений SOAP с помощью SAAJ).
Технологии, входящие в состав J2EE:
Enterprise JavaBeans (EJB) - это компонентная модель, которая упрощает разработку связующего программного обеспечения, предоставляя такие сервисы, как управление транзакциями, обеспечение безопасности и подключение к базам данных. Подробнее о EJB можно прочитать в руководстве Введение в технологию EJB (EN), серии Передовые подходы при работе с EJB (EN) и статье Проектирование корпоративных приложений при помощи API хранения объектов в EJB 3.0 (EN).
Спецификацияпортлетов определяет набор API для создания порталов на Java, охватывая такие аспекты, как агрегирование и представление информации, персонализация и обеспечение безопасности (см. статью Что нового в Java Portlet Specification V2.0 (JSR 286)?).
JavaMail - это API, предоставляющий набор абстрактных классов, моделирующих почтовую систему. Подробнее можно прочитать в руководстве Основы JavaMail (EN).
Java Message Service (JMS) - это API, поддерживающий создание переносимых Java-приложений на основе механизма обмена сообщениями. Он определяет общий набор базовых понятий и стратегий программирования для всех систем обмена сообщениями, совместимых с JMS (см. руководство Введение в Java Message Service (EN)).
JavaServer Faces (JSF) предоставляет программную модель, помогающую создавать Web-приложения путем компоновки страниц из многократно используемых компонентов пользовательского интерфейса, а также связывания этих компонентов с источниками данных, а событий, генерируемых на клиенте - с серверными обработчиками. За более подробной информацией обратитесь к руководству из двух частей Введение в JavaServer Faces (EN) и серии статей колонки JSF для скептиков (EN).
JavaServer Pages (JSP) предоставляет Web-разработчикам средства для быстрого создания и простой поддержки динамических, кросс-платформенных Web-страниц, которые разделяют пользовательский интерфейс и генерацию контента, благодаря чему дизайнеры могут изменять разметку, не трогая динамически формируемое содержимое (см. руководство Введение в технологию JavaServer Pages (EN) и статьи серии Передовые подходы к использованию JSP (EN)).
www.ibm.com/developerworks/ru/java/newto/#ЗачемZ42 |
5/12 |
02.09.13 |
IBM developerWorks Россия: Введениев программированиенаJava |
Стандартнаябиблиотека тегов дляJavaServer Pages (JSTL) - это набор специализированных тегов, предоставляющих стандартный формат для выполнения действий, необходимых многим Web-приложениям. Ознакомьтесь со статьей Обновите ваши страницы JSP при помощи JSTL (EN) и серией из четырех частей подназванием Учебник по JSTL (EN).
Сервлеты Java расширяют функциональность Web-серверов, предоставляя кросс-платформенный, компонентный подходк созданию Web-приложений, свободный от ограничений производительности, характерных для CGI. Если вы планируете начать использовать сервлеты, прочитайте руководство Введение в сервлеты Java (EN).
J2EE Connector Architecture (JCA) предоставляет стандартную архитектуру для подключения приложений J2EE к разнородным корпоративным информационным системам (EIS). Эта архитектура определяет набор масштабируемых и безопасных механизмов на основе транзакций, при помощи которых поставщики EIS могут предоставлять стандартные адаптеры ресурсов для включения в сервер приложений. За более подробной информацией обратитесь к статьям Освоение JCA-транзакций, Выбор технологии для интеграции прикладных систем предприятия (EAI) - JCA, JMS или Web- сервисы?, Интеграция распределенных корпоративных информационных систем при помощи JCA, JMS и Web-сервисов (EN) и руководству Введение в архитектуру JCA в J2EE (EN).
СпецификацияJ2EE Management (JMX) определяет информационную модель управления для платформы J2EE. Эта модель была специально спроектирована для взаимодействия со многими системами и протоколами управления. Она содержит стандартные средства для сопоставления с общей информационной моделью (Common Information Model - CIM), информационной базой управления SNMP (SNMP Management Information Base - MIB) и объектной моделью Java
при помощи резидентного серверного компонента EJB (J2EE Management EJB Component - MEJB). Подробнее о JMX можно прочитать в статье От черных ящиков до систем уровня предприятия. Часть 1: Управление в стиле JMX 1.1 (EN).
Java Transaction API (JTA) – это высокоуровневая реализация и независимый от протоколов API, предоставляющий программам и серверам приложений средства для доступа к транзакциям. Java Transaction Service (JTS) определяет реализацию менеджера транзакций, который поддерживает JTA и реализует на нижележащем уровне сопоставление с объектным транзакционным сервисом OMG (Object Transaction Service - OTS 1.1). Распространение транзакций в JTS реализуется при помощи протокола Inter-ORB (IIOP). За более подробной информацией обратитесь к статье Понимание JTS - введение в транзакции.
Технологии, входящие в состав J2ME:
Mobile Information Device Profile (MIDP) — это одна из двух конфигураций, составляющих среду выполнения Java для мобильных устройств с ограниченными ресурсами. MIDP предоставляет приложениям базовую функциональность, включающую в себя средства для создания интерфейсов пользователя, подключения к сетевым ресурсам, локального хранения данных и управления жизненным циклом. За более подробной информацией обратитесь к руководству Реализация технологии Push в J2ME и MIDP (EN), статьям Проектирование лучших мидлетов (EN) и Создание собственных графических интерфейсов в MIDP 2.0 (EN), а также руководству Создание мидлетов при помощи инструментария Wireless (EN).
Connected Device Configuration (CDC) – это стандартизированная инфраструктура для создания и развертывания приложений, доступ к которым может осуществляться со стороны многих сетевых и встроенных устройств (см. статью Обеспечение безопасности при беспроводном доступе в J2ME (EN)).
Mobile 3D Graphics API дляJ2ME (M3G) — это легковесный интерактивный API для реализации трехмерной графики, являющийся дополнительным компонентом J2ME. Подробнее о нем можно прочитать в серии из двух частей 3Dграфика в Java для мобильных устройств (EN).
Технологии Java и создание Web-приложений
На протяжении многих лет Java является основным языком разработки Web-приложений. В последнее время появилось множество инфраструктур и библиотек, облегчающих создание Web-приложений на Java, в том числе многофункциональных интерактивных приложений Web 2.0.
Ознакомьтесь с приведенными ниже материалами, посвященным вопросам Web-разработки на Java.
Статьи колонки Изучение Grails (EN) рассказывают о Grails – современной инфраструктуре для создания Webприложений, написанных на Groovy. Grails позволяет органично сочетать ранее написанный кодна Java с возможностью использования гибкого и динамического скриптового языка. Более подробная информация о Groovy приведена ниже, в разделе Какое отношение имеет Java к динамическим языкам и функциональному программированию?.
Ajax – это методология программирования, предусматривающая использование скриптовых языков на стороне клиента для обмена данными с Web-сервером, что позволяет быстро обновлять информацию на страницах без необходимости
www.ibm.com/developerworks/ru/java/newto/#ЗачемZ42 |
6/12 |
02.09.13 |
IBM developerWorks Россия: Введениев программированиенаJava |
их полной перезагрузки. Прочитав серии статей Просто об Ajax и разработке Java-приложений (EN) и Ajax для Javaразработчиков (EN), вы узнаете, чем Ajax может помочь вам как разработчику Java-приложений. За дополнительной информацией вы можете обратитесь к центру материалов Ajax (EN) на сайте developerWorks.
JavaServer Faces (JSF) предоставляет программную модель, помогающую создавать Web-приложения путем компоновки страниц из многократно используемых компонентов пользовательского интерфейса, а также связывания этих компонентов с источниками данных, а событий, генерируемых на клиенте - с серверными обработчиками. За более подробной информацией обратитесь к руководству из двух частей Введение в JavaServer Faces (EN) и серии статей колонки JSF для скептиков (EN).
Платформа Web-инструментария Eclipse ( Web Tools Platform – WTP) расширяет популярную среду разработки Eclipse, добавляя в нее средства для создания Web-приложений на основе технологий Java EE (см. руководство Введение в инструментарий Web Tools Platform v1.0 для Eclipse (EN)).
В разделе Web-разработки на сайте developerWorks можно найти множество других превосходных материалов по этим вопросам.
Технологии Java, SOA и Web-сервисы
Сервис-ориентированная архитектура (SOA) – это компонентная модель, связывающая функциональные модули приложения (известные как сервисы, откуда произошел термин Web-сервисы) через строго описанные интерфейсы и контракты. Определения интерфейсов не зависят от используемого аппаратного обеспечения, операционной системы и языка программирования, на котором реализован сервис, благодаря чему поддерживается унифицированное взаимодействие между сервисами, являющимися компонентами разных систем. SOA – это пример слабо связанной программной модели, представляющей собой альтернативу классическим сильно связанным объектно-ориентированным моделям.
Созданные по такому принципу Web-сервисы позволяют описывать бизнес-правила и процессы на XML, благодаря чему взаимодействие приложений может осуществляться независимо от используемых платформ и языков программирования. XML-технологии способствуют переносимости данных и упрощают создание сообщений, в то время как технологии Java позволяют писать переносимый код. XML и Java отлично сочетаются и потому представляют собой идеальную связку технологий для создания и развертывания Web-сервисов.
Более подробную информацию можно получить, прочитав следующие материалы:
Страницы Введение в SOA и Web-сервисы (EN) и Введение в XML (EN) на сайте developerWorks помогут вам сориентироваться в этих непростых технологиях.
В статьях серии Web-сервисы Java (EN) рассказывается об инфраструктурах Web-сервисов на Java, а также о новых функциональных слоях, созданных на базе этих сервисов.
В статье Создание Web-сервисов REST (EN) приводится введение в элегантный стиль проектирования Web-сервисов под названием Передача репрезентативного состояния (Representational State Transfer — REST) и рассказывается об использовании Java для создания Web-сервисов по принципам REST.
Понимание технологии JAX-RPC (RPC на основе API Java для работы с XML) имеет большое значение для создания эффективных Web-сервисов на Java. Хорошее введение в JAX-RPC можно найти в руководстве Создание сервиса и клиента RPC при помощи JAX-RPC (EN).
JAX-WS – это очевидный следующий шаг в развитии JAX-RPC. Практическое введение в этот новый API дано в руководстве Проектирование и реализация Web-сервисов при помощи JAX-WS 2.0 (EN).
Серия статей Создание приложений SCA (EN) представляет собой руководство по компонентной архитектуре сервисов (Service Component Architecture - SCA) - спецификации, описывающей модель разработки приложений и систем по принципам SOA.
В статье Введение в Service Data Objects приводится введение в инфраструктуру Service Data Objects (объекты данных сервисов), которая упрощает модель работы с данными в Java EE при создании SOA-приложений.
Какое отношение имеет Java к динамическим языкам и функциональному программированию?
Многие разработчики, начинающие осваивать Java, имеют богатый опыт работы с другими языками программирования. При этом даже самые маститые программисты признают, что Java не является идеальным языком для решения всех
www.ibm.com/developerworks/ru/java/newto/#ЗачемZ42 |
7/12 |
02.09.13 |
IBM developerWorks Россия: Введениев программированиенаJava |
встречающихся на практике задач. К счастью, благодаря поддержке со стороны JVM при разработке приложений для платформы Java можно пользоваться всеми преимуществами современных динамических скриптовых и функциональных языков. Гибкость и динамизм этих языков оказываются очень полезными при создании прототипов и реализации определенных типов приложений.
Подробнее о возможностях применения динамических и функциональных языков на платформе Java можно прочитать в материалах, ссылки на которые приведены ниже.
Пересекая границы
Новые технологии, в том числе принципы, лежащие в основе альтернативных языков, оказывают влияние на процесс создания Java-приложений и могут изменить ваш стиль программирования. В статьях колонки Пересекая границы (EN) обсуждаются принципы и подходы, отличающиеся от традиционно принятых в Java, но при этом имеющие непосредственное отношение к этой платформе.
Скриптовый язык Groovy позволяет Java-разработчикам использовать наиболее привычные языковые конструкции и библиотеки, при этом предоставляя гибкую, динамическую среду разработки, которая не требует компиляции, упрощает синтаксис и поддерживает выполнение скриптов внутри обычных Java-приложений. Детальный обзор возможностей этого языка приводится в статьях серии Groovy на практике (EN).
Новый API скриптов в Java SE 6, обеспечивающий обратную совместимость с Java SE 5 и содержащий небольшой набор интерфейсов и классов, предоставляет простой способ вызова из Java-кода скриптов, написанных на десятках языков. С его помощью вы можете загружать и вызывать внешние скрипты на этапе выполнения, динамически изменяя поведение приложения. Подробнее об этом API можно прочитать в серии из двух статей подназванием Используйте динамические языки динамично.
Вы - горячий сторонник функционального программирования? Тогда вам следует обратить внимание на колонку Путеводитель по Scala для Java-разработчиков, в которой рассказывается о Scala - языке программирования для JVM, сочетающем функциональный и объектно-ориентированный подходк разработке.
VM поддерживают альтернативные языки программирования уже на протяжении длительного времени. В статьях колонки alt.lang.jre можно прочитать о реализациях для JVM таких языков, как Rexx, Ruby, JavaScript, Python и некоторых других.
Java и создание свободного программного обеспечения
Существует бесчисленное множество открытых проектов по созданию библиотек, инструментариев, инфраструктур, программ и серверов приложений на Java, которые открывают для разработчиков дополнительные возможности по использованию этой мощной платформы. Рядсвободных технологий со временем был включен в состав платформы Java, а другие на протяжении многих лет остаются популярными среди Java-разработчиков, в некоторых случаях играя роль фактических стандартов.
Ниже приведены ссылки на материалы, рассказывающие о некоторых из наиболее значимых свободных технологий для создания приложений на Java.
Организация Apache Software Foundation объединяет множество открытых проектов, большинство из которых разрабатываются на основе технологий Java. Ниже перечислены некоторые представители этого семейства проектов.
Apache Struts - это инфраструктура для создания Web-приложений, архитектура которых следует принципу "Модель-Представление-Контроллер" (Model-View-Controller). Подробнее можно прочитать в статье Передовые методики создания приложений на основе Struts (EN).
Apache Shale - еще одна современная инфраструктура для создания Web-приложений, являющаяся наследницей Struts и базирующаяся на технологии JSP (JavaServer Pages). Введение в Shale содержится в статьях серии Здравствуй, Shale!.
Apache Ant является фактическим стандартом для автоматизации процесса сборки Java-приложений (см. руководства Apache Ant 101: Сборка приложений - это просто (EN) и Вызов Apache Ant программным образом
(EN)).
Средство сборки Apache Maven проектировалось с учетом требований современных проектов по созданию программного обеспечения, для которых характерны динамичное взаимодействие между группами разработчиков и зависимость от множества независимо поддерживаемых компонентов (см. руководство Введение в Apache Maven (EN)).
Apache Tomcat - это популярный Web-контейнер, поддерживающий сервлеты и серверные страницы Java (JSP).
www.ibm.com/developerworks/ru/java/newto/#ЗачемZ42 |
8/12 |
02.09.13 IBM developerWorks Россия: Введениев программированиенаJava
Ознакомьтесь с руководством Tomcat для начинающих Web-разработчиков (EN), которое поможет вам начать работу с Tomcat.
Проект Apache Geronimo заключается в создании полностью соответствующего спецификации сервера приложений Java EE на основе исключительно свободных технологий. Подробнее о Geronimo можно прочитать в статье Geronimo для начинающих, а также в разделе Geronimo (EN) на сайте developerWorks, содержащем множество полезных материалов.
Apache Derby - это сервер реляционных баз данных, полностью реализованный на Java. Введение в Derby приводится в статье Разработка при помощи Apache Derby - тройной выигрыш: Введение в Apache Derby, а более детальная информация - в материалах раздела Derby (EN) на сайте developerWorks.
Eclipse – это открытая и независимая платформа разработки, а также набор базовых инструментов для создания программного обеспечения. Она написана на Java и предоставляет инфраструктуру на основе подключаемых модулей, облегчающую разработку, интеграцию и использование программных средств. IBM является одним из учредителей Eclipse.org и активно участвует в совете управляющих этого проекта, а также его подкомитетах. О некоторых компонентных технологиях платформы Eclipse, направленных на создание Java-приложений, можно прочитать в следующих материалах:
AspectJ - это аспектно-ориентированное расширение языка Java, которое может использоваться для модульной реализации сквозной функциональности, например журналирования или обработки исключений. Подробнее можно прочитать в руководстве Введение в АОР (EN), а также в нескольких статьях серии АОР в работе (EN).
Standard Widget Toolkit (SWT) - это инструментарий, позволяющий задействовать возможности операционной системы для создания элементов пользовательских интерфейсов эффективным и переносимым образом (см. статью Плавное введение в SWT и JFace: Создание простого приложения на базе SWT (EN)).
Mylyn - это мощная система управления заданиями для пользователей Eclipse. Подробное руководство содержится в статьях Mylyn 2.0, часть 1: Интегрированное управление задачами и Mylyn 2.0, часть 2: Автоматизация управления контекстом.
Инструментарий тестирования и производительности платформы Eclipse (Eclipse Test and Performance Tools Platform - TPTP) предоставляет базовые средства и сервисы для тестирования и оценки производительности (см. руководство Введение в Eclipse TPTP (EN)).
Web-инструментарий платформы Eclipse (Eclipse Web Tools Platform - WTP) расширяет среду Eclipse, добавляя к ней средства для разработки Web-приложений на базе J2EE. За более подробной информацией обратитесь к руководству Введение в Eclipse WTP V1.0 (EN).
Множество других статей и руководств по Eclipse можно найти в разделе developerWorks, посвященному проекту Eclipse (EN).
Spring - это популярная многоуровневая архитектура для создания приложений для платформы Java EE.
Подробно о Spring можно прочитать в статьях серии Spring (EN) и руководстве Введение в Spring 2 и JPA (EN).
Проект Spring Security, ранее известный как "система безопасности Acegi для Spring" - это мощное и гибкое решение для обеспечения безопасности в корпоративных приложениях, созданных на базе инфраструктуры Spring. Она подробно рассматривается в четырех статьях серии Обеспечение безопасности Java-приложений с помощью
Acegi.
Компания Sun Microsystems также начала работу по переводу платформы Java в разрядсвободного программного обеспечения, запустив следующие общественные проекты на сайте java.net:
OpenJDK
Mobile & Embedded
GlassFish
Как развивать навыки программирования на Java?
Есть два основных пути развития ваших навыков программирования на Java: пройти специальный курс обучения (с возможностью сертификации) или изучать Java самостоятельно, практикуясь в написании кода. Обучающие курсы не только позволяют вам перенять опыт квалифицированных разработчиков, но и дают возможность получения сертификата, который может убедить потенциального работодателя, что вы обладаете навыками, необходимыми для решения стоящих переднам технических задач. При этом вы сможете углубить свои знания в различных областях Java, экспериментируя самостоятельно и используя все доступные ресурсы. Какой бы путь вы ни выбрали, вам помогут следующие материалы.
www.ibm.com/developerworks/ru/java/newto/#ЗачемZ42 |
9/12 |
02.09.13 IBM developerWorks Россия: Введениев программированиенаJava
Руководства истатьи
На сайте developerWorks представлена обширная коллекция практических руководств по Java-технологиям, которые по степени полезности в процессе изучения Java уступают только самостоятельному написанию кода. Если вы только начинаете знакомиться с Java, обратитесь к подробным руководствам Роя Миллера (Roy Miller) Введение в программирование на языке Java (EN) и Java для среднего уровня (EN).
Статьи серий Магия Мерлина (EN) и Приручение Тигра (EN) прекрасно подходят для совершенствования вашей техники владения Java.
Применение теории проектирования при создании реальных приложений рассматривается в статьях серии Теория и практика Java.
Опытные разработчики Java заранее закладывают в свои приложения средства для их отладки и тестирования. На сайте developerWorks представлены несколько статей серии Диагностика Java-кода (EN), посвященных отладке, в которых особое внимание уделяется типичным ситуациям, часто приводящим к ошибкам. Кроме того, вам может быть полезна серия Повышение эффективности тестирования Брайана Гётца (Brian Goetz) и его же статья Избавьтесь от ошибок.
Игры
Robocode - это простой в использовании симулятор битв роботов, созданный на основе Java-технологий, который предлагает развлекательный подходк изучению программирования. Введение в Robocode можно найти в статье Врежь ему, Robocode! (EN). Кроме того, вам может быть полезна статья Секреты мастеров Robocode: Советы, подсказки и рекомендации от экспертов игры Robocode (EN).
CodeRuler, CodeRally и CodeInvaders Challenge - это игры реального времени на базе платформы Eclipse,
направленные на изучение программирования на Java. Вводная информация о CodeRuler приводится в статье Завоевание средневековых королевств вместе с CodeRuler (EN).
Технические обучающие курсы IBM
Вашему вниманию предлагается большой выбор онлайновых, очных и мультимедийных курсов по Java, разработанных подразделением IBM Global Services.
Сертификация
Вы можете сдать несколько экзаменов для получения сертификатов, свидетельствующих о ваших навыках программирования на Java. Материалы, посвященные курсам с последующей сертификацией, находятся на сайте
Java Certification.
IBM предоставляет возможность профессиональной сертификации ваших навыков в таких технологиях, имеющих отношения к Java, как создание корпоративных приложений для WebSphere, программное обеспечение Rational, DB2, XML и SOA.
Форумы
Форумы по Java, модерируемые экспертами, за плечами которых многолетний опыт работы с Java-технологиями - это наиболее интерактивный из способов изучения языка Java.
Продукты и технологии IBM для Java-разработчиков
IBM занимает одним из лидеров в практическом применении Java-технологий. Ниже приведены ссылки на некоторые продукты и технологии IBM, предлагаемые разработчикам приложений для платформы Java.
Бесплатно загружаемые продукты:
Комплект Java-разработчика (Java Developer Kit) - это набор средств для создания и тестирования апплетов и приложений для Java SE и Java ME на множестве популярных операционных систем, в том числе Windows, Linux и AIX.
Пакет разработки приложений для Eclipse от IBM (IBM Development Package for Eclipse) - это основанный на Eclipse
неподдерживаемый инструментарий разработчика, позволяющий создавать и запускать приложения в собственной готовой среде разработки.
Параллельно выпускаемые проекты Eclipse: Вы можете загрузить пакеты свободного программного обеспечения Eclipse c сайта developerWorks, в том числе параллельно выпускаемые продукты Calisto и Europa.
www.ibm.com/developerworks/ru/java/newto/#ЗачемZ42 |
10/12 |