Проект информационной системы "Распределение учебной нагрузки на кафедре"

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 26.01.2013
Размер файла 1,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Для создания web-приложений используются разнообразные технологии и языки программирования, например:

· PHP.

· ASP.

· ASP.NET.

· JSP.

· CGI.

· C#.

Ряд из них, такие как PHP, имеют открытый код, распространяются свободно и могут использоваться практически на любых web-серверах, другие (ASP.NET) - привязаны к конкретным web-серверам.

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

Tomcat

Tomcat - программа - web-сервер, написанная на языке Java и реализующая спецификацию сервлетов и спецификацию JavaServer Pages (JSP), которые являются стандартами для разработки web-приложений на языке Java. Таким образом, Tomcat позволяет запускать web-приложения реализующие указанные выше спецификации и дополнительно содержит ряд программ для конфигурирования самого себя. Tomcat разрабатывается фондом Apache Software Foundation под лицензией Apache License и является программой с открытым исходным кодом.

Web-сервер IIS

IIS 6.0 - это мощный web-сервер, который предоставляет весьма надежную, управляемую, масштабируемую и безопасную архитектуру для web-приложений [21]. IIS 6.0 позволяет организациям любых размеров быстро и легко развертывать web-узлы и предоставляет высокопроизводительную платформу для приложений, разработанных с использованием Microsoft ASP.NET и Microsoft.NET Framework.

IIS 6.0 позволяет повысить надежность web-инфраструктуры и безопасность информационных систем, снизить совокупную стоимость поддержки информационной инфраструктуры благодаря упрощенной системе управления и объединения серверов, а также создать условия для повышения производительности труда разработчиков.

Web-сервер Apache

В данный момент параллельно развиваются две ветки Apache - версии 2.0 и 1.3. Вторая версия претерпела значительное количество изменений, которые в первую очередь коснулись ядра программы и некоторых важных модулей [22].

Apache - это полнофункциональный, расширяемый web-сервер, полностью поддерживающий протокол HTTP/1.1 и распространяющийся с открытым исходным кодом. Сервер может работать практически на всех распространенных платформах. Существуют готовые исполняемые файлы сервера для Windows, OS/2, Netware и нескольких UNIX-систем. При этом он очень прост в установке и конфигурации.

Apache настраивается с помощью текстовых конфигурационных файлов. Основные параметры уже настроены «по умолчанию» и будут работать в большинстве случаев. Если не хватает функциональности штатного Apache, то стоит присмотреться к распространяемым модулям, написанным Apache Group и сторонними разработчиками. Немаловажным преимуществом является то, что создатели активно общаются с пользователями и реагируют на все сообщения об ошибках.

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

Функция, которая заложена в протоколе HTTP/1.1 - аутентификация пользователей. С помощью штатных средств сервера Apache вы можете разграничить доступ к определенным страницам сайта для разных пользователей. Это нужно, например, для того чтобы сделать администраторский интерфейс к сайту. Для этого используются файлы.htaccess и.htpasswd, а также модули mod_auth и mod_access. Пользователи могут быть разбиты на группы, и для каждой из них можно назначить свои права доступа.

Для разделения дизайна и функциональной части сайта, а также для упрощения изменения статических объектов существует технология SSI. Она позволяет поместить всю повторяющуюся информацию в один файл (например, top.inc), а затем вставлять в страницы ссылку на нее. Затем, если понадобится изменить несколько строк в этой информации, то придется поменять их только в одном файле. Сервер Apache поддерживает эту технологию и позволяет использовать серверные включения в полном объеме.

Если на одном сервере с установленной операционной системой семейства Unix и сервером Apache заведено несколько пользователей, то каждому из них можно создать отдельную директорию. Точнее, она будет создаваться автоматически вместе с псевдонимом. Это делается с помощью модуля mod_userdir и директивы UserDir. Так, например, можно папке public_html в домашней папке пользователя сопоставить адрес www.site.ru/~user. Администратор сервера может разрешить или запретить определенным пользователям создавать домашние страницы, использовать SSI и другие функции сервера. Полноценный же хостинг обычно предусматривает создание отдельного виртуального сервера для каждого пользователя.

