Что входят в сервер приложение. Введение в серверное программирование

Файл-сервер и сервер приложений очень похожи на первый взгляд. Но есть и отличия. Файл-сервер хранит данные и программы, а сервер приложений обрабатывает первые и выполняет вторые.

За счет использования разумной комбинации существующих технологий можно реализовать поразительные возможности такого вида приложений. Например, при соединении Web-сервера Apache с языком серверных сценариев PHP, получаем сервер приложений. Но в маркетинге этим термином обычно обозначают комплексное решение, которое содержит в себе все необходимые компоненты технологий. Такой подход к построению сервера приложений иногда даже облегчает разработку, поскольку существуют унификации разрабатываемых моделей и их централизованная поддержка.

Для ответа на вопрос, может ли конкретное сервисное программное обслуживание считаться сервером приложений, необходимо сравнить его заявленные функции с теми атрибутами, которые присущи данному виду серверов:

Предоставление сервисных услуг для программ.

Предоставление модели контейнера для приложений.

Обеспечение управления приложениями. Представление средств их разработки.

Соответствие стандартам и индустриальным спецификациям.

Обслуживание веб-страниц, поскольку в этом существует реальная востребованность.

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

Целостность кода и данных. Размещение на выделенном сервере дает для всех клиентов гарантию доступа к модернизированному ПО. Исключается работа с данными из устаревших программ.

Централизованное управление. Все изменения в конфигурации прикладных программ выполняются централизованно.

Безопасность. Важность пункта не обсуждается. При проверке поставщиком услуг не будет затрагиваться уровень базы данных, потенциально ненадежные клиенты отсеиваются в среднем слое.

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

Насколько выгодно работать с сервером приложений? Практика доказывает, что при перераспределении затрат на оборудование с клиентской стороны на серверную организация может сэкономить средства. Также хорошо зарекомендовала себя практика аренды ПО. Но при этом стоимость самого серверного ПО и денежные средства, которые потребуются на его внедрение и сопровождение, могут показаться (на первый взгляд) достаточно внушительными.

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

Сервер приложений

Сервер приложений (англ. application server ) - это программная платформа (software framework), предназначенная для эффективного исполнения процедур (программ, механических операций, скриптов), которые поддерживают построение приложений. Сервер приложений действует как набор компонентов, доступных разработчику программного обеспечения через API (Интерфейс прикладного программирования), который определен самой платформой.

Для веб-приложений эти компоненты обычно работают на той же машине, где запущен веб-сервер. Их основная работа - обеспечивать создание динамических страниц. Однако современные серверы приложений нацелены гораздо больше не на то, чтобы генерировать веб-страницы, а на то, чтобы выполнять такие сервисы как кластеризация, отказоустойчивость и балансировка нагрузки, позволяя таким образом разработчикам сфокусироваться только на реализации бизнес-логики.

Обычно этот термин относится к Java-серверам приложений. В этом случае сервер приложений ведет себя как расширенная виртуальная машина для запуска приложений, прозрачно управляя соединениями с базой данных с одной стороны и соединениями с веб-клиентом с другой.

Преимущества серверов приложений

Целостность данных и кода

Выделяя бизнес логику на отдельный сервер, или на небольшое количество серверов, можно гарантировать обновления и улучшения приложений для всех пользователей. Отсутствует риск, что старая версия приложения получит доступ к данным или сможет их изменить старым несовместимым образом.

Централизованная настройка и управление

Изменения в настройках приложения, таких как изменение сервера базы данных или системных настроек, могут производиться централизованно.

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

Сервер приложений действует как центральная точка, используя которую, поставщики сервисов могут управлять доступом к данным и частям самих приложений, что считается преимуществом защиты. Её наличие позволяет переместить ответственность за аутентификацию с потенциально небезопасного уровня клиента на уровень сервера приложений, при этом дополнительно скрывая уровень базы данных.

Поддержка транзакций

Транзакция представляет собой единицу активности, во время которой большое число изменений ресурсов (в одном или различных источниках) может быть выполнено атомарно (как неделимая единица работы). Конечные пользователи при этом могут выиграть от стандартизованного поведения системы, от уменьшения времени на разработку и от снижения стоимости. В то время как сервер приложений выполняет массу нужного генерирования кода, разработчики могут сфокусироваться на бизнес-логике.

Примеры реализации

  • Под сервером приложений в случае Java EE подразумевается комплекс программ, реализующих концепцию Java EE и позволяющих запускать в себе Java EE приложения. К классу серверов приложений относятся такие продукты как Sun GlassFish, IBM WebSphere, RedHat JBoss Application Server, Apple WebObjects (англ. ) и др.
  • Zope, развитый сервер web-приложений.
  • Терминальные серверы, например поставляемые компанией Citrix

), некую параллель можно провести с конфигурированием способа запуска PHP-интерпретатора и его взаимодействия с выбранным web-сервером.

