.:Публикации:. [www.karlson.ru]


Вперед: Разработанные программы Вверх: Курсовая работа 2 Назад: Обзорная часть   Содержание

О выбранных компонентах

В качестве основного языка программирования для создания рабочих программ на www-сайтах был выбран PHP 3.0.7. PHP был задуман в конце 1994 года Расмусом Лердорфом. Первая версия вышла в начале 1995 года и называлась Personal Home Page Tools. Это был очень простой интерпретатор, понимающий только ограниченное число макросов и утилит, которые в те времена были часто используемы в домашних страничках. В середине 1995 года интерпретатор был переписан и назван PHP/FI Personal Home Pages and Forms Interpreter (ранее отдельный проект Расмуса -- интерпретатор HTML форм). В интерпретатор была добавлена поддержка mSQL, вследствие чего появился PHP/FI 2.0, и различные программисты со всего мира стали добавлять свои модули к нему. В 1996 году PHP/FI использовался примерно на 15000 сайтах по всему миру, в середине 1997 -- уже на 50000. В это же время PHP снова изменился -- он перестал быть проектом Расмуса и стал поддерживаться организованной группой программистов, среди которых были такие люди, как Зеев Сураский и Анди Гутманс. В середине 1998 года число серверов использующих PHP (теперь Professional Home Pages 3.x) выросло до 150000. Здесь многие зададут вопрос: а почему не perl ? Действительно, perl традиционно считается рабочей лошадкой для создания www-сайтов, но у него тоже есть свои недостатки. Прежде всего "интерпретатор" perl -- существенно более сложная программа, нежели интерпретатор PHP и требует больших ресурсов компьютера для своей работы. Далее, "интерпретатор" perl не является истинным интерпретатором: на самом деле он является компилятором, однако компилирует в специализированный псевдокод, который затем немедленно исполняется. Если в программе есть циклы, то это может являться существенным выигрышем, но если их нет (как это часто бывает в простых скриптах для www-сервера), то это будет являться уже скорее недостатком. Применение mod_perl позволяет избежать многократной перекомпиляции скриптов, но взамен еще больше возрастают потребности в памяти сервера. Итак, что такое PHP ? PHP -- язык для создания "активных" страниц. Как и JavaScript, VBScript или ASP, программа PHP вставляется в текст HTML файла заключенной специальные скобки (в случае client-side JavaScript это <script language="JavaScript"> и </script>, в случае server-side JavaScript это <server> и </server>, в случае VBScript это <script language="VBScript"> и </script>, в случае ASP это <% и %> и, наконец, в случае PHP это <?PHP и ?>). Все, что окажется вне этих скобок, не будет интерпретироваться PHP, а будет передано "как есть" и подвергнется интерпретации обозревателем Интернета. Синтаксис PHP основан на C, Java и Perl и достаточно подробно описан в документации, которая входит в комплект поставки, и также может быть найден на http://www.php.net/ ... Способ, с помощью которого можно заставить сервер воспринимать файл не просто как HTML файл, а как динамический HTML файл со вставками на PHP, может меняться в зависимости от сервера, но, как правило, для этого достаточно дать файлу расширение .php3 PHP может действительно многое. Работать с HTTP cookies и HTTP authentication, создавать на лету картинки (с модулем GD или ImageMagic, в том числе используя True Type шрифты (c модулем FreeType), работать с формами и закачкой файлов, работать с входящей почтой (с модулем Imap), а так же посылать исходящую, работать с файлами, поддерживать обработку ошибок, и многое другое. Однако основной силой PHP считается модуль поддержки баз данных. Поддерживаются (как напрямую, так и через ODBC):
  • Adabas D
  • Oracle
  • dBase
  • PostgreSQL
  • FilePro
  • Solid
  • Informix
  • Sybase
  • InterBase
  • Velocis
  • mSQL
  • Unix dbm
  • MySQL
Для хранения практически любой информации в наших программах будет использоваться SQL сервер. Это происходит в результате использования фактически одной программы на несколько пользователей, применение файлов ОС для хранения данных практически не реально: функций разделения использования будет в нашем случае недостаточно. В качестве SQL сервера был выбран MySQL. MySQL -- это многопользовательский, многопоточный SQL сервер. Основными достоинствами MySQL являются быстрота, надежность и простота использования. Несмотря на то, что MySQL не предоставляет такой широкий набор возможностей, как, скажем, Oracle, тем не менее его использование представляется рациональным из-за значительно меньших требований к мощности оборудования и значительно более высокой скорости работы. Так же следует обратить, что для Unix и OS/2 MySQL свободно-распространяем (хотя и не в рамках GPL -- GNU General Public License). PHP3 -- свободно распространяем в рамках лицензии GPL под все платформы, включая win32, как и www-сервер Apache. Заметим так же, что использование технологии PHP3 совместно с Apache и MySQL так же разумно с точки зрения переносимости. Традиционно считается, что лучшим языком программирования для обеспечения переносимости является Java, однако это больше результат массированной рекламной кампании Sun Microsystems, чем результат реальной переносимости языка Java. Хочется задать вопрос откуда и куда переносима Java, когда официальная версия выпускается только для Solaris и Win32. В отличие от этого все компоненты нашей системы свободно работают на практически всех клонах Unix, OS/2 и Win32. В рамках всего вышесказанного, использование www-сервера Apache оказывается уже совсем очевидным решением. Во-первых, это сервер очень надежен, легок и мал по размеру (конечно, все относительно, но дистрибутив последних версий Apache для Linux занимает около 1,5 Mb, то есть примерно столько же, сколько Microsoft Personal Web Server для Windows, но вот какова разница в возможностях -- Apache является профессиональным www-сервером с полноценными возможностями, а Personal Web Server умеет только передавать чисты HTML), переносим на большинство платформ и свободно-распространяем. Во-вторых, этот сервер опробован на большинстве www-cерверов сети Интернет -- более 50Netcraft http://www.netcraft.com. В качестве операционной системы на сервере была выбрана ОС Linux, из-за открытости, быстроты, компактности, надежности, свободности, переносимости на различные платформы и растущей популярности системы. Существующие дистрибутивы этой ОС сильнейшим образом различаются по комплектации -- так что возможно выбранные выше компоненты придется самостоятельно получать из Интернет, компилировать и устанавливать самому, а возможно нет. В работе использовалась версия дистрибутива KSI Linux 2.0 (http://www.ksi-linux.com/), поскольку в нее входят все перечисленные компоненты и поскольку ознакомление с ним прошло наиболее полно (путем принятия участия в разработке).

...домик на крыше...,поиск,гостевая книга,cv. Be free, use Linux!