Сервер Apache был одним из первых серверов, которые начали поддерживать виртуальные сервера (хосты). Эта возможность позволяет размещать на одном физическом сервере несколько полноценных сайтов. У каждого из них может быть свой домен, администратор, IP-адрес и так далее.

Если нужно разместить на сервере домены domain.ru и domain.com, то для начала надо сделать так, чтобы в системе DNS им был сопоставлен ваш IP-адрес. После этого в конфигурационном файле Apache создаете две директивы <VirtualHost>, где описываете каждый виртуальный хост. Таким образом, сервер будет знать, на какую папку «отправлять» пришедший запрос.

В данный момент большинство интернет-страниц являются динамическими. Это значит, что их внешний вид и наполнение формируется с помощью программного скрипта, написанного на одном из «языков» (их нельзя в полной мере назвать языками, определение достаточно условно). В данный момент наиболее сильно распространены технологии CGI и PHP. Разумеется, в Apache существует поддержка и того, и другого, плюс возможность подключать другие языки.

Модуль mod_cgi позволяет размещать на сервере CGI-скрипты. Вообще, это исполняемые файлы, написанные на одном из допустимых языков программирования. Они могут содержаться как в откомпилированном виде (например, так делают, если пишут CGI на языке C++), так и в виде исходного текста (если на сервере установлен Perl, то программист может помещать и такие файлы. Иногда они имеют расширение.pl).

Что касается PHP, то возможность интеграции его в Apache предусмотрена разработчиками самого PHP. Apache же выполняет только функции посредника между скриптом и компилятором. Существует два способа интеграции PHP в Apache. Первый - установка специального модуля, расширяющего возможности сервера, и тогда он сам становится способным «компилировать» скрипты. И второй - установка в конфигурационных файлах связей между php-файлами и самим компилятором (он находится на диске в виде файлов.cgi или.exe).

На основе сервера Apache можно создавать не только простые любительские сайты, но и ресурсы, требующие серьезной криптографической защиты передаваемых данных. Специально для этого был разработан протокол SSL/TLS, а его поддержка была встроена в Apache 2.0. С помощью специального модуля можно осуществлять аутентификацию на основе именных сертификатов, что позволяет практически наверняка гарантировать подлинность пользователя.

Сервер Apache может вести протокол всех действий, совершаемых с ним. Причем администратор может сам выбрать степень подробности протокола. Протоколы ведутся отдельно для ошибок, для успешных операций и для каждого виртуального хоста.

Russian Apache это программный продукт, за основу которого был взят популярный HTTP-сервер Apache. К нему была добавлена функциональность, необходимая для корректной поддержки нескольких кодировок кириллицы одновременно, что потребовало внесения добавлений в основной код Apache.

Наиболее простым и эффективным приемом применения Apache в связке с Oracle является использование программного продукта Zend Core.

Zend Core

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

Zend Core базируется на версии PHP 5.2 и предлагает множество инноваций, позволяющих повысить надежность и эффективность создаваемых приложений.

Zend Core теперь сертифицирована для Windows Server 2008, давая возможность развертывания высокоэффективным приложениям на новой серверной платформе.

Пользователи по достоинству оценят расширенную поддержку баз данных, более тесную интеграцию с операционной системой Windows и другие усовершенствования. Сервис обновлений Zend Network Updater упростит установку доступных исправлений и патчей.

Системные требования:

· Linux SLES V9 & V10 on IBM pSeries (Zend Core for IBM only)

· Linux RHEL V4 & V5 on IBM pSeries (Zend Core for IBM only)

· Windows XP & 2003 (32 bit), Vista (32 & 64 bit)

· IBM AIX V5.2 & V5.3 on IBM pSeries (Zend Core for IBM only)

· Solaris V8, V9 & V10 on Sparc (Zend Core for Oracle only)

· i5/OS V6R1, V5R3 & V5R4 (Zend Core for i5/OS only)

Поддержка баз данных:

· DB2, DB2 Express-C, Informix

· MySQL

· Oracle Database 10g, 9i

