Методические указания по выполнению курсовой работы для студентов направления 230100 "Информатика и вычислительная техника" специальности 230101 "Вычислительные машины

Вид материалаМетодические указания

Содержание


Электронная версия
Universal Resource Locator
2. Цель и задачи выполнения курсовой работы
3.Основные требования к курсовой работе
Active Server Pages
Microsoft Internet Information Server
Representational State Transfer (протокол передачи состояния для интерпретации в представлении)
3.2. Исходные данные к курсовой работе
3.3. Задание на курсовую работу
3.4. Объем курсовой работы
3.5. Защита курсовой работы
4.1. Основные этапы проектирования
4.2. Методические указания к выполнению отдельных
Программные реализации алгоритма оптимизации.
Программная реализация Web приложения.
Подобный материал:
  1   2   3


Федеральное агентство по образованию

Государственное образовательное учреждение

высшего профессионального образования


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


Кафедра электронных вычислительных машин


ОПЕРАЦИОННЫЕ СРЕДЫ


Методические указания

по выполнению курсовой работы

для студентов направления 230100

"Информатика и вычислительная техника"

специальности 230101 "Вычислительные машины,

комплексы, системы и сети"

дневного и вечернего обучения


Электронная версия


Тула, 2008


Разработал и подготовил:

канд. техн. наук, доцент каф. ЭВМ Г.Б. Берсенев


Содержание


стр.
  1. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2. Цель и задачи выполнения курсовой работы . . . . . . . . . . . . . . . . . . 5

3. Основные требования к курсовой работе . . . . . . . . . . . . . . . . . . . . 5

3.1. Тематика курсовой работы . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

3.2. Исходные данные к курсовой работе . . . . . . . . . . . . . . . . . . . .. 12

3.3. Задание на курсовую работу . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.4. Объем курсовой работы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16

3.5. Защита курсовой работы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17

4. Методические указания к работе над курсовой работой . . . . . . .17

4.1. Основные этапы проектирования . . . . . . . . . . . . . . . . . . . . . . .17

4.2. Методические указания к выполнению отдельных

этапов проектирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.3. Содержание разделов пояснительной

записки (текстовой части) к курсовой работе . . . . . . . . . . . . . . ..19

Список литературы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19


1. Введение


В настоящее время разработка программного обеспечения ведется в рамках корпоративных сетей ЭВМ, среди которых все большее распространение получают Интранет/Интернет сети. Для работы в таких сетях используется совершенно новый вид программных продуктов - Web приложения, в которых тем или иным способом реализуются клиентская и серверная активности, широко применяются СОМ объекты и Web сервисы для осуществления основной функциональности приложения. В Web приложениях иначе, чем в локальных приложениях MS Windows, реализуются и графический интерфейс пользователя, и взаимодействие с базами данных (серверами баз данных), и, вообще, организация всего приложения. Появилась и платформа Microsoft .Net с удобной средой разработки Web приложений - MS Visual Studio .Net.

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

Известно, что серверы Web хранят информацию в виде текстовых файлов, называемых также страницами сервера Web. Помимо текста, такие страницы могут содержать ссылки на другие страницы (расположенные на том же самом или другом сервере), ссылки на графические изображения, аудио- и видеоинформацию, различные объекты ввода данных (поля, кнопки, формы и т. д.), а также другие объекты. Фактически, страница Web представляют собой некоторое связующее звено между объектами различных типов. Их проектируют с применением специального языка разметки гипертекстов Hyper Text Markup Language, или сокращенно - HTML.

Для доступа к информации, расположенной на серверах Web, пользователи применяют специальные клиентские программы - браузеры. Наибольшей популярностью пользуются браузеры Microsoft Internet Explorer и Netscape Navigator. Если доступ к приложению на сервере осуществляется только через браузер на клиентской стороне, то такой клиент называется тонким.

Каждая страница сервера Web имеет свой так называемый универсальный адрес ресурса Universal Resource Locator (URL). Для того чтобы получить доступ к той или иной странице, пользователь должен указать ее адрес URL программе браузера. Как правило, любой сервер Web имеет одну главную страницу, содержащую ссылки на все другие страницы этого сервера. Поэтому просмотр содержимого сервера Web обычно начинается с его главной страницы.

Когда пользователь указывает браузеру адрес страницы сервера Web, она начинает загружаться с сервера. Для этого браузер устанавливает соединение с сервером Web, применяя протокол передачи данных Hyper Text Transfer Protocol (HTTP), получает нужную страницу и разрывает соединение.

