diff --git a/docs/Measuring-E2E-MS-Performance.md b/docs/Measuring-E2E-MS-Performance.md new file mode 100644 index 0000000000000000000000000000000000000000..95a3e07ba92d1926ae4bde610c80b1a42bb529a0 --- /dev/null +++ b/docs/Measuring-E2E-MS-Performance.md @@ -0,0 +1,298 @@ +<!-- +// © University of Southampton IT Innovation Centre, 2018 +// +// Copyright in this software belongs to University of Southampton +// IT Innovation Centre of Gamma House, Enterprise Road, +// Chilworth Science Park, Southampton, SO16 7NS, UK. +// +// This software may not be used, sold, licensed, transferred, copied +// or reproduced in whole or in part in any manner or form or in or +// on any media by any person other than in accordance with the terms +// of the Licence Agreement supplied with the software, or otherwise +// without the prior written consent of the copyright owners. +// +// This software is distributed WITHOUT ANY WARRANTY, without even the +// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +// PURPOSE, except where stated in the Licence Agreement supplied with +// the software. +// +// Created By : Nikolay Stanchev, Simon Crowle +// Created Date : 02-05-2018 +// Created for Project : FLAME +--> + +# **Flame CLMC - Measuring E2E Media Service Performance** + +#### **Authors** + +|Authors|Organisation| +|---|---| +|[Simon Crowle](mailto:sgc@it-innovation.soton.ac.uk)|[University of Southampton, IT Innovation Centre](http://www.it-innovation.soton.ac.uk)| +|[Nikolay Stanchev](mailto:ns17@it-innovation.soton.ac.uk)|[University of Southampton, IT Innovation Centre](http://www.it-innovation.soton.ac.uk)| + +### Definitions + +Readers of this document are assumed to have at least read the [CLMC information model](clmc-information-model.md). Here we explore the requirements which inform the definition of metrics that determine *'end-to-end'* media service performance. Before continuing, some terms are defined: + +| term | definition | +| --- | --- | +| *client* | an end-user of a FLAME media service - typically somebody accessing the service via an mobile computing device connected to an _EP router_ | +| *network node* | is a _service function router_ or other hardware that receives and sends network traffic along network connections attached to it | +| *service function router* | a _service function router_ (SFR) is a VM that allows _clients_ or _endpoints_ to communicate with one another using fully qualified domain names (FQDN), rather than IP addresses | +| *service function instance* | a _service function instance_ (SFI) is a process that in part or wholly realizes the functionality of a media service | +| *endpoint* | an endpoint (EP) is a virtual machine (VM) that implements an SFI and is connected to the FLAME network by a _service function router_ | +| *E2E path* | the directed, acyclic traversal of FLAME network nodes, beginning with a source _EP_ and moving to a target _EP_ via network nodes in the FLAME network | +| *round trip time* | the total time taken for a service request to i) traverse an _E2E path_, ii) be processed by the media service, iii) be returned as a response via an _E2E path_ + +### **Assumptions** + +Here, we list the assumptions we make for measuring and understanding E2E performance of an EP that implements a SFIs: + +* Network measurement - the assumption is that we have a measurement for the network path delays between service function routers, called **network_delays**, providing the following information: + +| path_ID (tag) | source_SFR (tag) | target_SFR (tag) | delay | time | +| --- | --- | --- | --- | --- | +| path identifier | source SFR | target SFR | e2e delay for the given path (ms) | timestamp of measurement | + +Here, the **path_ID** tag value is the identifier of the path between two service function routers in the network topology obtained from FLIPS. The **source_SFR** tag value is the source service router for the identified path, while the **target_SFR** tag value is the target service router. The delay field value is the network end-to-end delay in milliseconds that a packet would experience when traversing the path between the two SFRs identified in the tag values. + +An example row would be: + +| path_ID (tag) | source_SFR (tag) | target_SFR (tag) | delay | time | +| --- | --- | --- | --- | --- | +| SFR-A---S1---S2---S3---SFR-B | SFR-A | SFR-B | 10 | 1525334761282000 | + +The semantics of the row is that a packet traversing the path from SFR-A through S1, S2, S3 (switches) to SFR-B will experience an averaged delay of 10ms. + +* Request/Response path - the assumption is that a response will traverse the same network path as the request, but in reverse direction. + +* Media service measurement - assumption is that we have a measurement for media service response time, containing at least the following information: + +| sf_instance (tag) | sfr (tag) | endpoint (tag) | response_time | time | +| --- | --- | --- | --- | --- | +| media SF instance ID (FQDN) | SFR that connects the SFI endpoint to the FLAME network | SFI EP identifier | response time for the media service (ms) | timestamp of measurement | + +Note that all FLAME service function EPs are expected to contain this and other decision context related data in their global tags, see the [CLMC monitoring documentation](monitoring.md) for further information. Above, the **sf_instance**, **sfr** and **endpoint** tag values identify a unique response time measurement. The response time field value is the time elapsed (measured in milliseconds) for a specific SFI/EP implementation only, and it does not take into account any of the network measurements. An example row would be: + +| sf_instance (tag) | sfr (tag) | endpoint (tag) | response_time | time | +| --- | --- | --- | --- | --- | +| media-service.ict-flame.eu | SFR-B | server1 | 27 | 1525334761282000 | + +The semantics of the row is that the response time for a SFI with an identity of _media-service.ict-flame.eu_ that is implemented by endpoint _server1_ and connected to the FLAME network through service function router *SFR-B* will have an averaged response time of 27 ms. + +## E2E Model + +In the sections that follow we set out some basic properties of a potential media service and then explore these in more detail with a concrete example. Following on from this analysis we provide a test-based approach to the specification of E2E media service performance measures. + +### E2E SFC + +Let us begin by identifying some simple, generic interactions within a media service function chain (SFC): + +``` +// simple chain +Client --> data storage SFI/EP1 + +// sequential chain +Client --> data processor SFI/EP1 --> data storage SFI/EP1 + +// complex chain +Client --> data processor SFI_A/EP1 --> data processor SFI_B/EP1 + |-> data storage SFI/EP1 <-| +``` + +The first example above imagines a client simply requesting some data be stored in (or retrieved from) a database managed by the SFI responsible for persistence. In the second case, the client requests some processing of some data held in the data store, the results of which are also stored. Finally, the third case outlines a more complex scenario in which the client requests some processing of data which in turn generates further requests for additional data processing in other SFIs which also may depend on storage I/O functionality. Here additional data processing by related SFIs could include job scheduling or task decomposition and distribution to worker nodes. An advanced media service, such as a modern computer game, is a useful example of such a service in which graphics rendering; game state modelling; artificial intelligence and network communications are handled in parallel using varying problem decomposition methods. + +### E2E simple chain + +Next we will define a very simple network into which we will place a data processing EP and a data storage EP - we assert the clients could connect to any of _service function routers_ that link these SFI implementations together. + + + +Our simple network consists of three _service function routers_ (SFRs) that connect clients with SFI data and storage functionality; a demand from client 1 for the storage function could be routed in one network hop from router 'A' to router 'C' or in two from routers 'A' -> 'B' -> 'C'. A demand for storage function from _client 2_ would include zero network hops. + +> __Side note: FLAME network scope__ +> +> Readers are reminded that low-level network traffic metrics gathered by the FLAME platform are restricted to observations of network performance between SFRs. The first and last steps (typically between a client and SFI) are not captured at the time of writing - these links are denoted by a dotted line (`--->`) in our diagrams. +> + +### E2E simple chain metrics + +A principal metric we use to understand E2E performance is the average end-to-end _delay_: the _mean_ time taken between a request or response being transmitted and received _within the FLAME network_. Scoping the E2E delay to within the FLAME network is an important qualification since it is only within this network that all necessary measurements can reliably be taken. + +An out-going simple E2E request chain looks like this: + + + +the delay associated with the processing of the service request is isolated to within the storage SFI: + + + +whilst for the response E2E delay, we see this: + + + +Above we denote the time required for an service function router to handle (or pass on) an in-coming message as _handle request_ or _handle response_. When a message is _handled_ by a service function router there are a number of processes that incur (small amounts of) delay: + +* _Processing delay_: error checking and an optimized route through the network for the HTTP packet must be determined +* _Queuing delay_: the time a HTTP packet waits in a queue whilst other packets ahead of it are transmitted +* _Transmission delay_: the time taken for the packet bits to be copied out into the transmission medium of the network + +The _round trip time_ is the sum of the request, service processing and response delays. + +> __Side note:__ +> To understand _delay_ more robustly, we may also consider the rate at which requests or responses arrive (_arrival rate_) at each node in the network since message management (queuing, for example) will have an effect at scale. Similarly, the _payload size_ of the messages being handled could also be observed since the quantity of data traversing the SFC will also impact delay in similar, large scale scenarios. +> + +### E2E extended chain + +Up until this point we have considered an elementary SFC in which there is only one class of SFI. In a more realistic scenario, we would expect a media service function to be composed of multiple SFIs that are distributed and connected to multiple nodes in the FLAME network. Below we have extended the simple chain to include a greater level of complexity with respect to service function chains, whilst holding the network topology constant (adding network SFRs simply introduces additional hops to the problem space at this stage). In addition to indicating extra clients and SFIs, weights have been added to the network arcs to indicate relative network latency between SFRs. __In this case study we also make the assumption that chained service function calls, such as those between one SFI and another, are synchronized and blocking__. + + + +Imagine a media service that both stores and processes high volumes of complex media streams. Consider as well a distributed population of clients making demands on this service. Successfully handling high demand for this service could mean deploying several EPs that implement its SFIs (storage and processing) across multiple VMs that interoperate and share the demand load. Since clients and EPs are distributed, service function requests (made by both) will likely give rise to propagating waves of activity, load (and delay) from multiple nodes across the FLAME platform. For simplicity, let us assume our multimedia service implements a request by processing some media data from the client and then storing it (returning some result to client). Here is client 1's request as it passes through the FLAME network and its SFIs: + + + +In the figure above the green arcs indicate service request travel whilst the blue denotes the response path. The shortest route directs the request to SFR 'B' and the consequent storage request travels on to SFR 'C'. __Responses return along the path used by the request__. Indicative service response times are provided by numeric values in the active SFI/EP boxes. Let's see the same request from client 2, who has just joined the network: + + + +For this client, the _locality of reference_ for processing and then storing her data is high: both of the associated SFIs are located on VMs attached to the same SFR. We could expect client 2's response time to be low for this reason. + +_Now for the sake of example only, let us assume that the hardware running SFI Processor A can only effectively handle one request at any time and that any more than this will result in a substantial degradation in processing performance_. + +Client 3 joins the network: + + + +In calculating a service function route that optimizes for the complete _round trip_ delay, we need to take into account the likely delays that are incurred from both network related latencies and also _all_ SFI response times. The orange route illustrated above shows how the gains made by selecting a fast route through the network are offset by penalities in using an EP processor for the SFI that is overloaded; conversely a slower route that selects a SFI with computational resources to spare resolves to an over-all faster round-trip response time. + +## E2E Measurement + +Our aim is to aggregate network measurement points with media service measurement points to obtain a third measurement from which we can easily understand both end-to-end and round-trip performance of a media service. This is achieved by using a CLMC E2E monitoring process that aggregates data from network and media service measurements within a given sample period, e.g. every 10 seconds. This process then posts the aggregated data back to Influx in a new measurement. + +### **Goal** + +The ultimate goal is to populate a new measurement, called **e2e_delays**, which will be provided with the following information: + +| path_ID (tag) | source_SFR (tag) | target_SFR (tag) | sf_instance (tag) | endpoint (tag) | delay_forward | delay_reverse | delay_service | time | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | + +* *path_ID* - tag ID used to identify the network path (bidirectional path identifier) +* *source_SFR* - tag used to identify the source service function router (the start of the network path) +* *target_SFR* - tag used to identify the target service function router (the end of the network path) +* *sf_instance* - tag used to identify the SFI +* *endpoint* - tag used to identify the EP implementing the SFI +* *delay_forward* - network delay for the path in forward direction +* *delay_reverse* - network delay for path in reverse direction +* *delay_service* - media service component response time + +Then we can easily query on this measurement to obtain different performance indicators, such as end-to-end overall delays, round-trip response time or any of the contributing parts in those performance indicators. + +### Monitoring network delays + +Here, we describe the process of obtaining network delays between two service function routers in the network topology. CLMC retrieves network path delays between any two SFRs, see below (**SFR** denotes a service function router, **S** denotes a switch): + + + +SFR monitoring provides us with FIDs at each service function router, which are bidirectional path IDs. From those, we derive the desired SFR-SFR network latencies. For instance, if we take the network graph example and analyse service function router **SFR3**. We would get 2 FIDs for this router - one for the path to reach SFR2 and one for the path to reach SFR1. + +We assume that the FID for reaching *SFR1* from *SFR3* tells us the path goes through nodes *S3* and *S6*. + + + +Hence, we accumulate the individual link delays to derive the full SFR-SFR delay for both forward and reverse direction. + +delay_forward = SFR3-S3 + S3-S6 + S6-SFR1 = 12 + 3 + 3 = 18 +delay_reverse = SFR1-S6 + S6-S3 + S3-SFR3 = 1 + 5 + 10 = 16 + +Now, we assume that the FID for reaching *SFR2* from *SFR3* tells us the path goes through nodes *S4* and *S2*. + + + +Hence, we accumulate the individual link delays to derive the full SFR-SFR delay for both forward and reverse direction. + +delay_forward = SFR3-S4 + S4-S2 + S2-SFR2 = 12 + 4 + 5 = 21 +delay_reverse = SFR2-S2 + S2-S4 + S4-SFR3 = 8 + 2 + 11 = 21 + +Overall, from this analysis, the following data will be reported to Influx in the **network_delays** measurement: + +| path_ID (tag) | source_SFR (tag) | target_SFR (tag) | delay | time | +| --- | --- | --- | --- | --- | +| SFR3-SFR1 | SFR3 | SFR1 | 18 | 1525334761282000 | +| SFR3-SFR1 | SFR1 | SFR3 | 16 | 1525334761282000 | +| SFR3-SFR2 | SFR3 | SFR2 | 21 | 1525334761282000 | +| SFR3-SFR2 | SFR2 | SFR3 | 21 | 1525334761282000 | + +### Monitoring SFI/EP response times + +Readers of the [CLMC information model](clmc-information-model.md) will already be aware of the approach to identifying and reporting SFI performance metrics in the FLAME project. The global measurement tags that help in a decision context are used in this case to provide the mapping between network measurements and a specific service response time. Specifically, we use the SFR tag encapsulated in the media service global tags to cross-reference against target SFR tags (described above). + +In its simplest case, a media SFI's response time could be defined as a single value that derives from the (average) time spent processing requests in local memory and/or on disk. Indeed, a number of the FLAME foundation media service metrics sent to the CLMC could be described as such. In more advanced cases (such as for clients 1 and 3 in our example above) the full service function chain is implemented across more than one endpoint. Here we have at least two options: + +1. Let the first SFI in a SFC be representative of the entire service function delay (making opaque the sub-calls to other SFIs required to fullfil the client's request) + +2. Construct a more complex view of the service function response time as an aggregate of internal SFI processing delays and their related, dependent network delays + +#### TO BE DISCUSSED FURTHER + +> __NOTE: ABOVE TO BE VALIDATED__ +> __***************************__ +> + +### E2E Aggregation process + +The aggregation process provides similar functionality to that of an INFLUX continuous query. During each sample period the process collects and averages network and service delay data for the last 10 seconds (for example). The executed queries are: + +* Network delays query - to obtain the network delay values and group them by their **path_ID**, **source_SFR** and **target_SFR** identifiers: + +``` +SELECT mean(delay) as "net_delay" FROM "E2EMetrics"."autogen"."network_delays" WHERE time >= now() - 10s and time < now() GROUP BY path_ID, source_SFR, target_SFR +``` + +* Media service response time query - to obtain the response time values of the media service instances and group them by **endpoint**, **sf_instance** and **sfr** identifiers: +``` +SELECT mean(response_time) as "response_time" FROM "E2EMetrics"."autogen"."service_delays" WHERE time >= now() - 10s and time < now() GROUP BY endpoint, sf_instance, sfr +``` + +The results of the queries are then matched against each other on the **target** and **sfr** tag values (for *network_delays* and *service_delays* respectively): +on every match of the **sfr** tag of the **service_delays** measurement with the **target** service function router of the **network_delays** measurement, the rows are combined +to obtain an **e2e_delay** measurement row, which is posted back to influx. + +Example: + +Let's assume we have these results from the two queries: + +* Result from first query + +``` +name: network_delays +tags: path_ID=SFR-A---SFR-B, source_SFR=SFR-A, target_SFR=SFR-B +time net_delay +---- --------- +1524833145975682287 9.2 + +name: network_delays +tags: path_ID=SFR-A---SFR-B, source_SFR=SFR-B, target_SFR=SFR-A +time net_delay +---- --------- +1524833145975682287 10.3 +``` + +* Result from second query + +``` +name: service_delays +tags: endpoint=server1, sfr=SFR-B, sf_instance=ms-A.ict-flame.eu +time response_time +---- ------------- +1524833145975682287 11 +``` + +The E2E aggregation process will merge those rows, because there is a match on network delay target SFR and service delay SFR - namely **SFR-B**. + +| path_ID (tag) | source_SFR (tag) | target_SFR (tag) | endpoint (tag) | sf_instance (tag) | delay_forward | delay_reverse | delay_service | time | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | +| SFR-A---SFR-B | SFR-A | SFR-B | server1 | ms-A.ict-flame.eu | 9.2 | 10.3 | 11 | 1524833145975682287 | + +The resulting row would then be posted back to influx in the **e2e_delays** measurement. \ No newline at end of file diff --git a/docs/figures/e2eFigures.graphml b/docs/figures/e2eFigures.graphml index 7e150e6312fdfa0d3b14f03d04423e8faceb54ec..635028fc2fe5224a0a2bc8d26d96491726951fe7 100644 --- a/docs/figures/e2eFigures.graphml +++ b/docs/figures/e2eFigures.graphml @@ -15,43 +15,62 @@ <graph edgedefault="directed" id="G"> <data key="d0"/> <node id="n0"> - <data key="d5"/> + <data key="d6"> + <y:SVGNode> + <y:Geometry height="22.891233402652546" width="20.06220742959614" x="820.3669601387119" y="986.4070328236099"/> + <y:Fill color="#CCCCFF" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="8.031103714798064" y="26.89123340265246"> + <y:LabelModel> + <y:SmartNodeLabelModel distance="4.0"/> + </y:LabelModel> + <y:ModelParameter> + <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="-0.5" nodeRatioX="0.0" nodeRatioY="0.5" offsetX="0.0" offsetY="4.0" upX="0.0" upY="-1.0"/> + </y:ModelParameter> + </y:NodeLabel> + <y:SVGNodeProperties usingVisualBounds="true"/> + <y:SVGModel svgBoundsPolicy="0"> + <y:SVGContent refid="1"/> + </y:SVGModel> + </y:SVGNode> + </data> + </node> + <node id="n1"> <data key="d6"> <y:ShapeNode> - <y:Geometry height="152.4000000000001" width="350.79999999999984" x="222.89999999999998" y="986.8"/> + <y:Geometry height="152.4000000000001" width="142.72602478550982" x="222.89999999999998" y="986.8"/> <y:Fill hasColor="false" transparent="false"/> <y:BorderStyle color="#000000" raised="false" type="dotted" width="1.0"/> - <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="9" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="15.02587890625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="68.01953125" x="141.39023437499998" y="156.4000000000001">FLAME network</y:NodeLabel> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="9" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="15.02587890625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="68.01953125" x="37.35324676775491" y="156.4000000000001">FLAME network</y:NodeLabel> <y:Shape type="rectangle"/> </y:ShapeNode> </data> </node> - <node id="n1"> - <data key="d5"/> + <node id="n2"> <data key="d6"> <y:ShapeNode> - <y:Geometry height="152.4000000000001" width="350.79999999999984" x="222.89999999999998" y="663.4"/> + <y:Geometry height="152.4000000000001" width="142.72602478550982" x="222.89999999999998" y="663.4"/> <y:Fill hasColor="false" transparent="false"/> <y:BorderStyle color="#000000" raised="false" type="dotted" width="1.0"/> - <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="9" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="15.02587890625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="68.01953125" x="141.39023437499992" y="156.4000000000001">FLAME network</y:NodeLabel> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="9" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="15.02587890625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="68.01953125" x="37.35324676775491" y="156.4000000000001">FLAME network</y:NodeLabel> <y:Shape type="rectangle"/> </y:ShapeNode> </data> </node> - <node id="n2" yfiles.foldertype="group"> + <node id="n3" yfiles.foldertype="group"> <data key="d4"/> <data key="d6"> <y:ProxyAutoBoundsNode> <y:Realizers active="0"> <y:GroupNode> - <y:Geometry height="511.0354454457677" width="480.9759773254389" x="1009.4572265625002" y="101.66553111673232"/> + <y:Geometry height="511.0354454457677" width="454.02041091918886" x="659.5838274174812" y="92.70182647705082"/> <y:Fill color="#F5F5F5" transparent="false"/> <y:BorderStyle color="#000000" type="dashed" width="1.0"/> - <y:NodeLabel alignment="right" autoSizePolicy="node_width" backgroundColor="#EBEBEB" borderDistance="0.0" fontFamily="Dialog" fontSize="15" fontStyle="plain" hasLineColor="false" height="22.37646484375" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="480.9759773254389" x="0.0" y="0.0">E2E complex chain</y:NodeLabel> + <y:NodeLabel alignment="right" autoSizePolicy="node_width" backgroundColor="#EBEBEB" borderDistance="0.0" fontFamily="Dialog" fontSize="15" fontStyle="plain" hasLineColor="false" height="22.37646484375" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="454.02041091918886" x="0.0" y="0.0">E2E extended chain</y:NodeLabel> <y:Shape type="roundrectangle"/> <y:State closed="false" closedHeight="50.0" closedWidth="50.0" innerGraphDisplayEnabled="false"/> <y:Insets bottom="15" bottomF="15.0" left="15" leftF="15.0" right="15" rightF="15.0" top="15" topF="15.0"/> - <y:BorderInsets bottom="26" bottomF="25.725000000000023" left="0" leftF="5.6843418860808015E-14" right="0" rightF="0.0" top="0" topF="0.0"/> + <y:BorderInsets bottom="26" bottomF="25.725000000000023" left="0" leftF="0.0" right="25" rightF="25.323066704152325" top="0" topF="0.0"/> </y:GroupNode> <y:GroupNode> <y:Geometry height="50.0" width="50.0" x="0.0" y="60.0"/> @@ -66,11 +85,11 @@ </y:Realizers> </y:ProxyAutoBoundsNode> </data> - <graph edgedefault="directed" id="n2:"> - <node id="n2::n0"> + <graph edgedefault="directed" id="n3:"> + <node id="n3::n0"> <data key="d6"> <y:SVGNode> - <y:Geometry height="35.32593311666594" width="30.960157775878884" x="1229.7199211120605" y="139.04199596048232"/> + <y:Geometry height="35.32593311666594" width="30.960157775878884" x="839.2703500920416" y="130.07829132080082"/> <y:Fill color="#CCCCFF" transparent="false"/> <y:BorderStyle color="#000000" type="line" width="1.0"/> <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="37.90625" x="-3.4730461120605014" y="39.325933116665965">Client 1<y:LabelModel> @@ -87,43 +106,43 @@ </y:SVGNode> </data> </node> - <node id="n2::n1"> + <node id="n3::n1"> <data key="d6"> <y:ShapeNode> - <y:Geometry height="42.5" width="42.5" x="1223.9499999999998" y="241.2500000000001"/> + <y:Geometry height="42.5" width="42.5" x="833.5004289799808" y="232.2862953603186"/> <y:Fill color="#FFFFFF" transparent="false"/> <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> - <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="w" textColor="#000000" verticalTextPosition="bottom" visible="true" width="77.8427734375" x="-81.8427734375" y="13.12451171875">service router 'A'</y:NodeLabel> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="w" textColor="#000000" verticalTextPosition="bottom" visible="true" width="37.2666015625" x="-41.2666015625" y="13.12451171875">SFR 'A'</y:NodeLabel> <y:Shape type="ellipse"/> </y:ShapeNode> </data> </node> - <node id="n2::n2"> + <node id="n3::n2"> <data key="d6"> <y:ShapeNode> - <y:Geometry height="42.5" width="42.5" x="1106.3000000000002" y="445.225"/> + <y:Geometry height="42.5" width="42.5" x="715.8504289799812" y="436.2612953603185"/> <y:Fill color="#FFFFFF" transparent="false"/> <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> - <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="w" textColor="#000000" verticalTextPosition="bottom" visible="true" width="77.8427734375" x="-81.8427734375" y="13.12451171875">service router 'B'</y:NodeLabel> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="w" textColor="#000000" verticalTextPosition="bottom" visible="true" width="37.2666015625" x="-41.2666015625" y="13.12451171875">SFR 'B'</y:NodeLabel> <y:Shape type="ellipse"/> </y:ShapeNode> </data> </node> - <node id="n2::n3"> + <node id="n3::n3"> <data key="d6"> <y:ShapeNode> - <y:Geometry height="42.5" width="42.5" x="1343.1999999999998" y="445.225"/> + <y:Geometry height="42.5" width="42.5" x="952.7504289799808" y="436.2612953603185"/> <y:Fill color="#FFFFFF" transparent="false"/> <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> - <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="e" textColor="#000000" verticalTextPosition="bottom" visible="true" width="78.39453125" x="46.5" y="13.12451171875">service router 'C'</y:NodeLabel> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="e" textColor="#000000" verticalTextPosition="bottom" visible="true" width="37.818359375" x="46.5" y="13.12451171875">SFR 'C'</y:NodeLabel> <y:Shape type="ellipse"/> </y:ShapeNode> </data> </node> - <node id="n2::n4"> + <node id="n3::n4"> <data key="d6"> <y:ShapeNode> - <y:Geometry height="30.0" width="30.0" x="1217.475" y="375.2500000000001"/> + <y:Geometry height="30.0" width="30.0" x="827.0254289799809" y="366.2862953603186"/> <y:Fill hasColor="false" transparent="false"/> <y:BorderStyle hasColor="false" raised="false" type="line" width="1.0"/> <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="72.677734375" x="-6.3388671875" y="12.849414062499932">FLAME SDN<y:LabelModel> @@ -137,10 +156,10 @@ </y:ShapeNode> </data> </node> - <node id="n2::n5"> + <node id="n3::n5"> <data key="d6"> <y:SVGNode> - <y:Geometry height="35.32593311666594" width="30.960157775878884" x="1392.5" y="348.48399192096474"/> + <y:Geometry height="35.32593311666594" width="30.960157775878884" x="1002.050428979981" y="339.52028728128323"/> <y:Fill color="#CCCCFF" transparent="false"/> <y:BorderStyle color="#000000" type="line" width="1.0"/> <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="37.90625" x="-3.4730461120605014" y="39.325933116665965">Client 2<y:LabelModel> @@ -157,10 +176,10 @@ </y:SVGNode> </data> </node> - <node id="n2::n6"> + <node id="n3::n6"> <data key="d6"> <y:SVGNode> - <y:Geometry height="35.32593311666594" width="30.960157775878884" x="1440.9999999999995" y="348.48399192096474"/> + <y:Geometry height="35.32593311666594" width="30.960157775878884" x="896.8406101048615" y="153.4505065377179"/> <y:Fill color="#CCCCFF" transparent="false"/> <y:BorderStyle color="#000000" type="line" width="1.0"/> <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="37.90625" x="-3.4730461120605014" y="39.325933116665965">Client 3<y:LabelModel> @@ -177,51 +196,51 @@ </y:SVGNode> </data> </node> - <node id="n2::n7"> + <node id="n3::n7"> <data key="d6"> <y:ShapeNode> - <y:Geometry height="30.0" width="30.0" x="1112.5500000000002" y="521.725"/> + <y:Geometry height="30.0" width="30.0" x="722.1004289799812" y="512.7612953603185"/> <y:Fill color="#FFFFFF" transparent="false"/> <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> - <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="80.611328125" x="-25.3056640625" y="34.0">Processor 'A' MC</y:NodeLabel> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="94.5859375" x="-32.29296875" y="34.0">Processor SFI / EP1</y:NodeLabel> <y:Shape type="rectangle"/> </y:ShapeNode> </data> </node> - <node id="n2::n8"> + <node id="n3::n8"> <data key="d6"> <y:ShapeNode> - <y:Geometry height="30.0" width="30.0" x="1313.1999999999998" y="521.725"/> + <y:Geometry height="30.0" width="30.0" x="910.4186844613916" y="512.7612953603185"/> <y:Fill color="#FFFFFF" transparent="false"/> <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> - <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="80.611328125" x="-25.3056640625" y="34.0">Processor 'B' MC</y:NodeLabel> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="94.5859375" x="-32.29296875" y="34.0">Processor SFI / EP2</y:NodeLabel> <y:Shape type="rectangle"/> </y:ShapeNode> </data> </node> - <node id="n2::n9"> + <node id="n3::n9"> <data key="d6"> <y:ShapeNode> - <y:Geometry height="30.0" width="30.0" x="1392.9800788879395" y="521.725"/> + <y:Geometry height="30.0" width="30.0" x="1015.9833200700177" y="512.7612953603185"/> <y:Fill color="#FFFFFF" transparent="false"/> <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> - <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="57.3544921875" x="-13.67724609375" y="34.0">Storage MC</y:NodeLabel> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="84.595703125" x="-27.2978515625" y="34.0">Storage SFI / EP1</y:NodeLabel> <y:Shape type="rectangle"/> </y:ShapeNode> </data> </node> </graph> </node> - <node id="n3" yfiles.foldertype="group"> + <node id="n4" yfiles.foldertype="group"> <data key="d4"/> <data key="d6"> <y:ProxyAutoBoundsNode> <y:Realizers active="0"> <y:GroupNode> - <y:Geometry height="511.0354454457677" width="499.31093826293886" x="36.58222656250018" y="92.70182647705082"/> + <y:Geometry height="511.0354454457677" width="491.84365310668886" x="81.85224609375018" y="92.70182647705082"/> <y:Fill color="#F5F5F5" transparent="false"/> <y:BorderStyle color="#000000" type="dashed" width="1.0"/> - <y:NodeLabel alignment="right" autoSizePolicy="node_width" backgroundColor="#EBEBEB" borderDistance="0.0" fontFamily="Dialog" fontSize="15" fontStyle="plain" hasLineColor="false" height="22.37646484375" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="499.31093826293886" x="0.0" y="0.0">E2E simple chain</y:NodeLabel> + <y:NodeLabel alignment="right" autoSizePolicy="node_width" backgroundColor="#EBEBEB" borderDistance="0.0" fontFamily="Dialog" fontSize="15" fontStyle="plain" hasLineColor="false" height="22.37646484375" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="491.84365310668886" x="0.0" y="0.0">E2E simple chain</y:NodeLabel> <y:Shape type="roundrectangle"/> <y:State closed="false" closedHeight="50.0" closedWidth="50.0" innerGraphDisplayEnabled="false"/> <y:Insets bottom="15" bottomF="15.0" left="15" leftF="15.0" right="15" rightF="15.0" top="15" topF="15.0"/> @@ -240,8 +259,8 @@ </y:Realizers> </y:ProxyAutoBoundsNode> </data> - <graph edgedefault="directed" id="n3:"> - <node id="n3::n0"> + <graph edgedefault="directed" id="n4:"> + <node id="n4::n0"> <data key="d6"> <y:SVGNode> <y:Geometry height="35.32593311666594" width="30.960157775878884" x="256.84492111206055" y="130.07829132080082"/> @@ -261,40 +280,40 @@ </y:SVGNode> </data> </node> - <node id="n3::n1"> + <node id="n4::n1"> <data key="d6"> <y:ShapeNode> <y:Geometry height="42.5" width="42.5" x="251.07499999999982" y="232.2862953603186"/> <y:Fill color="#FFFFFF" transparent="false"/> <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> - <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="w" textColor="#000000" verticalTextPosition="bottom" visible="true" width="77.8427734375" x="-81.8427734375" y="13.12451171875">service router 'A'</y:NodeLabel> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="w" textColor="#000000" verticalTextPosition="bottom" visible="true" width="115.6455078125" x="-119.6455078125" y="13.12451171875">service function router 'A'</y:NodeLabel> <y:Shape type="ellipse"/> </y:ShapeNode> </data> </node> - <node id="n3::n2"> + <node id="n4::n2"> <data key="d6"> <y:ShapeNode> <y:Geometry height="42.5" width="42.5" x="133.42500000000018" y="436.2612953603185"/> <y:Fill color="#FFFFFF" transparent="false"/> <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> - <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="w" textColor="#000000" verticalTextPosition="bottom" visible="true" width="77.8427734375" x="-81.8427734375" y="13.12451171875">service router 'B'</y:NodeLabel> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="115.6455078125" x="-36.57275390625" y="46.5">service function router 'B'</y:NodeLabel> <y:Shape type="ellipse"/> </y:ShapeNode> </data> </node> - <node id="n3::n3"> + <node id="n4::n3"> <data key="d6"> <y:ShapeNode> <y:Geometry height="42.5" width="42.5" x="370.3249999999998" y="436.2612953603185"/> <y:Fill color="#FFFFFF" transparent="false"/> <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> - <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="e" textColor="#000000" verticalTextPosition="bottom" visible="true" width="78.39453125" x="46.5" y="13.12451171875">service router 'C'</y:NodeLabel> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="e" textColor="#000000" verticalTextPosition="bottom" visible="true" width="116.197265625" x="46.5" y="13.12451171875">service function router 'C'</y:NodeLabel> <y:Shape type="ellipse"/> </y:ShapeNode> </data> </node> - <node id="n3::n4"> + <node id="n4::n4"> <data key="d6"> <y:ShapeNode> <y:Geometry height="30.0" width="30.0" x="244.5999999999999" y="366.2862953603186"/> @@ -311,7 +330,7 @@ </y:ShapeNode> </data> </node> - <node id="n3::n5"> + <node id="n4::n5"> <data key="d6"> <y:SVGNode> <y:Geometry height="35.32593311666594" width="30.960157775878884" x="419.625" y="339.52028728128323"/> @@ -331,20 +350,20 @@ </y:SVGNode> </data> </node> - <node id="n3::n6"> + <node id="n4::n6"> <data key="d6"> <y:ShapeNode> <y:Geometry height="30.0" width="30.0" x="420.1050788879395" y="512.7612953603185"/> <y:Fill color="#FFFFFF" transparent="false"/> <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> - <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="57.3544921875" x="-13.67724609375" y="34.0">Storage MC</y:NodeLabel> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="84.595703125" x="-27.2978515625" y="34.0">Storage SFI / EP1</y:NodeLabel> <y:Shape type="rectangle"/> </y:ShapeNode> </data> </node> </graph> </node> - <node id="n4"> + <node id="n5"> <data key="d6"> <y:SVGNode> <y:Geometry height="35.32593311666594" width="30.960157775878884" x="67.64492111206054" y="726.3883582041351"/> @@ -364,40 +383,40 @@ </y:SVGNode> </data> </node> - <node id="n5"> + <node id="n6"> <data key="d6"> <y:ShapeNode> <y:Geometry height="42.5" width="42.5" x="201.47499999999985" y="722.8013247624681"/> <y:Fill color="#FFFFFF" transparent="false"/> <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> - <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="77.8427734375" x="-17.67138671875" y="46.5">service router 'A'</y:NodeLabel> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="37.2666015625" x="2.61669921875" y="46.5">SFR 'A'</y:NodeLabel> <y:Shape type="ellipse"/> </y:ShapeNode> </data> </node> - <node id="n6"> + <node id="n7"> <data key="d6"> <y:ShapeNode> <y:Geometry height="42.5" width="42.5" x="346.84492111206026" y="722.8013247624681"/> <y:Fill color="#FFFFFF" transparent="false"/> <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> - <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="78.39453125" x="-17.947265625" y="46.5">service router 'C'</y:NodeLabel> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="37.818359375" x="2.3408203125" y="46.5">SFR 'C'</y:NodeLabel> <y:Shape type="ellipse"/> </y:ShapeNode> </data> </node> - <node id="n7"> + <node id="n8"> <data key="d6"> <y:ShapeNode> <y:Geometry height="30.0" width="30.0" x="509.81484222412064" y="729.0513247624681"/> <y:Fill color="#FFFFFF" transparent="false"/> <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> - <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="57.3544921875" x="-13.67724609375" y="34.0">Storage MC</y:NodeLabel> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="57.359375" x="-13.6796875" y="34.0">Storage SFI</y:NodeLabel> <y:Shape type="rectangle"/> </y:ShapeNode> </data> </node> - <node id="n8"> + <node id="n9"> <data key="d6"> <y:SVGNode> <y:Geometry height="35.32593311666594" width="30.960157775878884" x="67.64492111206062" y="1052.188358204135"/> @@ -417,191 +436,577 @@ </y:SVGNode> </data> </node> - <node id="n9"> + <node id="n10"> <data key="d6"> <y:ShapeNode> <y:Geometry height="42.5" width="42.5" x="201.4749999999999" y="1048.6013247624683"/> <y:Fill color="#FFFFFF" transparent="false"/> <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> - <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="77.8427734375" x="-17.67138671875" y="46.5">service router 'A'</y:NodeLabel> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="37.2666015625" x="2.61669921875" y="46.5">SFR 'A'</y:NodeLabel> <y:Shape type="ellipse"/> </y:ShapeNode> </data> </node> - <node id="n10"> + <node id="n11"> <data key="d6"> <y:ShapeNode> <y:Geometry height="42.5" width="42.5" x="346.8449211120603" y="1048.6013247624683"/> <y:Fill color="#FFFFFF" transparent="false"/> <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> - <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="78.39453125" x="-17.947265625" y="46.5">service router 'C'</y:NodeLabel> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="37.818359375" x="2.3408203125" y="46.5">SFR 'C'</y:NodeLabel> <y:Shape type="ellipse"/> </y:ShapeNode> </data> </node> - <node id="n11"> + <node id="n12"> <data key="d6"> <y:ShapeNode> <y:Geometry height="30.0" width="30.0" x="509.81484222412064" y="1054.8513247624683"/> <y:Fill color="#FFFFFF" transparent="false"/> <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> - <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="57.3544921875" x="-13.67724609375" y="34.0">Storage MC</y:NodeLabel> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="57.359375" x="-13.6796875" y="34.0">Storage SFI</y:NodeLabel> <y:Shape type="rectangle"/> </y:ShapeNode> </data> </node> - <node id="n12"> + <node id="n13"> <data key="d6"> <y:ShapeNode> - <y:Geometry height="30.0" width="30.0" x="373.42968444824123" y="892.3026495249364"/> + <y:Geometry height="30.0" width="30.0" x="279.2630123927549" y="892.3026495249364"/> <y:Fill color="#FFFFFF" transparent="false"/> <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> - <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="57.3544921875" x="-13.67724609375" y="34.0">Storage MC</y:NodeLabel> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="57.359375" x="-13.6796875" y="34.0">Storage SFI</y:NodeLabel> <y:Shape type="rectangle"/> </y:ShapeNode> </data> </node> - <edge id="n2::e0" source="n2::n1" target="n2::n3"> - <data key="d10"> - <y:PolyLineEdge> - <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> - <y:LineStyle color="#000000" type="line" width="1.0"/> - <y:Arrows source="standard" target="standard"/> - <y:BendStyle smoothed="false"/> - </y:PolyLineEdge> - </data> - </edge> - <edge id="n2::e1" source="n2::n3" target="n2::n2"> - <data key="d10"> - <y:PolyLineEdge> - <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> - <y:LineStyle color="#000000" type="line" width="1.0"/> - <y:Arrows source="standard" target="standard"/> - <y:BendStyle smoothed="false"/> - </y:PolyLineEdge> + <node id="n14"> + <data key="d6"> + <y:SVGNode> + <y:Geometry height="35.32593311666594" width="30.960157775878884" x="835.4490886803685" y="654.3896829666031"/> + <y:Fill color="#CCCCFF" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="37.90625" x="-3.4730461120605014" y="39.325933116665965">Client 1<y:LabelModel> + <y:SmartNodeLabelModel distance="4.0"/> + </y:LabelModel> + <y:ModelParameter> + <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="-0.5" nodeRatioX="0.0" nodeRatioY="0.5" offsetX="0.0" offsetY="4.0" upX="0.0" upY="-1.0"/> + </y:ModelParameter> + </y:NodeLabel> + <y:SVGNodeProperties usingVisualBounds="true"/> + <y:SVGModel svgBoundsPolicy="0"> + <y:SVGContent refid="1"/> + </y:SVGModel> + </y:SVGNode> </data> - </edge> - <edge id="n2::e2" source="n2::n1" target="n2::n2"> - <data key="d10"> - <y:PolyLineEdge> - <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> - <y:LineStyle color="#000000" type="line" width="1.0"/> - <y:Arrows source="standard" target="standard"/> - <y:BendStyle smoothed="false"/> - </y:PolyLineEdge> + </node> + <node id="n15"> + <data key="d6"> + <y:ShapeNode> + <y:Geometry height="21.0" width="21.0" x="782.6626280068207" y="826.5539742874045"/> + <y:Fill color="#FFFFFF" transparent="false"/> + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="w" textColor="#000000" verticalTextPosition="bottom" visible="true" width="37.2666015625" x="-41.2666015625" y="2.37451171875">SFR 'B'</y:NodeLabel> + <y:Shape type="ellipse"/> + </y:ShapeNode> </data> - </edge> - <edge id="n2::e3" source="n2::n0" target="n2::n1"> - <data key="d10"> - <y:PolyLineEdge> - <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> - <y:LineStyle color="#000000" type="line" width="1.0"/> - <y:Arrows source="none" target="short"/> - <y:BendStyle smoothed="false"/> - </y:PolyLineEdge> + </node> + <node id="n16"> + <data key="d6"> + <y:ShapeNode> + <y:Geometry height="15.0" width="15.0" x="785.6626280068207" y="886.404048954476"/> + <y:Fill color="#FFFFFF" transparent="false"/> + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="94.5859375" x="-39.79296875" y="19.0">Processor SFI / EP1</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> </data> - </edge> - <edge id="n2::e4" source="n2::n5" target="n2::n3"> - <data key="d10"> - <y:PolyLineEdge> - <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> - <y:LineStyle color="#000000" type="line" width="1.0"/> - <y:Arrows source="none" target="short"/> - <y:BendStyle smoothed="false"/> - </y:PolyLineEdge> + </node> + <node id="n17"> + <data key="d6"> + <y:ShapeNode> + <y:Geometry height="21.0" width="21.0" x="899.2912191224618" y="826.5539742874045"/> + <y:Fill color="#FFFFFF" transparent="false"/> + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="n" textColor="#000000" verticalTextPosition="bottom" visible="true" width="37.818359375" x="-8.4091796875" y="-20.2509765625">SFR 'C'</y:NodeLabel> + <y:Shape type="ellipse"/> + </y:ShapeNode> </data> - </edge> - <edge id="n2::e5" source="n2::n6" target="n2::n3"> - <data key="d10"> - <y:PolyLineEdge> - <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> - <y:LineStyle color="#000000" type="line" width="1.0"/> - <y:Arrows source="none" target="short"/> - <y:BendStyle smoothed="false"/> - </y:PolyLineEdge> + </node> + <node id="n18"> + <data key="d6"> + <y:ShapeNode> + <y:Geometry height="15.0" width="15.0" x="996.9659866539561" y="886.404048954476"/> + <y:Fill color="#FFFFFF" transparent="false"/> + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="84.595703125" x="-34.7978515625" y="19.0">Storage SFI / EP1</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> </data> - </edge> - <edge id="n2::e6" source="n2::n2" target="n2::n7"> - <data key="d10"> - <y:PolyLineEdge> - <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> - <y:LineStyle color="#000000" type="line" width="1.0"/> - <y:Arrows source="standard" target="standard"/> - <y:BendStyle smoothed="false"/> - </y:PolyLineEdge> + </node> + <node id="n19"> + <data key="d6"> + <y:ShapeNode> + <y:Geometry height="21.0" width="21.0" x="840.429167568308" y="729.0513247624681"/> + <y:Fill color="#FFFFFF" transparent="false"/> + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="w" textColor="#000000" verticalTextPosition="bottom" visible="true" width="37.2666015625" x="-41.2666015625" y="2.37451171875">SFR 'A'</y:NodeLabel> + <y:Shape type="ellipse"/> + </y:ShapeNode> </data> - </edge> - <edge id="n2::e7" source="n2::n3" target="n2::n8"> - <data key="d10"> - <y:PolyLineEdge> - <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> - <y:LineStyle color="#000000" type="line" width="1.0"/> - <y:Arrows source="standard" target="standard"/> - <y:BendStyle smoothed="false"/> - </y:PolyLineEdge> + </node> + <node id="n20"> + <data key="d6"> + <y:ShapeNode> + <y:Geometry height="15.0" width="15.0" x="902.2912191224618" y="886.404048954476"/> + <y:Fill color="#FFFFFF" transparent="false"/> + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="94.5859375" x="-39.79296875" y="19.0">Processor SFI / EP2</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> </data> - </edge> - <edge id="n2::e8" source="n2::n3" target="n2::n9"> - <data key="d10"> - <y:PolyLineEdge> - <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> - <y:LineStyle color="#000000" type="line" width="1.0"/> - <y:Arrows source="standard" target="standard"/> - <y:BendStyle smoothed="false"/> - </y:PolyLineEdge> + </node> + <node id="n21"> + <data key="d6"> + <y:SVGNode> + <y:Geometry height="35.32593311666594" width="30.960157775878884" x="1162.0434929124954" y="685.8129035619129"/> + <y:Fill color="#CCCCFF" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="n" textColor="#000000" verticalTextPosition="bottom" visible="true" width="37.90625" x="-3.4730461120605014" y="-20.2509765625">Client 2</y:NodeLabel> + <y:SVGNodeProperties usingVisualBounds="true"/> + <y:SVGModel svgBoundsPolicy="0"> + <y:SVGContent refid="1"/> + </y:SVGModel> + </y:SVGNode> </data> - </edge> - <edge id="n3::e0" source="n3::n1" target="n3::n3"> - <data key="d10"> - <y:PolyLineEdge> - <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> - <y:LineStyle color="#000000" type="line" width="1.0"/> - <y:Arrows source="standard" target="standard"/> - <y:BendStyle smoothed="false"/> - </y:PolyLineEdge> + </node> + <node id="n22"> + <data key="d6"> + <y:ShapeNode> + <y:Geometry height="21.0" width="21.0" x="1128.131571876991" y="779.8773298641443"/> + <y:Fill color="#FFFFFF" transparent="false"/> + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="w" textColor="#000000" verticalTextPosition="bottom" visible="true" width="37.818359375" x="-41.818359375" y="2.37451171875">SFR 'C'</y:NodeLabel> + <y:Shape type="ellipse"/> + </y:ShapeNode> </data> - </edge> - <edge id="n3::e1" source="n3::n3" target="n3::n2"> - <data key="d10"> - <y:PolyLineEdge> - <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> - <y:LineStyle color="#000000" type="line" width="1.0"/> - <y:Arrows source="standard" target="standard"/> - <y:BendStyle smoothed="false"/> - </y:PolyLineEdge> + </node> + <node id="n23"> + <data key="d6"> + <y:ShapeNode> + <y:Geometry height="15.0" width="15.0" x="1228.676272678266" y="839.7274045312158"/> + <y:Fill color="#FFFFFF" transparent="false"/> + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="84.595703125" x="-34.7978515625" y="19.0">Storage SFI / EP1</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> </data> - </edge> - <edge id="n3::e2" source="n3::n1" target="n3::n2"> - <data key="d10"> - <y:PolyLineEdge> - <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> - <y:LineStyle color="#000000" type="line" width="1.0"/> - <y:Arrows source="standard" target="standard"/> - <y:BendStyle smoothed="false"/> - </y:PolyLineEdge> + </node> + <node id="n24"> + <data key="d6"> + <y:ShapeNode> + <y:Geometry height="15.0" width="15.0" x="1131.131571876991" y="839.7274045312158"/> + <y:Fill color="#FFFFFF" transparent="false"/> + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="94.5859375" x="-39.79296875" y="19.0">Processor SFI / EP2</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> </data> - </edge> - <edge id="n3::e3" source="n3::n0" target="n3::n1"> - <data key="d10"> - <y:PolyLineEdge> - <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> - <y:LineStyle color="#000000" type="line" width="1.0"/> - <y:Arrows source="none" target="short"/> - <y:BendStyle smoothed="false"/> - </y:PolyLineEdge> + </node> + <node id="n25"> + <data key="d6"> + <y:ShapeNode> + <y:Geometry height="21.0" width="21.0" x="787.6427068947602" y="1152.3539742874045"/> + <y:Fill color="#FFFFFF" transparent="false"/> + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="w" textColor="#000000" verticalTextPosition="bottom" visible="true" width="37.2666015625" x="-41.2666015625" y="2.37451171875">SFR 'B'</y:NodeLabel> + <y:Shape type="ellipse"/> + </y:ShapeNode> + </data> + </node> + <node id="n26"> + <data key="d6"> + <y:ShapeNode> + <y:Geometry height="15.0" width="15.0" x="790.6427068947602" y="1212.204048954476"/> + <y:Fill color="#FFCC00" transparent="false"/> + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="94.5859375" x="-39.79296875" y="19.0">Processor SFI / EP1</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n27"> + <data key="d6"> + <y:ShapeNode> + <y:Geometry height="21.0" width="21.0" x="904.2712980104013" y="1152.3539742874045"/> + <y:Fill color="#FFFFFF" transparent="false"/> + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="n" textColor="#000000" verticalTextPosition="bottom" visible="true" width="37.818359375" x="-8.4091796875" y="-20.2509765625">SFR 'C'</y:NodeLabel> + <y:Shape type="ellipse"/> + </y:ShapeNode> + </data> + </node> + <node id="n28"> + <data key="d6"> + <y:ShapeNode> + <y:Geometry height="15.0" width="15.0" x="1004.8159988116762" y="1212.204048954476"/> + <y:Fill color="#FFFFFF" transparent="false"/> + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="84.595703125" x="-34.7978515625" y="19.0">Storage SFI / EP1</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n29"> + <data key="d6"> + <y:ShapeNode> + <y:Geometry height="21.0" width="21.0" x="845.4092464562475" y="1054.8513247624683"/> + <y:Fill color="#FFFFFF" transparent="false"/> + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="w" textColor="#000000" verticalTextPosition="bottom" visible="true" width="37.2666015625" x="-41.2666015625" y="2.37451171875">SFR 'A'</y:NodeLabel> + <y:Shape type="ellipse"/> + </y:ShapeNode> + </data> + </node> + <node id="n30"> + <data key="d6"> + <y:ShapeNode> + <y:Geometry height="15.0" width="15.0" x="907.2712980104013" y="1212.204048954476"/> + <y:Fill color="#FFFFFF" transparent="false"/> + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="sides" modelPosition="s" textColor="#000000" verticalTextPosition="bottom" visible="true" width="94.5859375" x="-39.79296875" y="19.0">Processor SFI / EP2</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n31"> + <data key="d6"> + <y:ShapeNode> + <y:Geometry height="15.0" width="15.0" x="790.6427068947602" y="1212.204048954476"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle hasColor="false" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="8" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="13.80078125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="17.34765625" x="-1.173828125" y="0.599609375">150<y:LabelModel> + <y:SmartNodeLabelModel distance="4.0"/> + </y:LabelModel> + <y:ModelParameter> + <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/> + </y:ModelParameter> + </y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n32"> + <data key="d6"> + <y:ShapeNode> + <y:Geometry height="15.0" width="15.0" x="907.2712980104013" y="1212.204048954476"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle hasColor="false" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="8" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="13.80078125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="17.34765625" x="-1.173828125" y="0.599609375">100<y:LabelModel> + <y:SmartNodeLabelModel distance="4.0"/> + </y:LabelModel> + <y:ModelParameter> + <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/> + </y:ModelParameter> + </y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n33"> + <data key="d6"> + <y:ShapeNode> + <y:Geometry height="15.0" width="15.0" x="1004.8159988116762" y="1212.204048954476"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle hasColor="false" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="8" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="13.80078125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="12.8984375" x="1.05078125" y="0.599609375">10<y:LabelModel> + <y:SmartNodeLabelModel distance="4.0"/> + </y:LabelModel> + <y:ModelParameter> + <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/> + </y:ModelParameter> + </y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n34"> + <data key="d6"> + <y:ShapeNode> + <y:Geometry height="15.0" width="15.0" x="800.4092464562475" y="1098.503899620333"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle hasColor="false" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="8" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="13.80078125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="8.44921875" x="3.275390625" y="0.599609375">5<y:LabelModel> + <y:SmartNodeLabelModel distance="4.0"/> + </y:LabelModel> + <y:ModelParameter> + <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/> + </y:ModelParameter> + </y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n35"> + <data key="d6"> + <y:ShapeNode> + <y:Geometry height="15.0" width="15.0" x="896.4092464562475" y="1098.503899620333"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle hasColor="false" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="8" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="13.80078125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="12.8984375" x="1.05078125" y="0.599609375">10<y:LabelModel> + <y:SmartNodeLabelModel distance="4.0"/> + </y:LabelModel> + <y:ModelParameter> + <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/> + </y:ModelParameter> + </y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n36"> + <data key="d6"> + <y:ShapeNode> + <y:Geometry height="15.0" width="15.0" x="848.4092464562475" y="1162.65659876567"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle hasColor="false" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="8" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="13.80078125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="8.44921875" x="3.275390625" y="0.599609375">5<y:LabelModel> + <y:SmartNodeLabelModel distance="4.0"/> + </y:LabelModel> + <y:ModelParameter> + <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/> + </y:ModelParameter> + </y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n37"> + <data key="d6"> + <y:ShapeNode> + <y:Geometry height="15.0" width="15.0" x="785.6626280068207" y="886.404048954476"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle hasColor="false" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="8" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="13.80078125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="12.8984375" x="1.05078125" y="0.599609375">50<y:LabelModel> + <y:SmartNodeLabelModel distance="4.0"/> + </y:LabelModel> + <y:ModelParameter> + <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/> + </y:ModelParameter> + </y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n38"> + <data key="d6"> + <y:ShapeNode> + <y:Geometry height="15.0" width="15.0" x="996.9659866539561" y="886.404048954476"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle hasColor="false" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="8" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="13.80078125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="12.8984375" x="1.05078125" y="0.599609375">10<y:LabelModel> + <y:SmartNodeLabelModel distance="4.0"/> + </y:LabelModel> + <y:ModelParameter> + <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/> + </y:ModelParameter> + </y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n39"> + <data key="d6"> + <y:ShapeNode> + <y:Geometry height="15.0" width="15.0" x="1131.131571876991" y="839.7274045312158"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle hasColor="false" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="8" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="13.80078125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="12.8984375" x="1.05078125" y="0.599609375">50<y:LabelModel> + <y:SmartNodeLabelModel distance="4.0"/> + </y:LabelModel> + <y:ModelParameter> + <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/> + </y:ModelParameter> + </y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n40"> + <data key="d6"> + <y:ShapeNode> + <y:Geometry height="15.0" width="15.0" x="1228.676272678266" y="839.7274045312158"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle hasColor="false" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="8" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="13.80078125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="12.8984375" x="1.05078125" y="0.599609375">10<y:LabelModel> + <y:SmartNodeLabelModel distance="4.0"/> + </y:LabelModel> + <y:ModelParameter> + <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/> + </y:ModelParameter> + </y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n41"> + <data key="d6"> + <y:SVGNode> + <y:Geometry height="22.891233402652546" width="20.06220742959614" x="955.2712980104013" y="1123.7414631686688"/> + <y:Fill color="#CCCCFF" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="8.031103714798064" y="26.891233402652688"> + <y:LabelModel> + <y:SmartNodeLabelModel distance="4.0"/> + </y:LabelModel> + <y:ModelParameter> + <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="-0.5" nodeRatioX="0.0" nodeRatioY="0.5" offsetX="0.0" offsetY="4.0" upX="0.0" upY="-1.0"/> + </y:ModelParameter> + </y:NodeLabel> + <y:SVGNodeProperties usingVisualBounds="true"/> + <y:SVGModel svgBoundsPolicy="0"> + <y:SVGContent refid="1"/> + </y:SVGModel> + </y:SVGNode> + </data> + </node> + <node id="n42"> + <data key="d6"> + <y:SVGNode> + <y:Geometry height="35.32593311666594" width="30.960157775878884" x="840.429167568308" y="980.1896829666033"/> + <y:Fill color="#CCCCFF" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="16.2509765625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="37.90625" x="-3.4730461120605014" y="39.32593311666608">Client 3<y:LabelModel> + <y:SmartNodeLabelModel distance="4.0"/> + </y:LabelModel> + <y:ModelParameter> + <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="-0.5" nodeRatioX="0.0" nodeRatioY="0.5" offsetX="0.0" offsetY="4.0" upX="0.0" upY="-1.0"/> + </y:ModelParameter> + </y:NodeLabel> + <y:SVGNodeProperties usingVisualBounds="true"/> + <y:SVGModel svgBoundsPolicy="0"> + <y:SVGContent refid="1"/> + </y:SVGModel> + </y:SVGNode> + </data> + </node> + <edge id="n3::e0" source="n3::n1" target="n3::n3"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> + <y:LineStyle color="#000000" type="line" width="1.0"/> + <y:Arrows source="standard" target="standard"/> + <y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="9" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="15.02587890625" horizontalTextPosition="center" iconTextGap="4" modelName="side_slider" preferredPlacement="center_on_edge" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="14.0107421875" x="55.292258431999926" y="76.12963032125606">10<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" placement="center" side="on_edge" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="n3::e1" source="n3::n3" target="n3::n2"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> + <y:LineStyle color="#000000" type="line" width="1.0"/> + <y:Arrows source="standard" target="standard"/> + <y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="9" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="15.02587890625" horizontalTextPosition="center" iconTextGap="4" modelName="side_slider" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="9.00537109375" x="-101.70268381298774" y="-17.025875049837737">5<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="n3::e2" source="n3::n1" target="n3::n2"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> + <y:LineStyle color="#000000" type="line" width="1.0"/> + <y:Arrows source="standard" target="standard"/> + <y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="9" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="15.02587890625" horizontalTextPosition="center" iconTextGap="4" modelName="side_slider" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="9.00537109375" x="-63.54654294166278" y="76.06703876852168">5<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="n3::e3" source="n3::n0" target="n3::n1"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> + <y:LineStyle color="#000000" type="dashed" width="1.0"/> + <y:Arrows source="none" target="short"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="n3::e4" source="n3::n5" target="n3::n3"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> + <y:LineStyle color="#000000" type="dashed" width="1.0"/> + <y:Arrows source="none" target="short"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="n3::e5" source="n3::n6" target="n3::n1"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> + <y:LineStyle color="#000000" type="dashed" width="1.0"/> + <y:Arrows source="none" target="short"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="n3::e6" source="n3::n2" target="n3::n7"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> + <y:LineStyle color="#000000" type="dashed" width="1.0"/> + <y:Arrows source="standard" target="standard"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="n3::e7" source="n3::n3" target="n3::n8"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> + <y:LineStyle color="#000000" type="dashed" width="1.0"/> + <y:Arrows source="standard" target="standard"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="n3::e8" source="n3::n3" target="n3::n9"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> + <y:LineStyle color="#000000" type="dashed" width="1.0"/> + <y:Arrows source="standard" target="standard"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> </data> </edge> - <edge id="n3::e4" source="n3::n5" target="n3::n3"> + <edge id="n4::e0" source="n4::n1" target="n4::n3"> <data key="d10"> <y:PolyLineEdge> <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> <y:LineStyle color="#000000" type="line" width="1.0"/> - <y:Arrows source="none" target="short"/> + <y:Arrows source="standard" target="standard"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="n4::e1" source="n4::n3" target="n4::n2"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> + <y:LineStyle color="#000000" type="line" width="1.0"/> + <y:Arrows source="standard" target="standard"/> <y:BendStyle smoothed="false"/> </y:PolyLineEdge> </data> </edge> - <edge id="n3::e5" source="n3::n3" target="n3::n6"> + <edge id="n4::e2" source="n4::n1" target="n4::n2"> <data key="d10"> <y:PolyLineEdge> <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> @@ -611,7 +1016,37 @@ </y:PolyLineEdge> </data> </edge> - <edge id="e0" source="n4" target="n5"> + <edge id="n4::e3" source="n4::n0" target="n4::n1"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> + <y:LineStyle color="#000000" type="dashed" width="1.0"/> + <y:Arrows source="none" target="short"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="n4::e4" source="n4::n5" target="n4::n3"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> + <y:LineStyle color="#000000" type="dashed" width="1.0"/> + <y:Arrows source="none" target="short"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="n4::e5" source="n4::n3" target="n4::n6"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> + <y:LineStyle color="#000000" type="dashed" width="1.0"/> + <y:Arrows source="standard" target="standard"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e0" source="n5" target="n6"> <data key="d10"> <y:PolyLineEdge> <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> @@ -623,7 +1058,7 @@ </y:PolyLineEdge> </data> </edge> - <edge id="e1" source="n5" target="n5"> + <edge id="e1" source="n6" target="n6"> <data key="d10"> <y:PolyLineEdge> <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"> @@ -631,8 +1066,7 @@ </y:Path> <y:LineStyle color="#000000" type="line" width="1.0"/> <y:Arrows source="none" target="standard"/> - <y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="9" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="26.0517578125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="76.54052734375" x="-27.658209228515773" y="-49.023382268781916">handle request -route specification<y:LabelModel> + <y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="9" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="15.02587890625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="63.5458984375" x="-21.160894775390773" y="-41.954412542219416">handle request<y:LabelModel> <y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/> </y:LabelModel> <y:ModelParameter> @@ -644,7 +1078,7 @@ route specification<y:LabelModel> </y:PolyLineEdge> </data> </edge> - <edge id="e2" source="n5" target="n6"> + <edge id="e2" source="n6" target="n7"> <data key="d10"> <y:PolyLineEdge> <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> @@ -656,11 +1090,11 @@ route specification<y:LabelModel> </y:PolyLineEdge> </data> </edge> - <edge id="e3" source="n6" target="n7"> + <edge id="e3" source="n7" target="n8"> <data key="d10"> <y:PolyLineEdge> <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> - <y:LineStyle color="#000000" type="line" width="1.0"/> + <y:LineStyle color="#000000" type="dashed" width="1.0"/> <y:Arrows source="none" target="standard"/> <y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="9" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="15.02587890625" horizontalTextPosition="center" iconTextGap="4" modelName="two_pos" modelPosition="head" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="61.02783203125" x="29.72105598449673" y="-17.025884710188166">request transit<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> </y:EdgeLabel> @@ -668,7 +1102,7 @@ route specification<y:LabelModel> </y:PolyLineEdge> </data> </edge> - <edge id="e4" source="n6" target="n6"> + <edge id="e4" source="n7" target="n7"> <data key="d10"> <y:PolyLineEdge> <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"> @@ -688,7 +1122,7 @@ route specification<y:LabelModel> </y:PolyLineEdge> </data> </edge> - <edge id="e5" source="n8" target="n9"> + <edge id="e5" source="n9" target="n10"> <data key="d10"> <y:PolyLineEdge> <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> @@ -700,7 +1134,7 @@ route specification<y:LabelModel> </y:PolyLineEdge> </data> </edge> - <edge id="e6" source="n9" target="n9"> + <edge id="e6" source="n10" target="n10"> <data key="d10"> <y:PolyLineEdge> <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"> @@ -720,7 +1154,7 @@ route specification<y:LabelModel> </y:PolyLineEdge> </data> </edge> - <edge id="e7" source="n9" target="n10"> + <edge id="e7" source="n10" target="n11"> <data key="d10"> <y:PolyLineEdge> <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> @@ -732,11 +1166,11 @@ route specification<y:LabelModel> </y:PolyLineEdge> </data> </edge> - <edge id="e8" source="n10" target="n11"> + <edge id="e8" source="n11" target="n12"> <data key="d10"> <y:PolyLineEdge> <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> - <y:LineStyle color="#000000" type="line" width="1.0"/> + <y:LineStyle color="#000000" type="dashed" width="1.0"/> <y:Arrows source="standard" target="none"/> <y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="9" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="15.02587890625" horizontalTextPosition="center" iconTextGap="4" modelName="two_pos" modelPosition="head" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="68.03271484375" x="26.21861457824673" y="-17.025872503156734">response transit<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> </y:EdgeLabel> @@ -744,7 +1178,7 @@ route specification<y:LabelModel> </y:PolyLineEdge> </data> </edge> - <edge id="e9" source="n10" target="n10"> + <edge id="e9" source="n11" target="n11"> <data key="d10"> <y:PolyLineEdge> <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"> @@ -752,8 +1186,7 @@ route specification<y:LabelModel> </y:Path> <y:LineStyle color="#000000" type="line" width="1.0"/> <y:Arrows source="standard" target="none"/> - <y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="9" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="26.0517578125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="76.54052734375" x="-27.65819168090843" y="-49.023309026594234">handle response -route specification<y:LabelModel> + <y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="9" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="15.02587890625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="70.55078125" x="-24.66331863403343" y="-41.954339300031734">handle response<y:LabelModel> <y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/> </y:LabelModel> <y:ModelParameter> @@ -765,15 +1198,15 @@ route specification<y:LabelModel> </y:PolyLineEdge> </data> </edge> - <edge id="e10" source="n12" target="n12"> + <edge id="e10" source="n13" target="n13"> <data key="d10"> <y:PolyLineEdge> <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"> - <y:Point x="388.42968444824123" y="867.3026495249364"/> + <y:Point x="294.2630123927549" y="867.3026495249364"/> </y:Path> <y:LineStyle color="#000000" type="line" width="1.0"/> <y:Arrows source="standard" target="none"/> - <y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="9" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="15.02587890625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="68.03271484375" x="-19.017062377930642" y="-34.36452576803231">process request<y:LabelModel> + <y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="9" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="15.02587890625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="68.03271484375" x="-19.017077939276362" y="-34.36452576803231">process request<y:LabelModel> <y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/> </y:LabelModel> <y:ModelParameter> @@ -785,6 +1218,293 @@ route specification<y:LabelModel> </y:PolyLineEdge> </data> </edge> + <edge id="e11" source="n14" target="n19"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"> + <y:Point x="817.7093602092111" y="710.1235840570342"/> + </y:Path> + <y:LineStyle color="#339966" type="dashed" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="9" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="two_pos" modelPosition="head" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="-13.466990994052935" y="19.181343801702837"> + <y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e12" source="n19" target="n15"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"> + <y:Point x="808.7337834694587" y="780.034585010323"/> + </y:Path> + <y:LineStyle color="#339966" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="9" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="two_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="-37.17839147178756" y="49.91116197308247"> + <y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e13" source="n15" target="n16"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"> + <y:Point x="766.4727539175045" y="864.6529545773675"/> + </y:Path> + <y:LineStyle color="#339966" type="dashed" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="9" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="two_pos" modelPosition="head" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="-21.455190774668722" y="24.36413409014051"> + <y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e14" source="n16" target="n15"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"> + <y:Point x="820.4060236982481" y="867.0125351302751"/> + </y:Path> + <y:LineStyle color="#339966" type="dashed" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e15" source="n15" target="n17"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"> + <y:Point x="849.7230685028238" y="845.83317414283"/> + </y:Path> + <y:LineStyle color="#339966" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e16" source="n17" target="n18"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> + <y:LineStyle color="#339966" type="dashed" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e17" source="n18" target="n17"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="-2.175385463925977" tx="0.0" ty="0.0"> + <y:Point x="975.5878932316491" y="837.0539742874045"/> + </y:Path> + <y:LineStyle color="#3366FF" type="dashed" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e18" source="n17" target="n15"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"> + <y:Point x="848.644403107209" y="825.877864323955"/> + </y:Path> + <y:LineStyle color="#3366FF" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e19" source="n19" target="n14"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"> + <y:Point x="883.4405327544924" y="712.6517060780066"/> + </y:Path> + <y:LineStyle color="#3366FF" type="dashed" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e20" source="n15" target="n19"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"> + <y:Point x="834.6217529642156" y="794.0572351533164"/> + </y:Path> + <y:LineStyle color="#3366FF" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e21" source="n17" target="n20"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> + <y:LineStyle color="#C0C0C0" type="dashed" width="1.0"/> + <y:Arrows source="none" target="none"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e22" source="n22" target="n23"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> + <y:LineStyle color="#339966" type="dashed" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e23" source="n23" target="n22"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="-2.175385463925977" tx="0.0" ty="0.0"> + <y:Point x="1236.176272678266" y="790.3773298641443"/> + </y:Path> + <y:LineStyle color="#3366FF" type="dashed" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e24" source="n21" target="n22"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="-14.980663742331217" sy="15.468648468886613" tx="0.0" ty="0.0"> + <y:Point x="1138.631571876991" y="718.9445185891325"/> + </y:Path> + <y:LineStyle color="#339966" type="dashed" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e25" source="n22" target="n21"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="14.818145939894293" ty="17.656223449753725"> + <y:Point x="1192.3417177403294" y="754.0011439466159"/> + </y:Path> + <y:LineStyle color="#000000" type="dashed" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e26" source="n22" target="n24"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"> + <y:Point x="1112.654633510916" y="817.3727359389893"/> + </y:Path> + <y:LineStyle color="#339966" type="dashed" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e27" source="n24" target="n22"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"> + <y:Point x="1165.239571547141" y="819.3952335557674"/> + </y:Path> + <y:LineStyle color="#339966" type="dashed" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e28" source="n29" target="n33"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"> + <y:Point x="786.16382775501" y="1161.9550581506196"/> + <y:Point x="795.7136771353722" y="1211.8264938036223"/> + <y:Point x="808.4136504432845" y="1159.8991877979026"/> + <y:Point x="904.4426914347049" y="1159.8991877979026"/> + <y:Point x="915.0867943899003" y="1174.6881906577692"/> + </y:Path> + <y:LineStyle color="#FF9900" type="line" width="1.0"/> + <y:Arrows source="standard" target="standard"/> + <y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="8" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="13.80078125" horizontalTextPosition="center" iconTextGap="4" modelName="side_slider" preferredPlacement="anywhere" ratio="0.0" textColor="#FF9900" verticalTextPosition="bottom" visible="true" width="128.48828125" x="-149.19656670838287" y="12.111822809343266">Faster route; slower round-trip time<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="true"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e29" source="n29" target="n33"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"> + <y:Point x="904.4426914347049" y="1159.8991877979026"/> + <y:Point x="914.0257000143044" y="1212.109788369876"/> + <y:Point x="924.6366437702625" y="1161.8342192564348"/> + </y:Path> + <y:LineStyle color="#800080" type="line" width="1.0"/> + <y:Arrows source="standard" target="standard"/> + <y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="8" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="13.80078125" horizontalTextPosition="center" iconTextGap="4" modelName="free" modelPosition="anywhere" preferredPlacement="anywhere" ratio="0.5" textColor="#800080" verticalTextPosition="bottom" visible="true" width="127.16015625" x="17.375070192673547" y="18.986005865495827">Slower route; faster round-trip time<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="true"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e30" source="n42" target="n29"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"> + <y:Point x="829.1049907674028" y="1036.6644652049567"/> + </y:Path> + <y:LineStyle color="#000000" type="dashed" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e31" source="n29" target="n42"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"> + <y:Point x="887.1335894327984" y="1039.9803851286938"/> + </y:Path> + <y:LineStyle color="#000000" type="dashed" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e32" source="n41" target="n27"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> + <y:LineStyle color="#999999" type="dashed" width="1.0"/> + <y:Arrows source="standard" target="standard"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e33" source="n0" target="n29"> + <data key="d10"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"> + <y:Point x="829.1049907674028" y="1036.6644652049567"/> + </y:Path> + <y:LineStyle color="#999999" type="dashed" width="1.0"/> + <y:Arrows source="standard" target="standard"/> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> </graph> <data key="d7"> <y:Resources> diff --git a/docs/image/e2e-extended-chain-network.png b/docs/image/e2e-extended-chain-network.png new file mode 100644 index 0000000000000000000000000000000000000000..88eb8c94032db1e735c39093574f4ac644237a9e Binary files /dev/null and b/docs/image/e2e-extended-chain-network.png differ diff --git a/docs/image/e2e-extended-client1-path.png b/docs/image/e2e-extended-client1-path.png new file mode 100644 index 0000000000000000000000000000000000000000..cb158c1478fe7764e9c84b1a7b9f83111d70e95c Binary files /dev/null and b/docs/image/e2e-extended-client1-path.png differ diff --git a/docs/image/e2e-extended-client2-path.png b/docs/image/e2e-extended-client2-path.png new file mode 100644 index 0000000000000000000000000000000000000000..1d084bba503d5cdeb77987c9b8c15aa8a4908225 Binary files /dev/null and b/docs/image/e2e-extended-client2-path.png differ diff --git a/docs/image/e2e-extended-client3-path.png b/docs/image/e2e-extended-client3-path.png new file mode 100644 index 0000000000000000000000000000000000000000..819d6f61356a4804d21db955ac886c0d62307b10 Binary files /dev/null and b/docs/image/e2e-extended-client3-path.png differ diff --git a/docs/image/e2e-simple-chain-mc-processing.png b/docs/image/e2e-simple-chain-mc-processing.png index 16c80c3f6b942e6ae554206b5f41d4c6b8b24729..453da28646023ea465d229bdbfd7bdc689cd275c 100644 Binary files a/docs/image/e2e-simple-chain-mc-processing.png and b/docs/image/e2e-simple-chain-mc-processing.png differ diff --git a/docs/image/e2e-simple-chain-network.png b/docs/image/e2e-simple-chain-network.png index 8c054d0719314f2a5bcde4b17813f3d8043aeb70..21ef62e588f1b781345fa496feb9596974c0f79e 100644 Binary files a/docs/image/e2e-simple-chain-network.png and b/docs/image/e2e-simple-chain-network.png differ diff --git a/docs/image/e2e-simple-chain-request-steps.png b/docs/image/e2e-simple-chain-request-steps.png index 9c82d58aa0e5faeb3f3ff9be38d12d75d0fe6d0a..540bcce090785984f37eab146435cfc9c14607fb 100644 Binary files a/docs/image/e2e-simple-chain-request-steps.png and b/docs/image/e2e-simple-chain-request-steps.png differ diff --git a/docs/image/e2e-simple-chain-response-steps.png b/docs/image/e2e-simple-chain-response-steps.png index 7401e2692bf4916979846f390039b7827c6aaecf..948032bf664a7be2e94d35f96fde0d2ac33d3c53 100644 Binary files a/docs/image/e2e-simple-chain-response-steps.png and b/docs/image/e2e-simple-chain-response-steps.png differ diff --git a/docs/image/network-SFR3-SFR1.png b/docs/image/network-SFR3-SFR1.png new file mode 100644 index 0000000000000000000000000000000000000000..80d83afa18c14e8b70f48f33eddb71ca81eb81d7 Binary files /dev/null and b/docs/image/network-SFR3-SFR1.png differ diff --git a/docs/image/network-SFR3-SFR2.png b/docs/image/network-SFR3-SFR2.png new file mode 100644 index 0000000000000000000000000000000000000000..43e5638c382a58509add4bce4a107b68c03af079 Binary files /dev/null and b/docs/image/network-SFR3-SFR2.png differ diff --git a/docs/image/network_graph.png b/docs/image/network_graph.png new file mode 100644 index 0000000000000000000000000000000000000000..6792fcd92222dbe6f5c7ed3f4b49a3e887775cc3 Binary files /dev/null and b/docs/image/network_graph.png differ