Реферат: Спецкурс Java-технологии и практики создания приложений в многоуровневой архитектуре. Мастер-класс. Java-technologies and practices for creating applications in multi-level architecture
Спецкурс
Java-технологии и практики создания приложений в многоуровневой архитектуре. Мастер-класс.
Java-technologies and practices for creating applications in multi-level architecture.
Программа, запланированная на осень 2011
Структура курса 2
Теоретическая часть 2
1. Типы корпоративных информационных систем 2
2. Роль языка Java в индустрии создания крупных КИС 3
3. Описание процесса разработки 3
4. Многоуровневая архитектура корпоративных информационных систем 3
5. Уровень бизнес-логики (Архитектурные шаблоны и основные технологии) 3
6. Уровень представления (Архитектурные шаблоны и основные технологии) 4
7. Уровень доступа к хранимым данным (Архитектурные шаблоны и основные технологии) 4
8. Уровень интеграции 4
9. Методики создания качественного ПО 4
10. Инструменты разработки 5
Почасовая программа спецкурса 6
Мастер класс 6
Практикум 7
Структура курса
Предлагается построить курс в виде трёх основных частей:
^ Теоретическая часть. Цель этой части сформировать каркас знаний по архитектурам, технологиям и практикам создания КИС.
Мастер класс. Цель мастер класса - продемонстрировать в реальном времени приёмы и практики разработки модельного приложения опытным разработчиком.
Практикум. Цель практикума – освоение студентами основных технологий и практик разработки. Эта цель будет достигаться посредством двух типов заданий:
После каждой лекции студентам будет предложено выполнить небольшие практические задания, которые будут состоять в добавлении небольших фрагментов функциональности к разрабатываемому на лекции модельному приложению.
Разработка модельного приложения с нуля по образцу.
Теоретическая часть
В данном разделе приведены темы лекций с приблизительным содержанием.
Звёздочкой (*) отмечены технологии используемые в Ай-Теко ЦКБИТ.
Двумя звёздочками (**) отмечены технологии, на которых в настоящее время действующих проектов нет, но могут появиться.
Тремя звёздочками (***) отмечены технологи, по которым требуется провести практикум.
Типы корпоративных информационных систем
Неформальный обзор типов корпоративных информационных систем
Приложения АРМ для работы операторов обслуживающих автоматизированные бизнес-процессы предприятия*
Порталы Business to Employee*
Порталы Business to Customer*
Приложения Business Intelligence*
Корпоративные интеграционные шины*
Интеграционные системы Business to Business*
Приложения для взаимодействия между сотрудниками (электронная почта, wiki, блоги, мессенджеры, социальные сети)*
CRM системы (стратегии)
ERP системы
Роль языка Java в индустрии создания крупных КИС
Обоснование роли языка Java в создании крупных корпоративных информационных систем.
Описание процесса разработки
Модели жизненного цикла (Каскадная, итеративная)
Методологии разработки RUP, Agile (Scrum, XP)
Многоуровневая архитектура корпоративных информационных систем
Историческая перспектива от мейнфреймов через клиент-сервер к многоуровневой архитектуре и обратно к одноуровневой в облачных архитектурах
Причины разделения крупных систем на уровни логические и физические
Физические
Централизация бизнес-логики
Балансировка нагрузки
Защита
Управление транзакциями (В том числе распределёнными)
Логические
Управление сложностью
Облегчение тестирования и внесения изменений
Постепенный уход от разделения физических уровней и более тесная интеграция логических уровней (веб-каракас Ruby On Rails) в процессе движения в сторону облачных архитектур (SaaS, PaaS и IaaS).
Краткий обзор уровней и их назначения
Уровень бизнес-логики (Архитектурные шаблоны и основные технологии)
Архитектурные шаблоны
Сценарий транзакции
Модель предметной области
Модуль таблицы
Технологии
^ CORBA* (IDL, IIOP)
EJB 2.1*,3.0* Session Beans*, Message Driven Beans*
Spring Framework*
AOP* (Aspect Oriented Programming) для реализации ортогональных областей отвественности
Сервера приложений
Отличие контейнеров сервлетов (Tomсat, Resin, Jetty) от полноценных серверов приложений (IBM WebSphere AS*, Oracle/BEA Weblogic*, Redhat JBoss)
Уровень представления (Архитектурные шаблоны и основные технологии)
Архитектурные шаблоны
Model View Controller
Технологии
Web Services JAX-RPC* JAX-WS*
Толстый клиент
Eclipse RCP (SWT) Swing/AWT
Adobe AIR (FLEX)
Тонкий клиент
Традиционные технологии
Сервлеты***, JSP***, Struts***, JSF*
Rich Internet Applications
GWT*** (Google Web Toolkit), Adobe FLEX, JavaFX
Javascript* библиотеки Ajax (jQuery*)
Ненавязчивый javascript (unobtrousive javascript)
HTML*, CSS*
Портальные решения (Порталы, портлеты, виджеты)
Уровень доступа к хранимым данным (Архитектурные шаблоны и основные технологии)
Архитектурные шаблоны
Table Data Gateway
Active Record
Data Mapper
Технологии
JDBC* (Недостатки, Spring JDBC API*** - как более удобная обёртка JDBC API)
EJB 2.1 Entity Beans (Не рекомендованы к использованию, но рассказать нужно для исторической перспективы. Желательно привести, как пример не ортогонального интерфейса и грязного кода.)
EJB 3.0* JPA*** и Hibernate***
Spring ORM* интеграция
Уровень интеграции
Архитектурные шаблоны
Service Provider/Service Consumer
Low coupling/High cohesion
Асинхронное взаимодействие Publish Subscribe / Point To Point
Технологии
MOM (Message Oriented Middelware)
JMS (Spring JMS***) EJB Message Driven Beans* (Active MQ, WebSphere MQ)
Веб сервисы***
Архитектурный стиль SOA*
ESB**
BPEL**
Методики создания качественного ПО
Основные свойства и принципы построения качественного кода:
Управление из единой точки, оно же – не повторяйся DRY (Don’t Repeat Yourself);
SLAP (Single Level Of Abstraction) разделение уровней абстракции;
SRP (Single Responsibility Principle) принцип единой ответственности,
YAGNI (You Ain’t Gonna Need It) Не добавляй функциональность впрок – она не понадобится;
ортогональный дизайн;
Именование программных сущностей;
Не изобретай колесо
и др.
Рефакторинг
Разработка управляемая тестами (Test Driven Development)
Разработка небольшими приращениями функциональности
Цикл разработки: Создание теста (Спецификации), Минимильная реализация (Которая позволяет тесту завершиться успешно), рефакториг для получения чистого кода (В рамках отведённых ресурсов).
jUnit*** тестовый фреймворк
Инструменты определения тестового покрытия (Emma, Eclemma*** для Eclipse, Cobertura*)
Шаблоны проектирования для облегчения тестирования. Вставка зависимости (Dependency Injection) Spring***
Использование тестовых двойников для тестирования опосредованного ввода и вывода (Moсk***, Stub***) и ускорения выполнения (Fake). По книге «Шаблоны тестирования xUnit» Джерард Месарош
Автоматическая сборка приложений (Ant***, Maven)
Непрерывная интеграция (Hudson*)
Шаблоны проектирования GOF как язык взаимодействия в команде. В качестве примера, наиболее часто используемые:
Template Method
Factory
Singleton (Критика)
Composite Method
Инструменты разработки
IDE Eclipse*** WTP (IBM RAD* (Rational Application Developer)), IntelliJ IDEA, NetBeans
JUnit
Инструменты определения тестового покрытия (Emma, Eclemma*** для Eclipse)
Автоматическая сборка приложений (Ant***, Maven*)
Непрерывная интеграция (Hudson*)
Мониторинг сетевого трафика (TCP/IP Monitor*)
Почасовая программа спецкурса
В следующей таблице приведено содержание каждой лекции, длина которой две пары
№№ Лекции
Темы
1
Вводная лекция.
^ Обзор типов корпоративных информационных систем;
Роль языка Java в индустрии создания крупных КИС;
Описание процесса разработки;
Методики быстрого создания качественного ПО(Часть 1);
^ Многоуровневая архитектура корпоративных информационных систем;
Обзор модельного приложения
2
Уровень бизнес-логики (Архитектурные шаблоны и основные технологии);
Инструментальные средства;
Мастер класс по разработке слоя бизнес логики модельного приложения с использованием практики разработки управляемой тестами и каркаса Spring.
3
^ Уровень представления (Архитектурные шаблоны и основные технологии) Часть 1;
Инструментальные средства;
Мастер класс по разработке слоя представления модельного приложения с использованием JSP/Servlets/javascript/jQuery.
4
^ Уровень представления (Архитектурные шаблоны и основные технологии) Часть 2;
Инструментальные средства;
Мастер класс по разработке слоя представления модельного приложения с использованием GWT.
5
^ Уровень доступа к хранимым данным (Архитектурные шаблоны и основные технологии);
Инструментальные средства;
Мастер класс по разработке слоя доступа к хранимым данным модельного приложения c использованием JDBC, Spring JDBC API и ORM каркаса JPA.
6
^ Уровень интеграции;
Инструментальные средства;
Мастер класс по разработке слоя интеграции двух приложений посредством JMS и веб-сервисов.
Мастер класс
Почти на каждой лекции предусмотрен мастер-класс, демонстрирующий разработку модельного приложения в режиме реального времени. Мастер класс предполагает, что существует разработанное приложение, размещённое в Интернете на сайте GitHub.com (https://github.com/alexpetrov/Mentor-Bank ). Это позволит студентам загружать на свои ноутбуки поэтапно разрабатываемое лектором приложение. Кроме того это позволить сдавать практическое задание в виде pull-запросов системы GitHub.com.
Для проведения мастер-классов требуется наличие проектора в аудитории.
После каждой лекции будет сообщаться список ПО (по e-mail), которое нужно установить к следующей лекции.
Практикум
Для наилучшего усвоения материала требуется практикум по технологиям, которые наиболее широко используются в проектах Ай-Теко ЦК БИТ.
В частности нужен практикум по следующему стеку технологий:
Веб-интерфейс: JSP/Servlets/javascript и GWT.
Бизнес-логика: Spring IOC EJB 3.0
Доступ к данным: OpenJPA и/или Hibernate.
Интеграция: Веб-сервисы JAX WS, и обмен сообщениями Spring JMS и MDB.
Должен использоваться следующий инструментарий:
Язык программирования и runtime: Java 6
Среда разработки: Eclipse JavaEE 3.6 Helios;
Веб каркас: GWT плагин для Eclipse;
Инструмент автоматической сборки: ANT;
Тестовый фреймворк: JUnit 4.8;
Библиотека создания тестовых двойников Mockito;
СУБД: derby 10.x.
Сервер приложений: Tomcat 7.0 и JBoss 7.0.
Само задание должно быть не сложным по сути, то есть должно содержать несколько (не больше семи взаимосвязанных) сущностей хранимых в БД и модифицируемых через веб-интерфейс. Кроме того, должны быть реализованы сценарии с асинхронными взаимодействиями и интеграция между приложениями через веб-сервисы.
еще рефераты
Еще работы по разное
Реферат по разное
Веремеевка в ХІХ веке борьба крестьян против крепостничества
17 Сентября 2013
Реферат по разное
Утверждаю: Декан Физико-технического факультета
17 Сентября 2013
Реферат по разное
Практикум. Системи оподаткування для юридичних осіб. Декларування доходів громадян. 11. 01. 2012 о 15. 00
17 Сентября 2013
Реферат по разное
З. Е. Алексеева о. М. Тетерюкова практикум
17 Сентября 2013