· MS SQL Server

· PostgresSQL

Поддержка веб-серверов:

· Apache 1.3.x

· Apache 2.0.x (compiled in prefork mode only)

· Apache 2.2.x (compiled in prefork mode only)

· IIS 5, 6, 7

· Oracle HTTP Server (Zend Core for Oracle only)

· i5/OS HTTP Server (Zend Core for i5/OS only)

Поддержка PHP IDE:

· Zend Studio v5.5

· Zend Studio for Eclipse V6.0

· Zend Studio for i5/OS v5.5

· Zend Studio for Eclipse i5 Edition v6.0

Выбор связок «сервер+технология»

Apache + PHP

Классический вариант, подходит для большинства сайтов, обычно служит для создания Интернет-проектов среднего уровня сложности. Не обладает возможностями низкоуровневого доступа. Достаточно медленно работает на больших проектах. Затруднена отладка. В стандартной установке имеет большое количество типовых функций и библиотек. ООП полностью не поддерживает.

Apache + CGI

Универсальный вариант, подходит для создания интернет проектов низкого уровня сложности. Функциональность зависит от выбора языка программирования, на котором будет написано приложение, работающее через CGI-шлюз. Обеспечивает высокую производительность, особенно при использовании интерпретатора Perl. Типовые функции и библиотеки обеспечиваются выбранным языком программирования. С увеличением объёма проекта значительно повышается сложность написания программы и количество потребляемого трафика и оперативной памяти сервера, так как для каждого обращения к сайту запускается отдельная копия приложения.

Выбор среды разработки

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

IBM Visual Age for Smalltalk

IBM Visual Age for Smalltalk (далее VA Smalltalk) является наиболее мощной реализацией чистого объектно-ориентированного языка Smalltalk. Он предназначен для проектирования прикладного программного обеспечения разных масштабов: от автоматизации работы на мелких фирмах до транснациональных корпораций и охватывает все направления современного бизнеса: производство, банковское дело, финансы, страхование и т.д.

Семейство сред визуального программирования IBM Visual Age, частью которого является Smalltalk, предоставляет самую широкую и мощную поддержку языков и платформ, обеспечивая единую среду визуального программирования. Все это позволяет пользователям выбрать язык, который они сочтут более приемлемым: Java, Smalltalk, C++, Basic, Cobol, 4GL для тех аппаратных платформ, операционных сред и серверного программного обеспечения, которое используется в организациях. Все продукты интегрированы и являются кросс-платформенными.

VA Smalltalk дает возможность работать с различными серверами баз данных, мониторами транзакций, промежуточным коммуникационным программным обеспечением, с программным обеспечением на мэйнфреймах; поддерживается возможность построения информационных систем для Internet/ Intranet - сетей; может быть обеспечена возможность коллективной разработки; поддерживается контроль версий и изменений при ведении проекта. Перенос приложений с платформы на платформу можно осуществлять без редакции исходного кода.

Замечательная черта сред Visual Age - визуальная сборка приложений из компонент, которые создаются единожды, а затем используются в различных частях проекта. Этап сборки реально, в отличии от других средств RAD (Rapid Application Development - средство быстрой прикладной разработки), может происходить без ручного кодирования. Что еще более важно, логические взаимосвязи между компонентами системы представляются визуально, что существенно облегчает ведение проекта на протяжении всего его жизненного цикла.

В новой версии Visual Age Smalltalk 4.5, которая появляется на рынке в конце лета текущего года, добавляются, в том числе UML Designer, служащий для автоматизации анализа и проектирования программного обеспечения, и ObjectExtender, облегчающий создание сложных масштабируемых программ, использующих различные СУБД. Основное внимание при ведении проекта с появлением новых возможностей переносится на этапы анализа и проектирования, осуществляемые в соответствии с парадигмой объектно-ориентированного проектирования, наиболее полной реализацией которой является UML (Unified Modeling Language). При этом существует двусторонняя связь между модулями проектирования и полученным / измененным кодом. Все это позволяет, используя среду VA Smalltalk, реализовывать полный жизненный цикл информационной системы.

