Введение в программирование на Java

Статьи, учебные руководства, советы


Введение в программирование на 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 (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?

В разделе 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 Platform Debugger Architecture (JPDA) представляет собой отладочную инфраструктуру в Java SE (см. статью Будущее разработки программного обеспечения (EN)).
  • В состав Java 2D API входят наборы классов для работы с двухмерной графикой, предоставляющих широкие возможности создания изображений и управления альфа-каналами, классы для манипулирования цветовыми палитрами и преобразования цветов, а также операторы для работы с изображениями (см. руководство Введение в Java 2D (EN)).
  • Технология 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 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 Management Extensions (JMX) содержит средства для создания распределенных, модульных, динамических и доступных через Web приложений для управления и мониторинга устройств, программного обеспечения и сетей, основанных на предоставлении сервисов (см. статью Использование компонентов управления платформой Java).
  • Java Media Framework (JMF) позволяет добавлять аудио-, видео- и другую медиа-информацию в приложения и апплеты на Java (см. руководство Основы Java Media Framework (EN)).
  • Java Naming and Directory Interface (JNDI) - это унифицированный интерфейс для обращения к различным сервисам имен и каталогов в корпоративной сети. С его помощью приложения могут эффективно подключаться к различным службам имен и каталогов в гетерогенной среде уровня предприятия (см. статью Навигация в лабиринте 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 организован в виде набора объектно-ориентированных интерфейсов, складывающихся в единую простую высокоуровневую модель программирования (см. руководство Комфортная работа с Java 3D (EN)).
  • Механизм Metadata Facility позволяет разработчикам определять атрибуты для классов, интерфейсов, полей и методов, благодаря чему они могут подвергаться специальной обработке со стороны средств разработки, развертывания и сторонних библиотек на этапе выполнения приложения (см. статью Аннотации в Тигре. Часть 1: Добавление метаданных в Java-код (EN)).
  • Java Content Repository API - это API для доступа к репозиториям контента в Java SE независимо от их реализации. Подобные репозитории представляют собой высокоуровневые системы управления информацией и являются расширенными вариантами классических репозиториев данных. Подробнее можно прочитать в статье Введение в API для работы с репозиториями контента в Java (EN).
  • 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, обратитесь к статьe Все о 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)?).
  • 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).
  • Стандартная библиотека тегов для 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 в 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 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-сервером, что позволяет быстро обновлять информацию на страницах без необходимости их полной перезагрузки. Прочитав серии статей Просто об 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 не является идеальным языком для решения всех встречающихся на практике задач. К счастью, благодаря поддержке со стороны JVM при разработке приложений для платформы Java можно пользоваться всеми преимуществами современных динамических скриптовых и функциональных языков. Гибкость и динамизм этих языков оказываются очень полезными при создании прототипов и реализации определенных типов приложений.

Подробнее о возможностях применения динамических и функциональных языков на платформе 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.


Как развивать навыки программирования на Java?

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


Продукты и технологии IBM для Java-разработчиков

IBM занимает одним из лидеров в практическом применении Java-технологий. Ниже приведены ссылки на некоторые продукты и технологии IBM, предлагаемые разработчикам приложений для платформы Java.

  • Продукты IBM линейки Rational, созданные на базе Eclipse 3.0, облегчают разработку, тестирование и развертывание высококачественных приложений. Это семейство включает следующие продукты:

    • Rational Method Composer - настраиваемая платформа для управления процессом разработки программного обеспечения.
    • Средства управления конфигурированием приложений, например, ClearCase и ClearQuest.
    • Инструменты для тестирования, такие как Rational Robot, TestManager и Test RealTime.
    • Средства для управления требованиями и анализа, в частности RequisitePro.
    • Пакеты визуального моделирования и разработки, например, Rational Software Modeler, Rational Systems Developer, PurifyPlus и Rose Technical Developer.
    • Rational Application Developer для WebSphere - среду быстрой разработки программного обеспечения для создания, анализа, тестирования, профилирования и развертывания приложений на основе технологий Web, SOA, Java и J2EE, а также порталов для сервера IBM WebSphere.
  • WebSphere Application Server - это полнофункциональный, удовлетворяющий спецификациям Java EE сервер приложений, предоставляющий защищенную, масштабируемую и отказоустойчивую инфраструктуру, необходимую приложениям уровням предприятия, имеющим архитектуру SOA. Подробнее о средствах для создания приложения для WebSphere можно прочитать в перечисленных ниже материалах.

    • Посетите страницу для начинающих в WebSphere, а также ознакомьтесь с другими техническими материалами, которые помогут вам эффективно использовать эту ключевую интеграционную платформу IBM.
    • Инфраструктура WebSphere Enterprise Service Bus предоставляет средства для взаимодействия с Web-сервисами, отправки и получения сообщений JMS, а также сервис-ориентированные возможности интеграции для ваших приложений SOA.
    • Продукты WebSphere Process Server и WebSphere Integration Developer предоставляют интеграционную платформу для корпоративных сервисов, созданных по принципам SOA.
    • WebSphere sMash - это платформа для создания и выполнения динамических приложений Web 2.0, имеющих архитектуру SOA и созданных на основе технологии Project Zero.
    • Посетите раздел, посвященный средствам разработки для WebSphere (EN), в котором содержатся свежие технические материалы и руководства по использованию продуктов WebSphere для создания, тестирования и развертывания J2EE-приложений уровня предприятия.
    • Rational Application Developer для WebSphere Software - это среда быстрой разработки программного обеспечения для создания, анализа, тестирования, профилирования и развертывания приложений на основе технологий Web, SOA, Java и J2EE, а также порталов для сервера IBM WebSphere.
    • В разделе, посвященном порталам для WebSphere (EN), вы найдете портлеты, программное обеспечение и новостные материалы, ориентированные на разработчиков, использующих технологию WS Portal.
    • WebSphere MQ - это интерфейс прикладного программирования для организации взаимодействия между приложениями.
    • Решение WebSphere MQ Everyplace позволяет обращаться к корпоративной информации с удаленных и мобильных устройств, обеспечивая при этом гарантированную доставку сообщений.
    • Branch Transformation Toolkit для WebSphere Studio - это прикладная инфраструктура и набор специализированных инструментов на базе Eclipse, ускоряющие сборку многоуровневых транзакционных банковских приложений.
    • WebSphere Message Broker предоставляет расширенную реализацию Enterprise Service Bus, включающую возможности соединения и универсального преобразования данных для как стандартных, так и нестандартных приложений и сервисов, составляющих архитектуру SOA.
  • В число программных продуктов IBM для управления информацией входят семейство мощных серверов управления реляционными базами данных (РСУБД), хранилища данных, продукты для анализа данных и извлечения информации, решения по управлению медиаактивами и корпоративным контентом, а также средства для интеграции информации. Кроме того, продукты этой категории включают средства поддержки разработки на Java, которые предоставляют клиентские приложения, серверные инструменты и дополнительные утилиты, упрощающие создание и развертывание программного обеспечения.

    • СУБД IBM Informix обеспечивает превосходную производительность при работе с базами данных в средах с большим числом параллельно выполняющихся транзакций.
    • Программное обеспечение IBM для интеграции информации позволяет консолидировать и преобразовывать данные, тем самым повышая продуктивность, гибкость и производительность вашего бизнеса за счет оперативного доступа к нужной информации.