Блог им. kresh → Выдержки из курса Продвинутые Веб Технологии (часть 3)
продолжение тем веб архитектур
В веб приложениях, средний уровень это наиболее сложный программный компонент
Включающий следующие функции:
Пример кода:
Он предлагает:
Примеры: Jakarta Struts, Velocity, Turbine, Microsoft .NET

MVC это путь организации структуры программ в интерактивных приложениях.
Цели: функциональное разделение и ремонтопригодность
MVC разделяет програмный продукт на слои и опредляет интерфейсы между этими слоями
MVC используется как для традиционных приложений, так и для веб приложений
Компоненты MVC:
Клиент: посылает запросы и отображает обновление интерфейсов с содержанием ответов
Контроллер: получает запросы и решает, какой компонент должен быть использован для вычисления ответа.
Модель: представляет внутреннее состояние приложения и предлагает функциональные особенности, направленные на обработку запросов и обновление состояния приложения.
Вид: отображает внутреннее состояние приложения как пользовательский интерфейс, который может быть использован клиентом.
Ограничения:
Преимущества:
[+] Одно и то же приложение может предоставить несколько видов для различных клиентов
[+] Возможно изменить бизнес логику без влияния на представление (вид), предполагая, что представление состояние остается без изменений.
[+] Воможно изменить логику управления (что отвечает на конкретный запрос) обновляя только контроллера.
Недостатки:
[-] Запрос жизненного цикла, как правило, дольше, в связи с обработкой выполняемой контроллером.
[-] Не возможно выполнить некоторые местные оптимизации, например частичное превычисление касающееся только части интерфейса
В своем классическом варианте, MVC предполагает возможность отслеживать состояние
приложения в модели, а так же возможность для обновления пользовательского интерфейса, когда происходят изменения в модели.
С другой стороны, протокол HTTP

MVC компоненты реализованы с использованием веб архитектуры и Java J2EE API
Уровень представления
Роль уровня представления в веб архитектуре:В веб приложениях, средний уровень это наиболее сложный программный компонент
Включающий следующие функции:
- Получать запросы и посылать ответы
- Создавать пользовательские интерфейсы
- Воплощать бизнес логику и взаимодействие с уровнем данных
Цели уровня представления:
- Функциональное разделение — функции разработанные отдельными программистами должны быть воплощены отдельно
- Ремонтопригодность — изменения требований или програмные ошибки должны затрагивать только один програмный модуль каждый раз
- Повтороное использования кода — ПО должно быть собрано из компонентов которые можно использовать повторно. Это подразумевает что межкомпонетные зависимости должны быть минимизированы
- Уровень представления генерирует HTML который отрисован клиентским браузером
- Уровень представления генерирует HTML + CSS который отрисован клиентским браузером
- Уровень представления генерирует XML. Клиент использует XSL для создания HTML + CSS который будет отрисован браузером.
Пример кода:
<%@page language="java" %>
<%@ page import= "java.sql.*" %>
<% // DATABASE CONNECTION Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection("jdbc:odbc:acer", "aceruser", "acerpwd");
// QUERY PREPARATION AND EXECUTION
Statement stmt = conn.createStatement();
ResultSet result = stmt.executeQuery(
"SELECT NAME FROM NEWSCATEGORY ORDER BY NAME");
%>
<!-- CONTENT PRODUCTION -->
<html>
<head>
<title>News Categories Page</title>
</head>
<body>
<table>
<% while (result.next()) { %>
<tr>
<td><a href=“dett.jsp?par=<%= result.getString("NAME")%>”>
<%= result.getString("NAME")%> </a> </td>
</tr>
<% } %>
</table>
</body>
</html>
<!-- TEMPORARY OBJECTS DISPOSAL -->
<%
result.close();
stmt.close();
conn.close();
%>
Заметки:
1) Програмирование функциональных особенностей уровня представления в значении шаблонов страниц и серверных скриптов соединяет вместе:- Логику представления: HTML теги
- Логику доступа к данным: SQL запросы
- Контрольную логику: формы и навигационные якоря
- Бизнес-логику (если существует): например преобразование форматов данных, извлекаемых из базы данных
Фреймоворк представления
Фреймоворк представления это ПО архитектура определяющая организацию компонентов уровня представленияОн предлагает:
- Создание разделов в программных компонентах для того, чтобы улучшить ремонтопригодность
- Библиотеки, реализующих вспомогательные функции, которые расширяют функциональные возможности веб сервера и скриптовый языков
Примеры: Jakarta Struts, Velocity, Turbine, Microsoft .NET
Model View Controller

MVC это путь организации структуры программ в интерактивных приложениях.
Цели: функциональное разделение и ремонтопригодность
MVC разделяет програмный продукт на слои и опредляет интерфейсы между этими слоями
MVC используется как для традиционных приложений, так и для веб приложений
Компоненты MVC:
Клиент: посылает запросы и отображает обновление интерфейсов с содержанием ответов
Контроллер: получает запросы и решает, какой компонент должен быть использован для вычисления ответа.
Модель: представляет внутреннее состояние приложения и предлагает функциональные особенности, направленные на обработку запросов и обновление состояния приложения.
Вид: отображает внутреннее состояние приложения как пользовательский интерфейс, который может быть использован клиентом.
Ограничения:
- Иерархическая организация ПО компонентов: клиент ➙ модель ➙ контроллер ➙ вид
- Клиенты знают только контроллер
- Модель не знает клиент, и не имет дело с презентации (т.е. не может измененить GUI)
- Вид не знает бизнес-логику, которая обновляет состояния приложения. Вид только имеет дело только с презентацией (т.е. не может вызовать модель функции)
Преимущества:
[+] Одно и то же приложение может предоставить несколько видов для различных клиентов
[+] Возможно изменить бизнес логику без влияния на представление (вид), предполагая, что представление состояние остается без изменений.
[+] Воможно изменить логику управления (что отвечает на конкретный запрос) обновляя только контроллера.
Недостатки:
[-] Запрос жизненного цикла, как правило, дольше, в связи с обработкой выполняемой контроллером.
[-] Не возможно выполнить некоторые местные оптимизации, например частичное превычисление касающееся только части интерфейса
В своем классическом варианте, MVC предполагает возможность отслеживать состояние
приложения в модели, а так же возможность для обновления пользовательского интерфейса, когда происходят изменения в модели.
С другой стороны, протокол HTTP
- Не имеет состояния(stateless)
- Не позволяет автоматически обновлять страницу в браузере
MVC2

MVC компоненты реализованы с использованием веб архитектуры и Java J2EE API
- Клиент — браузер, запрашивает и отвечает по HTTP
- Контроллер сервлет, который обрабатывает все запросы
- Модель — набор классов Java (действие и состояние объектов)
- Вид — шаблон JSP
- 0
- kresh
- 23 июня 2011, 23:04
Комментарии (0)
rss свернуть / развернуть