К сожалению, Smalltalk практически неизвестен российским специалистам. Возможно, одной из причин этого, является отсутствие сколько-нибудь заметного числа публикаций. В тоже время, на Западе, в особенности в США, он является наряду с C++ распространенным средством разработки прикладного ПО, лидируя при этом в отдельных прикладных областях (см., например, IDC White Paper: Smalltalk Strength Stand Out).

Microsoft Visual Studio 2003

Набор средств разработки Microsoft Visual Studio 2003, сопутствующая ему платформа разработки приложений Microsoft.NET Framework и подписка MSDN - ключевые элементы стратегии Microsoft Open Tools Platform по разработке приложений и дальнейшего развития комплекса Web-сервисов на основе XML [23]. Visual Studio 2003 и.NET Framework - краеугольные камни платформы.NET и важный этап реализации стратегии Microsoft в отношении Web-сервисов XML []. С появлением.NET Framework линейка поставляемых средств разработки Microsoft разделилась на 2 группы: пакеты продуктов (интегрированные системы разработки) и отдельно взятые инструменты разработки.

Интегрированная система разработки Visual Studio поставляется как в виде коробочных версий, так и по программам корпоративного лицензирования.

Visual Studio - первая полностью интегрированная среда разработки для создания Web-сервисов XML и Internet-приложений, предлагающая разработчикам в сочетании с.NET Framework новые перспективные возможности для быстрой разработки (rapid application development, RAD) и развертывания самых разнообразных Web-приложений для любых устройств и платформ.

Macromedia Dreamweaver CS3

Промышленный стандарт для разработки web-приложений, позволяющий пользователям эффективно проектировать, разрабатывать и поддерживать web-сайты и приложения.

Решение Adobe Dreamweaver CS3 предлагает мощные средства для работы с программным кодом и удобные визуальные инструменты, позволяющие создавать приложения в кратчайшие сроки. При разработке приложений почти невозможно добиться полной совместимости используемых тэгов, атрибутов и конструкций CSS с различными типами браузеров. Теперь эти сведения встроены в продукт Dreamweaver. Сконцентрируйте внимание на творческом процессе, а продукт Adobe Dreamweaver сделает всю остальную работу.

С Macromedia Dreamweaver CS3 разработчики получают возможность создания и сопровождения сайтов и приложений, поддерживающих самые современные технологии и алгоритмы. Новые возможности и средства оптимизации уменьшают время, необходимое для рутинных задач. Одна из главных особенностей данного релиза - это фокус на упрощении ключевых моментов процесса разработки и верстки. Если вы хотите начать изучение каких-либо технологий, подобных Ajax и использованием CSS, автоматическим нахождение CSS-багов в браузерах, значит этот релиз несет в себе все для вас необходимое.

Smart Web Builder 1.531

Сервисные средства:

§ FTP-эксплорер;

§ автоматическая замена;

§ вставка закладок.

Подсветка синтаксиса языков программирования (Assembler, ASP, Bat, C++, CORBA IDL, CSS, Html, Ini, Java, JavaScript, Pascal, Perl, PHP, Python, SQL, Tcl/Tk, UNIX Shell, VBScript, XML). › Подсветка парных скобок. Расширенный поиск и замена (поддержка регулярных выражений). Удобный подбор цвета в трёх шкалах (RGB, HSV, CMYK). Экспорт исходного кода в Html, RTF, TeX с учётом подсветки синтаксиса.

Средства программирования

› Суфлёр кода JavaScript и Html.

› Оптимизация и проверка html-кода.

› Диалоги конфигурирования и вставки html-тегов.

› Быстрая вставка всех основных тегов html.

› Вставка html-кодов символов.

› Бесплатные скрипты для web-страниц.

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

Проекты

› Создание и управление проектами.

› Импорт проектов из других редакторов.

HTMLедактор предоставляет пользователю:

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

Мощные сервисные средства и инструменты вставки HTML-кода, делающие процесс создания webтраниц быстрым, качественным и функциональным. Далее будут рассматриваться именно эти возможности редактора.