Прежде всего следует помнить, что существует несколько режимов запуска интерпретатора PHP – CGI, FastCGI или модуль к web-серверу. У каждого из этих режимов есть свои достоинства и недостатки, которые по-разному будут проявлять себя в зависимости от типовых условий эксплуатации системы и нагрузки на нее. Запуск в режиме CGI является самым медленным и иногда используется на разделяемом хостинге. Наиболее распространенным можно считать запуск PHP в качестве модуля к web-серверу. Именно такой режим обычно предпочитают новички и он вполне удобен для любых низконагруженных систем. Соответствующие модули существуют для разных web-серверов: Apache Web Server (mod_php), Microsoft IIS (до версии PHP 5.3).

Существует много попыток сравнения скорости и стабильности работы PHP-решений для разных конфигураций ("mod_php vs FastCGI" или "mod_php vs PHP-FPM" и т.д.). Сами разработчики Joomla/VirtueMart и Magento считают, что при использовании FastCGI достигаемые показатели производительности выше. Вместе с тем, при модульном запуске как правило уменьшается вероятность сбоев (ошибок обработки кода), а для тяжелых решений показатели производительности в большей степени зависят от применения различных техник кэширования php-кода. Поэтому для e-commerce систем, которые строятся на базе сложных и тяжеловесных библиотек, все-таки предпочтительнее использование модульного режима (mod_php для Apache HTTP Server). К таким «тяжеловесам» следует, в первую очередь, отнести любые решения на базе 1С-Битрикс: Управление сайтом . Использование FastCGI – обычно речь идет о менеджере php-fpm (FastCGI Process Manager) в паре с web-сервером Nginx или IIS FastCGI совместно с web-сервером Microsoft IIS – позволяет в ряде случаев действительно значительно повысить нагрузочную способность систем на платформах Magento и VirtueMart , а также является единственно возможным и для 1С-Битрикс: Управление сайтом при развертывании под IIS.

Может показаться, что FastCGI дает нам дополнительнительную гибкость, позволяя вообще выносить PHP-демон на другую машину, отделяя его от HTTP-сервера. Но аналогичная гибкость достигается и за счет выделения на фронте отдельного proxy-сервера, который маршрутизирует http-запросы и имеет свой механизм кэширования. Например, для кластерных конфигураций 1С-Битрикс: Управление сайтом в качестве proxy наилучшим образом подходит Nginx-сервер с активированным кэшированием.

Все сервера приложений, которые востребованы в платформах enterprise-класса ( , Oracle Commerce , SAP hybris), – это разнообразные J2EE-сервера, предназначенные для запуска апплетов (скриптов) на языке Java. Именно технологии Java лежат в основе всех трех рассматриваемых e-commerce платформ. Но у каждого из трех «китов» реализуется несколько различный подход к поддержке тех или иных серверов приложений. Так IBM предпочитает продвигать исключительно собственную технологию Websphere. SAP не имеет собственного продукта и ориентируется на продукты VMware. А Oracle поддерживает целый набор решений, как своих, так и сторонних. Итак, для названных e-commerce платформ возможно использование следующих серверов приложений.

  • : IBM WebSphere Application Server;
  • Oracle Commerce : Oracle Weblogic, IBM WebSphere Application Server, JBoss EAP;
  • SAP hybris : VMware vFabric tc Server, Apache Tomcat.

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

Впрочем, если проводить детальный анализ характеристик разных J2EE-серверов, то окажется, что наиболее мощный и одновременно удобный продукт – это Oracle Weblogic Server. Он поддерживает очень богатый набор технологий, таких как Coherence, Oracle Traffic Director, InfiniBand и др. Обычно при сравнении Oracle Weblogic, например, с таким сервером как JBoss EAP много внимания уделяется стоимости лицензирования. Но для enterprise-систем разумно анализировать совокупную стоимость владения (TCO) на относительно протяженном интервале времени, а не разовую стоимость лицензирования. Кроме того, лицензионная политика вендоров, вообще говоря, может подразумевать включение необходимых лицензий на сервера приложений «в нагрузку» к приобретаемым лицензиям на e-commerce платформу. В любом случае, представляется достаточно примитивным подход, который не учитывает всех указанных факторов. Возвращаясь к сравнению TCO, можно заметить, что в настоящее время лидерство, похоже, следует отдать продукту VMware vFabric tc Server, который опережает другие решения за счет более эффективного использования процессора и памяти, а также благодаря очень гибким возможностям виртуализации на платформе VMware. Оптимальные же показатели TCO для продуктов Oracle можно получить при использовании комбинированного решения Exalogic, которое включает не только софт, но и специализированное оборудование.

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

Серверы приложений

1. Серверы приложений: типы, назначение, функции.

Cерверы приложений - это программное обеспечение, предназначенное для создания систем с выделенными сервисами бизнес-логики. Чаще всего серверы приложений выполняются под управлением серверных операционных систем (различных версий UNIX, Windows NT Server, Windows 2000 Server). Компоненты, реализующие бизнес-логику распределенного приложения и выполняющиеся под управлением сервера приложений, могут представлять собой COM- или CORBA-объекты, Java-серверы либо Enterprise Java Beans (EJB) - Java-компоненты. Многие серверы приложений позволяют реализовать приложения, устойчивые к сбоям. В настоящее время серверы приложений являются основой многих корпоративных решений, например распределенных приложений, реализующих следующие схемы:

  • «предприятие - потребитель» (B2C, business-to-consumer), такие как онлайновая продажа товаров, бронирование билетов и мест в гостиницах, услуги страхования;
  • «предприятие - предприятие» (B2B, business-to-business), такие как виртуальные торговые площадки, позволяющие заключать торговые сделки между предприятиями;
  • «предприятие - сотрудник» (B2E, business-to-employer), такие как корпоративные порталы.

