Файл: Средства создания программ, выполняемых на стороне сервера.pdf
Добавлен: 22.04.2023
Просмотров: 140
Скачиваний: 2
Серверные программы делятся на следующие четыре вида:
- Исполняемые программы, работающие через интерфейс CGI (Common Gateway Interface – общий интерфейс обмена), так называемые CGI-npoграммы. Эта разновидность серверных программ – самая старая, однако отнюдь не устаревшая.
- Расширения веб-сервера (приложения формата ISAPI, NSAPI, модули расширения Apache и т. п.). Новый способ, позволяющий встраивать серверные программы в сам веб-сервер, делая их его составными частями. Впервые был предложен фирмой Microsoft для их сервера Microsoft Internet Information Server (интерфейс ISAPI) и разработчиками популярного бесплатного веб-сервера Apache.
- Активные серверные страницы (ASP, JSP и др.). Фактически это обычные статические веб-страницы сохраненные в файлах, которые кроме обычного HTML-кода включают в себя команды обрабатываемые либо самим веб-сервером, либо его расширением. Также новый способ, впервые предложенный Microsoft для того же Internet Information Server.
- Серверные сценарии, написанные на интерпретируемом языке (Perl, Python, VBScript, JavaScript и др.). Обычные сценарии, работающие через интерфейс CGI или ISAPI на стороне сервера.
CGI-программы представляют собой обычные исполняемые файлы, написанные на любом языке программирования и откомпилированные в машинный код процессора. Они не имеют интерфейса пользователя (как и все серверные программы), а работают с веб-сервером, получают от него входные данные и ему же пересылают результаты своей работы. Запускаются они самим веб-сервером, когда в них возникает нужда (когда необходимо обработать полученные от пользователя данные), и работают под управлением операционной системы серверного компьютера. При этом, если веб-серверу поступает одновременно несколько запросов на обработку данных от пользователей, он запускает соответствующее количество копий CGI-программы. [4]
К достоинствам CGI-программ можно отнести легкость создания (многие среды разработки программ поддерживают создание таких приложений, в частности, очень популярный Borland Delphi начиная с версии 3) и простоту отладки. Также, поскольку CGI-приложения представляют собой независимые программы, они выполняются отдельно от веб-сервера (как говорят программисты и системные администраторы, выполняются в другом адресном пространстве). Это значит, что при сбое в CGI-программе завершается только она – сам веб-сервер остается «на плаву». А недостаток у CGI-программ всего один: большой расход системных ресурсов, поскольку для обработки каждого набора данных запускается отдельная копия серверной программы. И если веб-серверу поступит слишком много запросов на обработку данных, серверный компьютер может и зависнуть.
Расширения веб-сервера – более новая разновидность серверных программ. Они представляют собой обычные библиотеки DLL, в которых реализована вся логика серверной программы. Такие библиотеки как бы встраиваются в программу веб-сервера и работают как ее неотъемлемая часть. Поскольку библиотеки DLL работают только в среде Windows, для того чтобы создавать расширения в иных операционных системах, были придуманы и другие форматы. В частности, модули расширения сервера Apache не являются библиотеками DLL,
Именно в виде библиотек DLL создаются расширения веб-серверов Internet Information Server фирмы Microsoft и Netscape Web Server фирмы Netscape. В первом случае расширения имеют формат ISAPI (Internet Server Application Programming Interface – интерфейс программирования приложений интернет-сервера), а во втором – NSAPI (Netscape Server Application Programming Interface – интерфейс программирования приложений сервер Netscape). Формат модулей расширения Apache так и называется – модули Apache.
Достоинство у расширений веб-сервера одно: бережный расход системных ресурсов. Дело в том, что для обработки всех наборов данных пользователя запускается всего один экземпляр расширения, который отнимает существенно меньше ресурсов, чем уйма запущенных CGI-программ. Однако расширения труднее создавать и отлаживать, к тому же они не так безопасны.
Как CGI-программы. Поскольку они работают как часть веб-сервера, любая ошибка в расширении приведет к зависанию сервера.
Оба описанных выше вида серверных программ обладают одним огромным недостатком. Прежде чем они смогут работать, они должны быть написаны на языке программирования и откомпилированы в машинные коды процессора, что отнимает много времени, особенно при отладке. Конечно, откомпилированные программы работают быстрее интерпретируемых, т. е. тех, где каждая инструкция читается, расшифровывается и обрабатывается специальной программой-интерпретатором. Но у интерпретируемых программ есть и свои преимущества, главными из которых являются простота и быстрота написания.
Как уже говорилось, активные серверные страницы – это обычные веб-страницы, включающие в себя особые серверные сценарии, выполняемые самим веб-сервером или специальной серверной программой (CGI-приложением или расширением веб-сервера). В частности, ASP (Active Server Pages – активные серверные страницы), поддерживаемые Microsoft Internet Information Server, и JSP (Java Server Pages – серверные страницы, написанные на JavaScript), поддерживаемые рядом других веб-серверов, работают именно таким образом. Серверные страницы ASP пишутся на языках JavaScript и VBScript, a JSP – только на JavaScript.
Достоинства активных серверных страниц: легкость и быстрота написания, и простота отладки. Кроме того, поскольку активные серверные страницы это обычные веб-страницы с «вкраплениями» программного кода, их написание легко освоят все, кто знаком с HTML. Недостаток: относительная медлительность и повышенные требования к системным ресурсам. [3]
Серверные сценарии подобны активным серверным страницам тем, что являются интерпретируемыми, однако представляют собой «чистый» программный код, без HTML-«примесей». Интерпретатор практически всегда представляет собой CGI-программу, однако ничто не мешает разработать его в виде расширения веб-сервера. Сценарии обычно пишутся на языке программирования Perl, специально предназначенном для обработки текста; также используются языки Python, JavaScript, VBScript и даже (как говорят) язык командных файлов MS-DOS. Фактически писать сценарии можно на любом языке программирования, для которого есть интерпретатор.
Достоинства и недостатки серверных сценариев те же, что у активных серверных страниц. Однако сценарии потребляют исключительно много системных ресурсов, даже больше, чем CGI-приложения. Ведь для обработки каждого набора данных пользователя запускается своя копия интерпретатора, а интерпретатор, в свою очередь, расходует много ресурсов на обработку сценария. И все же, несмотря на это, сценарии – самый популярный способ создания серверных программ.
2. Обзор серверных технологий
2.1 Серверные языки программирования
2.1.1 PHP
Причиной популярности PHP является его несколько преимуществ. PHP наиболее подходит для веб-разработки.
К его основным достоинствам относятся:
- Кроссплатформенность.
Все приложения на базе PHP могут работать на разных типах платформ. Поддержка PHP поддерживается большинством операционных систем, некоторые из которых включают Solaris, UNIX, Windows и Linux. Указанные платформы могут использоваться для написания кодов на PHP, а также просмотра веб-страниц или запуска приложений на базе PHP.
PHP легко взаимодействует с MySQL и Apache. Легкая интеграция PHP может быть выполнена с использованием различных других технологий, таких как Java, и главное нет необходимости в повторном использовании. Поэтому, экономия времени и денег, придает ему большое преимущество.
- Простое подключение к базе данных.
Язык программирования, такой как PHP, широко используется в Интернете, что требует очень частого подключения к базе данных. Таким образом, наличие функции, которая может помочь PHP легко подключаться к базе данных, является обязательной. Некоторые веб-сайты, такие как веб-сайты электронной торговли, требуют хорошей системы управления базами данных.
PHP имеет встроенный модуль, который помогает легко подключаться к базе данных. Поэтому PHP пользуется большим спросом в области веб-разработки, где должен быть разработан веб-сайт, ориентированный на данные. PHP значительно сокращает время, необходимое для разработки веб-приложения, которое нуждается в эффективной системе управления базами данных.
- Легко использовать.
PHP широко используется, потому что он прост в использовании. В отличие от других языков программирования, которые являются сложными, PHP прост, свободен, чист и организован, поэтому он является удобным для новых пользователей. PHP имеет хорошо организованный синтаксис, который является логичным одновременно удобным.
PHP не требует интенсивного изучения или руководства для его использования. Командные функции PHP легко понятны, так как пользователь может легко понять из названия самих команд, что он делает. Человек, который только начал изучать PHP, уже может легко программировать, потому что синтаксис несколько похож на С, поэтому проще создавать и оптимизировать приложение с помощью PHP.
Скорость – это основная потребность в веб-разработке. Есть люди, которые сталкиваются с проблемой медленного подключения к Интернету и медленной скоростью передачи данных. Кроме того, сайты с быстрой загрузкой всегда предпочитают люди по всему миру. По сравнению с другими языками программирования, PHP является самым быстрым языком программирования.
В обычных условиях для подключения к базе данных требуется много времени, когда пользователь пытаетесь получить определенные данные из базы данных. Это занимает много времени при подключении к базе данных, а затем выполнение инструкции и, наконец, получение данных. PHP выполняет этот набор задач быстрее, чем другие языки сценариев. PHP быстрее работает как при подключении к базе данных, так и при использовании других важных приложений.
Высокая скорость работы PHP дает ему преимущество перед другими языками сценариев и дает ему приоритет в решении важных задачах, таких как администрирование сервера и функции почты.
- Открытый исходный код.
Одним из важных преимуществ PHP является то, что это Open Source проект. Поэтому PHP легкодоступен и полностью свободен. В отличие от других языков сценариев, используемых для веб-разработки, которые требуют от пользователя оплаты файлов поддержки, PHP открыт для всех, в любое время и в любом месте.
Новичок в PHP не должен беспокоиться о поддержке, поскольку PHP поддерживается и развивается большой группой разработчиков PHP, которая помогает создавать сообщество поддержки PHP, которое помогает людям в реализации и манипулировании PHP.
Но есть у него и недостатки. Каждый язык программирования имеет свой собственный набор преимуществ и недостатков. PHP имеет свой собственный набор недостатков, к таковым относятся следующие:
- Безопасность.
Веб-сайты должны быть максимально безопасными, чтобы владелец веб-сайта и пользователи веб-сайта были в безопасности и защищены. PHP доступен абсолютно бесплатно, т.е. имеет открытый исходный код. С одной стороны, это преимущество PHP и, с другой стороны, создает угрозу для веб-сайта, разработанного с использованием PHP.
- Плохая обработка ошибок.
Разработчики считают, что у PHP плохое качество обработки ошибок. PHP не хватает средств отладки, необходимых для поиска ошибок и предупреждений. У PHP меньше средств отладки по сравнению с другими языками программирования.
2.1.2 Экосистема Java
Java является популярным языком программирования веб-приложений и имеет ряд преимуществ.
Одним из основных преимуществ Java в разработке программного обеспечения и приложений является то, что это кроссплатформенный инструмент. Благодаря виртуальной машине JVM (Java Virtual Machine) среда выполнения Java может переводить код в машинный код, совместимый с собственной операционной системой, будь то Windows, iOS или Linux. Эта универсальность, и в особенности кроссплатформенная функциональность, сразу же делает ее мощным инструментом для крупных организаций, занимающихся разработкой программного обеспечения. [2]
Java является языком программирования на основе C, который позволяет разработчикам легко его изучить, если они работали с другими языками на основе C.
Наиболее часто на сервере Java используется в связке с фреймворком Spring.
Структура Spring поддерживает большинство функциональных возможностей инфраструктуры приложений Enterprise. Ниже приведены некоторые основные преимущества Spring Framework: