Zurück zum Modul: m223.komeo.net
LB1: Anforderungen
user
, procet
und group
des komeo GitLab darstellen:
Architektur
5-Tier Architektur:
- Client-, Web-, Logik- und 2 EIS-Tiers (GitLab und RDBMS)
WEB-Tier
- Presentaionon Layer, implementiert das MVC Pattern
- Controller: Daten per REST von der LOGIK-Tier
- Model:
{json}
- Technologie ist frei wählbar
- Ruby, C#, Java, PHP, NodeJS, Angular, etc.
LOGIK-Tier
- Logik (Business) Tier, JEE Stack al WildFly Docker
- stellt REST Micro-Services zur Verfügung
- Daten per GitLab API
- persistiert auf MySQL DB
Ausgangslage
Microservices
Microservices are an architecture for breaking up a monolithic application into a collection of smaller pieces. Each of those pieces provides a particular function via a well-defined and carefully managed API. The collection delivers the same overall business value as the original monolithic application, but the independence of the individual pieces means they can be updated much more quickly without impacting the overall collection. (This requires, of course, that any changes to the API are done in a backwards-compatible way.) - Burr Sutter, redhat
1. Microservice user:
Das GitLab Projekt m223/m223-api stellt den MicroService user
zur Verfügung:
- m223-api.komeo.net/user/all
- m223-api.komeo.net/user/name/stephan.metzler
- m223-api.komeo.net/user/id/4
- m223-api.komeo.net/user/echo/hello
mit Browser oder einem REST Tool testen
- testen mit z.B: PostMan, curl, etc.
- Brosercall z.B: URI: m223-api.komeo.net/user/all
tree /f /a
+---user
| nb-configuration.xml
| pom.xml
|
+---src
| +---main
| | +---java
| | | \---net
| | | \---komeo
| | | \---m223
| | | \---api
| | | \---user
| | | +---boundary
| | | | Engine.java
| | | |
| | | +---control
| | | | GitLab.java
| | | |
| | | \---service
| | | JAXRSConfiguration.java
| | | Resource.java
\---target
| user.war
2. Microservise gitlab:
Der MicroService gitlab
(JPA) erweitert die Funktionalität, indem der Microservise user eingebunden wird.
- m223-api.komeo.net/gitlab/user/gitlab ruft den Micro-Service m223-api.komeo.net/user/all auf
- m223-api.komeo.net/gitlab/user/db holt die User aus der DB
-
m223-api.komeo.net/gitlab/merge merges all Komeo GitLab
user
in die MySQL DB- look up DB credentials in WildFly log > run
log
CI/CD pipeline
- look up DB credentials in WildFly log > run
- m223-api.komeo.net/gitlab/elapse zeigt die Zugriffszeiten: alle Komeo User von GitLab vs. DB
- m223-api.komeo.net/gitlab/hits implementiert einen Hit-Zähler als Singleton-Bean
- m223-api.komeo.net/gitlab/echo/hi implementiert ein WildFly Server Echo
tree /f /a
+---gitlab
| | pom.xml
| |
| +---src
| | +---main
| | | +---java
| | | | \---net
| | | | \---komeo
| | | | \---m223
| | | | \---api
| | | | \---gitlab
| | | | +---aop
| | | | | Mailer.java
| | | | | SysLog.java
| | | | |
| | | | +---boundary
| | | | | Engine.java
| | | | | HitCounter.java
| | | | | Merge.java
| | | | |
| | | | +---control
| | | | | GitLab.java
| | | | |
| | | | +---entity
| | | | | GitLabGroup.java
| | | | | GitLabProject.java
| | | | | GitLabUser.java
| | | | |
| | | | \---service
| | | | JAXRSConfiguration.java
| | | | Resource.java
| | | |
| | | +---resources
| | | | \---META-INF
| | | | persistence.xml
| \---target
| | gitlab.war
Aufgaben
-
LBV 1.1 - Anforderungen kennen - Tools
- eduPad Gruppenarbeit
- Cheat-Sheet (Zusammfassung) eines Tools als Einzelarbeit
-
LBV 1.2 - Anforderungen abbilden - UML
- (reverse-enginerred) UML Gruppenarbeit
- Implemtieren der Web-Tier in der gewählten Technologie
-
LBV 1.3 - Anforderungen verstehen - Pattern
- eduPad Gruppenarbeit
- Code Snippets
-
LBV 1.4 - Anforderungen umsetzten - Konzepte
- Erweitern des Basis-Projekt: m223/m223-api
- Implemtieren der Web-Tier in der gewählten Technologie (Fortsetzung)
Abgabe LB 1
Am Abend des 2. Modultages