КИРИЛЛ СУХОВ, МАКСИМ ВОСТРЕНКОВ
Взгляд на будущее от Microsoft
7 и 8 декабря в Москве, в здании президиума Академии наук, прошла седьмая ежегодная конференция Microsoft – «Платформа 2006. Определяя будущее». Двухдневная программа мероприятия состояла из технических докладов, практических занятий, «круглых столов» и лабораторных классов, посвящённых продуктам Microsoft.
В рамках конференции были представлены новые продукты фирмы – Microsoft SQL Server 2005, Microsoft Visual Studio 2005 и Microsoft BizTalk Server 2006.
Очень сложно сразу по окончании события внятно и полно изложить свои впечатления. Огромное количество информации, полученной на конференции, предстоит ещё переработать и осмыслить. Невозможно было всюду успеть – интереснейшие доклады проходили одновременно в разных залах РАН, и приходилось буквально разрываться.
Открытие конференции поразило не столько лазерным шоу, на которое, впрочем, стоило посмотреть (на сцене гремела гроза и лился настоящий дождь), сколько эффектной демонстрацией совместной работы вышеперечисленных продуктов, показанной сотрудниками Microsoft.
Поставленная для демонстрации задача (расчёт эффективности новой бизнес-стратегии продаж альбомов рок-группы Windows и её реализация) была за несколько десятков минут решена. Это стало возможным благодаря новым продуктам корпорации, применяемым в них эффективных средств анализа и разработки и, самое главное, глубокой интеграции MS SQL Server, MS VS и MS BizTalk Server между собой и другими компонентами платформы.
Безусловно, ключевым продуктом, представленным на конференции, был MS SQL Server.
К сожалению, два дня в одно и то же время проходило сразу 5 лекций в разных залах, поэтому попасть на все было просто невозможно. Одного из нас, Максима Востренкова, больше всего интересовал именно этот продукт, и то, что изложено ниже, – его отчет о прослушанных докладах и участии в практических занятиях по данной теме.
Основное впечатление заключается в том, что все нововведения в SQL Server 2005 призваны обеспечить комфортную совместную работу с данным продуктом при большом количестве подключений и значительных объемах базы. Перечислим основные моменты.
Версионность
Ранее любая операция чтения по умолчанию блокировала всю таблицу, а при исполнении инструкции JOIN – все таблицы, упоминающиеся в запросе. В результате даже на современном мощном сервере некоторые отчеты могли приостановить работу всех пользователей на 10-15 минут. Выход, конечно, был – разрешить «грязное чтение», но это, разумеется, не самый правильный вариант. Теперь же таблица остается свободной, и если во время обработки такого запроса в таблице производятся изменения, они сохраняются во временной базе данных tempdb и переходят непосредственно в нужную таблицу в тот момент, когда заканчивается обработка всех запросов к этой таблице, которые начали выполняться до операции изменения. Причем учитываются в данном случае только те строки, которые подверглись изменению.
Например, начал выполняться запрос 1 (SELECT), затем запрос 2 изменил какие-то строки в таблице (UPDATE), затем запрос 3 начал формировать отчет – в этом случае запрос 1 будет работать со своим набором данных (до UPDATE), а запрос 3 со своим (после UPDATE) и соответственно после завершения запроса 1 данные из временной базы перейдут в основную таблицу.
Поддержка многопроцессорности
Не секрет, что MS SQL Server поддерживает несколько процессоров. Но теперь появилась новая деталь – процессоры можно разбивать на группы в произвольном порядке с условием, что 1 процессор может входить только в 1 группу. Группу, используемую при выполнении запроса, можно указывать в самом запросе. Чрезвычайно удобно для построения «тяжелых» отчетов.
Service Broker
Service Broker – новая технология для разработки распределенных приложений. По сути это служба очереди сообщений. Что она дает? Приведу пример, показанный на лекции, немного его расширив. Предположим, наша фирма – туроператор и занимается продажей туров. При продаже тура нам надо зарезервировать билет и забронировать место в гостинице. Теперь на наш сервер поступает сообщение от клиентского приложения о необходимости оформить тур в Иваново. Сервер отсылает сообщение в авиакомпанию о резервировании билета и в ивановскую гостиницу о бронировании номера. От авиакомпании приходит подтверждение брони, а от гостиницы – ответ о том, что мест нет. В этом случае у нас есть 2 варианта – отменить бронь на билет или попытаться забронировать номер в другой гостинице. Вся прелесть данной технологии заключается в том, что мы можем все это реализовать на стороне сервера, то есть абсолютно не вдаваясь в подробности работы клиентского приложения и не вмешиваясь в нее.
Второй плюс данной технологии – распределение нагрузки. Допустим, у нас есть группа серверов, выполняющих одни и те же задачи. В этом случае сообщение, попавшее в очередь, отправляется на случайно выбранный сервер из группы, что дает примерно равномерное распределение нагрузки между серверами.
Третье – гарантии. Служба Service Broker гарантирует 100% доставку сообщений. Даже если по каким-то причинам сообщение доставить не удалось, будут предприниматься попытки отправить его снова до тех пор, пока результат не будет достигнут. Вдобавок к этому большие сообщения служба сама разбивает на более мелкие и передает порциями, что в условиях российских каналов связи играет немалую роль.
Четвертое – стоимость. Допустим, у вас есть основной офис, в котором стоят серверы, а также несколько филиалов, территориально удаленных друг от друга. У вас есть некоторое приложение, которое работает с вашим сервером, к примеру, просто регистрирует покупки и списывает товар со склада. Также имеются некие «часы пик», когда из-за большого количества покупок операторы вынуждены простаивать, ожидая выполнения соседских запросов. Что нам даст переход на использование Service Broker? Microsoft SQL Server 2005 выпускается в нескольких лицензиях, одна из которых, Express, – бесплатная. В случае ее использования нам достаточно поставить в филиалах этот самый MS SQL Server 2005 Express и развернуть на нем Service Broker, который будет заниматься приемом сообщений от клиентского приложения и переправкой их на основной сервер. Никаких простоев, поскольку все работают с локальным сервером. И главное – никаких затрат.
Data Mirroring
Data Mirroring – новая технология отказоустойчивости, которая сродни старому доброму режиму репликации Log Shipping. Однако есть некоторые различия. Использовать ее можно в двух вариантах – поддержка копии базы в реальном времени или некоторая замена кластера. Рассмотрим оба.
В первом случае нам достаточно иметь 2 сервера. При изменении данных на одном из серверов клиентским приложением такая же команда отправляется на выполнение второму серверу. Чем это хорошо? Да хотя бы тем, что в качестве второго сервера можно использовать гораздо более слабую машину, потихоньку команды обработаются и никуда не денутся. Зато у нас всегда будет актуальная копия данных.
Теперь второй вариант. В отличие от первого здесь нам понадобится еще и сервер-агент. Выполнение команд происходит следующим образом: команда поступает на сервер-агент, он пересылает ее на первый сервер, первый сервер дублирует ее на второй сервер, параллельно выполняя ее сам, второй сервер выполняет команду и отправляет первому серверу подтверждение, первый сервер заканчивает выполнение команды и рапортует серверу-агенту об удачном выполнении. Что мы от этого выигрываем? Сервером-агентом может служить любой самый дешевый современный компьютер, но тем не менее это тоже расходы. Зато в случае выхода из строя одного из серверов агент автоматически перенаправит запросы на второй. Минус – он не будет работать со старыми версиями клиента. Плюс – цена компьютера для сервера-агента гораздо ниже цены внешнего дискового накопителя для организации кластера.
Business Intelligence
Business Intelligence – это целая платформа для работы с разнородными данными. Она базируется на трех китах от Microsoft – Integration Services, Analysis Services и Reporting Services.
- Integration Services – службы интеграции. Если разобраться, это новая версия DTS (Data Transformation Services). Но, по уверениям Microsoft, весь код был переписан с чистого листа. Что действительно нового? Да по сути – все. Теперь при написании сценария импорта или экспорта данных можно воспользоваться всей мощностью платформы .NET, что дает поистине безграничные возможности.
- Analysis Services – службы аналитики. Данная компонента является продолжением развития служб OLAP (On-Line Analytical Processing) SQL Server 2000. Рассказать про ее отличия от OLAP в SQL 2000 на сегодняшний момент нам не представляется возможным по банальной причине отсутствия опыта работы с ней. Надеемся, что скоро этот опыт появится. Стоит упомянуть, что выступавшие разработчики были ей очень горды. Особенно приятно то, что руководителями разработки данного направления в Редмонде являются бывшие наши соотечественники – выходцы из СНГ.
- Reporting Services – службы отчетности. Никакой информации об этих службах на конференции нам не дали, поэтому рискнем предположить, что это прямое развитие SQL 2000 Reporting Services, которое являлось отдельным продуктом, а теперь он просто интегрирован его в сервер.
Доклады
Представление Visual Studio 2005 началось докладом Дмитрия Никонова и Анатолия Смолянинова о новом инструменте разработки – Visual Studio Team System. Были рассмотрены и продемонстрированы на примерах различные этапы процесса разработки и проектирования, от спецификаций и управления исходным кодом до отчётности по рабочим заданиям, с акцентом на специализацию и распределенность процесса разработки.
Продолжением стал доклад «Проектирование и разработка корпоративных приложений», где речь шла уже о Visual Studio Team Edition for Software Architects. Это первый из узлов, составляющих будущее решение под названием Dynamic System Initiative. Это проект Microsoft в области создания и поддержки корпоративных информационных систем. Были рассмотрены возможности оптимизации процесса разработки и внедрения веб-сервисов и распределённых сервисных архитектур (SOA) путём верификации процессов проектирования, проверки установкой в среде разработки на ранних стадиях жизненного цикла продукта, с использованием языка описания систем (SDM).
Второй день конференции начался с доклада «Разработка веб-приложений на базе ASP.NET 2.0 и Atlas», в котором Александр Ложечкин и Дмитрий Мартынов представили новую версию платформы для веб-разработки – ASP.NET 2.0 и новый инструментарий Microsoft для создания динамических веб-приложений с развитым пользовательским интерфейсом – Atlas. Вообще, ASP.NET 2.0 и её поддержка в MSVS 2005 – это отдельная большая тема, и осветить её в рамках данного обзора возможным не представляется.
Нововведения, которые сразу обратили на себя внимание:
- Отпала необходимость использовать Internet Information Server, для отладки приложений во время разработки. Теперь в состав Visual Studio входит локальный веб-сервер Visual Web Developer Web Server.
- Значительно расширен и систематизирован набор компонентов готовых блоков и прикладных интерфейсов.
- Реализован механизм использования шаблонов.
- Значительно облегчена работа с ролями пользователей за счёт введения нового программного интерфейса – диспетчера ролей.
- Осуществлено автоматическое обновление кэша сервера баз данных, используемых в веб-приложении.
С новыми технологиями .Framework 2.0, WinForms 2.0, Windows Presentation Foundation и Application Blocks на примере реальных приложений можно было ознакомиться, слушая доклад Ивана Бодягина и Андрея Корявченко «Технология создания клиентских приложений».
Опоздавшие на доклад с банальным названием «Эффективная разработка приложений на базе Microsoft Visual Studio 2005» не могли не только найти свободное кресло, но даже просто протиснуться в зал. Это и не удивительно – Александром Ложечкиным и Артуром Смоляниновым была продемонстрирована работа с кодом (на примере языка C#). Внимание было сосредоточено в основном на статическом анализе и рефакторинге кода, а также на полезных приёмах разработки приложений.
Большой интерес вызвал доклад «Проект Linq (C# 3.0, VB 10.0)», в котором Дмитрий Никонов рассказал о будущем расширении Visual Studio – LINQ (Language Integrated Query).
Сегодня разработчики используют один язык программирования для написания исходного кода программы и совершенно другой язык, например SQL, для доступа к данным из СУБД. LINQ позволяет писать запросы к данным любого формата и обращаться к объектам .NET, данным из XML и базам данных одинаковым способом. Во время доклада были продемонстрированы эффектные приёмы работы, связанные с уже реализованными возможностями расширения.
Cергею Одинцу и Александру Калугину выпала честь представить компетентной публике продукт, находящийся в стадии раннего бета-тестирования, а именно Microsoft Office 12. Со своей задачей они справились блестяще, причём наибольшее впечатление произвёл доклад «Первый взгляд на Microsoft Office 12», на котором докладчики работали с будущим продуктом, демонстрируя уже реализованные пользовательские возможности. Несколько ранее они же представляли Microsoft Office 12 Server – серверное решение для платформы Microsoft Office System, включающее SharePoint v3, Excel Server и Forms Server.
Пожалуй, одним из самых полезных и интересных для системных администраторов материалов был доклад «Мониторинг программно-аппаратных ресурсов гетерогенных систем». В нём рассматривалось использование технологии Microsoft Operation Manager (MOM) для осуществления проективного мониторинга серверных систем (не только на базе Microsoft).
Технология MOM, уже реализованная в таких продуктах, как MOM 2005 и MOM 2005 Workgroup Edition, также является частью ранее упоминавшегося проекта Dynamic System Initiative (DSI).
В процессе доклада было продемонстрировано решение от компании Quest Software по управлению и мониторингу сети, включающей в себя Linux, UNIX и Macintosh, рабочие станции посредством Active Directory, с демонстрацией выявления и диагностики проблем в гетерогеной среде.
На следующий день этот доклад был закреплён лабораторной работой «Microsoft Operations Manager 2005: мониторинг и анализ производительности серверов», которая, впрочем, была очень ограничена по времени и позволила лишь чуть-чуть «пощупать» новую технологию.
Итоги
За рамками данного обзора осталось немало интересного – представление BizTalk Server 2006, технологии Windows Workflow Foundation, Microsoft CRM 3.0, доклады партнёров Microsoft и многое другое. На всё просто не хватило времени, за два дня ознакомиться со всей предложенной информацией было просто невозможно.
Стоит отметить – каждому участнику полагался подарок в виде некоммерческих, но полнофункциональных версий Microsoft SQL Server 2005 и Microsoft Visual Studio 2005. Для читателей «Системного администратора» это значит, что в ближайших номерах журнала появятся предварительные обзоры возможностей этих продуктов, а также (благодаря непринуждённым разговорам в фойе конференц-зала) некоторые другие небезынтересные материалы.