Нередко в корпоративных решениях применяются конфигурации, содержащие несколько серверов приложений. Как правило, подобные решения обладают многозвенной архитектурой, при этом серверы приложений обычно располагаются между сервером баз данных и Web-сервером либо между сервером баз данных и клиентскими приложениями. Нередко функциональность Web-сервера реализуется и в самом сервере приложений.

Современные серверы приложений в большинстве случаев характеризуются возможностью построения кластеров и распределения нагрузки, а также средствами восстановления после сбоев, поскольку требования к надежности и производительности приложений, использующих продукты подобного класса, обычно весьма высоки.

Из технологий, поддерживаемых современными серверами приложений, следует в первую очередь отметить средства интеграции приложений, созданных на различных платформах, в том числе поддержку Web-сервисов, средства разработки приложений, наличие продуктов специализированного назначения, основанных на данном сервере приложений (например, средств управления информационным наполнением), поддержку беспроводных Лидерами рынка серверов приложений на данный момент является компания IBM. Из других наиболее известных продуктов, относящихся к категории серверов приложений, следует отметить серверы компаний Oracle, Sun Microsystems, Borland, Sybase,.

Borland Enterprise Server 5.0 (Borland Software Corporation)

Borland Enterprise Server довольно широко применяется в телекоммуникационном и банковском секторах. Этот продукт обладает некоторыми уникальными технологическими особенностями, такими как Borland Application Partitioning. Данная технология позволяет определить детальные характеристики сервисов и Web-серверных приложений, описать собственный набор сервисов для каждой конфигурации (partition), выделить для каждой конфигурации самостоятельный системный процесс. Все это упрощает конфигурирование распределенных систем и управление ими и в целом повышает надежность и доступность приложений, созданных на основе этого сервера.

Семейство серверов Microsoft .NET (Microsoft Corporation)

Наиболее часто применяемыми серверами приложений являются продукты семейства корпоративных серверов Microsoft .NET, предназначенные, как и другие серверы приложений, для создания и развертывания интегрированных корпоративных приложений. Все эти серверы характеризуются поддержкой стандартов Интернета, поддержкой кластерной архитектуры, высокой степенью взаимной интеграции, а также интеграции с операционной системой Windows и средствами разработки Microsoft.

К семейству корпоративных серверов Microsoft .NET сама компания Microsoft относит:

  • Microsoft SQL Server - сервер баз данных, являющийся одним из лидирующих продуктов данного класса для платформы Windows и обычно применяющийся совместно со многими другими серверами Microsoft .NET;
  • Microsoft Application Center - средство управления кластерами серверов для осуществления горизонтального масштабирования;
  • Microsoft BizTalk Server 2002 - сервер интеграции приложений и создания инфраструктуры их взаимодействия, основанный на обмене документами между приложениями, принадлежащими разным организациям;

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

Oracle9i Application Server (Oracle Corporation)

Oracle9i Application Server (Oracle9iAS) - это сервер приложений, предназначенный для создания широкого спектра корпоративных приложений, начиная от динамических Web-сайтов и заканчивая корпоративными порталами и системами, интегрирующими разнородные корпоративные приложения.

Особенностью данного сервера приложений является наличие в его составе широкого набора специальных сервисов и готовых специализированных решений, использующих СУБД Oracle9i и Oracle9iAS, таких как:

  • Oracle9iAS Portal - готовое структурное решение для быстрого развертывания и поддержки работы информационного портала организации, поддерживающее применение портлетов - компонентов портала, содержащих механизмы работы с определенными информационными источниками;
  • Oracle9iAS Wireless - программное обеспечение, предназначенное для создания и развертывания приложений беспроводного доступа, в том числе и беспроводных порталов;
  • Email Server - решение для организации сервера электронной почты, доступ к которому возможен из любых клиентских программ, поддерживающих Интернет-стандарты POP3 и IMAP. Архитектура, лежащая в основе продукта, ориентирована на множество одновременно работающих пользователей и большой объем хранимых почтовых сообщений;

Enterprise Application Server 4.1 (Sybase)

Sybase Enterprise Application Server (EAServer) - это сервер приложений для создания порталов и корпоративных решений. Этот продукт, как и другие подобные продукты, предоставляет широкий набор инструментов для развертывания Web-приложений и распределенных систем.

Особенностью данного сервера приложений является универсальная по отношению к клиентским компонентам программного обеспечения поддержка широкого спектра технологий построения распределенных систем, включая CORBA, XML, HTML, DHTML, ActiveX, PowerBuilder, COM, а также средства интеграции различных приложений. Многие пользователи этого продукта отмечают высокое качество управления транзакциями и надежные средства обеспечения безопасности. Sybase EAServer позволяет использовать бизнес-логику унаследованных приложений, интегрируя их программный код в среду EAServer при помощи технологии Application Integrators.

2. Серверы Интернет. Web-сервер, его функции и предъявляемые к нему требования. Microsoft Internet Information Services ( MIIS). Web-сервер Apaс he.

