Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диплом_Оксана.doc
Скачиваний:
45
Добавлен:
09.02.2016
Размер:
751.62 Кб
Скачать

1.3. Среды разработки

РНР.

РНР - это широко используемый язык сценариев общего назначения с открытым исходным кодом. РНР это язык программирования, специально разработанный для написания web-приложений (сценариев), исполняющихся на Web-сервере. Аббревиатура РНР означает "Hypertext Preprocessor (Процессор Гипертекста)". Синтаксис языка берет начало из С, Java и Perl. PНP достаточно прост для изучения. Преимуществом РНР является предоставление web-разработчикам возможности быстрого создания динамически генерируемых web-страниц. Важным преимуществом языка РНP перед такими языками, как языков Perl и С заключается в возможности создания HTML документов с внедренными командами РНР. Значительным отличием PHP от какого-либо кода, выполняющегося на стороне клиента, например, JavaScript, является то, что PHP-скрипты выполняются на стороне сервера. Вы даже можете сконфигурировать свой сервер таким образом, чтобы HTML-файлы обрабатывались процессором PHP, так что клиенты даже не смогут узнать, получают ли они обычный HTML-файл или результат выполнения скрипта. РНР позволяет создавать качественные Web-приложения за очень короткие сроки, получая продукты, легко модифицируемые и поддерживаемые в будущем. РНР прост для освоения, и вместе с тем способен удовлетворить запросы профессиональных программистов. Язык РНР постоянно совершенствуется, тем самым оставляя себя конкурентно способным на рынке web-технологии. [2]

Преимущества РНР.

Главным фактором языка РНР является практичность. РНР должен предоставить программисту средства для быстрого и эффективного решения поставленных задач. Практический характер РНР обусловлен пятью важными

  • характеристиками:

  • традиционностью;

  • простотой;

  • эффективностью;

  • безопасностью;

  • гибкостью.

Существует еще одна «характеристика», которая делает РНР особенно привлекательным: он распространяется бесплатно! Причем, с открытыми исходными кодами ( Open Source ). [2]

Традиционность.

Язык РНР будет казаться знакомым программистам, работающим в разных областях. Многие конструкции языка позаимствованы из Си, Perl. Код РНР очень похож на тот, который встречается в типичных программах на С или Pascal. Это заметно снижает начальные усилия при изучении РНР. РНР — язык, сочетающий достоинства Perl и Си и специально нацеленный на работу в Интернете, язык с универсальным (правда, за некоторыми оговорками) и ясным синтаксисом. И хотя РНР является довольно молодым языком, он обрел такую популярность среди web-программистов, что на данный момент является чуть ли не самым популярным языком для создания web-приложений (скриптов). [2]

Простота.

Сценарий РНР может состоять из 10 000 строк или из одной строки — все зависит от специфики вашей задачи. Вам не придется подгружать библиотеки, указывать специальные параметры компиляции или что-нибудь в этом роде.

Механизм РНР просто начинает выполнять код после первой экранирующей последовательности (<?) и продолжает выполнение до того момента, когда он встретит парную экранирующую последовательность (?>). Если код имеет правильный синтаксис, он исполняется в точности так, как указал программист. [2]

PHP - язык, который может быть встроен непосредственно в html –код страниц, которые, в свою очередь будут корректно обрабатываться РНР - интерпритатором. Мы можем использовать РНР для написания CGI-сценариев и избавиться от множества неудобных операторов вывода текста. Мы можем привлекать РНР для формирования HTML-документов, избавившись от множества вызовов внешних сценариев. Большое разнообразие функций РНР избавят вас от написания многострочных пользовательских функций на С или Pascal. [2]

Эффективность.

Эффективность является исключительно важным факторов при программировании для многопользовательских сред, к числу которых относится и web. Очень важное преимущество РНР заключается в его «движке». «Движок» РНР не является ни компилятором, ни интерпретатором. Он является транслирующим интерпретатором. Такое устройство «движка» РНР позволяет обрабатывать сценарии с достаточно высокой скоростью. По некоторым оценкам, большинство PHP-сценариев (особенно не очень больших размеров) обрабатываются быстрее аналогичных им программ, написанных на Perl. Однако, чтобы не делали разработчики РНР, откомпилированные исполняемые файлы будут работать значительно быстрее - в десятки, а иногда и в сотни раз. Но производительность РНР вполне достаточна для создания вполне серьезных web-приложений. [2] .

