Томский государственный университет





Скачать 392.45 Kb.
НазваниеТомский государственный университет
страница8/8
Дата публикации26.04.2015
Размер392.45 Kb.
ТипДипломная работа
100-bal.ru > Информатика > Дипломная работа
1   2   3   4   5   6   7   8

Заключение


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

Главным преимуществом разработки web-приложений, основанной на продолжениях, является то, что логика приложения описывается последовательностью шагов алгоритма. Безусловно, система остается разбита на определьнное количество логических компонент, но связи между этими компонентами обусловлены взаимодействием и потоком данных, которые успешно описыавют логику всего приложения. Таким образом, достигается сближение методик разработки «настольных» приложений и web-приложений. Появляется возможность логикой приложения описать работу бизнес-функций, включая управление обменом данными между пользователем и системой, что является невозможным при традиционном подходе к разработке web-приложений.

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

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

Таким образом, разработанная библиотека избавляет Python программистов от ряда проблем при разработке и поддержке комплексных web-приложений.

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

Кроме того, была произведена интеграция основных функций, позволяющих использовать продолжения для написания приложений, с популярным программным каркасом Django, что дает разработчикам дополнительные возможности при разработке сложных web-приложений. Возможности Django вместе с интегрированными API-вызовами управления обменом данными между клиентом и сервером образуют мощный инструментарий для эффективной разработки производительных информационных систем.

Список использованных источников




  1. Belapurkar A. Use continuations to develop complex Web applications // IBM developerWorks [Электронный ресурс]. – 2004. – Режим доступа: http://www.ibm.com/developerworks/library/j-contin.html, свободный.

  2. Continuation // Wikipedia, the free encyclopedia [Электронный ресурс]. – 2005. – Режим доступа: http://en.wikipedia.org/wiki/Continuation, свободный.

  3. Мельтцер К., Михальски Б. Разработка CGI-приложений на Perl – Пер. с англ. – М.: Вильямс, 2001. – 400с.

  4. Собчук А. Продолжение всемирной паутины // SmallTalk по-русски [Электронный ресурс]. – 2004. – Режим доступа: http://www.smalltalk.ru/articles/web-continuations.html, свободный.

  5. Control Flow // Apache Cocoon Project [Электронный ресурс]. – 2008 – Режим доступа: http://cocoon.apache.org/2.1/userdocs/flow/index.html, свободный.

  6. Closure (computer science) // Wikipedia, the free encyclopedia [Электронный ресурс]. – 2005. – Режим доступа: http://en.wikipedia.org/wiki/Closure_%28computer_science%29, свободный.

  7. About Stackless // Stackless Python [Электронный ресурс]. – 2008. – Режим доступа: http://www.stackless.com/, свободный.

  8. Django Documentation // Django [Электронный ресурс]. – 2007. – Режим доступа: http://www.djangoproject.com/documentation, свободный.

  9. FastCGI // Wikipedia, the free encyclopedia [Электронный ресурс]. – 2007. – Режим доступа: http://en.wikipedia.org/wiki/FastCGI, свободный.

Приложение А. Руководство системного программиста


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



Рисунок 125. Диаграмма классов и микропотоков

системы управления продолжениями
Хранилище состояний

Функция cont.storage.load_storage() (cont/storage/__init__.py)

Описание: представляет собой «фабрику» хранилищ состояний, которая создает объект хранилища по запрошенному типу.

Аргументы:

  • string storage_type – строка с именем класса используемого хранилища состояний.

Возвращает: cont.storage.base.Storage storage – экземпляр класса запрошенного хранилиша состояний.

Класс cont.storage.base.State (cont/storage/base.py)

Описание: является базовым абстрактным классом состояния, в котором определены необходимые менеджеру управления атрибуты и методы.

Аттрибуты:

  • stackless.Tasklet tasklet – микропоток функции-обработчика.

  • str|int parent_id – идентификатор предыдущего состояния.

  • int created – время создания состояния.

  • cont.storage.base.Storage storage – экземпляр класса используемого хранилища.

Методы:

  • public id()

Описание: генерирует идентификатор состояния

Возвращает: int|string identifier – идентификатор состояния.

  • public parent()

Описание: предоставляет доступ к родительскому узлу в дереве состояний.

Возвращает: cont.storage.base.State state – предыдущее состояние.

Класс cont.storage.base.Storage (cont/storage/base.py)

Описание: является базовым абстрактным классом хранилища состояний.

Методы:

  • public serialize()

Описание: сериализует указанное состояние в строку.

Аргументы:

    • cont.storage.base.State state – объект состояния.

Возвращает: string state_string – результат сериализации.

  • public deserialize()

Описание: восстанавливает объект состояния из строки.

Аргументы:

    • string state_string – результат сериализации состояния.

Возвращает: cont.base.Storage.State state – восстановленное состояние.

  • public create()

Описание: виртуальный метод, реализация которого должна создавать новое состояние.

Аргументы:

    • stackless.Tasklet tasklet – микропоток функции-обработчика.

    • int|string parent_id – идентификатор состояния-родителя в дереве состояний.

Возвращает: cont.storage.base.State state – новое состояние.

  • public load()

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

Аргументы:

    • int|string state_id – идентификатор состояния.

Возвращает: cont.storage.base.State state – запрошенное состояние.

  • public store()

Описание: сохраняет состояние в хранилище.

Аргументы:

    • cont.storage.base.State state – состояние для сохранения.

  • public id()

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

Аргументы:

    • cont.storage.base.State state – запрошенное состояние.

Возвращает: int|string state_id – идентификатор состояния.

Менеджер управления

Класс Manager (cont/__init__.py)

Описание: является основным в работе системы.

