Обзор базовых технологий
Производительность технологии ограничена объективными особенностями архитектуры. Во-первых, страницы должны быть откомпилированы в сервлеты, что занимает значительное время. Во-вторых сервлеты выполняются в среде выполнения Java, т. е. в режиме интерпретации. Однако эти ограничения компенсируются дополнительными возможностями. Современные контейнеры поддерживают кластеризацию серверов, что… Читать ещё >
Обзор базовых технологий (реферат, курсовая, диплом, контрольная)
На данный момент существует множество разработанных технологий серверной стороны, как коммерческих, так и свободно распространяемых. В данной статье рассматриваются наиболее распространенные или перспективные технологии, поскольку основная конкуренция идет между ними и при выборе основной технологии реализации в большинстве случаев предпочтение отдается одной из них, как проверенной и надежной.
Платформы рассматриваются с точки зрения построения на них сложных гетерогенных Web систем, поэтому некоторые из популярных технологий не приводятся в подробном обзоре по причине невозможности или нецелесообразности их использования в качестве базовой платформы. Например, технология ISAPI и другие расширения Web — серверов, не подходят для применения по причине привязки к конкретному Web — серверу. Ниже приводятся только основные технологии, потенциально пригодные для создания сложных гетерогенных Web систем.
Технология Common Gateway Interface
Технология Common Gateway Interface (CGI), отличается от остальных рассматриваемых технологий тем, что является наиболее низкоуровневой и является стандартом интерфейса, который служит для связи внешней программы с web-сервером.
Сам протокол разработан таким образом, чтобы можно было использовать любой язык программирования, который может работать со стандартными устройствами ввода/вывода. Поскольку такая возможность имеется на уровне операционной системы, то, если не требуется сложный скрипт, его можно оформить в виде командного файла.
Рассмотрим основные достоинства и недостатки технологии CGI по выделенным критериям:
- * CGI не налагает особых условий на платформу и web — сервер, поэтому работает на всех популярных платформах и web — серверах. Также технология не привязана к конкретному языку программирования и может быть использована на любом языке, работающем со стандартными потоками ввода/вывода.
- § Производительность CGI — программ не высока. Основной причиной этого
- § является то, что при очередном обращении к серверу для работы CGI — программы
- § создается отдельный процесс, что требует большого количества системных
- § ресурсов.
- § Встроенных средств масштабируемости технология не предусматривает, об этом
- § разработчикам приходится заботиться отдельно.
- § CGI — программа представляет из себя готовый к исполнению файл, что
- § препятствует легкому расширению системы.
Эти причины привели к тому, что сейчас разработке CGI — приложений предпочитают более развитые платформы, предоставляющие больше удобства разработчикам, обладающие повышенной производительностью. Однако большая масса уже разработанных приложений заставляет считаться с технологией CGI, а ее знание необходимо для понимания работы высокоуровневых платформ.
Технология Personal Home Page
Технология Personal Home Page (PHP) получила очень широкое распространение благодаря своей бесплатности и поддержке самых популярных платформ. Она базируется на принципе построения страниц из шаблонов, впервые появившемся в Active Server Pages, но развивает и дополняет его. Страницы РНР имеют вид обычных HTML страниц, в которых могут использоваться специальные тэги вида и ?>. Между тэгами вставляются строки программного кода на специальном языке сценариев РНР.
Принцип шаблонов позволил разработчикам писать программы гораздо быстрее и без ошибок, присущих традиционным CGI — программам, выдающим HTML содержимое в поток вывода. На сегодняшний день диапазон систем, построенных на шаблонах простирается от простых страниц с выборками из базы данных до крупных приложений электронной коммерции, основанных на XML. Шаблонные системы пользуются большой популярностью среди разработчиков, поскольку наиболее подходят для типовых сайтов. Такие решения включают ColdFusion, PHP, JSP и ASP, из которых РНР является наиболее распространенной.
Рассмотрим основные достоинства и недостатки платформы:
- § Применяемый в РНР язык прост и удобен, однако не является в полном смысле объектно-ориентированным;
- § Для РНР существуют обширные библиотеки, а также масса встроенных функций для решения самых разнообразных задач.
- § При использовании РНР с Web сервером Apache есть возможность эффективного исполнения ядра, как расширения сервера. В остальных случаях производительность платформы невысока.
- § Собственных средств масштабирования РНР не имеет, все возможности по кластеризации целиком ложатся на Web — сервер и разработчиков.
- * Возможности интеграция ограничены включением модулей и использованием внешних функций, что не соответствует современным требованиям.
Шаблонный подход РНР, при всех больших возможностях, скрывает серьезные недостатки. Из общих недостатков этого подхода, применимых как к РНР, так и ASP, JSP необходимо выделить следующие:
- § Файл — страницу может поддерживать только человек, хорошо владеющий как программированием, так и HTML, что требует повышенной квалификации.
- § Один файл, в конкретный момент времени, может править только один человек. Это означает, что работает либо программист, либо дизайнер. Т. е. наблюдается невозможность разделения труда там, где она потенциально возможна.
- § Хранение бизнес логики в файлах — страницах в распределенном по управляющим элементам виде приводит к затруднению ее вынесения в объекты второго уровня.
- § Как общий итог рассмотрения платформы можно заключить, что, благодаря простоте использования, наличию большого числа функций и библиотек, распространенности и поддержке большинства существующих Web — серверов и платформ, РНР является очень удобным средством разработки небольших систем. В то же время ограничения по производительности, масштабируемости, языку программирования и возможностям расширения и интеграции препятствуют использованию платформы при разработке масштабных систем.
Технология Java Servlets
Технология Java Servlets (сервлеты) была разработана компанией Sun Microsystems, чтобы использовать преимущества платформы Java для решения проблем технологии CGI и API расширений сервера. Технология решает проблему производительности, выполняя все запросы как нити в одном процессе. Сервлеты также могут легко разделять ресурсы, и не зависят от платформы, поскольку выполняются внутри Java Virtual Machine (JVM).
Технология обладает широкими функциональными возможностями. Большое количество библиотек предоставляет самые разнообразные средства, необходимые в разработке. Модель безопасности Java делает возможным точное управление уровнем доступа, например позволяя доступ только к определенной части файловой системы. Обработка исключений Java делает сервлеты более надежным средством, чем расширения серверов на C/C++.
Любой сервлет является классом Java, и, поэтому, должен быть выполнен внутри Java VM так называемым сервлет — контейнером (servlet container, servlet engine). Сервлет — контейнер загружает класс сервлета при первом обращении к нему, либо сразу при запуске сервера при специальном указании. Далее сервлет остается загруженным для обработки запросов, пока он не выгружается явным образом, либо до остановки контейнера.
Технология является распространенной, и может быть использована со всеми популярными Web — серверами (Enterprise Server от Netscape, Microsoft Internet Information Server (IIS), Apache, Java Web Server от Sun).
Программный интерфейс позволяет сервлетам обрабатывать запросы на любом уровне, при необходимости используя любые низкоуровневые данные, такие как заголовки запросов, их тип, и т. д. Это дает большую гибкость при разработке нестандартных обработчиков, например при работе с двоичным или мультимедийным содержимым.
Поскольку сервлеты обрабатываются в одном процессе с помощью создания потоков внутри него, программный код сервлетов должен быть потоке — безопасным. Это накладывает определенную ответственность на программиста, но с помощью стандартных приемов, таких как отказ от использования полей в классах сервлетов, и хранение необходимых данных в контексте или внешнем хранилище такие свойства кода легко достигаются. При этом сервлеты приобретают такое неоценимое преимущество как масштабируемость.
Итак, сервлеты обеспечивают компонентный, платформе — независимый метод для построения web-приложений без ограничений производительности CGI программ. Они имеют широкий диапазон доступных прикладных API, позволяют использовать все преимущества Java, легко расширяются и масштабируются, поддерживаются всеми популярными Web — серверами. Все это делает их отличным средством разработки крупных Web — систем.
Технология Java Server Pages
Технология Java Server Pages (JSP) от компании Sun Microsystems явилась надстройкой над технологией Java Servlets, обеспечивающей более быструю и простую разработку web — приложений с помощью применения шаблонного подхода.
Для понимания архитектуры и преимуществ JSP необходимо знать технологию Java Servlets, поскольку они тесно связаны. Страницы Java Server Pages представляют из себя шаблоны страниц HTML, схожие с шаблонами РНР и ASP. Основным отличием от других подобных технологий является то, что код, находящийся внутри специальных тэгов не интерпретируется при обращении к странице, а предварительно компилируется в Java Servlet. Статические участки шаблона преобразуются в вызовы к функциям для их помещения в поток вывода. Код компилируется так, как если бы он находился внутри сервлета. Компиляция JSP страниц в сервлеты является трудоемкой, но проводится один раз — либо при первом обращении к странице, либо при запуске сервлет — контейнера.
Технология JSP удачно объединяет шаблонный подход к построению сайтов и все преимущества Java платформы. Благодаря этому технология получила широкое распространение как среди профессиональных коммерческих разработчиков, так и при создании открытых бесплатных проектов. Важным шагом к расширению шаблонного подхода стали так называемые библиотеки тэгов (tag libraries). Это гибкая возможность интегрировать стандартные, сторонние, или собственные программные компоненты в страницы. Простота создания и использования привели к большой популярности библиотек тэгов.
Благодаря работе на основе Java технология JSP не привязана к конкретной аппаратной или программной платформе. Таким образом JSP являются отличным решением для использования в гетерогенных средах.
Производительность технологии ограничена объективными особенностями архитектуры. Во-первых, страницы должны быть откомпилированы в сервлеты, что занимает значительное время. Во-вторых сервлеты выполняются в среде выполнения Java, т. е. в режиме интерпретации. Однако эти ограничения компенсируются дополнительными возможностями. Современные контейнеры поддерживают кластеризацию серверов, что перекладывает нагрузку на аппаратное обеспечение. Это является экономически оправданным и простым решением. Задача же компиляции в сервлеты является разовой и производится либо при первом обращении, либо при запуске сервлет — контейнера. Таким образом это не сказывается на общей производительности системы при рассмотрении за достаточный период времени.
Основными достоинствами JSP является простота разработки, характерная для шаблонного подхода, наличие большого количества сторонних библиотек, легкость их использования, мощные и разнообразные среды разработки. Благодаря всем этим факторам JSP является наиболее перспективной базовой технологией разработки при создании Web — сайтов. Однако при создании сложных Web — систем ограничения, накладываемые шаблонным подходом становятся серьезным препятствием к развитию.
Технология Microsoft .NET и среда ASP .NET
Технология.NET является новейшей разработкой компании Microsoft и заявлена как новый этап в развитии средств взаимодействия между приложениями. В настоящий момент она доступна в качестве дополнения.NET Framework к семейству операционных систем Microsoft Windows, а также в новом продукте Windows Server 2003. Также ведутся работы по созданию.NET Framework на других операционных системах. Платформа.NET упрощает разработку приложений и повышает надежность кода. В частности, она обеспечивает автоматическое управление временем жизни объектов, нейтральные к языкам библиотеки классов и пересекающие границы языков наследование, обработку исключений и отладку.
Основа.NET — Common Language Runtime (общая среда исполнения языков) опирается на системные службы операционной системы и управляет выполнением кода, написанного на любом современном языке программирования. Набор базовых классов дает доступ к сервисам платформы, которые разработчики могут использовать из любого языка программирования. Common Language Runtime и базовые классы вместе составляют основу.NET платформы. NET предлагает также высокоуровневые сервисы:
- § ADO .NET — новое поколение ADO, которое использует XML и SOAP для обмена данными;
- § ASP .NET — новая версия ASP, позволяющая использовать любой (.NET совместимый) язык для программирования Web страниц;
- § Windows Forms и Web Forms — набор классов для построения пользовательского интерфейса локальных и Web-ориентированны приложений.
Развертывание систем на платформе.NET осуществляется особым образом. Исходные коды компилируются не в команды процессора х 86 или другие машинные коды. Вместо этого компилятор создает код на Промежуточном Языке Microsoft (Microsoft intermediate language — MSIL). Файл, содержащий MSIL, может выполняться на платформе любого процессора, если операционная система, предоставляет.NET CLR.
Важной составляющей частью платформы.NET является новая среда ASP.NET (ранее использовалось название ASP+). Возможности ASP.NET настолько велики, что ее сложно назвать следующей версией ASP. В ее основе лежит другая платформа, и основными языками программирования для нее выбраны С# и Visual Basic, вместо бывших скриптинг языков. В то же время, новая технология позволяет писать ASP страницы на любом подходящем языке.
В ASP.NET заложено все, для того, чтобы сделать весь цикл разработки webприложения более быстрым, а поддержку проще. Ниже приведены основные возможности и принципы работы ASP.NET.
- § Компилирование кода при первом обращении.
- § Широкий выбор библиотек компонентов, поставляемых с.NET.
- § Поддержка мощного средства разработки — Visual Studio. NET.
- § Языковая независимость в пределах платформ для которых реализована общая языковая среда исполнения CLR.
- § Возможности расширения с помощью мультипроцессорных и кластерных решений.
- § Новые возможности по обработке ошибок.
- § Объектно-ориентированные языки разработки (новый язык С#).
- § Расширенные возможности повторного использования компонент.
Очевидно, что платформа.NET и ASP.NET предоставили новые возможности по разработке Web — систем. Они отвечают всем современным требованиям и позволяют значительно ускорить и упростить разработку сложных приложений. Однако, на данный момент, .NET в полном объеме существует только для платформы Windows. Разработки по переносу на другие системы ведутся, но еще не завершены и их будущие результаты трудно оценить. Что касается разработки сайтов, то ASP.NET сильно привязана к серверу IIS, и, хотя архитектура.NET позволяет перенести приложения ASP.NET на другую платформу, на данный момент реальная возможность отсутствует. Таким образом важнейшее — многоплатформенность пока еще не может быть удовлетворено платформой.NET, а значит ее использование для такой системы пока не оправдано. Однако необходимо отметить, что такая система должна иметь возможности интеграции с платформой.NET (особенно Webсервисы), поскольку ее будущее широкое использование не вызывает сомнений.