Безопасность.

РНР предоставляет в распоряжение разработчиков и администраторов гибкие и эффективные средства безопасности, которые условно делятся на две категории: средства системного уровня и средства уровня приложения.

1. Средства безопасности системного уровня

В РНР реализованы механизмы безопасности, находящиеся под управлением администраторов; при правильной настройке РНР это обеспечивает максимальную свободу действий и безопасность. РНР может работать в так называемом безопасном режиме (safe mode), который ограничивает возможности применения РНР пользователями по ряду важных показателей. Например, можно ограничить максимальное время выполнения и использование памяти (неконтролируемый расход памяти отрицательно влияет на быстродействие сервера). По аналогии с cgi-bin администратор также может устанавливать ограничения на каталоги, в которых пользователь может просматривать и исполнять сценарии РНР, а также использовать сценарии РНР

для просмотра конфиденциальной информации на сервере (например, файла passwd).

2. Средства безопасности уровня приложения

В стандартный набор функций РНР входит ряд надежных механизмов шифрования. РНР также совместим со многими приложениями независимых фирм, что позволяет легко интегрировать его с защищенными технологиями электронной коммерции (e-commerce). Другое преимущество заключается в сходный текст сценариев РНР нельзя просмотреть в браузере, поскольку сценарий компилируется до его отправки по запросу пользователя. Реализация РНР на стороне сервера предотвращает похищение нетривиальных сценариев пользователями, знаний которых хватает хотя бы для выполнения

команды View Source. [2]

Гибкость.

Поскольку РНР является встраиваемым (embedded) языком, он отличается исключительной гибкостью по отношению к потребностям разработчика. Хотя РНР обычно рекомендуется использовать в сочетании с HTML, он с таким же успехом интегрируется и в JavaScript, WML, XML и другие языки. Кроме того, хорошо структурированные приложения РНР легко расширяются по мере необходимости (впрочем, это относится ко всем основным языкам программирования). Нет проблем и с зависимостью от браузеров, поскольку перед отправкой клиенту сценарии РНР полностью компилируются на стороне сервера. В сущности, сценарии РНР могут передаваться любым устройствам с браузерами, включая сотовые телефоны, электронные записные книжки, пейджеры и портативные компьютеры, не говоря уже о традиционных ПК. Программисты, занимающиеся вспомогательными утилитами, могут запускать РНР в режиме командной строки. Поскольку РНР не содержит кода, ориентированного на конкретный web-сервер, пользователи не ограничиваются определенными серверами. Apache, Microsoft IIS, Netscape Enterprise Server, Stronghold и Zeus — PHP работает на всех перечисленных серверах. Поскольку эти серверы работают на разных платформах, РНР в целом является платформенно - независимым языком и существует на таких платформах, как UNIX, Solaris, FreeBSD и Windows 95/98/NT72000/XP/2003. Наконец, средства РНР позволяют программисту работать с внешними компонентами, такими как Enterprise Java Beans или СОМ-объекты Win32. Благодаря этим новым возможностям РНР занимает достойное место среди современных технологий и обеспечивает масштабирование проектов до необходимых пределов. [2]

Бесплатное распространение.

Стратегия Open Source, и распространение исходных текстов программ в массах, оказало несомненно благотворное влияние на многие проекты, в первую очередь — Linux, хотя и успех проекта Apache сильно подкрепил позиции сторонников Open Source. Сказанное относится и к истории создания PHP, поскольку поддержка пользователей со всего мира оказалась очень важным фактором в развитии проекта РНР. Принятие стратегии Open Source и бесплатное распространение исходных текстов РНР оказало неоценимую услугу пользователям. Вдобавок, отзывчивое сообщество пользователей РНР является своего рода «коллективной службой поддержки», и в популярных электронных конференциях можно найти ответы даже на самые сложные вопросы. [2] Perl.