Существуют различные способы реализации серверной активности (способности серверных страниц принимать и сохранять передавемые клиентом данные, выполнять вычисления с использованием введенных данных, работать с базой данных и т. д.). Традиционный (классический) способ создания активных серверных страниц (Active Server Pages, ASP) заключается в добавлении скриптов на языках " onclick="return false">
Современные технологии, такие как ASP.NET, .NET Remouting, AJAX, Java и многие другие позволяют создавать активные серверные страницы практически без скриптов, а код таких страниц, написанный на объектно-ориентированных языках C# и Java, хранится в двоичном (откомпилированном) виде. При этом автоматизируется процесс создания кода страниц и значительно упрощается его отладка.


2. Цель и задачи выполнения курсовой работы


Курсовая работа по операционным средам выполняется для закрепления знаний по курсу "Операционные среды" и приобретения навыков комплексной реализации прикладной задачи (задачи оптимизации) в виде Web приложения с использованием Web и SQL серверов, технологий .NET Remouting, AJAX и Web сервисов, а также различных инструментальных систем и библиотек, автоматизирующих проектирование и программирование создаваемого приложения. Курсовая работа является итоговой работой по следующему циклу ранее изученных дисциплин: "Программирование на языке высокого уровня", "Операционные системы", "Технологии программирования", "Объектно-ориентированное программирование", "Системное программное обеспечение", "Базы данных", "Сети ЭВМ и телекоммуникации".

Задачами курсовой работы являются:
  • приобретение навыков решения задач оптимизации булева типа;
  • практическое освоение современных технологий создания программных продуктов, использующих такие инструменты разработки, как CASE-система Rational Rose;
  • практическое овладение методами и средствами создания активных серверных страниц и Web сервисов;
  • приобретение навыков создания баз данных в Интернете с использованием серверов баз данных;
  • практическое освоение Web технологий HTML, XML, CGI, ISAPI, ASP.NET, ADO.NET,.NET Remouting и AJAX;
  • приобретение практических навыков оформления и выпуска документации в соответствии с ГОСТ [1 - 12].


3.Основные требования к курсовой работе


3.1. Тематика курсовой работы


Технология Microsoft Component Object Model (COM) до 2002-2003 гг. широко использовалась программистами, работающими на языке С++, для реализации повторного использования кода и организации межъязыкового взаимодействия. Она позволяет создать двоичный СОМ-сервер, содержащий исполняемый код СОМ объекта, зарегистрировать его в реестре компьютера и затем обращаться к нему из различных программ.

Технология активных серверных страниц ( Active Server Pages - ASP), также была разработана фирмой Microsoft для использования вместе с компонентами СОМ в самых различных прикладных областях (электронная коммерция, дистанционное обучение, проектирование и т. п.). Классические активные серверные страницы - это файлы с расширением .asp, которые расположены на сервере и содержат скрипты (сценарии) на языках " onclick="return false">
Наряду с технологией ASP могут использоваться и менее популярные способы реализации серверной активности - специальные программные расширения сервера Web, такие, как CGI и ISAPI. Программы CGI используют стандартный шлюзовой интерфейс Common Gateway Interface (CGI) для получения (через протокол HTTP) информации от пользователя, для ее обработки и отправки обратно в виде нового документа HTML, либо в виде ссылки на существующий документ или на другой объект.

Взаимодействие с сервером с использованием ASP и CGI выполняется следующим образом. Для ввода информации со стороны пользователя в документ HTML встраиваются формы, содержащие такие органы управления, как текстовые поля, списки, переключатели, кнопки и т. д. Обычно одна из кнопок предназначена для завершения ввода. Когда пользователь, работая с браузером, заполнит всю форму, он нажимает эту кнопку, и данные из полей формы передаются программе CGI (ASP). Обработав данные, программа сервера динамически формирует новый документ HTML с результатами обработки и отправляет его обратно пользователю. При необходимости серверная программа может обращаться к серверу баз данных.

Если сервер Web создан на базе Microsoft Internet Information Server (IIS), вместо программ CGI можно использовать приложения ISAPI, реализованные в виде библиотек динамической загрузки DLL.

Технология активных серверных страниц ASP предназначалась для работы под управлением MS Windows NT, а затем и для MS Windows 2000/XP.

