|
|
| Zeile 1: |
Zeile 1: |
| = Was ist RNext? = | | = Was ist RNext? = |
|
| |
|
| ''BiPRO-RNext'' oder einfach ''RNext'' ist der Codename für die nächste Release-Generation von BiPRO-Schnittstellen. | | ''BiPRO RNext'' oder einfach ''RNext'' ist der Codename für die nächste Release-Generation von BiPRO-Schnittstellen. |
|
| |
|
| Powered by | | Powered by |
| Zeile 7: |
Zeile 7: |
| <br>https://bipro.net/ | | <br>https://bipro.net/ |
|
| |
|
| RNext stellt die nächste BiPRO Normengeneration dar und wurde Anfang 2018 in einem ersten Proof Of Concept untersucht. Aktuell gibt es verschiedene Herausforderungen im Bereich BiPRO-Implementierung. Neben einer hohen Komplexität der BiPRO-Datenmodelle gibt es einige Hürden, die einer reibungslosen Umsetzung der BiPRO-Normen und somit einem flächendeckenden Ausrollen im Wegen stehen.
| | <br> |
|
| |
|
| Hier sind einige Lösungsansätze, die im Rahmen der ersten RNext-Labs realisiert werden sollen:
| | = FAQ zu RNext = |
|
| |
|
| == Artefakte als Basiskomponente bereitstellen ==
| | Hier gibt es eine lange Liste von FAQs rund um das Thema RNext. Die BiPRO-Geschäftsstelle, sowie die Arbeitsgruppe RNext versuchen diese Sammlung stets up-to-date zu halten: [[faq|FAQs]]. |
|
| |
|
| Bis dato werden BiPRO-Normen hauptsächlich als eine Art Richtlinie bereitgestellt. Es gibt zwar Artefakte in Form eines EA-Projektes (*.eap, UML) bzw. daraus generierter XML-Schemas, sowie WSDL-Vorlagen, allerdings müssen sich die Implementierer selbst um Serialisierung und Adaption der Datenmodelle bzw. um die Erstellung der Service-Schicht kümmern. Dabei gibt es Interpretationsspielräume, sodass eine hundertprozentige BiPRO-Konformität nicht ohne Weiteres hergestellt werden kann.
| | <br> |
|
| |
|
| Die Idee von RNext dagegen ist, dass BiPRO-Normen mit konkreten Artefakten ausgeliefert werden. Diese wiederum können sowohl den Implementierungsaufwand reduzieren als auch die Normkonformität verbessern. Da alle Datenmodelle und die Service-Endpunkte normiert sind, können Framework-spezifische Basiskomponenten generiert werden und diese in public oder private Package-Repositories veröffentlicht werden. Somit kann der Implementierer eine BiPRO-Basis, als Package für das jeweilige Programmierframework beziehen und muss lediglich Spezifika der Domäne als Delta implementieren. Der Implementierungsaufwand wird dadurch deutlich reduziert. Und die Norm wird maximal eingehalten. Es sollen kleine, atomare Artefakte generiert werden, sodass der Anwender, je nach Zweck, nur den tatsächlich benötigten Funktionsumfang in seiner Anwendung nutzen kann.
| | = Onboarding für Mitglieder der Arbeitsgruppe RNext = |
|
| |
|
| == WEB API / REST Service ==
| | Hilfe zur Benutzung und Konfiguration der Wiki-Software findest du im [//meta.wikimedia.org/wiki/Help:Contents Benutzerhandbuch]. |
|
| |
|
| Auch wenn eine BiPRO-Norm als ein technologie-übergreifendes Konstrukt angedacht ist, so ist die Nähe zum SOAP-Protokoll unverkennbar. Im Laufe der vergangenen Jahre haben sich allerdings die technischen Rahmenbedingungen massiv verändert. Heute werden immer häufige REST-Services als Web-APIs eingesetzt. Diese ermöglichen ein schlankeres Übertragungsformat in Form von JSON-Daten. Des Weiteren können die komplexen Datenstrukturen in kleineren atomaren Lese- und Schreiboperationen verarbeitet werden. Dabei werden die SOA-Prinzipien durch die Verwendung von Micro Service Patterns ergänzt.
| | <br> |
|
| |
|
| Eine der wesentlichen Herausforderungen ist es, die BiPRO-Norm für den aktuellen und den zukünftigen Stand der Technik fit zu machen. Es gibt immer mehr Clients, vor allem im mobilen Bereich, die ausschließlich auf REST-Services setzen. Vor allem mit Hilfe der Spezifikationen von Open API werden moderne Service-Schnittstellen definiert.
| | = Fundamente = |
|
| |
|
| * https://github.com/OAI/OpenAPI-Specification
| | == Design Principles == |
| * https://www.openapis.org/
| |
|
| |
|
| Damit wird ermöglicht, die Schnittstellen und die dazugehörigen Datenmodelle deklarativ nach einem technologie-übergreifenden Standard zu modellieren. Ein Großteil des anwendungsspezifischen Codes wird dabei durch Generatoren erzeugt. Technologien wie RAML oder Swagger haben sich bereits als nachhaltiges aktives Ökosystem in diesem Bereich erfolgreich etabliert.
| | BiPRO-RNext - Design Principles (Thesenpapier, April 2017) |
|
| |
|
| == BiPRO Datenmodelle ==
| | * [[RNextDesignPrinciples|Wiki-Version]] |
| | * [[Media:BiPRO-RNext-Design-Principles.pdf|PDF-Dokument]] |
|
| |
|
| Einen wesentlichen Teil der BiPRO-Normen stellen die objektorientierten Datenmodelle dar. Das Datenmodell besteht aus generischen sparten-übergreifenden Bestandteilen und aus sparten-spezifischen Ausprägungen. Vor allem auf der Consumer-Seite ist die Anbindung einer BiPRO-Schnittstelle immer noch eine große Herausforderung. Um z.B. fünf Felder an den Service zu schicken, müssen oft komplexe Objektbäume instanziert werden, damit das hierarchische Konstrukt anschließend mit den eigentlichen Daten befüllt werden kann.
| | == Technische Grundlagen == |
|
| |
|
| RNext soll die Komplexität solcher hierarchischeren Datenmodelle reduzieren, sodass die Anbindung von BiPRO-Services einfacher und intuitiver erreicht werden kann.
| | * [[RNextBasisTechnisch|Technische Grundlagen]] |
| | |
| == Continuous Integration/Deployment ==
| |
| | |
| CI/CD sind in der heutigen Welt der Softwareentwicklung feste Bestandteile des Application Lifecycle Management (ALM). Damit wird eine dezentrale Entwicklung, einfachere Versionierung und vor allem kürzere Release-Zyklen ermöglicht.
| |
| | |
| Eine der Ideen von RNext ist der Aufbau einer solchen zentralen Build- und Deployment-Pipeline mit Hilfe eines CI/CD-Servers, wie z.B. Jenkins oder Team Foundation Server (TFS).
| |
| | |
| == BiPRO Norm Lifecycle Management ==
| |
| | |
| Der Normierungsprozess beginnt mehr oder weniger wie gewohnt mit der Erstellung eines Datenmodells und endet mit der Publizierung der Artefakte in Package-Repositories. Am Ende des Normierungsprozesses stehen alle Normen in Form von verschiedenen Artefakten dem Implementierer zur Verfügung. Der Implementierungsaufwand reduziert sich erheblich, da die BiPRO-spezifischen Komponenten nicht mehr implementiert, sondern nur integriert werden müssen. Die Norm wird maximal eingehalten, da die äußerste Schicht des Services bzw. der Consumer-Applikation immer gleich bleiben.
| |
| | |
| Die Publikation der Artefakte in public Repositories hat den Vorteil, dass ein Ökosystem mit verschiedenen BiPRO-Tools entsteht. Dieses Ökosystem sorgt wiederum für eine breite Akzeptanz der BiPRO-Norm und für eine nachhaltige Weiterentwicklung durch die Community.
| |
| | |
| | |
| = FAQ zu RNext =
| |
| | |
| Hier gibt es eine lange Liste von FAQs rund um das Thema RNext. Die BiPRO-Geschäftsstelle, sowie die Arbeitsgruppe RNext versuchen diese Sammlung stets up-to-date zu halten: [[faq|FAQs]].
| |
|
| |
|
| | <br> |
|
| |
|
| = Tools in RNext = | | = Tools in RNext = |
| Zeile 69: |
Zeile 53: |
| https://nexus.rnext.org | | https://nexus.rnext.org |
|
| |
|
| | | <br> |
| = Onboarding für Mitglieder der Arbeitsgruppe RNext =
| |
| | |
| Hilfe zur Benutzung und Konfiguration der Wiki-Software findest du im [//meta.wikimedia.org/wiki/Help:Contents Benutzerhandbuch].
| |
| | |
| | |
| = Grundlagen =
| |
| | |
| == Design Principles ==
| |
| | |
| BiPRO-RNext - Design Principles (Thesenpapier, April 2017)
| |
| | |
| * [[RNextDesignPrinciples|Wiki-Version]]
| |
| * [[Media:BiPRO-RNext-Design-Principles.pdf|PDF-Dokument]]
| |
| | |
|
| |
|
| = Realisierung von RNext = | | = Realisierung von RNext = |
| Zeile 97: |
Zeile 67: |
| Fachliche Komponente, die sich vor allem mit folgenden Themenpunkten beschäftigt. | | Fachliche Komponente, die sich vor allem mit folgenden Themenpunkten beschäftigt. |
| * Domänenschnitte | | * Domänenschnitte |
| * Migration von RClassic nach RNext | | * Migration von RClassic (BiPRO Release 2) nach RNext |
|
| |
|
| == Technisch == | | == Technisch == |
| Zeile 104: |
Zeile 74: |
| * Buildpipeline | | * Buildpipeline |
|
| |
|
| | <br> |
|
| |
|
| = Ergebnisse der Arbeitsgruppe RNext = | | = Ergebnisse der Arbeitsgruppe RNext = |
| Zeile 109: |
Zeile 80: |
| * [[ag-rnext-ergebnisse-201811|Ergebnisse der Arbeitsgruppe RNext (Stand: November 2018)]] | | * [[ag-rnext-ergebnisse-201811|Ergebnisse der Arbeitsgruppe RNext (Stand: November 2018)]] |
|
| |
|
| | <br> |
|
| |
|
| = Starthilfen = | | = Starthilfen = |
Was ist RNext?
BiPRO RNext oder einfach RNext ist der Codename für die nächste Release-Generation von BiPRO-Schnittstellen.
Powered by
https://bipro.net/
FAQ zu RNext
Hier gibt es eine lange Liste von FAQs rund um das Thema RNext. Die BiPRO-Geschäftsstelle, sowie die Arbeitsgruppe RNext versuchen diese Sammlung stets up-to-date zu halten: FAQs.
Onboarding für Mitglieder der Arbeitsgruppe RNext
Hilfe zur Benutzung und Konfiguration der Wiki-Software findest du im Benutzerhandbuch.
Fundamente
Design Principles
BiPRO-RNext - Design Principles (Thesenpapier, April 2017)
Technische Grundlagen
Tools in RNext
OpenAPI Specification 3.0
In früheren Version synonym mit Swagger. Ist eine Spezifikation zur Beschreibung von RESTful Webservices in RAML (RESTful API Modeling Language). Das Tool Swagger kann online verwendet werden oder als Client heruntergeladen werden. Hier der Link zur Online-Version: https://editor.swagger.io
GitLab
https://gitlab.rnext.org
Jenkins
https://jenkins.rnext.org
Nexus
https://nexus.rnext.org
Realisierung von RNext
Bei RNext geht es nicht nur um die Artefakte und ihre Form, sondern auch um den Prozess, in dem sie erstellt werden. Deshalb ist es sinnvoll das gesamte Projekt in drei Komponenten zu unterteilen.
Organisatorisch
Organisatorische Komponente, die sich vor allem mit folgenden Themenpunkten beschäftigt.
- Vorgehen Projekt/Lab/DiO
- Koordination Gremien/Teams
Fachlich
Fachliche Komponente, die sich vor allem mit folgenden Themenpunkten beschäftigt.
- Domänenschnitte
- Migration von RClassic (BiPRO Release 2) nach RNext
Technisch
Technische Komponente, die sich vor allem mit folgenden Themenpunkten beschäftigt.
- Authentifizierung
- Buildpipeline
Ergebnisse der Arbeitsgruppe RNext
Starthilfen