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: aus
{json}
- Technologie ist frei wählbar (Ruby, C#, Java, 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
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/api1 stellt den MicroService user
zur Verfügung:
mit Browser oder einem REST Tool, z.B: PostMan, curl, etc. testen, z.B: URI: api1.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.
- api1.komeo.net/gitlab/users ruft den Micro-Service api1.komeo.net/user/all auf
-
api1.komeo.net/gitlab/merge merged
user
,group
undproject
in der MySQL DB - api1.komeo.net/gitlab/hits implentiert einen Hit-Zähler als Singolton-Bean
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/api1
- Implemtieren der Web-Tier in der gewählten Technologie (Fortsetzung)
Abgabe LB 1
Am Abend des 2. Modultages