Рубрика:
Веб /
Веб
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
Алексей Моисеев
История развития сайтостроения
WWW является одним из наиболее динамично развивающихся сервисов глобальной сети Интернет. За 14 лет развития сайтостроения была проделана большая работа по созданию существующих стандартов, обеспечивающих не просто существование, а развитие WWW, благодаря чему можно строить планы на будущее, не совершая ошибок прошлого. Только полная картина всего, что было и есть, позволит понять, чего именно не хватает на рынке в данный момент, а значит и определить дальнейший путь веб-разработок.
К настоящему времени в Интернете уже существует около двух миллиардов страниц. Ни одна из возможных тем не ускользнула от упоминаний в Web. Каждую секунду в Сети добавляется примерно 25 новых сайтов.
Рождение
Со времён создания сети Интернет одним из наиболее известных его сервисов стала «Всемирная паутина» – World Wide Web. В 1991 году Пол Линдер (Paul Linder) и Марк П. МакКейгил (Mark P. McCahill) из Университета Миннесоты создали Gopher (полное название Gopher State – штат сусликов, шутливое название штата Миннесота). Технология организации файлов в логическую систему меню обусловила его немедленное принятие как стандарт в сети Интернет. Протокол Gopher является непосредственным предшественником концепции и функций WWW. Серверы Gopher быстро распространились в сети Интернет, хотя в них не было гипертекстовых ссылок и графических элементов. Через короткий отрезок времени стало ясно, что возможностей таких серверов не хватает.
Самый большой сервер Gopher принадлежал европейской организации CERN (Европейская лаборатория физики частиц высокой энергии). Эта организация стала движущей силой подключения Европы к Интернету.
Первые шаги
В 1992 году была создана Всемирная информационная сеть (World Wide Web или просто Web). Разработчиком технологии был Тим Бернерс-Ли (Tim Berners-Lee). Задача Сети заключалась в распространении информации посредством сетевой компьютерной технологии. Технология WWW стала развитием идей Gopher.
В истории было немало учёных, чьи мысли опережали время, в котором они живут. Среди них был и Тед Нельсон (Ted Nelson), который первым предложил концепцию гипертекста в своей книге «Computer Lib/Dream Machines», опубликованной в 1974 году. В середине 90-х годов понятие гипертекста расширилось и включило в себя идею гипермедиа, то есть добавление ссылок на графические видеоклипы и музыкальные ролики.
На основе результатов работ Теда Нельсона, а также концепции гипертекста он сделал возможным включение графики, типографских текстовых стилей и самое главное – гипертекстовые ссылки в веб-страницы.
«Три кита» новой технологии
Основой Web стали три новых технологии:
HTML (HyperText Markup Language, язык разметки гипертекста) – язык логической разметки веб-страниц. HTML «вырос» из более сложного языка SGML (Single Generalized Markup Language, ISO 8879) [1]. HTML как стандарт для разметки веб-страниц вышел в свет в ноябре 1995 года под названием «HTML 2.0». После чего были предприняты попытки его модернизации, однако проект «HTML 3.0» так и не был рекомендован интернет-консорциумом. Возможно, тогда потребностям веб-разработчиков вполне отвечал предыдущий стандарт. С течением времени число пользователей WWW увеличивалось, что привело к появлению среди разработчиков всё более талантливых людей, которых возможности второй версии HTML явно не устраивали. То есть паутина всего за два года развилась до «HTML 4.0», который практически в неизменном виде используется и по сей день с незначительными изменениями.
В конце 90-х интернет-консорциуму стало ясно, что HTML не отвечает потребностям Web, и любая новая версия HTML быстро устареет. Поэтому было предложено развивать расширяемый язык разметки: XML (eXtensible Markup Language) – новый стандарт оформления самых разнообразных документов, в том числе и веб-страниц. Уникальность XML заключается в его неограниченной расширяемости в силу четкой структурированности данных, возможности определения своих тегов и т.д.
XML так сильно отличается от HTML, что был разработан XHTML (это основанный на XML язык разметки гипертекста, максимально приближенный к текущим стандартам HTML. Был опубликован консорциумом в первый день 2000 года как переформулирование (Reformulation) HTML в XML.
HTTP (HyperText Transfer Protocol, протокол передачи гипертекста) используется для передачи веб-страниц от сервера к пользовательскому браузеру.
Веб-браузер – программа, необходимая для просмотра веб-страниц.
Практически сразу после создания Web был создан первый браузер, причём он распространялся совершенно бесплатно. Браузер назывался Mosaic, его создали в Национальном центре суперкомпьютерных приложений при университете Иллинойса в 1993 году. Ничто в истории информационных технологий не распространялось с такой же быстротой.
Более подробную информацию о WWW можно найти по ссылке [2], где есть ответы на все наиболее часто встречающиеся вопросы.
Нововведением в стандарте W3C HTML 4.0 явились листы стилей (style sheets), позволяющие отделять содержание HTML-документов от их представления. Связывая один сценарий со всеми страницами ресурса, вы можете изменять внешний вид сразу всего сайта, даже если со страницами в данный момент работают пользователи. В настоящее время существует стандарт Cascade Style Sheets Level 2 (CSS2), однако полностью его не поддерживает ни один браузер. Элементы, поддержка которых реализована в тех или иных браузерах, как правило, по разному «понимаются». Дальше всех в этой области продвинулись браузеры, выпускаемые под маркой Mozilla (Mozilla, Mozilla ForeFox, Mozilla ThunderBird). В ближайшее время выйдет стандарт Cascade Style Sheets Level 3 (CSS3). Исследования [3] показывают, что в текущее время наиболее популярным браузером является Internet Explorer, им пользуются около 89% пользователей WWW. На втором месте Mozilla, у которого около 6,8%. Среди остальных браузеров можно выделить: Opera, Konqueror, Lynx, а также браузеры, построенные на основе Mozilla и недавно открытого кода Internet Explorer.
Быстрое развитие
Число пользователей WWW лавинообразно увеличивалось, благодаря чему всё большую роль в развитии паутины стал играть бизнес. Каждый день создавалось множество интернет-представительств компаний, работающих в различных сферах рынка. Каждый отдельный сайт представлял собой набор статических HTML-страниц, CSS-таблиц стилей, а также графических файлов. Для оперативного обновления и своевременного добавления новых разделов на сайт было необходимо держать в штате компании группу веб-разработчиков. Сделать переоформление (редизайн) такого сайта вообще не представляется возможным, так как для этого необходимо отредактировать каждую страницу в отдельности. Например, если на одну страницу уходит 20 минут, то на 1000 страниц уйдёт примерно 42 рабочих человеко-дня, что составляет чуть более двух недель работы небольшой группы веб-разработчиков при условии, что в это время им не будут давать срочных заданий. В итоге для переоформления ресурса отдел информационных технологий будет полностью парализован на относительно длительное время, что недопустимо, за редким исключением. На рынке сформировалась потребность в автоматизированной системе построения страниц сайта на основе написанных статей и HTML-шаблонов. Такие системы были названы CMS (Content Management System, системы управления контентом), они, как правило, состоят из трёх частей:
- Статическая часть – HTML-шаблоны.
- Программная часть – в большинстве случаев интерпретируемые модули, которые также можно разделить по назначению
- Пользовательские скрипты, показывающие информацию посетителям, используя шаблоны страниц и информацию из хранилища данных.
- Администраторские скрипты позволяют управлять возможностями веб-ресурса, такими как: голосования, анонсы и т. п.
- Хранилище данных представляет собой совокупность сервера управления базами данных и самой базы данных. Однако в некоторых случаях можно использовать файлы на жёстком диске.
Благодаря шаблонам количество HTML-кода сокращается в десятки раз. К шаблонам обычно относят также CSS-код и JavaScript-код.
Программная часть вполне может быть написана на любом языке программирования, однако при этом появится чрезмерная сложность отладки и платформозависимость. В начале развития CMS использовали Perl (для UNIX-хостингов) и ASP (для Windows-хостингов). Популярность Perl (Practical Extraction and Report Language) в те времена можно было объяснить целым рядом причин: простота синтаксиса, большие возможности интерпретатора, а главное – каждый администратор UNIX использовал его для управления и настройки системы. То есть люди, чья работа хоть как-то связана с UNIX-подобными системами, уже владели практически всеми необходимыми знаниями для веб-разработки. Однако Perl изначально не был предназначен для этого. Поэтому параллельно существовали более адаптированные для Web языки (интерпретаторы). К ним можно отнести PHP (раньше понималось как Personal Home Pages, однако в последнее время расшифровывается как Hypertext Preprocessor), Python, KixtArt, Yo-Script (скриптовый язык, который длительное время использовался для отображения страниц в www.yahoo.com) и множество других. Работа над большинством таких языков прекращена, однако остальные начали развиваться быстрыми темпами. Например, PHP до 4-й версии обладал рядом недостатков, не позволявших ему получить абсолютную популярность (например, первые версии PHP позволяли писать лишь небольшие скрипты), однако в 4-й версии все они были устранены. В текущий момент большинство проектов работают именно на PHP-скриптах, однако также встречаются и Perl/ASP-движки.
Хранилище информации
В качестве хранилища данных на любом, сколько бы то ни было весомом проекте используется база данных. В большинстве случаев это MySQL или PostgreSQL. Они получили широкую распространённость (особенно MySQL) благодаря тому, что отсутствует плата за использование обоих СУБД, а также они существуют под все платформы, используемые на WWW-серверах. Однако «дёшево хорошо не бывает», в случае если от сервера баз данных требуются работы с огромными объёмами данных, то приходится использовать Oracle, MS SQL либо другие СУБД, осуществляющие достаточно быструю работу с большими объёмами данных. Однако все они являются платными. Об этом можно долго спорить. Для большинства CMS не нужны огромные объемы данных. Важнее скорость обработки SQL-запросов. Помимо перечисленных есть множество других СУБД, каждая из которых обладает как недостатками, так и преимуществами по сравнению со своими конкурентами.
Все выше упомянутые СУБД являются SQL-серверами баз данных. Использовать что-то работающее не на технологии Клиент/Сервер не представляется возможным, так как по ряду причин (например, на разных платформах существуют различные СУБД, каждая ориентирована под свой круг задач) нецелесообразно встраивать систему управления базами данных (СУБД) в интерпретатор. С момента опубликования стандарта SQL92 СУБД, работающие на основе SQL-предложений, фактически стали единственным стандартом для серверов управления базами данных, существующих в Web. Под SQL-предложением понимают команду SQL-серверу, однако в отличие от других команд, используемых для управления какими-либо приложениями ЭВМ, SQL-команды являются весьма приближенными к человеческому языку, возможно, это и есть важнейшая причина, по которой их называют именно SQL-предложениями, а не командами. Пример простейшего SQL-предложения: «SELECT * FROM table_name».
Итоги развития WWW
За несколько лет системы управления содержимым веб-ресурсов серьёзно развились, их можно классифицировать по областям применения.
- Порталы. Используются для информационных ресурсов, основной целью ставят максимальное упрощение публикации статей и новостей. Могут включать в себя нижеследующие типы CMS как самостоятельные модули. Наиболее известные представители данного класса: PHP-Nuke, XOOPS.
- Движки без SQL. Данное ответвление в разработке CMS развито наиболее слабо, так как использование в качестве хранилища информации файлов вместо таблиц базы данных сопряжено со множеством нерешаемых проблем (таких как одновременная запись в один файл несколькими копиями скрипта). Достоинство таких CMS заключается в том, что они могут быть размещены на бесплатных хостингах. Есть несколько реализаций данной идеи: Cute News, Gruppy.
- Блог (название «блог» (blog) происходит от английского слова «weblog». Русский термин – «сетевой дневник») – это сайт, на котором находятся личные заметки автора. В основном заметками являются ссылки на сайты, которые кажутся владельцу ресурса наиболее интересными, и комментарии к ним. В большинстве случаев владельцы блогов дают небольшие комментарии на приведенные ресурсы, другие же пытаются подробно описать сайт. Блог может содержать не только ссылки, но и просто электронный дневник пользователя. В эту категорию можно отнести следующие CMS: b2evolution, bBlog.
Сетевые дневники приобретают все большую популярность. Уже начинают активно обсуждать, кто же влиятельнее: СМИ или блоги. Они постепенно входят в жизнь рядового пользователя всемирной паутины – например, в Штатах выходит телепередача о блогах. Существует два способа начать вести блог: воспользоваться специальным сервисом (например, LiveJournal) или установить к себе на сервер (платный или бесплатный хостинг) автономный блог, то есть использовать специализированную CMS.
- Форумы – это инструмент для общения на сайте. Принципиальное свойство форума заключается в том, что сообщения в нем объединены в треды (от англ. thread – «нить»). Когда вы отвечаете в форуме на чье-то сообщение, ваш ответ будет «привязан» к исходному сообщению. Последовательность таких ответов, ответов на ответы и т. д. и создает тред. В итоге форум представляет собой древовидную структуру, состоящую из тредов.
- Магазины. К магазинам можно отнести любой сайт, при помощи которого можно заказать какой-либо товар. В данном случае в определение «товара» может входить абсолютно всё, включая время доступа в Интернет, минуты сотовой связи. CMS, позволяющие создать виртуальный магазин: MyMarket, osc2nuke.
- Групповая работа (Groupware) – комплекс программного обеспечения, позволяющий организовать работу предприятия, отношения с клиентами и заказчиками в Интернете. Обычно представляет закрытую полностью или частично часть сайта с возможностью отслеживать сроки выполнения поставленных задач, распределения ролей и временных нормативов. Возможно, выносить вопросы на обсуждения и решения вышестоящего руководства. В большинстве случаев иcпользуются следующие CMS: dotProject, eGroupWare, MoreGroupware, phpCollab, PHProjekt.
- Обучение (e-Learning) – дистанционная форма обучения с использованием сети Интернет. Онлайновая форма обучения уже не один год является «маяком», на который ориентируются образовательные системы разных стран мира, переживающие сложный процесс реформирования. Процесс их модернизации все больше связан с реализацией задач информатизации, учитывая все возрастающую роль информационных и интернет-технологий в современном обществе и бизнесе. Стратегическим направлением становится обеспечение интеллектуального развития на основе быстрого обновления знаний в области технических наук, а также развития навыков эффективного использования информационных ресурсов. Таких систем существует не много: ATutor, Claroline, LogiCampus, Moodle, Segue, Site@School.
- Базы знаний (KnowledgeBase) позволяют накапливать опыт множества разработчиков, работающих (или работавших) в какой-либо одной организации. Каждая такая база знаний имеет свою специфичную структуру, поэтому общих решений на данный момент предложено крайне мало, а точнее только одно – Wiki. На этом «движке» работает широко известная электронная энциклопедия Wikipedia.
Наиболее известная из существующих ныне баз знаний – RFC (Request For Comment, запрос на комментирование, обычно описание работы с каким-либо протоколом и тому подобное, публикуется в виде небольшого документа, как правило, с примером программы.).
- Биллинг (Billing). Программное обеспечение, позволяющее провайдерам и реселлерам работать со счетами клиентов. Такие CMS являются неотъемлемой частью крупной системы учёта потребления услуг пользователями. Задача же CMS данной категории – в визуализации информации о предоставленных услугах, подключении новых услуг, изменении текущих параметров, приёме платежей и т. п. Во всех случаях такие системы пишутся своими силами. Для примера можно привести биллинг-панель RuWEB. В ней создано огромное количество тарифных планов, позволяющих пользователям платить только за те параметры хостинга (трафик, место на жёстком диске, MySQL, PHP, Perl), которые используются в полном объёме. Пока ни одна другая фирма (работающая в этой секторе рынка ИТ-услуг) не воспользовалась этой, несомненно, удачной идеей.
- Администраторская панель хостинга. К этому классу относятся такие продукты, как «Direct Admin» и «Control Panel». Немало хостинг-провайдеров стараются написать панель управления для пользователя хостинга своими силами, однако ни одно такое решение, насколько мне известно, так и не смогло по возможностям и эргономике хоть немного приблизиться к вышеупомянутым системам. Например, админ. панель хостинга net.ru даёт лишь простейшие функции управления и способна показать только то, что может сделать администратор за день работы.
Альтернатива CMS
Для того чтобы перевести статический ресурс под управление одной из CMS, необходимо создать его заново. Если на сайте уже имеются сложная структура и большие объёмы данных, то цена вопроса становится ощутимой даже для относительно богатых организаций. Так как продолжение существования в старом формате уже не представляется возможным, то формируется спрос на продукт, позволяющий управлять существующим статическим сайтом. Спрос порождает предложение, и вот уже около пяти лет на рынке существует продукт IPI.CONTROL (www.ipi.ru). В первом приближении он выполняет функции «насадки» на сайт, позволяющей приблизить возможности такого ресурса к функциональности CMS. Текущие возможности системы (в плане CMS) для больших проектов оставляют желать лучшего – IPI предназначена для малого и среднего бизнеса. Однако профессиональные маркетологи сделали своё дело, что дало системе некоторое число постоянных потребителей, ежемесячно пополняющих бюджет компании, из которого идут деньги на дальнейшие разработки. Важно отметить, система сделана таким образом, что позволяет в любой момент прекратить пользоваться её услугами. В этом смысле её можно сравнить с некоторым инструментом (например, отвёрткой), взятым в аренду. Пока пользуетесь – платите, если чувствуете, что некоторое время (больше двух-трёх месяцев) вы не будете использовать её, – то можно временно отключиться… или вообще перестать пользоваться услугами компании. Возможно, в этом заключается одна из причин, почему скрипты системы не продаются, а сдаются в аренду. Описанное свойство является большим плюсом, который пока не реализован ни в одной системе управления контентом, кроме рассматриваемой). В принципах работы этой организации можно почерпнуть наиболее удачные идеи: если брать деньги не за саму CMS, а за её аренду, причём размещать её на своём сервере (тут важно учесть все условия к хостингу потенциальных будущих заказчиков), то это даст возможность предоставлять более эффективную поддержку клиентам, постоянно повышать безопасность и улучшать качество работы как самой системы, так и всего сервера в целом. При увеличении числа пользователей такой организации, работы программистами добавляется минимум, что позволяет снижать плату для всех пользователей, а самое главное – постоянно расширять возможности системы. Если в первые дни существования IPI.CONTROL могла лишь управлять содержимым сайтов, теперь это полноценный рабочий кабинет администратора сайта. В системе реализован принцип единой администраторской панели. Это можно связать с тем фактом, что за последние четыре года в BugTraq не раз появлялись уязвимости PHPNuke и других CMS, однако о взломах сайтов на базе IPI.CONTROL не было ни одного сообщения. Безусловно, использование IPI не является столь массовым, как PHPNuke, по той причине, что последний бесплатен, а IPI.CONTROL стоит больших денег, однако в случае появления бреши в PHPNuke её будут устранять некоторое (возможно, продолжительное) время, а в случае с IPI можно связаться по сотовому телефону с директором и высказать всё, что наболело.
В следующей части, на основе анализа текущего состояния WWW, будут сформулированы требования к CMS, отвечающие потребностям пользователей (как бизнеса, так и частных лиц) завтрашнего дня. Благодаря количественной и качественной оценке ошибок, появлявшихся в истории развития ресурсо-строения, быть может, обозначенный в следующей части путь развития CMS окажется наиболее правильным.
Ссылки:
- http://www.w3.org/pub/WWW/MarkUp/SGML.
- http://www.boutell.com/faq.
- http://www.securitylab.ru/54639.html.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|