mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
further details of federation and first community APIs
This commit is contained in:
parent
e3e99cac51
commit
7f7b2c70ce
@ -210,9 +210,13 @@ In diesem Kapitel werden die Attribute beschrieben, die in einer Community zu sp
|
|||||||
|
|
||||||
#### Key
|
#### Key
|
||||||
|
|
||||||
Der *Community-Key* dient zur technisch eindeutigen Identifizierung einer Gradido-Community in dem Multi-Community-Kommunikations Verbund. Der *Key* wird direkt bei der Inbetriebnahme einer neuen Community initialisiert zum Beispiel als UUID und während der Federation mit den schon existierenden Communities ausgetauscht. Falls dabei auffällt, dass schon exakt der gleiche Key für eine andere Community exisitieren sollte, dann wird dieser mit einem neuen Wert initialisiert bis eine Eindeutigkeit hergestellt ist. Der genaue Vorgang dieser *Key*-Initialisierung wird weiter unten im Kapitel "Neue Community erstellen" bzw. im technischen Konzept der Federation beschrieben.
|
Der *Community-Key* dient zur technisch eindeutigen Identifizierung einer Gradido-Community in dem Multi-Community-Kommunikations Verbund. Der *Key* wird direkt bei der Inbetriebnahme einer neuen Community initialisiert - zum Beispiel als UUID oder eine andere aplhanummerische Kennung - und während der Federation mit den schon existierenden Communities ausgetauscht. Falls dabei auffällt, dass schon exakt der gleiche Key für eine andere Community exisitieren sollte, dann wird dieser mit einem neuen Wert initialisiert bis eine Eindeutigkeit im gesamten Community-Verbund hergestellt ist.
|
||||||
|
|
||||||
Die Verwendung des *Community-Key* wird auch zur Identifikation eines in der Community geschöpften Betrages - genannt *Currency-Key* - verwendet, so dass mit jedem Betrag gleichzeitig auch die Zuordnung zur Schöpfungs-Community hergestellt werden kann. Details hierzu siehe Kapitel "Community-Gradido" weiter oben.
|
Die Motivation dieses technischen Schlüssels liegt in der einmaligen Initialisierung bei der Community-Erstellung und in der Unveränderlichkeit danach. Alle anderen möglichen Attribute, die ebenfalls als Schlüssel für eine Community nutzbar wären, wie die URL oder evtl. der Name, können im Laufe der Existenz einer Community verändert werden.
|
||||||
|
|
||||||
|
Der genaue Vorgang dieser *Key*-Initialisierung wird weiter unten im Kapitel "Neue Community erstellen" bzw. im technischen Konzept der Federation beschrieben.
|
||||||
|
|
||||||
|
Die Verwendung des *Community-Key* wird auch zur Identifikation eines in der Community geschöpften Betrages - genannt *Currency-Key* - verwendet, so dass mit jedem Betrag gleichzeitig auch die Zuordnung zur Schöpfungs-Community hergestellt werden kann. Details hierzu siehe Kapitel "*Community-Gradido*" weiter oben.
|
||||||
|
|
||||||
Das Attribut *Key* wird einmalig definiert und kann nicht mehr verändert werden. Es gibt keine Schreibrechte für nachträgliches Ändern, auch nicht von einem Administrator.
|
Das Attribut *Key* wird einmalig definiert und kann nicht mehr verändert werden. Es gibt keine Schreibrechte für nachträgliches Ändern, auch nicht von einem Administrator.
|
||||||
|
|
||||||
@ -282,15 +286,19 @@ Der Prozess *Neue Community erstellen* wird entweder automatisiert beim erstmali
|
|||||||
|
|
||||||
Der oben grafisch dargestellte Ablauf wird in drei grobe Teile untergliedert:
|
Der oben grafisch dargestellte Ablauf wird in drei grobe Teile untergliedert:
|
||||||
|
|
||||||
1. den eigentlichen Community-Prozess "*neue Community erstellen*", in dem die Community spezifischen Attribute erfasst, geladen und/oder angelegt werden. Dazu gehören neben dem Erfassen der Community eigenen Attributen, das Laden von vordefinierten Standard-Daten wie die Tätigkeitsliste, Berechtigungen, etc. und optional als eigenständiger Prozess die Erfassung bzw das Anlegen von neuen Community-Mitgliedern.
|
1. den eigentlichen Community-Prozess "*neue Community erstellen*" (links in grün gehalten), in dem die Community spezifischen Attribute erfasst, geladen und/oder angelegt werden. Dazu gehören neben dem Erfassen der Community eigenen Attributen, das Laden von vordefinierten Standard-Daten wie die Tätigkeitsliste, Berechtigungen, etc. und optional als eigenständiger Prozess die Erfassung bzw das Anlegen von neuen Community-Mitgliedern.
|
||||||
2. das Starten der "*Federation*" als Hintergrundprozess, um die neu erstellte Community im Gradido-Community-Verbund bekannt zu machen. Dabei wird
|
2. das Starten der "*Federation*" als Hintergrundprozess, um die neu erstellte Community im Gradido-Community-Verbund bekannt zu machen. Dabei wird
|
||||||
* als erstes geprüft, ob in der eigenen Community die notwendigen Attribute wie Community-Key, URL und ggf. weitere korrekt initialisiert sind. Falls nicht wird der Hintergrundprozess mit einem Fehler abgebrochen
|
* als erstes geprüft, ob in der eigenen Community die notwendigen Attribute wie Community-Key, URL und ggf. weitere korrekt initialisiert und gespeichert sind. Falls nicht wird der Hintergrundprozess mit einem Fehler abgebrochen
|
||||||
* dann werden die Attribute Community-Key und URL in eine *newCommunity*-Message gepackt und asynchron an den Public-Channel der Community-Federation des Gradido-Community-Verbundes gesendet
|
* dann werden die Attribute Community-Key und URL in eine *newCommunity*-Message gepackt und asynchron an den Public-Channel der Community-Federation des Gradido-Community-Verbundes gesendet
|
||||||
* Im Anschluss lauscht der Federation-Prozess auf eingehende Messages vom Typ *replyNewCommunity*-Message und *newCommunity*-Message.
|
* Im Anschluss geht der Federation-Prozess in den "Lausch-Modus" auf eingehende Messages am *Public-Channel*. Die Verarbeitung von eingehenden Messages muss so sichergestellt werden, dass einerseits keine Message verloren geht auch bei DownTimes und andererseits, dass eine Message erst aus dem Public-Channel gelöscht wird, sobald diese vollständig abgearbeitet ist. Der Federation-Prozess lauscht auf Messages vom Typ *replyNewCommunity* und *newCommunity*, die bei Empfang entsprechend verarbeitet werden:
|
||||||
* Der Messagetyp *replyNewCommunity*-Message wird von allen schon existierenden Communities als Antwort auf die zuvor gesendete *newCommunity*-Message erwartet. Dabei muss jede empfangene *replyNewCommunity*-Message verarbeitet werden und darf nicht verloren gehen, falls beispielsweise der Federation-Prozess zwischenzeitlich einmal nicht aktiv wäre. Die erhaltenen Daten - Community-Key und URL - einer antwortenden Community per *replyNewCommunity*-Message werden in der internen Liste für "*bekannte Communities*" gespeichert. Jeder neu gespeicherte Community-Eintrag dieser Liste startet entweder sofort oder zeitversetzt den letzten Schritt der Federation als Direkt-Verbindung zum weiteren Community-Daten-Handshake.
|
* *replyNewCommunity*-Messages werden auf die zuvor gesendete *newCommunity*-Message als Antwort von allen anderen schon im Verbund existierenden Communities erwartet. Je nach MessageState erfolgt eine unterschiedliche Weiterverarbeitung:
|
||||||
* Der Messagetyp *newCommunity*-Message wird von allen neu erstellten Communities im Rahmen derer Federation in den Public-Channel gesendet und muss zeitnah von der eigenen Community beantwortet werden. Dazu werden die eigenen Daten *Community-Ke*y und *URL* in eine *replyNewCommunity*-Message gepackt und direkt in den Public-Channel zurückgesendet. Danach wird wieder weiter an dem Public-Channel nach weiteren eingehende Messages gelauscht.
|
* Ist der *MessageState = OK*, dann werden die erhaltenen Daten - Community-Key und URL - von der antwortenden Community in der Community-Datenbank als internen Liste für "*bekannte Communities*" gespeichert. Nach dem Speichern eines neue Community-Eintrags in dieser Liste wird asynchron der dritten und letzten Schritt der Federation *"Community-Communication"* als Hintergrundprozess getriggert und geht dann wieder zurück in den "Lausch-Modus" am Public-Channel.
|
||||||
3. und die *"Community-Communication"* , die die direkte Kommunikation zwischen zwei Communities aufbaut, um die Details der neuen Community mit den sich zurückgemeldeten Communities auszutauschen.
|
* Ist der MessageState = requestNewKey, dann erfolgt eine Neugenerierung und Speicherung des eigenen Community-Keys, der dann erneut als *newCommunity*-Message auf den Public-Channel verschickt wird. Danach geht der Federation-Prozess wieder in den "Lauch-Modus", um auf Anworten der existierenden Communities zu warten.
|
||||||
4.
|
* *newCommunity*-Messages werden von neu erstellten Communities im Rahmen derer Federation in den Public-Channel gesendet. Diese Messages sollten möglichst zeitnah von möglichst vielen schon existierenden Communities beantwortet werden. Dazu wird zuerst in der Community-Datenbank nach Einträgen gesucht, die den gleichen Community-Key aber eine unterschiedliche URL als zu den empfangenen Daten haben:
|
||||||
|
* Sollte es einen solchen Eintrag geben, dann wird eine *replyNewCommunity*-Message erzeugt mit *MessageState = requestNewKey* und ohne weitere Daten in den Public-Channel zurückgesendet. Danach wird wieder in den "Lausch-Modus" am Public-Channel gewechselt.
|
||||||
|
* Sollte es keine solche Einträge geben, dann werden die eigenen Daten *Community-Ke*y und *URL* in eine *replyNewCommunity*-Message gepackt, der *MessageState = OK* gesetzt und direkt in den Public-Channel zurückgesendet. Danach wird wieder in den "Lausch-Modus" am Public-Channel gewechselt.
|
||||||
|
3. und die *"Community-Communication"* als Hintergrundprozess. Dieser liest zuerst die eigenen Community-Daten und geht dann per Direkt-Verbindung über die URL mit der neuen Community in Dialog, um die Community spezifischen Daten untereinander auszutauschen. Die genaue Beschreibung der dazu verwendeten APIs beider Communities erfolgt in der technischen Konzeption [CommunityCommunication](../TechnicalRequirements/CommunityCommunication.md).
|
||||||
|
|
||||||
|
|
||||||
#### Ende Status
|
#### Ende Status
|
||||||
|
|
||||||
|
|||||||
BIN
docu/Concepts/BusinessRequirements/CommunityVerwaltung.pdf
Normal file
BIN
docu/Concepts/BusinessRequirements/CommunityVerwaltung.pdf
Normal file
Binary file not shown.
@ -1,17 +1,17 @@
|
|||||||
<mxfile host="65bd71144e">
|
<mxfile host="65bd71144e">
|
||||||
<diagram id="Lc_Wy6ZhKx3Be9Prl_QG" name="Page-1">
|
<diagram id="Lc_Wy6ZhKx3Be9Prl_QG" name="Page-1">
|
||||||
<mxGraphModel dx="544" dy="400" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1654" pageHeight="1169" math="0" shadow="0">
|
<mxGraphModel dx="1088" dy="800" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1654" pageHeight="1169" math="0" shadow="0">
|
||||||
<root>
|
<root>
|
||||||
<mxCell id="0"/>
|
<mxCell id="0"/>
|
||||||
<mxCell id="1" parent="0"/>
|
<mxCell id="1" parent="0"/>
|
||||||
<mxCell id="28" value="<b>Gradido-Anwendung</b>" style="html=1;align=left;verticalAlign=top;absoluteArcSize=1;arcSize=18;dashed=0;spacingTop=10;spacingRight=30;strokeColor=#82b366;strokeWidth=2;fillColor=#d5e8d4;gradientColor=#97d077;fontColor=#000000;rounded=1;" parent="1" vertex="1">
|
<mxCell id="28" value="<b>Gradido-Anwendung</b>" style="html=1;align=left;verticalAlign=top;absoluteArcSize=1;arcSize=18;dashed=0;spacingTop=10;spacingRight=30;strokeColor=#82b366;strokeWidth=2;fillColor=#d5e8d4;gradientColor=#97d077;fontColor=#000000;rounded=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="40" y="130" width="1220" height="910" as="geometry"/>
|
<mxGeometry x="40" y="130" width="1220" height="990" as="geometry"/>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="108" value="Community-Prozess" style="html=1;align=left;verticalAlign=top;absoluteArcSize=1;arcSize=18;dashed=0;spacingTop=10;spacingRight=30;strokeColor=#005700;strokeWidth=2;fillColor=#008a00;fontColor=#ffffff;rounded=1;" vertex="1" parent="1">
|
<mxCell id="108" value="Community-Prozess" style="html=1;align=left;verticalAlign=top;absoluteArcSize=1;arcSize=18;dashed=0;spacingTop=10;spacingRight=30;strokeColor=#005700;strokeWidth=2;fillColor=#008a00;fontColor=#ffffff;rounded=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="110" y="180" width="240" height="640" as="geometry"/>
|
<mxGeometry x="110" y="180" width="240" height="640" as="geometry"/>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="27" value="Prozess: <b>Federation</b>" style="html=1;align=left;verticalAlign=top;absoluteArcSize=1;arcSize=18;dashed=0;spacingTop=10;spacingRight=30;strokeColor=#6c8ebf;strokeWidth=2;fillColor=#dae8fc;gradientColor=#7ea6e0;fontColor=#000000;rounded=1;" parent="1" vertex="1">
|
<mxCell id="27" value="Hintergrund-Prozess: <b>Federation</b>" style="html=1;align=left;verticalAlign=top;absoluteArcSize=1;arcSize=18;dashed=0;spacingTop=10;spacingRight=30;strokeColor=#6c8ebf;strokeWidth=2;fillColor=#dae8fc;gradientColor=#7ea6e0;fontColor=#000000;rounded=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="610" y="264.5" width="640" height="555.5" as="geometry"/>
|
<mxGeometry x="610" y="264.5" width="640" height="645.5" as="geometry"/>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="30" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontColor=#000000;strokeColor=#000000;" parent="1" source="2" target="4" edge="1">
|
<mxCell id="30" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontColor=#000000;strokeColor=#000000;" parent="1" source="2" target="4" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
@ -65,14 +65,6 @@
|
|||||||
<mxCell id="5" value="Attribute der Community erfassen <br>bzw. aus Config lesen<br><div style="text-align: left"><span>- Name</span></div><div style="text-align: left"><span>- Icon / Bild (opt.)</span></div><div style="text-align: left"><span>- Beschreibung</span></div><div style="text-align: left"><span>- hosted Server / URL</span></div><div style="text-align: left"><span>- Währungsname (opt.)</span></div><div style="text-align: left"><span>- Währungskürzel (opt.)</span></div>" style="html=1;align=center;verticalAlign=top;absoluteArcSize=1;arcSize=10;dashed=0;fillColor=#60a917;strokeColor=#2D7600;fontColor=#ffffff;rounded=1;" parent="1" vertex="1">
|
<mxCell id="5" value="Attribute der Community erfassen <br>bzw. aus Config lesen<br><div style="text-align: left"><span>- Name</span></div><div style="text-align: left"><span>- Icon / Bild (opt.)</span></div><div style="text-align: left"><span>- Beschreibung</span></div><div style="text-align: left"><span>- hosted Server / URL</span></div><div style="text-align: left"><span>- Währungsname (opt.)</span></div><div style="text-align: left"><span>- Währungskürzel (opt.)</span></div>" style="html=1;align=center;verticalAlign=top;absoluteArcSize=1;arcSize=10;dashed=0;fillColor=#60a917;strokeColor=#2D7600;fontColor=#ffffff;rounded=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="130" y="280" width="200" height="120" as="geometry"/>
|
<mxGeometry x="130" y="280" width="200" height="120" as="geometry"/>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="12" value="" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeColor=#000000;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="24" target="13" edge="1">
|
|
||||||
<mxGeometry relative="1" as="geometry">
|
|
||||||
<mxPoint x="520" y="420" as="targetPoint"/>
|
|
||||||
<Array as="points">
|
|
||||||
<mxPoint x="450" y="451"/>
|
|
||||||
</Array>
|
|
||||||
</mxGeometry>
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="51" value="" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#1A1A1A;" parent="1" source="7" target="50" edge="1">
|
<mxCell id="51" value="" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#1A1A1A;" parent="1" source="7" target="50" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry"/>
|
<mxGeometry relative="1" as="geometry"/>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
@ -82,21 +74,20 @@
|
|||||||
<mxCell id="17" value="" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#000000;" parent="1" source="13" target="16" edge="1">
|
<mxCell id="17" value="" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#000000;" parent="1" source="13" target="16" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry"/>
|
<mxGeometry relative="1" as="geometry"/>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="70" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fontSize=14;fontColor=#000000;strokeColor=#1A1A1A;" parent="1" source="13" target="72" edge="1">
|
<mxCell id="70" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fontSize=14;fontColor=#000000;strokeColor=#1A1A1A;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="13" target="72" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<Array as="points">
|
<Array as="points">
|
||||||
<mxPoint x="785" y="364.5"/>
|
<mxPoint x="755" y="365"/>
|
||||||
<mxPoint x="785" y="364.5"/>
|
|
||||||
</Array>
|
</Array>
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="74" value="Nein" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontColor=#000000;labelBackgroundColor=#B0E3E6;rounded=1;" parent="70" vertex="1" connectable="0">
|
<mxCell id="74" value="Nein" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=10;fontColor=#000000;labelBackgroundColor=#B0E3E6;rounded=1;" parent="70" vertex="1" connectable="0">
|
||||||
<mxGeometry x="-0.2906" y="-1" relative="1" as="geometry">
|
<mxGeometry x="-0.2906" y="-1" relative="1" as="geometry">
|
||||||
<mxPoint as="offset"/>
|
<mxPoint x="-1" y="-4" as="offset"/>
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="13" value="Community-Attribute: (Community-Key, URL, etc.) vorhanden?" style="rhombus;fillColor=#b0e3e6;strokeColor=#0e8088;fontColor=#000000;align=center;rounded=1;" parent="1" vertex="1">
|
<mxCell id="13" value="Community-Attribute: (Community-Key, URL, etc.) vorhanden?" style="rhombus;fillColor=#b0e3e6;strokeColor=#0e8088;fontColor=#000000;align=center;rounded=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="690" y="410.5" width="190" height="80" as="geometry"/>
|
<mxGeometry x="660" y="410" width="190" height="80" as="geometry"/>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="19" value="" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#000000;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="16" target="20" edge="1">
|
<mxCell id="19" value="" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#000000;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="16" target="20" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
@ -106,25 +97,22 @@
|
|||||||
<mxCell id="16" value="Sende "<b>newCommunity-Msg"</b><br>mit Community-Key und URL<br>auf public Channel" style="html=1;align=center;verticalAlign=top;absoluteArcSize=1;arcSize=10;dashed=0;fillColor=#b0e3e6;strokeColor=#0e8088;fontColor=#000000;rounded=1;" parent="1" vertex="1">
|
<mxCell id="16" value="Sende "<b>newCommunity-Msg"</b><br>mit Community-Key und URL<br>auf public Channel" style="html=1;align=center;verticalAlign=top;absoluteArcSize=1;arcSize=10;dashed=0;fillColor=#b0e3e6;strokeColor=#0e8088;fontColor=#000000;rounded=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="960" y="420" width="210" height="60" as="geometry"/>
|
<mxGeometry x="960" y="420" width="210" height="60" as="geometry"/>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="83" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=14;fontColor=#000000;strokeColor=#1A1A1A;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="20" target="80" edge="1">
|
<mxCell id="83" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=14;fontColor=#000000;strokeColor=#1A1A1A;exitX=0.329;exitY=1.013;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitPerimeter=0;" parent="1" source="20" target="80" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry"/>
|
<mxGeometry relative="1" as="geometry"/>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="20" value="lausche an public Channel<br>auf<br>"<b>replyNewCommuntiy-Msg</b>"<br>"<b>newCommuntiy-Msg</b>"" style="html=1;align=center;verticalAlign=top;absoluteArcSize=1;arcSize=10;dashed=0;fillColor=#b0e3e6;strokeColor=#0e8088;fontColor=#000000;rounded=1;" parent="1" vertex="1">
|
<mxCell id="20" value="<i>"Lausch-Modus"</i> an public Channel<br>auf<br>"<b>replyNewCommuntiy-Msg</b>"<br>"<b>newCommuntiy-Msg</b>"" style="html=1;align=center;verticalAlign=top;absoluteArcSize=1;arcSize=10;dashed=0;fillColor=#b0e3e6;strokeColor=#0e8088;fontColor=#000000;rounded=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="960" y="511.62999999999994" width="210" height="65" as="geometry"/>
|
<mxGeometry x="960" y="511.62999999999994" width="210" height="65" as="geometry"/>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="25" value="" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#000000;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="22" target="20" edge="1">
|
<mxCell id="132" style="edgeStyle=none;html=1;entryX=0.75;entryY=0;entryDx=0;entryDy=0;fontSize=10;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="22" target="131">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<Array as="points">
|
<Array as="points">
|
||||||
<mxPoint x="910" y="544"/>
|
<mxPoint x="715" y="770"/>
|
||||||
<mxPoint x="910" y="544"/>
|
<mxPoint x="728" y="770"/>
|
||||||
</Array>
|
</Array>
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="22" value="speichere empfangene<br>Community-Daten in<br>Community-DB" style="html=1;align=center;verticalAlign=top;absoluteArcSize=1;arcSize=10;dashed=0;fillColor=#b0e3e6;strokeColor=#0e8088;fontColor=#000000;rounded=1;" parent="1" vertex="1">
|
<mxCell id="22" value="speichere empfangene<br>Community-Daten in<br>Community-DB" style="html=1;align=center;verticalAlign=top;absoluteArcSize=1;arcSize=10;dashed=0;fillColor=#b0e3e6;strokeColor=#0e8088;fontColor=#000000;rounded=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="690" y="516.6299999999999" width="210" height="55" as="geometry"/>
|
<mxGeometry x="650" y="664.44" width="130" height="55" as="geometry"/>
|
||||||
</mxCell>
|
|
||||||
<mxCell id="24" value="Starte "Federation"<br>als Hintergrundprozess" style="html=1;align=center;verticalAlign=top;absoluteArcSize=1;arcSize=10;dashed=0;fillColor=#008a00;strokeColor=#005700;fontColor=#ffffff;rounded=1;" parent="1" vertex="1">
|
|
||||||
<mxGeometry x="360" y="625.63" width="180" height="39.5" as="geometry"/>
|
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="37" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;fontColor=#000000;strokeColor=#000000;" parent="1" source="34" target="36" edge="1">
|
<mxCell id="37" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;fontColor=#000000;strokeColor=#000000;" parent="1" source="34" target="36" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry"/>
|
<mxGeometry relative="1" as="geometry"/>
|
||||||
@ -166,7 +154,7 @@
|
|||||||
<mxGeometry x="330" y="874.5" width="200" height="40" as="geometry"/>
|
<mxGeometry x="330" y="874.5" width="200" height="40" as="geometry"/>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="43" value="" style="ellipse;html=1;shape=endState;fillColor=#000000;strokeColor=#000000;labelBackgroundColor=#97D077;fontColor=#FFFFFF;rounded=1;" parent="1" vertex="1">
|
<mxCell id="43" value="" style="ellipse;html=1;shape=endState;fillColor=#000000;strokeColor=#000000;labelBackgroundColor=#97D077;fontColor=#FFFFFF;rounded=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="185" y="1060" width="30" height="30" as="geometry"/>
|
<mxGeometry x="185" y="1139" width="30" height="30" as="geometry"/>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="53" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0.514;entryDx=0;entryDy=0;entryPerimeter=0;strokeColor=#1A1A1A;" parent="1" source="50" target="52" edge="1">
|
<mxCell id="53" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0.514;entryDx=0;entryDy=0;entryPerimeter=0;strokeColor=#1A1A1A;" parent="1" source="50" target="52" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry"/>
|
<mxGeometry relative="1" as="geometry"/>
|
||||||
@ -174,11 +162,13 @@
|
|||||||
<mxCell id="50" value="speichere Community-Daten <br>in Community-DB" style="html=1;align=center;verticalAlign=top;absoluteArcSize=1;arcSize=10;dashed=0;fillColor=#60a917;strokeColor=#2D7600;fontColor=#ffffff;rounded=1;" parent="1" vertex="1">
|
<mxCell id="50" value="speichere Community-Daten <br>in Community-DB" style="html=1;align=center;verticalAlign=top;absoluteArcSize=1;arcSize=10;dashed=0;fillColor=#60a917;strokeColor=#2D7600;fontColor=#ffffff;rounded=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="130" y="503.13" width="200" height="39.5" as="geometry"/>
|
<mxGeometry x="130" y="503.13" width="200" height="39.5" as="geometry"/>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="54" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#1A1A1A;exitX=1.274;exitY=0.127;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="52" target="24" edge="1">
|
<mxCell id="54" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#1A1A1A;exitX=1.274;exitY=0.127;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="52" target="75" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<Array as="points">
|
<Array as="points">
|
||||||
<mxPoint x="302" y="645"/>
|
<mxPoint x="302" y="645"/>
|
||||||
|
<mxPoint x="450" y="645"/>
|
||||||
</Array>
|
</Array>
|
||||||
|
<mxPoint x="360" y="645.3800000000001" as="targetPoint"/>
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="55" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeColor=#1A1A1A;exitX=1.224;exitY=0.678;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="52" target="34" edge="1">
|
<mxCell id="55" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeColor=#1A1A1A;exitX=1.224;exitY=0.678;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="52" target="34" edge="1">
|
||||||
@ -201,61 +191,49 @@
|
|||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="72" value="Fehlermeldung <br>wegen<br>fehlender Parameter" style="html=1;align=center;verticalAlign=top;absoluteArcSize=1;arcSize=10;dashed=0;strokeColor=#2D7600;fillColor=#B0E3E6;fontColor=#000000;rounded=1;" parent="1" vertex="1">
|
<mxCell id="72" value="Fehlermeldung <br>wegen<br>fehlender Parameter" style="html=1;align=center;verticalAlign=top;absoluteArcSize=1;arcSize=10;dashed=0;strokeColor=#2D7600;fillColor=#B0E3E6;fontColor=#000000;rounded=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="725" y="314.5" width="120" height="50" as="geometry"/>
|
<mxGeometry x="695" y="315" width="120" height="50" as="geometry"/>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="76" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=14;fontColor=#000000;strokeColor=#1A1A1A;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="75" target="13" edge="1">
|
<mxCell id="129" style="edgeStyle=none;html=1;entryX=0.029;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;fontSize=10;" edge="1" parent="1" source="75" target="13">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry"/>
|
||||||
<Array as="points">
|
|
||||||
<mxPoint x="450" y="451"/>
|
|
||||||
</Array>
|
|
||||||
</mxGeometry>
|
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="75" value="Starte <b>"Federation"</b><br>als Hintergrundprozess" style="html=1;align=center;verticalAlign=top;absoluteArcSize=1;arcSize=10;dashed=0;fillColor=#008a00;strokeColor=#005700;fontColor=#ffffff;rounded=1;" parent="1" vertex="1">
|
<mxCell id="75" value="Starte <b>"Federation"</b><br>als Hintergrundprozess" style="html=1;align=center;verticalAlign=top;absoluteArcSize=1;arcSize=10;dashed=0;fillColor=#008a00;strokeColor=#005700;fontColor=#ffffff;rounded=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="360" y="220" width="180" height="39.5" as="geometry"/>
|
<mxGeometry x="360" y="430.25" width="180" height="39.5" as="geometry"/>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="79" value="<font style="font-size: 12px">newCommunity-Msg</font>" style="html=1;shape=mxgraph.infographic.ribbonSimple;notch1=20;notch2=0;align=left;verticalAlign=middle;fontSize=14;fontStyle=0;flipH=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#000000;rounded=1;rotation=0;" parent="1" vertex="1">
|
<mxCell id="79" value="<font style="font-size: 12px">newCommunity-Msg</font>" style="html=1;shape=mxgraph.infographic.ribbonSimple;notch1=20;notch2=0;align=left;verticalAlign=middle;fontSize=14;fontStyle=0;flipH=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#000000;rounded=1;rotation=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1180.01" y="546.39" width="160" height="20" as="geometry"/>
|
<mxGeometry x="1180.01" y="546.39" width="160" height="20" as="geometry"/>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="81" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fontSize=14;fontColor=#000000;strokeColor=#1A1A1A;" parent="1" source="80" target="22" edge="1">
|
<mxCell id="81" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.965;entryY=0.489;entryDx=0;entryDy=0;fontSize=14;fontColor=#000000;strokeColor=#1A1A1A;exitX=0.026;exitY=0.498;exitDx=0;exitDy=0;exitPerimeter=0;entryPerimeter=0;" parent="1" source="80" target="123" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry"/>
|
<mxGeometry relative="1" as="geometry"/>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="82" value="Ja" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontColor=#000000;labelBackgroundColor=#7EA6E0;" parent="81" vertex="1" connectable="0">
|
<mxCell id="82" value="Ja" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=10;fontColor=#000000;labelBackgroundColor=#7EA6E0;" parent="81" vertex="1" connectable="0">
|
||||||
<mxGeometry x="-0.4267" y="2" relative="1" as="geometry">
|
<mxGeometry x="-0.4267" y="2" relative="1" as="geometry">
|
||||||
<mxPoint as="offset"/>
|
<mxPoint as="offset"/>
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="85" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontSize=14;fontColor=#000000;strokeColor=#1A1A1A;" parent="1" source="80" target="84" edge="1">
|
<mxCell id="112" value="" style="edgeStyle=none;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="80" target="84">
|
||||||
<mxGeometry relative="1" as="geometry"/>
|
<mxGeometry relative="1" as="geometry"/>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="80" value="replyNewCommunityMsg?" style="rhombus;fillColor=#b0e3e6;strokeColor=#0e8088;fontColor=#000000;align=center;rounded=1;" parent="1" vertex="1">
|
<mxCell id="80" value="Type replyNewCommunityMsg? " style="rhombus;fillColor=#b0e3e6;strokeColor=#0e8088;fontColor=#000000;align=center;rounded=1;fontSize=10;" parent="1" vertex="1">
|
||||||
<mxGeometry x="918" y="593.89" width="190" height="47.87" as="geometry"/>
|
<mxGeometry x="950" y="673.89" width="158" height="36.11" as="geometry"/>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="93" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;fontSize=14;fontColor=#000000;strokeColor=#1A1A1A;exitX=0.499;exitY=0.966;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="84" target="86" edge="1">
|
<mxCell id="111" value="" style="edgeStyle=none;html=1;exitX=0.032;exitY=0.484;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="84" target="110">
|
||||||
|
<mxGeometry relative="1" as="geometry"/>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="84" value="Type newCommunityMsg? " style="rhombus;fillColor=#b0e3e6;strokeColor=#0e8088;fontColor=#000000;align=center;rounded=1;fontSize=10;" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="950" y="740.06" width="158" height="34.87" as="geometry"/>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="94" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=14;fontColor=#000000;strokeColor=#1A1A1A;exitX=0.845;exitY=0.011;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.805;entryY=0.99;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="86" target="20" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<mxPoint x="1065" y="717.8699999999999" as="sourcePoint"/>
|
<mxPoint x="1130" y="577" as="targetPoint"/>
|
||||||
|
<Array as="points"/>
|
||||||
|
<mxPoint x="1130" y="700.63" as="sourcePoint"/>
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="96" value="Ja" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontColor=#000000;labelBackgroundColor=#7EA6E0;" parent="93" vertex="1" connectable="0">
|
<mxCell id="86" value="Sende "<b>replyNewCommunity-Msg</b>"<br>mit Msg-State&nbsp;<b>"requestNewKey"</b><br>auf public Channel" style="html=1;align=center;verticalAlign=top;absoluteArcSize=1;arcSize=10;dashed=0;fillColor=#b0e3e6;strokeColor=#0e8088;fontColor=#000000;rounded=1;fontSize=10;" parent="1" vertex="1">
|
||||||
<mxGeometry x="-0.2741" y="-1" relative="1" as="geometry">
|
<mxGeometry x="960" y="796.93" width="200" height="50" as="geometry"/>
|
||||||
<mxPoint as="offset"/>
|
|
||||||
</mxGeometry>
|
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="84" value="NewCommunityMsg?" style="rhombus;fillColor=#b0e3e6;strokeColor=#0e8088;fontColor=#000000;align=center;rounded=1;" parent="1" vertex="1">
|
<mxCell id="89" value="replyNewCommunity-Msg" style="html=1;shape=mxgraph.infographic.ribbonSimple;notch1=0;notch2=20;align=left;verticalAlign=middle;fontSize=14;fontStyle=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#000000;rounded=1;rotation=-50;" parent="1" vertex="1">
|
||||||
<mxGeometry x="918" y="655.13" width="190" height="47.87" as="geometry"/>
|
<mxGeometry x="1144.39" y="723.3" width="242.49" height="20" as="geometry"/>
|
||||||
</mxCell>
|
|
||||||
<mxCell id="94" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=14;fontColor=#000000;strokeColor=#1A1A1A;exitX=0.895;exitY=-0.02;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="86" edge="1">
|
|
||||||
<mxGeometry relative="1" as="geometry">
|
|
||||||
<mxPoint x="1148" y="577" as="targetPoint"/>
|
|
||||||
<Array as="points">
|
|
||||||
<mxPoint x="1148" y="577"/>
|
|
||||||
</Array>
|
|
||||||
</mxGeometry>
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="86" value="Sende "<b>replyNewCommunity-Msg</b>"<br>mit Community-Key und URL<br>auf public Channel" style="html=1;align=center;verticalAlign=top;absoluteArcSize=1;arcSize=10;dashed=0;fillColor=#b0e3e6;strokeColor=#0e8088;fontColor=#000000;rounded=1;" parent="1" vertex="1">
|
|
||||||
<mxGeometry x="960" y="730" width="210" height="50" as="geometry"/>
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="89" value="replyNewCommunity-Msg" style="html=1;shape=mxgraph.infographic.ribbonSimple;notch1=0;notch2=20;align=left;verticalAlign=middle;fontSize=14;fontStyle=0;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#000000;rounded=1;rotation=-45;" parent="1" vertex="1">
|
|
||||||
<mxGeometry x="1179.98" y="657.38" width="180.01" height="20" as="geometry"/>
|
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="97" value="" style="group" parent="1" vertex="1" connectable="0">
|
<mxCell id="97" value="" style="group" parent="1" vertex="1" connectable="0">
|
||||||
<mxGeometry x="1359.9950000000001" y="460.0049999999999" width="232.6199999999999" height="182.6300000000001" as="geometry"/>
|
<mxGeometry x="1359.9950000000001" y="460.0049999999999" width="232.6199999999999" height="182.6300000000001" as="geometry"/>
|
||||||
@ -266,44 +244,136 @@
|
|||||||
<mxCell id="66" value="public Channel" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;fontColor=#000000;fontSize=14;rounded=1;" parent="97" vertex="1">
|
<mxCell id="66" value="public Channel" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;fontColor=#000000;fontSize=14;rounded=1;" parent="97" vertex="1">
|
||||||
<mxGeometry x="96.30500000000006" y="74.99500000000012" width="40" height="20" as="geometry"/>
|
<mxGeometry x="96.30500000000006" y="74.99500000000012" width="40" height="20" as="geometry"/>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="98" value="Prozess: <b>Community-Communication</b>" style="html=1;align=left;verticalAlign=top;absoluteArcSize=1;arcSize=18;dashed=0;spacingTop=10;spacingRight=30;strokeColor=#6c8ebf;strokeWidth=2;fillColor=#dae8fc;gradientColor=#7ea6e0;fontColor=#000000;rounded=1;" parent="1" vertex="1">
|
<mxCell id="98" value="Hintergrund-Prozess: <b>Community-Communication</b>" style="html=1;align=left;verticalAlign=top;absoluteArcSize=1;arcSize=18;dashed=0;spacingTop=10;spacingRight=30;strokeColor=#6c8ebf;strokeWidth=2;fillColor=#dae8fc;gradientColor=#7ea6e0;fontColor=#000000;rounded=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="610" y="834.5" width="640" height="185.5" as="geometry"/>
|
<mxGeometry x="610" y="920" width="640" height="185.5" as="geometry"/>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="106" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;fontSize=14;fontColor=#000000;strokeColor=#1A1A1A;fillColor=#ffffff;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="99" target="105" edge="1">
|
<mxCell id="106" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;fontSize=14;fontColor=#000000;strokeColor=#1A1A1A;fillColor=#ffffff;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="99" target="105" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry"/>
|
<mxGeometry relative="1" as="geometry"/>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="99" value="stelle P2P-Verbindung zu <br>neuer Community her<br>und tausche detailiete Daten aus" style="html=1;align=center;verticalAlign=top;absoluteArcSize=1;arcSize=10;dashed=0;fillColor=#b0e3e6;strokeColor=#0e8088;fontColor=#000000;rounded=1;" parent="1" vertex="1">
|
<mxCell id="99" value="stelle Direkt-Verbindung zu <br>neuer Community über URL her<br>und tausche detaillierte Daten aus" style="html=1;align=center;verticalAlign=top;absoluteArcSize=1;arcSize=10;dashed=0;fillColor=#b0e3e6;strokeColor=#0e8088;fontColor=#000000;rounded=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="974.99" y="881" width="210" height="67" as="geometry"/>
|
<mxGeometry x="975" y="957.25" width="205.01" height="60" as="geometry"/>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="102" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=14;fontColor=#000000;strokeColor=#1A1A1A;" parent="1" source="100" target="99" edge="1">
|
<mxCell id="101" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=14;fontColor=#000000;strokeColor=#1A1A1A;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="131" target="134" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry"/>
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="100" value="Daten einer neuen Community erhalten?" style="rhombus;fillColor=#b0e3e6;strokeColor=#0e8088;fontColor=#000000;align=center;rounded=1;" parent="1" vertex="1">
|
|
||||||
<mxGeometry x="637" y="874.5" width="190" height="80" as="geometry"/>
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="101" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontSize=14;fontColor=#000000;strokeColor=#1A1A1A;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="22" target="100" edge="1">
|
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<Array as="points">
|
<Array as="points">
|
||||||
<mxPoint x="670" y="544"/>
|
<mxPoint x="695" y="988"/>
|
||||||
<mxPoint x="670" y="790"/>
|
|
||||||
<mxPoint x="732" y="790"/>
|
|
||||||
</Array>
|
</Array>
|
||||||
|
<mxPoint x="732" y="960" as="targetPoint"/>
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="103" value="" style="shape=flexArrow;endArrow=classic;startArrow=classic;html=1;fontSize=14;fontColor=#000000;strokeColor=#1A1A1A;fillColor=#ffffff;" parent="1" edge="1">
|
<mxCell id="103" value="" style="shape=flexArrow;endArrow=classic;startArrow=classic;html=1;fontSize=14;fontColor=#000000;strokeColor=#1A1A1A;fillColor=#ffffff;" parent="1" edge="1">
|
||||||
<mxGeometry width="100" height="100" relative="1" as="geometry">
|
<mxGeometry width="100" height="100" relative="1" as="geometry">
|
||||||
<mxPoint x="1190.01" y="914" as="sourcePoint"/>
|
<mxPoint x="1190.64" y="987" as="sourcePoint"/>
|
||||||
<mxPoint x="1340.01" y="914" as="targetPoint"/>
|
<mxPoint x="1340.64" y="987" as="targetPoint"/>
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="104" value="neue Community" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontSize=14;fontColor=#000000;fillColor=#B0E3E6;align=center;gradientColor=#97D077;" parent="1" vertex="1">
|
<mxCell id="104" value="neue Community" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fontSize=14;fontColor=#000000;fillColor=#B0E3E6;align=center;gradientColor=#97D077;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1359.99" y="840" width="240.01" height="160" as="geometry"/>
|
<mxGeometry x="1356.3" y="907.25" width="240.01" height="160" as="geometry"/>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="107" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fontSize=14;fontColor=#000000;strokeColor=#1A1A1A;fillColor=#ffffff;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="105" target="100" edge="1">
|
<mxCell id="136" style="edgeStyle=none;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontSize=10;" edge="1" parent="1" source="105" target="43">
|
||||||
<mxGeometry relative="1" as="geometry"/>
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<Array as="points">
|
||||||
|
<mxPoint x="200" y="1068"/>
|
||||||
|
</Array>
|
||||||
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="105" value="speichere empfangene<br>Community-Daten in<br>Community-DB" style="html=1;align=center;verticalAlign=top;absoluteArcSize=1;arcSize=10;dashed=0;fillColor=#b0e3e6;strokeColor=#0e8088;fontColor=#000000;rounded=1;" parent="1" vertex="1">
|
<mxCell id="105" value="speichere empfangene<br>Community-Daten in<br>Community-DB" style="html=1;align=center;verticalAlign=top;absoluteArcSize=1;arcSize=10;dashed=0;fillColor=#b0e3e6;strokeColor=#0e8088;fontColor=#000000;rounded=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="810" y="954.5" width="150" height="55" as="geometry"/>
|
<mxGeometry x="730" y="1040" width="180" height="55" as="geometry"/>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="114" value="" style="edgeStyle=none;html=1;fontSize=10;exitX=0.963;exitY=0.51;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="109" target="86">
|
||||||
|
<mxGeometry relative="1" as="geometry"/>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="115" value="Ja" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=10;labelBackgroundColor=#7EA6E0;" vertex="1" connectable="0" parent="114">
|
||||||
|
<mxGeometry x="0.3135" relative="1" as="geometry">
|
||||||
|
<mxPoint x="-7" as="offset"/>
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="109" value="Community-Eintrag gefunden?" style="rhombus;fillColor=#b0e3e6;strokeColor=#0e8088;fontColor=#000000;align=center;rounded=1;fontSize=10;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="750" y="798" width="150" height="47.87" as="geometry"/>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="113" value="" style="edgeStyle=none;html=1;fontSize=10;" edge="1" parent="1" source="110" target="109">
|
||||||
|
<mxGeometry relative="1" as="geometry"/>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="110" value="suche in Community-DB<br style="font-size: 10px">nach empfangenem<br style="font-size: 10px">Community-Key aber mit<br>unterschiedlicher URL" style="html=1;align=center;verticalAlign=top;absoluteArcSize=1;arcSize=10;dashed=0;fillColor=#b0e3e6;strokeColor=#0e8088;fontColor=#000000;rounded=1;fontSize=10;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="750" y="730" width="150" height="55" as="geometry"/>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="116" value="Sende "<b>replyNewCommunity-Msg</b>"<br>mit Msg-State&nbsp;<b>"OK"</b>&nbsp;und eigenem Community-Key<br>und URL auf public Channel" style="html=1;align=center;verticalAlign=top;absoluteArcSize=1;arcSize=10;dashed=0;fillColor=#b0e3e6;strokeColor=#0e8088;fontColor=#000000;rounded=1;fontSize=10;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="960" y="855" width="230" height="50" as="geometry"/>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="117" value="" style="edgeStyle=none;html=1;fontSize=10;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="109" target="116">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="894.45" y="785.4837000000002" as="sourcePoint"/>
|
||||||
|
<Array as="points">
|
||||||
|
<mxPoint x="825" y="880"/>
|
||||||
|
</Array>
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="118" value="Nein" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=10;labelBackgroundColor=#7EA6E0;" vertex="1" connectable="0" parent="117">
|
||||||
|
<mxGeometry x="0.3135" relative="1" as="geometry">
|
||||||
|
<mxPoint x="-7" as="offset"/>
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="122" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=14;fontColor=#000000;strokeColor=#1A1A1A;entryX=0.908;entryY=0.998;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.909;exitY=-0.02;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="116" target="20">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="1140" y="586.63" as="targetPoint"/>
|
||||||
|
<Array as="points">
|
||||||
|
<mxPoint x="1169" y="780"/>
|
||||||
|
<mxPoint x="1151" y="780"/>
|
||||||
|
</Array>
|
||||||
|
<mxPoint x="1140" y="710.6300000000001" as="sourcePoint"/>
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="124" style="edgeStyle=none;html=1;fontSize=10;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="123" target="22">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="758" y="660" as="targetPoint"/>
|
||||||
|
<Array as="points">
|
||||||
|
<mxPoint x="780" y="692"/>
|
||||||
|
</Array>
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="125" value="Ja" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=10;labelBackgroundColor=#7EA6E0;" vertex="1" connectable="0" parent="124">
|
||||||
|
<mxGeometry x="-0.6276" y="1" relative="1" as="geometry">
|
||||||
|
<mxPoint as="offset"/>
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="127" value="" style="edgeStyle=none;html=1;fontSize=10;" edge="1" parent="1" source="123" target="126">
|
||||||
|
<mxGeometry relative="1" as="geometry"/>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="130" value="Nein" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=10;labelBackgroundColor=#7EA6E0;" vertex="1" connectable="0" parent="127">
|
||||||
|
<mxGeometry x="-0.4527" relative="1" as="geometry">
|
||||||
|
<mxPoint x="1" as="offset"/>
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="123" value="Msg-State OK?" style="rhombus;fillColor=#b0e3e6;strokeColor=#0e8088;fontColor=#000000;align=center;rounded=1;fontSize=10;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="820" y="673.89" width="108" height="36.11" as="geometry"/>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="128" style="edgeStyle=none;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=10;" edge="1" parent="1" source="126" target="16">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<Array as="points">
|
||||||
|
<mxPoint x="874" y="450"/>
|
||||||
|
</Array>
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="126" value="erzeuge und speichere<br>neuen Community-Key in<br>Community-DB" style="html=1;align=center;verticalAlign=top;absoluteArcSize=1;arcSize=10;dashed=0;fillColor=#b0e3e6;strokeColor=#0e8088;fontColor=#000000;rounded=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="803.5" y="576.63" width="141" height="55" as="geometry"/>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="133" style="edgeStyle=none;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=10;" edge="1" parent="1" source="131" target="20">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<Array as="points">
|
||||||
|
<mxPoint x="695" y="780"/>
|
||||||
|
<mxPoint x="630" y="780"/>
|
||||||
|
<mxPoint x="630" y="544"/>
|
||||||
|
</Array>
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="131" value="trigger <br>Hintergrundprozess<br style="font-size: 10px"><i>Community-Communication</i><br>für neue Community" style="html=1;align=center;verticalAlign=top;absoluteArcSize=1;arcSize=10;dashed=0;fillColor=#b0e3e6;strokeColor=#0e8088;fontColor=#000000;rounded=1;fontSize=10;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="630" y="834.5" width="130" height="55" as="geometry"/>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="135" value="" style="edgeStyle=none;html=1;fontSize=10;" edge="1" parent="1" source="134" target="99">
|
||||||
|
<mxGeometry relative="1" as="geometry"/>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="134" value="lese eigene Daten aus Datenbank<br>und bereite diese für den&nbsp;<br>Community-Handshake auf" style="html=1;align=center;verticalAlign=top;absoluteArcSize=1;arcSize=10;dashed=0;fillColor=#b0e3e6;strokeColor=#0e8088;fontColor=#000000;rounded=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="724" y="959.5" width="186" height="55.5" as="geometry"/>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
</root>
|
</root>
|
||||||
</mxGraphModel>
|
</mxGraphModel>
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 279 KiB After Width: | Height: | Size: 327 KiB |
@ -0,0 +1,35 @@
|
|||||||
|
# Community Communication
|
||||||
|
|
||||||
|
This document contains the detailed descriptions of the public API of a community.
|
||||||
|
|
||||||
|
|
||||||
|
## Introduction between existing and new community
|
||||||
|
|
||||||
|
This request is used to exchange data between an existing and a new community. It will be invoked by the existing community, which received a valid newCommunity-Message from a new community during the federation process.
|
||||||
|
|
||||||
|
POST http://<New_Community_URL>/introduce
|
||||||
|
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"key" : "community-key",
|
||||||
|
"name" : "name of community",
|
||||||
|
"description" : "description of community",
|
||||||
|
"icon" : "picture of community",
|
||||||
|
"birthday" : "day of community creation",
|
||||||
|
"members" : "amount of members",
|
||||||
|
"known_communities" : "amount of known communities",
|
||||||
|
"trading_communities" : "amount of communities the members trade with"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
The new community will save the data and returns the following
|
||||||
|
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"key" : "community-key",
|
||||||
|
"name" : "name of community",
|
||||||
|
"description" : "description of community",
|
||||||
|
"icon" : "picture of community",
|
||||||
|
"birthday" : "day of community creation",
|
||||||
|
}
|
||||||
|
```
|
||||||
Loading…
x
Reference in New Issue
Block a user