Автор книги: Сергей Сухов
Жанр: Маркетинг; PR; реклама, Бизнес-Книги
сообщить о неприемлемом содержимом
Текущая страница: 15 (всего у книги 20 страниц)
76. Языки и технологии программирования
Перечень языков программирования, приложений и программных технологий, используемых при разработке веб-сайтов, достаточно велик и постоянно обновляется.
Можно привести следующие примеры:
♦ Скрипты, приложения, языки и технологии на стороне веб-сервера и сервера приложений (PHP, Perl, Ruby, Python, ASP, VBScript, C#, C/C++, Visual Basic.NET, J#, IronPython, Java, J2EE, JSP
♦ Языки и технологии для работы с базами данных (SQL, PL/SQL, T-SQL)
♦ Языки разметки и таблицы стилей (HTML, XHTML, WML, XAML, CSS)
♦ Скрипты, приложения, языки и технологии на стороне клиента (JavaScript, VBScript, Flash, ActionScript, ActiveX, Silverlight, AXAJ)
Отдельно можно отметить XML, использующийся «самостоятельно» для хранения, описания и передачи данных (известные подмножества: RSS, YML, CML) или в связке с XSL – для генерации других XML (или HTML).
Плохому программисту и теги мешают
Языки и технологии являются либо взаимодополняющими, либо несовместимыми друг с другом. Поэтому, как правило, набор языков и технологий при проектировании сайта выбирают не поштучно, а используют уже устоявшиеся комплекты, показавшие свою состоятельность на значительном количестве реализованных проектов.
Наибольшее распространение в настоящее время получили такие комплекты:
♦ LAMP
Расшифровывается по первым буквам входящих в него компонентов – Linux + Apache + MySQL + PHP.
Комплект полностью бесплатен, количество разработчиков на рынке – высокое. Как следствие, реализация экономически выгодна. Хорошо подходит для большинства автономных сайтов простой и средней сложности.
♦ .Net
Включает в себя технологии и языки Windows + IIS + ASP.NET/C#/VB.Net +.Net Framework + MSSQL. Разработчик – Microsoft.
Комплект является платным. Количество разработчиков на рынке – среднее. Наиболее распространен в финансовой сфере: для реализации внутренних корпоративных порталов, в системах, поддерживающих шифрование передачи данных, и др.
♦ Java
Включает технологии и языки J#, Java, J2EE, JSP. Поддерживаются различные СУБД. Разработчик комплекта – SUN Microsystems.
Комплект является частично платным. Количество разработчиков на рынке в России – невысокое, на Западе – высокое. Наиболее распространен в финансовой сфере для реализации систем работы в реальном времени, системах с высоким количеством транзакций.
77. Инструменты разработки и поддержки
Веб-система является продуктом, создание которого требует помимо обширных знаний и навыков применения широкого спектра программного обеспечения. Все члены команды поддержки и разработки используют для этого различные инструменты, о наличии которых вам придется позаботиться.
Для дизайнеров
Для обеспечения работы дизайнеров вам может потребоваться следующий минимум программных продуктов:
Работа с графикой
♦ Adobe Photoshop
♦ CorelDraw
♦ MS Expression Design
Разработка мультимедиа
♦ Adobe Flash
♦ ACDSee
♦ IrfanView
♦ XnView
Для программистов
Для обеспечения работы программистов могут потребоваться следующие инструменты:
IDE, ориентированные на разработку веб-сайтов
♦ WebMatrix
♦ Zend Studio
♦ Adobe Dreamweaver
♦ Eclipse IDE
♦ MS Visual Studio
♦ MS Visual Web Developer Express
Редакторы
♦ Notepad и похожие по функциональности программы
♦ PhpExpertEditor
♦ AltovaXMLSpy
♦ TopStyle
♦ RegexBuddy
♦ MS Sharepoint Designer (бывш. FrontPage)
♦ MS Expression Web
Разработка мультимедиа
♦ Adobe Flash
♦ MS Expression Blend
♦ MS Expression Encoder
Средства проектирования (CASE средства)
♦ ErStudio
♦ ErWin
Клиенты к базам данных, не входящие в стандартный пакет
♦ MySQLFront
♦ HeidiSQL
♦ Aqua DataStudio
♦ SQL Navigator
Системы контроля версий
♦ CVS
♦ SVN
♦ MS Visual Source Safe
♦ MS Team Foundation Server
Веб-сервера
♦ Apache
♦ MS Internet Information Services
♦ Nginx
Доступ к серверам
♦ putty
♦ WinSCP
♦ Remote Desktop Connection
♦ CuteFTP
♦ TurboFTP
Для редакторов и публикаторов
Для обеспечения работы редакторов и публикаторов вам могут потребоваться следующие программные продукты:
Редакторы
♦ Notepad и похожие по функциональности программы
♦ TopStyle
♦ MS Expression Web
Работа с графикой
♦ Adobe Photoshop
♦ ACDSee
♦ IrfanView
♦ XnView
Доступ к серверам
♦ CuteFTP
♦ TurboFTP
Среди перечисленных инструментов значительное количество являются платными и требуют приобретения соответствующих лицензий.
Это всегда приводит к существенному росту расходов на поддержку сайта. Таких расходов можно избежать, если передать поддержку внешнему разработчику, у которого уже должно быть все соответствующее программное обеспечение.
MySQLистые программисты за обедом поели мягких французских булок да выпили чаю
Использование различных инструментов также связано со стереотипами, складывающимися у дизайнеров и программистов, которые часто могут принципиально отказываться работать на непривычном для них программном обеспечении. Это всегда приводит к своеобразным «религиозным войнам», на которые растрачивается много ресурсов и времени.
78. Устройства доступа
Для доступа к веб-сайту требуется специальное устройство, работающее под управлением операционной системы (MS Windows, OS Linux, Mac OS, Symbian и др.), и специальная программа для просмотра – браузер.
Каждое средство доступа предъявляет свои требования к технологии создания, стилевому решению и контенту сайта.
Все устройства, обеспечивающие доступ к веб-ресурсам, можно разделить на:
• стационарные
• переносные
• портативные
Обычно учитывают несколько групп программно-аппаратных платформ:
1. Доступ со стационарного компьютера или ноутбука, работающего на базе:
♦ OS Windows
♦ OS Linux
♦ Mac OS
2. Доступ с портативного компьютера или смартфона, на котором установлена:
♦ OS Windows Mobile
♦ OS Symbian
♦ OS Linux
♦ Mac OS X (для iPhone)
♦ Google Android
3. Прочие средства доступа, например:
♦ Сотовые телефоны oo встроенными браузерами
♦ Различные TV и игровые приставки
Популярность того или иного инструмента, используемого в качестве средства доступа, диктует необходимость создания специальных версий сайта, максимально адаптированных под специфику именно этих устройств. Например, известно, что владельцы iPhone в среднем пользуются им для доступа в Интернет в 2,7 раза чаще, чем владельцы других смартфонов. Соответственно, многие сайты уже обзавелись специальными версиями для этого гаджета.
К сожалению, в настоящее время все сильнее проявляется тенденция не унификации требований различных устройств доступа, а, наоборот, все большего их размежевания. Соответственно, число различных версий сайта под разные устройства, видимо, будет только увеличиваться.
При определении того, для каких устройств следует создавать специально оптимизированные версии, необходимо оценить количество пользователей, заходящих на сайт с каждого класса устройств. Подобный анализ может дать почти любая современная система статистики посещения веб-сайта по анализу лог-файлов веб-сервера. Очевидно, что для устройств, с которых просмотр сайта осуществляется несколько раз в месяц, специальная версия сайта нерентабельна.
Специальная версия сайта может быть создана в одном из двух вариантов:
• автономная, с дублированием всех пересекающихся данных;
• интегрированная с основным сайтом, использующая его версию данных, просто в другом интерфейсе.
Ни один из вариантов не является безусловно лучшим. В разных случаях эффективней может быть и тот, и другой подход. Обсудите это с вашим веб-разработчиком.
При выборе любого из вариантов потребуется проведение полного цикла разработки: создание и разработка интерфейса, набор программных шаблонов, адаптирование контента и стилевой графики, проведение тестирования и внедрения.
Перспективы
Холодильники «Samsung» уже умеют помогать покупать продукты
Согласно имеющимся прогнозам, в ближайшие годы доступ в Сеть получат даже простейшие бытовые устройства (холодильник, наручные часы и т. д.) и наступит следующая технологическая эра – интернет-вещей.
79. Браузеры
Браузер (или веб-обозреватель) – это специальное приложение для поиска и просмотра веб-страниц. Браузеры различаются: удобством, совместимостью со стандартами, наборами поддерживаемых технологий, требованиями к программно-аппаратной платформе, режимами работы, установленными по умолчанию, и т. д.
Какие бывают браузеры
Каждый из браузеров имеет свои особенности функционирования и отображения веб-страниц. В случае, если программный код сайта не адаптирован под такие особенности, макет сайта может развалиться («поедут» пропорции верстки, иллюстрации сместятся с заданных мест, нарушится работа части функциональностей).
Сайт должен быть оптимизирован под наиболее популярные браузеры
Обычно рекомендуют проводить тестирование отображения сайта в наиболее популярных браузерах, достаточно адекватно поддерживающих все основные веб-стандарты:
♦ Internet Explorer
♦ Firefox
♦ Safari
♦ Opera
♦ Google Chrome
Сайт должен быть оптимизирован не только под текущую, но и под предыдущую версию браузеров
Существуют также гораздо менее популярные браузеры, которые по ряду причин не получили широкого распространения или потеряли популярность. Это Netscape Navigator, Konqueror, Galeon, Epiphany, Kazehakase, Charon, Arachne, K-Meleon, Slimbrowser, SeaMonkey, FastIE и др.
Кроме общего тестирования сайта в различных браузерах принято проверять его работоспособность при:
♦ Отключенной средствами браузера графике
♦ Отключенной поддержке каскадных таблиц стилей (CSS), задающих параметры внешнего вида сайта
В каждом из этих случаев сайт должен сохранять пригодность для работы.
Браузеры для портативных устройств
Отдельное место занимают браузеры для портативных устройств:
♦ Internet Explorer Mobile
♦ Opera Mini
♦ Safari для Apple iPhone
Они используют меньше ресурсов и приспособлены для работы в устройствах с маленькими экранами и специальными средствами ввода. Применительно к требованиям портативных устройств разрабатываются специальные WAP/PDA-версии сайтов.
Браузеры будущего
В настоящее время многими крупными компаниями ведутся работы по созданию 3D-браузеров (например, Microsoft создает 3D-браузер для мобильных устройств под названием Deepfish).
Браузеры будущего:
• 3D-браузер для мобильных устройств – Deepfish
• технология Hyperwords
Перспективной считается технология Hyperwords, которая превращает каждое отдельное слово или фразу в гиперссылку и связывает данные в логические «нити». Внутри проекта Second Life разрабатываются технологии социального броузинга.
Перспективными кажутся «жестовые» интерфейсы (такие, как Oblong-g-speak).
80. Аппаратная платформа
Функционирование сайта требует соответствующего аппаратного обеспечения (англ. hardware), состав и конфигурация которого зависят от множества параметров – таких, как: выбор системы управления контентом, используемые функциональности, объем контента, количество посетителей и т. д. Например, Google функционирует более чем на 2 миллионах серверах.
Требования к аппаратному обеспечению
Основным элементом аппаратного обеспечения работы веб-сайта является сервер, к которому предъявляются следующие требования:
♦ Производительность, то есть количество генерируемых страниц в единицу времени, зависящее от работы всех компонент сервера
♦ Надежность (отказоустойчивость)
♦ Программная и конструктивная совместимость
♦ Масштабируемость
При выборе сервера следует ориентироваться на три наиболее важные характеристики:
♦ Модель и скорость процессора(-ов)
♦ Объем оперативной памяти
♦ Интерфейс и объем жесткого диска(-ов)
Обычно выбор аппаратного обеспечения является функцией технических служб компании. При этом базовые требования к такому обеспечению всегда можно запросить у веб-разработчика, создавшего сайт.
Следует также понимать, что веб-сайт будет развиваться, усложняться, увеличиваться в размерах и набирать популярность у пользователей. Все эти факторы негативно сказываются на его производительности и требованиях к аппаратному обеспечению.
Поэтому при расчете требуемой конфигурации всегда следует делать определенный «запас прочности». Для корпоративных сайтов, которым не свойственно взрывное развитие, следует иметь запас по производительности в 2–3 раза от планового во время старта. Статистически это позволяет нормально функционировать и развиваться в течение примерно двух лет. Делать запас прочности больше чем в 2–3 раза с дополнительными затратами при стартовом внедрении неэффективно. Дешевле и правильнее произвести смену аппаратной платформы тогда, когда в этом возникнет необходимость.
Стоимости аппаратного обеспечения
Сложный веб-сайт может потребовать значительных инвестиций в аппаратное обеспечение. Объем таких инвестиций иногда может не соответствовать выделенному бюджету.
В таком случае можно использовать следующие способы снижения стоимости:
♦ Совместное использование с другими проектами (виртуальный хостинг)
♦ Использование стандартного общераспространенного оборудования (причем, несерверного класса)
♦ Использование бесплатного программного обеспечения
♦ Использование более дешевых компонент
♦ Использование программных решений вместо дополнительного оборудования
Важно понимать, что указанные способы могут применяться только в ограниченном перечне случаев и почти всегда ведут к снижению качества работы веб-сайта или повышению рисков его бесперебойного функционирования.
81. Архитектура и масштабирование
Программно-аппаратная архитектура – это комплекс аппаратных средств и работающего на нем программного обеспечения, поддерживающий бесперебойное функционирование веб-системы в различных режимах. Различные архитектуры обладают различной масштабируемостью – предельными значениями по объему хранимых данных и количеству одновременно работающих пользователей при заданных параметрах работы.
Масштабируемость должна обеспечивать предсказуемый рост системных характеристик веб-сайта – таких, как: количество поддерживаемых пользователей, быстрота реакции, общая производительность.
Ключевые параметры масштабируемости:
• поддержка многопроцессорной обработки
• гибкость архитектуры
Другими словами, сайт должен сохранять работоспособность при модернизации и возрастании нагрузок на него.
Направления масштабирования
Принято выделять два основных направления масштабирования:
♦ Горизонтальное масштабирование – разбиение системы на более мелкие структурные компоненты и разнесение их по отдельным физическим машинам (или их группам) и/или увеличение количества серверов, параллельно выполняющих одну и ту же функцию
♦ Вертикальное масштабирование – увеличение производительности каждого компонента системы c целью повышения ее общей производительности
Мы рекомендуем вам убедиться в том, что оба этих способа масштабирования учтены на вашем сайте.
Архитектура серверов
Более 95 % корпоративных сайтов могут качественно функционировать на одном выделенном сервере (или даже виртуальном хостинге).
Такой сервер способен обслуживать 10 000–100 000 загрузок страниц в сутки, что соответствует 3000-50 000 уникальным пользователям (количество зависит от мощности сервера, используемой системы управления контентом, количества страниц, качества конфигурирования системного программного обеспечения, структуры и содержания сайта).
Около 5 % самых посещаемых сайтов (10 000 и более пользователей в сутки) не могут качественно функционировать на одном выделенном сервере, для их размещения требуется использовать минимум два сервера.
В этом случае различные уровни системы (СУБД, frontend, backend) распределяют по разным серверам. Наиболее эффективное и распространенное решение – отдельный сервер СУБД и отдельный для frontend + backend.
Если позволяет программная архитектура, frontend и backend могут быть разделены на отдельные машины. За счет такого распределения уровней системы ее производительность (количество генерируемых страниц в единицу времени) вырастет в 1,5–2,5 раза.
Дополнительную производительность к этой схеме можно получить при использовании технологии многоуровневого кэширования и репликации данных. Это позволяет увеличить производительность системы при работе на двух-трех серверах еще в 1,5-10 раз.
В редких случаях сайты изначально специально проектируются под многосерверную архитектуру (таких корпоративных сайтов в русскоязычном Интернете менее 1000).
В такой ситуации применение большинства систем управления контентом становится ограниченным и для работы со специально спроектированными данными создаются специальные интерфейсы управления.
При этом отдельные данные могут храниться и обрабатываться в СУБД одного сервера, а другие данные – в СУБД другого сервера и при выдаче страницы «склеиваться» на уровне сборки страницы из шаблона.
Таким образом, должно быть принято решение об использовании определенной структуры серверов:
♦ Выделенный сервер
♦ Небольшое количество серверов
♦ Многосерверная архитектура
82. Производительность
Производительность – это величина, показывающая, какое количество задач способна решать веб-система в единицу времени
В общем случае производительность определяется характеристиками каналов связи, объемами информации и программно-технологическими платформами, используемыми как владельцем сайта, так и самими посетителями.
Время генерации 90 % страниц сайта должно быть менее двух секунд, а оставшихся 10 % – менее пяти секунд
Из этих факторов самое критическое значение имеют параметры каналов связи и время генерации страницы сервером.
Время отклика
Пользователи судят о производительности сайта по времени его отклика на их действия (например, по скорости загрузки, времени отправки форм, динамике смены элементов интерфейса и т. д.). Отклик менее чем за 0,1 секунды воспринимается человеком как мгновенный.
Считается, что первая страница сайта должна загружаться не более 10 секунд. Замедленная скорость реагирования может стать причиной мгновенного ухода Клиента с сайта.
Модули анализа скорости генерации страниц и отдельных блоков встроены в некоторые системы управления контентом, например, в «1С-Битрикс. Управление сайтом».
Тестирование производительности
Для проверки производительности веб-сайта можно выбрать и провести один или несколько видов тестирования, например:
♦ Нагрузочное тестирование
♦ Стрессовое тестирование
Для проведения нагрузочного тестирования веб-сайта используется специальное программное обеспечение, позволяющее создавать необходимую нагрузку на сервере и замерять контрольные параметры. По итогам такого тестирования выполняется анализ результатов, выявляются «узкие места» и принимаются меры к увеличению производительности, если это необходимо.
Проведение тестирований, как правило, берет на себя разработчик веб-сайта
При стрессовом тестировании проверяется способность системы справляться с нагрузками, существенно превышающими плановые. Например, подобные ситуации могут возникать в интернет-магазинах в предпраздничные дни, быть результатом очень удачной рекламной кампании.
Инструменты для тестирования
Для тестирования производительности используются специализированное программное обеспечение. К числу таких приложений относится, например, свободно распространяемый пакет программ Microsoft® Web Application Stress (WAS), доступный для загрузки с сайта www.microsoft.com.
Также могут использоваться такие пакеты, как SPECweb99, WebBench, WebStone, TPC-W, OpenSTA, PureLoad, Apache JMeter, LoadRunner, QALoad и др.
Пакет Microsoft® Web Application Stress (WAS), доступен для загрузки с сайта microsoft.com
Важно, чтобы тестирование проводилось в условиях, максимально приближенных к реальным условиям эксплуатации веб-системы (или, как часто говорят, «в боевых условиях»).
Как увеличить производительность
Методы увеличения производительности зависят от выявленных в ходе тестирования «узких мест». Для их ликвидации можно использовать следующие методы:
♦ Увеличение производительности аппаратной платформы (в «узких местах»). Применимо для всех архитектур. Либо в сервере(-ах) меняются компоненты на более производительные, либо целый(-е) сервер(-ы) меняется на другой(-ие), более мощный(-ые). Производительность системы увеличивается пропорционально увеличению производительности сервера(-ов)
♦ Использование технологий кэширования. Применимо для большинства архитектур. Ресурсоемкие запросы выполняются однократно, сохраняя результат обращения в статическом виде в оперативно доступном хранилище (обычно файлы на диске или оперативная память), и далее в течение установленного периода времени на все аналогичные обращения данные мгновенно выводятся из этого оперативного хранилища, не нагружая повторно основную систему
♦ Создание зеркал. Для определенной аудитории (например «все иностранцы») часто создается специальная копия веб-сайта по другому адресу, синхронизирующаяся с основной версией. При этом в рекламных материалах для этой аудитории используется доменное имя зеркальной копии
♦ Оптимизация настроек системного программного обеспечения. Применима для всех архитектур. Выявляются «узкие места» на уровне системного программного обеспечения. Проводится с выставлением разных значений всех переменных. Типичным примером может служить количество одновременно поддерживаемых сессий или обращений к серверу
♦ Перенос части функциональности сайта на внешние серверы или сервисы. Например, хостинг и отдачу видеоконтента можно переложить на инфраструктуру YouTube/RuTube
♦ Изменение архитектуры системы (кластеризация, распараллелирование). Как правило, требует значительных затрат и времени. Во многих случаях это сравнимо с созданием аналогичной системы «с нуля». Поэтому производится, как правило, вместе со сменой поколения системы
♦ Оптимизация самого веб-сайта. Применимо для большинства архитектур. Производится перекомпоновка или отказ от отдельных блоков на веб-страницах, функций, удаление неактуальных данных и т. п.
Правообладателям!
Это произведение, предположительно, находится в статусе 'public domain'. Если это не так и размещение материала нарушает чьи-либо права, то сообщите нам об этом.