Вход:  Пароль:  
FreeSource: NickGavrikov/InternetInformationServer70 ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |

IIS 7.0

Занесло меня на семинар Microsoft 6 mar 2007. Был там очень интересный доклад Intel (собственно, только ради него имхо стоило бы сходить), но помимо этого, мне наконец-то доходчиво рассказали про HTTP-сервер микрософта, и в нем действительно есть интересные идеи, которых подчас нет в апаче и других opensource HTTP-серверах. По настоятельной просьбе Администрации :-) спешу поделиться. Сразу говорю, что во-первых, кое-что я уже подзабыл, и если вспомню, буду поднабивать попозже, а во-вторых, на презентации обычно все очень хорошо и красиво, как мы все знаем, а в жизни оказывается немного хуже. Так вот, это данные, полученные с презентации, а не из реального опыта. Возможно что-то на самом деле не работает или работает не так как я понял. Но это в данном случае не важно, поскольку интерес представляют именно идеи, которые можно реализовать, а не конкретная реализация оффтопичного софта.

Итак,


1. Все конфиги XML. Конфиги не разбросаны по всей системе, а сложены в одной конкретной директории. Ты как разработчик щелкаешь клавишами в своей любимой Visual Studio, пишешь любые скрипты, отлаживаешь сайт – после чего переписываешь папочку с конфигами на сервер – и он начинает работать гарантировано точно так же, как и твой комп.


Ограничения данного пункта:


a) Если ты добавляешь новый модуль – ты должен зарегистрировать его в Program Cache что-то-там (не помню как называется), простого копирования папочки недостаточно


б) Если тебе админ запретил что-то настраивать – ты это настроить не сможешь :-)


2. Редактировать конфиги можно:


а) через Микрософт-вин-морду, работающую с сервером через HTTP (по поводу SSL не знаю). Через прокси работает.
б) через хорошо документированное и продуманное API
в) вручную с помощью текстового редактора (Подсветка синтаксиса, autoindent, Intelli Science?, folding в VS2005 Действительно Рулят. Удобнее текстового редактора для исходных кодов я не видел)
г) всеми средствами, которые были доступны в IIS6.0 (обратная совместимость тут сохраняется, т.е. любой сайт, написанный для IIS6.0 в 7.0 заработает без переделок)


3. Полностью модульная архитектура. В дефолтной версии включено порядка 50–60 модулей, все примеры и руководства настоятельно рекомендуют включать только те модули, которые используются. Все примеры приведены, разумеется, с конфигами (XML).


Ограничения/недоделки:


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


б) После того как ты поменял в конфиге что-то про загрузку модулей, сервер впадает в ступор и примерно секунд 30–40 ничего никому не говорит


в) Благодаря well-document-API написать утилитку, которая будет смотреть какие в данный момент загружены модули – дело 10 минут, включая 5 минут на заваривание чая и 4 минуты ожидания пока загрузится супер операционка Windows Vista. Почему такую утилитку не написали мелкомягкие – ХЗ.


4. Написание своего модуля – очень простая задача, которая прекрасно описана, включая примеры. Причем, это касается не только, например, выдачи контента. Это касается, в частности, и конфигурирования. Т.е. ты рисуешь форму, которая появляется в общем администраторском интерфейсе, описываешь названия параметров которые ты конфигуришь (как это будет выглядить в XML) и пишешь код. NET: все действительно легко и просто.


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


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


6. Существенно пересмотрены способы авторизации пользователей на сайте. В частности, в апаче штатно можно только делать авторизацию типа Basic со всплывающим окном, спрашивающим логин и пароль. В IIS7.0 рекомендуют использовать Web-авторизацию – например, на главной странице ставить поля для ввода логина и пароля, причем теперь такая авторизация работает примерно так же, как и .htaccess/Basic в апаче, т.е. статику, например, которая требует авторизации, ты так же просмотреть не сможешь. При попытке просмотра картинки (например) тебя перекинут на главную страницу, когда ты введешь на ней логин и пароль – тебя обратно перекинут на ту картинку, которую ты хотел смотреть с самого начала.


Модулей авторизации есть несколько, ты можешь включать любой из них, а можешь написать свой собственный. Никакого геморроя с хаком заголовков как в Apache / PHP? не нужно. Опять же, есть отличная документация и работающие примеры.


7. Полная обратная совместимость с IIS6.0, в частности, ее можно включить и для конкретной директории. Там по заверениям авторов, все работает именно так как было раньше, даже старые откровенные глюки-недоделки работают :-)



 
Файлов нет. [Показать файлы/форму]
Комментарии [Скрыть комментарии/форму]

Посмотрел бы ты на нынешнюю Java-инфраструктуру. У меня при прочтении было такое чувство, что все это я уже где-то очень давно видел :)
Майкрософт изобрела servlets :)

-- DenisSmirnov (2007-03-12 17:07:38)

Не знаю к счастью или к сожалению, но я до сервлетов так и не добрался. А то что майкрософт в лице. NET/С# изобрела жабу всем давно известно :)
К сожалению, в нашей стране сервлеты еще менее распространенная вешь чем IIS. И если его активно продвигают, пытаются теснить обычный LAMP, что-то продвигающих сервлеты пока особо не видно... Хотя у меня есть один хороший знакомый, бывший одноклассник, ныне живущий в NY уже лет эдак восемь-девять, он уже давным давно там под сервлеты что-то писал, и, на сколько мне известно, пишет до сих пор. То есть «там» технология вполне живая и здравствующая.

-- NickGavrikov (2007-03-12 17:41:24)

Судя по разговорам с некоторыми людьми — технология и здесь цветет. Но среди корпоративщиков. Домашние странички как клепали все и везде на PHP, так и клепают.
LAMP продвигают в основном хостеры — им это удобно. И продвижение заключается в том, что LAMP хостинг скоро не только бесплатно раздавать будут, а ещё доплачивать за пользование им :)

-- DenisSmirnov (2007-03-12 18:14:23)