Внушительное количество готовых к использованию скриптов и шаблонов страниц уменьшающих ресурсоёмксть разработки.

Менеджер сайтов, который позволяет создать проект и с удобством управлять им. Благодаря высокой скорости загрузки может быть обеспечена работа с большими проектами, от 1000 файлов и более.

Smart Web Builder включает в себя удобную справочную систему. Команда Справка>Справка вызывает окно Справка, в котором в разделе Главное меню представлена информация о работе каждого пункта меню. Команда Справка>Справочники вызывает диалоговое окно Справочники, в котором представлена информация о большинстве тэгов языка HTML, их назначении, атрибутах и событиях, которые могут происходить с объектом, заключенным в конкретный тэг.

Вывод

Проанализировав все вышесказанное, решено было использовать следующее программное обеспечение:

§ среда разработки - Smart Web Builder 1.531;

§ сервер приложений - Zend Core For Oracle v2.5 (PHP Version 5.2.5);

§ технологии программирования - AJAX.

Данные продукты были выбраны, так как позволяют реализовать требования, поставленные перед системой, и являются свободно распространяемыми.

2.8 Руководства

Руководство администратора

Для развертки программы «Распределение нагрузки на кафедре», которая представляет собой webинтерфейс, необходимо выполнить следующие действия в определенном порядке:

1. Установить СУБД Oracle поддерживающую кодировку UTF-8. Внесение изменений в конфигурации Oracle не требуется.

2. Восстановить «дамп» (dump) базы данных, если требуется. «Дамп» можно восстановить с помощью утилиты «TOAD», позволяющей работать с базами данных Oracle.

2.1. Выполнить: Меню -> DBA-> data import/export->data utility import. Помощник утилиты поможет импортировать «дампы» без лишних усилий.

3. Не забудьте! Поменять конфигурацию подключения к базе данных в настройках сервера в файле «config/config_db_connect.xml». Укажите свои ЛОГИН и ПАРОЛЬ, который вы указали при установке СУБД Oracle.

4. Установить сервера PHP - Apache. Для этого можно использовать Zend Core - пакет разработки в среде PHP. Который включает в себя стабильную версию PHP, проверенные расширения PHP, драйверы баз данных и позволяет работать вышеперечисленным серверам, как единое целое.

5. Произвести настройки сервера PHP при помощи Zend Core Administration используя пароль администратора указанный при установке. На вкладке Configurations\PHP измените значение параметров:

5.1. register_globals на ON. Позволяет использовать глобальные переменные.

5.2. display_errors на OFF. Позволяет выводить ошибки на странице HTML.

6. Поместить все исходные файлы в папку, указанную в параметрах хоста. Для Zend Core значение по умолчанию C:\Program Files\Zend\Apache2\htdocs\

Руководство разработчика

Введение

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

· уровень представления (реализующий функции ввода и отображения данных);

· прикладной уровень (реализующий универсальные сервисы, а также функции, специфичные для определенной предметной области);

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

Браузер в данном случае выступает в роли «тонкого» клиента, который при помощи модуля JavaScript обращается к серверу Apache для получения необходимой выборки данных. Сервер, в свою очередь, делает запрос к базе данных Oracle при помощи прослойки Web-сервисов.

Рассмотрим подробнее механизм обмена данными между сервером приложений и СУБД Oracle.

После поступления запроса на выборку данных, сервер Apache обращается к Web-сервису, которому передает запрос на выборку данных из базы Oracle. Далее происходит процесс аутентификации на сервере баз данных. Если аутентификация завершена положительно, то база данных генерирует требуемый набор информации и возвращает результат выборки в Web-сервис.

Web-сервис производит сжатие данных и отправляет результат серверу Apache. Далее происходит процесс визуализации информации и вывод её на экран.

Система имеет модульную структуру. Модули системы можно объединить по языку программирования и разметки документа. Все модули взаимодействуют в совокупности.

Контрольный список программного обеспечения

Для разработки данной системы необходимо следующее программное обеспечение:

§ операционная система - Microsoft Windows XP SP2;

§ среда разработки - Adobe Dreamweaver CS3 или Smart Web Builder 1.531;