Web-сервер - это программа, обрабатывающая сообщения, и работающая с протоколом HTTP (Hypertext Transfer Protocol). Именно этот протокол является основным для WWW. Он представляет собой набор правил для обмена данными и основан на принципе «запрос-ответ». Запрос идет от клиента к серверу и содержит служебную информацию о типе запроса (данные, заголовок, форма), заголовок запроса (допустимые типы файлов, авторизация, версия клиента, адрес, где была активирована ссылка на данный ресурс, и сам адрес) и запрос данных. Ответ идет от сервера к клиенту. В нем находится служебный код (число), показывающий состояние обработки запроса, ответный заголовок (версию сервера, дату, длину и тип данных) и сами данные.

В последнее время увеличилось количество Web-серверов, выпускаемых различными производителями. Естественно, любой Web-сервер поддерживает некоторый минимальный набор функций – поддержка протокола HTTP, настройка на разные порты, создание log-файлов, пользовательские директории, функции защиты. Планирование своей системы вы вряд ли начнете с Web-сервера: скорее вы будете выбирать операционную систему. Тут нужно иметь в виду, что не всякий сервер реализован для конкретной операционной системы. Далее, прежде чем установить сервер, необходимо понять, что он поддерживает, а что нет. Любой сервер поддерживает протокол HTTP, но не всякий сервер изначально поддерживает, например, работу с базами данных. Плюс к этому сейчас любой разработчик Web-серверов создает свой API (Application Program Interface) для работы с сервером. Удобство средств разработки программ для сервера тоже играет немалую роль. Наиболее распространен сервер Apache, который, по оценкам, установлен примерно на 60% всех WWW-серверов, причем является бесплатным, свободно распространяемым и считается одним из самых надежных и стабильных. Сейчас в мире существуют довольно много Web-серверов (несколько десятков), но популярностью пользуются лишь несколько. Самых популярных три: Apache от ASF (Apache Software Foundation), Internet Information Server от Microsoft и iPlanet server (бывший Netscape Enterprise server) от Netscape и Sun.

Apache от ASF

Без преувеличения можно сказать, что это самый распространенный Web- сервер в мире. Сейчас имеются версии фактически для всех известных платформ и операционных систем, в том числе и для Windows NT. Поддержка Windows NT появилась лишь в последней версии, и это еще больше повысило популярность Apache в мире. Его несомненными достоинствами являются надежность, исключительная производительность и огромный набор функций и дополнительных модулей. Версия 1.3.x считается одной из самых стабильных и быстрых среди всего семейства Apache. Основными свойствами Apache являются поддержка кросс-платформ, протокол HTTP/1.1, модульная структура, защита, запись log-файлов.

Краткие характеристики Web сервера Apache:

  • последняя версия: 2.0 alpha 4;
  • последняя официальная версия: 1.3.12;
  • бесплатный, открытый код;
  • операционные системы: NetBSD, Digital UNIX, BSDI, AIX, OS/2, SCO, HPUX, Novell NetWare, Macintosh, Be OS, Windows NT, Linux, Windows 95, FreeBSD, Windows 98, IRIX, Solaris;
  • HTTP/1.1; есть функция автоматического ответа при изменении документа; возможен запрет доступа с конкретных адресов, к конкретным документам, доступ конкретных пользователей; допускаются изменения без перезапуска сервера;
  • поставляется вместе с полным исходным кодом; поддерживает другие протоколы (ftp, telnet); имеет настройку на пользовательские директории; содержит модуль proxy.

iPlanet server (бывший Netscape Enterprise server) от Netscape и Sиn

Не так давно произошло объединение Netscape и Sun в области создания Web- сервера, а именно: бывший Netscape Enterprise server теперь перешел в новое качество – iPlanet server. Это не просто смена имени. Теперь ко многим качествам предыдущего сервера добавилась тесная интеграция с Java- технологиями. Последней версией является 4.1. iPlanet Server, который поставляется на компакт-диске или может быть загружен по Сети. При этом он не является бесплатным. Есть версии как под Windows NT, так и под некоторые UNIX-системы. Привлекает простота установки, конфигурирования и управления. Базовая установка занимает не более 15 минут. Вся дальнейшая настройка производится с использованием Java-программы, запускаемой в браузере откуда угодно. Что касается Java, то, как и следовало ожидать, сервер поддерживает новейшие Java-технологии, такие как Java Servlets 2.1, Java Server Pages .92, JVM, JavaScript 1.4. На сегодняшний день это единственный сервер такого плана. В дополнение к этому iPlanet server включает в себя возможности по управлению доступом к базам данных. В его поставке содержатся драйверы для работы с Oracle, Informix, DB2, и Sybase. С точки зрения программирования для iPlanet server, сейчас наметилась тенденции к объединению с iPlanet Application Server. Это позволит существенно расширить возможности по созданию программ для Web-сервера iPlanet. Все перечисленные свойства делают Web-сервер iPlanet привлекательным для использования в разных областях. Также ведется работа над сервером FastTrack, который будет ограниченным по возможностям аналогом полного сервера, но при этом бесплатным (при полной аналогии с Netscape FastTrack). Что касается технической поддержки, то все описания, справочники и другие материалы относительно iPlanet server сделаны на высоком уровне (впрочем, как и любая документация, находящаяся на сервере Netscape).

