Разработка Веб-приложений

Специальность / Speciality: 6-05-0533-07 Математика и компьютерные науки / Mathematics and computer science

Профилизация / Profiling: Веб-программирование и интернет-технологии / Web Development and Internet Technologies

Учебная дисциплина, модуль / Academic discipline, module: Разработка Веб-приложений, модуль «Веб-программирование» / Web Application Development, module «Web Development»

 

Краткое содержание учебной дисциплины, модуля / Brief summary

Обзор технологий JEE. Предлагаемый подход по Web-программированию, а именно система кодирования распределенных систем на основе языка Java обладает следующими характеристиками:

— язык программирования объектно-ориентирован, в то же время довольно прост для освоения;

— цикл разработки приложений сокращен за счет того, что система построена на основе интерпретатора;

— приложение получается автоматически переносимым между множеством платформ и операционных систем;

— за счет встроенной системы сборки мусора программист освобождается от необходимости явного управления памятью;

— в интерактивном графическом приложении удается достичь высокой производительности (быстрого отклика на ввод пользователя) за счет встроенной в систему многопоточности;

— приложение легко сопровождается и модифицируется, т.к. модули могут быть загружены с сети;

— в приложения встроена система безопасности, не допускающая незаконного доступа и проникновения вирусов.

Основы клиент-серверных систем.

 Принципы и приемы объектно-ориентированного проектирования в отношении распределенных систем. Среды профессиональной разработки Eclipse и NetBeans. Разработка, размещение и запуск клиент-серверного приложения. Maven.

Паттерны проектирования.

   Идеология распределенных систем. Трехуровневая архитектура. Шаблон MVC. Front Controller.

Сервлеты. Принципы построения сервлета. Запуск сервлета. Параметры сервлета и параметры инициализации. Жизненный цикл сервлета. Обработка HTTP-запросов. Данные формы. Чтение параметров. Каналы. Сервлет. Генерация ответа сервера. Использование тэгов HTML и разработка собственных тегов. Persistent объекты. Многозадачность. Cookie API.  HTTPSession. Фильтры. Безопасность.

   

ORM-технологии доступа к базам данных (JPA, JDBC). Основные операторы и принципы программирования запросов на языке  SQL. Отделение данные от их представления. Упорядочение данных. POJO-объекты Описание запросов на метаязыке.  Драйвера JDBC. Утилиты. Соединение с базой данных. Пул соединений. Выделение ресурсов соединениям. Компилированные запросы. Хранимые процедуры. Транзакции. HTTP-запросы. Компиляция SQL-запросов к базе данных через сервлет. Обработка результатов.

JSP и JSF. Сценарии и директивы серверной страницы. Простейшая серверная страница. Неявные объекты. Использование методов, полей и тэгов. Сервлеты и JSP. Создание и обработка собственных JSP-тэгов. Включение внешних элементов. Директивы. Элемент plugin, param, useBean. Загрузка и задание bean-компонентов.

AJAX. Asynchronous Javascript And Xml. Асинхронные запросы. Обмен данными JSON и XML. Статический и динамический контент. Методы и свойства объекта XMLHttpRequest.

Технология Spring MVC. Архитектура MVC. Конфигурирование. Контроллер. Жизненный цикл запроса. Создание вида. Внедрение зависимостей (Dependency Injection).  Аспекто-ориентированное программирование (Aspect oriented programming – AOP).

JEE Technology Overview. The proposed approach for Web programming, namely a coding system for distributed systems based on the Java language has the following characteristics:

— the programming language is object-oriented, at the same time quite simple to master;

— the application development cycle is shortened due to the fact that the system is based on an interpreter;

— the application is automatically portable between multiple platforms and operating systems;

— the built-in garbage collection system frees the programmer from the need for explicit memory management;

— the interactive graphical application achieves high performance (fast response to user input) due to the multithreading built into the system;

— the application is easy to maintain and modify as modules can be downloaded from the network;

— the application has a built-in security system that prevents illegal access and virus penetration.