При использовании активных серверных страниц сервер Web отвечает за получение данных от пользователя и подготовку страниц, отправляемых обратно. Для реализации сложной функциональной обработки запросов пользователей (выражаясь более формально, для реализации бизнес-логики), для которой недостаточно возможностей скриптовых языков или требуется высокая скорость обработки запросов, сервер может вызывать COM объекты или ActiveX компоненты, создаваемые обычно на языке С++. Для работы с базами данных сервер обычно обращается к серверу баз данных, интерфейс которого (например, объектный интерфейс ADO - Active Data Objects) содержит множество встроенных объектов и функций, значительно упрощающих программирование работы с базами данных. Обращения сервера к активным объектам, реализующим бизнес-логику, и к серверу баз данных выполняются либо средствами ASP, либо при помощи расширений CGI или ISAPI.

Классическим приложением Web называется набор страниц ASP, HTML, динамических HTML (DHTML), объектов COM, клиентских и серверных элементов управления ActiveX, клиентских и серверных сценариев, а также аплетов и сервлетов Java, расположенных на одном или нескольких серверах Web и предназначенных для работы в рамках одного приложения. При этом активные компоненты приложений Web могут обращаться к серверам баз данных или другим прикладным серверам для выполнения тех или иных запросов.

Более современными Web приложениями являются приложения на базе платформы .Net, использующими Web сервисы (Web службы) для реализации основной функциональности приложения (например, для реализации алгоритмов оптимизации). К Web сервисам можно обращаться из консольного приложения, Windows приложения или через браузер.

В отличие от классических ASP технология ASP.NET использует язык C# (или язык VB.NET) для написания активных серверных страниц. В этом случае основная функциональность приложения может быть реализована на языке C# без использования Web сервисов.

Несколько лет назад многие разработчики Web приложений сделали ставку на XML, XSLT, Extensible HTML (XHTML) и набор основанных на тегах "X"-языков. Сейчас новой модной технологией является Asynchronous " onclick="return false">
Полнофункциональные интернет-приложения (RIA) - это одно из названий следующего поколения web-сервисов во Всемирной паутине, которые сейчас обозначаются как сервисы "Web 2.0".

Ajax, скорее, представляет собой модель web-приложения, чем конкретную технологию. Он включает в себя несколько технологий, которые объединяет асинхронность загрузки и способ представления контента:
  • XHTML и CSS для представления стиля;
  • API модели DOM (Document Object Model), предоставляемый браузером для динамического отображения и взаимодействия;
  • Асинхронный обмен данными, обычно XML;
  • Использование сценариев на стороне браузера, главным образом, " onclick="return false">

Цель совместного использования этих технологий - это обеспечение целостной, бесперебойной работы пользователя через интернет путем обмена небольшими количествами данных с серверами, на которых размещен контент, вместо того, чтобы перезагружать и заново интерпретировать всю страницу после нескольких действий пользователя. При помощи различных наборов инструментов Ajax и библиотек (например, Sajax или Zimbra), обычно реализованных в виде сценариев " onclick="return false">
Движок Ajax использует объект XMLHttpRequst для асинхронного обмена данными с удаленными серверами. В Internet Explorer 6 этот объект реализован при помощи элемента управления ActiveX, а не встроенными средствами " onclick="return false">
Использование " onclick="return false">
Использование " onclick="return false">
 .Net Remoting — новейшая технология связывания распределенных приложений, предложенная корпорацией Microsoft. Она обеспечивает вызов методов удаленных объектов, находящихся под управлением среды Microsoft .Net. Поддерживается множество услуг, таких, как активация удаленных объектов, контроль времени их существования, взаимодействие между удаленными объектами через различные транспортные каналы.

Во многом .Net опирается на тот опыт, что был накоплен за много лет создания распределенных приложений на базе RPC, CORBA, DCOM и EJB. В архитектуре .Net Remoting также выделяют клиентскую и серверную машину. Сервером является хост, отвечающий на запрос, а клиентом — хост, его отправляющий. Однако в отличие, скажем, от EJB это разделение относительно условно — в любой момент роли могут быть изменены. В этом смысле она похожа на технологию Web-сервисов.

Как и в RPC и CORBA, клиент локально работает только с классом-посредником (proxy). Этот класс генерируется средой одним из трех способов: либо на основе экземпляра кода удаленного класса, либо на основе класса, содержащего описания интерфейсов удаленного класса (но не код его логики), либо специальным инструментом на основе получаемого с дистанционного сервера описания Web-сервиса.

