Смекни!
smekni.com

Технологии программирования Web (стр. 7 из 10)

Изначально аббревиатура РНР означала PreprocessorofHomePages— препроцессор домашних страниц. Это язык внедряемых в HTML-страницы сценариев, исполняемых на сервере. По большей части его синтаксис заимствован из таких языков, как С, Perl, Java, и при этом добавлена масса возможностей, которых этим языкам недостает. Про­ще говоря, синтаксис РНР — это разумная альтернатива и строго­сти С, и «беспредельности» Perl.

РНР наделен практически полным набором функциональности, о ко­торой (до появления РНР) мог только мечтать web-программист. Его цель — позволить максимально быстро создавать динамически гене­рируемые web-страницы. С полным основанием можно заявить, что изучение и использование РНР будет выгодно как начинающим, так и профессиональным программистам.

ОсновнымиконкурентамиРНРявляютсятехнологии JSP (Java Server Pages и Java Scriptlets), ASP (Active Server Pages), Perl, SSI (Server Side Includes), Cold Fusion Server Pages.

Рассмотрим те недостатки, которые присущи указанным технологиям. JSP — достаточно слож­ный для изучения и использования язык. ASP, основанный на син­таксисе VBScript (VisualBasic), имеет всего несколько десятков соб­ственных функций и поэтому вынужден использовать СОМ-объекты; кроме того, он ориентирован исключительно на работу под Windows. Perl — язык головоломный, и его вольности затрудняют его понима­ние. SSI позволяет всего лишь компоновать HTML-страницу из не­скольких файлов. CF — коммерческий продукт, что является его ос­новным недостатком.

Основные достоинства РНР:

- бесплатен; постоянно совершенству­ется; работает на UNIX и Windows платформах;

- допускает работу с большинством СУБД;

- имеет широкий набор функций (более 3 тыс.);

- допускает объектно-ориентированное программирование;

- способен использовать протоколы HTTP, FTP, ШАР, SNMP, NNTP, РОРЗ, netsockets и другие;

- позволяет выполнять все операции, что и пере­численные его конкуренты, и даже работать с файлами графики. Можно также запускать РНР-скрипты как интерпретируемые файлы и компилировать исполняемые приложения (в том числе с под­держкой графического интерфейса GTK).

Если вы обнаружите, что РНР не способен на что-то (или работает не так, как вам хотелось бы), никто не будет препятствовать вам вно­сить в исходный код РНР (написанный на С) желаемые изменения. РНР является программным продуктом с открытым исходным кодом, и внесение в него улучшений и дополнений путем создания собст­венных модулей расширения всегда приветствуется.

ASP и ASP.NET в составе Microsoft.NET

В конце 1997 г. Microsoft реализовала отно­сительно простую среду периода выполнения пля Web — Active Server Pages (ASP)как часть сервера Internet Information Server (IIS), вклю­ченного в Windows NT 4 Option Pack. IIS об­служивает Web-страницы, запрашиваемые пользователем. ASP позволяет программистам реализовывать алгоритмы динамичес­кого создания страниц на IIS, состоящих из статического HTML и кода сценариев. Когда пользователь запрашивает ASP-страницу, IIS должен ее найти и активизировать ASP-процессор. ASP-процессор должен прочитать страницу и один к одному ско­пировать содержащиеся на ней HTML-элементы в выходную страницу. В нашем примере атрибут style устанавливает голубой цвет текста. При этом также интерпретируются элементы сцена­риев, расположенные между ограничителями <% %>. Этот код , должен выполнять алгоритм, выдающий в качестве результата HTML-строки, которые ASP-процессор должен скопировать в выходную страницу в те места, где были элементы сценария. Ре­зультирующая страница, собранная из статических HTML-элемен­тов и HTML, динамически сгенерированного сценарием, должна быть передана клиенту. Для простых задач ASP приме­нять относительно легко, что является признаком качества этой технологии.

<html style="color:#OOOOFF;">

The time is: <% =time X> on <X =date X>

</html>

Технология Microsoft ASP представляет собой совокупность серверных средств для динамического создания Web-документов.

Активные серверные страницы (ActiveServerPages, ASP), создан­ные Microsoft для собственного веб-сервера, сейчас доступны для многих серверов. Сервер ASP интегрирован в веб-сервер и не требу­ет отдельного процесса. Он позволяет программистам совмещать код и HTML-страницы вместо того, чтобы писать отдельные программы. Для ASP существуют модули, позволяющие делать то же самое, используя CGI. ASP поддерживают различные языки программирования, самый популярный из которых VisualBasic, хотя JavaScript также поддерживается. Кроме того, существу­ет версия Perl от ActiveState, которую можно использовать в Windows с ASP.

Microsoft .NET — готовая инфра­структура для решения общих проблем Ин­тернет-приложений. Это прикомпоновываемая среда периода выпол­нения, работающая в ОС Windows 2000.

Сервис, обеспечиваемый .NET:

• .NETFramework — среда периода выполнения, облегчающая написание полноценного надежного кода в сжатые сроки, управление, развертывание и модификацию этого кода. Написанные вами программы и компоненты выполняются в этой среде. Она дает программистам в период выполнения такие классные возможности, как автомати­ческое управление памятью (сборка мусора) и упрощенный доступ ко всем службам ОС. Она добавляет массу вспомога­тельных функций вроде простого доступа к Интернету и ба­зам данных. Кроме того, она обеспечивает новый механизм повторного применения кода — более простой в использова­нии и в то же время более мощный и гибкий, чем СОМ. Раз­вертывать .NETFramework проще, так как она не требует на­стройки реестра. Она также поддерживает на системном уровне стандартизированный механизм управления версиями. Все это доступно программистам на любом .NET-совместимом языке. .NETFramework мы обсудим в главе 2.

ASP.NET (следующая версия ActiveServerPages) — это новая среда, работающая на InternetInformationServer (US), заметно упрощающая написание кода для создания HTML-страниц. ASP.NET предлагает новый, не зависимый от языка способ создания кода и привязки его к запросам Web-страниц, — .NETWebForms — управляемую событиями программную модель взаимодействия с элементами управления. Она дела­ет программирование Web-страниц аналогичным программи­рованию форм VisualBasic. ASP.NET содержит развитые сред­ства управления сеансами и функции защиты. Она надежнее, и производительность ее значительно выше в сравнении с ASP. Microsoft .NET предлагает новый набор служб, позволяющих серверу предо­ставлять свои функции любому клиенту на любой машине с любой ОС.

По мере расширения Web и увеличения по­требностей пользователей Web-разработчи­кам потребовались совершенствование двух ключевых свойств исполняющей среды: про­стоты программирования и качества выпол­нения. ASP.NET и явилось таким усовершенствованием. ASP.NET похожа на оригинальную ASP и большая часть кода может быть переведена на нее практически без изменений. Но внутренняя реализация ASP.NET полностью переделана с тем, чтобы задей­ствовать возможности .NETFramework.

ASP.NET отделяет HTML от алгоритмов, со­здавая фоновый код (code-behind). Вместо того чтобы перемешивать HTML с кодом, код пишется в отдельном файле, на который есть ссылка на ASP-странице. В резуль­тате такого разделения Microsoft смогла усовершенствовать среду разработки и отладки VisualStudio.NET, которая исполь­зуется при разработке Web-приложений.

JAVA-servlets

Сервлеты - это высокопроизводительные платформо-независимые server-side-пpиложения, написанные на Java и составляющие реальную конкуренцию таким технологиям, как CGI, PHP3, Perl, и уж конечно ASP.

Java-сервлеты были созданы в Sun. Сервлеты похожи на CGI-сцена­рии тем, что это код, создающий документы. Тем не менее, сервлеты, поскольку они используют Java, должны быть скомпилированы перед запуском как классы, которые динамически загружаются веб-сервером при запуске сервлетов. Интерфейс отличается от CGI. JavaServerPages или JSP - это другая технология, позволяющая разработчикам встраивать Java в веб-страницы, наподобие ASP.

К преимуществам сервлетов можно отнести:

a) Исключительно высокая скорость работы.

Быстpодействие сервлетов объясняется тем, что они, во-пеpвых, пpедставляют собою уже скомпилиpованный и оптимизиpованный код (а в случае с JIT-ом - ещё и пpеобpазованный в машинный) и, во-втоpых, выполняются в единожды загpуженной и инициализиpованной Java-машине.

Таким образом, экономятся ресурсы на запуск обработчика/паpсеpа скpипта, необходимые, например, для Perl или PHP3 (в некоторых ОС, в частности, в OS/2 - это очень серьезная экономия), и ресурсы (как память, так и время), затрачиваемые на непосредственно предкомпиляцию (интерпретацию) кода (что необходимо для тех же Perl, PHP, REXX).

Реально обе этих проблемы сразу не решаются, практически, нигде. Hаибольший эффект даёт, пожалуй, внедрение транслятора скpиптового языка непосредственно в веб-сеpвеp, например, пресловутые .asp-скpипты в серверах от Microsoft, или модули mod_perl или mod_php для apache. (Последний вариант - PHP3, внедренный в апач - является, наверное, самым производительным из всего вышеперечисленного).

b) Переносимость.

В данном случае принцип "write once run everywhere" действует безотказно. Сервлеты, написанные в соответствии со спецификацией от Sun и не использующие какие-то особенности конкретного веб-сервера, работают безо всякой переделки или перекомпиляции под любыми, порой весьма далёкими друг от друга платформами, будь то Solaris, FreeBSD или OS/2. В связи с этим разработчик может совершенно свободно выбирать, в какой системе ему удобнее работать - он ни коим образом не привязан ни к серверу, ни к будущей целевой платформе.

c) Работа с базами данных.

Работа с реляционными СУБД из Java унифицирована (для этого существует специальный пакет java.sql), удобна и отвязана от специфичных для конкретной СУБД тонкостей. Всё, что Вам нужно - это найти для своей СУБД JDBC-дpайвеpы (а они сейчас существуют практически для всех совpеменных баз данных, зачастую даже по нескольку pазновидностей), и далее можно пользоваться совеpшенно стандаpтными механизмами.