Сформулируем кратко основные характеристики сервера:

  • последняя версия: 4.1;
  • цена: 60 дней бесплатно, далее 1495 долл.;
  • операционные системы: HPUX 11.0, Solaris 2.6/7.0, IBM AIX 4.2.1, Compaq Tru64 Unix 4.0d, SGI IRIX 6.5, NT 4 SP4;
  • ·поддержка Java Servlets 2.1, Java Server Pages .92, JVM, JavaScript 1.4; Oracle, Informix, DB2, и Sybase; преобразование PDF в HTML; поддержка LDAP;
  • может создавать несколько log-файлов, протоколировать производительность, создавать log-файлы для каждого CGI-скрипта; под Windows NT запускается как сервис и/или программа, под UNIX может запускаться из inetd; допускает настройку на несколько портов;
  • в поставку включен SNMP агент; поддерживает Windows CGI, HTTP/1.1, в том числе и HTTP/1.1 PUT; есть функция автоматического ответа при изменении документа; поддерживает Netscape Server API;
  • возможен запрет доступа с конкретных адресов, доступ конкретных пользователей; есть поддержка S-HTTP; допускаются изменения без перезапуска сервера; есть поддержка SSL второй и третьей версий и авторизации.
  • графическая программа установки; графическая программа управления; присутствует программа для оценки производительности во время работы; поддержка директорий пользователей; встроенный алгоритм поиска; возможность удаленного управления.

Internet Information Server (IIS) от Microsoft

Сервер IIS является лучшим для Windows NT. Это и понятно, потому что вряд ли кто-нибудь, кроме разработчиков операционной системы, может сделать программу, полностью использующую возможности этой системы. Версия 4.0 поставлялась бесплатно вместе с Service Pack, а версия 5.0 поставляется исключительно как часть Windows 2000. Версия 5.0, по мнению специалистов, отличается более высокой надежностью, более тесной интеграцией с Windows и целым набором новых свойств. Установка и конфигурирование занимают не более 10 минут. Особенно приятно, что теперь ненужно устанавливать какие-либо Service Pack и не нужно перегружать систему после установки. При всем этом сам сервер занимает около 30 Мбайт на диске и вполне работает на машине Pentium 200 МГц с объемом памяти 128 Мбайт. Однако установить и запустить сервер можно только на Windows 2000 Server. Помимо удобной установки, удобно реализована и система управления сервером. Существует несколько полезных программ шаблонов (Wizards) для выполнения частых и рутинных операций. Вообще, справедливости ради нужно отметить следующее: в том, что касается удобства, мало кто сможет соревноваться с программами Microsoft. К тому же IIS поддерживает известные и включает в себя новые стандарты защиты. Так, есть поддержка известных методов SSL 3.0, Kerberos 5.0, и нового метода Fortezza (новый стандарт безопасности). Наиболее интересной и отличительной чертой IIS является поддержка WebDAV (Web-based Distributed Authoring and Versioning). Это недавно появившийся стандарт, который позволяет превращать внутренние сети в единое пространство, используя ресурсы соседних компьютеров как свои. Для пользователей IIS это означает, что они могут c большим удобством разделять свои рабочие файлы и иметь при этом возможность блокировать файлы. Вместе с тем существуют и некоторые проблемы, и несовместимость. Не совсем корректно происходит работа одновременно с Front Page Server, иногда при изменении конфигурации приходится перезапускать систему, встречаются ошибки при использовании системы удаленного администрирования. Но в целом версия 5.0 является значительным шагом вперед по сравнению с 4.0 в плане надежности и удобства.

Приведем кратко основные характеристики:

  • последняя версия: 5.0;
  • цена: поставляется вместе с Windows 2000 Server;
  • операционные системы: Windows 2000 Server, Advanced Server;
  • может создавать несколько log-файлов; протоколирование производительности;
  • поддерживает HTTP/1.1;
  • возможен запрет доступа с конкретных адресов, к конкретным документам, доступ конкретных пользователей; допускаются изменения без перезапуска сервера;

· графическая программа установки; графическая программа управления; поддерживает другие TCP-протоколы (ftp, telnet); присутствует программа для оценки производительности во время работы; поддержка директорий пользователей; встроенный алгоритм поиска; возможность удаленного управления.

Общие вопросы и ответы по web в разделе Java Enterprise Edition.

Вопросы

1. Что такое www?
2. Что такое w3c?
3. Что такое TCP/IP?
4. Что такое ftp?
5. Чем отличаются http и https?
6. Что такое протокол передачи данных, какие вы знаете?
7. Что такое web server?
8. Что такое web приложение?
9. Что такое application server?
10. Чем отличаются web server и application server?
11. Какие методы передачи данных вы знаете?
12. Чем отличаются методы get и post?
13. Что такое html?
14. Что такое xml?
15. Что такое css?
16. Что такое MIME type?
17. Что такое cookies?
18. Что такое сессия?
19. Дайте определение понятиям “авторизация” и “аутентификация”, в чем их различия?
20. Что такое Ajax? Как принципиально устроена эта технология?
21. Что такое ORM, как это перевести и как это должно работать?