Cхема взаимодействия .Net Remoting выглядит следующим образом: в сообщении, отсылаемом клиентом серверу, классы-посредники кодируют название вызываемого метода удаленного объекта и все входящие переменные. На сервере сообщение раскодируется (т. е. определяется название метода и все входящие параметры) и выполняется реальный метод. Чтобы передать какие-либо данные на сервер, достаточно вызвать метод класса-посредника и передать ему данные в качестве аргументов метода. Например, можно передавать любые двоичные данные или строки текста. Сервер, в свою очередь, аналогичным образом может передать клиенту возвращаемое значение метода — оно будет раскодировано на клиенте через класс-посредник.

Отличительной особенностью .Net Remoting является наличие нескольких четко разделенных слоев, отвечающих за сокрытие от пользователя сложностей дистанционного взаимодействия с объектом. Первым из них является слой “прозрачных” посредников (TransparentProxy), отвечающих за упаковку всех параметров удаленного вызова в объект-посылку IMessage. Сформированная посылка передается в “настоящий” посредник (RealProxy), который уже и передает ее на удаленный сервер. Все эти классы заранее заданы средой .Net, но пользователь может расширять класс RealProxy, например, для подключения своих средств безопасности.

Для взаимодействия с коммуникационным слоем RealProxy опирается на каналы. В канале важны два элемента — формовщик (formatters) и транспортировщик (transport sink). Формовщик отвечает за преобразование сообщения IMessage в пакеты данных протокола высокого уровня. В стандартном варианте .Net содержится два формовщика: двоичный и SOAP. Транспортировщик решает проблему доставки этих пакетов на более низком сетевом уровне — для стандартной редакции .Net это TCP и SOAP.

Таким образом, доступны два стандартных вида взаимодействия (пользователем могут быть описаны и иные): для взаимодействия по двоичному каналу через IPC или TCP и пересылки запросов к удаленным объектам в виде сообщений SOAP поверх HTTP. В первом случае достигается наибольшая производительность, но ценой утраты значительной части кросс-платформенности. Он подходит для построения приложений в локальных сетях. Во втором случае методы удаленного объекта видны как Web-сервисы, обращение к которым может происходить через Интернет и границу, определенную брандмауэром. При этом может использоваться любой транспортный протокол третьего уровня модели OSI, а не только IP, как в первом случае. Однако для его реализации требуются большие вычислительные и сетевые ресурсы, нежели для случая двоичной связью.

Протокол, который обращается к серверному приложению для доступа к своим объектам, настраивается при его запуске. Сначала регистрируется канал связи, затем как подключенные к нему регистрируются доступные дистанционные объекты. При регистрации канала указывается транспортный протокол (IPC, TCP, HTTP и пр.), протокол доступа (двоичный, SOAP и др.) и номер порта, по которому сервер будет принимать запросы.

В .Net различаются два типа объектов — активизируемые сервером и клиентом. Объекты, активизируемые клиентом, находятся под управлением менеджера контроля жизненного цикла, гарантирующего, что по истечении определенного срока действия объекта (срока аренды, в терминологии Microsoft) будет произведена необходимая очистка памяти. Среда предоставляет развитые средства для контроля за этой арендой, в том числе и со стороны самого объекта. Объекты, активизируемые сервером, делятся на объекты для однократного обращения (Single call) и “единичные” (Singleton). Экземпляры однократных объектов создаются в момент обращения к их методам, “единичные” объекты могут существовать долго и сохранять состояние между вызовами их методов.

Все настройки свойств объектов (типы объектов, каналы, номера портов) можно сохранить в конфигурационном XML-файле, благодаря чему перестройка приложения становится совсем простой.

Важной особенностью .Net Remoting является то, что она не ориентируется исключительно на синхронное взаимодействие, а при применении SOAP-транспорта настраивается и на асинхронный режим работы. Это означает, что она может быть применена в сочетании со средствами гарантированной доставки сообщений для обеспечения максимальной надежности системы в целом. Microsoft обещает в будущей платформе Indigo совместить средства транзакционности, гарантированной доставки и удаленного вызова под одной “крышей”.