Perl является аббревиатурой выражения Practical Extraction and Report Language (практический язык извлечений и отчетов), хотя иногда его называют Pathologically Eclectic Rubbish Lister (патологически эклектичный мусорный листер). Не стоит спорить о том, какое из этих названий более правильное, потому что оба они принадлежат Ларри Уоллу, создателю и главному архитектору, распространителю и опекуну языка Perl. Ларри создал этот язык, когда пытался формировать отчеты из иерархии файлов системы оповещения об ошибках, похожей на Usenet-новости, а возможности применявшегося в то время обработчика потоков данных awk оказались исчерпанными. Будучи настоящим (то есть ленивым) программистом, Ларри решил вырвать данную проблему с корнем, применив для этого какой-нибудь универсальный инструмент, который он надеялся использовать и в дальнейшем. В результате появилась первая версия языка Perl. Позабавившись немного с этой версией, добавив кое-что, Ларри предложил ее сообществу читателей материалов телеконференций Usenet, известному также как "Сеть" (the Net). Пользователи, имеющие доступ к входящим в систему Usenet компьютерам, разбросанным по всему свету (а их в то время было несколько десятков тысяч), обеспечили для создателя Perl эффективную "обратную связь", спрашивая, как делать одно, другое, третье. Многие из этих задач Ларри даже и не собирался ставить перед своим маленьким новым языком программирования. Назначение языка Perl - помочь программисту в выполнении рутинных задач, которые для shell слишком трудны или плохо переносимы, а также чересчур заумны, одноразовы или сложны для кодирования на С или ином используемом в UNIX языке. Изучение языка Perl, приведет к уменьшению траты времени на правильное заключение в кавычки различных параметров shell (или на корректное выполнение С-объявлений), а больше — на чтение Usenet-новостей и катание с гор на лыжах, потому что Perl — замечательное средство для вашего совершенствования как программиста. Мощные конструкции этого языка позволяют создавать (с минимальной затратой сил) некоторые очень эффективные специализированные решения и универсальные инструменты. Эти инструменты можно использовать и в дальнейшем, потому что написанные на Perl программы отличаются высокой переносимостью и готовностью к использованию. [4]

Java.

Java - объектно-ориентированный язык программирования, разрабатываемый компанией Sun Microsystems. Приложения Java обычно компилируются в специальный байт-код, поэтому они могут работать на любой виртуальной Java-машине (JVM) независимо от компьютерной архитектуры. Дата официального выпуска — 23 мая 1995 года. Программы на Java транслируются в байт-код, выполняемый виртуальной машиной Java. (JVM) — программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор, но с тем отличием, что байтовый код, в отличии от текста, обрабатывается значительно быстрее. Достоинство подобного способа выполнения программ — в полной независимости байт-кода от операционной системы и оборудования, что позволяет выполнять Java-приложения на любом устройстве, для которого существует соответствующая виртуальная машина. Другой важной особенностью технологии Java является гибкая система безопасности благодаря тому, что исполнение программы полностью контролируется виртуальной машиной. Любые операции, которые Превышают установленные полномочия программы (например, попытка несанкционированного доступа к данным или соединения с другим компьютером) вызывают немедленное прерывание. Часто к недостаткам концепции виртуальной машины относят то, что исполнение байт-кода виртуальной машиной может снижать производительность программ и алгоритмов, реализованных на языке Java. Данное утверждение было справедливо для первых версий виртуальной машины Java, однако в последнее время оно практически потеряло актуальность. Этому способствовал ряд усовершенствований:

  • применение технологии трансляции байт-кода в машинный код непосредственно во время работы программы (ЛТ-технология) с возможностью сохранения версий класса в машинном коде,

  • широкое использование платформенно-ориентированного кода, (native-код) в стандартных библиотеках,

  • аппаратные средства, обеспечивающие ускоренную обработку байт-кода (например, технология Jazelle, поддерживаемая некоторыми процессорами фирмы ARM).

