


{"id":1770,"date":"2018-07-12T02:37:15","date_gmt":"2018-07-12T00:37:15","guid":{"rendered":"http:\/\/blogs.gm.fh-koeln.de\/bente\/?p=1770"},"modified":"2019-07-12T02:42:33","modified_gmt":"2019-07-12T00:42:33","slug":"gp-ws18_a03-weiterentwicklung-der-projektboerse-campus-gummersbach-als-microservice-architektur","status":"publish","type":"post","link":"https:\/\/blogs.gm.fh-koeln.de\/bente\/2018\/07\/12\/gp-ws18_a03-weiterentwicklung-der-projektboerse-campus-gummersbach-als-microservice-architektur\/","title":{"rendered":"GP WS18_A03: Weiterentwicklung der Projektb\u00f6rse Campus Gummersbach als Microservice-Architektur"},"content":{"rendered":"<h3>Problembeschreibung<\/h3>\n<p class=\"lead\">Eine Microservice-Architektur verfolgt den Ansatz, ein IT-System (in der Regel eine webbasierte Anwendung) als Suite von weitgehend unabh\u00e4ngigen vertikalen Modulen aufzubauen. Diese k\u00f6nnen (weitgehend) unabh\u00e4ngig voneinander deployed und betrieben werden und ben\u00f6tigen nur ein Minimum an zentraler Kommunikationsinfrastruktur. Kommunikation zwischen Front- und Backend erfolgt \u00fcber leichtgewichtige Protokolle wie etwa REST.<\/p>\n<p>Dieser Architekturstil erlaubt es, ganze Anwendungslandschaften nach Gesch\u00e4ftsf\u00e4higkeiten zu segmentieren. Die resultierenden Teilfunktionalit\u00e4ten k\u00f6nnen dann in Form von Microservices implementiert und lose gekoppelt werden. So entstehen Systeme von Anwendungen, die einerseits miteinander kommunizieren, und andererseits jeweils mit einem H\u00f6chstma\u00df an Unabh\u00e4ngigkeit entwickelt und gewartet werden k\u00f6nnen.<\/p>\n<p>Eine Microservice-Architektur bietet sich daher besonders an, um Softwareprojekte an der Hochschule (wie dem Campus Gummersbach) zu realisieren. Es ist offensichtlich sinnvoll, Systeme zur Verwaltung von R\u00e4umen, Praktika, Veranstaltungen, Projekten, Pr\u00fcfungen etc. miteinander zu vernetzen. Andererseits werden diese Anwendungen von verschiedenen Gruppen mit verschiedenen Technologien gepflegt. Eine enge Abstimmung ist an der Hochschule weder sinnvoll noch durchsetzbar.<\/p>\n<p>Um solchen Projekten ein Maximum an Freiheit bei Technologiewahl und Umsetzungsform zu gew\u00e4hren, w\u00e4re ein Architektur-Blueprint f\u00fcr Basistechnologien zur Umsetzung von Services und Koppelung von Schnittstellen eine gro\u00dfe Hilfe. Dies soll im Rahmen dieses Projekts an einem konkreten Beispiel konzipiert und pilotiert werden.<\/p>\n<h3>Projektbeschreibung<\/h3>\n<p>Ziel des Projekts ist es, f\u00fcr die Applikationslandschaft \u201eCampus Gummersbach\u201c einen Architektur-Blueprint, basierend auf dem Microservices-Ansatz, zu konzipieren.<\/p>\n<p>Dieses Konzept soll am Beispiel der <strong>Projektb\u00f6rse Campus GM<\/strong> pilotiert und iterativ-inkrementell erarbeitet werden.<\/p>\n<p>In der Master-Veranstaltung Anforderungsmanagement (SS17) wurde hierf\u00fcr eine Anforderungsspezifikation (Lastenheft) erstellt. Darauf aufbauend hat die Master-Veranstaltung FAE eine Architekturspezifikation (Pflichtenheft) erstellt. Im SS 18 wurde in einem Guided Project mit der eigentlichen Implementierung der Projektb\u00f6rse begonnen, erste Microservices wurden umgesetzt und n\u00f6tige Infrastruktur geschaffen.<\/p>\n<p>Die Teams des folgenden Guided Projects \u00fcbernehmen die Verantwortung f\u00fcr einzelne (bereits bestehende) Microservices und k\u00fcmmern sich sowohl um Weiterentwicklung\/Betrieb der Services als auch der Entwicklungs- und Ausf\u00fchrungsinfrastruktur. Je nach Bedarf werden neue Microservices entwickelt, Umsysteme eingebunden und die Infrastruktur verfeinert. Die entwickelten Microservices basieren dabei auf dem Spring Boot Framework (Java).<\/p>\n<p>Diese Pilotanwendung wird genutzt, um den entwickelten Architektur-Blueprint zu verfeinern, zu validieren und offene Fragen zu identifizieren.<\/p>\n<h3>Projektmethodik<\/h3>\n<p>Die Umsetzung des Projekts sowie die Erstellung des Evaluationsberichts wird nach agiler Methodik (Scrum mit Elementen aus XP) erfolgen. Die Teams werden hierbei durch wissenschaftliche Mitarbeiter in der Rolle des Scrum Masters betreut. Die agilen Teamprozesse werden gem\u00e4\u00df Typ-A-Definition von Prof. Stumpf methodisch begleitet. Das Projekt wird in (vermutlich vierw\u00f6chige) Sprints gegliedert. Axel Burghof von Capgemini wird bei den Sprint Reviews zugegen sein.<\/p>\n<h3>Learning Outcomes<\/h3>\n<ul>\n<li>Praxiserfahrung mit Microservice-Architekturen<\/li>\n<li>Erfahrung in der Konzeption und Pilotierung eines praxisnahen, umfangreichen Softwareprojekts<\/li>\n<li>Gelegenheit zur konkreten Verwendung von \u201eBleeding Edge\u201c Technologien<\/li>\n<li>Erfahrung mit agiler Entwicklungsmethodik in einem realistischen Softwareprojekt<\/li>\n<li>Expertise in Kommunikation und Dokumentation<\/li>\n<li>Teamwork- und Projektmanagement-Erfahrung<\/li>\n<\/ul>\n<h3>Voraussetzungen<\/h3>\n<ul>\n<li>Programmierkenntnisse<\/li>\n<li>Grundkenntnisse Linux<\/li>\n<li>Interesse an professioneller Software-Entwicklung<\/li>\n<li>Interesse an der Softwarearchitektur<\/li>\n<li>Interesse an komplexen Aufgabenstellungen und methodischem Vorgehen<\/li>\n<li>Bereitschaft sich eigenst\u00e4ndig in neue Frameworks, Tools und Konzepte einzuarbeiten<\/li>\n<li>Bereitschaft, Teamarbeit tats\u00e4chlich physisch gemeinsam (im gleichen Raum, \u201ecollocated\u201c) durchzuf\u00fchren, um zu einem agilen Team zu reifen<\/li>\n<li>Bereitschaft, gem\u00e4\u00df agiler Vorgehensweise durch geeignete Tools Transparenz \u00fcber den eigenen Beitrag zur Gruppenleistung zuzulassen<\/li>\n<\/ul>\n<h3>Externe Projektpartner<\/h3>\n<p>&#8211;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Problembeschreibung Eine Microservice-Architektur verfolgt den Ansatz, ein IT-System (in der Regel eine webbasierte Anwendung) als Suite von weitgehend unabh\u00e4ngigen vertikalen Modulen aufzubauen. Diese k\u00f6nnen (weitgehend) unabh\u00e4ngig voneinander deployed und betrieben werden und ben\u00f6tigen nur ein Minimum an zentraler Kommunikationsinfrastruktur. Kommunikation zwischen Front- und Backend erfolgt \u00fcber leichtgewichtige Protokolle wie etwa REST. Dieser Architekturstil erlaubt es,&#8230;  <a href=\"https:\/\/blogs.gm.fh-koeln.de\/bente\/2018\/07\/12\/gp-ws18_a03-weiterentwicklung-der-projektboerse-campus-gummersbach-als-microservice-architektur\/\" class=\"more-link\" title=\"Read GP WS18_A03: Weiterentwicklung der Projektb\u00f6rse Campus Gummersbach als Microservice-Architektur\"><?php _e(\"Read more &raquo;\",\"wpbootstrap\"); ?><\/a><\/p>\n","protected":false},"author":39,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[50732],"tags":[9887,21843,50751],"class_list":["post-1770","post","type-post","status-publish","format-standard","hentry","category-eigene-gps","tag-agil","tag-micro-service","tag-prox"],"acf":[],"_links":{"self":[{"href":"https:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/posts\/1770","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/users\/39"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/comments?post=1770"}],"version-history":[{"count":1,"href":"https:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/posts\/1770\/revisions"}],"predecessor-version":[{"id":1771,"href":"https:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/posts\/1770\/revisions\/1771"}],"wp:attachment":[{"href":"https:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/media?parent=1770"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/categories?post=1770"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/tags?post=1770"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}