Предпосылки формирования нового подхода к проектированию динамических ресурсов всемирной паутины ацп. Кейно П.П. Научный руководитель: проф., к.т.н. Силуянов А.В.
Цель проекта Дать пользователям Интернета, не обладающим навыками программирования, возможность создания веб-сайтов любой сложности вплоть до порталов и социальных сетей
Приложение Платформа Инфраструктура Облачные вычисления (Cloud computing)
ЯВУ (PHP, Ruby, Python) Обработчик XML-структуры Архитектура web-приложения Apache (сервер)SSL MySQL JavaScript Flash HTML CSS Управление виртуальными серверами Шифрование передаваемых данных Система управления контентом База данных Документ в браузере клиента Интерактивность Анимация Таблица стилей Конфигурация Шаблоны Контроллер Представление
Оптимальный уровень абстракции
….иначе – трясина Тьюринга Бойтесь Тьюринговской трясины, в которой всё возможно, но ничего конкретного нельзя сделать просто Алан Перлис
Уровни абстракции в web Система управления контентом (CMS) Framework Язык высокого уровня (PHP, Perl, Ruby) Язык высокого уровня (PHP, Perl, Ruby) XML-структура + визуальный редактор
Зарождение визуализации
А как же CMS?
Детализация сущностей Локация Динамический объект 1 Динамический объект 2 Динамический объект n Тип 1.1 Тип 1.2 Тип 1. n Метод 1.1 Метод 1.2 Метод 1. n Тип 2.1 Тип 2.2 Тип 2. n Метод 2.1 Метод 2.2 Метод 2. n Тип n.1 Тип n.2 Тип n.n Метод n.1 Метод n.2 Метод n.3 Каждый динамический объект и каждый тип данных такого объекта имеет права доступа не создание, редактирование и удаление. Причём как для групп, так и для отдельных пользователей.
Детализация сущностей index.html Информация о пользователе Главное меню Фотография Имя (текст) Кол-во сообщений (ссылка) Имя пункта меню (текст) Подменю (ссылка) new update delete Фото (изображение) Название (текст) Автор (ссылка) new upd del new update delete Права доступа: гости (авторизированные пользователи) администраторы все (в том числе гости) модераторы
Структурно! А не алгоритмически Объявляем модели данных:
Структурно! А не алгоритмически Объявляем локацию с нужными объектами
Визуализация контроллера
Шаблоны и WYSIWYG
О методах доступа к данным Просмотр Создание (new) Редактирование (edit/update) Удаление (delete) Автоматически генерируется страница, согласно шаблону Например при заходе на сгенерируется страница для ввода данных для объекта "object".
Производительность языков программирования
Применение C++ в Web Схема Андрея Шетухина (Rambler Co.)
Приложение Платформа Инфраструктура Облачные вычисления (Cloud computing)
Предоставление программного продукта Как сервис Как модуль для Web-сервера
Выводы Сохраняем гибкость, не теряем в удобстве Структурное описание – хорошая почва для визуализации (браузер "наоборот") За облачной платформой будущее!
Вопросы?