Технологий на платформе Java более 24, и возникает вопрос, каким из них обучать студентов по специальностям «Информационные системы» и «Вычислительная техника и программирование». Предлагается изучение Java и Java-технологий на двух курсах: бакалавриате и магистрантуре.
В настоящее время программирование перемещается в область разработки Web-приложений и интеграции их с существующим программным обеспечением, корпоративными базами данных, платежными системами, поисковыми системами, системами документооборота и автоматизации обработки данных и т.д. Для этих целей больше всего подходит язык программирования Java и созданные корпорацией Sun Microsystems технологии на его основе.
Основное преимущество языка Java заключается в переносимости Java-приложений и их масштабируемости, т.е. способности программы работать на любых аппаратных платформах, операционных системах и любых устройствах с поддержкой Java.
Существуют три редакции платформы Java:
- JavaSE (StandardEdition), используется для создания приложений для настольных компьютеров, серверов и систем реального времени;
- JavaEE (EnterpriseEdition), используется для создания сложных серверных приложений, Web-сервисов и корпоративных распределенных клиент-серверных приложений;
- JavaME (MicroEdition), используется для создания приложений для мобильных устройств, телефонов, карманных компьютеров, телевизионных приставок, принтеров и др. устройств. Рассмотрим основные технологии, входящие в состав Java SE:
- Swing (JFC) – это набор библиотек Java-классов, служащих для создания графических интерфейсов пользователя;
- JavaHelp-технология создание справочной системы для приложений;
- JNI-технология взаимодействия с программами и библиотеками, написанными на других языках программирования;
- Java 2DAPI-набор классов для работы с двухмерной графикой, а также операторы для работы с изображениями;
- JDBC-технология для доступа к большинству реляционных источников данных (баз данных) из Java-приложений. С его помощью можно подключаться к множеству баз данных SQL, а также другим табличным источникам данных, например, электронным таблицам и неструктурированным файлам;
- JAAS-технология для аутентификации пользователей и проверки их прав доступа;
- JMX-технология для создания распределенных Web приложений и сетевых сервисов;
- JMF-технология для работы с аудио-, видео- и другую медиа-информацией;
- JSSE – это набор пакетов для обеспечения безопасного обмена информацией в Интернете. Они реализуют Java-версию протоколов SSL и TLS и предоставляют средства для шифрования данных, проверки целостности сообщений, аутентификации на сервере и на клиенте;
- JSAPI-технология для использования речевых технологий в пользовательском интерфейсе, для распознавания голосовых команд, систем речевого ввода данных и синтеза речи;
- Java 3D – для работы с 3D-графикой в Java-приложениях;
- JAXP – для работы с XML-документами.
Рассмотрим основные технологии, входящие в состав J2EE:
- Enterprise JavaBeans (EJB) – это компонентная модель, предоставляющая такие сервисы, как управление транзакциями, обеспечение безопасности и подключение к базам данных;
- JavaMail – это набор абстрактных классов, моделирующих почтовую систему;
- JMS – это технология для создания переносимых Java-приложений на основе механизма обмена сообщениями;
- JSF-технология для создания Web-приложений путем компоновки страниц из многократно используемых компонентов пользовательского интерфейса, а также связывания этих компонентов с источниками данных, а событий, генерируемых на клиенте - с серверными обработчиками;
- JSP-технология для создания кросс-платформенных Web-страниц, которые разделяют пользовательский интерфейс и генерацию контента, благодаря чему дизайнеры могут изменять разметку, не трогая динамически формируемое содержимое;
- Сервлеты Java - расширяют функциональность Web-серверов, предоставляя кросс-платформенный, компонентный подход к созданию Web-приложений, свободный от ограничений производительности, характерных для CGI;
- JCA – стандартная архитектура для подключения приложений J2EE к разнородным корпоративным информационным системам (EIS);
- JMX – информационную модель управления для взаимодействия со многими системами и протоколами управления. Она содержит стандартные средства для сопоставления с общей информационной моделью CIM, информационной базой управления SNMP и объектной моделью Java при помощи резидентного серверного компонента EJB;
- JTA – высокоуровневая реализация и независимый от протоколов API, предоставляющий программам и серверам приложений средства для доступа к транзакциям.
Рассмотрим основные технологии, входящие в состав J2ME:
- Mobile Information Device Profile (MIDP) – технология разработки программ Java для мобильных устройств с ограниченными ресурсами. MIDP предоставляет приложениям базовую функциональность, включающую в себя средства для создания интерфейсов пользователя, подключения к сетевым ресурсам, локального хранения данных и управления жизненным циклом;
- Connected Device Configuration (CDC) – это стандартизированная инфраструктура для создания и развертывания приложений, доступ к которым может осуществляться со стороны сетевых и встроенных устройств;
- Mobile 3DGraphicsAPI для J2ME (M3G) – это специальный интерактивный API для реализации трехмерной графики, являющийся дополнительным компонентом J2ME.
Как видно, технологий на платформе Java более 24, и возникает вопрос - каким из них обучать студентов по специальностям «Информационные системы» и «Вычислительная техника и программирование»?
Изучение литературы и рынка труда для программистов позволило выделить наиболее важные технологии и темы для преподавания студентам в вузе. Предлагается изучение Java и Java-технологий на двух курсах: бакалавриатов и магистратуре. Курс для бакалавров обозначить как «Основы программирования на Java», а курс для магистрантов как «Основы разработки корпоративных приложений».
В содержании курса для бакалавров «Основы программирования на Java» предлагаются следующие темы:
Обзор платформы Java
- Платформа J2SE: JVM, JRE, JDK, Wrapper
- Средства разработки, обзор: NetBeans, Eclipse, IntelliJ IDEA, Oracle JDeveloper
Основы программирования на языке Java
- Особенности языка Java и его предназначение
- Структура пакета Java 2 SDK
- Простые типы данных. Приведение типов
- Операторы ветвления и циклы
- Функции. Перегрузка функций
- Синтаксис языка Java
- Принципы объектно-ориентированного программирования
- Классы. Инкапсуляция. Специальные методы класса
- Наследование. Типы доступа. Статические поля и методы
- Полиморфизм
- Интерфейсные классы
- Исключительные ситуации
- Потоки в языке Java
- Документирование Java программы
- Разработка пакета. Стандартные пакеты из Java 2 SDK
- Файловый ввод-вывод данных. Пакет IO
- Графические интерфейсы пользователя.
- Создание графического интерфейса при помощи классов пакета AWT
- Компоновки
- Обработка событий
- Создание графического интерфейса при помощи классов пакета JFC Swing
- Работа со звуком
Кроме указанного выше курса, предлагается организация студенческого кружка, на котором студенты могли бы развивать свои навыки и умения в программировании на Java в игровой форме. Для этого есть следующие игры:
- Robocode – это простой в использовании симулятор битв роботов, созданный на основе Java- технологий, который предлагает развлекательный подход к изучению программирования. Эта игра поможет и увлечься, и освоить язык JAVA, и попрактиковаться в программировании алгоритмов. В Robocode необходимо написать программный код поведения робота-танка на поле битвы. На русскоязычном сайте игры есть материалы, которые помогут вам разобраться с правилами игры и программированием роботов;
- CodeRuler, CodeRally и CodeInvadersChallenge – это игры реального времени на базе платформы Eclipse, направленные на изучение программирования на Java.
В содержании курса для магистрантов «Основы разработки корпоративных приложений» предлагаются следующие темы:
- Технология Java Server Pages (JSP) и сервлеты;
- Технология Remote Method Invocation (RMI);
- Технология Java Data Base Connectivity (JDBC) для работы с БД;
- Технология Java Web Services;
- Технология Java Message Service (JMS);
- Технология Enterprise Java Beans (EJB);
- Технология Struts Framework;
- Шаблоны проектирования