Обзор книги «MCTS Self-Paced Training Kit (Exam 70-503): Microsoft .NET Framework 3.5 Windows Communication Foundation (PRO-Certification)» http://www.amazon.com/MCTS-Self-Paced-Training-70-503-PRO-Certification/dp/0735625654/ref=sr_1_12?ie=UTF8&s=books&qid=1224042536&sr=8-12
Что мне нравится в книгах этой серии, так это то, что теория всегда закачивается практическими примерами. И примеры эти показывают реальные проблемы, ситуации.
Это сильно отличается от документации, где все функции продукта просто перечислены без расстановки приоритетов. В книгах серии Self-Paced Training Kit (СПТК) нет места, чтобы излагать все функции, цели здесь другие. Здесь даются только ОСНОВНЫЕ функции и показываются цепочки действий для достижения *реального* результата. К примеру, часть о MessageContract. В документации по WCF масса информации об этом типе контракта, но чрезвычайно трудно понять, для чего же вообще (!) можно его использовать. В СПТК дан *конкретный* пример, где MessageContract используется для передачи лицензионного ключа. Все становится понятно.
Я работаю с Web-сервисами больше 3х лет, последний год исключительно с WCF сервисами. Книгу я использовал не для сдачи экзамена, а для систематизации своих знаний. (Здесь дискуссия о пользе сертификационных экзаменов http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3280207&SiteID=1)
Я использую любой источник информации, для того, чтобы *понять*, что происходит внутри продукта, почему данные конкретные функции были введены в продукт, какие альтернативы есть. Почему? Без ответов на этот вопрос, информация просто не укладывается в моей голове. Я не могу как обезьянка выучить действия, приводящие к результату. Мне надо знать, *почему*.
В любой методике объяснений немаловажную часть занимают объяснения *неправильного* использования, примеров *неправильных* техник. Не давая Cons, очень тяжело рассказать о Pros. Иногда десяток примеров правильного использования продукта не заменит одного примера "неправильного" использования.
Чем серия СПТК серия отличается от других книг издания Microsoft:
* в книгах этой серии приведен только *основной* функционал продуктов. На описание всего там нет места. Этот функционал выбран с точки зрения Microsoft, то есть с точки зрения производителя. И это важно.
* в них приведены примеры *реальных проблем* и как они решаются с помощью основного функционала продукта.
* в книгах сжато рассказано, что послужило основанием для создания именно этого функционала.
* здесь приведены примеры *неправильного* использования.
Pros:
* По сути СПТК - видение Microsoft о том, для чего замышлялся продукт, какие основные шаблоны его использования.
* в разделах Lessons приведена концентрированная информация об основных характеристиках WCF. Рядом находятся примеры из практики. Примеры тоже концентрируют на самых необходимых вещах.
* Мне очень нравятся разделы Lesson Summary. Это списки важнейшего функционала основных частей WCF.
Cons:
* Иногда используемые в примерах методы устарели много раньше выхода книги. К примеру, генерация классов из XSD с помощью XSD.exe утилиты. Несколько поколений Software Factory поддерживают уже эту функцию. Как и SvcUtil.exe
* частенько объяснения, что именно было сделано и какой в этом смысл, далеки от совершенства. Чувствуется, что писатели сами многого не понимают, а следуют лишь подробным инструкциям. Что, в общем-то, и неудивительно, принимая во внимание невообразимое количество функционала WCF. (К примеру, на стр.66 просится закомментировать директиву [XmlSerializerFormat...] после чего сгенерировать схемы заново и убедиться, что новые схемы будут очень сильно отличатся от схем, сгенерируемых по-умолчанию. Без объяснений, почему мы получили различия, все эти упражнения с комментированием имеют мало смысла.)
Я знаю несколько хороших источников информации о WCF именно в приведенном выше разрезе:
* Samples in .NET SDK
* Книга "Programming .NET Components", 2nd Edition by Juval Lowy
* форумы MSND (http://social.msdn.microsoft.com/forums/en-US/wcf/threads/
- и теперь к этим источникам прибавилась эта книга.
Я ставлю этой книге твердую пятерку.
Не смотря на все ее недостатки, польза от использования книги в качестве быстрого и надежного изучения WCF несомненна.
C уважением,
Leonid Ganeline [BizTalk MVP] http://geekswithblogs.net/leonidganeline/
2008-10-14
2008-10-12
Microsoft BizTalk Server: Что же это такое?
Что такое Microsoft BizTalk Server?
Довольно веселый и простенький вопрос.
Что Microsoft вкладывает в понятие "интеграция", применительно к BizTalk?
1). Это обмен данными в разных форматах и по разным протоколам и стандартам. Имеются в виду как форматы данных, такие, как многочисленные текстовые форматы, SQL, Xml. Протоколы, такие, как HTTP, SOAP, SMTP, POP3, FTP, MSMQ, которые обычно включают в себя и стандарты форматов данных. Форматы приложений, таких, как, SAP/R3, Siebel и индустриальные стандарты, такие как EDI, SWIFT, HL7, HIPPA включают в себя форматы данных, протоколы, системы аудита, защищенности.
Иногда в понятие обмена данными вкладывается просто структурное преобразование данных между форматами (например, данные надо преобразовать из текстового формата в формат Xml) плюс использование нужного протокола обмена (пример, данные надо передать по протоколу SOAP, что означает преобразование данных в формат Xml, упаковку этих данных в SOAP-пакеты и использование протокола SOAP для отправки этих пакетов).
Иногда понятие обмена данными расширено настолько, что включает в себя стандарты безопасности, средства аудита, архивирования, синхронизации данных и т.п. К примеру, модули, ответственные за обмен EDI данными, представляют из себя сложные системы, состоящие из множества частей, удовлетворяющие множествам EDI стандартов. Одних только схем EDI в составе BizTalk поставляется несколько тысяч. Для обмена данных BizTalk включает в себя большое количество адаптеров, как простых (File, SOAP, FTP), так и супер-сложных (SAP, J.D.Edvards, HL7...).
2). Другая сторона обмена данных - это преобразование форматов данных. В BizTalk преобразование данных реализуется по простой идее: все внешние форматы данных преобразуются к одному внутреннему формату - Xml. Все адаптеры осуществляют такое преобразование, как в одну, так и в другую сторону. Сообщения в формате Xml описываются схемами - Xsd. Чтобы осуществить структурные преобразования, то есть когда требуется часть данных поменять местами, часть данных просто удалить и т.п, используется стандарт Xslt. Документ Xslt (карта - map) описывает, как исходный (source) XML документ преобразовывается в конечный (destination) XML документ. BizTalk имеет для этих целей два редактора: Schema Editor и Mapper. Первый редактирует и создает Xsd документы, второй - Xslt.
3). Microsoft добавило в BizTalk средства, которые имеют более широкое использование, чем просто обмен данными. Это Business Process Orchestration. Это инструментарий для создания бизнес процессов и для поддержки среды выполнения этих процессов. К примеру, нам потребовалось создать систему, координирующую продажи товаров. Сейчас система состоит из нескольких независимых приложений. Одно приложение этой системы инициирует обработку, например выдает счет на товары. Другие приложения отвечают за утверждение счета, комплектации заявки на отгрузку товара, комплектации отгрузки, обработки сопутствующих финансовых транзакций. Все эти приложения могут быть независимы друг от друга, могут даже принадлежать разным компаниям. В BizTalk можно создать координирующие программки, бизнес процесса, Orchestration, которые и управляют всеми приложениями. Запуск бизнес процесса, а значит и Orchestration инициируется одним из внешних приложений. Другие приложения добавляют в систему недостающие данные, а Orchestration интегрирует их в один бизнес процесс. Когда все данные введены и обработаны, Orchestration завершает процесс. Orchestration может ожидать данные от других программ дни, а то и месяцы. Интересность ситуации в том, что одновременно могут работать многие тысячи Orchestration для многих тысяч заявок.
Возникающие при этом проблемы очень интересны и в принципе элементарны, хотя на практике бывают сложны: это и обеспечение бесперебойного восстановления системы после неизбежных сбоев оборудования, и обеспечение стабильной работы большого количества приложений, обеспечение синхронизации тысяч документов, программ, партнеров и т.д. Простая интеграция, когда данные берутся из одного источника, преобразуются в формат другой программы и передаются этой программе, не решает проблемы асинхронной обработки. Что будет, если принимающая данные сторона временно не работает? Что делать, если исходная системы выдала несколько комплектов данных, а принимающая сторона все еще не работает или не успевает их принять в том же темпе? Business Process Orchestration помогает решить и эти проблемы.
BizTalk предоставляет среду, которая ответвечает за создание огромного количества процессов, за управление этими процессами. BizTalk предоставляет специальный редактор Orchestrations, позволяющий моделировать разнообразные бизнес процессы с помощью простых блок-схем.
Основное применение Orchestrations - координация обработки интегрируемых данных, а не только согласование форматов и протоколов передачи данных. Это консолидация данных из разных источников, реализация бизнес логики по промежуточной обработке данных, синхронизация данных из разных источников, поддержка транзакций и т.п. Создана теория и несколько стандартов, посвященных именно долгоживущим процессам, называющимися Long Running Transactions. Основные игроки в данном сегменте, это IBM, Microsoft, Siebel, TIBCO и ряд других.
Как видите, решаемые задачи объективно трудоемкие, что неминуемо и приводит к тому, что на этом рынке конкурируют всего несколько пакетов.
BizTalk можно рассматривать с двух сторон: С одной стороны - это инструментарий разработчика, включающий в себя многочисленные редакторы (схем, maps, Orchestrations...). Часть средств BizTalk работают, как независимые программы, часть, как дополнения к Microsoft Visual Studio.
С другой стороны - это среда выполнения, обеспечивающая работу разработанных процессов обработки данных. При этом среда выполнения обеспечивает очень высокую надежность обработки данных, очень высокую степень масштабируемости. Оптимальные системы работают и на одном компьютере, и на серверных фермах, состоящих из десятков и сотен серверов. BizTalk Server работает только в среде Windows и в качестве хранилища требует Microsoft SQL Server.
Один из нюансов использования BizTalk, требующий внимания, состоит в том, что он используется прежде всего для интеграции систем в автоматическом режиме, для интеграции программ с минимальным участием человека. Одни приложения поставляют данные, другие их потребляют. В промежутке располагается BizTalk Server, который согласовывает форматы обмена, координирует обмен данных и их обработку. Типичная система на базе BizTalk работает без участия человека. BizTalk – это типичная back-end система. Ее многочисленные и мощные средства для разработчика контрастируют с минимальным набором средств для оператора, которому надо лишь в ограниченных пределах наблюдать за работающей системой, подстраивать ее. В BizTalk есть четкое деление между средой разработки (development) и средой исполнения (runtime).
Суммируя вышеизложенное, BizTalk - это интеграционный пакет, обеспечивающий обмен данными в разных форматах, преобразование данных, создание и обеспечение работы бизнес процессов, плюс среда разработки.
Типичные примеры использования BizTalk:
1) Приложение или оператор выкладывает готовые данные в определенном формате в файлы в определенный каталог. BizTalk процесс с заданным промежутком просматривает этот каталог и забирает файлы. Данные из файлов преобразуются во внутренний формат (Xml). Другие приложения, подписанные на эти данные, получают их. Данные предварительно преобразовываются в формат этих приложений. Данные хранятся в системе до тех пор, пока принимающая сторона не будет готова принять их.
2) BizTalk процесс с определенной периодичностью запрашивает SQL базу на предмет появления новых данных. Процесс стартует, когда обнаруживаются новые данные. Процесс рассылает эти данные в другие приложения и ожидает от этих приложений ответа, что данные обработаны. Когда все ответы получены, данные в SQL базе помечаются, как обработанные.
3) Приложение обращается к Web-сервису за данными. Web-сервис запускает BizTalk процесс, который обращается к другим Web-сервисам за дополнительными данными, после чего консолидирует данные и выдает их первому приложению. (Это типичный пример создания модных сейчас композитных Web-сервисов.)
4) Складская система на базе RFID (радио кодов). BizTalk процессы получают данные с RFID считывателей установленных на воротах склада, фильтруют их и передают данные в многочисленные складские приложения для учета и мониторинга движения товара.
-----------------------------------------------------------
[1] BizTalk Server – главная страница в интернете http://www.microsoft.com/biztalk/
[2] BizTalk Server документация на сайте MSDN http://msdn.microsoft.com/en-us/library/bb430723.aspx
[3] BizTalk datasheet: версии, цены, список адаптеров http://download.microsoft.com/download/c/2/2/c22737c1-707e-42a3-ae45-5df40973a0a7/BizTalk%202006%20R2%20Datasheet.pdf
Довольно веселый и простенький вопрос.
BizTalk позиционируется, как пакет для интеграции систем.
Что Microsoft вкладывает в понятие "интеграция", применительно к BizTalk?
1). Это обмен данными в разных форматах и по разным протоколам и стандартам. Имеются в виду как форматы данных, такие, как многочисленные текстовые форматы, SQL, Xml. Протоколы, такие, как HTTP, SOAP, SMTP, POP3, FTP, MSMQ, которые обычно включают в себя и стандарты форматов данных. Форматы приложений, таких, как, SAP/R3, Siebel и индустриальные стандарты, такие как EDI, SWIFT, HL7, HIPPA включают в себя форматы данных, протоколы, системы аудита, защищенности.
Иногда в понятие обмена данными вкладывается просто структурное преобразование данных между форматами (например, данные надо преобразовать из текстового формата в формат Xml) плюс использование нужного протокола обмена (пример, данные надо передать по протоколу SOAP, что означает преобразование данных в формат Xml, упаковку этих данных в SOAP-пакеты и использование протокола SOAP для отправки этих пакетов).
Иногда понятие обмена данными расширено настолько, что включает в себя стандарты безопасности, средства аудита, архивирования, синхронизации данных и т.п. К примеру, модули, ответственные за обмен EDI данными, представляют из себя сложные системы, состоящие из множества частей, удовлетворяющие множествам EDI стандартов. Одних только схем EDI в составе BizTalk поставляется несколько тысяч. Для обмена данных BizTalk включает в себя большое количество адаптеров, как простых (File, SOAP, FTP), так и супер-сложных (SAP, J.D.Edvards, HL7...).
2). Другая сторона обмена данных - это преобразование форматов данных. В BizTalk преобразование данных реализуется по простой идее: все внешние форматы данных преобразуются к одному внутреннему формату - Xml. Все адаптеры осуществляют такое преобразование, как в одну, так и в другую сторону. Сообщения в формате Xml описываются схемами - Xsd. Чтобы осуществить структурные преобразования, то есть когда требуется часть данных поменять местами, часть данных просто удалить и т.п, используется стандарт Xslt. Документ Xslt (карта - map) описывает, как исходный (source) XML документ преобразовывается в конечный (destination) XML документ. BizTalk имеет для этих целей два редактора: Schema Editor и Mapper. Первый редактирует и создает Xsd документы, второй - Xslt.
3). Microsoft добавило в BizTalk средства, которые имеют более широкое использование, чем просто обмен данными. Это Business Process Orchestration. Это инструментарий для создания бизнес процессов и для поддержки среды выполнения этих процессов. К примеру, нам потребовалось создать систему, координирующую продажи товаров. Сейчас система состоит из нескольких независимых приложений. Одно приложение этой системы инициирует обработку, например выдает счет на товары. Другие приложения отвечают за утверждение счета, комплектации заявки на отгрузку товара, комплектации отгрузки, обработки сопутствующих финансовых транзакций. Все эти приложения могут быть независимы друг от друга, могут даже принадлежать разным компаниям. В BizTalk можно создать координирующие программки, бизнес процесса, Orchestration, которые и управляют всеми приложениями. Запуск бизнес процесса, а значит и Orchestration инициируется одним из внешних приложений. Другие приложения добавляют в систему недостающие данные, а Orchestration интегрирует их в один бизнес процесс. Когда все данные введены и обработаны, Orchestration завершает процесс. Orchestration может ожидать данные от других программ дни, а то и месяцы. Интересность ситуации в том, что одновременно могут работать многие тысячи Orchestration для многих тысяч заявок.
Возникающие при этом проблемы очень интересны и в принципе элементарны, хотя на практике бывают сложны: это и обеспечение бесперебойного восстановления системы после неизбежных сбоев оборудования, и обеспечение стабильной работы большого количества приложений, обеспечение синхронизации тысяч документов, программ, партнеров и т.д. Простая интеграция, когда данные берутся из одного источника, преобразуются в формат другой программы и передаются этой программе, не решает проблемы асинхронной обработки. Что будет, если принимающая данные сторона временно не работает? Что делать, если исходная системы выдала несколько комплектов данных, а принимающая сторона все еще не работает или не успевает их принять в том же темпе? Business Process Orchestration помогает решить и эти проблемы.
BizTalk предоставляет среду, которая ответвечает за создание огромного количества процессов, за управление этими процессами. BizTalk предоставляет специальный редактор Orchestrations, позволяющий моделировать разнообразные бизнес процессы с помощью простых блок-схем.
Основное применение Orchestrations - координация обработки интегрируемых данных, а не только согласование форматов и протоколов передачи данных. Это консолидация данных из разных источников, реализация бизнес логики по промежуточной обработке данных, синхронизация данных из разных источников, поддержка транзакций и т.п. Создана теория и несколько стандартов, посвященных именно долгоживущим процессам, называющимися Long Running Transactions. Основные игроки в данном сегменте, это IBM, Microsoft, Siebel, TIBCO и ряд других.
Как видите, решаемые задачи объективно трудоемкие, что неминуемо и приводит к тому, что на этом рынке конкурируют всего несколько пакетов.
BizTalk можно рассматривать с двух сторон: С одной стороны - это инструментарий разработчика, включающий в себя многочисленные редакторы (схем, maps, Orchestrations...). Часть средств BizTalk работают, как независимые программы, часть, как дополнения к Microsoft Visual Studio.
С другой стороны - это среда выполнения, обеспечивающая работу разработанных процессов обработки данных. При этом среда выполнения обеспечивает очень высокую надежность обработки данных, очень высокую степень масштабируемости. Оптимальные системы работают и на одном компьютере, и на серверных фермах, состоящих из десятков и сотен серверов. BizTalk Server работает только в среде Windows и в качестве хранилища требует Microsoft SQL Server.
Один из нюансов использования BizTalk, требующий внимания, состоит в том, что он используется прежде всего для интеграции систем в автоматическом режиме, для интеграции программ с минимальным участием человека. Одни приложения поставляют данные, другие их потребляют. В промежутке располагается BizTalk Server, который согласовывает форматы обмена, координирует обмен данных и их обработку. Типичная система на базе BizTalk работает без участия человека. BizTalk – это типичная back-end система. Ее многочисленные и мощные средства для разработчика контрастируют с минимальным набором средств для оператора, которому надо лишь в ограниченных пределах наблюдать за работающей системой, подстраивать ее. В BizTalk есть четкое деление между средой разработки (development) и средой исполнения (runtime).
Суммируя вышеизложенное, BizTalk - это интеграционный пакет, обеспечивающий обмен данными в разных форматах, преобразование данных, создание и обеспечение работы бизнес процессов, плюс среда разработки.
Типичные примеры использования BizTalk:
1) Приложение или оператор выкладывает готовые данные в определенном формате в файлы в определенный каталог. BizTalk процесс с заданным промежутком просматривает этот каталог и забирает файлы. Данные из файлов преобразуются во внутренний формат (Xml). Другие приложения, подписанные на эти данные, получают их. Данные предварительно преобразовываются в формат этих приложений. Данные хранятся в системе до тех пор, пока принимающая сторона не будет готова принять их.
2) BizTalk процесс с определенной периодичностью запрашивает SQL базу на предмет появления новых данных. Процесс стартует, когда обнаруживаются новые данные. Процесс рассылает эти данные в другие приложения и ожидает от этих приложений ответа, что данные обработаны. Когда все ответы получены, данные в SQL базе помечаются, как обработанные.
3) Приложение обращается к Web-сервису за данными. Web-сервис запускает BizTalk процесс, который обращается к другим Web-сервисам за дополнительными данными, после чего консолидирует данные и выдает их первому приложению. (Это типичный пример создания модных сейчас композитных Web-сервисов.)
4) Складская система на базе RFID (радио кодов). BizTalk процессы получают данные с RFID считывателей установленных на воротах склада, фильтруют их и передают данные в многочисленные складские приложения для учета и мониторинга движения товара.
-----------------------------------------------------------
[1] BizTalk Server – главная страница в интернете http://www.microsoft.com/biztalk/
[2] BizTalk Server документация на сайте MSDN http://msdn.microsoft.com/en-us/library/bb430723.aspx
[3] BizTalk datasheet: версии, цены, список адаптеров http://download.microsoft.com/download/c/2/2/c22737c1-707e-42a3-ae45-5df40973a0a7/BizTalk%202006%20R2%20Datasheet.pdf
Subscribe to:
Comments (Atom)