По данным сайта shootout.alioth.debian.org, для семи разных задач время выполнения на Java составляет в среднем в полтора-два раза больше, чем для C/C++, в некоторых случаях Java быстрее, а в отдельных случаях в 7 раз 'медленнее. С другой стороны, для большинства из них потребление памяти Java-машиной было в 10-30 раз больше, чем программой на C/C++. Идеи, заложенные в концепцию и различные реализации среды виртуальной машины Java, вдохновили множество энтузиастов на расширение перечня языков, которые могли бы быть использованы для создания программ, исполняемых на виртуальной машине. Эти идеи нашли также выражение в спецификации общеязыковой инфраструктуры CLI, заложенной в основу платформы .NET компанией Microsoft. [2]

Внутри Java существуют три основных семейства технологий:

  • J2EE или Java ЕЕ (начиная с vl.5) — Java Enterprise Edition, для создания программного обеспечения уровня предприятия;

  • J2SE или Java SE (начиная с vl.5) — Java Standard Edition, для создания пользовательских приложений, в первую очередь — для настольных систем;

  • J2ME, Java ME или Java Micro Edition, для использования в устройствах, ограниченных по вычислительной мощности, в том числе мобильных телефонах, PDA, встроенных системах

Самыми популярными считаются серверные технологии семейства J2EE.

Последним релизом является версия 1.6, в которой было произведено улучшение системы безопасности, улучшение поддержки XML, а также добавлена поддержка скриптового языка JavaScript на основе механизма Mozilla Rhino (англ. Rhino (JavaScript engine)), улучшена интеграция с рабочим столом, добавлены некоторые новые возможности в создании графических интерфейсов. [5]

ASP.NET.

ASP.NET — технология создания веб-приложений и веб-сервисов от компании Майкрософт. Она является составной частью платформы Microsoft. NET и развитием более старой технологии Microsoft ASP. На данный момент последней версией этой технологии является ASP.NET 4.0Ь. ASP.NET внешне во многом сохраняет схожесть с более старой технологией ASP, что позволяет разработчикам относительно легко перейти на ASP.NET. В то же время внутреннее устройство ASP.NET существенно отличается от ASP, поскольку она основана на платформе .NET и, следовательно, использует все новые возможности, предоставляемые этой платформой. [23]

ColdFusion.

ColdFusion — интерпретируемый скриптовый язык программирования, созданный для генерации HTML на веб-сервере и работы с базами .данных. Язык был создан JJ Allaire и его братом Jeremy Allaire, но на данный момент продуктом владеет Adobe. ColdFusion 1.0 был выпущен в июне 1995 г. корпорацией Allaire. Язык был назван DBML (от англ. DataBase Markup Language — «язык разметки баз данных») и позже был переименован в CFML (от англ. ColdFusion Markup Language — «язык разметки ColdFusion»). Начиная с версии 1.5, ColdFusion содержал совместимость с C++, позволяя пользователям разрабатывать дополнения к языку. Годами позже это послужило основой для создания ColdFusion Extension (CFX) Tags, нынешнего метода для дополнения языка. [25]

Тем временем, Allaire начала работу по изменению ядра ColdFusion с помощью Java. Это должно было обеспечить кроссплатформенность. 16 января 2001 г. Allaire заявила, что сливается с Macromedia. После слияния была выпущена версия ColdFusion 5.0. В июне 2002 Macromedia выпустила Macromedia ColdFusion MX, назвав версию по аналогии с линейкой своих остальных продуктов. ColdFusion MX была полностью переписана и основана на Java 2 Enterprise Edition (J2EE). В ColdFusion MX также была встроена хорошая поддержка Macromedia Flash (через Macromedia Flash Remoting MX). ColdFusion использовался для создания миллионов веб-страниц и был признан одним из простейших языков программирования для веб-разработчиков, знающих HTML. В основном это заслуга того, что он основывается на тегах, - HTML, а также хорошей поддержке независимыми разработчиками, группы пользователей, почтовые рассылки, конференции и методологии Fusebox и Mach-II для создания кода.

MySQL (официально произносится, «май-эс-кью-эль», сленг, «мускул», «мускуль», свободная система управления базами данных (СУБД). MySQL собственностью компании Sun Microsystems, осуществляющей разработку и поддержку приложения. Распространяется под GNU General Public License и под собственной коммерческой лицензией, на выбор. Помимо этого разработчики создают функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизмрепликации. MySQL является решением для малых и средних приложений. Входит в LAMP. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы. Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MylSAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц. [2]