Ответы

1. Что такое www?

Всемирная паутина (англ. World Wide Web) - распределённая система, предоставляющая доступ к связанным между собой документам, расположенным на различных компьютерах, подключённых к Интернету. Для обозначения Всемирной паутины также используют слово веб (англ. web «паутина») и аббревиатуру WWW.

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

2. Что такое w3c?

Консорциум Всемирной паутины (англ. World Wide Web Consortium, W3C) - организация, разрабатывающая и внедряющая технологические стандарты для Всемирной паутины. Консорциум возглавляет сэр Тимоти Джон Бернерс-Ли, автор множества разработок в области информационных технологий.

3. Что такое TCP/IP?

Стек протоколов TCP/IP - набор сетевых протоколов передачи данных, используемых в сетях, включая сеть Интернет. Название TCP/IP происходит из двух наиважнейших протоколов семейства - Transmission Control Protocol (TCP) и Internet Protocol (IP), которые были разработаны и описаны первыми в данном стандарте.

Стек протоколов TCP/IP включает в себя четыре уровня:

  • прикладной уровень (application layer),
  • транспортный уровень (transport layer),
  • сетевой уровень (Internet layer),
  • канальный уровень (link layer).

4. Что такое ftp?

FTP (англ. File Transfer Protocol - протокол передачи файлов) - стандартный протокол, предназначенный для передачи файлов по TCP-сетям (например, Интернет). Использует 21-й порт. FTP часто используется для загрузки сетевых страниц и других документов с частного устройства разработки на открытые сервера хостинга.

Протокол построен на архитектуре «клиент-сервер» и использует разные сетевые соединения для передачи команд и данных между клиентом и сервером. Пользователи FTP могут пройти аутентификацию, передавая логин и пароль открытым текстом, или же, если это разрешено на сервере, они могут подключиться анонимно. Можно использовать протокол SSH для безопасной передачи, скрывающей (шифрующей) логин и пароль, а также шифрующей содержимое.

5. Чем отличаются http и https?

HTTP (англ. HyperText Transfer Protocol - «протокол передачи гипертекста») - протокол прикладного уровня передачи данных (изначально - в виде гипертекстовых документов в формате HTML, в настоящий момент используется для передачи произвольных данных). Основой HTTP является технология «клиент-сервер», то есть предполагается существование потребителей (клиентов), которые инициируют соединение и посылают запрос, и поставщиков (серверов), которые ожидают соединения для получения запроса, производят необходимые действия и возвращают обратно сообщение с результатом.

HTTPS (аббр. от англ. HyperText Transfer Protocol Secure) - расширение протокола HTTP, поддерживающее шифрование. Данные, передаваемые по протоколу HTTPS, «упаковываются» в криптографический протокол SSL или TLS. В отличие от HTTP, для HTTPS по умолчанию используется TCP-порт 443.

HTTPS – не самостоятельный протокол передачи данных, а HTTP с надстройкой шифрования. В этом ключевое и единственное отличие.

  1. HTTP – непосредственно протокол передачи данных, HTTPS – расширение этого протокола.
  2. HTTPS используется для защищенного посредством шифрования обмена данными.
  3. HTTPS применяется в том числе и для авторизации на серверах, требующих повышенного внимания к безопасности данных.
  4. HTTP работает с портом 80, HTTPS – с портом 443.

6. Что такое протокол передачи данных, какие вы знаете?

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

Примеры сетевых протоколов
TCP/IP - набор протоколов передачи данных, получивший название от двух принадлежащих ему протоколов: TCP (Transmission Control Protocol) и IP (Internet Protocol)

Наиболее известные протоколы, используемые в сети Интернет:

HTTP (Hyper Text Transfer Protocol) - это протокол передачи гипертекста. Протокол HTTP используется при пересылке Web-страниц между компьютерами, подключенными к одной сети.
FTP (File Transfer Protocol) - это протокол передачи файлов со специального файлового сервера на компьютер пользователя. FTP дает возможность абоненту обмениваться двоичными и текстовыми файлами с любым компьютером сети. Установив связь с удаленным компьютером, пользователь может скопировать файл с удаленного компьютера на свой или скопировать файл со своего компьютера на удаленный.
POP (Post Office Protocol) - это стандартный протокол почтового соединения. Серверы POP обрабатывают входящую почту, а протокол POP предназначен для обработки запросов на получение почты от клиентских почтовых программ.
SMTP (Simple Mail Transfer Protocol) - протокол, который задает набор правил для передачи почты. Сервер SMTP возвращает либо подтверждение о приеме, либо сообщение об ошибке, либо запрашивает дополнительную информацию.
TELNET - это протокол удаленного доступа. TELNET дает возможность абоненту работать на любой ЭВМ находящейся с ним в одной сети, как на своей собственной, то есть запускать программы, менять режим работы и так далее. На практике возможности ограничиваются тем уровнем доступа, который задан администратором удаленной машины.

7. Что такое web server?

Веб-сервер - сервер, принимающий HTTP-запросы от клиентов, обычно веб-браузеров, и выдающий им HTTP-ответы, как правило, вместе с HTML-страницей, изображением, файлом, медиа-потоком или другими данными.