§ web-сервер для тестирования и отладки - Zend Core For Oracle v2.5 (PHP Version 5.2.5);

§ web-браузер для тестирования и отладки - Mozilla FireFox 3.0.11.

Динамический НТML

Dynamic HTML или DHTML - это способ создания интерактивного web-сайта, используя сочетание статичного языка разметки HTML, встраиваемого (и выполняемого на стороне клиента) скриптового языка JavaScript, CSS (каскадных таблиц стилей) и DOM (объектной модели документа).

Он может быть использован для создания приложения в Web-браузере: например, для более простой навигации или для придания интерактивности форм. DHTML может быть использован для динамического перетаскивания элементов по экрану. Также он может служить как инструмент для создания основанных на браузере видео-игр.

DHTML приложения, которые вполне автономны в браузере, без серверной поддержки, такой как база данных, иногда вынуждены обращаться к Single Page Applications, или SPA. Конкурирующая техника включает в себя Macromedia Flash для анимации и апплеты (applets).

Одно из неудобств DHTML - это сложность разработки и отладки, из-за различной степени поддержки среди web-браузеров вышеупомянутой технологии, а также разнообразие размеров экрана означает, что правильно отображаться будет только в ограниченном количестве браузеров и комбинаций размера экрана. Развитию последних браузеров, таких как Internet Explorer 5.0+, Netscape 6.0+, and Opera 7.0+, Mozilla FireFox 3.0.11 помогает общая DOM.

Технология AJAX

AJAX (Asynchronous JavaScript and XML) - подход к построению пользовательских интерфейсов web-приложений, при котором web-страница, не перезагружаясь, сама догружает нужные пользователю данные. AJAX - один из компонентов концепции DHTML.

Об Ajax заговорили после появления в феврале 2005-го года статьи Джесси Джеймса Гарретта (Jesse James Garrett) «Новый подход к web-приложениям». Ajax - не самостоятельная технология. Это идея.

Ajax, как подход к разработке пользовательских интерфейсов, базируется на двух основных принципах.

· Использование DHTML для динамичного изменения содержания страницы.

· Использование XMLHttpRequest для обращения к серверу «на лету», не перезагружая всю страницу полностью (также существует альтернативный вариант - динамическая подгрузка JavaScript с использованием DOM).

Использование этих двух подходов позволяет создавать намного более удобные web-интерфейсы пользователя на тех страницах сайтов, где необходимо активное взаимодействие с пользователем. Использование Ajax стало наиболее популярно после того как компания Google начала активно использовать его при создании своих сайтов, таких как Gmail, Google maps и Google suggest. Создание этих сайтов подтвердило эффективность использования данного подхода.

Классическая модель web-приложения

· Пользователь заходит на web-страницу и нажимает на какой-нибудь её элемент.

· Браузер формирует и отправляет запрос серверу.

· В ответ сервер генерирует полностью новую web-страницу и отправляет её браузеру и т.д.

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

Модель AJAX

· Пользователь заходит на web-страницу и нажимает на какой-нибудь её элемент.

· Скрипт (JavaScript) определяет требуемую для изменений часть страницы

· Браузер отправляет соответствующий запрос на сервер.

· Сервер отдает только ту часть документа, на которую пришел запрос.

· Скрипт (JavaScript) вносит изменения с учетом полученной информации (без перезагрузки страницы)

Часто сервер передает не готовый HTML-код, а только информацию, а HTML-элементы создаются исходя из этих данных, с использованием методов модификации DOM. При этом в качестве протокола передачи данных обычно используются XML и JSON.

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

Сверхдинамичные web-интерфейсы

Одно из главных затруднений, с которым сталкиваются разработчики интерфейсов web-приложений, состоит в том, что после того, как страница оказалась в браузере клиента, связь браузера с сервером заканчивается. Любое действие с элементом интерфейса требует повторного обращения к серверу с повторной загрузкой новой страницы. Из-за этого web-приложение теряет свою элегантность и медленно работает. Данную проблему можно решить с помощью JavaScript и объекта XMLHttpRequest.

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

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

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

