Хочу рассказать о структуре и содержимом европейской магистерской программы IMSE (International Master in Service Engineering) при поддержке Erasmus Mundus. Это будет интересно:
- тем, кто собирается поступать на данную программу (поступление возможно до 15 января 2013)
- всем, кто желает получить представление об образовании в Европе
Так же я приведу ссылки на литературу по теме для тех, кто может захотеть узнать что-то новое.
Вступление
О программе IMSE вы могли читать в следующей статье — Стипендия Erasmus Mundus для высшего образования в Европе В ней описан процесс поступления и получения стипендий, бытовые детали и впечатления. Я же хочу сконцентрироваться на академических аспектах.
В первом семестре, который проходит в Университете Штуттгарта (Германия), преподают следующие предметы:
- Слабо связанные приложения и приложения, основанные на обмене сообщениями (англ. Loose-coupled and Message-based applications)
- Сервисно-ориентированные вычисления (англ. Service Oriented Computing)
- Управление бизнес процессами (англ. Business Process Management)
- Технологии хранилищ данных, data mining и OLAP (англ. Data warehouse, Data mining and OLAP technologies)
- Облачные вычисления (англ. Cloud Computing)
Примечание: Старался перевести на русский как можно более точно, но не гарантирую что перевод терминов является общепринятым.
Описание образовательного процесса
Каждый предмет представлен тремя формами занятий: лекции, упражнения и практика. Отличительная особенность — предметы преподаются один за одним, то есть, первые две недели — один предмет, следующие две — другой и т.д.
Лекции основаны на слайдах и проводятся профессорами в форме презентаций.
Упражения проводятся аспирантами (людьми получающими или получившими PhD под руководством профессора) и состояет из практически ориентированных задач и проблем. Как правило, задание для упражнений публикуются заранее, и у студентов есть время подготовиться. Однако, если вы не готовы, — ничего страшного, так как степень участия в занятии зависит от вашего желания и интереса. Даже в случае, когда никто из студентов не в состоянии решить задачу, аспирант предоставляет свой вариант решения и объясняет, как данное решение было получено. Упражения являются обязательными для участия и немного влияют на оценку на экзамене.
Практика представляет собой задание, которое решается студентами самостоятельно, как правило, в группах. Для представления результатов группа должна подготовить и провести презентацию. Как правило, требуется объяснить принципы решения, работоспособность решения и предоставить исходные коды (если применимо).
Экзамены являются устными и довольно серьезными, так как объем материала достаточно большой. Например, потому что первые три предмета являются связанными, их ведет один и тот же профессор. Он же и принимает экзамены. Объем материала по этим трем предметам, около 3000 детализированных слайдов плюс дополнительные источники, которые могут потребоваться для понимания некоторых аспектов.
Итак, перейдем к предметам.
Loose-coupled and Message-based applications
Цель: научить принципам созданию слабо-связанных приложений и приложений имеющих в основе обмен сообщениями.
Профессор: Prof. Dr. Frank Leymann
Описание: В основе предмета понятие так называемого message-oriented middleware и понятие EAI (Enterprise Application Integration). Интеграция приложений больших предприятий — один из главных способов применени технонологий описанных в данном курсе. Message-oriented middleware — это стек приложений, который предоставляет, например, очереди сообщений и остальные компоненты для обработки и перемещения сообщений. Для выполнения заданий используется JMS и ActiveMQ или очередь сообщений, встроенная в сервер приложений. В основном, все примеры приводятся для java, так она является de-facto стандартом для enterprise-level приложений.
Главный use case: как интегрировать различные приложения предприятия так, чтобы они работали вместе и при этом могли эволюционировать не нарушая работу других приложений. Например, интеграция CRM системы с системой инвентаризации, с базой сотрудников, учитывая, что все они могут быть предоставлены разными вендорами или legacy приложениями.
Интересные задачи и их решения из предмета:
- как получить и доставить данные в приложение, исходный код которого не доступен
- как тестировать приложения основанные на сообщениях
- создание ESB (Enterprise Service Bus), как шины для доступа ко всем функциями предприятия. Пример, WSO2 ESB и вся линейка продуктов wso2 для веб-сервисов и бизнес процессов
Литература:
- M.Hapner, R.Burridge, R.Sharma “Java Messaging Service API Tutorial and Reference”, Addison-Wesley, 2002 — всё о JMS, очень полезно во время программирования.
- Hohpe G., Woolf B. “Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions” Addison-Wesley 2004 — книга расссказывает об основных паттернах, лучших практиках построения систем, основанных на сообщениях.
Service Oriented Computing
Цель: научить принципам работы веб-сервисам и best practices по созданию REST(в меньшей степени) и SOAP (в большей степени) веб-сервисов.
Профессор: Prof. Dr. Frank Leymann
Описание: Рассматривается архитектура The World Wide Web, различные технологии: скриптовые языки, Java2EE, HTML, WML, CSS, JS, AJAX, технологии по созданию веб-сервисов в Java и большинство стандартов SOAP.
Кстати, SOAP — это не Simple Object Access Protocol. Начиная с версии 1.2 — это просто SOAP, архитектура обмена сообщениями (см. пред. предмет).
Главный use case: как использовать компоненты таким образом, чтобы не зависеть от окружения и работать с ними через унифицированный интерфейс.
Интересные задачи и их решения из предмета:
- как формализовать описание REST сервисов — WADL (vs. WSDL)
- как передавать бинарные данные в XML избегая 33% оверхеда для base64 — XOP
- UDDI для поиска веб-сервисов и почему он не заработал в Интернете
- как связать веб-вервисы в транзакции используя WS-Coordination. Пример, из лекции реализация 2 phase commit протокола для разнородных и удаленных веб-сервисов.
Литература:
- Sanjiva Weerawarana, Francisco Curbera, Frank Leymann, Tony Storey, Donald F. Ferguson “Web Services Platform Architecture: SOAP, WSDL, WS-Policy, WS-Addressing, WS-BPEL, WS-Reliable Messaging, and More”, Prentice Hall, 2005
- E. Wilde “World Wide Web”, Springer, 1999
- M.P. Papazoglou “Web Services: Principles & Technology”, Pearson Education Limited, 2008
- D.A. Chappell “Enterprise Service Bus”, O’Reilley, 2004
- N.M. Josuttis “SOA in Practice: The Art of Distributed System Design”, O’Reilly, 2007
Business Process Management
Цель: научить принципам идентификации, реализации и оптимизации бизнес процессов.
Профессор: Prof. Dr. Frank Leymann
Описание: Рассматривается что такое бизнес процесс, каким образом можно моделировать, документировать, идентифицировать, автоматизировать бизнес процессы и управлять ими. Best practices по этим активностям. Для анализа бизнес процессов пригодится следующий предмет (Data warehousing. Data mining and OLAP).
Главный use case: как компании могут контролировать бизнес процесс и оптимизировать расходы, повысить качество продукта путем оптимизации и автоматизации бизнес процессов.
Интересные задачи и их решения из предмета:
- как отделить бизнес логику от приложения
- создание своего бизнес процесса в виде программы на BPEL и развертывания его с помощью WSO2 Business Process Server. Пример, из практических занятий — создание интернет-магазина, где логикой обработки заказа занят бизнес процесс, а веб-фронт-энд всего лишь рисует представление и передает параметры.
- Кстати, бизнес процесс развертывается в виде SOAP веб-сервиса. А значит возможна агрегация бизнес процессов и сервисов. Используя, WSO2 ESB и WSO2 app server можно создать прокси для развертывания бизнес-процесса в виде REST сервиса
- Мета-модель для бизнес процессов — Petri Nets
- Графическое представление бизнес процесса с помощью BPMN. С версии 2.0 диаграммы BPMN могут быть исполняемыми.
Литература:
- F.Leymann, D.Roller “Production Workflow”, Prentice Hall, 2000 — хорошая книга о бизнес процессах.
- M.Weske “Business Process Management – Concepts, Languages, Architectures”, Springer, 2007
Data warehouse, Data mining and OLAP technologies
Цель: научить принципам организации Data warehouse, анализу данных с помощью алгоритмов data mining и OLAP
Профессор: Prof. Dr.-Ing. habil. Bernhard Mitschang
Описание: Рассматривается как эффективно хранить данные, как трансформировать их для аналитики и как получить и нормализовать данные из операционных баз данных. Следующий этап — анализ полученных данных различными способами.
Главный use case: как компании могут повысить качество принимаемых решений, на основе информации и знаний полученных путём анализа операционных данных.
Интересные задачи и их решения из предмета:
- стандартная задача, решаемая с помощью Association rules discovery — определение того, какие продукты в супермаркете обычно покупаются вместе
- теория OLAP и многомерных моделей данных. Поддержка OLAP и Datamining в SQL.
- во время практческих занятие выполнение задач OLAP & DM с помощью DB2, IBM InfoSphere, IBM Cognos и другого софта.
Литература:
- W. H. Inmon “Building the data warehouse”, Wiley Publishing, Inc., 2005 — книга содержит очень много теории относительно warehousов.
Cloud Computing
Цель: дать представление о различных современных технологиях и направлениях в области облачных вычислений
Профессор: Prof. Dr. Dr. h.c. Kristof Kloeckner
Описание: Это особенный курс, так как профессор Клокнер прилетает из США, чтобы прочитать его. Как правило, он не делает это в одиночку, а приглашает различных людей из индустрии выступить с презентациями по теме. В результате, получается этакая мини-конференция. По результам лекции необходимо написать эссе по выбранной теме и приготовить презентацию.
Главный use case: как компании могут снизить расходы путем переноса своей инфраструктуры в облако
Интересности:
- одна из презентация показала демо-версию штуковины, которая по диаграмме, описывающей архитектуру приложения, развертывает сервера для него в облаке. Также умеет определять архитектуру по приложению, которое уже в облаке — что-то вроде reverse engineering. Пример приложения, которое было развернуто во время демонстрации, — SugarCRM. Что поразило: настройка всех серверов и пакетов (да, никаких заранее подготовленных образов) происходит автоматически. Устанавливается образ ОС, затем пакеты, затем приложение, затем все сервера стартуют и появляется возможность использовать его. Занимает всё про всё — несколько минут. Сделано было с помощью TOSCA, Chef & JuJu
- Существует опен-соурс реализация облака, которую можно установить в Ubuntu Server — OpenStack.
Литература:
- Andrew Tanenbaum, Maarten van Steen: Distributed Systems. Principles and Paradigms, Prentice-Hall 2009
- www8.cs.umu.se/~elmroth/papers/ibmjrd2009.pdf
- www.davidchappell.com/CloudPlatforms--Chappell.pdf
Примечание: по последнему предмету довольно мало хорошей литературы.
Автор: KingOfNothing