Веб-сервером называют как программное обеспечение, выполняющее функции веб-сервера, так и непосредственно компьютер (см.: Сервер (аппаратное обеспечение)), на котором это программное обеспечение работает.

8. Что такое web приложение?

Веб-приложение - клиент-серверное приложение, в котором клиентом выступает браузер, а сервером - веб-сервер. Логика веб-приложения распределена между сервером и клиентом, хранение данных осуществляется, преимущественно, на сервере, обмен информацией происходит по сети.

9. Что такое application server?

Сервер приложений (англ. application server) - это программная платформа (фреймворк), предназначенная для эффективного исполнения процедур (программ, скриптов), на которых построены приложения. Сервер приложений действует как набор компонентов, доступных разработчику программного обеспечения через API (Интерфейс прикладного программирования), определённый самой платформой.

Для веб-приложений основная задача компонентов сервера - обеспечивать создание динамических страниц. Однако современные серверы приложений включают в себя и поддержку кластеризации, повышенную отказоустойчивость, балансировку нагрузки, позволяя таким образом разработчикам сфокусироваться только на реализации бизнес-логики.

10. Чем отличаются web server и application server?

Сервер приложений (англ. application server) - сервер, исполняющий некоторые прикладные программы. Сервер-приложений — объект, который обрабатывает запросы, связанные с приложениями, точнее для выполнения прикладных процессов (выборка данных, поиск данных, работа с терминалами). По идее эта технология изначально вообще не была связана с Web’om, однако, сейчас чаще говорят сервер web приложений. Практически используется для работы с базами данных.

Веб-сервер - это сервер, принимающий HTTP-запросы от клиентов, обычно веб-браузеров, и выдающий им HTTP-ответы. Web-сервер — объект, который обрабатывает запросы, в частности http-запросы. Браузер в данном случае клиент, который делает запросы (POST, GET).

11. Какие методы передачи данных вы знаете?

Основными являются методы POST и GET.

12. Чем отличаются методы get и post?

Метод GET.
Метод GET удобен тем, что прост в эксплуатации. Но у него есть недостатки. Во-первых, методом GET нельзя передавать большие объемы информации, потому что данные, передаваемые этим методом входят в состав URL, длина которого ограничена. Так как данные, передаваемые методом GET входят в состав URL документа, их может подсмотреть любой желающий. У этого есть преимущества и недостатки. Преимущество состоит в том, что можно послать ссылку вместе с данными другу. Недостаток в том, что в строке браузера отображается и ваш, только что введенный пароль. Это одна из причин, почему данные, представляющие ценность, всегда нужно передавать методом POST.

Метод POST.
Как и метод GET, метод POST служит для передачи данных на сервер. Однако, данные, переданные таким образом, идут не в URL документа, а в теле запроса, после заголовков. Эти данные могут быть восприняты CGI-программой.

Когда данные отправляются методом POST, серверу приходит что-то вроде:

POST lines.pl HTTP/1.1 Accept: */* Referer: http://example.com/example.html Accept-Language: ru Content-Type: application/x-www-form-urlencoded Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) Host: example.com Content-Length: 106 Connection: Keep-Alive Cache-Control: no-cache line=%E4%E0%ED%ED%FB%E5+%F4%EE%F0%EC%FB%2C %EF%E5%F0%E5%E4%E0%E2%E0%E5%EC%FB%E5+%EC%E5%F2%EE%E4%EE%EC+POST

POST lines . pl HTTP / 1.1

Accept : * / *

Referer : http : //example.com/example.html

Accept - Language : ru

Content - Type : application / x - www - form - urlencoded

Accept - Encoding : gzip , deflate

User - Agent : Mozilla / 4.0 (compatible ; MSIE 6.0 ; Windows NT 5.1 ; SV1 )

Host : example . com

Content - Length : 106

Connection : Keep - Alive

Cache - Control : no - cache

line = % E4 % E0 % ED % ED % FB % E5 + % F4 % EE % F0 % EC % FB % 2C

% EF % E5 % F0 % E5 % E4 % E0 % E2 % E0 % E5 % EC % FB % E5 + % EC % E5 % F2 % EE % E4 % EE % EC + POST

Плюсы метода POST очевидны: можно передавать неограниченные объемы информации, причем, никто не увидит эту информацию после того, как вы ее отправили (имеется ввиду, в строке браузера).

Но есть и недостатки:

  • Медленнее, чем GET, так как анализируются заголовки и тело запроса.
  • Страницы, сгенерированные как результат запроса POST, нельзя добавить в закладки (СЕО-недружелюбен)
  • Кроме того, если необходимо «протащить» данные через несколько форм или страниц, то это вызовет дополнительные трудности.

13. Что такое html?

HTML – это язык разметки. Вы используете HTML для разметки текстового документа, точно так же, как это делает редактор при помощи жирного красного карандаша. Эти пометки служат для определения формата (или стиля), который будет использован при выводе текста на экран монитора.

14. Что такое xml?

XML, или Язык Расширяемой Маркировки - eXtensible Markup Language, - спроектирован для того, чтобы предоставить Web-разработчикам возможность определения содержания более сложных документов, причем с более корректным “отображением данных”, нежели ранее. XML разрабатывался как язык с простым формальным синтаксисом, удобный для создания и обработки документов программам и одновременно удобный для чтения и создания документов человеком, с подчёркиванием нацеленности на использование в Интернете. Язык называется расширяемым, поскольку он не фиксирует разметку, используемую в документах: разработчик волен создать разметку в соответствии с потребностями к конкретной области, будучи ограниченным лишь синтаксическими правилами языка.

15. Что такое css?

CSS (Cascading Style Sheets - каскадные таблицы стилей) – одна из базовых технологий в современном Интернете. Нечасто можно встретить сайт, свёрстанный без применения CSS. CSS-код – это список инструкций для браузера, – как и где отображать элементы веб-страницы, написанный особым образом.

16. Что такое MIME type?

MIME (Multipurpose Internet Mail Extensions, многоцелевые расширения интернет-почты) - стандарт Интернет, является частью протокола HTTP. Задача MIME это идентификация типа содержимого документа по его заголовку. К примеру, текстовый файл имеет тип text/plain, а HTML-файл - text/html. Отправка заголовка обычно происходит на основе расширения файла веб-сервером.
Internet Media Types - типы данных, которые могут быть переданы посредством сети интернет с применением стандарта MIME. Ниже приведен список MIME-заголовков и расширений файлов.

Согласно RFC 2045, RFC 2046, RFC 4288, RFC 4289 и RFC 4855 выделяются следующие базовые типы передаваемых данных:application, audio, example, image, message, model, multipart, text, video.

17. Что такое cookies?

Куки (от англ. cookie - печенье) - небольшой фрагмент данных, отправленный веб-сервером и хранимый на компьютере пользователя. Веб-клиент (обычно веб-браузер) всякий раз при попытке открыть страницу соответствующего сайта пересылает этот фрагмент данных веб-серверу в составе HTTP-запроса. Применяется для сохранения данных на стороне пользователя, на практике обычно используется для:

аутентификации пользователя;
хранения персональных предпочтений и настроек пользователя;
отслеживания состояния сеанса доступа пользователя;
ведения статистики о пользователях.

18. Что такое сессия?

Сессия (от англ. session) – промежуток времени между первым и последним запросами, которые пользователь отправляет со своего устройства (компьютера, телефона) к серверу сайта. Во время одной сессии посетитель совершает какие-либо активные действия: переходит по ссылкам, заполняет формы, скачивает данные – вся подобная информация записывается и хранится в так называемом лог-файле сайта. Завершается сессия в случае, если со стороны пользователя не поступало запросов в течение определенного промежутка времени или же при обрыве связи.

19. Дайте определение понятиям “авторизация” и “аутентификация”, в чем их различия?

Авторизация (англ. authorization - разрешение, уполномочивание) - предоставление определённому лицу или группе лиц прав на выполнение определённых действий; а также процесс проверки (подтверждения) данных прав при попытке выполнения этих действий. Часто можно услышать выражение, что какой-то человек «авторизован» для выполнения данной операции - это значит, что он имеет на неё право.

Аутентификация - процедура проверки подлинности, например:

  • проверка подлинности пользователя путём сравнения введённого им пароля с паролем, сохранённым в базе данных пользователей;
  • подтверждение подлинности электронного письма путём проверки цифровой подписи письма по открытому ключу отправителя;
  • проверка контрольной суммы файла на соответствие сумме, заявленной автором этого файла.

Авторизацию не следует путать с аутентификацией: аутентификация - это процедура проверки легальности пользователя или данных, например, проверки соответствия введённого пользователем пароля к учётной записи паролю в базе данных, или проверка цифровой подписи письма по ключу шифрования, или проверка контрольной суммы файла на соответствие заявленной автором этого файла. Авторизация же производит контроль доступа легальных пользователей к ресурсам системы после успешного прохождения ими аутентификации. Зачастую процедуры аутентификации и авторизации совмещаются.

20. Что такое Ajax? Как принципиально устроена эта технология?

AJAX - это аббревиатура, которая означает Asynchronous Javascript and XML. При использовании AJAX нет необходимости обновлять каждый раз всю страницу, так как обновляется только ее конкретная часть. Достоинства AJAX:

  • Возможность создания удобного Web-интерфейса
  • Активное взаимодействие с пользователем
  • Удобство использования

AJAX использует два метода работы с веб-страницей: изменение Web-страницы не перезагружая её, и динамическое обращение к серверу. Второе может осуществляться несколькими способами, в частности, XMLHttpRequest, о чем мы и будем говорить, и использование техники скрытого фрейма. Для того, чтобы осуществлять обмен данными, на странице должен быть создан объект XMLHttpRequest, который является своеобразным посредником между браузером пользователя и сервером. С помощью XMLHttpRequest можно отправить запрос на сервер, а также получить ответ в виде различного рода данных.

21. Что такое ORM, как это перевести и как это должно работать?

ORM (англ. Object-Relational Mapping, рус. объектно-реляционное отображение) - технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования, создавая «виртуальную объектную базу данных». Существуют как проприетарные, так и свободные реализации этой технологии.

8000 Total Views 2 Views Today

Views: 6 727