Разумеется, не часто web-приложение требует от пользователя ввести серийный номер, но есть бесчисленное множество других примеров, где быстрая реакция интерфейса на действия пользователя очень бы пригодилась. А так как вся программная логика находится на сервере, получить такой результат в традиционном web-приложении весьма сложно.

JavaScript

Благодаря JavaScript определенное количество программной логики можно перенести в HTML-страницу, что позволит быстро реагировать на действия пользователя. Но есть и ряд проблем. Первая проблема заключается в том, что как только JavaScript попадает в браузер пользователя вместе со страницей, программная логика доступна для просмотра невооруженным глазом. В случае, например, с проверкой правильности введенного адреса e-mail это может быть и не страшно, но если проверка связана с серийным номером, алгоритм проверки становится доступным всем, кто скачал страницу.

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

Объект XMLHttpRequest

Решением этой проблемы может стать объект XMLHttpRequest. Этот объект впервые был реализован компанией Microsoft в виде объекта ActiveX, но сейчас он доступен как встроенный объект во всех браузерах Mozilla и Safari. Этот объект позволяет JavaScript-у осуществлять HTTP-запросы к удаленному серверу без необходимости перезагружать страницу. По сути HTTP-запросы отправляются и получаются полностью за «кулисами» страницы, а пользователь их даже не замечает.

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

Из-за своей противоречивой истории объект XMLHttpRequest еще не является частью какого-либо стандарта (хотя нечто подобное уже было предложено в спецификации W3C DOM Level 3 Load and Save). Поэтому существует два отличных друг от друга метода вызова этого объекта в коде скрипта. В Internet Explorer объект ActiveX вызывается так:

var req = new ActiveXObject («Microsoft.XMLHTTP»);

В Mozilla и Safari это делается проще (так как там это объект, встроенный в JavaScript):

var req = new XMLHttpRequest();

Формы подсистемы

Подсистема имеет следующие формы:

1. Авторизация пользователей;

2. Распределение нагрузки:

· распределение дисциплинарной нагрузки;

· распределение аудиторной нагрузки;

· распределение еженедельной нагрузки;

3. Ведение справочников:

· справочник преподавателей;

· справочник аудиторий;

· ввод коэффициентов перерасчета;

4. Просмотр и печать выходных документов:

· «Расчет учебной нагрузки кафедры»;

· «Нагрузка преподавателя»;

· «Выписка из учебного плана»;

· «Отчет о выполнении учебной нагрузки кафедры»;

· «Проект штатного расписания ППС».

Фактически форма одна, так как выбор года, варианта расчета, а также параметров, выбираемых в части «Фильтры», не изменяется. Подгружается оставшаяся часть страницы путем использования технологии AJAX.

Функции подсистемы

В данном пункте перечислены основные функциональные особенности форм.

1. Регистрация пользователей.

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

2. Распределение нагрузки.

· Для распределения любого вида нагрузки используются фильтры для облегчения работы пользователя с большим объемом информации в виде списка дисциплин.

· Пользователь имеет возможность выбрать все фильтры, доступные в подсистеме или только часть.

· При нажатии пользователей кнопки «Показать» подсистема обновляет список дисциплин, учитывая введенные фильтрами ограничения.

3. Распределение дисциплинарной нагрузки.

· При нажатии на кнопку «Добавить весь остаток» перенести все остаточные данные во временные ячейки, если у преподавателя уже предварительно имеются часы по данному вопросу, то данные суммируются.

· Кнопка «Сформировать поток» должна действовать только, если в списке дисциплин выбраны минимум две нагрузки.

· Кнопка «Создать подгруппу» должна действовать, если пользователь предварительно выбрал группу, которой преподается дисциплина, и курсор в самой нижней таблице напротив нужного преподавателя и вида занятия «лабораторная».

4. Распределение еженедельной нагрузки.

· Ввод данных по распределению еженедельной нагрузки производится в соответствующие ячейки таблицы «Рабочий план».

5. Обеспечить переход от одной формы к другой с сохранением выбора фильтров.

Обработка введенных данных

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

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.