Аттрибуты:

  • stackless.Channel channel – канал для коммуникации между менеджером состояний и функцией-обработчиком.

  • cont.storage.base.Storage storage – хранилище продолжений.

  • HttpRequest request – слот для объекта запроса.

  • cont.storage.base.State current – начальное состояние текущего продолжения.

Методы:

  • public page()

Описание: создает новый тасклет, в котором запускается функция обработчик и передает ему управление.

Аргументы:

    • function page – запрошенная функция-обработчик.

    • HttpRequest request – объект запроса.

Возвращает: см. метод _continue().

  • public cont()

Описание: загружает по идентификатору состояние и передает управление тасклету, хранящемуся в нем.

Аргументы:

    • int|string state_id – идентификатор состояния.

    • HttpRequest request – объект запроса.

Возвращает: см. метод _continue().

  • private _continue()

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

Возвращает: HttpResponse response – ответ системы.

Функции пользовательского API

Класс Api (cont/__init__.py)

Аттрибуты класса:

  • Manager manager – менеджер продолжений.

Методы класса:

  • public current()

Описание: генерирует идентификатор начального состояния текущего продолжения.

Возвращает: int|string state_id – идентификатор состояния.

  • public request()

Описание: обеспечивает доступ к объекту запроса.

Возвращает: HttpResponse response – объект запроса.

  • public send_and_wait()

Описание: записывает в канал данные об ответе функции-обработчика, тем самым переключая управление на микропоток менеджера продолжений.

Аргументы:

    • HttpResponse response – объект ответа

  • public send ()

Описание: записывает в канал данные об ответе функции-обработчика, тем самым переключая управление на микропоток менеджера продолжений. Кроме того записывает в канал информацию о том, что транзакция завершена.

Аргументы:

    • HttpResponse response – объект ответа

Приложение Б. Руководство прикладного программиста Django


Прежде всего в файле настроек Django необходимо в секцию MIDDLEWARE_CLASSES добавить последним элементом cont.django.ContimuationMiddleware

Чтобы воспользоваться предоставляемыми библиотеками функциями API, их необходимо загрузить класс Api из модуля cont.

Создание функции-обработчика с продолжением имеет ряд незначительных отличий от создания оригинальных функций-обработчиков Django:

  • Доступ к объекту запроса осуществляется через обращение к методу Api.request() импортируемого из библиотеки объекта cont, а не через параметр функции-обработчика.

  • Функция-обработчик возвращает значение не с помощью конструкции «return», а как аргумент функции Api.send_and_wait(), если необходимо продолжить выполнение кода, или функции Api.send() при завершении работы функции-обработчика. Обе эти функции импортируются из библиотеки.

  • Необходимо функции-обработчику установить значение атрибут cont в True.

Получение идентификатора текущего продолжения можно получить через вызов функции Api.current(), также импортируемой из библиотеки. Его необходимо передавать с каждым запросом от программы-клиента в качестве параметра с именем «__continue».

Приложение В. Файлы проекта


  • cont/__init__.py – содержит классы Handle и Api

  • cont/storage/__init__.py – содержит функцию load_storage()

  • cont/storage/base.py – содержит абстрактные классы Storage и State

  • cont/storage/mem.py – содержит классы Storage и State для организации хранилища состояний в памяти

  • cont/django/storage.py – содержит классы Storage и State для организации хранилища состояний в пользовательской сессии Django

  • cont/django/__init__.py – содержит класс ContinuationMiddleware – фильтр Django

1   2   3   4   5   6   7   8

Похожие:

Томский государственный университет iconФедеральное агентство по образованию Томский государственный педагогический университет
Томский государственный педагогический университет совместно с Сибирским нии торфа со расхн, Институтом климатических и экологических...
Томский государственный университет iconSylvestris, Acer negundo, Fraxinus pennsylvanica, и Platanus occidentalis...
Томский государственный университет (Томск), Огайский государственный университет (сша)
Томский государственный университет icon«Томский государственный педагогический университет» (тгпу) рабочая Программа учебной дисциплины
Учебно-методическое пособие по курсу «Организационное поведение» /Д. М. Сафина. – Казань: Казанский (Приволжский) федеральный университет;...
Томский государственный университет icon«Томский государственный педагогический университет» (тгпу) «утверждаю»
Проректор по научной работе и информатизации А. Э. Калинина
Томский государственный университет iconТомский государственный университет
«Обществознание» и в результате освоения дисциплин ооп подготовки бакалавра: «История», «Философия»
Томский государственный университет iconРабочая программа дисциплины
Государственное образовательное учреждение высшего профессионального образования «Томский государственный университет»
Томский государственный университет iconТомский государственный университет
«Понятие, задачи и сущность правовой работы в Вооруженных Силах Российской Федерации»
Томский государственный университет iconТомский государственный университет
Профессиональные компетенции преподавателя, использующего метод кейс-стади в организации обучения
Томский государственный университет iconТомский государственный университет физический факультет
Программа предназначена для студентов VI курса физического факультета
Томский государственный университет iconРоссийской Федерации Национальный исследовательский Томский государственный университет
Специальность 032001 – Документоведение и документационное обеспечение управления
Томский государственный университет iconФгбоу впо «национальный исследовательский томский государственный университет»
Информационное обеспечение и делопроизводство в государственном и муниципальном управлении
Томский государственный университет iconФгбоу впо «национальный исследовательский томский государственный университет»
Информационное обеспечение и делопроизводство в государственном и муниципальном управлении
Томский государственный университет iconТомский государственный педагогический университет
К участию в школе приглашаются студенты, аспиранты, молодые сотрудники вузов и научных организаций
Томский государственный университет iconГосударственное образовательное учреждение высшего профессионального...

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



Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск