- PVSM.RU - https://www.pvsm.ru -

Чему учат в первом семестре магистерской программы Erasmus Mundus IMSE

Хочу рассказать о структуре и содержимом европейской магистерской программы IMSE [1] (International Master in Service Engineering) при поддержке Erasmus Mundus. Это будет интересно:

  • тем, кто собирается поступать на данную программу (поступление возможно до 15 января 2013)
  • всем, кто желает получить представление об образовании в Европе

Так же я приведу ссылки на литературу по теме для тех, кто может захотеть узнать что-то новое.

Вступление

О программе IMSE вы могли читать в следующей статье — Стипендия Erasmus Mundus для высшего образования в Европе [2] В ней описан процесс поступления и получения стипендий, бытовые детали и впечатления. Я же хочу сконцентрироваться на академических аспектах.

В первом семестре, который проходит в Университете Штуттгарта (Германия), преподают следующие предметы:

  1. Слабо связанные приложения и приложения, основанные на обмене сообщениями (англ. Loose-coupled and Message-based applications)
  2. Сервисно-ориентированные вычисления (англ. Service Oriented Computing)
  3. Управление бизнес процессами (англ. Business Process Management)
  4. Технологии хранилищ данных, data mining и OLAP (англ. Data warehouse, Data mining and OLAP technologies)
  5. Облачные вычисления (англ. Cloud Computing)

Примечание: Старался перевести на русский как можно более точно, но не гарантирую что перевод терминов является общепринятым.

Описание образовательного процесса

Каждый предмет представлен тремя формами занятий: лекции, упражнения и практика. Отличительная особенность — предметы преподаются один за одним, то есть, первые две недели — один предмет, следующие две — другой и т.д.

Лекции основаны на слайдах и проводятся профессорами в форме презентаций.

Упражения проводятся аспирантами (людьми получающими или получившими PhD под руководством профессора) и состояет из практически ориентированных задач и проблем. Как правило, задание для упражнений публикуются заранее, и у студентов есть время подготовиться. Однако, если вы не готовы, — ничего страшного, так как степень участия в занятии зависит от вашего желания и интереса. Даже в случае, когда никто из студентов не в состоянии решить задачу, аспирант предоставляет свой вариант решения и объясняет, как данное решение было получено. Упражения являются обязательными для участия и немного влияют на оценку на экзамене.

Практика представляет собой задание, которое решается студентами самостоятельно, как правило, в группах. Для представления результатов группа должна подготовить и провести презентацию. Как правило, требуется объяснить принципы решения, работоспособность решения и предоставить исходные коды (если применимо).

Экзамены являются устными и довольно серьезными, так как объем материала достаточно большой. Например, потому что первые три предмета являются связанными, их ведет один и тот же профессор. Он же и принимает экзамены. Объем материала по этим трем предметам, около 3000 детализированных слайдов плюс дополнительные источники, которые могут потребоваться для понимания некоторых аспектов.

Итак, перейдем к предметам.

Loose-coupled and Message-based applications

Цель: научить принципам созданию слабо-связанных приложений и приложений имеющих в основе обмен сообщениями.
Профессор: Prof. Dr. Frank Leymann [3]
Описание: В основе предмета понятие так называемого 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) [4], как шины для доступа ко всем функциями предприятия. Пример, WSO2 ESB [5] и вся линейка продуктов wso2 для веб-сервисов и бизнес процессов

Литература:

  1. M.Hapner, R.Burridge, R.Sharma “Java Messaging Service API Tutorial and Reference [6]”, Addison-­Wesley, 2002 — всё о JMS, очень полезно во время программирования.
  2. Hohpe G., Woolf B. “Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions [7]” Addison-Wesley 2004 — книга расссказывает об основных паттернах, лучших практиках построения систем, основанных на сообщениях.

Service Oriented Computing

Цель: научить принципам работы веб-сервисам и best practices по созданию REST(в меньшей степени) и SOAP (в большей степени) веб-сервисов.
Профессор: Prof. Dr. Frank Leymann [3]
Описание: Рассматривается архитектура The World Wide Web, различные технологии: скриптовые языки, Java2EE, HTML, WML, CSS, JS, AJAX, технологии по созданию веб-сервисов в Java и большинство стандартов SOAP.
Кстати, SOAP — это не Simple Object Access Protocol. Начиная с версии 1.2 — это просто SOAP, архитектура обмена сообщениями (см. пред. предмет).
Главный use case: как использовать компоненты таким образом, чтобы не зависеть от окружения и работать с ними через унифицированный интерфейс.
Интересные задачи и их решения из предмета:

  • как формализовать описание REST сервисов — WADL [8] (vs. WSDL)
  • как передавать бинарные данные в XML избегая 33% оверхеда для base64 — XOP [9]
  • UDDI [10] для поиска веб-сервисов и почему он не заработал в Интернете
  • как связать веб-вервисы в транзакции используя WS-Coordination [11]. Пример, из лекции реализация 2 phase commit [12] протокола для разнородных и удаленных веб-сервисов.

Литература:

  1. Sanjiva Weerawarana, Francisco Curbera, Frank Leymann, Tony Storey, Donald F. Ferguson “Web Services Platform Architecture: SOAP, WSDL [13], WS-Policy, WS-Addressing, WS-BPEL, WS-Reliable Messaging, and More”, Prentice Hall, 2005
  2. E. Wilde “World Wide Web [14]”, Springer, 1999
  3. M.P. Papazoglou “Web Services: Principles & Technology [15]”, Pearson Education Limited, 2008
  4. D.A. Chappell “Enterprise Service Bus [16]”, O’Reilley, 2004
  5. N.M. Josuttis “SOA in Practice: The Art of Distributed System Design [17]”, O’Reilly, 2007

Business Process Management

Цель: научить принципам идентификации, реализации и оптимизации бизнес процессов.
Профессор: Prof. Dr. Frank Leymann [3]
Описание: Рассматривается что такое бизнес процесс, каким образом можно моделировать, документировать, идентифицировать, автоматизировать бизнес процессы и управлять ими. Best practices по этим активностям. Для анализа бизнес процессов пригодится следующий предмет (Data warehousing. Data mining and OLAP).
Главный use case: как компании могут контролировать бизнес процесс и оптимизировать расходы, повысить качество продукта путем оптимизации и автоматизации бизнес процессов.
Интересные задачи и их решения из предмета:

  • как отделить бизнес логику от приложения
  • создание своего бизнес процесса в виде программы на BPEL [18] и развертывания его с помощью WSO2 Business Process Server [19]. Пример, из практических занятий — создание интернет-магазина, где логикой обработки заказа занят бизнес процесс, а веб-фронт-энд всего лишь рисует представление и передает параметры.
  • Кстати, бизнес процесс развертывается в виде SOAP веб-сервиса. А значит возможна агрегация бизнес процессов и сервисов. Используя, WSO2 ESB и WSO2 app server можно создать прокси для развертывания бизнес-процесса в виде REST сервиса
  • Мета-модель для бизнес процессов — Petri Nets [20]
  • Графическое представление бизнес процесса с помощью BPMN [21]. С версии 2.0 диаграммы BPMN могут быть исполняемыми.

Литература:

  1. F.Leymann, D.Roller “Production Workflow [22]”, Prentice Hall, 2000 — хорошая книга о бизнес процессах.
  2. M.Weske “Business Process Management – Concepts, Languages, Architectures [23]”, Springer, 2007

Data warehouse, Data mining and OLAP technologies

Цель: научить принципам организации Data warehouse, анализу данных с помощью алгоритмов data mining и OLAP
Профессор: Prof. Dr.-Ing. habil. Bernhard Mitschang [24]
Описание: Рассматривается как эффективно хранить данные, как трансформировать их для аналитики и как получить и нормализовать данные из операционных баз данных. Следующий этап — анализ полученных данных различными способами.
Главный use case: как компании могут повысить качество принимаемых решений, на основе информации и знаний полученных путём анализа операционных данных.
Интересные задачи и их решения из предмета:

  • стандартная задача, решаемая с помощью Association rules discovery — определение того, какие продукты в супермаркете обычно покупаются вместе
  • теория OLAP и многомерных моделей данных. Поддержка OLAP и Datamining в SQL.
  • во время практческих занятие выполнение задач OLAP & DM с помощью DB2, IBM InfoSphere, IBM Cognos и другого софта.

Литература:

  1. W. H. Inmon “Building the data warehouse [25]”, Wiley Publishing, Inc., 2005 — книга содержит очень много теории относительно warehousов.

Cloud Computing

Цель: дать представление о различных современных технологиях и направлениях в области облачных вычислений
Профессор: Prof. Dr. Dr. h.c. Kristof Kloeckner [26]
Описание: Это особенный курс, так как профессор Клокнер прилетает из США, чтобы прочитать его. Как правило, он не делает это в одиночку, а приглашает различных людей из индустрии выступить с презентациями по теме. В результате, получается этакая мини-конференция. По результам лекции необходимо написать эссе по выбранной теме и приготовить презентацию.
Главный use case: как компании могут снизить расходы путем переноса своей инфраструктуры в облако
Интересности:

  • одна из презентация показала демо-версию штуковины, которая по диаграмме, описывающей архитектуру приложения, развертывает сервера для него в облаке. Также умеет определять архитектуру по приложению, которое уже в облаке — что-то вроде reverse engineering. Пример приложения, которое было развернуто во время демонстрации, — SugarCRM. Что поразило: настройка всех серверов и пакетов (да, никаких заранее подготовленных образов) происходит автоматически. Устанавливается образ ОС, затем пакеты, затем приложение, затем все сервера стартуют и появляется возможность использовать его. Занимает всё про всё — несколько минут. Сделано было с помощью TOSCA [27], Chef [28] & JuJu [29]
  • Существует опен-соурс реализация облака, которую можно установить в Ubuntu Server — OpenStack [30].

Литература:

  1. Andrew Tanenbaum, Maarten van Steen: Distributed Systems. Principles and Paradigms [31], Prentice-Hall 2009
  2. www8.cs.umu.se/ [32]~elmroth/papers/ibmjrd2009.pdf
  3. www.davidchappell.com/CloudPlatforms--Chappell.pdf [33]

Примечание: по последнему предмету довольно мало хорошей литературы.

Автор: KingOfNothing

Источник [34]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/veb-servisy/22769

Ссылки в тексте:

[1] IMSE: http://www.erasmusmundus-imse.eu/

[2] Стипендия Erasmus Mundus для высшего образования в Европе: http://habrahabr.ru/post/151635/.

[3] Prof. Dr. Frank Leymann: http://www.iaas.uni-stuttgart.de/institut/mitarbeiter/leymann/indexE.php

[4] ESB (Enterprise Service Bus): http://en.wikipedia.org/wiki/Enterprise_service_bus

[5] WSO2 ESB: http://wso2.com/

[6] Java Messaging Service API Tutorial and Reference: http://www.amazon.com/Java%C2%BF-Message-Service-Tutorial-Reference/dp/0201784726/

[7] Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions: http://www.amazon.com/Enterprise-Integration-Patterns-Designing-Deploying/dp/0321200683

[8] WADL: http://en.wikipedia.org/wiki/Web_Application_Description_Language

[9] XOP: http://blog.alex-rudenko.com/2012/11/what-is-xop-and-little-demo.html

[10] UDDI: http://en.wikipedia.org/wiki/Universal_Description_Discovery_and_Integration

[11] WS-Coordination: http://en.wikipedia.org/wiki/WS-Coordination

[12] 2 phase commit: http://en.wikipedia.org/wiki/Two-phase_commit_protocol

[13] Web Services Platform Architecture: SOAP, WSDL: http://www.amazon.com/Web-Services-Platform-Architecture-WS-Addressing/dp/0131488740

[14] World Wide Web: http://www.amazon.com/Wildes-WWW-Technical-Foundations-World/dp/3540642854

[15] Web Services: Principles & Technology: http://www.amazon.com/Web-Services-Principles-Michael-Papazoglou/dp/0321155556

[16] Enterprise Service Bus: http://www.amazon.com/Enterprise-Service-Bus-Theory-Practice/dp/0596006756

[17] SOA in Practice: The Art of Distributed System Design: http://www.amazon.com/SOA-Practice-Distributed-System-Design/dp/0596529554

[18] BPEL: http://ru.wikipedia.org/wiki/BPEL

[19] WSO2 Business Process Server: http://wso2.com/products/business-process-server/

[20] Petri Nets: http://en.wikipedia.org/wiki/Petri_net

[21] BPMN: http://en.wikipedia.org/wiki/Business_Process_Model_and_Notation

[22] Production Workflow: http://www.amazon.com/Production-Workflow-Techniques-Frank-Leymann/dp/0130217530

[23] Business Process Management – Concepts, Languages, Architectures: http://www.amazon.com/Business-Process-Management-Languages-Architectures/dp/3642286151

[24] Prof. Dr.-Ing. habil. Bernhard Mitschang: http://www.ipvs.uni-stuttgart.de/abteilungen/as/abteilung/mitarbeiter/bernhard.mitschang

[25] Building the data warehouse: http://www.amazon.com/Building-Data-Warehouse-W-Inmon/dp/0764599445

[26] Prof. Dr. Dr. h.c. Kristof Kloeckner: http://www.iaas.uni-stuttgart.de/institut/honorarprofessoren/

[27] TOSCA: https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=tosca

[28] Chef: http://www.opscode.com/chef/

[29] JuJu: https://juju.ubuntu.com/

[30] OpenStack: http://www.openstack.org/

[31] Distributed Systems. Principles and Paradigms: http://www.amazon.com/Distributed-Systems-Principles-Paradigms-2nd/dp/0132392275

[32] www8.cs.umu.se/: http://www8.cs.umu.se/

[33] www.davidchappell.com/CloudPlatforms--Chappell.pdf: http://www.davidchappell.com/CloudPlatforms--Chappell.pdf

[34] Источник: http://habrahabr.ru/post/162745/