Таким образом, технология .NET Remoting обеспечивает следующие возможности при создании Web приложений:
  • Несколько видов активации объектов: серверные Singleton, Single-Call и клиентская.
  • Пересылка вместе с объектом всей связанной с ним инфраструктуры, т. е. объектов, на которые имеются ссылки.
  • Возможность асинхронной работы - клиент не обязан останавливаться для ожидания ответа сервера, что существенно для медленных каналов.
  • Встроенное управление временем жизни (Lifetime service) удаленного объекта, за счет чего разрешаются проблемы освобождения ресурсов при обрыве соединения.
  • Поддержка удаленного вызова событий (Events).
  • Три стандартных протокола взаимодействия: HTTP/HTTPS, IPC и TCP.
  • Два стандартных формата передачи - XML (SOAP) и двоичный (binary). Вы можете произвольно комбинировать протокол взаимодействия с форматом передачи, стандартным или собственным.
  • Атрибутно и программно управляемые маршаллинг и сериализация.
  • Автоматическая поддержка стандартных интерфейсов COM: IUnknown, IDispatch, IDispatchEx, IProvideClassInfo, ITypeInfo, IConnectionPoint, IConnectionPointContainer и других.
  • Доступ к Web-сервисам по SOAP и их публикация (UDDI, WSDL).
  • Поддержка локализации кода и ресурсов.
  • Поддержка встроенных устройств (small devices) на платформе Windows CE.
  • Наличие Visual Studio.NET - удобного средства разработки и отладки, в том числе в распределенной среде.

Приложение .NET Remoting обычно состоит из серверной и клиентской частей. Серверная часть содержит следующие компоненты:
  • хост - настраивает параметры активации объектов и коммуникационного канала;
  • менеджер объектов - создает соединение с БД, создает (загружает из БД) экземпляры прикладного класса;
  • прикладной класс - содержит атрибуты и функции бизнес-логики. Хранит свое состояние в БД.

Клиентская часть удаленно создает менеджер объектов (три вида активации) и запрашивает у него бизнес-объекты. При клиентской активации объектов время жизни объекта определяется клиентом. Другие два режима активации - серверные: Singleton и SingleCall. В обоих случаях реальный объект в серверном процессе создается только при вызове какого-либо метода, время жизни объекта определяется сервером. В режиме Singleton все клиенты используют один экземпляр объекта, который сохраняет состояние между вызовами метода. В отличие от него, SingleCall подразумевает создание сервером нового экземпляра объекта при каждом вызове метода. Такой объект существует только на время вызова клиентского метода.

Транспортные протоколы SOAP и REST представляют собой платфомонезависимые протоколы для связи с удаленными сервисами.

SOAP - это основополагающая технология парадигмы web-сервисов. Первоначально это сокращение означало Simple Object Access Protocol (простой протокол доступа к объектам), но впоследствии получило новую расшифровку: Services-Oriented Access Protocol (протокол сервис-ориентированного доступа, или просто протокол SOAP), потому что основная область использования протокола переместилась с систем на базе объектов на возможность взаимодействия через обмен сообщениями. В спецификации SOAP два главных компонента. Первый - это использование формата XML-сообщений для платформенно-агностического кодирования, второй компонент - структура сообщения, состоящая из заголовка и тела. Заголовок используется для обмена контекстной информацией, которая не является специфичной для приложения полезной нагрузкой (телом сообщения), например, информация, используемая при аутентификации. Тело сообщения SOAP инкапсулирует специфичную для приложения полезную нагрузку. API SOAP для web-сервисов описывается документами WSDL, в которых указано, какие операции предлагает сервис, формат сообщений, которые он принимает (используя XML-схему), и как их адресовать. Как правило, сообщения SOAP передаются через транспортный протокол HTTP, хотя равным образом возможна передача этих сообщений через другие виды протоколов транспортного уровня (например, JMS или электронная почта).

REST - это сокращение от Representational State Transfer (протокол передачи состояния для интерпретации в представлении), способ осуществления коммуникаций через интернет посредством только HTTP и XML. Простота этого протокола и остустствие строгих профилей отдалила его от SOAP и повысила его привлекательность для сообщества разработчиков. В отличие от типичного словесного интерфейса, который характерен для современных языков программирования (которые состоят из различных методов, например, getEmployee(), addEmployee(), listEmployees() и так далее), REST, в принципе, поддерживает всего несколько операций (это методы POST, GET, PUT, DELETE), которые применимы к любым фрагментам информации. Ключевым понятием в REST является понятие ресурсов, которое описывает собственно фрагменты информации. Например, запись ресурса для какого-либо сотрудника идентифицируется по URL, извлекается посредством действия GET, обновляется посредством действия PUT и так далее. Таким образом, REST напоминает документально-буквенный стиль сервисов SOAP.