<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Superблог компании LOCUM &#187; веб-интерфейс</title>
	<atom:link href="http://locum.ru/blog/tag/veb-interfejs/feed" rel="self" type="application/rss+xml" />
	<link>http://locum.ru/blog</link>
	<description></description>
	<lastBuildDate>Thu, 26 Mar 2015 11:44:11 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.41</generator>
	<item>
		<title>Невидимая архитектура</title>
		<link>http://locum.ru/blog/hosting/invisible_architecture</link>
		<comments>http://locum.ru/blog/hosting/invisible_architecture#comments</comments>
		<pubDate>Mon, 17 Aug 2009 13:04:04 +0000</pubDate>
		<dc:creator><![CDATA[Смирнов Роман]]></dc:creator>
				<category><![CDATA[Хостинг]]></category>
		<category><![CDATA[архитектура]]></category>
		<category><![CDATA[веб-интерфейс]]></category>
		<category><![CDATA[компания]]></category>
		<category><![CDATA[хостинг]]></category>

		<guid isPermaLink="false">http://blog.locum.ru/?p=80</guid>
		<description><![CDATA[Пользуясь услугами хостинга, клиенты видят только веб-интерфейс панели управления и окно ftp-клиента. А ведь многим наверняка интересно узнать о том, каким же образом работает вся система? Вот вкратце принципы работы архитектуры, которую мы выбрали для предоставления общего интерфейса управления ресурсами хостинг-серверов. Естественно, веб-интерфейс &#8212; это далеко не основной компонент системы. Он лишь принимает запрос пользователя, [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<p style="margin-bottom: 0cm;"><a href="http://blog.locum.ru/hosting/invisible_architecture"><img class="alignleft size-full wp-image-92" title="Superблог LOCUM: Невидимая архитектура" src="http://blog.locum.ru/wp-content/uploads/2009/08/arch.png" alt="Superблог LOCUM: Невидимая архитектура" width="600" height="300" /></a></p>
<p><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } 		A:link { color: #000080; so-language: zxx; text-decoration: underline } 		A:visited { color: #800000; so-language: zxx; text-decoration: underline } --></p>
<p style="margin-bottom: 0cm;">Пользуясь услугами хостинга, клиенты видят только веб-интерфейс панели управления и окно ftp-клиента. А ведь многим наверняка интересно узнать о том, каким же образом работает вся система? Вот вкратце принципы работы архитектуры, которую мы выбрали для предоставления общего интерфейса управления  ресурсами хостинг-серверов.</p>
<p><span id="more-80"></span></p>
<p style="margin-bottom: 0cm;">Естественно, веб-интерфейс &#8212; это далеко не основной компонент системы. Он лишь принимает запрос пользователя, конвертирует его в удобный для системы формат и кладет в особую очередь задач для выполнения. Стоит заметить, что какое-либо атомарное с точки зрения интерфейса пользователя действие может на самом деле состоять из некоторого количества мелких операций. Например, пользователь, создавая новый сайт, кликает на соответствующую кнопку в своей панели управления. Та определяет, какие действия нужно выполнить: добавить DNS-имя, создать директорию сайта в домашней папке пользователя, скопировать в нее стандартные файлы-заглушки, создать конфигурационный файл веб-сервера и т.д. После того, как задачи отправлены в очередь, работа веб-интерфейса  заканчивается. В дело вступает второе звено нашей системы &#8212; специальный процесс, который следит за очередью задач и их выполнением. Он постоянно получает запросы и отчеты от третьего звена — маленьких рабочих серверов, отвечающих за исполнение всех физических действий на той или иной машине. Обработчик очереди, руководствуясь системой приоритетов, а также специализацией конкретного сервера, видит запросы от этих приложений, анализирует текущую очередь задач и выбирает из них первоочередную. После этого задача получает статус «в работе», и обработчик очереди ожидает отчета об ее исполнении. Тут надо отметить, что некоторые задачи (регистрация доменного имени и др.) требуют достаточно много времени, поэтому была выбрана именно такая схема взаимодействия компонентов  системы. Обработчик очереди не ждет мгновенного ответа от исполнителя, но помнит о каждой задаче и в любой момент готов принять отчет о ее исполнении.</p>
<p style="margin-bottom: 0cm;">Если все эти операции прошли без помех, то действия, которые пользователь хотел выполнить, обретают свое физическое воплощение. Если же произошла ошибка, этот факт логируется для дальнейшего разбирательства администратором. В любом случае, обработчик очереди получит отчет об удачном или неудачном исполнении каждой поставленной задачи. Когда задача выполнена, она получает соответствующий статус и покидает активную очередь. Однако все сведения о запрошенных действиях сохраняются, чтобы всегда можно было восстановить картину событий для поиска ошибок, а также сбора статистики. Настройка серверов организована таким образом, что пользователи, выполняя свои команды, никак не могут помешать друг другу. Сервера-исполнители задач выполняют физические действия от имени соответствующей учетной записи в системе. Такой подход позволяет при непредвиденных обстоятельствах максимально обезопасить данные наших клиентов.</p>
<p style="margin-bottom: 0cm;">Помимо постоянно функционирующих трех основных звеньев системы на главном сервере периодически запускаются вспомогательные процессы. Они предназначены для обработки биллинга, данных системы электронных платежей, API-регистра доменов и тому подобных внешних сервисов.</p>
<p style="margin-bottom: 0cm;">Использование такой архитектуры позволяет нам легко расширять инфраструктуру. На обработчике очереди для этого имеется специальная карта серверов, в которой описаны все существующие в инфраструктуре машины, их роли и функции. Для ввода нового сервера достаточно лишь установить на него приложение по исполнению задач и внести его в карту серверов на обработчике очереди.</p>
<p style="margin-bottom: 0cm;">Такой подход нам представляется весьма удобным. Сложности, с которыми приходится сталкиваться при разработке данной системы, с лихвой окупаются в дальнейшем за счет удобства использования и масштабируемости.</p>
]]></content:encoded>
			<wfw:commentRss>http://locum.ru/blog/hosting/invisible_architecture/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