Fundamentals of client-server systems.

 Principles and techniques of object-oriented design with respect to distributed systems. Eclipse and NetBeans professional development environments. Developing, deploying and running a client-server application. Maven.

Design patterns.

   Ideology of distributed systems. Three-tier architecture. MVC pattern. Front Controller.

Servlets. Principles of constructing a servlet. Starting a servlet. Servlet parameters and initialization parameters. Servlet life cycle. Processing HTTP-requests. Form data. Reading parameters. Channels. Servlet. Generating a server response. Using HTML tags and developing your own tags. Persistent objects. Multitasking. Cookie API.  HTTPSession. Filters. Security.

   

ORM-technologies of access to databases (JPA, JDBC). 

Basic operators and principles of SQL query programming. Separation of data from their representation. Data ordering. POJO-objects Description of queries in a meta-language.  JDBC drivers. Utilities. Connection to the database. Connection pool. Allocation of resources to connections. Compiled queries. Stored procedures. Transactions. HTTP-requests. Compilation of SQL queries to the database via servlet. Results processing.

JSP and JSF. Server page scripts and directives. The simplest server page. Implicit objects. Use of methods, fields and tags. Servlets and JSP. Creating and handling custom JSP tags. Incorporating external elements. Directives. Plugin element, param, useBean. Loading and defining bean components.

AJAX. Asynchronous Javascript And Xml. Asynchronous requests. JSON and XML data exchange. Static and dynamic content. Methods and properties of the object XMLHttpRequest.

Spring MVC technology. MVC architecture. Configuration. Controller. Request life cycle. View creation. Dependency Injection.  Aspect oriented programming (AOP).

Формируемые компетенции / The formed competences

Применять современные технологии и базовые конструкции языков программирования для реализации алгоритмических прикладных задач и разработки веб-проектов.

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

Apply modern technologies and basic constructions of programming languages for realization of algorithmic applied tasks and development of web projects.

Analyze the context and the problem posed, reasonably choose the best way to solve it, coordinate partial solution projects into a common coherent architecture, perform project implementation taking into account the evaluation of accumulated and incoming data.

Результаты обучения (знать, уметь, владеть) / Learning outcomes (know, can, be able)

В результате изучения дисциплины студент должен:

знать:

основные этапы построения информационных систем.

принципы функционирования и взаимодействия распределенных систем на платформе JЕE.

передовые технологии разработки в области веб-программирования

правила использования документации и учебных материалов от авторов языка Java.

уметь:

программировать информационные системы на языке Java.

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

устанавливать и настраивать программное обеспечение сервера.

создавать программы для клиент-серверных приложений в сети интернет.

владеть:

методами разработки, отладки и тестирования веб-приложений.

As a result of studying the discipline the student should:

know:

— the main stages of building information systems.

— principles of functioning and interaction of distributed systems on the JEE platform.

— advanced development technologies in the field of web programming

— rules of using documentation and training materials from the authors of the Java language.

be able to:

— program information systems in the Java language.

— create web applications that interact with databases.

— install and customize server software.

— create programs for client-server applications on the Internet.

possess:

— methods of developing, debugging and testing web applications.

Семестр изучения учебной дисциплины, модуля / Semester of study

4

4

Пререквизиты / Prerequisites

Технологии программирования

Technologies programming

Трудоемкость в зачетных единицах (кредитах) / Credit units

2

2 сredit units

Количество аудиторных часов и часов самостоятельной работы / Academic hour of students’ class work,

hours of self-directed learning

Всего 114 часов, из них 68 аудиторных часа и 46 часов самостоятельной работы.

A total of 114 hours, of which 68 academic hours of students’ class work and 46 hours of self-directed learning.

Требования и формы текущей и промежуточной аттестации / Requirements and forms of current and interim certification

Опрос, опрос с устной защитой по решению задач и упражнений,

Зачет.

Survey, survey with oral defense on homework, written report with oral defense on solving problems and exercises, verification work.

End-of-term tests.