Add 'Programming/AIS/' from commit '0305825a3d73e8ffcbbc81b30af0c90c51d0a8fd'

git-subtree-dir: Programming/AIS
git-subtree-mainline: 17121f45b9
git-subtree-split: 0305825a3d
This commit is contained in:
Krzysztof kuhy Rudnicki 2026-02-06 22:14:32 +01:00
commit 4b5b8e44e8
35 changed files with 4303 additions and 0 deletions

308
Programming/AIS/.gitignore vendored Normal file
View File

@ -0,0 +1,308 @@
## Core latex/pdflatex auxiliary files:
*.aux
*.lof
*.log
*.lot
*.fls
*.out
*.toc
*.fmt
*.fot
*.cb
*.cb2
.*.lb
## Intermediate documents:
*.dvi
*.xdv
*-converted-to.*
# these rules might exclude image files for figures etc.
# *.ps
# *.eps
# *.pdf
## Generated if empty string is given at "Please type another file name for output:"
.pdf
## Bibliography auxiliary files (bibtex/biblatex/biber):
*.bbl
*.bbl-SAVE-ERROR
*.bcf
*.bcf-SAVE-ERROR
*.blg
*-blx.aux
*-blx.bib
*.run.xml
## Build tool auxiliary files:
*.fdb_latexmk
*.synctex
*.synctex(busy)
*.synctex.gz
*.synctex.gz(busy)
*.pdfsync
*.rubbercache
rubber.cache
## Build tool directories for auxiliary files
# latexrun
latex.out/
## Auxiliary and intermediate files from other packages:
# algorithms
*.alg
*.loa
# achemso
acs-*.bib
# amsthm
*.thm
# beamer
*.nav
*.pre
*.snm
*.vrb
# changes
*.soc
# comment
*.cut
# cprotect
*.cpt
# elsarticle (documentclass of Elsevier journals)
*.spl
# endnotes
*.ent
# fixme
*.lox
# feynmf/feynmp
*.mf
*.mp
*.t[1-9]
*.t[1-9][0-9]
*.tfm
#(r)(e)ledmac/(r)(e)ledpar
*.end
*.?end
*.[1-9]
*.[1-9][0-9]
*.[1-9][0-9][0-9]
*.[1-9]R
*.[1-9][0-9]R
*.[1-9][0-9][0-9]R
*.eledsec[1-9]
*.eledsec[1-9]R
*.eledsec[1-9][0-9]
*.eledsec[1-9][0-9]R
*.eledsec[1-9][0-9][0-9]
*.eledsec[1-9][0-9][0-9]R
# glossaries
*.acn
*.acr
*.glg
*.glo
*.gls
*.glsdefs
*.lzo
*.lzs
*.slg
*.slo
*.sls
# uncomment this for glossaries-extra (will ignore makeindex's style files!)
# *.ist
# gnuplot
*.gnuplot
*.table
# gnuplottex
*-gnuplottex-*
# gregoriotex
*.gaux
*.glog
*.gtex
# htlatex
*.4ct
*.4tc
*.idv
*.lg
*.trc
*.xref
# hypdoc
*.hd
# hyperref
*.brf
# knitr
*-concordance.tex
# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files
# *.tikz
*-tikzDictionary
# listings
*.lol
# luatexja-ruby
*.ltjruby
# makeidx
*.idx
*.ilg
*.ind
# minitoc
*.maf
*.mlf
*.mlt
*.mtc[0-9]*
*.slf[0-9]*
*.slt[0-9]*
*.stc[0-9]*
# minted
_minted*
*.pyg
# morewrites
*.mw
# newpax
*.newpax
# nomencl
*.nlg
*.nlo
*.nls
# pax
*.pax
# pdfpcnotes
*.pdfpc
# sagetex
*.sagetex.sage
*.sagetex.py
*.sagetex.scmd
# scrwfile
*.wrt
# svg
svg-inkscape/
# sympy
*.sout
*.sympy
sympy-plots-for-*.tex/
# pdfcomment
*.upa
*.upb
# pythontex
*.pytxcode
pythontex-files-*/
# tcolorbox
*.listing
# thmtools
*.loe
# TikZ & PGF
*.dpth
*.md5
*.auxlock
# titletoc
*.ptc
# todonotes
*.tdo
# vhistory
*.hst
*.ver
# easy-todo
*.lod
# xcolor
*.xcp
# xmpincl
*.xmpi
# xindy
*.xdy
# xypic precompiled matrices and outlines
*.xyc
*.xyd
# endfloat
*.ttt
*.fff
# Latexian
TSWLatexianTemp*
## Editors:
# WinEdt
*.bak
*.sav
# Texpad
.texpadtmp
# LyX
*.lyx~
# Kile
*.backup
# gummi
.*.swp
# KBibTeX
*~[0-9]*
# TeXnicCenter
*.tps
# auto folder when using emacs and auctex
./auto/*
*.el
# expex forward references with \gathertags
*-tags.tex
# standalone packages
*.sta
# Makeindex log files
*.lpz
# xwatermark package
*.xwm
# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib
# option is specified. Footnotes are the stored in a file with suffix Notes.bib.
# Uncomment the next line to have this generated file ignored.
#*Notes.bib

View File

@ -0,0 +1,5 @@
{
"recommendations": [
"hediet.vscode-drawio"
]
}

View File

@ -0,0 +1,304 @@
<?xml version="1.0" encoding="UTF-8"?>
<archimate:model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:archimate="http://www.archimatetool.com/archimate" name="E-Toll" id="id-9fd786fbe53743b2a56ea0257d5960f7" version="5.0.0">
<folder name="Strategy" id="id-2fef36cddbea4d3aa2b3ecc8827377a9" type="strategy"/>
<folder name="Business" id="id-379bef527554480aa5bbb7f877502a62" type="business">
<folder name="Actors" id="id-50d9091955004365b625b9e9c90285f6">
<element xsi:type="archimate:BusinessActor" name="System Administrator" id="id-8a2fd7b952b442059e37b823e98ef9e8"/>
<element xsi:type="archimate:BusinessActor" name="Driver" id="id-4db17356989d4d27a5e944b7f1a96c29"/>
<element xsi:type="archimate:BusinessActor" name="e-Toll Center Operator" id="id-74dadecad28d4fa0ba623eea55fdff68"/>
<element xsi:type="archimate:BusinessActor" name="CEPiK System / EETS Provider" id="id-6225abecc0b1408aa3eb5209cbfa1eae"/>
<element xsi:type="archimate:BusinessActor" name="External Payment Provider" id="id-8abd46f220d04e4aa0c434c9da458230"/>
</folder>
<folder name="Business Roles" id="id-1cf367318bc344399ddee2bdf2b0d5c1">
<element xsi:type="archimate:BusinessRole" name="Auditor" id="id-9306060577224b0f9cdfa4832c08eb05"/>
<element xsi:type="archimate:BusinessRole" name="Payer" id="id-07286e938ce7413a9154e05a04ba652b"/>
<element xsi:type="archimate:BusinessRole" name="Debt Collector" id="id-e5c4673a86544254af189b1fe7e9f5e1"/>
<element xsi:type="archimate:BusinessRole" name="System User" id="id-d044d84669a146ad980ec4c2f41c355b"/>
<element xsi:type="archimate:BusinessRole" name="Tariff Administrator" id="id-c1452ca84c86481fb9cda6dff3093d61"/>
</folder>
<folder name="Business Processes" id="id-ad31d1e819924e199c2aa1dc7922b1e6">
<element xsi:type="archimate:BusinessProcess" name="Fee Calculation and Collection" id="id-321b501948c24072ae57b08d699bcea4"/>
<element xsi:type="archimate:BusinessProcess" name="Fee Correction" id="id-67d2c3244a114c74bae6c3f23b78b6fd"/>
<element xsi:type="archimate:BusinessProcess" name="Reporting and Analytics" id="id-edbad7711198479dbefac123f6057bf8"/>
<element xsi:type="archimate:BusinessProcess" name="User &amp; Vehicle Registration" id="id-41937395311a43cb9caa3bb5e525ec6f"/>
<element xsi:type="archimate:BusinessProcess" name="Violation Detection and Debt Collection" id="id-57d364d3f1dd47d19a82b2ee52a412be"/>
<element xsi:type="archimate:BusinessProcess" name="Account Management and Top-ups" id="id-9b52682e6ed24c26bf978f16ad8613fa"/>
</folder>
<folder name="Business Services" id="id-48d64d2ee1ff42288cfd7ea35f63d3ee">
<element xsi:type="archimate:BusinessService" name="External System Integration" id="id-3820fe0cd73944c4975f5b74af1e3c04"/>
<element xsi:type="archimate:BusinessService" name="Account Management" id="id-136c3bf396b44c0397d1c754dd726193"/>
<element xsi:type="archimate:BusinessService" name="Toll Payment" id="id-60af1786416c4d31bb911f8c629c7d84"/>
<element xsi:type="archimate:BusinessService" name="Notifications" id="id-c5209ce7a2e0484ca8714db4c63ab097"/>
<element xsi:type="archimate:BusinessService" name="Administrative Reports" id="id-0b9e950607ad41b99a82ede66b964f2e"/>
</folder>
<folder name="Business Objects" id="id-469cf78f5a8741f187d9b25f085bdfac">
<element xsi:type="archimate:BusinessObject" name="Vehicle Data" id="id-d8a10d32274e41afa4bd7b3f80cb0fc7"/>
<element xsi:type="archimate:BusinessObject" name="Traffic Report" id="id-098ca104bac945d096982c5d5745bb91"/>
<element xsi:type="archimate:BusinessObject" name="Tariff" id="id-0e4408d920594bb2a49405a1177bfd93"/>
<element xsi:type="archimate:BusinessObject" name="Payment Transaction" id="id-d574c8abe5e44a07b54f01ca262b9119"/>
<element xsi:type="archimate:BusinessObject" name="Travel Route" id="id-b2be9d637cb6488f94f167ff4b56df60"/>
<element xsi:type="archimate:BusinessObject" name="Violation Record" id="id-909b924521804141a15edcd8d646ebb4"/>
</folder>
<folder name="Outcome" id="id-6f20f0344f8744ed8296683295497588">
<element xsi:type="archimate:Product" name="Paid Journey" id="id-4c1c1754c9a044149fada603c25196ac"/>
</folder>
<folder name="Event" id="id-7911f43a8ca74a60b7fccf15e306bd98">
<element xsi:type="archimate:BusinessEvent" name="Vehicle Entered Toll Section" id="id-ad075de523b44b9da04c98b26f7a4873"/>
<element xsi:type="archimate:BusinessEvent" name="Balance&lt;0" id="id-690724e36abf4b98b5c46ec8b81d6506"/>
</folder>
<element xsi:type="archimate:BusinessRole" name="Payment Provider" id="id-cc2a574cc3ad47a386fc2dc00741162e"/>
<element xsi:type="archimate:BusinessRole" name="External System" id="id-131346f60e874db7b7f33fe110c2ef35"/>
<element xsi:type="archimate:BusinessService" name="User &amp; Vehicle Registration" id="id-4d0e5b53b9c645d48840f595047a2ade"/>
<element xsi:type="archimate:BusinessService" name="Fee Correction" id="id-343b7faab80b42d285dba8d26604b08b"/>
<element xsi:type="archimate:BusinessService" name="Violation Detection and Debt Collection" id="id-9a846da052c44cf5907fd8c0331cdeb9"/>
<element xsi:type="archimate:BusinessProcess" name="External System Integration" id="id-2a8e920e2dd4415fa1271175c1685256"/>
<element xsi:type="archimate:BusinessProcess" name="Notification Sending" id="id-97864bae126a4a858e2c00d60237db5d"/>
</folder>
<folder name="Application" id="id-80b7b914a8a34ff2bb188452bc8bb168" type="application"/>
<folder name="Technology &amp; Physical" id="id-7d9dbc60cb904e12a3e41bdcd7f605cd" type="technology"/>
<folder name="Motivation" id="id-421e5645c00346b6af5dcdf90e7f4725" type="motivation"/>
<folder name="Implementation &amp; Migration" id="id-d7cfd7099fde494b942b3b296b65d855" type="implementation_migration"/>
<folder name="Other" id="id-7c088e487aad4576ba08c42513fe832d" type="other">
<element xsi:type="archimate:Junction" name="Read" id="id-aa9b71e0e43c482f910c60af4e0821db"/>
<element xsi:type="archimate:Junction" name="Junction" id="id-32085bcb0a1a451e8f450d1ecd892923"/>
</folder>
<folder name="Relations" id="id-a7541a3a41dd4d8e8f2d0133870c0c7b" type="relations">
<element xsi:type="archimate:AssignmentRelationship" id="id-caa61b1b190d4bf788f68410985e64c9" source="id-4db17356989d4d27a5e944b7f1a96c29" target="id-07286e938ce7413a9154e05a04ba652b"/>
<element xsi:type="archimate:AssignmentRelationship" id="id-81da2f9d35264da7bfaf26a24452694f" source="id-4db17356989d4d27a5e944b7f1a96c29" target="id-d044d84669a146ad980ec4c2f41c355b"/>
<element xsi:type="archimate:AssignmentRelationship" id="id-69c38a6e803e4c67872ea59f6a3606db" source="id-8a2fd7b952b442059e37b823e98ef9e8" target="id-c1452ca84c86481fb9cda6dff3093d61"/>
<element xsi:type="archimate:AssignmentRelationship" id="id-79949de1dd9543e4a574b836e696c22e" source="id-74dadecad28d4fa0ba623eea55fdff68" target="id-e5c4673a86544254af189b1fe7e9f5e1"/>
<element xsi:type="archimate:AssignmentRelationship" id="id-01c8f48e18f04cde81f5ee0d7908d5c4" source="id-74dadecad28d4fa0ba623eea55fdff68" target="id-9306060577224b0f9cdfa4832c08eb05"/>
<element xsi:type="archimate:AssignmentRelationship" id="id-886b460caf054a44980adabf06d8ff79" source="id-8abd46f220d04e4aa0c434c9da458230" target="id-cc2a574cc3ad47a386fc2dc00741162e"/>
<element xsi:type="archimate:AssignmentRelationship" id="id-67b7da1542d3421abeaba89858c35f46" source="id-6225abecc0b1408aa3eb5209cbfa1eae" target="id-131346f60e874db7b7f33fe110c2ef35"/>
<element xsi:type="archimate:ServingRelationship" id="id-fae490d691b84c07a62a33032f85261c" source="id-60af1786416c4d31bb911f8c629c7d84" target="id-07286e938ce7413a9154e05a04ba652b"/>
<element xsi:type="archimate:ServingRelationship" id="id-d9d00d12d8984d3f9b95facf7cd46b6c" source="id-136c3bf396b44c0397d1c754dd726193" target="id-32085bcb0a1a451e8f450d1ecd892923"/>
<element xsi:type="archimate:ServingRelationship" id="id-05ef47f6025f4210858d56cf34acfe30" source="id-32085bcb0a1a451e8f450d1ecd892923" target="id-d044d84669a146ad980ec4c2f41c355b"/>
<element xsi:type="archimate:ServingRelationship" id="id-7edbffd1c50d4f45b486c495ccbb557f" source="id-343b7faab80b42d285dba8d26604b08b" target="id-c1452ca84c86481fb9cda6dff3093d61"/>
<element xsi:type="archimate:ServingRelationship" id="id-64e597c1ff954b1cb46bb86adebb7779" source="id-9a846da052c44cf5907fd8c0331cdeb9" target="id-e5c4673a86544254af189b1fe7e9f5e1"/>
<element xsi:type="archimate:ServingRelationship" id="id-a29ebd6bde2e4bc993523f558349fe63" source="id-0b9e950607ad41b99a82ede66b964f2e" target="id-9306060577224b0f9cdfa4832c08eb05"/>
<element xsi:type="archimate:ServingRelationship" id="id-f06b5e6509fc405fadff31fb13cb39a4" source="id-3820fe0cd73944c4975f5b74af1e3c04" target="id-131346f60e874db7b7f33fe110c2ef35"/>
<element xsi:type="archimate:RealizationRelationship" id="id-7b84b4286e6c46b3906e3c73b1beba1a" source="id-321b501948c24072ae57b08d699bcea4" target="id-60af1786416c4d31bb911f8c629c7d84"/>
<element xsi:type="archimate:RealizationRelationship" id="id-70fef291789045c3952586394e3e9f4c" source="id-41937395311a43cb9caa3bb5e525ec6f" target="id-4d0e5b53b9c645d48840f595047a2ade"/>
<element xsi:type="archimate:RealizationRelationship" id="id-2dc3e86262f64dd79ab886e3da99a233" source="id-9b52682e6ed24c26bf978f16ad8613fa" target="id-136c3bf396b44c0397d1c754dd726193"/>
<element xsi:type="archimate:RealizationRelationship" id="id-340333d48b85437cb9ea4736f804d03b" source="id-67d2c3244a114c74bae6c3f23b78b6fd" target="id-343b7faab80b42d285dba8d26604b08b"/>
<element xsi:type="archimate:RealizationRelationship" id="id-140f77d7833c49d394962a0f3b6c5738" source="id-57d364d3f1dd47d19a82b2ee52a412be" target="id-9a846da052c44cf5907fd8c0331cdeb9"/>
<element xsi:type="archimate:RealizationRelationship" id="id-041bc5ed6ee04acd8664c44c8cf1c5e0" source="id-edbad7711198479dbefac123f6057bf8" target="id-0b9e950607ad41b99a82ede66b964f2e"/>
<element xsi:type="archimate:RealizationRelationship" id="id-0576bf3e889f4bb0bb0ee9c457955dfd" source="id-2a8e920e2dd4415fa1271175c1685256" target="id-3820fe0cd73944c4975f5b74af1e3c04"/>
<element xsi:type="archimate:TriggeringRelationship" id="id-0d7542a22bb747c2b3d6fb8af86efe66" source="id-ad075de523b44b9da04c98b26f7a4873" target="id-321b501948c24072ae57b08d699bcea4"/>
<element xsi:type="archimate:TriggeringRelationship" id="id-c6f76eed3e8d48289b354bfcd40070a2" source="id-690724e36abf4b98b5c46ec8b81d6506" target="id-57d364d3f1dd47d19a82b2ee52a412be"/>
<element xsi:type="archimate:FlowRelationship" id="id-f1fdd42b703e4e3f9f715195ad59b90b" source="id-321b501948c24072ae57b08d699bcea4" target="id-4c1c1754c9a044149fada603c25196ac"/>
<element xsi:type="archimate:AccessRelationship" id="id-0ba644a4a5d24ebeb6bbda391fc5364c" source="id-aa9b71e0e43c482f910c60af4e0821db" target="id-0e4408d920594bb2a49405a1177bfd93" accessType="1"/>
<element xsi:type="archimate:AccessRelationship" id="id-c3195956b40b4d71b6d5c1c5151ed335" source="id-aa9b71e0e43c482f910c60af4e0821db" target="id-b2be9d637cb6488f94f167ff4b56df60" accessType="1"/>
<element xsi:type="archimate:AccessRelationship" id="id-7346771c2ba14d2d84a08152b4f6533a" source="id-aa9b71e0e43c482f910c60af4e0821db" target="id-d8a10d32274e41afa4bd7b3f80cb0fc7" accessType="1"/>
<element xsi:type="archimate:AccessRelationship" id="id-7ac55127c0224c54864a9b352fbe9b5c" source="id-321b501948c24072ae57b08d699bcea4" target="id-d574c8abe5e44a07b54f01ca262b9119"/>
<element xsi:type="archimate:AccessRelationship" id="id-1933fd9915f84364908d353dde0028e9" source="id-41937395311a43cb9caa3bb5e525ec6f" target="id-d8a10d32274e41afa4bd7b3f80cb0fc7"/>
<element xsi:type="archimate:AccessRelationship" id="id-7b914fc44c6447b89367feb12ca8432e" source="id-67d2c3244a114c74bae6c3f23b78b6fd" target="id-d574c8abe5e44a07b54f01ca262b9119"/>
<element xsi:type="archimate:AccessRelationship" id="id-805d7a1ac6704778abb24eca9eb009a2" source="id-57d364d3f1dd47d19a82b2ee52a412be" target="id-909b924521804141a15edcd8d646ebb4"/>
<element xsi:type="archimate:AccessRelationship" id="id-a17424e6bad74dddbe7eac0a86719bf2" source="id-edbad7711198479dbefac123f6057bf8" target="id-909b924521804141a15edcd8d646ebb4" accessType="1"/>
<element xsi:type="archimate:AccessRelationship" id="id-df77168071014f0c9cd8d28c502e79b9" source="id-edbad7711198479dbefac123f6057bf8" target="id-098ca104bac945d096982c5d5745bb91" accessType="1"/>
<element xsi:type="archimate:AccessRelationship" id="id-c837a7fc02274744aeb05eb059cb9edb" source="id-edbad7711198479dbefac123f6057bf8" target="id-d574c8abe5e44a07b54f01ca262b9119" accessType="1"/>
<element xsi:type="archimate:AccessRelationship" id="id-c8360b85a9194a5895d0c58994da8345" source="id-321b501948c24072ae57b08d699bcea4" target="id-aa9b71e0e43c482f910c60af4e0821db" accessType="1"/>
<element xsi:type="archimate:ServingRelationship" id="id-85c5c2eda6084ce59784cb9850ac256e" source="id-4d0e5b53b9c645d48840f595047a2ade" target="id-32085bcb0a1a451e8f450d1ecd892923"/>
<element xsi:type="archimate:ServingRelationship" id="id-8a5f79c5ae314149895b74b8050e634d" source="id-c5209ce7a2e0484ca8714db4c63ab097" target="id-32085bcb0a1a451e8f450d1ecd892923"/>
<element xsi:type="archimate:RealizationRelationship" id="id-c6d7a4e6f7e94fe6a264fb7c34e17331" source="id-97864bae126a4a858e2c00d60237db5d" target="id-c5209ce7a2e0484ca8714db4c63ab097"/>
<element xsi:type="archimate:FlowRelationship" id="id-bd7df2f9486e43ddaaba3db98dbbf720" source="id-321b501948c24072ae57b08d699bcea4" target="id-97864bae126a4a858e2c00d60237db5d"/>
<element xsi:type="archimate:FlowRelationship" id="id-56bf1a0418974862b912e2c646ad1bb2" source="id-57d364d3f1dd47d19a82b2ee52a412be" target="id-97864bae126a4a858e2c00d60237db5d"/>
<element xsi:type="archimate:ServingRelationship" id="id-35d0fe8244384d7cb12dda70d8e44509" source="id-3820fe0cd73944c4975f5b74af1e3c04" target="id-cc2a574cc3ad47a386fc2dc00741162e"/>
<element xsi:type="archimate:AccessRelationship" id="id-3cc53c9280704ce18508a82bde81d0f6" source="id-9b52682e6ed24c26bf978f16ad8613fa" target="id-d574c8abe5e44a07b54f01ca262b9119"/>
<element xsi:type="archimate:FlowRelationship" id="id-4b7674ef7888409a8c48eea97567de15" source="id-9b52682e6ed24c26bf978f16ad8613fa" target="id-690724e36abf4b98b5c46ec8b81d6506"/>
<element xsi:type="archimate:AccessRelationship" id="id-fbe2ebe0729549819da33d3a0d8b8247" source="id-2a8e920e2dd4415fa1271175c1685256" target="id-d8a10d32274e41afa4bd7b3f80cb0fc7"/>
<element xsi:type="archimate:AccessRelationship" id="id-ac229b001eb14b2e881f377479b21825" source="id-2a8e920e2dd4415fa1271175c1685256" target="id-d574c8abe5e44a07b54f01ca262b9119"/>
</folder>
<folder name="Views" id="id-b75d7269c50e46fc8c412f8c914e3cc9" type="diagrams">
<element xsi:type="archimate:ArchimateDiagramModel" name="Default View" id="id-879c95e4be7a431b9fe11d87df30c2fe">
<child xsi:type="archimate:DiagramObject" id="id-95c275c3c69849e28f6cf87850271558" archimateElement="id-4db17356989d4d27a5e944b7f1a96c29">
<bounds x="203" y="96" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-6f72e22056e9489cb0790d8be42254ba" source="id-95c275c3c69849e28f6cf87850271558" target="id-5d81f3092e8d4b74841edd08ba3b3262" archimateRelationship="id-caa61b1b190d4bf788f68410985e64c9"/>
<sourceConnection xsi:type="archimate:Connection" id="id-bff53c3c426340d481e2c705133bc607" source="id-95c275c3c69849e28f6cf87850271558" target="id-42607f43f7374afba9413f200581e75b" archimateRelationship="id-81da2f9d35264da7bfaf26a24452694f"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-6f1272ea339d459f9195cdf9cbaf831f" archimateElement="id-8a2fd7b952b442059e37b823e98ef9e8">
<bounds x="499" y="96" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-5052d379630e4b9ab7160379f55d9142" source="id-6f1272ea339d459f9195cdf9cbaf831f" target="id-57cb73cf37f9422b8dfcc2d9f47921f6" archimateRelationship="id-69c38a6e803e4c67872ea59f6a3606db"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-6dad03f22ebc4a708a9d2b977d1c55c6" archimateElement="id-74dadecad28d4fa0ba623eea55fdff68">
<bounds x="773" y="96" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-7632339cbe8d4cf491be31152c29bef4" source="id-6dad03f22ebc4a708a9d2b977d1c55c6" target="id-4ddd86e2ccdf48cc8a95f01fa856a00f" archimateRelationship="id-79949de1dd9543e4a574b836e696c22e"/>
<sourceConnection xsi:type="archimate:Connection" id="id-47cfb85999494762abb5ff35def6a680" source="id-6dad03f22ebc4a708a9d2b977d1c55c6" target="id-4200b39e4f1d449aa39c6d07731a0ec0" archimateRelationship="id-01c8f48e18f04cde81f5ee0d7908d5c4"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-dfd5f9fca0cc4245a48d5c1f5c4f3e83" archimateElement="id-8abd46f220d04e4aa0c434c9da458230">
<bounds x="1044" y="95" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-3f9d332a1b774ad790fed414bc000190" source="id-dfd5f9fca0cc4245a48d5c1f5c4f3e83" target="id-bc2989c43a814a24b8e58e6aa23af2e3" archimateRelationship="id-886b460caf054a44980adabf06d8ff79"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-80e0d373655840c8a6684e5bd6ffd75d" archimateElement="id-6225abecc0b1408aa3eb5209cbfa1eae">
<bounds x="1213" y="95" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-5776bc93f93c4fc897c2cb773c0a8e3f" source="id-80e0d373655840c8a6684e5bd6ffd75d" target="id-713ecf717ad249a8bcb698df80434f62" archimateRelationship="id-67b7da1542d3421abeaba89858c35f46"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-5d81f3092e8d4b74841edd08ba3b3262" targetConnections="id-6f72e22056e9489cb0790d8be42254ba id-754d90fa2acc409eb8987c8f06fc0768" archimateElement="id-07286e938ce7413a9154e05a04ba652b">
<bounds x="317" y="264" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-4ddd86e2ccdf48cc8a95f01fa856a00f" targetConnections="id-7632339cbe8d4cf491be31152c29bef4 id-5a91f13ecef842b78cd30d5dc87d8f5a" archimateElement="id-e5c4673a86544254af189b1fe7e9f5e1">
<bounds x="713" y="265" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-4200b39e4f1d449aa39c6d07731a0ec0" targetConnections="id-47cfb85999494762abb5ff35def6a680 id-72ecda154a7e4171a1db84dc4354f6ce" archimateElement="id-9306060577224b0f9cdfa4832c08eb05">
<bounds x="856" y="265" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-c2ab149cff334d8088b23ef44d91e46f" targetConnections="id-fcd39d59c19247969d09f8db5f8adf88" archimateElement="id-321b501948c24072ae57b08d699bcea4">
<bounds x="328" y="696" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-b3127a84f3a1405bbfcdff0bf0fd633b" source="id-c2ab149cff334d8088b23ef44d91e46f" target="id-c0c9754989934a8b98ba8ce27ea4277c" archimateRelationship="id-7b84b4286e6c46b3906e3c73b1beba1a"/>
<sourceConnection xsi:type="archimate:Connection" id="id-65405446392c45418b30a66829273a51" source="id-c2ab149cff334d8088b23ef44d91e46f" target="id-991f42da883f47bea2182816390703f7" archimateRelationship="id-f1fdd42b703e4e3f9f715195ad59b90b"/>
<sourceConnection xsi:type="archimate:Connection" id="id-bbb9624d6db54f7bbd758f84982692c1" source="id-c2ab149cff334d8088b23ef44d91e46f" target="id-0f1f9069a91a412b8c11eb22f54e6f2a" archimateRelationship="id-7ac55127c0224c54864a9b352fbe9b5c">
<bendpoint startX="140" startY="-2" endX="-12" endY="-350"/>
</sourceConnection>
<sourceConnection xsi:type="archimate:Connection" id="id-c92449cffb764ae4a96673d16b3c6d30" source="id-c2ab149cff334d8088b23ef44d91e46f" target="id-bd6e1aecf98e4c62ab9733b25c47c3f9" archimateRelationship="id-c8360b85a9194a5895d0c58994da8345"/>
<sourceConnection xsi:type="archimate:Connection" id="id-546473e090044ed3a4d98a54a5648f6d" source="id-c2ab149cff334d8088b23ef44d91e46f" target="id-eafeabfbbc10493895cc20a47ee1c84a" archimateRelationship="id-bd7df2f9486e43ddaaba3db98dbbf720">
<bendpoint startX="-256" startY="-2" endX="-4" endY="118"/>
</sourceConnection>
</child>
<child xsi:type="archimate:DiagramObject" id="id-abf89d60c0e243b3b4b8babf79570a92" archimateElement="id-41937395311a43cb9caa3bb5e525ec6f">
<bounds x="-216" y="576" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-13e02cb66dc949cea41243732afe9f4a" source="id-abf89d60c0e243b3b4b8babf79570a92" target="id-57a82296917f49f582b37ba7ea6ac14a" archimateRelationship="id-70fef291789045c3952586394e3e9f4c"/>
<sourceConnection xsi:type="archimate:Connection" id="id-e134032db563445dbd8ee23e35cb9870" source="id-abf89d60c0e243b3b4b8babf79570a92" target="id-c01461b27de74c2c87ecfb3aca190739" archimateRelationship="id-1933fd9915f84364908d353dde0028e9">
<bendpoint startY="598" endX="-468" endY="22"/>
</sourceConnection>
</child>
<child xsi:type="archimate:DiagramObject" id="id-2f78e7103163411dacae8b1176592e69" archimateElement="id-9b52682e6ed24c26bf978f16ad8613fa">
<bounds x="-61" y="576" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-9fc66850daa64800aa3befb91627b427" source="id-2f78e7103163411dacae8b1176592e69" target="id-70f8b493a10d47b0b1391ca1bd36b3e8" archimateRelationship="id-2dc3e86262f64dd79ab886e3da99a233"/>
<sourceConnection xsi:type="archimate:Connection" id="id-8c6178a0699a4415b5756493f1f9e8de" source="id-2f78e7103163411dacae8b1176592e69" target="id-0f1f9069a91a412b8c11eb22f54e6f2a" archimateRelationship="id-3cc53c9280704ce18508a82bde81d0f6">
<bendpoint startX="14" startY="466" endX="-528" endY="-2"/>
</sourceConnection>
<sourceConnection xsi:type="archimate:Connection" id="id-bedbd6c675124b4abb049e2e17ba2d8e" source="id-2f78e7103163411dacae8b1176592e69" target="id-4fb05e3d296c425eae8f2971f9c65d5a" archimateRelationship="id-4b7674ef7888409a8c48eea97567de15">
<bendpoint startX="-10" startY="526" endX="-720" endY="334"/>
<bendpoint startX="710" startY="526" endY="334"/>
</sourceConnection>
</child>
<child xsi:type="archimate:DiagramObject" id="id-72eb5ba4c85c4c2ea1eb306783f41fa6" archimateElement="id-67d2c3244a114c74bae6c3f23b78b6fd">
<bounds x="502" y="576" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-5e25822962244284a33bd7cc9958efae" source="id-72eb5ba4c85c4c2ea1eb306783f41fa6" target="id-b4f5a34d120b4968a076fe63e271588c" archimateRelationship="id-340333d48b85437cb9ea4736f804d03b"/>
<sourceConnection xsi:type="archimate:Connection" id="id-a6eaf34396de42529b9365075b65852f" source="id-72eb5ba4c85c4c2ea1eb306783f41fa6" target="id-0f1f9069a91a412b8c11eb22f54e6f2a" archimateRelationship="id-7b914fc44c6447b89367feb12ca8432e"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-58726f844f9d45ff8797a977d075e39d" targetConnections="id-7571ecf2b97747ca9bb6adc3d08e5948" archimateElement="id-57d364d3f1dd47d19a82b2ee52a412be">
<bounds x="701" y="576" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-39c4d4ece1b049048d297d9dfdd6500a" source="id-58726f844f9d45ff8797a977d075e39d" target="id-50936c345d054422a3776e0e5d57b63f" archimateRelationship="id-140f77d7833c49d394962a0f3b6c5738"/>
<sourceConnection xsi:type="archimate:Connection" id="id-a85a633c6d004978a7320ff15f6fa3d7" source="id-58726f844f9d45ff8797a977d075e39d" target="id-9a824b88f52a4bc0af0608f5eff04288" archimateRelationship="id-805d7a1ac6704778abb24eca9eb009a2"/>
<sourceConnection xsi:type="archimate:Connection" id="id-26cedf28e28147a5bb3dc1c78206b76f" source="id-58726f844f9d45ff8797a977d075e39d" target="id-eafeabfbbc10493895cc20a47ee1c84a" archimateRelationship="id-56bf1a0418974862b912e2c646ad1bb2">
<bendpoint startX="-52" startY="70" endX="572" endY="70"/>
<bendpoint startX="-568" startY="70" endX="56" endY="70"/>
</sourceConnection>
</child>
<child xsi:type="archimate:DiagramObject" id="id-04d0f4a03e124ecda279abcbaaa414f1" archimateElement="id-edbad7711198479dbefac123f6057bf8">
<bounds x="849" y="576" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-80f233d9147a4502b27701dbad4d4b02" source="id-04d0f4a03e124ecda279abcbaaa414f1" target="id-f260cfc3662043388194fa1c2a795ed7" archimateRelationship="id-041bc5ed6ee04acd8664c44c8cf1c5e0"/>
<sourceConnection xsi:type="archimate:Connection" id="id-d1bf19be9f774e808cd3d794e30eda4d" source="id-04d0f4a03e124ecda279abcbaaa414f1" target="id-9a824b88f52a4bc0af0608f5eff04288" archimateRelationship="id-a17424e6bad74dddbe7eac0a86719bf2"/>
<sourceConnection xsi:type="archimate:Connection" id="id-cb3d114462924e07972889857b932f4f" source="id-04d0f4a03e124ecda279abcbaaa414f1" target="id-3ce04170e06f4c3c9f3f9924c1658b55" archimateRelationship="id-df77168071014f0c9cd8d28c502e79b9"/>
<sourceConnection xsi:type="archimate:Connection" id="id-f12b839639ce4a0a8da27d1f29e50e95" source="id-04d0f4a03e124ecda279abcbaaa414f1" target="id-0f1f9069a91a412b8c11eb22f54e6f2a" archimateRelationship="id-c837a7fc02274744aeb05eb059cb9edb">
<bendpoint startX="4" startY="466" endX="372" endY="-2"/>
</sourceConnection>
</child>
<child xsi:type="archimate:DiagramObject" id="id-c0c9754989934a8b98ba8ce27ea4277c" targetConnections="id-b3127a84f3a1405bbfcdff0bf0fd633b" archimateElement="id-60af1786416c4d31bb911f8c629c7d84">
<bounds x="328" y="408" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-754d90fa2acc409eb8987c8f06fc0768" source="id-c0c9754989934a8b98ba8ce27ea4277c" target="id-5d81f3092e8d4b74841edd08ba3b3262" archimateRelationship="id-fae490d691b84c07a62a33032f85261c">
<bendpoint startX="-35" startY="-75" endX="47" endY="69"/>
</sourceConnection>
</child>
<child xsi:type="archimate:DiagramObject" id="id-70f8b493a10d47b0b1391ca1bd36b3e8" targetConnections="id-9fc66850daa64800aa3befb91627b427" archimateElement="id-136c3bf396b44c0397d1c754dd726193">
<bounds x="-73" y="408" width="132" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-4b0f20dd108f4ce994c293898f7cebe6" source="id-70f8b493a10d47b0b1391ca1bd36b3e8" target="id-b55cdf857b674fafb1d56daeab37afc3" archimateRelationship="id-d9d00d12d8984d3f9b95facf7cd46b6c"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-5b78472a82bc41f6883ed0fd94d23f8a" targetConnections="id-43ef70c696b54ddfbc705dae880c65f1" archimateElement="id-c5209ce7a2e0484ca8714db4c63ab097">
<bounds x="71" y="408" width="133" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-d3c62ea50f5a47eeb463afaa321d7420" source="id-5b78472a82bc41f6883ed0fd94d23f8a" target="id-b55cdf857b674fafb1d56daeab37afc3" archimateRelationship="id-8a5f79c5ae314149895b74b8050e634d"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-f260cfc3662043388194fa1c2a795ed7" targetConnections="id-80f233d9147a4502b27701dbad4d4b02" archimateElement="id-0b9e950607ad41b99a82ede66b964f2e">
<bounds x="849" y="408" width="133" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-72ecda154a7e4171a1db84dc4354f6ce" source="id-f260cfc3662043388194fa1c2a795ed7" target="id-4200b39e4f1d449aa39c6d07731a0ec0" archimateRelationship="id-a29ebd6bde2e4bc993523f558349fe63"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-861b293085fd4333a8b7d79384e0e559" targetConnections="id-1d528d9fef94495f9be75ad6cfd2c900" archimateElement="id-3820fe0cd73944c4975f5b74af1e3c04">
<bounds x="1128" y="407" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-43d2cf5292ed4d2a9a7bb4b1a02c73d7" source="id-861b293085fd4333a8b7d79384e0e559" target="id-713ecf717ad249a8bcb698df80434f62" archimateRelationship="id-f06b5e6509fc405fadff31fb13cb39a4"/>
<sourceConnection xsi:type="archimate:Connection" id="id-34bbbfebdaba4ac99f9cbb818b32d422" source="id-861b293085fd4333a8b7d79384e0e559" target="id-bc2989c43a814a24b8e58e6aa23af2e3" archimateRelationship="id-35d0fe8244384d7cb12dda70d8e44509"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-c01461b27de74c2c87ecfb3aca190739" targetConnections="id-de786a53ae8140cdb8fd4178afd7836b id-e134032db563445dbd8ee23e35cb9870 id-9ebb7cd3f33b49e390fb8e0a6677fbe1" archimateElement="id-d8a10d32274e41afa4bd7b3f80cb0fc7">
<bounds x="252" y="1152" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-ff0840a50acc4ecaa0e4828fc82d6b2b" targetConnections="id-536ae2e0d2ea495b923716c62140f26a" archimateElement="id-b2be9d637cb6488f94f167ff4b56df60">
<bounds x="180" y="972" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-93ceaa47a4174a58894a00f03ee97953" targetConnections="id-8ca8c183c32d4eab99ff44184c24ff1a" archimateElement="id-0e4408d920594bb2a49405a1177bfd93">
<bounds x="371" y="972" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-0f1f9069a91a412b8c11eb22f54e6f2a" targetConnections="id-bbb9624d6db54f7bbd758f84982692c1 id-a6eaf34396de42529b9365075b65852f id-f12b839639ce4a0a8da27d1f29e50e95 id-8c6178a0699a4415b5756493f1f9e8de id-86360a7a7f9845629241c24b2063e8e3" archimateElement="id-d574c8abe5e44a07b54f01ca262b9119">
<bounds x="480" y="1044" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-3ce04170e06f4c3c9f3f9924c1658b55" targetConnections="id-cb3d114462924e07972889857b932f4f" archimateElement="id-098ca104bac945d096982c5d5745bb91">
<bounds x="968" y="876" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-9a824b88f52a4bc0af0608f5eff04288" targetConnections="id-a85a633c6d004978a7320ff15f6fa3d7 id-d1bf19be9f774e808cd3d794e30eda4d" archimateElement="id-909b924521804141a15edcd8d646ebb4">
<bounds x="756" y="876" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-991f42da883f47bea2182816390703f7" targetConnections="id-65405446392c45418b30a66829273a51" archimateElement="id-4c1c1754c9a044149fada603c25196ac">
<bounds x="348" y="876" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-42607f43f7374afba9413f200581e75b" targetConnections="id-bff53c3c426340d481e2c705133bc607 id-8c47c461867d418382839df24dd567d1" archimateElement="id-d044d84669a146ad980ec4c2f41c355b">
<bounds x="84" y="264" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-57cb73cf37f9422b8dfcc2d9f47921f6" targetConnections="id-5052d379630e4b9ab7160379f55d9142 id-93a64f925baa4030ad872861d39be51e" archimateElement="id-c1452ca84c86481fb9cda6dff3093d61">
<bounds x="499" y="264" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-d25e2e0c3f38468bbc4be8698be11154" archimateElement="id-ad075de523b44b9da04c98b26f7a4873">
<bounds x="84" y="769" width="139" height="54"/>
<sourceConnection xsi:type="archimate:Connection" id="id-fcd39d59c19247969d09f8db5f8adf88" source="id-d25e2e0c3f38468bbc4be8698be11154" target="id-c2ab149cff334d8088b23ef44d91e46f" archimateRelationship="id-0d7542a22bb747c2b3d6fb8af86efe66">
<bendpoint startX="7" startY="-50" endX="-244" endY="22"/>
</sourceConnection>
</child>
<child xsi:type="archimate:DiagramObject" id="id-4fb05e3d296c425eae8f2971f9c65d5a" targetConnections="id-bedbd6c675124b4abb049e2e17ba2d8e" archimateElement="id-690724e36abf4b98b5c46ec8b81d6506">
<bounds x="648" y="768" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-7571ecf2b97747ca9bb6adc3d08e5948" source="id-4fb05e3d296c425eae8f2971f9c65d5a" target="id-58726f844f9d45ff8797a977d075e39d" archimateRelationship="id-c6f76eed3e8d48289b354bfcd40070a2"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-bc2989c43a814a24b8e58e6aa23af2e3" targetConnections="id-3f9d332a1b774ad790fed414bc000190 id-34bbbfebdaba4ac99f9cbb818b32d422" archimateElement="id-cc2a574cc3ad47a386fc2dc00741162e">
<bounds x="1044" y="264" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-713ecf717ad249a8bcb698df80434f62" targetConnections="id-5776bc93f93c4fc897c2cb773c0a8e3f id-43d2cf5292ed4d2a9a7bb4b1a02c73d7" archimateElement="id-131346f60e874db7b7f33fe110c2ef35">
<bounds x="1213" y="263" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-57a82296917f49f582b37ba7ea6ac14a" targetConnections="id-13e02cb66dc949cea41243732afe9f4a" archimateElement="id-4d0e5b53b9c645d48840f595047a2ade">
<bounds x="-204" y="408" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-8c96e9bbdde241239f35b1e196ac8fa6" source="id-57a82296917f49f582b37ba7ea6ac14a" target="id-b55cdf857b674fafb1d56daeab37afc3" archimateRelationship="id-85c5c2eda6084ce59784cb9850ac256e"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-b4f5a34d120b4968a076fe63e271588c" targetConnections="id-5e25822962244284a33bd7cc9958efae" archimateElement="id-343b7faab80b42d285dba8d26604b08b">
<bounds x="503" y="408" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-93a64f925baa4030ad872861d39be51e" source="id-b4f5a34d120b4968a076fe63e271588c" target="id-57cb73cf37f9422b8dfcc2d9f47921f6" archimateRelationship="id-7edbffd1c50d4f45b486c495ccbb557f"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-50936c345d054422a3776e0e5d57b63f" targetConnections="id-39c4d4ece1b049048d297d9dfdd6500a" archimateElement="id-9a846da052c44cf5907fd8c0331cdeb9">
<bounds x="701" y="408" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-5a91f13ecef842b78cd30d5dc87d8f5a" source="id-50936c345d054422a3776e0e5d57b63f" target="id-4ddd86e2ccdf48cc8a95f01fa856a00f" archimateRelationship="id-64e597c1ff954b1cb46bb86adebb7779"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-45ae94a60995412eb6811c6b916bfa0a" archimateElement="id-2a8e920e2dd4415fa1271175c1685256">
<bounds x="1128" y="588" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-1d528d9fef94495f9be75ad6cfd2c900" source="id-45ae94a60995412eb6811c6b916bfa0a" target="id-861b293085fd4333a8b7d79384e0e559" archimateRelationship="id-0576bf3e889f4bb0bb0ee9c457955dfd"/>
<sourceConnection xsi:type="archimate:Connection" id="id-9ebb7cd3f33b49e390fb8e0a6677fbe1" source="id-45ae94a60995412eb6811c6b916bfa0a" target="id-c01461b27de74c2c87ecfb3aca190739" archimateRelationship="id-fbe2ebe0729549819da33d3a0d8b8247">
<bendpoint startX="12" startY="562" endX="888" endY="-2"/>
</sourceConnection>
<sourceConnection xsi:type="archimate:Connection" id="id-86360a7a7f9845629241c24b2063e8e3" source="id-45ae94a60995412eb6811c6b916bfa0a" target="id-0f1f9069a91a412b8c11eb22f54e6f2a" archimateRelationship="id-ac229b001eb14b2e881f377479b21825">
<bendpoint startY="466" endX="648" endY="10"/>
</sourceConnection>
</child>
<child xsi:type="archimate:DiagramObject" id="id-bd6e1aecf98e4c62ab9733b25c47c3f9" targetConnections="id-c92449cffb764ae4a96673d16b3c6d30" archimateElement="id-aa9b71e0e43c482f910c60af4e0821db">
<bounds x="328" y="996" width="15" height="15"/>
<sourceConnection xsi:type="archimate:Connection" id="id-536ae2e0d2ea495b923716c62140f26a" source="id-bd6e1aecf98e4c62ab9733b25c47c3f9" target="id-ff0840a50acc4ecaa0e4828fc82d6b2b" archimateRelationship="id-c3195956b40b4d71b6d5c1c5151ed335"/>
<sourceConnection xsi:type="archimate:Connection" id="id-8ca8c183c32d4eab99ff44184c24ff1a" source="id-bd6e1aecf98e4c62ab9733b25c47c3f9" target="id-93ceaa47a4174a58894a00f03ee97953" archimateRelationship="id-0ba644a4a5d24ebeb6bbda391fc5364c"/>
<sourceConnection xsi:type="archimate:Connection" id="id-de786a53ae8140cdb8fd4178afd7836b" source="id-bd6e1aecf98e4c62ab9733b25c47c3f9" target="id-c01461b27de74c2c87ecfb3aca190739" archimateRelationship="id-7346771c2ba14d2d84a08152b4f6533a"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-b55cdf857b674fafb1d56daeab37afc3" targetConnections="id-4b0f20dd108f4ce994c293898f7cebe6 id-8c96e9bbdde241239f35b1e196ac8fa6 id-d3c62ea50f5a47eeb463afaa321d7420" archimateElement="id-32085bcb0a1a451e8f450d1ecd892923">
<bounds x="-15" y="348" width="15" height="15"/>
<sourceConnection xsi:type="archimate:Connection" id="id-8c47c461867d418382839df24dd567d1" source="id-b55cdf857b674fafb1d56daeab37afc3" target="id-42607f43f7374afba9413f200581e75b" archimateRelationship="id-05ef47f6025f4210858d56cf34acfe30">
<bendpoint startX="140" startY="-6" endX="-12" endY="70"/>
</sourceConnection>
</child>
<child xsi:type="archimate:DiagramObject" id="id-eafeabfbbc10493895cc20a47ee1c84a" targetConnections="id-546473e090044ed3a4d98a54a5648f6d id-26cedf28e28147a5bb3dc1c78206b76f" archimateElement="id-97864bae126a4a858e2c00d60237db5d">
<bounds x="71" y="576" width="133" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-43ef70c696b54ddfbc705dae880c65f1" source="id-eafeabfbbc10493895cc20a47ee1c84a" target="id-5b78472a82bc41f6883ed0fd94d23f8a" archimateRelationship="id-c6d7a4e6f7e94fe6a264fb7c34e17331"/>
</child>
</element>
</folder>
</archimate:model>

View File

@ -0,0 +1,332 @@
<?xml version="1.0" encoding="UTF-8"?>
<archimate:model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:archimate="http://www.archimatetool.com/archimate" name="etoll-aplikacyjna" id="id-9b0bb7808955440899ea711ee22e3a21" version="5.0.0">
<folder name="Strategy" id="id-180b0cfa14ae477c84de89b4141777d7" type="strategy"/>
<folder name="Business" id="id-d4855c0de25b449085f2d8087baffe91" type="business"/>
<folder name="Application" id="id-958eded9a566451b8da0191a5dde4120" type="application">
<element xsi:type="archimate:ApplicationComponent" name="User Registration" id="id-9b4a87bdb6bc45d2852454b9325ba081"/>
<element xsi:type="archimate:ApplicationComponent" name="Geolocation Service" id="id-3fff1f844f2c427fbaa7dd6463040458"/>
<element xsi:type="archimate:ApplicationComponent" name="Toll Calculation" id="id-f7fc4d431f7a4d9599329cd9d6c690d9"/>
<element xsi:type="archimate:ApplicationComponent" name="Payment Module" id="id-914b50ad833c4ec38db41304165562bc"/>
<element xsi:type="archimate:ApplicationComponent" name="Violation Detection" id="id-ca57d46f50204067b6fdbdc64234ba26"/>
<element xsi:type="archimate:ApplicationComponent" name="Vehicle Identification" id="id-f8dbb89be1644874af02a9888b56c3d3"/>
<element xsi:type="archimate:ApplicationComponent" name="User Account Management" id="id-4a5d0a75bc99403b93486299f2fe446e"/>
<element xsi:type="archimate:ApplicationComponent" name="Notification System" id="id-98131f2ab6d547ba97b38a8fd86f952c"/>
<element xsi:type="archimate:ApplicationComponent" name="Reporting Analytics" id="id-6a397b4298b54bd7b525b4abfa07e784"/>
<element xsi:type="archimate:ApplicationComponent" name="Corecction Interface" id="id-592b515ddce547d6a840ea8d3ca397e6"/>
<element xsi:type="archimate:ApplicationInterface" name="User portal (web, mobile)" id="id-21044c770c5b436183d97cee530c883d"/>
<element xsi:type="archimate:ApplicationInterface" name="Admin web app" id="id-1302fae809bb424180bdd8761f028648"/>
<element xsi:type="archimate:ApplicationComponent" name="External payment system" id="id-a16f88d5bea64014870e087855bd1203"/>
<element xsi:type="archimate:ApplicationComponent" name="Archival system" id="id-d5815490373d446f9b6de95d7685dd20"/>
<element xsi:type="archimate:ApplicationFunction" name="Application Function" id="id-d7af5cb6eff3463c9ca0a1111d8ba6ec"/>
<element xsi:type="archimate:DataObject" name="User data" id="id-af7c6e0f5ad345f69944ab7839dc12d3"/>
<element xsi:type="archimate:DataObject" name="Vehicle data" id="id-d0dab80d98a5409dbef18b55190ff266"/>
<element xsi:type="archimate:ApplicationFunction" name="Register user" id="id-8d00649b663a4cdeb8b1ca4cb33a94e2"/>
<element xsi:type="archimate:ApplicationProcess" name="Verification" id="id-3b036b67022f4874ba74a8ba7569641e"/>
<element xsi:type="archimate:ApplicationFunction" name="Add vehicle to user" id="id-c72473f5f40e40979d848a997ca82fc4"/>
<element xsi:type="archimate:ApplicationService" name="Register user" id="id-2c2aa3f4f46146b0819005a2a4ffab1b"/>
<element xsi:type="archimate:ApplicationService" name="Application Service" id="id-650f1e80be244f5b9063f38abb5c8328"/>
<element xsi:type="archimate:ApplicationFunction" name="Location calculation" id="id-bf06fc5bf7b04607a55eab4b7f2c0162"/>
<element xsi:type="archimate:DataObject" name="Localization data" id="id-b8213a40d0d54989b1ebc9d0f74a6923"/>
<element xsi:type="archimate:ApplicationService" name="GeoLocalization service" id="id-eab6a8e2831d49ba92f47cb81c5e11bb"/>
<element xsi:type="archimate:ApplicationCollaboration" name="Reporting module" id="id-470d5c42ef7e40de8f0e45ec0184459b"/>
<element xsi:type="archimate:ApplicationInteraction" name="Raports generation" id="id-cb3aa0bfe8a44924b6d9e51253306577"/>
<element xsi:type="archimate:ApplicationFunction" name="Notification function" id="id-59199cf7fecb43029f380150c3112e4c"/>
<element xsi:type="archimate:ApplicationProcess" name="Catch event" id="id-90cf43fe35ed458db0dbb6066866330d"/>
<element xsi:type="archimate:ApplicationProcess" name="Send notification" id="id-b463596068dd4d5793ac31771e62c29f"/>
<element xsi:type="archimate:ApplicationEvent" name="User event" id="id-646ed8b0b317482b8e5643bb2bdc83a0"/>
<element xsi:type="archimate:ApplicationService" name="Generate Notification" id="id-47a550a115c14658a5aecafdb88f26a2"/>
<element xsi:type="archimate:ApplicationFunction" name="Archive data function" id="id-c5986bc56b91435c82f3657c1444ed8d"/>
<element xsi:type="archimate:ApplicationService" name="Provide archival data" id="id-c9bee04b1997424fb4fd50d7b43c9aa4"/>
<element xsi:type="archimate:DataObject" name="Data to archive" id="id-72a39f0325324ef287d153799bc2855f"/>
<element xsi:type="archimate:ApplicationFunction" name="Analysis function" id="id-a83c565405e24a0cbe634df5b13adefa"/>
<element xsi:type="archimate:ApplicationProcess" name="Retreive data" id="id-f75d8831d88d466788a9cb7a362115d7"/>
<element xsi:type="archimate:ApplicationProcess" name="Calculate analytics" id="id-3cd6737cb2dc43419cb1cfa95553eaff"/>
<element xsi:type="archimate:ApplicationProcess" name="Return analysis" id="id-329c5f0bdfbd45539a5a67563864dd15"/>
<element xsi:type="archimate:DataObject" name="Analytic data" id="id-16c2eac4fe0244bba8e966d60113c17e"/>
<element xsi:type="archimate:ApplicationService" name="Generate data analysis" id="id-0a2d3e9f4ab84fa4bc95bf0ad7b0e019"/>
<element xsi:type="archimate:ApplicationFunction" name="Identify vahicle" id="id-d4e2da42305c40dd8bb9ace6b6f81e29"/>
<element xsi:type="archimate:ApplicationInterface" name="Admin Screen" id="id-b93c5394ba774089b8db9cee93325d2e"/>
<element xsi:type="archimate:ApplicationCollaboration" name="Payment module" id="id-d61ab63b2d554e38bb4fa898ae9b4b0b"/>
<element xsi:type="archimate:ApplicationInteraction" name="Make payment" id="id-c90a1902ebf34d418cab6b13e035b95b"/>
<element xsi:type="archimate:ApplicationInterface" name="Application Interface" id="id-53de50a576724fa49ef860808ce578db"/>
<element xsi:type="archimate:ApplicationInterface" name="Use external API" id="id-3e6a5f02018e4c909bb12fc79bdd7a8f"/>
<element xsi:type="archimate:ApplicationFunction" name="Generate fare" id="id-a029c9caeaa242319b3231c428464049"/>
<element xsi:type="archimate:ApplicationService" name="Fare generation" id="id-70ecde0014ef45abb903d4ebedee8da1"/>
<element xsi:type="archimate:ApplicationInterface" name="Backend system" id="id-c18c5b11a9004b0aa05916845b74445b"/>
<element xsi:type="archimate:ApplicationFunction" name="Identyfi vehicle" id="id-67c92892eb2340e7b13725d30cce2bb1"/>
<element xsi:type="archimate:ApplicationFunction" name="CEPiK" id="id-32a52612ffa547c399b8b96f89a48df2"/>
<element xsi:type="archimate:ApplicationFunction" name="ANPR" id="id-e941d14bf7dc41bf80aefbe4c77c3f1f"/>
<element xsi:type="archimate:ApplicationFunction" name="CEPiK (copy)" id="id-79d76b3d94244f5280d4015d68937feb"/>
<element xsi:type="archimate:ApplicationService" name="Identify vehicle" id="id-cc1187b915694349ac47180bf275460a"/>
</folder>
<folder name="Technology &amp; Physical" id="id-993fc6233d1a463394c8764f2cadc680" type="technology"/>
<folder name="Motivation" id="id-5e6994a5cb324a4eb39bbfbaa895712c" type="motivation"/>
<folder name="Implementation &amp; Migration" id="id-b9d246df720244ec9f1efa86515a4e85" type="implementation_migration"/>
<folder name="Other" id="id-5bed19b894cb4c84b159d7d62063eb2b" type="other"/>
<folder name="Relations" id="id-2fc08fafa5fb409d8663fb3169cb55bc" type="relations">
<element xsi:type="archimate:AssignmentRelationship" id="id-c9254a526ac74ad7af348bcc2a7258a8" source="id-9b4a87bdb6bc45d2852454b9325ba081" target="id-d7af5cb6eff3463c9ca0a1111d8ba6ec"/>
<element xsi:type="archimate:CompositionRelationship" id="id-00a830ff0d044eb78c9060af3d8a39ca" source="id-d7af5cb6eff3463c9ca0a1111d8ba6ec" target="id-8d00649b663a4cdeb8b1ca4cb33a94e2"/>
<element xsi:type="archimate:CompositionRelationship" id="id-d7fb815d7c6746af85748b2f39868e0d" source="id-d7af5cb6eff3463c9ca0a1111d8ba6ec" target="id-3b036b67022f4874ba74a8ba7569641e"/>
<element xsi:type="archimate:CompositionRelationship" id="id-3e7322d7f2a44266a99afdeb71af660a" source="id-d7af5cb6eff3463c9ca0a1111d8ba6ec" target="id-c72473f5f40e40979d848a997ca82fc4"/>
<element xsi:type="archimate:RealizationRelationship" id="id-2f87b7139c614666b98741ebdef1e392" source="id-d7af5cb6eff3463c9ca0a1111d8ba6ec" target="id-2c2aa3f4f46146b0819005a2a4ffab1b"/>
<element xsi:type="archimate:TriggeringRelationship" id="id-c0695ef2f0e24055bece54f154704e15" source="id-8d00649b663a4cdeb8b1ca4cb33a94e2" target="id-3b036b67022f4874ba74a8ba7569641e"/>
<element xsi:type="archimate:TriggeringRelationship" id="id-989cc148deb04a9c8a9ca863910baf02" source="id-3b036b67022f4874ba74a8ba7569641e" target="id-c72473f5f40e40979d848a997ca82fc4"/>
<element xsi:type="archimate:AssignmentRelationship" id="id-28d0b2ae594045a18cc9c3e733264652" source="id-3fff1f844f2c427fbaa7dd6463040458" target="id-bf06fc5bf7b04607a55eab4b7f2c0162"/>
<element xsi:type="archimate:RealizationRelationship" id="id-d303271ac5354730bbd576c1d417590f" source="id-bf06fc5bf7b04607a55eab4b7f2c0162" target="id-eab6a8e2831d49ba92f47cb81c5e11bb"/>
<element xsi:type="archimate:AggregationRelationship" id="id-bdeabfb01549405795efec3962312ce8" source="id-470d5c42ef7e40de8f0e45ec0184459b" target="id-d5815490373d446f9b6de95d7685dd20"/>
<element xsi:type="archimate:AggregationRelationship" id="id-a4de199ce5974acfa819990a034e6deb" source="id-470d5c42ef7e40de8f0e45ec0184459b" target="id-6a397b4298b54bd7b525b4abfa07e784"/>
<element xsi:type="archimate:AssociationRelationship" id="id-339221d90c404c80a69f40eccdcdf084" source="id-cb3aa0bfe8a44924b6d9e51253306577" target="id-470d5c42ef7e40de8f0e45ec0184459b"/>
<element xsi:type="archimate:CompositionRelationship" id="id-85c51473330d456d899b7de20258c0e4" source="id-59199cf7fecb43029f380150c3112e4c" target="id-90cf43fe35ed458db0dbb6066866330d"/>
<element xsi:type="archimate:CompositionRelationship" id="id-6f6003c99f6d4d9c9a4d0cac5406cc3c" source="id-59199cf7fecb43029f380150c3112e4c" target="id-b463596068dd4d5793ac31771e62c29f"/>
<element xsi:type="archimate:TriggeringRelationship" id="id-fb1ff700313e4733a0b811c4d861834e" source="id-90cf43fe35ed458db0dbb6066866330d" target="id-b463596068dd4d5793ac31771e62c29f"/>
<element xsi:type="archimate:AssignmentRelationship" id="id-4321589151ce4c6f9c5be0582751d9af" source="id-98131f2ab6d547ba97b38a8fd86f952c" target="id-59199cf7fecb43029f380150c3112e4c"/>
<element xsi:type="archimate:TriggeringRelationship" id="id-be7573bac865443cb5b9aa087fe88adf" source="id-646ed8b0b317482b8e5643bb2bdc83a0" target="id-90cf43fe35ed458db0dbb6066866330d"/>
<element xsi:type="archimate:AssociationRelationship" id="id-8981dce6f216412c8c91aeb96d62e7f6" source="id-59199cf7fecb43029f380150c3112e4c" target="id-47a550a115c14658a5aecafdb88f26a2"/>
<element xsi:type="archimate:AssignmentRelationship" id="id-2488c5c59fa245d4b962750744c1e056" source="id-d5815490373d446f9b6de95d7685dd20" target="id-c5986bc56b91435c82f3657c1444ed8d"/>
<element xsi:type="archimate:RealizationRelationship" id="id-14e4260a408b4d47af555991951c58a0" source="id-c5986bc56b91435c82f3657c1444ed8d" target="id-c9bee04b1997424fb4fd50d7b43c9aa4"/>
<element xsi:type="archimate:AccessRelationship" id="id-ba05ad939d8e4a40bd0746cb9860e26e" source="id-c5986bc56b91435c82f3657c1444ed8d" target="id-72a39f0325324ef287d153799bc2855f"/>
<element xsi:type="archimate:CompositionRelationship" id="id-b793c993de3144bfa74d773ee05a6320" source="id-a83c565405e24a0cbe634df5b13adefa" target="id-f75d8831d88d466788a9cb7a362115d7"/>
<element xsi:type="archimate:CompositionRelationship" id="id-554c9e08f2784094ab67fb9723a09497" source="id-a83c565405e24a0cbe634df5b13adefa" target="id-3cd6737cb2dc43419cb1cfa95553eaff"/>
<element xsi:type="archimate:CompositionRelationship" id="id-b2fd3f8018dc47bb9a8aac310b3adb13" source="id-a83c565405e24a0cbe634df5b13adefa" target="id-329c5f0bdfbd45539a5a67563864dd15"/>
<element xsi:type="archimate:TriggeringRelationship" id="id-32d4654c492c476eb1ab47270bd9b530" source="id-f75d8831d88d466788a9cb7a362115d7" target="id-3cd6737cb2dc43419cb1cfa95553eaff"/>
<element xsi:type="archimate:TriggeringRelationship" id="id-f427f07fccb84097921511c7c8651958" source="id-3cd6737cb2dc43419cb1cfa95553eaff" target="id-329c5f0bdfbd45539a5a67563864dd15"/>
<element xsi:type="archimate:AssignmentRelationship" id="id-f79955d595c0405fba0a3ef99518ff41" source="id-6a397b4298b54bd7b525b4abfa07e784" target="id-a83c565405e24a0cbe634df5b13adefa"/>
<element xsi:type="archimate:AccessRelationship" id="id-efba019cfe564974850268f730bf9021" source="id-329c5f0bdfbd45539a5a67563864dd15" target="id-16c2eac4fe0244bba8e966d60113c17e"/>
<element xsi:type="archimate:RealizationRelationship" id="id-979f1cd967fa44c28d1dd984254f01ce" source="id-a83c565405e24a0cbe634df5b13adefa" target="id-0a2d3e9f4ab84fa4bc95bf0ad7b0e019"/>
<element xsi:type="archimate:AssociationRelationship" id="id-aa69451a7c524380bcd58708e07e128e" source="id-2c2aa3f4f46146b0819005a2a4ffab1b" target="id-b93c5394ba774089b8db9cee93325d2e"/>
<element xsi:type="archimate:CompositionRelationship" id="id-bdc02d337e834db0bf0a302e59ab62d3" source="id-9b4a87bdb6bc45d2852454b9325ba081" target="id-b93c5394ba774089b8db9cee93325d2e"/>
<element xsi:type="archimate:AssociationRelationship" id="id-32c96739d41244a2add7ceb4bf50c203" source="id-0a2d3e9f4ab84fa4bc95bf0ad7b0e019" target="id-b93c5394ba774089b8db9cee93325d2e"/>
<element xsi:type="archimate:ServingRelationship" id="id-63ff86ad8b174dd888c56b22cd67ade4" source="id-cb3aa0bfe8a44924b6d9e51253306577" target="id-b93c5394ba774089b8db9cee93325d2e"/>
<element xsi:type="archimate:AggregationRelationship" id="id-853a2561fe37439097d0445169336326" source="id-d61ab63b2d554e38bb4fa898ae9b4b0b" target="id-914b50ad833c4ec38db41304165562bc"/>
<element xsi:type="archimate:AggregationRelationship" id="id-87d2db2f86f84e49bd416475b6cbbe32" source="id-d61ab63b2d554e38bb4fa898ae9b4b0b" target="id-a16f88d5bea64014870e087855bd1203"/>
<element xsi:type="archimate:AssociationRelationship" id="id-2cef75d6eca44c90b9a1b58ff590aecd" source="id-c90a1902ebf34d418cab6b13e035b95b" target="id-d61ab63b2d554e38bb4fa898ae9b4b0b"/>
<element xsi:type="archimate:TriggeringRelationship" id="id-db44a06730034c46bcc525d021b62b22" source="id-a16f88d5bea64014870e087855bd1203" target="id-3e6a5f02018e4c909bb12fc79bdd7a8f"/>
<element xsi:type="archimate:ServingRelationship" id="id-9541a145603e42fa96cf40ead04beccd" source="id-c90a1902ebf34d418cab6b13e035b95b" target="id-21044c770c5b436183d97cee530c883d"/>
<element xsi:type="archimate:AccessRelationship" id="id-21384523026e44e38c85c576c5386cb0" source="id-bf06fc5bf7b04607a55eab4b7f2c0162" target="id-b8213a40d0d54989b1ebc9d0f74a6923"/>
<element xsi:type="archimate:ServingRelationship" id="id-3b43bb4361e34869b119519a88bb93cb" source="id-4a5d0a75bc99403b93486299f2fe446e" target="id-21044c770c5b436183d97cee530c883d"/>
<element xsi:type="archimate:ServingRelationship" id="id-3d72b3090556404ca4e7c4af3cbd29f5" source="id-98131f2ab6d547ba97b38a8fd86f952c" target="id-21044c770c5b436183d97cee530c883d"/>
<element xsi:type="archimate:AggregationRelationship" id="id-353976f5de2e43a79a078406158ae57b" source="id-470d5c42ef7e40de8f0e45ec0184459b" target="id-592b515ddce547d6a840ea8d3ca397e6"/>
<element xsi:type="archimate:AccessRelationship" id="id-1293cbace3b24735bb7f0de164517f2b" source="id-a029c9caeaa242319b3231c428464049" target="id-b8213a40d0d54989b1ebc9d0f74a6923"/>
<element xsi:type="archimate:AssignmentRelationship" id="id-e76f68301f144605a236d173113dc47d" source="id-f7fc4d431f7a4d9599329cd9d6c690d9" target="id-a029c9caeaa242319b3231c428464049"/>
<element xsi:type="archimate:RealizationRelationship" id="id-f5313a144d08494084b0162002087b40" source="id-f7fc4d431f7a4d9599329cd9d6c690d9" target="id-70ecde0014ef45abb903d4ebedee8da1"/>
<element xsi:type="archimate:CompositionRelationship" id="id-467dc1490f8e42c99d460561826d09f4" source="id-98131f2ab6d547ba97b38a8fd86f952c" target="id-21044c770c5b436183d97cee530c883d"/>
<element xsi:type="archimate:CompositionRelationship" id="id-6c6195c940584bfea773797b3525ef31" source="id-4a5d0a75bc99403b93486299f2fe446e" target="id-21044c770c5b436183d97cee530c883d"/>
<element xsi:type="archimate:CompositionRelationship" id="id-de063792016246fd93b52e27fea46354" source="id-3fff1f844f2c427fbaa7dd6463040458" target="id-c18c5b11a9004b0aa05916845b74445b"/>
<element xsi:type="archimate:CompositionRelationship" id="id-f991995668024e20b9e5c52eee55c04e" source="id-f7fc4d431f7a4d9599329cd9d6c690d9" target="id-c18c5b11a9004b0aa05916845b74445b"/>
<element xsi:type="archimate:CompositionRelationship" id="id-aa55b19bb59c4b5f8e845d29235860fb" source="id-f8dbb89be1644874af02a9888b56c3d3" target="id-c18c5b11a9004b0aa05916845b74445b"/>
<element xsi:type="archimate:CompositionRelationship" id="id-528c46f65b0b4c2884b13891bf5329ff" source="id-ca57d46f50204067b6fdbdc64234ba26" target="id-c18c5b11a9004b0aa05916845b74445b"/>
<element xsi:type="archimate:CompositionRelationship" id="id-98c602f558b54ba0bd24e22d9205fa7b" source="id-67c92892eb2340e7b13725d30cce2bb1" target="id-32a52612ffa547c399b8b96f89a48df2"/>
<element xsi:type="archimate:CompositionRelationship" id="id-11c4d0afda24453f916892c1e67baf40" source="id-67c92892eb2340e7b13725d30cce2bb1" target="id-e941d14bf7dc41bf80aefbe4c77c3f1f"/>
<element xsi:type="archimate:TriggeringRelationship" id="id-cd1e2b37b1e94c669a4e0bed177cf476" source="id-e941d14bf7dc41bf80aefbe4c77c3f1f" target="id-32a52612ffa547c399b8b96f89a48df2"/>
<element xsi:type="archimate:CompositionRelationship" id="id-956a3ed1bf6348e595b30707a43cbef0" source="id-67c92892eb2340e7b13725d30cce2bb1" target="id-79d76b3d94244f5280d4015d68937feb"/>
<element xsi:type="archimate:AssignmentRelationship" id="id-3b6d06685feb46bfbd9207540265bb51" source="id-f8dbb89be1644874af02a9888b56c3d3" target="id-67c92892eb2340e7b13725d30cce2bb1"/>
<element xsi:type="archimate:AssociationRelationship" id="id-591fe6645f9442a3b8e9f82a6d7e7552" source="id-cc1187b915694349ac47180bf275460a" target="id-67c92892eb2340e7b13725d30cce2bb1"/>
</folder>
<folder name="Views" id="id-f758d965cd36449895b7344800b6d279" type="diagrams">
<element xsi:type="archimate:ArchimateDiagramModel" name="Default View" id="id-61adb110d23f4623866d1bf4e6ffc91c">
<child xsi:type="archimate:DiagramObject" id="id-f034deafb0be45bda8f694b413d696a1" archimateElement="id-3fff1f844f2c427fbaa7dd6463040458">
<bounds x="934" y="542" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-7fb3e56c078d488fb6cc21a5e466ddc8" source="id-f034deafb0be45bda8f694b413d696a1" target="id-c9e7eb6e9b4d47a4a6d5ec0fd480ff21" archimateRelationship="id-28d0b2ae594045a18cc9c3e733264652"/>
<sourceConnection xsi:type="archimate:Connection" id="id-070e4cfc538646b8a606634525a99b4b" source="id-f034deafb0be45bda8f694b413d696a1" target="id-b92496f029ef4317b093df4e9995beee" archimateRelationship="id-de063792016246fd93b52e27fea46354"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-7bdcb86e68c04dd5883e6d397c1a4523" archimateElement="id-9b4a87bdb6bc45d2852454b9325ba081">
<bounds x="519" y="918" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-b88bb4fd7d0d41cdbfaff27b13bd55f8" source="id-7bdcb86e68c04dd5883e6d397c1a4523" target="id-8e48c858dec14b5e8a07dd5855deeae8" archimateRelationship="id-c9254a526ac74ad7af348bcc2a7258a8"/>
<sourceConnection xsi:type="archimate:Connection" id="id-90afd6ed13674bfebf7f1f0d243445b0" source="id-7bdcb86e68c04dd5883e6d397c1a4523" target="id-6fff5d627ade4bd48e8b76e5f53ac874" archimateRelationship="id-bdc02d337e834db0bf0a302e59ab62d3"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-30860748018d458d8714763b0bbe1b35" archimateElement="id-f7fc4d431f7a4d9599329cd9d6c690d9">
<bounds x="888" y="696" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-8b04abba46d24349b2ad26f60b696c92" source="id-30860748018d458d8714763b0bbe1b35" target="id-5ab4e91716bf4029b9134781844debf1" archimateRelationship="id-e76f68301f144605a236d173113dc47d"/>
<sourceConnection xsi:type="archimate:Connection" id="id-c80e32a68bbf481389fc59ec2eeacdfa" source="id-30860748018d458d8714763b0bbe1b35" target="id-54f1b914723c4f15ba51c08b9b4ca91b" archimateRelationship="id-f5313a144d08494084b0162002087b40"/>
<sourceConnection xsi:type="archimate:Connection" id="id-d61966a18f6f439bb264d9d4110811af" source="id-30860748018d458d8714763b0bbe1b35" target="id-b92496f029ef4317b093df4e9995beee" archimateRelationship="id-f991995668024e20b9e5c52eee55c04e"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-ca2757c4ac5147c3bff9feb84b0b4e3f" targetConnections="id-351df0a2c7c241ac8a261e8b8a9a026f" archimateElement="id-914b50ad833c4ec38db41304165562bc">
<bounds x="1296" y="300" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-6c59239b908c4609be810d88ac85fdbf" archimateElement="id-ca57d46f50204067b6fdbdc64234ba26">
<bounds x="540" y="596" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-dffe0f9cc9e04000bb44e2c44c5d489b" source="id-6c59239b908c4609be810d88ac85fdbf" target="id-b92496f029ef4317b093df4e9995beee" archimateRelationship="id-528c46f65b0b4c2884b13891bf5329ff"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-10fde09b8d924a829312da1b5b5a2867" archimateElement="id-f8dbb89be1644874af02a9888b56c3d3">
<bounds x="540" y="516" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-029d255bf11146a09ea4c2d681ac7cd5" source="id-10fde09b8d924a829312da1b5b5a2867" target="id-b92496f029ef4317b093df4e9995beee" archimateRelationship="id-aa55b19bb59c4b5f8e845d29235860fb"/>
<sourceConnection xsi:type="archimate:Connection" id="id-9f36830f2b704eb4be896f342b08d860" source="id-10fde09b8d924a829312da1b5b5a2867" target="id-e737018ec85946209ba4504eac5542cb" archimateRelationship="id-3b6d06685feb46bfbd9207540265bb51"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-f1882a93dbde417ea8eb5b603acd97d3" archimateElement="id-4a5d0a75bc99403b93486299f2fe446e">
<bounds x="540" y="222" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-b1af689c2fd34225a11a48daf6d801dd" source="id-f1882a93dbde417ea8eb5b603acd97d3" target="id-01a7c74ab7a94a008b767b0ec5b8ccb1" archimateRelationship="id-6c6195c940584bfea773797b3525ef31"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-3700294ade324003b0f7904bffa0d941" archimateElement="id-98131f2ab6d547ba97b38a8fd86f952c">
<bounds x="540" y="318" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-9d8e45eb0bca46e08b0cc1d2e9df4146" source="id-3700294ade324003b0f7904bffa0d941" target="id-4ef68b5806fc47c594e389d3633747e8" archimateRelationship="id-4321589151ce4c6f9c5be0582751d9af"/>
<sourceConnection xsi:type="archimate:Connection" id="id-30b843f933204f6fb2a74bd014c9cedd" source="id-3700294ade324003b0f7904bffa0d941" target="id-01a7c74ab7a94a008b767b0ec5b8ccb1" archimateRelationship="id-467dc1490f8e42c99d460561826d09f4"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-a6fabe5ef96945888a949ee1eece7c79" targetConnections="id-a7b21eb790d246129f08ca5f2398fffd" archimateElement="id-6a397b4298b54bd7b525b4abfa07e784">
<bounds x="960" y="1068" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-4c3b5c5c64e14b19b850c22b53815433" source="id-a6fabe5ef96945888a949ee1eece7c79" target="id-c02c9ac12f8e45cda72e7dc1ece66eb7" archimateRelationship="id-f79955d595c0405fba0a3ef99518ff41"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-62d2f9bced6e445c9a8a0c86f85ad4e2" targetConnections="id-b9afebf665e641dca95ee591e9650931" archimateElement="id-592b515ddce547d6a840ea8d3ca397e6">
<bounds x="960" y="804" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-01a7c74ab7a94a008b767b0ec5b8ccb1" targetConnections="id-30b843f933204f6fb2a74bd014c9cedd id-b1af689c2fd34225a11a48daf6d801dd id-e09259447f574106861d8e32fa7bde41" archimateElement="id-21044c770c5b436183d97cee530c883d">
<bounds x="792" y="222" width="120" height="151"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-ab3d15e2db4a4999aa55c8b428720910" targetConnections="id-307f1ebc05aa45f788b5fb568f62924c" archimateElement="id-a16f88d5bea64014870e087855bd1203">
<bounds x="959" y="300" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-01212dd6e58449219c0ddf914e71e152" source="id-ab3d15e2db4a4999aa55c8b428720910" target="id-051c319ecf0843d591baf1e39e315384" archimateRelationship="id-db44a06730034c46bcc525d021b62b22"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-1ce966b839a24991bba5185a90eb86bf" targetConnections="id-2f72cbb8807f4da2925b05421cde08ca" archimateElement="id-d5815490373d446f9b6de95d7685dd20">
<bounds x="804" y="1032" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-b9a3801228f34abb8dcfdc6b42fe3eae" source="id-1ce966b839a24991bba5185a90eb86bf" target="id-da8916b334e142ad8224a0916e1d71c5" archimateRelationship="id-2488c5c59fa245d4b962750744c1e056"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-8e48c858dec14b5e8a07dd5855deeae8" targetConnections="id-b88bb4fd7d0d41cdbfaff27b13bd55f8" archimateElement="id-d7af5cb6eff3463c9ca0a1111d8ba6ec">
<bounds x="-1" y="900" width="497" height="124"/>
<sourceConnection xsi:type="archimate:Connection" id="id-aed91988a6d941df9f956d06bd0ad22a" source="id-8e48c858dec14b5e8a07dd5855deeae8" target="id-4bb05e5490774f5aa461951f8a4ee524" archimateRelationship="id-00a830ff0d044eb78c9060af3d8a39ca"/>
<sourceConnection xsi:type="archimate:Connection" id="id-ac2f35ec13f24535b8dd95bd37a4a1fd" source="id-8e48c858dec14b5e8a07dd5855deeae8" target="id-983c7dfb8c754e009d285413a88e4e9b" archimateRelationship="id-d7fb815d7c6746af85748b2f39868e0d"/>
<sourceConnection xsi:type="archimate:Connection" id="id-e09fae536fa540dd9478d0ef30358818" source="id-8e48c858dec14b5e8a07dd5855deeae8" target="id-a84766070f654bbda1de5c53b6471e90" archimateRelationship="id-3e7322d7f2a44266a99afdeb71af660a"/>
<sourceConnection xsi:type="archimate:Connection" id="id-c64c5a1cec584a6b898d88df8a99b73b" source="id-8e48c858dec14b5e8a07dd5855deeae8" target="id-98a89fc780414cc286d5fc770dec792b" archimateRelationship="id-2f87b7139c614666b98741ebdef1e392"/>
<child xsi:type="archimate:DiagramObject" id="id-4bb05e5490774f5aa461951f8a4ee524" targetConnections="id-aed91988a6d941df9f956d06bd0ad22a" archimateElement="id-8d00649b663a4cdeb8b1ca4cb33a94e2">
<bounds x="12" y="48" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-f1bc88eaa72049d4a2a93680f9f38c17" source="id-4bb05e5490774f5aa461951f8a4ee524" target="id-983c7dfb8c754e009d285413a88e4e9b" archimateRelationship="id-c0695ef2f0e24055bece54f154704e15"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-983c7dfb8c754e009d285413a88e4e9b" targetConnections="id-ac2f35ec13f24535b8dd95bd37a4a1fd id-f1bc88eaa72049d4a2a93680f9f38c17" archimateElement="id-3b036b67022f4874ba74a8ba7569641e">
<bounds x="168" y="48" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-d25f965156374cb2904bd20023a496a7" source="id-983c7dfb8c754e009d285413a88e4e9b" target="id-a84766070f654bbda1de5c53b6471e90" archimateRelationship="id-989cc148deb04a9c8a9ca863910baf02"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-a84766070f654bbda1de5c53b6471e90" targetConnections="id-e09fae536fa540dd9478d0ef30358818 id-d25f965156374cb2904bd20023a496a7" archimateElement="id-c72473f5f40e40979d848a997ca82fc4">
<bounds x="312" y="48" width="120" height="55"/>
</child>
</child>
<child xsi:type="archimate:DiagramObject" id="id-fe4de8a98a4f4a29847be2535135266c" archimateElement="id-af7c6e0f5ad345f69944ab7839dc12d3">
<bounds x="13" y="1068" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-3986796d398e4ee1bbd72ac787ede438" archimateElement="id-d0dab80d98a5409dbef18b55190ff266">
<bounds x="315" y="1068" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-98a89fc780414cc286d5fc770dec792b" targetConnections="id-c64c5a1cec584a6b898d88df8a99b73b" archimateElement="id-2c2aa3f4f46146b0819005a2a4ffab1b">
<bounds x="188" y="804" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-769fde8ab4054dbab8a932ee60209576" source="id-98a89fc780414cc286d5fc770dec792b" target="id-6fff5d627ade4bd48e8b76e5f53ac874" archimateRelationship="id-aa69451a7c524380bcd58708e07e128e"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-c9e7eb6e9b4d47a4a6d5ec0fd480ff21" targetConnections="id-7fb3e56c078d488fb6cc21a5e466ddc8" archimateElement="id-bf06fc5bf7b04607a55eab4b7f2c0162">
<bounds x="1104" y="540" width="117" height="60"/>
<sourceConnection xsi:type="archimate:Connection" id="id-ab1ed244306445c6b57ab045e234c59b" source="id-c9e7eb6e9b4d47a4a6d5ec0fd480ff21" target="id-3d809d92c16549ce80b942f9c1fa5928" archimateRelationship="id-d303271ac5354730bbd576c1d417590f"/>
<sourceConnection xsi:type="archimate:Connection" id="id-250e9001114a47b882f5174fd94edfe3" source="id-c9e7eb6e9b4d47a4a6d5ec0fd480ff21" target="id-74b1579d6c884968b36725dc6f247d57" archimateRelationship="id-21384523026e44e38c85c576c5386cb0"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-74b1579d6c884968b36725dc6f247d57" targetConnections="id-250e9001114a47b882f5174fd94edfe3 id-4118736513664daf9761021d77a818e7" archimateElement="id-b8213a40d0d54989b1ebc9d0f74a6923">
<bounds x="1103" y="612" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-3d809d92c16549ce80b942f9c1fa5928" targetConnections="id-ab1ed244306445c6b57ab045e234c59b" archimateElement="id-eab6a8e2831d49ba92f47cb81c5e11bb">
<bounds x="1103" y="456" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-b06433c1302347469fe09b3affa677a1" targetConnections="id-b11720179ade400e9da50923e855c76e" archimateElement="id-470d5c42ef7e40de8f0e45ec0184459b">
<bounds x="960" y="930" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-2f72cbb8807f4da2925b05421cde08ca" source="id-b06433c1302347469fe09b3affa677a1" target="id-1ce966b839a24991bba5185a90eb86bf" archimateRelationship="id-bdeabfb01549405795efec3962312ce8"/>
<sourceConnection xsi:type="archimate:Connection" id="id-a7b21eb790d246129f08ca5f2398fffd" source="id-b06433c1302347469fe09b3affa677a1" target="id-a6fabe5ef96945888a949ee1eece7c79" archimateRelationship="id-a4de199ce5974acfa819990a034e6deb"/>
<sourceConnection xsi:type="archimate:Connection" id="id-b9afebf665e641dca95ee591e9650931" source="id-b06433c1302347469fe09b3affa677a1" target="id-62d2f9bced6e445c9a8a0c86f85ad4e2" archimateRelationship="id-353976f5de2e43a79a078406158ae57b"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-94a50985dff44e6aa715f46264087ca9" archimateElement="id-cb3aa0bfe8a44924b6d9e51253306577">
<bounds x="744" y="804" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-b11720179ade400e9da50923e855c76e" source="id-94a50985dff44e6aa715f46264087ca9" target="id-b06433c1302347469fe09b3affa677a1" archimateRelationship="id-339221d90c404c80a69f40eccdcdf084"/>
<sourceConnection xsi:type="archimate:Connection" id="id-a8935dbbfc7c44f18d3858e823bc1a79" source="id-94a50985dff44e6aa715f46264087ca9" target="id-6fff5d627ade4bd48e8b76e5f53ac874" archimateRelationship="id-63ff86ad8b174dd888c56b22cd67ade4"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-4ef68b5806fc47c594e389d3633747e8" targetConnections="id-9d8e45eb0bca46e08b0cc1d2e9df4146" archimateElement="id-59199cf7fecb43029f380150c3112e4c">
<bounds x="192" y="342" width="325" height="108"/>
<sourceConnection xsi:type="archimate:Connection" id="id-557ff9ec046f4b6fa4cd53775db453cd" source="id-4ef68b5806fc47c594e389d3633747e8" target="id-9e36ef28093b46ef903fd5809e94eac4" archimateRelationship="id-85c51473330d456d899b7de20258c0e4"/>
<sourceConnection xsi:type="archimate:Connection" id="id-28e4700ebe6a4dfb84387bff398bcf20" source="id-4ef68b5806fc47c594e389d3633747e8" target="id-49ccf4a7d92d4ffcb323d1863ca87667" archimateRelationship="id-6f6003c99f6d4d9c9a4d0cac5406cc3c"/>
<sourceConnection xsi:type="archimate:Connection" id="id-f392038d2fcb40b8b205949f67d8bf00" source="id-4ef68b5806fc47c594e389d3633747e8" target="id-33b97295ec4a4178971ca6839937b233" archimateRelationship="id-8981dce6f216412c8c91aeb96d62e7f6"/>
<child xsi:type="archimate:DiagramObject" id="id-9e36ef28093b46ef903fd5809e94eac4" targetConnections="id-557ff9ec046f4b6fa4cd53775db453cd id-4f6ddfc99ec64ecd9d59bfecab09c3b3" archimateElement="id-90cf43fe35ed458db0dbb6066866330d">
<bounds x="24" y="36" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-79c635fbbaf744f38f955c3dbffc32da" source="id-9e36ef28093b46ef903fd5809e94eac4" target="id-49ccf4a7d92d4ffcb323d1863ca87667" archimateRelationship="id-fb1ff700313e4733a0b811c4d861834e"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-49ccf4a7d92d4ffcb323d1863ca87667" targetConnections="id-28e4700ebe6a4dfb84387bff398bcf20 id-79c635fbbaf744f38f955c3dbffc32da" archimateElement="id-b463596068dd4d5793ac31771e62c29f">
<bounds x="180" y="36" width="120" height="55"/>
</child>
</child>
<child xsi:type="archimate:DiagramObject" id="id-49027db4a0564b61b179cf79ac34a18e" archimateElement="id-646ed8b0b317482b8e5643bb2bdc83a0">
<bounds x="204" y="462" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-4f6ddfc99ec64ecd9d59bfecab09c3b3" source="id-49027db4a0564b61b179cf79ac34a18e" target="id-9e36ef28093b46ef903fd5809e94eac4" archimateRelationship="id-be7573bac865443cb5b9aa087fe88adf"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-33b97295ec4a4178971ca6839937b233" targetConnections="id-f392038d2fcb40b8b205949f67d8bf00" archimateElement="id-47a550a115c14658a5aecafdb88f26a2">
<bounds x="300" y="270" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-da8916b334e142ad8224a0916e1d71c5" targetConnections="id-b9a3801228f34abb8dcfdc6b42fe3eae" archimateElement="id-c5986bc56b91435c82f3657c1444ed8d">
<bounds x="804" y="1116" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-3af860d5999b411cb73cf130449007b4" source="id-da8916b334e142ad8224a0916e1d71c5" target="id-392b477cd8e4449ea641c7c167a72f04" archimateRelationship="id-14e4260a408b4d47af555991951c58a0"/>
<sourceConnection xsi:type="archimate:Connection" id="id-d8228bd8f1d14606b03db5b4aaac80ad" source="id-da8916b334e142ad8224a0916e1d71c5" target="id-77729979409e4cd1a2e3cdf184696830" archimateRelationship="id-ba05ad939d8e4a40bd0746cb9860e26e"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-392b477cd8e4449ea641c7c167a72f04" targetConnections="id-3af860d5999b411cb73cf130449007b4" archimateElement="id-c9bee04b1997424fb4fd50d7b43c9aa4">
<bounds x="673" y="1032" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-77729979409e4cd1a2e3cdf184696830" targetConnections="id-d8228bd8f1d14606b03db5b4aaac80ad" archimateElement="id-72a39f0325324ef287d153799bc2855f">
<bounds x="804" y="1188" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-c02c9ac12f8e45cda72e7dc1ece66eb7" targetConnections="id-4c3b5c5c64e14b19b850c22b53815433" archimateElement="id-a83c565405e24a0cbe634df5b13adefa">
<bounds x="1128" y="984" width="456" height="139"/>
<sourceConnection xsi:type="archimate:Connection" id="id-11d65d7a393d4434bb3fa6731b546a36" source="id-c02c9ac12f8e45cda72e7dc1ece66eb7" target="id-f9eec5795f0d4366b0e60df42c0dc943" archimateRelationship="id-b793c993de3144bfa74d773ee05a6320"/>
<sourceConnection xsi:type="archimate:Connection" id="id-4be3d64070c448089896c37a6701dcdb" source="id-c02c9ac12f8e45cda72e7dc1ece66eb7" target="id-7824b00f9ba0486e8f76917d61f3d148" archimateRelationship="id-554c9e08f2784094ab67fb9723a09497"/>
<sourceConnection xsi:type="archimate:Connection" id="id-080ae2ae031a4490842f46bcc87f0da5" source="id-c02c9ac12f8e45cda72e7dc1ece66eb7" target="id-e4ec1dec85b341c5b2cc6c5efcc015af" archimateRelationship="id-b2fd3f8018dc47bb9a8aac310b3adb13"/>
<sourceConnection xsi:type="archimate:Connection" id="id-5e87e72076d5497b808e86a10afbb829" source="id-c02c9ac12f8e45cda72e7dc1ece66eb7" target="id-74012a7a9dfa49a98a220d678e75b295" archimateRelationship="id-979f1cd967fa44c28d1dd984254f01ce"/>
<child xsi:type="archimate:DiagramObject" id="id-f9eec5795f0d4366b0e60df42c0dc943" targetConnections="id-11d65d7a393d4434bb3fa6731b546a36" archimateElement="id-f75d8831d88d466788a9cb7a362115d7">
<bounds x="24" y="60" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-3a4487bc884545e0957fba62a2c90de3" source="id-f9eec5795f0d4366b0e60df42c0dc943" target="id-7824b00f9ba0486e8f76917d61f3d148" archimateRelationship="id-32d4654c492c476eb1ab47270bd9b530"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-7824b00f9ba0486e8f76917d61f3d148" targetConnections="id-4be3d64070c448089896c37a6701dcdb id-3a4487bc884545e0957fba62a2c90de3" archimateElement="id-3cd6737cb2dc43419cb1cfa95553eaff">
<bounds x="168" y="60" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-1cb10030d63e4a3186ffa1e5f0dff453" source="id-7824b00f9ba0486e8f76917d61f3d148" target="id-e4ec1dec85b341c5b2cc6c5efcc015af" archimateRelationship="id-f427f07fccb84097921511c7c8651958"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-e4ec1dec85b341c5b2cc6c5efcc015af" targetConnections="id-080ae2ae031a4490842f46bcc87f0da5 id-1cb10030d63e4a3186ffa1e5f0dff453" archimateElement="id-329c5f0bdfbd45539a5a67563864dd15">
<bounds x="312" y="60" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-0d67551def32425d91de69d6b3979364" source="id-e4ec1dec85b341c5b2cc6c5efcc015af" target="id-383212d9b96b4cec9f3f32e9ea5c4d18" archimateRelationship="id-efba019cfe564974850268f730bf9021"/>
</child>
</child>
<child xsi:type="archimate:DiagramObject" id="id-383212d9b96b4cec9f3f32e9ea5c4d18" targetConnections="id-0d67551def32425d91de69d6b3979364" archimateElement="id-16c2eac4fe0244bba8e966d60113c17e">
<bounds x="1438" y="1140" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-74012a7a9dfa49a98a220d678e75b295" targetConnections="id-5e87e72076d5497b808e86a10afbb829" archimateElement="id-0a2d3e9f4ab84fa4bc95bf0ad7b0e019">
<bounds x="1128" y="888" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-6fff5d627ade4bd48e8b76e5f53ac874" targetConnections="id-769fde8ab4054dbab8a932ee60209576 id-90afd6ed13674bfebf7f1f0d243445b0 id-a8935dbbfc7c44f18d3858e823bc1a79" archimateElement="id-b93c5394ba774089b8db9cee93325d2e">
<bounds x="492" y="720" width="168" height="151"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-df2efd19bbe842a18a409ad1ea3b61b4" targetConnections="id-2746a9bed3c04e7994e477990c416e5f" archimateElement="id-d61ab63b2d554e38bb4fa898ae9b4b0b">
<bounds x="1128" y="300" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-351df0a2c7c241ac8a261e8b8a9a026f" source="id-df2efd19bbe842a18a409ad1ea3b61b4" target="id-ca2757c4ac5147c3bff9feb84b0b4e3f" archimateRelationship="id-853a2561fe37439097d0445169336326"/>
<sourceConnection xsi:type="archimate:Connection" id="id-307f1ebc05aa45f788b5fb568f62924c" source="id-df2efd19bbe842a18a409ad1ea3b61b4" target="id-ab3d15e2db4a4999aa55c8b428720910" archimateRelationship="id-87d2db2f86f84e49bd416475b6cbbe32"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-9079daed35214810aee384fc4cc934fe" archimateElement="id-c90a1902ebf34d418cab6b13e035b95b">
<bounds x="1128" y="222" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-2746a9bed3c04e7994e477990c416e5f" source="id-9079daed35214810aee384fc4cc934fe" target="id-df2efd19bbe842a18a409ad1ea3b61b4" archimateRelationship="id-2cef75d6eca44c90b9a1b58ff590aecd"/>
<sourceConnection xsi:type="archimate:Connection" id="id-e09259447f574106861d8e32fa7bde41" source="id-9079daed35214810aee384fc4cc934fe" target="id-01a7c74ab7a94a008b767b0ec5b8ccb1" archimateRelationship="id-9541a145603e42fa96cf40ead04beccd"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-051c319ecf0843d591baf1e39e315384" targetConnections="id-01212dd6e58449219c0ddf914e71e152" archimateElement="id-3e6a5f02018e4c909bb12fc79bdd7a8f">
<bounds x="960" y="387" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-5ab4e91716bf4029b9134781844debf1" targetConnections="id-8b04abba46d24349b2ad26f60b696c92" archimateElement="id-a029c9caeaa242319b3231c428464049">
<bounds x="935" y="624" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-4118736513664daf9761021d77a818e7" source="id-5ab4e91716bf4029b9134781844debf1" target="id-74b1579d6c884968b36725dc6f247d57" archimateRelationship="id-1293cbace3b24735bb7f0de164517f2b"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-54f1b914723c4f15ba51c08b9b4ca91b" targetConnections="id-c80e32a68bbf481389fc59ec2eeacdfa" archimateElement="id-70ecde0014ef45abb903d4ebedee8da1">
<bounds x="1044" y="696" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-b92496f029ef4317b093df4e9995beee" targetConnections="id-070e4cfc538646b8a606634525a99b4b id-d61966a18f6f439bb264d9d4110811af id-029d255bf11146a09ea4c2d681ac7cd5 id-dffe0f9cc9e04000bb44e2c44c5d489b" archimateElement="id-c18c5b11a9004b0aa05916845b74445b">
<bounds x="780" y="491" width="120" height="156"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-e737018ec85946209ba4504eac5542cb" targetConnections="id-9f36830f2b704eb4be896f342b08d860 id-144c9295d1fc4c929a51656516f5accb" archimateElement="id-67c92892eb2340e7b13725d30cce2bb1">
<bounds x="144" y="549" width="332" height="130"/>
<sourceConnection xsi:type="archimate:Connection" id="id-a71957cfdf12417c822482edc398b968" source="id-e737018ec85946209ba4504eac5542cb" target="id-6e9aa865ceb94916a673d37150ec2762" archimateRelationship="id-98c602f558b54ba0bd24e22d9205fa7b"/>
<sourceConnection xsi:type="archimate:Connection" id="id-fa5d8cf49dc34124968a48f1f55ee5a2" source="id-e737018ec85946209ba4504eac5542cb" target="id-2dae37628c694ae2b021ed7fc6257433" archimateRelationship="id-11c4d0afda24453f916892c1e67baf40"/>
<child xsi:type="archimate:DiagramObject" id="id-6e9aa865ceb94916a673d37150ec2762" targetConnections="id-a71957cfdf12417c822482edc398b968 id-83cc7a9838924e898683a97aea199a12" archimateElement="id-32a52612ffa547c399b8b96f89a48df2">
<bounds x="192" y="48" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-2dae37628c694ae2b021ed7fc6257433" targetConnections="id-fa5d8cf49dc34124968a48f1f55ee5a2" archimateElement="id-e941d14bf7dc41bf80aefbe4c77c3f1f">
<bounds x="25" y="48" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-83cc7a9838924e898683a97aea199a12" source="id-2dae37628c694ae2b021ed7fc6257433" target="id-6e9aa865ceb94916a673d37150ec2762" archimateRelationship="id-cd1e2b37b1e94c669a4e0bed177cf476"/>
</child>
</child>
<child xsi:type="archimate:DiagramObject" id="id-bd1893d65c644bda96228334451371bf" archimateElement="id-cc1187b915694349ac47180bf275460a">
<bounds x="356" y="480" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-144c9295d1fc4c929a51656516f5accb" source="id-bd1893d65c644bda96228334451371bf" target="id-e737018ec85946209ba4504eac5542cb" archimateRelationship="id-591fe6645f9442a3b8e9f82a6d7e7552"/>
</child>
</element>
</folder>
</archimate:model>

View File

@ -0,0 +1,396 @@
<?xml version="1.0" encoding="UTF-8"?>
<archimate:model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:archimate="http://www.archimatetool.com/archimate" name="(new model)" id="id-adbdd249b55e47428f0e337a95fecce4" version="5.0.0">
<folder name="Strategy" id="id-399ca06be71d4d91a99bcdcff00837d5" type="strategy"/>
<folder name="Business" id="id-20ffb94eca224eea8914b225794f60b7" type="business"/>
<folder name="Application" id="id-f0f59039fc60451688a98803c66dc1ca" type="application"/>
<folder name="Technology &amp; Physical" id="id-2b8de47839044f30b5ec6eaf6e0bee40" type="technology">
<element xsi:type="archimate:Node" name="App Server" id="id-ff423d1b23d645419b87fc1860c80ac1">
<documentation>Ubuntu 24.04 LTS z Apache Tomcat 8.x, hostuje komponenty aplikacyjne</documentation>
</element>
<element xsi:type="archimate:Node" name="DB Server" id="id-9466bd9929084ed09ee9a99f5e56c695">
<documentation>Oracle 12c (Primary &amp; Secondary), obsługuje dane i replikację
</documentation>
</element>
<element xsi:type="archimate:Node" name="ANPR Gateway" id="id-bb1fb58559074f13bfbc1fe47435bdc4">
<documentation>Obsługuje przetwarzanie strumieni z kamer ANPR
</documentation>
</element>
<element xsi:type="archimate:Node" name="OBU Gateway Server" id="id-1abd3c0586c34f70abb271611f1f19c5">
<documentation>Obsługuje komunikację z urządzeniami OBU
</documentation>
</element>
<element xsi:type="archimate:Node" name="Mobile Gateway Server" id="id-1f491da98a4848db942e08dbb5a16ed4">
<documentation>Obsługuje żądania z aplikacji mobilnych
</documentation>
</element>
<element xsi:type="archimate:Node" name="External Systems" id="id-a5541cfb87fe4dfe99c9ff966b74941f">
<documentation>Węzeł integracyjny API REST/SOAP dla CEPiK, systemów płatności itd.
</documentation>
</element>
<element xsi:type="archimate:Device" name="Ubuntu 24.04 LTS machine" id="id-6ee053637dbc4138a2af9045d023edb3"/>
<element xsi:type="archimate:SystemSoftware" name="Ubuntu + Tomcat Application Server" id="id-e0e6e8e1cb714a14bc121d8193cc80a1"/>
<element xsi:type="archimate:TechnologyFunction" name="Application Execution" id="id-6c0adea3340a40b1810d0dd0af81a831"/>
<element xsi:type="archimate:Artifact" name="Server exe File " id="id-468a5b622dfd477f9305d9223f67c74b"/>
<element xsi:type="archimate:TechnologyService" name="Application Hosting" id="id-c7bf62ee42164c45a39e6841eabee8be"/>
<element xsi:type="archimate:TechnologyInterface" name="HTTP Users API" id="id-8dcf0cc3f87a448c837a6bf04a691c3d"/>
<element xsi:type="archimate:Device" name="DB Primary Server" id="id-f63e6b81df4c4f24ac8170443dbae479"/>
<element xsi:type="archimate:Device" name="DB Server Backup" id="id-b53b5ec8e97f437eaadf3d6bb6936474"/>
<element xsi:type="archimate:SystemSoftware" name="Oracle DB" id="id-cbaf70a50d2242fdb8c5cc426cb700f5"/>
<element xsi:type="archimate:TechnologyService" name="Data Storage" id="id-2eff772056d1442fad6d10dced7f3552"/>
<element xsi:type="archimate:TechnologyInterface" name="Database Access" id="id-ebdb5cf4505d4ad69fd26e0ef13f58a5"/>
<element xsi:type="archimate:TechnologyService" name="Data Replication" id="id-efd82f5816474aa0a81fd68bc461c7e6"/>
<element xsi:type="archimate:Artifact" name="Oracle Schema" id="id-4267812d399841acb9aaf9c74e0410dd"/>
<element xsi:type="archimate:TechnologyFunction" name="Data Replication" id="id-4e70b58ba3f1460ea03cb2e10f9db4cd"/>
<element xsi:type="archimate:CommunicationNetwork" name="eToll Internal Network" id="id-5a6bb503553444b1b77676e1c9df564e"/>
<element xsi:type="archimate:Device" name="Physical Machine - Linux" id="id-a4288d7466ac4007a65216e8e73a4de1"/>
<element xsi:type="archimate:SystemSoftware" name="Rabbit MQ" id="id-5a15faefa53b4101bbd7bf018484c199"/>
<element xsi:type="archimate:TechnologyFunction" name="Message Routing &amp; Queueing" id="id-7609c42361504e869c9f43efba43f187"/>
<element xsi:type="archimate:TechnologyInterface" name="Mobile API" id="id-4b4c32c33030460d95235c095a3166ad"/>
<element xsi:type="archimate:Path" name="Internal API" id="id-c12a297905b1408a93226aaf41a2ab82"/>
<element xsi:type="archimate:Node" name="Mobile App" id="id-69e5ee3a774d47f5b0f2640a7647d076"/>
<element xsi:type="archimate:Device" name="Users Smartphone" id="id-6c318d889094460a980a2d5ad952354d"/>
<element xsi:type="archimate:Path" name="Internal API" id="id-9cba4870745c45a0bc672137d3ed2dc7"/>
<element xsi:type="archimate:TechnologyFunction" name="Message Routing &amp; Queuieng" id="id-564f6b23fa804531ae41a54e9930a6a5"/>
<element xsi:type="archimate:TechnologyFunction" name="Receiving Data form OBU" id="id-674d926f24504b988aff8773c0675855"/>
<element xsi:type="archimate:Device" name="Physical Machine - Linux" id="id-3579f5992d0d4065b31781b77708d5f6"/>
<element xsi:type="archimate:SystemSoftware" name="MQTT Broker" id="id-b590caa7138f45df9ef6f34d33ef6bef"/>
<element xsi:type="archimate:Artifact" name="Logs from OBU Devices" id="id-a6306b461ef045d2a5f259fbdfe7b90f"/>
<element xsi:type="archimate:TechnologyService" name="Mobile Device Access" id="id-f59ebc395e3c485a8499f167c6b10ccb"/>
<element xsi:type="archimate:Device" name="OBU device" id="id-4f858a79be97465e8e530bfd2dab19c1"/>
<element xsi:type="archimate:CommunicationNetwork" name="Internet" id="id-d9ca2a23ee0842f5ae1618500c86ca14"/>
<element xsi:type="archimate:Artifact" name="Mobile App Queries" id="id-c92364c7c70c4c86accac83c50791bd7"/>
<element xsi:type="archimate:Node" name="Load Balancer" id="id-872d30abf8b646e0a31f39cf0b2d2d00"/>
<element xsi:type="archimate:Device" name="Physical Machine - Linux (copy)" id="id-1342c8a57172419ba4d234363f362ef1"/>
<element xsi:type="archimate:SystemSoftware" name="Load Balancer - eg. Nginx" id="id-a3c093da39c144089da4d9796b8b45f9"/>
<element xsi:type="archimate:TechnologyFunction" name="Data Transfer" id="id-7baa0f753db44040ba63ac8c8510f65a"/>
<element xsi:type="archimate:TechnologyService" name="OBU data receiving" id="id-fceb1e05f13e4964aea4d4ce6c1c5e98"/>
<element xsi:type="archimate:TechnologyInterface" name="Internal Communication API" id="id-603e481c44c048e59b52fbea6305a8d0"/>
<element xsi:type="archimate:TechnologyFunction" name="Image Processing" id="id-4b19ec3cc38549d9b466ff22815d6d54"/>
<element xsi:type="archimate:TechnologyFunction" name="Logging &amp; Routing" id="id-d6eb40ee082b478e90bb8ef3f9bb5974"/>
<element xsi:type="archimate:Device" name="Physical Machine - Linux" id="id-8a03b283043a4393940fa2acb0182cf3"/>
<element xsi:type="archimate:SystemSoftware" name="OpenCV - Photon Processing System" id="id-79512960c27d4d29ab7f63ade54280d5"/>
<element xsi:type="archimate:SystemSoftware" name="MQ Broker" id="id-f26eb17baade43ed829955bf63a4da88"/>
<element xsi:type="archimate:TechnologyService" name="ANPR Data Processing and Transfer" id="id-c171112be1ca4edaa3399668da908db1"/>
<element xsi:type="archimate:Device" name="ANPR Device" id="id-0f8a7352be854b5db2ead7c00c858fc9"/>
<element xsi:type="archimate:CommunicationNetwork" name="Inernet" id="id-96ad02c601ad42f7b69068ca56a1ac88"/>
<element xsi:type="archimate:Path" name="HTTPS / gRPC" id="id-a14104aedcaa49ef88f55f3a47cb3f77"/>
<element xsi:type="archimate:Path" name="HTTPS / gRPC (copy)" id="id-c386bf9e3bdd41a1abeb4797d8d74b78"/>
<element xsi:type="archimate:TechnologyFunction" name="Load Balancing" id="id-999f2204349246ac955e2d8020517709"/>
<element xsi:type="archimate:Artifact" name="Vechicle ID from Image" id="id-48f2e5648b0542a9b45509fb63e117aa"/>
</folder>
<folder name="Motivation" id="id-cc8eae1adc794f639e5507657f072f20" type="motivation"/>
<folder name="Implementation &amp; Migration" id="id-4cd2e7dca8644b7fb16dfb21dd45b4bd" type="implementation_migration"/>
<folder name="Other" id="id-97e6442c6eda472092d860a2a872f346" type="other"/>
<folder name="Relations" id="id-29a0ce4b14b841a6912570f4435bb6a8" type="relations">
<element xsi:type="archimate:CompositionRelationship" id="id-48f2f6ca8ad64c5f96f7d76939c06746" source="id-ff423d1b23d645419b87fc1860c80ac1" target="id-6ee053637dbc4138a2af9045d023edb3"/>
<element xsi:type="archimate:AssociationRelationship" id="id-58b61c82ef4a42f6a9b5876eff7d5a66" source="id-e0e6e8e1cb714a14bc121d8193cc80a1" target="id-6ee053637dbc4138a2af9045d023edb3"/>
<element xsi:type="archimate:AssignmentRelationship" id="id-cd9486613724483ca07d972125c13b33" source="id-ff423d1b23d645419b87fc1860c80ac1" target="id-6c0adea3340a40b1810d0dd0af81a831"/>
<element xsi:type="archimate:CompositionRelationship" id="id-abcc0f6e2d274cf1a2bf078420064a7a" source="id-ff423d1b23d645419b87fc1860c80ac1" target="id-e0e6e8e1cb714a14bc121d8193cc80a1"/>
<element xsi:type="archimate:AssignmentRelationship" id="id-acdb9907ca9844048375ac759a7f2b87" source="id-e0e6e8e1cb714a14bc121d8193cc80a1" target="id-468a5b622dfd477f9305d9223f67c74b"/>
<element xsi:type="archimate:RealizationRelationship" id="id-db7e4b12e701480f9659acabd6225d4b" source="id-ff423d1b23d645419b87fc1860c80ac1" target="id-c7bf62ee42164c45a39e6841eabee8be"/>
<element xsi:type="archimate:CompositionRelationship" id="id-f37aba029c3b4f49a130f3fdb03c17b6" source="id-9466bd9929084ed09ee9a99f5e56c695" target="id-f63e6b81df4c4f24ac8170443dbae479"/>
<element xsi:type="archimate:CompositionRelationship" id="id-b6fdb7d77c47400f860d5f999cb2941c" source="id-9466bd9929084ed09ee9a99f5e56c695" target="id-b53b5ec8e97f437eaadf3d6bb6936474"/>
<element xsi:type="archimate:CompositionRelationship" id="id-3e46dd822e224cb99c036fa89cefffd8" source="id-9466bd9929084ed09ee9a99f5e56c695" target="id-cbaf70a50d2242fdb8c5cc426cb700f5"/>
<element xsi:type="archimate:AssociationRelationship" id="id-bdf7716e2a37449eb0f17e39e44f14ad" source="id-b53b5ec8e97f437eaadf3d6bb6936474" target="id-cbaf70a50d2242fdb8c5cc426cb700f5"/>
<element xsi:type="archimate:AssociationRelationship" id="id-9442d2fcddac43c180f9cc1162e942fb" source="id-f63e6b81df4c4f24ac8170443dbae479" target="id-cbaf70a50d2242fdb8c5cc426cb700f5"/>
<element xsi:type="archimate:RealizationRelationship" id="id-2b50594d98934175b6b2eedc14a9309f" source="id-9466bd9929084ed09ee9a99f5e56c695" target="id-2eff772056d1442fad6d10dced7f3552"/>
<element xsi:type="archimate:CompositionRelationship" id="id-20dafbea32eb4915bb790fccee056500" source="id-e0e6e8e1cb714a14bc121d8193cc80a1" target="id-8dcf0cc3f87a448c837a6bf04a691c3d"/>
<element xsi:type="archimate:AssignmentRelationship" id="id-6eee7e468f77425e8250d027e4ca8cb9" source="id-8dcf0cc3f87a448c837a6bf04a691c3d" target="id-c7bf62ee42164c45a39e6841eabee8be"/>
<element xsi:type="archimate:AccessRelationship" id="id-4a75e88759734a328c00c0df2ed417a3" source="id-e0e6e8e1cb714a14bc121d8193cc80a1" target="id-468a5b622dfd477f9305d9223f67c74b" accessType="3"/>
<element xsi:type="archimate:AssignmentRelationship" id="id-bf8feb253bb946f59f49283bce330844" source="id-e0e6e8e1cb714a14bc121d8193cc80a1" target="id-6c0adea3340a40b1810d0dd0af81a831"/>
<element xsi:type="archimate:CompositionRelationship" id="id-b628385a30f5426b86f41fd50e252df5" source="id-cbaf70a50d2242fdb8c5cc426cb700f5" target="id-ebdb5cf4505d4ad69fd26e0ef13f58a5"/>
<element xsi:type="archimate:AssignmentRelationship" id="id-9a5dbf9beed4497b9e288b47044f6582" source="id-ebdb5cf4505d4ad69fd26e0ef13f58a5" target="id-2eff772056d1442fad6d10dced7f3552"/>
<element xsi:type="archimate:RealizationRelationship" id="id-6efd6848bf3a4943a60c9be3aee22221" source="id-9466bd9929084ed09ee9a99f5e56c695" target="id-efd82f5816474aa0a81fd68bc461c7e6"/>
<element xsi:type="archimate:AccessRelationship" id="id-ae9bd64639264dfda0372d24a8d25a18" source="id-cbaf70a50d2242fdb8c5cc426cb700f5" target="id-4267812d399841acb9aaf9c74e0410dd" accessType="3"/>
<element xsi:type="archimate:RealizationRelationship" id="id-9ae9f7c7efb1411eba457ed966ac9d12" source="id-b53b5ec8e97f437eaadf3d6bb6936474" target="id-4e70b58ba3f1460ea03cb2e10f9db4cd"/>
<element xsi:type="archimate:AssociationRelationship" id="id-56b4976dd6b547a5bb144fca6cacf49a" source="id-9466bd9929084ed09ee9a99f5e56c695" target="id-5a6bb503553444b1b77676e1c9df564e"/>
<element xsi:type="archimate:AssociationRelationship" id="id-fd606cdfe5c143faa91cc01b270688b5" source="id-5a6bb503553444b1b77676e1c9df564e" target="id-ff423d1b23d645419b87fc1860c80ac1"/>
<element xsi:type="archimate:ServingRelationship" id="id-2afba4572d0c44548816bccbb919f5f7" source="id-ebdb5cf4505d4ad69fd26e0ef13f58a5" target="id-e0e6e8e1cb714a14bc121d8193cc80a1"/>
<element xsi:type="archimate:CompositionRelationship" id="id-391bbae221104e8da813c3bed9aaedc2" source="id-1f491da98a4848db942e08dbb5a16ed4" target="id-a4288d7466ac4007a65216e8e73a4de1"/>
<element xsi:type="archimate:CompositionRelationship" id="id-a13f8e478b164ab69100e9449e149899" source="id-1f491da98a4848db942e08dbb5a16ed4" target="id-5a15faefa53b4101bbd7bf018484c199"/>
<element xsi:type="archimate:AssociationRelationship" id="id-5a2e2a21c2ca4cc5b08b2908aa252aac" source="id-a4288d7466ac4007a65216e8e73a4de1" target="id-5a15faefa53b4101bbd7bf018484c199"/>
<element xsi:type="archimate:AssignmentRelationship" id="id-cc617621261f474c84966dc5408bd1dc" source="id-1f491da98a4848db942e08dbb5a16ed4" target="id-7609c42361504e869c9f43efba43f187"/>
<element xsi:type="archimate:CompositionRelationship" id="id-3e2177f1b0714837a1c6da6c57b166d8" source="id-69e5ee3a774d47f5b0f2640a7647d076" target="id-6c318d889094460a980a2d5ad952354d"/>
<element xsi:type="archimate:TriggeringRelationship" id="id-63774bc7f49840999597caecaa25266c" source="id-69e5ee3a774d47f5b0f2640a7647d076" target="id-4b4c32c33030460d95235c095a3166ad"/>
<element xsi:type="archimate:CompositionRelationship" id="id-ebadf50c74e34db6bbf7673a2643f79a" source="id-1f491da98a4848db942e08dbb5a16ed4" target="id-4b4c32c33030460d95235c095a3166ad"/>
<element xsi:type="archimate:AssociationRelationship" id="id-eb6c522ce8a442ce94c9109e9b1187b0" source="id-1f491da98a4848db942e08dbb5a16ed4" target="id-9cba4870745c45a0bc672137d3ed2dc7"/>
<element xsi:type="archimate:AssociationRelationship" id="id-49cde330da454bdfa30aca4e4b892e27" source="id-9cba4870745c45a0bc672137d3ed2dc7" target="id-603e481c44c048e59b52fbea6305a8d0"/>
<element xsi:type="archimate:AssignmentRelationship" id="id-ecc8f59a630f4f2e94da7cbd419f608f" source="id-1abd3c0586c34f70abb271611f1f19c5" target="id-564f6b23fa804531ae41a54e9930a6a5"/>
<element xsi:type="archimate:AssignmentRelationship" id="id-61e395caf8b04d6fb6ba1817906a5596" source="id-1abd3c0586c34f70abb271611f1f19c5" target="id-674d926f24504b988aff8773c0675855"/>
<element xsi:type="archimate:CompositionRelationship" id="id-0dfe008de58240a6bdf7053142c6c48e" source="id-1abd3c0586c34f70abb271611f1f19c5" target="id-3579f5992d0d4065b31781b77708d5f6"/>
<element xsi:type="archimate:CompositionRelationship" id="id-23d18e596be146e1a99aa804e749f1be" source="id-1abd3c0586c34f70abb271611f1f19c5" target="id-b590caa7138f45df9ef6f34d33ef6bef"/>
<element xsi:type="archimate:AssociationRelationship" id="id-fe4bcb4cbd214359899522890f20d11d" source="id-3579f5992d0d4065b31781b77708d5f6" target="id-b590caa7138f45df9ef6f34d33ef6bef"/>
<element xsi:type="archimate:AccessRelationship" id="id-e3f1f44b73d24cf99a69f05d8bc12013" source="id-1abd3c0586c34f70abb271611f1f19c5" target="id-a6306b461ef045d2a5f259fbdfe7b90f"/>
<element xsi:type="archimate:RealizationRelationship" id="id-54058e9077a6401492da8d01fb8cd29c" source="id-1f491da98a4848db942e08dbb5a16ed4" target="id-f59ebc395e3c485a8499f167c6b10ccb"/>
<element xsi:type="archimate:AssociationRelationship" id="id-a629fd7bff2a4674ac2588f638e322f7" source="id-4f858a79be97465e8e530bfd2dab19c1" target="id-1abd3c0586c34f70abb271611f1f19c5"/>
<element xsi:type="archimate:AccessRelationship" id="id-aab7515a50094d5d9606d7e3ea1723e9" source="id-9cba4870745c45a0bc672137d3ed2dc7" target="id-a6306b461ef045d2a5f259fbdfe7b90f" accessType="2"/>
<element xsi:type="archimate:AccessRelationship" id="id-225910beb13e4d9f82bae0224cf44155" source="id-1f491da98a4848db942e08dbb5a16ed4" target="id-c92364c7c70c4c86accac83c50791bd7"/>
<element xsi:type="archimate:AccessRelationship" id="id-b8a7e6026a654fff82d85b712c2a0fa2" source="id-9cba4870745c45a0bc672137d3ed2dc7" target="id-c92364c7c70c4c86accac83c50791bd7" accessType="2"/>
<element xsi:type="archimate:CompositionRelationship" id="id-26e92110a4464593882c883813d0bd46" source="id-872d30abf8b646e0a31f39cf0b2d2d00" target="id-1342c8a57172419ba4d234363f362ef1"/>
<element xsi:type="archimate:CompositionRelationship" id="id-c7280a1e8f1a4753879e15a4b38d959d" source="id-872d30abf8b646e0a31f39cf0b2d2d00" target="id-a3c093da39c144089da4d9796b8b45f9"/>
<element xsi:type="archimate:AssociationRelationship" id="id-6cb389043c97472ca806c0fca1fcf12f" source="id-1342c8a57172419ba4d234363f362ef1" target="id-a3c093da39c144089da4d9796b8b45f9"/>
<element xsi:type="archimate:AssignmentRelationship" id="id-89d626b514a14e07a20ddd42bec275df" source="id-872d30abf8b646e0a31f39cf0b2d2d00" target="id-7baa0f753db44040ba63ac8c8510f65a"/>
<element xsi:type="archimate:AccessRelationship" id="id-3bc993a44a2d4ec1a35a6d44327560d5" source="id-872d30abf8b646e0a31f39cf0b2d2d00" target="id-c92364c7c70c4c86accac83c50791bd7" accessType="2"/>
<element xsi:type="archimate:AccessRelationship" id="id-eaa7264876ae43fa87b990c54e1ff114" source="id-872d30abf8b646e0a31f39cf0b2d2d00" target="id-a6306b461ef045d2a5f259fbdfe7b90f" accessType="2"/>
<element xsi:type="archimate:AssociationRelationship" id="id-a5f851bebcf2478e8b67d97af8ad094a" source="id-872d30abf8b646e0a31f39cf0b2d2d00" target="id-9cba4870745c45a0bc672137d3ed2dc7"/>
<element xsi:type="archimate:RealizationRelationship" id="id-dd4ac783108547d7877d071c84823537" source="id-1abd3c0586c34f70abb271611f1f19c5" target="id-fceb1e05f13e4964aea4d4ce6c1c5e98"/>
<element xsi:type="archimate:CompositionRelationship" id="id-3282e9a7bf374bccbf879fb64d1d1761" source="id-e0e6e8e1cb714a14bc121d8193cc80a1" target="id-603e481c44c048e59b52fbea6305a8d0"/>
<element xsi:type="archimate:AssignmentRelationship" id="id-2e5b49e9e33246649ea84d429bdfa480" source="id-bb1fb58559074f13bfbc1fe47435bdc4" target="id-4b19ec3cc38549d9b466ff22815d6d54"/>
<element xsi:type="archimate:AssignmentRelationship" id="id-93c0f693b306430ca4215dbaf6ea3372" source="id-bb1fb58559074f13bfbc1fe47435bdc4" target="id-d6eb40ee082b478e90bb8ef3f9bb5974"/>
<element xsi:type="archimate:CompositionRelationship" id="id-0ef87e84c87440eea6136594da7afc69" source="id-bb1fb58559074f13bfbc1fe47435bdc4" target="id-8a03b283043a4393940fa2acb0182cf3"/>
<element xsi:type="archimate:CompositionRelationship" id="id-8ef0d62e353e4afab2a19406e06dfe00" source="id-bb1fb58559074f13bfbc1fe47435bdc4" target="id-79512960c27d4d29ab7f63ade54280d5"/>
<element xsi:type="archimate:AssociationRelationship" id="id-dd49caae4b6f4a7ab8c1f38050e60b06" source="id-8a03b283043a4393940fa2acb0182cf3" target="id-79512960c27d4d29ab7f63ade54280d5"/>
<element xsi:type="archimate:CompositionRelationship" id="id-c3ad3476343843b5bb8d3f02fdea85a5" source="id-bb1fb58559074f13bfbc1fe47435bdc4" target="id-f26eb17baade43ed829955bf63a4da88"/>
<element xsi:type="archimate:AssociationRelationship" id="id-a6de4ff6ce5842518f201151f9e5a7ce" source="id-8a03b283043a4393940fa2acb0182cf3" target="id-f26eb17baade43ed829955bf63a4da88"/>
<element xsi:type="archimate:RealizationRelationship" id="id-36ccd7ad5f5d43918dc0842a96b3f106" source="id-bb1fb58559074f13bfbc1fe47435bdc4" target="id-c171112be1ca4edaa3399668da908db1"/>
<element xsi:type="archimate:AssociationRelationship" id="id-33781e418dcf4d4798e7c53bf19f90d6" source="id-bb1fb58559074f13bfbc1fe47435bdc4" target="id-0f8a7352be854b5db2ead7c00c858fc9"/>
<element xsi:type="archimate:AssociationRelationship" id="id-7a2eccfd3b7442c28596ada914c0ef62" source="id-4f858a79be97465e8e530bfd2dab19c1" target="id-a14104aedcaa49ef88f55f3a47cb3f77"/>
<element xsi:type="archimate:AssociationRelationship" id="id-536cc0f60c0e4b4cbb5a0a1c51196d3f" source="id-a14104aedcaa49ef88f55f3a47cb3f77" target="id-1abd3c0586c34f70abb271611f1f19c5"/>
<element xsi:type="archimate:AssociationRelationship" id="id-75756580194e4f26b30fa556d557342d" source="id-a14104aedcaa49ef88f55f3a47cb3f77" target="id-1abd3c0586c34f70abb271611f1f19c5"/>
<element xsi:type="archimate:AssociationRelationship" id="id-00d44bd1cc25451bb1bef2f404a2d214" source="id-0f8a7352be854b5db2ead7c00c858fc9" target="id-c386bf9e3bdd41a1abeb4797d8d74b78"/>
<element xsi:type="archimate:AssociationRelationship" id="id-91dcf028d0c7415a812ade5a3f07810b" source="id-c386bf9e3bdd41a1abeb4797d8d74b78" target="id-bb1fb58559074f13bfbc1fe47435bdc4"/>
<element xsi:type="archimate:AssignmentRelationship" id="id-05f8c813a3c847848530621737f530ce" source="id-872d30abf8b646e0a31f39cf0b2d2d00" target="id-999f2204349246ac955e2d8020517709"/>
<element xsi:type="archimate:AccessRelationship" id="id-66a584eb2f884a14b1e26ce19df93de2" source="id-bb1fb58559074f13bfbc1fe47435bdc4" target="id-48f2e5648b0542a9b45509fb63e117aa"/>
<element xsi:type="archimate:AccessRelationship" id="id-c6115ef5d00c468cb5700e0516f0ca9e" source="id-872d30abf8b646e0a31f39cf0b2d2d00" target="id-48f2e5648b0542a9b45509fb63e117aa" accessType="2"/>
<element xsi:type="archimate:AssociationRelationship" id="id-a5b0eb2d037a40ffae1823ba47d0ece9" source="id-ff423d1b23d645419b87fc1860c80ac1" target="id-a5541cfb87fe4dfe99c9ff966b74941f"/>
</folder>
<folder name="Views" id="id-834dc71ad8a54e86b7bfa255d63d5ea2" type="diagrams">
<element xsi:type="archimate:ArchimateDiagramModel" name="Default View" id="id-eea782e41a114697ad939b72e2f06e33">
<child xsi:type="archimate:DiagramObject" id="id-5a697290479f40588ba60dbdb2b637bb" targetConnections="id-9cabff692d7e45c080c507657ea00fc3" archimateElement="id-ff423d1b23d645419b87fc1860c80ac1">
<bounds x="180" y="119" width="169" height="230"/>
<sourceConnection xsi:type="archimate:Connection" id="id-c39e90e3b2294f678c633d12e73780e1" source="id-5a697290479f40588ba60dbdb2b637bb" target="id-a0845f433bf04300a27d620140b45d58" archimateRelationship="id-48f2f6ca8ad64c5f96f7d76939c06746"/>
<sourceConnection xsi:type="archimate:Connection" id="id-e1bdca974c4f4030b21cc98346b439ff" source="id-5a697290479f40588ba60dbdb2b637bb" target="id-b8b8a7d890c74e98ac38e1c2fd9fe69e" archimateRelationship="id-abcc0f6e2d274cf1a2bf078420064a7a"/>
<sourceConnection xsi:type="archimate:Connection" id="id-0a7e50b977214ba5b0f2e9395ba56e66" source="id-5a697290479f40588ba60dbdb2b637bb" target="id-662cf3c5c0294e61845110402e29957c" archimateRelationship="id-db7e4b12e701480f9659acabd6225d4b"/>
<sourceConnection xsi:type="archimate:Connection" id="id-a8f72c40e58641e5a23425264bb4c7fa" source="id-5a697290479f40588ba60dbdb2b637bb" target="id-878791601ef64b859e3da10fe0b2c108" archimateRelationship="id-a5b0eb2d037a40ffae1823ba47d0ece9"/>
<child xsi:type="archimate:DiagramObject" id="id-b8b8a7d890c74e98ac38e1c2fd9fe69e" targetConnections="id-e1bdca974c4f4030b21cc98346b439ff id-d5e7e09316c64cb5afaaaa935e0fcfcd" archimateElement="id-e0e6e8e1cb714a14bc121d8193cc80a1">
<bounds x="12" y="36" width="145" height="121"/>
<sourceConnection xsi:type="archimate:Connection" id="id-953aeeadea5a48e7adc52522e2dc928f" source="id-b8b8a7d890c74e98ac38e1c2fd9fe69e" target="id-a0845f433bf04300a27d620140b45d58" archimateRelationship="id-58b61c82ef4a42f6a9b5876eff7d5a66"/>
<sourceConnection xsi:type="archimate:Connection" id="id-912c132803cd420a96dc1911fcb92e4c" source="id-b8b8a7d890c74e98ac38e1c2fd9fe69e" target="id-b926452457db4657923b1c505450cc69" archimateRelationship="id-20dafbea32eb4915bb790fccee056500">
<bendpoint startX="132" startY="-5" endX="-13" endY="141"/>
</sourceConnection>
<sourceConnection xsi:type="archimate:Connection" id="id-dcd9dfc7534144d59e4348e4faed8dfd" source="id-b8b8a7d890c74e98ac38e1c2fd9fe69e" target="id-2fd156e0aebb4a1ea93144f7626f8245" archimateRelationship="id-4a75e88759734a328c00c0df2ed417a3"/>
<sourceConnection xsi:type="archimate:Connection" id="id-5be086a7af6041e98022b6bd6eeaf8cc" source="id-b8b8a7d890c74e98ac38e1c2fd9fe69e" target="id-ee050026a220449b8446c4303538f44f" archimateRelationship="id-bf8feb253bb946f59f49283bce330844"/>
<sourceConnection xsi:type="archimate:Connection" id="id-43c1ec79879f4a0f90cc87d239b04435" source="id-b8b8a7d890c74e98ac38e1c2fd9fe69e" target="id-084d48ce9ac04c8482208e229c1bbfdd" archimateRelationship="id-3282e9a7bf374bccbf879fb64d1d1761"/>
<child xsi:type="archimate:DiagramObject" id="id-ee050026a220449b8446c4303538f44f" targetConnections="id-5be086a7af6041e98022b6bd6eeaf8cc" archimateElement="id-6c0adea3340a40b1810d0dd0af81a831">
<bounds x="12" y="60" width="120" height="55"/>
</child>
</child>
<child xsi:type="archimate:DiagramObject" id="id-a0845f433bf04300a27d620140b45d58" targetConnections="id-c39e90e3b2294f678c633d12e73780e1 id-953aeeadea5a48e7adc52522e2dc928f" archimateElement="id-6ee053637dbc4138a2af9045d023edb3">
<bounds x="12" y="168" width="145" height="49"/>
</child>
</child>
<child xsi:type="archimate:DiagramObject" id="id-ee7c226d1c2f48fdbe5736dc736a6733" archimateElement="id-9466bd9929084ed09ee9a99f5e56c695">
<bounds x="168" y="624" width="301" height="205"/>
<sourceConnection xsi:type="archimate:Connection" id="id-c6263d5c3a09481690f151776a59e698" source="id-ee7c226d1c2f48fdbe5736dc736a6733" target="id-a51cb6149e954e18b033f47f9fd8a9e1" archimateRelationship="id-f37aba029c3b4f49a130f3fdb03c17b6"/>
<sourceConnection xsi:type="archimate:Connection" id="id-ec2b683f4301489cbe27035058a08263" source="id-ee7c226d1c2f48fdbe5736dc736a6733" target="id-889750dca0b04a8c9a583c54b96e6159" archimateRelationship="id-b6fdb7d77c47400f860d5f999cb2941c"/>
<sourceConnection xsi:type="archimate:Connection" id="id-30bc0642091b486d8a62dbec4b91691c" source="id-ee7c226d1c2f48fdbe5736dc736a6733" target="id-139c9dbafa7f4524ace7f9fe285b1da1" archimateRelationship="id-3e46dd822e224cb99c036fa89cefffd8"/>
<sourceConnection xsi:type="archimate:Connection" id="id-729de68e73304ed8ad0887923e505fa6" source="id-ee7c226d1c2f48fdbe5736dc736a6733" target="id-61289f2f1d6146b389a72213c9973dbf" archimateRelationship="id-2b50594d98934175b6b2eedc14a9309f"/>
<sourceConnection xsi:type="archimate:Connection" id="id-822e5df67b1f416586b859cac9f406e4" source="id-ee7c226d1c2f48fdbe5736dc736a6733" target="id-193f238ca9814ee78ade57dfe629c637" archimateRelationship="id-56b4976dd6b547a5bb144fca6cacf49a"/>
<child xsi:type="archimate:DiagramObject" id="id-a51cb6149e954e18b033f47f9fd8a9e1" targetConnections="id-c6263d5c3a09481690f151776a59e698" archimateElement="id-f63e6b81df4c4f24ac8170443dbae479">
<bounds x="11" y="108" width="120" height="85"/>
<sourceConnection xsi:type="archimate:Connection" id="id-266cc0d17a194eab8515d753baedece0" source="id-a51cb6149e954e18b033f47f9fd8a9e1" target="id-139c9dbafa7f4524ace7f9fe285b1da1" archimateRelationship="id-9442d2fcddac43c180f9cc1162e942fb"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-889750dca0b04a8c9a583c54b96e6159" targetConnections="id-ec2b683f4301489cbe27035058a08263" archimateElement="id-b53b5ec8e97f437eaadf3d6bb6936474">
<bounds x="143" y="108" width="145" height="85"/>
<sourceConnection xsi:type="archimate:Connection" id="id-9aad20bbdbca4bd8be17eed28d4acbd2" source="id-889750dca0b04a8c9a583c54b96e6159" target="id-139c9dbafa7f4524ace7f9fe285b1da1" archimateRelationship="id-bdf7716e2a37449eb0f17e39e44f14ad"/>
<sourceConnection xsi:type="archimate:Connection" id="id-5940a7d56f9440a5b9bbca0070b2a7d0" source="id-889750dca0b04a8c9a583c54b96e6159" target="id-057b6c01756a434ba442d2116c4a38eb" archimateRelationship="id-9ae9f7c7efb1411eba457ed966ac9d12"/>
<child xsi:type="archimate:DiagramObject" id="id-057b6c01756a434ba442d2116c4a38eb" targetConnections="id-5940a7d56f9440a5b9bbca0070b2a7d0" archimateElement="id-4e70b58ba3f1460ea03cb2e10f9db4cd">
<bounds x="12" y="24" width="120" height="55"/>
</child>
</child>
<child xsi:type="archimate:DiagramObject" id="id-139c9dbafa7f4524ace7f9fe285b1da1" targetConnections="id-30bc0642091b486d8a62dbec4b91691c id-9aad20bbdbca4bd8be17eed28d4acbd2 id-266cc0d17a194eab8515d753baedece0" archimateElement="id-cbaf70a50d2242fdb8c5cc426cb700f5">
<bounds x="11" y="36" width="277" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-3d2ea18edd2c4213b25480fe3325dd79" source="id-139c9dbafa7f4524ace7f9fe285b1da1" target="id-2142f72fb9094ddf986616f695e3e3f9" archimateRelationship="id-b628385a30f5426b86f41fd50e252df5">
<bendpoint startX="187" startY="-27" endX="-24" endY="105"/>
</sourceConnection>
<sourceConnection xsi:type="archimate:Connection" id="id-773a872407ce4a9aa4cf67856f480825" source="id-139c9dbafa7f4524ace7f9fe285b1da1" target="id-7da0deabee2d42d298d73c4886d70361" archimateRelationship="id-ae9bd64639264dfda0372d24a8d25a18"/>
</child>
</child>
<child xsi:type="archimate:DiagramObject" id="id-415a0ae3d2e04a4d86b62ecf10ec2930" targetConnections="id-81162e75b547412db7b9a139b155b58b" archimateElement="id-bb1fb58559074f13bfbc1fe47435bdc4">
<bounds x="1212" y="639" width="277" height="213"/>
<sourceConnection xsi:type="archimate:Connection" id="id-6bbf85b5e92544d79f35062b2bb95ea9" source="id-415a0ae3d2e04a4d86b62ecf10ec2930" target="id-f4cdc0db964745b4a3ea5ebd2ca7f6d9" archimateRelationship="id-2e5b49e9e33246649ea84d429bdfa480"/>
<sourceConnection xsi:type="archimate:Connection" id="id-2965e1cb553a44deb5baa2b83deaea96" source="id-415a0ae3d2e04a4d86b62ecf10ec2930" target="id-b3438064cdf24008ac054e116d952428" archimateRelationship="id-93c0f693b306430ca4215dbaf6ea3372"/>
<sourceConnection xsi:type="archimate:Connection" id="id-39e1135187e5486eb834df4659cec7b1" source="id-415a0ae3d2e04a4d86b62ecf10ec2930" target="id-b71db07fff6e4816badaf1c0d77a02b1" archimateRelationship="id-0ef87e84c87440eea6136594da7afc69"/>
<sourceConnection xsi:type="archimate:Connection" id="id-8d15310a72e24aa9acd78e7e82b1e43f" source="id-415a0ae3d2e04a4d86b62ecf10ec2930" target="id-71f3a02cc27541f28963ae31e4c3d132" archimateRelationship="id-8ef0d62e353e4afab2a19406e06dfe00"/>
<sourceConnection xsi:type="archimate:Connection" id="id-5b3adc0546e14c25b5a9e6959e41b802" source="id-415a0ae3d2e04a4d86b62ecf10ec2930" target="id-3a38d61cd4514b3c8cea01ccdd3cd466" archimateRelationship="id-c3ad3476343843b5bb8d3f02fdea85a5"/>
<sourceConnection xsi:type="archimate:Connection" id="id-5f16c4950c814fe295843d5d92da88cc" source="id-415a0ae3d2e04a4d86b62ecf10ec2930" target="id-9d0b1658737e4effa6b444185ad6807d" archimateRelationship="id-36ccd7ad5f5d43918dc0842a96b3f106"/>
<sourceConnection xsi:type="archimate:Connection" id="id-643776e6852c485199a13939393dfc66" source="id-415a0ae3d2e04a4d86b62ecf10ec2930" target="id-0b603e751f654fa2ad29477cb6cd7db0" archimateRelationship="id-66a584eb2f884a14b1e26ce19df93de2"/>
<child xsi:type="archimate:DiagramObject" id="id-f4cdc0db964745b4a3ea5ebd2ca7f6d9" targetConnections="id-6bbf85b5e92544d79f35062b2bb95ea9" archimateElement="id-4b19ec3cc38549d9b466ff22815d6d54">
<bounds x="12" y="24" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-b3438064cdf24008ac054e116d952428" targetConnections="id-2965e1cb553a44deb5baa2b83deaea96" archimateElement="id-d6eb40ee082b478e90bb8ef3f9bb5974">
<bounds x="144" y="24" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-b71db07fff6e4816badaf1c0d77a02b1" targetConnections="id-39e1135187e5486eb834df4659cec7b1" archimateElement="id-8a03b283043a4393940fa2acb0182cf3">
<bounds x="12" y="168" width="252" height="31"/>
<sourceConnection xsi:type="archimate:Connection" id="id-1be3b2831b134c1fb27e4cc115d62a3b" source="id-b71db07fff6e4816badaf1c0d77a02b1" target="id-71f3a02cc27541f28963ae31e4c3d132" archimateRelationship="id-dd49caae4b6f4a7ab8c1f38050e60b06"/>
<sourceConnection xsi:type="archimate:Connection" id="id-201af3a0b49646d19c2bd15eba7728fc" source="id-b71db07fff6e4816badaf1c0d77a02b1" target="id-3a38d61cd4514b3c8cea01ccdd3cd466" archimateRelationship="id-a6de4ff6ce5842518f201151f9e5a7ce"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-71f3a02cc27541f28963ae31e4c3d132" targetConnections="id-8d15310a72e24aa9acd78e7e82b1e43f id-1be3b2831b134c1fb27e4cc115d62a3b" archimateElement="id-79512960c27d4d29ab7f63ade54280d5">
<bounds x="144" y="96" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-3a38d61cd4514b3c8cea01ccdd3cd466" targetConnections="id-5b3adc0546e14c25b5a9e6959e41b802 id-201af3a0b49646d19c2bd15eba7728fc" archimateElement="id-f26eb17baade43ed829955bf63a4da88">
<bounds x="12" y="96" width="120" height="55"/>
</child>
</child>
<child xsi:type="archimate:DiagramObject" id="id-e15c0f0c66b244e0ae261a77ae685033" targetConnections="id-314b8dcc8a3a4a74b2a4904aa0d74ffe" archimateElement="id-1abd3c0586c34f70abb271611f1f19c5">
<bounds x="1212" y="324" width="277" height="181"/>
<sourceConnection xsi:type="archimate:Connection" id="id-9f3e737d623042a682403808681c760b" source="id-e15c0f0c66b244e0ae261a77ae685033" target="id-6e66c7b3eb0f42ffb87964737d8501cf" archimateRelationship="id-ecc8f59a630f4f2e94da7cbd419f608f"/>
<sourceConnection xsi:type="archimate:Connection" id="id-fba93bcd169348dfac7a864b913613c4" source="id-e15c0f0c66b244e0ae261a77ae685033" target="id-51c080dd4b734fd1b3de548276be02bc" archimateRelationship="id-61e395caf8b04d6fb6ba1817906a5596"/>
<sourceConnection xsi:type="archimate:Connection" id="id-7a178677375b4d38b9dfb48a5ede4e20" source="id-e15c0f0c66b244e0ae261a77ae685033" target="id-e66265145fd84c3d915e69161cd4da3a" archimateRelationship="id-0dfe008de58240a6bdf7053142c6c48e"/>
<sourceConnection xsi:type="archimate:Connection" id="id-79295d4798d940afa4928501ef10a901" source="id-e15c0f0c66b244e0ae261a77ae685033" target="id-337c187d101c4bb898518ab9c21b0498" archimateRelationship="id-23d18e596be146e1a99aa804e749f1be"/>
<sourceConnection xsi:type="archimate:Connection" id="id-06eab81527b4482f81538a1731ba18ec" source="id-e15c0f0c66b244e0ae261a77ae685033" target="id-5e0165a259694de48b1ec2e496c0bdc0" archimateRelationship="id-e3f1f44b73d24cf99a69f05d8bc12013"/>
<sourceConnection xsi:type="archimate:Connection" id="id-7e789e01a7ce49788b6c4e896631d561" source="id-e15c0f0c66b244e0ae261a77ae685033" target="id-6d3b6f90528549cfbb42083b300f553d" archimateRelationship="id-dd4ac783108547d7877d071c84823537"/>
<child xsi:type="archimate:DiagramObject" id="id-6e66c7b3eb0f42ffb87964737d8501cf" targetConnections="id-9f3e737d623042a682403808681c760b" archimateElement="id-564f6b23fa804531ae41a54e9930a6a5">
<bounds x="12" y="36" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-51c080dd4b734fd1b3de548276be02bc" targetConnections="id-fba93bcd169348dfac7a864b913613c4" archimateElement="id-674d926f24504b988aff8773c0675855">
<bounds x="12" y="108" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-e66265145fd84c3d915e69161cd4da3a" targetConnections="id-7a178677375b4d38b9dfb48a5ede4e20" archimateElement="id-3579f5992d0d4065b31781b77708d5f6">
<bounds x="144" y="108" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-57f4c2624d8e4e909e83e3587db6be72" source="id-e66265145fd84c3d915e69161cd4da3a" target="id-337c187d101c4bb898518ab9c21b0498" archimateRelationship="id-fe4bcb4cbd214359899522890f20d11d"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-337c187d101c4bb898518ab9c21b0498" targetConnections="id-79295d4798d940afa4928501ef10a901 id-57f4c2624d8e4e909e83e3587db6be72" archimateElement="id-b590caa7138f45df9ef6f34d33ef6bef">
<bounds x="144" y="36" width="120" height="55"/>
</child>
</child>
<child xsi:type="archimate:DiagramObject" id="id-d87bf467518c4b56b68f2a7264cde624" archimateElement="id-1f491da98a4848db942e08dbb5a16ed4">
<bounds x="1212" y="36" width="277" height="181"/>
<sourceConnection xsi:type="archimate:Connection" id="id-0c82f0ee0e474f9fb510b2cee0539a89" source="id-d87bf467518c4b56b68f2a7264cde624" target="id-5a8307e3e8044da2b15cee5db2f521e4" archimateRelationship="id-391bbae221104e8da813c3bed9aaedc2"/>
<sourceConnection xsi:type="archimate:Connection" id="id-c6ee279fe3514139a2ea7e364392fb0c" source="id-d87bf467518c4b56b68f2a7264cde624" target="id-67f999821b964507a7be3191577e3b77" archimateRelationship="id-a13f8e478b164ab69100e9449e149899"/>
<sourceConnection xsi:type="archimate:Connection" id="id-77a6f26a9ddc4449b20cf5fe2110a247" source="id-d87bf467518c4b56b68f2a7264cde624" target="id-0b9544da201d4a4fbda360117d982f8d" archimateRelationship="id-cc617621261f474c84966dc5408bd1dc"/>
<sourceConnection xsi:type="archimate:Connection" id="id-15f1cfebf2524c97bb06819db0a4b2f7" source="id-d87bf467518c4b56b68f2a7264cde624" target="id-94521e17ee8b4a14b0086f635ffcccb0" archimateRelationship="id-ebadf50c74e34db6bbf7673a2643f79a">
<bendpoint startX="199" startY="-77" endX="-36" endY="-86"/>
</sourceConnection>
<sourceConnection xsi:type="archimate:Connection" id="id-9ee7c3dfb7a9431a9f19a4d9ef596aa3" source="id-d87bf467518c4b56b68f2a7264cde624" target="id-ae525897968c42439212c696a82fed3d" archimateRelationship="id-54058e9077a6401492da8d01fb8cd29c"/>
<sourceConnection xsi:type="archimate:Connection" id="id-7344ed1948f34203959c83907fd01d7f" source="id-d87bf467518c4b56b68f2a7264cde624" target="id-4232aa486e9447039252abb0f8bbb6c8" archimateRelationship="id-225910beb13e4d9f82bae0224cf44155"/>
<child xsi:type="archimate:DiagramObject" id="id-5a8307e3e8044da2b15cee5db2f521e4" targetConnections="id-0c82f0ee0e474f9fb510b2cee0539a89" archimateElement="id-a4288d7466ac4007a65216e8e73a4de1">
<bounds x="144" y="36" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-5c99fb95822448daaca9a59515e08bf4" source="id-5a8307e3e8044da2b15cee5db2f521e4" target="id-67f999821b964507a7be3191577e3b77" archimateRelationship="id-5a2e2a21c2ca4cc5b08b2908aa252aac"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-67f999821b964507a7be3191577e3b77" targetConnections="id-c6ee279fe3514139a2ea7e364392fb0c id-5c99fb95822448daaca9a59515e08bf4" archimateElement="id-5a15faefa53b4101bbd7bf018484c199">
<bounds x="12" y="36" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-0b9544da201d4a4fbda360117d982f8d" targetConnections="id-77a6f26a9ddc4449b20cf5fe2110a247" archimateElement="id-7609c42361504e869c9f43efba43f187">
<bounds x="12" y="108" width="120" height="55"/>
</child>
</child>
<child xsi:type="archimate:DiagramObject" id="id-878791601ef64b859e3da10fe0b2c108" targetConnections="id-a8f72c40e58641e5a23425264bb4c7fa" archimateElement="id-a5541cfb87fe4dfe99c9ff966b74941f">
<bounds x="35" y="18" width="97" height="61"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-2fd156e0aebb4a1ea93144f7626f8245" targetConnections="id-dcd9dfc7534144d59e4348e4faed8dfd" archimateElement="id-468a5b622dfd477f9305d9223f67c74b">
<bounds x="36" y="174" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-662cf3c5c0294e61845110402e29957c" targetConnections="id-0a7e50b977214ba5b0f2e9395ba56e66 id-fddab64614454500aefc43acf3ab0d88" archimateElement="id-c7bf62ee42164c45a39e6841eabee8be">
<bounds x="205" y="24" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-b926452457db4657923b1c505450cc69" targetConnections="id-912c132803cd420a96dc1911fcb92e4c" archimateElement="id-8dcf0cc3f87a448c837a6bf04a691c3d">
<bounds x="349" y="24" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-fddab64614454500aefc43acf3ab0d88" source="id-b926452457db4657923b1c505450cc69" target="id-662cf3c5c0294e61845110402e29957c" archimateRelationship="id-6eee7e468f77425e8250d027e4ca8cb9"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-61289f2f1d6146b389a72213c9973dbf" targetConnections="id-729de68e73304ed8ad0887923e505fa6 id-2d31924cc0b74f2e83b1173f773be75d" archimateElement="id-2eff772056d1442fad6d10dced7f3552">
<bounds x="312" y="528" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-2142f72fb9094ddf986616f695e3e3f9" targetConnections="id-3d2ea18edd2c4213b25480fe3325dd79" archimateElement="id-ebdb5cf4505d4ad69fd26e0ef13f58a5">
<bounds x="468" y="528" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-2d31924cc0b74f2e83b1173f773be75d" source="id-2142f72fb9094ddf986616f695e3e3f9" target="id-61289f2f1d6146b389a72213c9973dbf" archimateRelationship="id-9a5dbf9beed4497b9e288b47044f6582"/>
<sourceConnection xsi:type="archimate:Connection" id="id-d5e7e09316c64cb5afaaaa935e0fcfcd" source="id-2142f72fb9094ddf986616f695e3e3f9" target="id-b8b8a7d890c74e98ac38e1c2fd9fe69e" archimateRelationship="id-2afba4572d0c44548816bccbb919f5f7">
<bendpoint startX="-24" startY="-315" endX="240" endY="25"/>
</sourceConnection>
</child>
<child xsi:type="archimate:DiagramObject" id="id-7da0deabee2d42d298d73c4886d70361" targetConnections="id-773a872407ce4a9aa4cf67856f480825" archimateElement="id-4267812d399841acb9aaf9c74e0410dd">
<bounds x="24" y="660" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-193f238ca9814ee78ade57dfe629c637" targetConnections="id-822e5df67b1f416586b859cac9f406e4" archimateElement="id-5a6bb503553444b1b77676e1c9df564e">
<bounds x="205" y="420" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-9cabff692d7e45c080c507657ea00fc3" source="id-193f238ca9814ee78ade57dfe629c637" target="id-5a697290479f40588ba60dbdb2b637bb" archimateRelationship="id-fd606cdfe5c143faa91cc01b270688b5"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-94521e17ee8b4a14b0086f635ffcccb0" targetConnections="id-01c754cfbcf74fe9aec1073a4053d352 id-15f1cfebf2524c97bb06819db0a4b2f7" archimateElement="id-4b4c32c33030460d95235c095a3166ad">
<bounds x="1512" y="162" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-5dcccc3f10e1482e9bdc2dccc5fd2a49" archimateElement="id-69e5ee3a774d47f5b0f2640a7647d076">
<bounds x="1608" y="-48" width="145" height="102"/>
<sourceConnection xsi:type="archimate:Connection" id="id-dd42ee57fc934b61a50e355f1be84c0a" source="id-5dcccc3f10e1482e9bdc2dccc5fd2a49" target="id-ada4f5bf381e4f9383b3bdde18b479fd" archimateRelationship="id-3e2177f1b0714837a1c6da6c57b166d8"/>
<sourceConnection xsi:type="archimate:Connection" id="id-01c754cfbcf74fe9aec1073a4053d352" source="id-5dcccc3f10e1482e9bdc2dccc5fd2a49" target="id-94521e17ee8b4a14b0086f635ffcccb0" archimateRelationship="id-63774bc7f49840999597caecaa25266c">
<bendpoint startX="-94" startY="-2" endX="24" endY="-109"/>
</sourceConnection>
<child xsi:type="archimate:DiagramObject" id="id-ada4f5bf381e4f9383b3bdde18b479fd" targetConnections="id-dd42ee57fc934b61a50e355f1be84c0a" archimateElement="id-6c318d889094460a980a2d5ad952354d">
<bounds x="12" y="36" width="120" height="55"/>
</child>
</child>
<child xsi:type="archimate:DiagramObject" id="id-b764063416234de7844454c79a708049" targetConnections="id-f15988ce11ba4f03a381d697186fdfbf" archimateElement="id-9cba4870745c45a0bc672137d3ed2dc7">
<bounds x="576" y="162" width="133" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-cb82276eb38445f3b08c211d7d6d9527" source="id-b764063416234de7844454c79a708049" target="id-084d48ce9ac04c8482208e229c1bbfdd" archimateRelationship="id-49cde330da454bdfa30aca4e4b892e27"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-5e0165a259694de48b1ec2e496c0bdc0" targetConnections="id-06eab81527b4482f81538a1731ba18ec id-a6c5f29c97df45c5b5d8ee3e99db438f" archimateElement="id-a6306b461ef045d2a5f259fbdfe7b90f">
<bounds x="1080" y="324" width="108" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-ae525897968c42439212c696a82fed3d" targetConnections="id-9ee7c3dfb7a9431a9f19a4d9ef596aa3" archimateElement="id-f59ebc395e3c485a8499f167c6b10ccb">
<bounds x="1368" y="-48" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-30b584600a5c46bfa2cc799ee03e21a2" archimateElement="id-4f858a79be97465e8e530bfd2dab19c1">
<bounds x="1632" y="387" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-afb66c33b3284bccb0a8def3d58cf4b7" source="id-30b584600a5c46bfa2cc799ee03e21a2" target="id-ec4a3844204d49898ceefacf596b592f" archimateRelationship="id-7a2eccfd3b7442c28596ada914c0ef62"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-4232aa486e9447039252abb0f8bbb6c8" targetConnections="id-7344ed1948f34203959c83907fd01d7f id-889dab03abc7466ea11c023d9ead3f3a" archimateElement="id-c92364c7c70c4c86accac83c50791bd7">
<bounds x="1080" y="36" width="108" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-5922aca7a2c64955b129641e0b4953fc" archimateElement="id-872d30abf8b646e0a31f39cf0b2d2d00">
<bounds x="768" y="63" width="264" height="168"/>
<sourceConnection xsi:type="archimate:Connection" id="id-30509f4db8e44a7d9a8b3ab9e3de73b3" source="id-5922aca7a2c64955b129641e0b4953fc" target="id-e5b75c115a9745fa989ae21800e2d8ed" archimateRelationship="id-26e92110a4464593882c883813d0bd46"/>
<sourceConnection xsi:type="archimate:Connection" id="id-7e53078a1cc64a389ff3d2214054acc3" source="id-5922aca7a2c64955b129641e0b4953fc" target="id-02f5a1eef79840b2ab067d74ee6a7eba" archimateRelationship="id-c7280a1e8f1a4753879e15a4b38d959d"/>
<sourceConnection xsi:type="archimate:Connection" id="id-9132608796d44a2ea0bdcd7279dd660c" source="id-5922aca7a2c64955b129641e0b4953fc" target="id-1e0d2ccd850443b3b6dd72a85f2adec6" archimateRelationship="id-89d626b514a14e07a20ddd42bec275df"/>
<sourceConnection xsi:type="archimate:Connection" id="id-889dab03abc7466ea11c023d9ead3f3a" source="id-5922aca7a2c64955b129641e0b4953fc" target="id-4232aa486e9447039252abb0f8bbb6c8" archimateRelationship="id-3bc993a44a2d4ec1a35a6d44327560d5">
<bendpoint startX="192" startY="-14" endX="-36" endY="70"/>
</sourceConnection>
<sourceConnection xsi:type="archimate:Connection" id="id-a6c5f29c97df45c5b5d8ee3e99db438f" source="id-5922aca7a2c64955b129641e0b4953fc" target="id-5e0165a259694de48b1ec2e496c0bdc0" archimateRelationship="id-eaa7264876ae43fa87b990c54e1ff114">
<bendpoint startX="192" startY="22" endX="-36" endY="-98"/>
</sourceConnection>
<sourceConnection xsi:type="archimate:Connection" id="id-f15988ce11ba4f03a381d697186fdfbf" source="id-5922aca7a2c64955b129641e0b4953fc" target="id-b764063416234de7844454c79a708049" archimateRelationship="id-a5f851bebcf2478e8b67d97af8ad094a"/>
<sourceConnection xsi:type="archimate:Connection" id="id-1280aa9dcec04cacb422956be14d5509" source="id-5922aca7a2c64955b129641e0b4953fc" target="id-63968da333ed4aa78f1d26b067725a9c" archimateRelationship="id-05f8c813a3c847848530621737f530ce"/>
<sourceConnection xsi:type="archimate:Connection" id="id-82949eb20bfd409f8ac3ec4a0cd9d681" source="id-5922aca7a2c64955b129641e0b4953fc" target="id-0b603e751f654fa2ad29477cb6cd7db0" archimateRelationship="id-c6115ef5d00c468cb5700e0516f0ca9e">
<bendpoint startX="60" startY="526" endX="-173" endY="-2"/>
</sourceConnection>
<child xsi:type="archimate:DiagramObject" id="id-e5b75c115a9745fa989ae21800e2d8ed" targetConnections="id-30509f4db8e44a7d9a8b3ab9e3de73b3" archimateElement="id-1342c8a57172419ba4d234363f362ef1">
<bounds x="120" y="96" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-f0b0fd6347b049a1af7021115ae812c1" source="id-e5b75c115a9745fa989ae21800e2d8ed" target="id-02f5a1eef79840b2ab067d74ee6a7eba" archimateRelationship="id-6cb389043c97472ca806c0fca1fcf12f"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-02f5a1eef79840b2ab067d74ee6a7eba" targetConnections="id-7e53078a1cc64a389ff3d2214054acc3 id-f0b0fd6347b049a1af7021115ae812c1" archimateElement="id-a3c093da39c144089da4d9796b8b45f9">
<bounds x="120" y="36" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-1e0d2ccd850443b3b6dd72a85f2adec6" targetConnections="id-9132608796d44a2ea0bdcd7279dd660c" archimateElement="id-7baa0f753db44040ba63ac8c8510f65a">
<bounds x="12" y="36" width="96" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-63968da333ed4aa78f1d26b067725a9c" targetConnections="id-1280aa9dcec04cacb422956be14d5509" archimateElement="id-999f2204349246ac955e2d8020517709">
<bounds x="12" y="96" width="96" height="55"/>
</child>
</child>
<child xsi:type="archimate:DiagramObject" id="id-6d3b6f90528549cfbb42083b300f553d" targetConnections="id-7e789e01a7ce49788b6c4e896631d561" archimateElement="id-fceb1e05f13e4964aea4d4ce6c1c5e98">
<bounds x="1368" y="240" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-084d48ce9ac04c8482208e229c1bbfdd" targetConnections="id-43c1ec79879f4a0f90cc87d239b04435 id-cb82276eb38445f3b08c211d7d6d9527" archimateElement="id-603e481c44c048e59b52fbea6305a8d0">
<bounds x="420" y="162" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-9d0b1658737e4effa6b444185ad6807d" targetConnections="id-5f16c4950c814fe295843d5d92da88cc" archimateElement="id-c171112be1ca4edaa3399668da908db1">
<bounds x="1368" y="552" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-787f65add1544d97a96529edfd3ea7e5" archimateElement="id-0f8a7352be854b5db2ead7c00c858fc9">
<bounds x="1632" y="738" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-97d80e49b7084dfdbd9971dfcc4e066d" source="id-787f65add1544d97a96529edfd3ea7e5" target="id-fdc08c0cab334260a349b884e896bcc1" archimateRelationship="id-00d44bd1cc25451bb1bef2f404a2d214"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-ec4a3844204d49898ceefacf596b592f" targetConnections="id-afb66c33b3284bccb0a8def3d58cf4b7" archimateElement="id-a14104aedcaa49ef88f55f3a47cb3f77">
<bounds x="1512" y="387" width="97" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-314b8dcc8a3a4a74b2a4904aa0d74ffe" source="id-ec4a3844204d49898ceefacf596b592f" target="id-e15c0f0c66b244e0ae261a77ae685033" archimateRelationship="id-75756580194e4f26b30fa556d557342d"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-fdc08c0cab334260a349b884e896bcc1" targetConnections="id-97d80e49b7084dfdbd9971dfcc4e066d" archimateElement="id-c386bf9e3bdd41a1abeb4797d8d74b78">
<bounds x="1512" y="735" width="97" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-81162e75b547412db7b9a139b155b58b" source="id-fdc08c0cab334260a349b884e896bcc1" target="id-415a0ae3d2e04a4d86b62ecf10ec2930" archimateRelationship="id-91dcf028d0c7415a812ade5a3f07810b"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-0b603e751f654fa2ad29477cb6cd7db0" targetConnections="id-643776e6852c485199a13939393dfc66 id-82949eb20bfd409f8ac3ec4a0cd9d681" archimateElement="id-48f2e5648b0542a9b45509fb63e117aa">
<bounds x="1074" y="648" width="120" height="55"/>
</child>
</element>
</folder>
</archimate:model>

View File

@ -0,0 +1,121 @@
<?xml version="1.0" encoding="UTF-8"?>
<archimate:model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:archimate="http://www.archimatetool.com/archimate" name="E-Toll" id="id-9fd786fbe53743b2a56ea0257d5960f7" version="5.0.0">
<folder name="Strategy" id="id-2fef36cddbea4d3aa2b3ecc8827377a9" type="strategy"/>
<folder name="Business" id="id-379bef527554480aa5bbb7f877502a62" type="business">
<element xsi:type="archimate:BusinessActor" name="Kierowca" id="id-4db17356989d4d27a5e944b7f1a96c29"/>
<element xsi:type="archimate:BusinessActor" name="Operator systemu" id="id-65b4b157994742a29d68204514927318"/>
<element xsi:type="archimate:BusinessRole" name="Płatnik opłat drogowych" id="id-265fa1e62e3241c0a19ad46862aaa6d3"/>
<element xsi:type="archimate:BusinessRole" name="Zarządzający taryfami" id="id-3cf858188dec4998ae799c7ef026da4f"/>
<element xsi:type="archimate:BusinessProcess" name="Rejestracja użytkownika" id="id-89662fb5367a4102937a391f2224d981"/>
<element xsi:type="archimate:BusinessProcess" name="Doładowanie konta" id="id-d30644224e65438ab39df5be928d1c2a"/>
<element xsi:type="archimate:BusinessProcess" name="Naliczanie i pobieranie opłat za przejazd" id="id-399a2af1161e44c2b7826add9aa5a65d"/>
<element xsi:type="archimate:BusinessInterface" name="Aplikacja" id="id-905a34ef41134107b0e483b9302a81c9"/>
<element xsi:type="archimate:BusinessEvent" name="Rozpoczęcie przejazdu w aplikacji" id="id-2bb39760ac2a4a378f68f8a9a2b63867"/>
<element xsi:type="archimate:BusinessService" name="Opłacenie przejazdu" id="id-5775cce22962412ab140f28bec4626a1"/>
<element xsi:type="archimate:BusinessProcess" name="Dodanie metody płatności post-paid" id="id-0ff465d6fbdd4f9bbb4ce6a03654af00"/>
<element xsi:type="archimate:BusinessInterface" name="Strona WWW" id="id-bc826bc82aaf463486acbb6b327de6d5"/>
<element xsi:type="archimate:BusinessService" name="Zarządzanie metodami płatności" id="id-53603c556fc241eba74d3b0228c772b1"/>
<element xsi:type="archimate:BusinessProcess" name="Ustanowienie taryf" id="id-7072b1a6c613452388344b97f39c91b3"/>
<element xsi:type="archimate:BusinessRole" name="Raportujący" id="id-249ff7de09d1404ea48436a94775218b"/>
<element xsi:type="archimate:BusinessService" name="Generowanie raportów" id="id-9a5021f9ca8e4bc7afefddd3a8f049ee"/>
<element xsi:type="archimate:BusinessProcess" name="Wygenerowanie raportu" id="id-3ec0e8da80574854ac61d469c4a19dca"/>
</folder>
<folder name="Application" id="id-80b7b914a8a34ff2bb188452bc8bb168" type="application"/>
<folder name="Technology &amp; Physical" id="id-7d9dbc60cb904e12a3e41bdcd7f605cd" type="technology"/>
<folder name="Motivation" id="id-421e5645c00346b6af5dcdf90e7f4725" type="motivation"/>
<folder name="Implementation &amp; Migration" id="id-d7cfd7099fde494b942b3b296b65d855" type="implementation_migration"/>
<folder name="Other" id="id-7c088e487aad4576ba08c42513fe832d" type="other"/>
<folder name="Relations" id="id-a7541a3a41dd4d8e8f2d0133870c0c7b" type="relations">
<element xsi:type="archimate:AssociationRelationship" id="id-7c91862e3f394a57a27efbb7a5968aa4" source="id-4db17356989d4d27a5e944b7f1a96c29" target="id-265fa1e62e3241c0a19ad46862aaa6d3"/>
<element xsi:type="archimate:AssociationRelationship" id="id-262df42525b844b384a5a31b29b12b09" source="id-65b4b157994742a29d68204514927318" target="id-3cf858188dec4998ae799c7ef026da4f"/>
<element xsi:type="archimate:TriggeringRelationship" id="id-172d8ea073a0482cb17e845d4fb104b8" source="id-2bb39760ac2a4a378f68f8a9a2b63867" target="id-399a2af1161e44c2b7826add9aa5a65d"/>
<element xsi:type="archimate:AssociationRelationship" id="id-6267e9659ef345389cd09becbde3260f" source="id-4db17356989d4d27a5e944b7f1a96c29" target="id-399a2af1161e44c2b7826add9aa5a65d"/>
<element xsi:type="archimate:AssociationRelationship" id="id-41d790e4f7ac4385b41d8995b515157f" source="id-265fa1e62e3241c0a19ad46862aaa6d3" target="id-399a2af1161e44c2b7826add9aa5a65d"/>
<element xsi:type="archimate:AssociationRelationship" id="id-f5d9ccc72c5c43d3af0237a73bab039f" source="id-265fa1e62e3241c0a19ad46862aaa6d3" target="id-d30644224e65438ab39df5be928d1c2a"/>
<element xsi:type="archimate:AssociationRelationship" id="id-3a85395d156f403d849819e3e307e5b9" source="id-265fa1e62e3241c0a19ad46862aaa6d3" target="id-905a34ef41134107b0e483b9302a81c9"/>
<element xsi:type="archimate:AssociationRelationship" id="id-a74339462de949e4acbde1f8025df845" source="id-5775cce22962412ab140f28bec4626a1" target="id-905a34ef41134107b0e483b9302a81c9"/>
<element xsi:type="archimate:RealizationRelationship" id="id-06f1dd2d02654b45b08b8fd69dd1fed0" source="id-399a2af1161e44c2b7826add9aa5a65d" target="id-5775cce22962412ab140f28bec4626a1"/>
<element xsi:type="archimate:AssociationRelationship" id="id-27ec102444cf4ce8a00739e6acef721c" source="id-265fa1e62e3241c0a19ad46862aaa6d3" target="id-0ff465d6fbdd4f9bbb4ce6a03654af00"/>
<element xsi:type="archimate:AssociationRelationship" id="id-b7a2866a5f5d4af4b32d55aee67f3e6b" source="id-265fa1e62e3241c0a19ad46862aaa6d3" target="id-bc826bc82aaf463486acbb6b327de6d5"/>
<element xsi:type="archimate:AssociationRelationship" id="id-8ad1222e41bb4cfca5a596ec67cc63d4" source="id-53603c556fc241eba74d3b0228c772b1" target="id-bc826bc82aaf463486acbb6b327de6d5"/>
<element xsi:type="archimate:RealizationRelationship" id="id-a06827b92615444b82a6f82f88d0dfc2" source="id-0ff465d6fbdd4f9bbb4ce6a03654af00" target="id-53603c556fc241eba74d3b0228c772b1"/>
<element xsi:type="archimate:RealizationRelationship" id="id-0be3df2c58af4e88b868fe8631995dd2" source="id-d30644224e65438ab39df5be928d1c2a" target="id-53603c556fc241eba74d3b0228c772b1"/>
<element xsi:type="archimate:AssignmentRelationship" id="id-b8c816849f944074bba6f4f1ab1bd341" source="id-3cf858188dec4998ae799c7ef026da4f" target="id-7072b1a6c613452388344b97f39c91b3"/>
<element xsi:type="archimate:AssociationRelationship" id="id-9809c3dbef93492d830b61fb8510abd6" source="id-3cf858188dec4998ae799c7ef026da4f" target="id-7072b1a6c613452388344b97f39c91b3"/>
<element xsi:type="archimate:AssociationRelationship" id="id-670981bae6984ee3a5b02752da6fb771" source="id-3cf858188dec4998ae799c7ef026da4f" target="id-bc826bc82aaf463486acbb6b327de6d5"/>
<element xsi:type="archimate:AssociationRelationship" id="id-d98b491de5ed49c7b01ddfbb8575add5" source="id-249ff7de09d1404ea48436a94775218b" target="id-65b4b157994742a29d68204514927318"/>
<element xsi:type="archimate:AssociationRelationship" id="id-5253fdd375d54449bf435a57830aa8b7" source="id-9a5021f9ca8e4bc7afefddd3a8f049ee" target="id-249ff7de09d1404ea48436a94775218b"/>
<element xsi:type="archimate:AssociationRelationship" id="id-6a2e98f62c1643fa828559e93e23be07" source="id-3ec0e8da80574854ac61d469c4a19dca" target="id-9a5021f9ca8e4bc7afefddd3a8f049ee"/>
<element xsi:type="archimate:RealizationRelationship" id="id-52c3c32602374946815cf33221174455" source="id-3ec0e8da80574854ac61d469c4a19dca" target="id-9a5021f9ca8e4bc7afefddd3a8f049ee"/>
</folder>
<folder name="Views" id="id-b75d7269c50e46fc8c412f8c914e3cc9" type="diagrams">
<element xsi:type="archimate:ArchimateDiagramModel" name="Default View" id="id-879c95e4be7a431b9fe11d87df30c2fe">
<child xsi:type="archimate:DiagramObject" id="id-95c275c3c69849e28f6cf87850271558" archimateElement="id-4db17356989d4d27a5e944b7f1a96c29">
<bounds x="312" y="120" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-0c3a8fdfdad0416ca6a27f5991114b8b" source="id-95c275c3c69849e28f6cf87850271558" target="id-b28ef0ea6ff744e48aded856f247d64b" archimateRelationship="id-7c91862e3f394a57a27efbb7a5968aa4"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-b28ef0ea6ff744e48aded856f247d64b" targetConnections="id-0c3a8fdfdad0416ca6a27f5991114b8b" archimateElement="id-265fa1e62e3241c0a19ad46862aaa6d3">
<bounds x="312" y="216" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-f9af380eff7441d98b9648b390fc871a" source="id-b28ef0ea6ff744e48aded856f247d64b" target="id-f1014bf52e354b4c96ae87df4d76b65d" archimateRelationship="id-41d790e4f7ac4385b41d8995b515157f"/>
<sourceConnection xsi:type="archimate:Connection" id="id-2c23bc86179c4183ac853d403d1fa095" source="id-b28ef0ea6ff744e48aded856f247d64b" target="id-3a314f77d06e49158b892fd64f9a0ffc" archimateRelationship="id-f5d9ccc72c5c43d3af0237a73bab039f"/>
<sourceConnection xsi:type="archimate:Connection" id="id-d1f8c0d1e0fc4f5c8a1dcf1dffa7f6c6" source="id-b28ef0ea6ff744e48aded856f247d64b" target="id-dcc0fa6452c0473db56391329a77d253" archimateRelationship="id-3a85395d156f403d849819e3e307e5b9"/>
<sourceConnection xsi:type="archimate:Connection" id="id-eaf5f65c822649639d84992f6ee9b97b" source="id-b28ef0ea6ff744e48aded856f247d64b" target="id-a2f838d7b81047f68825cebbc7c49b19" archimateRelationship="id-27ec102444cf4ce8a00739e6acef721c"/>
<sourceConnection xsi:type="archimate:Connection" id="id-97a2d7df89e143adbb9d00c24246146b" source="id-b28ef0ea6ff744e48aded856f247d64b" target="id-f3d2298494604e74a2e489fa33309747" archimateRelationship="id-b7a2866a5f5d4af4b32d55aee67f3e6b"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-2f746657ffff4672af2d14da139ce536" targetConnections="id-2dcc62def6484fcda9fac0968de55100" archimateElement="id-65b4b157994742a29d68204514927318">
<bounds x="864" y="120" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-a6cdb611eb9b45e2b4abcfe728df8fea" source="id-2f746657ffff4672af2d14da139ce536" target="id-4924456175244bfa949a01f3e27e49cf" archimateRelationship="id-262df42525b844b384a5a31b29b12b09"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-4924456175244bfa949a01f3e27e49cf" targetConnections="id-a6cdb611eb9b45e2b4abcfe728df8fea" archimateElement="id-3cf858188dec4998ae799c7ef026da4f">
<bounds x="768" y="216" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-dcc69b24e4df46d69824b0f7dad78658" source="id-4924456175244bfa949a01f3e27e49cf" target="id-a07d63af34e841d9b47870f5c6fbb934" archimateRelationship="id-9809c3dbef93492d830b61fb8510abd6"/>
<sourceConnection xsi:type="archimate:Connection" id="id-ce322dd806154d43af7aa4342a8ad08d" source="id-4924456175244bfa949a01f3e27e49cf" target="id-f3d2298494604e74a2e489fa33309747" archimateRelationship="id-670981bae6984ee3a5b02752da6fb771"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-29587801fc4644bcb62c57342b2074b3" archimateElement="id-2bb39760ac2a4a378f68f8a9a2b63867">
<bounds x="24" y="389" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-43a2007969ef4299b54b098bc0fc5339" source="id-29587801fc4644bcb62c57342b2074b3" target="id-f1014bf52e354b4c96ae87df4d76b65d" archimateRelationship="id-172d8ea073a0482cb17e845d4fb104b8"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-f1014bf52e354b4c96ae87df4d76b65d" targetConnections="id-43a2007969ef4299b54b098bc0fc5339 id-f9af380eff7441d98b9648b390fc871a" archimateElement="id-399a2af1161e44c2b7826add9aa5a65d">
<bounds x="180" y="389" width="120" height="80"/>
<sourceConnection xsi:type="archimate:Connection" id="id-d1431488975f4f588928c0fea61a1462" source="id-f1014bf52e354b4c96ae87df4d76b65d" target="id-0652ee1c1d2c4a4096ce163a89845a53" archimateRelationship="id-06f1dd2d02654b45b08b8fd69dd1fed0"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-3a314f77d06e49158b892fd64f9a0ffc" targetConnections="id-2c23bc86179c4183ac853d403d1fa095" archimateElement="id-d30644224e65438ab39df5be928d1c2a">
<bounds x="336" y="389" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-41ab5c4bc8654f65b63cb2c21a8135a2" source="id-3a314f77d06e49158b892fd64f9a0ffc" target="id-52656ebcc231450aa2c9f738a8ceaa9e" archimateRelationship="id-0be3df2c58af4e88b868fe8631995dd2"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-0652ee1c1d2c4a4096ce163a89845a53" targetConnections="id-d1431488975f4f588928c0fea61a1462" archimateElement="id-5775cce22962412ab140f28bec4626a1">
<bounds x="84" y="300" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-7519d949cadc422eb1088e7e98ff7fc7" source="id-0652ee1c1d2c4a4096ce163a89845a53" target="id-dcc0fa6452c0473db56391329a77d253" archimateRelationship="id-a74339462de949e4acbde1f8025df845"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-dcc0fa6452c0473db56391329a77d253" targetConnections="id-d1f8c0d1e0fc4f5c8a1dcf1dffa7f6c6 id-7519d949cadc422eb1088e7e98ff7fc7" archimateElement="id-905a34ef41134107b0e483b9302a81c9">
<bounds x="84" y="216" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-a2f838d7b81047f68825cebbc7c49b19" targetConnections="id-eaf5f65c822649639d84992f6ee9b97b" archimateElement="id-0ff465d6fbdd4f9bbb4ce6a03654af00">
<bounds x="504" y="389" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-e5cba6ae669f43e5b55c208b0a1fe312" source="id-a2f838d7b81047f68825cebbc7c49b19" target="id-52656ebcc231450aa2c9f738a8ceaa9e" archimateRelationship="id-a06827b92615444b82a6f82f88d0dfc2"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-f3d2298494604e74a2e489fa33309747" targetConnections="id-97a2d7df89e143adbb9d00c24246146b id-429b68e9824f46a787465c42ef05ab28 id-ce322dd806154d43af7aa4342a8ad08d" archimateElement="id-bc826bc82aaf463486acbb6b327de6d5">
<bounds x="528" y="216" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-52656ebcc231450aa2c9f738a8ceaa9e" targetConnections="id-e5cba6ae669f43e5b55c208b0a1fe312 id-41ab5c4bc8654f65b63cb2c21a8135a2" archimateElement="id-53603c556fc241eba74d3b0228c772b1">
<bounds x="504" y="288" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-429b68e9824f46a787465c42ef05ab28" source="id-52656ebcc231450aa2c9f738a8ceaa9e" target="id-f3d2298494604e74a2e489fa33309747" archimateRelationship="id-8ad1222e41bb4cfca5a596ec67cc63d4"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-a07d63af34e841d9b47870f5c6fbb934" targetConnections="id-dcc69b24e4df46d69824b0f7dad78658" archimateElement="id-7072b1a6c613452388344b97f39c91b3">
<bounds x="768" y="401" width="120" height="55"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-1d3a4339570a4f1ea758dec8f33dea8a" targetConnections="id-ebc552063a2d49f28a77fc80e99e5155" archimateElement="id-249ff7de09d1404ea48436a94775218b">
<bounds x="960" y="216" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-2dcc62def6484fcda9fac0968de55100" source="id-1d3a4339570a4f1ea758dec8f33dea8a" target="id-2f746657ffff4672af2d14da139ce536" archimateRelationship="id-d98b491de5ed49c7b01ddfbb8575add5"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-4bf13439fc0b4a6982293deec67fea3f" targetConnections="id-24c498bb5a89496991c10457bae9deb4" archimateElement="id-9a5021f9ca8e4bc7afefddd3a8f049ee">
<bounds x="960" y="300" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-ebc552063a2d49f28a77fc80e99e5155" source="id-4bf13439fc0b4a6982293deec67fea3f" target="id-1d3a4339570a4f1ea758dec8f33dea8a" archimateRelationship="id-5253fdd375d54449bf435a57830aa8b7"/>
</child>
<child xsi:type="archimate:DiagramObject" id="id-9abb26aab80e4c73917018fc7f348cbd" archimateElement="id-3ec0e8da80574854ac61d469c4a19dca">
<bounds x="960" y="408" width="120" height="55"/>
<sourceConnection xsi:type="archimate:Connection" id="id-24c498bb5a89496991c10457bae9deb4" source="id-9abb26aab80e4c73917018fc7f348cbd" target="id-4bf13439fc0b4a6982293deec67fea3f" archimateRelationship="id-52c3c32602374946815cf33221174455"/>
</child>
</element>
</folder>
</archimate:model>

View File

@ -0,0 +1,270 @@
[https://github.com/Artur-Romaniuk/ais](https://github.com/Artur-Romaniuk/ais)
[https://www.overleaf.com/project/67e843e5c78b52b01a88211a](https://www.overleaf.com/project/67e843e5c78b52b01a88211a)
System e-Toll do zbierania danych na temat ruchu pojazdów po polskich drogach i naliczania należności za przejazdy.
Rezultatem projektu powinien być dokument PDF, zawierający następujące elementy:
1. Wymagania funkcjonalne.
* pogrupowana lista wymagań
* zidentyfikować jeden kluczowy proces biznesowy i szczegółowo ten proces zdefiniować. Definicja procesu to po prostu:
* cel procesu
* stan początkowy
* stan końcowy
* kroki procesu, z uwzględnieniem sytuacji wyjątkowych.
2. Wymagania niefunkcjonalne.
* geograficzna skala działania
* liczba obsługiwanych klientów
* liczba obsługiwanych zdarzeń biznesowych w określonym czasie (na godzinę/dziennie/miesięcznie etc.)
* wymagania wydajnościowe
* wymagania niezawodnościowe
* wymagania bezpieczeństwa
* ....
3. Projekt systemu w postaci modelu C4 (https://c4model.com/)
* wystarczą 3 pierwsze poziomy : context, containers, components, nie wymagam poziomu code
* diagram dynamiczny(dynamic diagram) realizujący opisany w wymaganiach proces biznesowy
* diagram wdrożenia (deploymen diagram)
4. Dyskusja zastosowanych wzorców i/lub taktyk architektonicznych \- w celu wyboru odpowiednich rozwiązań należy się odwołać do wymagań funkcjonalnych i niefunkcjonalnych.
5. Decyzje architektoniczne w postaci modelu MAD 2.0
# Wymagania funkcjonalne
\# Wymagania funkcjonalne dla Systemu e-Toll
\#\# Kluczowy proces biznesowy: Naliczanie i pobieranie opłat za przejazd
\#\#\# 1\. Cel procesu
1) Wykrywanie pojazdów na płatnych odcinkach dróg
2) Naliczanie należności zgodnie z taryfami
3) Pobieranie opłat od użytkowników
\#\#\# 2\. Stan początkowy
Pojazd niezarejestrowany w systemie jako znajdujący się na płatnym odcinku drogi, z kontem użytkownika posiadającym określony stan środków (prepaid) lub limitem kredytowym (postpaid).
\#\#\# 3\. Stan końcowy
Prawidłowo naliczona i pobrana opłata za przejazd, zaksięgowana w systemie finansowym, z wygenerowanym potwierdzeniem dla użytkownika oraz aktualizacją stanu konta.
\#\#\# 4\. Kroki procesu
1\. Identyfikacja pojazdu wjeżdżającego na płatny odcinek (poprzez urządzenie OBU, aplikację mobilną lub kamery ANPR) \[Dla redundancji, im więcej systemów tym większa szansa na identyfikację)
2\. Zebranie danych o pojeździe (kategoria, klasa emisji spalin, masa)
3\. Rozpoczęcie śledzenia przejazdu i rejestracja czasu wjazdu
4\. Monitorowanie trasy przejazdu przez punkty kontrolne
5\. Identyfikacja zjazdu z płatnego odcinka
6\. Obliczenie należności na podstawie przebytej trasy i charakterystyki pojazdu
7\. Weryfikacja dostępności środków na koncie użytkownika
8\. Pobranie opłaty z konta użytkownika
9\. Wygenerowanie potwierdzenia transakcji
10\. Aktualizacja salda konta użytkownika
\*\*Obsługa sytuacji wyjątkowych:\*\*
\- Jeśli identyfikacja pojazdu nie jest możliwa: uruchomienie procedury rejestracji incydentu z dokumentacją wizualną (zdjęcia niezidentyfikowanego pojazdu)
\- W przypadku niewystarczających środków na koncie:
1) Zablokowanie konta do momentu zapłacenia
2) W przypadku braku zapłaty w określonym czasie, uruchomienie procedury windykacyjnej
\- Przy awarii urządzenia OBU: automatyczne przełączenie na identyfikację przez system kamer ANPR
\- W razie przerwy w komunikacji: lokalne buforowanie danych i synchronizacja po przywróceniu łączności
\- Jeśli zidentyfikowano omijanie bramek:
1. Poinformowanie użytkownika
2. uruchomienie procedury kontrolnej
3. naliczenie kary
\#\# Wymagania funkcjonalne
1\. \*\*System rejestracji użytkowników\*\* \- System musi umożliwiać rejestrację nowych użytkowników z weryfikacją tożsamości, zbieraniem danych o pojazdach (w tym masa, klasa emisji, kategoria) oraz wyborem metody płatności (prepaid lub postpaid).
2\. \*\*Moduł geolokalizacji pojazdów\*\* \- System musi określać pozycję pojazdów z dokładnością do 10 metrów, wykorzystując dane GPS z urządzeń OBU lub aplikacji mobilnej, aktualizowane nie rzadziej niż co 30 sekund podczas przejazdu.
3\. \*\*System rozpoznawania tablic rejestracyjnych (ANPR)\*\* \- System musi identyfikować pojazdy poprzez kamery ANPR z dokładnością co najmniej 98% w różnych warunkach pogodowych i oświetleniowych, jako dopełnienie jeśli wszystkie systemy działają poprawnie lub alternatywa dla urządzeń OBU w razie awarii..
4\. \*\*Elastyczny system taryfowy\*\* \- System musi obsługiwać zróżnicowane taryfy opłat w zależności od: typu pojazdu, masy całkowitej, klasy emisji spalin, pory dnia, dnia tygodnia oraz stopnia zatłoczenia drogi.
5\. \*\*Moduł rozliczeń i płatności\*\* \- System musi obsługiwać różne metody płatności (karty płatnicze, przelewy, płatności mobilne, blik) z możliwością automatycznego doładowania konta prepaid oraz wystawiania faktur elektronicznych zgodnych z przepisami prawa.
6\. \*\*System powiadomień dla użytkowników\*\* \- System musi wysyłać automatyczne powiadomienia do użytkowników (aplikacja, mail \+ sms) o: niskim stanie konta, zbliżającym się terminie płatności, dokonanych transakcjach oraz zmianach w taryfach i regulaminie.
7\. \*\*Moduł raportowania i analityki\*\* \- System musi generować raporty dotyczące natężenia ruchu, generowanych przychodów, incydentów oraz efektywności egzekwowania opłat, z możliwością eksportu danych w formatach CSV i PDF.
8\. \*\*System wykrywania naruszeń\*\* \- System musi identyfikować próby obejścia opłat (np. manipulacja urządzeniem OBU, podawanie fałszywych danych o pojeździe) i automatycznie uruchamiać procedury weryfikacyjne.
9\. \*\*Portal samoobsługowy dla użytkowników\*\* \- System musi udostępniać portal internetowy oraz aplikację mobilną umożliwiającą użytkownikom zarządzanie kontem, przeglądanie historii przejazdów i opłat, generowanie raportów oraz aktualizację danych pojazdu.
10\. System musi umożliwiać ręczną korektę naliczonej opłaty przez operatora w przypadku zgłoszenia błędu przez użytkownika. Zakładając, że system źle naliczył opłatę np. Użytkownik został obciążony za trasę, której nie przejechał lub przypisano niewłaściwą kategorię pojazdu. Użytkownik zgłasza błąd do obsługi systemu. W takim przypadku operator musi mieć możliwość ręcznej korekty naliczonej opłaty np. Anulowanie opłaty, zmniejszenie jej lub ponowne przeliczenie, jeżeli zgłoszenie użytkownika okaże się zasadne. Zasadność zgłoszenia musi być weryfikowalna poprzez fizyczne zdjęcia pojazdu
# Wymagania niefunkcjonalne
1\. \*\*Wydajność systemu\*\* \- System musi obsługiwać jednoczesne przetwarzanie danych z co [najmniej 200,000 pojazdów w godzinach szczytu](https://forsal.pl/transport/drogi/artykuly/8295957,najbardziej-obciazone-drogi-w-polsce-s8-s2-a4-s86-mapa.html), z czasem odpowiedzi dla transakcji poniżej 1s oraz przetwarzaniem danych geolokalizacyjnych w czasie rzeczywistym.
2\. \*\*Dostępność systemu\*\* \- System musi zapewniać dostępność na poziomie 99,9% (maksymalny czas niedostępności: \~9 godzin rocznie), z planowanymi oknami serwisowymi w godzinach nocnych (1:00-4:00) i z odpowiednim wyprzedzeniem komunikowanym użytkownikom.
3\. \*\*Bezpieczeństwo danych\*\* \- System musi zapewniać:
1) Szyfrowanie danych w spoczynku i podczas transmisji (minimum AES-256)
2) Zgodność z normą ISO/IEC 27001
3) Wielopoziomową autoryzację użytkowników (hasło \+ kod sms)
4) Pełną zgodność z RODO, włączając automatyczne mechanizmy anonimizacji danych historycznych starszych niż 5 lat.
4\. \*\*Skalowalność\*\* \- System musi posiadać architekturę umożliwiającą skalowanie w celu [obsługi wzrostu liczby użytkowników o 30% rocznie bez pogorszenia wydajności](https://kpmg.com/pl/pl/home/media/press-releases/2024/02/liczba-rejestracji-nowych-samochodow-osobowych-wzrosla-o-13-2-procent-w-2023-roku.html#:~:text=sztuk.-,Liczba%20rejestracji%20nowych%20samochod%C3%B3w%20osobowych%20w%20Polsce%20w%202023%20roku,szt.&text=W%202023%20roku%20w%20Polsce,wi%C4%99cej%20ni%C5%BC%20w%202022%20roku.), z automatycznym zwiększeniem zasobów w odpowiedzi na zwiększone obciążenie w ciągu dnia.
5\. \*\*Niezawodność i odporność na awarie\*\* \- System musi zawierać rozwiązania wysokiej dostępności z nadmiarowością komponentów krytycznych, automatycznym przełączaniem awaryjnym poniżej 10 sekund oraz mechanizmem ciągłej replikacji danych między geograficznie odległymi centrami danych, zapewniając RPO (Recovery Point Objective) poniżej 5 minut i RTO (Recovery Time Objective) poniżej 30 minut.
6\. \*\*Interoperacyjność\*\* \- System musi obsługiwać standardy interoperacyjności z europejskimi systemami elektronicznego poboru opłat (zgodnie z dyrektywą EETS), zapewniając pełną wymianę danych poprzez standardowe API (REST/SOAP) z minimum 99,5% dostępnością interfejsów integracyjnych.
7\. \*\*Użyteczność i dostępność interfejsów\*\* \- Interfejsy użytkownika (portal i aplikacja mobilna) muszą spełniać standardy WCAG 2.1 na poziomie AA, obsługiwać minimum 5 języków (polski, angielski, niemiecki, ukraiński, rosyjski), zapewniać responsywność na urządzeniach mobilnych oraz wykazywać wskaźnik satysfakcji użytkowników (CSAT) na poziomie minimum 85%.
8\. \*\*Audytowanie i śledzenie aktywności\*\* \- System musi rejestrować wszystkie operacje w niezmienialne logi z zachowaniem zgodności z wymogami prawnymi dotyczącymi dowodów elektronicznych, umożliwiać niemodyfikowalny ślad audytu dla wszystkich transakcji finansowych oraz zapewniać przechowywanie logów przez minimum 5 lat z możliwością szybkiego wyszukiwania.
9\. \*\*Efektywność zarządzania danymi\*\* \- System musi umożliwiać archiwizację i zarządzanie cyklem życia danych zgodnie z polityką retencji, zapewniać kompresję danych historycznych na poziomie minimum 80% oraz optymalizację zapytań do bazy danych z czasem odpowiedzi poniżej 10 sekund dla 90% zapytań raportowych.
10\. \*\*Utrzymywalność i modyfikowalność\*\* \- System musi być zaprojektowany z wykorzystaniem architektury modułowej i mikroserwisowej, umożliwiającej niezależną aktualizację poszczególnych komponentów bez przerywania działania całości systemu, z automatycznymi testami regresji pokrywającymi minimum 90% kodu oraz pełną dokumentacją techniczną aktualizowaną przy każdej **dużej** (takiej która sprawia że system nie jest kompatybilny z poprzednią wersją) zmianie.
11\. \*\*System integracji z zewnętrznymi bazami danych\*\* \- System musi komunikować się z zewnętrznymi bazami danych (np. CEPiK, rejestry pojazdów innych krajów) w celu weryfikacji danych pojazdów oraz wymiany informacji o użytkownikach z zagranicznymi systemami poboru opłat.
12\. Zgodność prawna i regulacyjna \- System musi spełniać wszystkie obowiązujące przepisy prawa krajowego oraz unijnego dotyczące elektronicznego poboru opłat. Ustawę o drogach publicznych, dyrektywę [EETS](https://eur-lex.europa.eu/legal-content/PL/TXT/?uri=CELEX%3A32019L0520), przepisy podatkowe oraz przepisy dotyczące ochrony konkurencji i konsumentów.
13\. Czas wdrożenia poprawek krytycznych \- w przypadku wykrycia krytycznego błędu (np. Uniemożliwiającego naliczenie opłaty lub przetwarzanie przejazdów) poprawka musi zostać wdrożona w ciągu maksymalnie 24 godzin od momentu potwierdzenia błędu.
14\. Transparentność naliczanych opłat \- system musi umożliwiać użytkownikom końcowym wgląd w szczegółowe informacje dotyczące każdej naliczonej opłaty. Czas przejazdu, odcinki dróg, taryfy oraz podstawy naliczenia.
15\. Elastyczność taryf \- system musi obsługiwać dynamiczne taryfy drogowe (np. Zmienne w zależności od natężenia ruchu czy poziomu emisji pojazdu) z możliwoścą wdrażania nowych taryf bez konieczności przerywania działania systemu.
16\. Personalizacja powiadomień dla użytkowników \- system musi umożliwić użytkownikom wybór otrzymywania powiadomień np. (sms, e-mail, powiadomienie push w aplikacji) z opcją definiowania progów powiadomień (np. Przekroczenie salda, opłata powyżej X zł etc.)
Decyzje architektoniczne:
1\. Podział na warstwy
![][image1]
* Warstwa prezentacji: trzy różne aplikacje klienckie — aplikacja webowa, mobilna i aplikacja na urządzenia embedded.
* Warstwa logiki biznesowej: centralna aplikacja serwerowa (serverApp), w której znajdują się komponenty takie jak UserService, PaymentService, PositionService itd.
* Warstwa dostępu do danych: komponenty UserRepository, PaymentRepository.
* Warstwa danych: baza danych Oracle z mechanizmem failover.
Decyzja: Rozdzielenie odpowiedzialności na warstwy zwiększa modularność i ułatwia zarządzanie kodem oraz jego testowanie.
Alternatywa: Architektura mikroserwisowa
Zalety alternatywy:
* Lepsza skalowalność poszczególnych komponentów
* Możliwość niezależnego wdrażania i rozwijania usług
* Lepsza odporność na awarie (awaria jednego serwisu ≠ awaria całego systemu)
Wady alternatywy:
* Większa złożoność wdrożeniowa (DevOps, CI/CD, monitoring)
* Konieczność rozwiązywania problemów związanych z komunikacją między serwisami
* Trudniejsze debugowanie i testowanie end-to-end
2\. Modularność i komponenty (Component-based Design)
![][image2]
* Serwerowa aplikacja została podzielona na komponenty pełniące konkretne role (SigninController, TollController, MainComponent, itd.).
* Każdy komponent ma jasno zdefiniowaną odpowiedzialność, zgodnie z zasadą Single Responsibility Principle.
Decyzja: Wprowadzenie komponentów umożliwia łatwe rozszerzanie i testowanie poszczególnych fragmentów systemu.
Alternatywa: Monolityczna aplikacja serwerowa
Zalety alternatywy:
* Prostsza implementacja i wdrożenie
* Mniejsza liczba zależności i konfiguracji
* Mniej złożone środowisko developerskie
Wady alternatywy:
* Trudniejsza skalowalność i refaktoryzacja
* Każda zmiana wymaga redeploy całej aplikacji
* Trudniejsze testowanie izolowanych funkcji
3\. Wielokanałowy dostęp (Multi-Platform Clients)
![][image3]
* Użytkownicy mogą korzystać z systemu za pomocą aplikacji mobilnej, webowej lub urządzeń embedded.
Decyzja: Umożliwienie różnym grupom użytkowników (np. administratorzy vs kierowcy) dostępu do funkcji systemu w najbardziej dogodny sposób.
Alternatywa: Tylko aplikacja mobilna (np. PWA lub natywna)
Zalety alternatywy:
* Uproszczony interfejs użytkownika
* Jedna platforma do utrzymania
* Lepsze dopasowanie do kontekstu użytkownika (kierowcy)
Wady alternatywy:
* Brak wygodnego interfejsu dla administratorów lub analityków
* Mniejsza elastyczność użytkowania
* Trudności z dostępem do systemu z urządzeń stacjonarnych
4\. Rozdzielenie ról i uprawnień
![][image4]
Administrator ma dostęp tylko przez aplikację webową.
Kierowca może korzystać z trzech różnych interfejsów — w zależności od potrzeb.
Decyzja: Jasny podział ról zwiększa bezpieczeństwo i ergonomię systemu.
Alternatywa: Jeden zunifikowany interfejs z uprawnieniami na poziomie konta
Zalety alternatywy:
* Mniejsze zróżnicowanie UI
* Mniej kodu i testów związanych z różnymi platformami
Wady alternatywy:
* Mniejsza przejrzystość
* Możliwość przypadkowego ujawnienia funkcji nieprzeznaczonych dla danego typu użytkownika
5\. Integracja z zewnętrznymi systemami
![][image5]
System płatności (systemPlatnosci) oraz system archiwizacji danych (archiwum) są zewnętrznymi systemami zintegrowanymi z systemem e-Toll.
Decyzja: Wydzielenie tych odpowiedzialności do zewnętrznych systemów pozwala na lepsze skalowanie oraz wykorzystanie istniejących rozwiązań.
Alternatywa: Wszystko w ramach jednej aplikacji (np. własny moduł płatności i archiwizacji)
Zalety alternatywy:
* Większa kontrola nad logiką
* Mniejsze zależności zewnętrzne
Wady alternatywy:
* Większe ryzyko błędów w obszarach regulowanych prawnie (np. płatności)
* Większe koszty utrzymania i certyfikacji
* Brak skalowalności i elastyczności
6\. Wysoka dostępność i odporność na awarie
![][image6]
Baza danych jest replikowana (primarysecondary).
Oddzielne deployment node'y dla różnych typów urządzeń oraz dla aplikacji serwerowej i bazy danych.
Failover serwera bazy danych — Oracle \- Secondary.
Decyzja: Architektura uwzględnia mechanizmy zapewniające ciągłość działania systemu nawet w przypadku awarii.
Alternatywa: Deployment w chmurze
Zalety alternatywy:
* Duża skalowalność
* Bezpieczeństwo i redundancja
Wady alternatywy:
* Wyższe koszty
* Przetwarzanie danych przez inne podmioty
7\. Wybór technologii wdrożeniowych
![][image7]
System hostowany na serwerach z Ubuntu 24.04 LTS.
Serwer aplikacji oparty o Apache Tomcat 8.x.
Baza danych Oracle 12c.
Decyzja: Użycie sprawdzonych technologii o długoterminowym wsparciu i wysokiej wydajności.
Alternatywa: Cloud-native stack np. AWS/GCP
Zalety alternatywy:
* Automatyczne skalowanie, monitoring, CI/CD
* Niższe koszty utrzymania fizycznej infrastruktury
* Łatwiejsze zarządzanie kontenerami i usługami
Wady alternatywy:
* Uzależnienie od chmury (vendor lock-in)
* Potrzeba opanowania nowych technologii
* Potencjalne wyższe koszty początkowe

View File

@ -0,0 +1,886 @@
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36" version="26.2.12">
<diagram name="Strona-1" id="A-EYyAQWF-48cSR2ptDY">
<mxGraphModel dx="866" dy="1311" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-132" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="2280" y="840" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-100" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="2091.25" y="1030" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-101" value="Ciągłe wsparcie wymienionych systemów" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="2231.25" y="970" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-102" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="2231.25" y="970" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-97" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.polygon;polyCoords=[[0.25,0],[0.75,0],[1,0.25],[1,0.75],[0.75,1],[0.25,1],[0,0.75],[0,0.25]];polyline=0;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="880" y="870" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-32" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.polygon;polyCoords=[[0.25,0],[0.75,0],[1,0.25],[1,0.75],[0.75,1],[0.25,1],[0,0.75],[0,0.25]];polyline=0;" parent="1" vertex="1">
<mxGeometry x="90" y="430" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-33" value="&lt;span id=&quot;docs-internal-guid-58827c40-7fff-5f37-f57f-2e0d7567ded7&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; background-color: transparent; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-variant-position: normal; font-variant-emoji: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;font style=&quot;font-size: 11px;&quot;&gt;Większa złożoność wdrożeniowa&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="90" y="430" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-65" value="Pełna kontrola nad środowiskiem" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="1300" y="1030" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-66" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="1300" y="1030" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-67" value="Niższe koszta" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="1440" y="970" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-68" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="1440" y="970" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-87" value="Replikacja i podział na pody zapewnia niezawodność" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="1482.5" y="830" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-88" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="1482.5" y="830" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-37" value="Zapewniona skalowalność" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="480" y="1030" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-38" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="480" y="1030" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-1" value="Wybór architektury" style="shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;" parent="1" vertex="1">
<mxGeometry x="320" y="240" width="160" height="80" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-2" value="&lt;span&gt;Podział na warstwy&lt;/span&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;strokeWidth=3;" parent="1" vertex="1">
<mxGeometry x="460" y="350" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-3" value="System łatwy do utrzymania i rozwijania&amp;nbsp;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="480" y="110" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-4" value="Szybkie wdrożenie" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="364" y="110" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-6" value="Wieloplatformowy dostęp" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="530" y="210" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-7" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-1" target="8hqsfwtfT8Qknly6Bg2j-4" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="390" y="380" as="sourcePoint" />
<mxPoint x="440" y="330" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-8" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-1" target="8hqsfwtfT8Qknly6Bg2j-3" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="390" y="380" as="sourcePoint" />
<mxPoint x="440" y="330" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-9" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-1" target="8hqsfwtfT8Qknly6Bg2j-6" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="390" y="380" as="sourcePoint" />
<mxPoint x="440" y="330" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-10" value="Architektura Mikroswerwisowa" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#999999;" parent="1" vertex="1">
<mxGeometry x="210" y="350" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-12" value="Szybkie&amp;nbsp;&lt;div&gt;dostarczenie&amp;nbsp;&lt;div&gt;Minimum Viable Product&lt;/div&gt;&lt;/div&gt;" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="460" y="490" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-13" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="460" y="490" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-14" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-13" target="8hqsfwtfT8Qknly6Bg2j-2" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="390" y="400" as="sourcePoint" />
<mxPoint x="440" y="350" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-17" value="Separacja warstwy prezentacji" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="600" y="430" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-18" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="600" y="430" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-20" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-17" target="8hqsfwtfT8Qknly6Bg2j-2" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="390" y="400" as="sourcePoint" />
<mxPoint x="440" y="350" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-24" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.polygon;polyCoords=[[0.25,0],[0.75,0],[1,0.25],[1,0.75],[0.75,1],[0.25,1],[0,0.75],[0,0.25]];polyline=0;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="640" y="320" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-25" value="Słaba&amp;nbsp;&lt;div&gt;skalowalność&amp;nbsp;&lt;/div&gt;&lt;div&gt;poszczególnych&lt;/div&gt;&lt;div&gt;modułów&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="635" y="335" width="110" height="70" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-27" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-2" target="8hqsfwtfT8Qknly6Bg2j-24" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="390" y="400" as="sourcePoint" />
<mxPoint x="440" y="350" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-28" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-2" target="8hqsfwtfT8Qknly6Bg2j-1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="390" y="400" as="sourcePoint" />
<mxPoint x="440" y="350" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-30" value="Możliwość niezależnego wdrażania i rozwijania usług" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="244" y="460" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-31" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-30" target="8hqsfwtfT8Qknly6Bg2j-10" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="390" y="400" as="sourcePoint" />
<mxPoint x="440" y="350" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-34" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-33" target="8hqsfwtfT8Qknly6Bg2j-10" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="390" y="400" as="sourcePoint" />
<mxPoint x="440" y="350" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-35" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-10" target="8hqsfwtfT8Qknly6Bg2j-1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="390" y="400" as="sourcePoint" />
<mxPoint x="440" y="350" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-37" value="Architekt Systemu" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="190" y="170" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-38" value="" style="endArrow=none;startArrow=none;html=1;rounded=0;startFill=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-37" target="8hqsfwtfT8Qknly6Bg2j-1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="390" y="400" as="sourcePoint" />
<mxPoint x="440" y="350" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-39" value="Organizacja aplikacji serwerowej" style="shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;" parent="1" vertex="1">
<mxGeometry x="1160" y="240" width="160" height="80" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-40" value="&lt;span&gt;Component Based Design&lt;/span&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;strokeWidth=3;" parent="1" vertex="1">
<mxGeometry x="1300" y="350" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-41" value="łatwe testowanie poszczególnych fragmentów" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="1320" y="110" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-42" value="rozbudowy i utrzymania przez różne zespoły" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="1204" y="110" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-44" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-39" target="8hqsfwtfT8Qknly6Bg2j-42" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1230" y="380" as="sourcePoint" />
<mxPoint x="1280" y="330" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-45" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-39" target="8hqsfwtfT8Qknly6Bg2j-41" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1230" y="380" as="sourcePoint" />
<mxPoint x="1280" y="330" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-47" value="Monolityczna aplikacja serwerowa" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="1050" y="350" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-48" value="możliwość testowania poszczególnych elementów logiki" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="1300" y="490" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-49" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="1300" y="490" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-50" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-49" target="8hqsfwtfT8Qknly6Bg2j-40" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1230" y="400" as="sourcePoint" />
<mxPoint x="1280" y="350" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-51" value="możliwość dodania nowych komponentów" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="1440" y="430" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-52" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="1440" y="430" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-53" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-51" target="8hqsfwtfT8Qknly6Bg2j-40" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1230" y="400" as="sourcePoint" />
<mxPoint x="1280" y="350" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-54" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.polygon;polyCoords=[[0.25,0],[0.75,0],[1,0.25],[1,0.75],[0.75,1],[0.25,1],[0,0.75],[0,0.25]];polyline=0;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="1480" y="320" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-55" value="Zwiększona&amp;nbsp;&lt;div&gt;złożoność&lt;/div&gt;&lt;div&gt;&amp;nbsp;początkowa&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="1485" y="340" width="90" height="60" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-56" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-40" target="8hqsfwtfT8Qknly6Bg2j-54" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1230" y="400" as="sourcePoint" />
<mxPoint x="1280" y="350" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-57" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-40" target="8hqsfwtfT8Qknly6Bg2j-39" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1230" y="400" as="sourcePoint" />
<mxPoint x="1280" y="350" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-58" value="Prostsza implementacja i wdrożenie" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="940" y="460" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-59" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-58" target="8hqsfwtfT8Qknly6Bg2j-47" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1230" y="400" as="sourcePoint" />
<mxPoint x="1280" y="350" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-60" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.polygon;polyCoords=[[0.25,0],[0.75,0],[1,0.25],[1,0.75],[0.75,1],[0.25,1],[0,0.75],[0,0.25]];polyline=0;" parent="1" vertex="1">
<mxGeometry x="880" y="320" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-61" value="Trudniejsze testowanie izolowanych funkcji" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="880" y="320" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-62" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-61" target="8hqsfwtfT8Qknly6Bg2j-47" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1230" y="400" as="sourcePoint" />
<mxPoint x="1280" y="350" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-63" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-47" target="8hqsfwtfT8Qknly6Bg2j-39" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1230" y="400" as="sourcePoint" />
<mxPoint x="1280" y="350" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-64" value="Lead Backend Dev." style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="1030" y="170" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-65" value="" style="endArrow=none;startArrow=none;html=1;rounded=0;startFill=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-64" target="8hqsfwtfT8Qknly6Bg2j-39" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1230" y="400" as="sourcePoint" />
<mxPoint x="1280" y="350" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-66" value="&lt;span id=&quot;docs-internal-guid-5d67c15b-7fff-fc11-2986-5cffc23a9147&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; color: rgb(0, 0, 0); background-color: transparent; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-variant-position: normal; font-variant-emoji: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;font&gt;Mniejsza liczba zależności i konfiguracji&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="1080" y="460" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-67" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-47" target="8hqsfwtfT8Qknly6Bg2j-66" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1050" y="480" as="sourcePoint" />
<mxPoint x="1100" y="430" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-68" value="Dostęp do systemu" style="shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;" parent="1" vertex="1">
<mxGeometry x="1950" y="250" width="160" height="80" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-69" value="&lt;span id=&quot;docs-internal-guid-236ea2a5-7fff-6485-3329-f8a95cef6eb5&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; background-color: transparent; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-variant-position: normal; font-variant-emoji: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;font&gt;Multi-Platform Clients&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;strokeWidth=3;" parent="1" vertex="1">
<mxGeometry x="2090" y="360" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-70" value="Dostęp administratorów do kontroli systemu" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="2110" y="120" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-71" value="Dostęp z różnych urządzeń" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="1994" y="120" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-72" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-68" target="8hqsfwtfT8Qknly6Bg2j-71" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2020" y="390" as="sourcePoint" />
<mxPoint x="2070" y="340" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-73" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-68" target="8hqsfwtfT8Qknly6Bg2j-70" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2020" y="390" as="sourcePoint" />
<mxPoint x="2070" y="340" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-74" value="Aplikacja Mobilna" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="1920" y="415" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-75" value="Dostęp poprzez różne urządzienia (mobile, web etc.)" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="2090" y="500" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-76" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="2090" y="500" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-77" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-76" target="8hqsfwtfT8Qknly6Bg2j-69" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2020" y="410" as="sourcePoint" />
<mxPoint x="2070" y="360" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-78" value="Rozróżnienie UI ze względu na grupy użytkowników (admin, kierowca)" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="2230" y="440" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-79" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="2230" y="440" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-80" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-78" target="8hqsfwtfT8Qknly6Bg2j-69" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2020" y="410" as="sourcePoint" />
<mxPoint x="2070" y="360" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-81" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.polygon;polyCoords=[[0.25,0],[0.75,0],[1,0.25],[1,0.75],[0.75,1],[0.25,1],[0,0.75],[0,0.25]];polyline=0;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="2270" y="330" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-82" value="Zwiększona&amp;nbsp;&lt;div&gt;złożoność&lt;/div&gt;&lt;div&gt;&amp;nbsp;utrzymania&amp;nbsp;&lt;/div&gt;&lt;div&gt;(wiele UI)&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="2275" y="345" width="90" height="70" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-83" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-69" target="8hqsfwtfT8Qknly6Bg2j-81" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2020" y="410" as="sourcePoint" />
<mxPoint x="2070" y="360" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-84" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-69" target="8hqsfwtfT8Qknly6Bg2j-68" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2020" y="410" as="sourcePoint" />
<mxPoint x="2070" y="360" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-87" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.polygon;polyCoords=[[0.25,0],[0.75,0],[1,0.25],[1,0.75],[0.75,1],[0.25,1],[0,0.75],[0,0.25]];polyline=0;" parent="1" vertex="1">
<mxGeometry x="1810" y="505" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-88" value="Brak wygodnego interfejsu dla administratorów lub analityków" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="1810" y="505" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-89" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-88" target="8hqsfwtfT8Qknly6Bg2j-74" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2100" y="465" as="sourcePoint" />
<mxPoint x="2150" y="415" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-90" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-74" target="8hqsfwtfT8Qknly6Bg2j-68" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2020" y="410" as="sourcePoint" />
<mxPoint x="2070" y="360" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-91" value="Product Manager" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="1820" y="180" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-92" value="" style="endArrow=none;startArrow=none;html=1;rounded=0;startFill=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-91" target="8hqsfwtfT8Qknly6Bg2j-68" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2020" y="410" as="sourcePoint" />
<mxPoint x="2070" y="360" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-93" value="&lt;span id=&quot;docs-internal-guid-5d67c15b-7fff-fc11-2986-5cffc23a9147&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; color: rgb(0, 0, 0); background-color: transparent; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-variant-position: normal; font-variant-emoji: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;font&gt;Jedna platforma do utrzymania&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="1950" y="525" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-94" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-74" target="8hqsfwtfT8Qknly6Bg2j-93" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1920" y="545" as="sourcePoint" />
<mxPoint x="1970" y="495" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-95" value="Aplikacja Webowa" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="1790" y="315" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-96" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.polygon;polyCoords=[[0.25,0],[0.75,0],[1,0.25],[1,0.75],[0.75,1],[0.25,1],[0,0.75],[0,0.25]];polyline=0;" parent="1" vertex="1">
<mxGeometry x="1630" y="285" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-97" value="Brak dostępu z urządzeń mobilnych" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="1630" y="285" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-98" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-97" target="8hqsfwtfT8Qknly6Bg2j-95" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1970" y="365" as="sourcePoint" />
<mxPoint x="2020" y="315" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-99" value="&lt;span id=&quot;docs-internal-guid-5d67c15b-7fff-fc11-2986-5cffc23a9147&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; color: rgb(0, 0, 0); background-color: transparent; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-variant-position: normal; font-variant-emoji: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;font&gt;Jedna platforma do utrzymania&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="1690" y="425" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-100" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-95" target="8hqsfwtfT8Qknly6Bg2j-99" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1790" y="445" as="sourcePoint" />
<mxPoint x="1840" y="395" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-101" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-95" target="8hqsfwtfT8Qknly6Bg2j-68" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1740" y="400" as="sourcePoint" />
<mxPoint x="1790" y="350" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-102" value="" style="endArrow=none;html=1;rounded=0;exitX=0.021;exitY=0.934;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;exitPerimeter=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-95" target="8hqsfwtfT8Qknly6Bg2j-95" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1760" y="370" as="sourcePoint" />
<mxPoint x="1810" y="320" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-103" value="" style="endArrow=none;html=1;rounded=0;exitX=0;exitY=1;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1810" y="375" as="sourcePoint" />
<mxPoint x="1840" y="315" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-104" value="" style="endArrow=none;html=1;rounded=0;exitX=0;exitY=1;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1830" y="375" as="sourcePoint" />
<mxPoint x="1860" y="315" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-105" value="" style="endArrow=none;html=1;rounded=0;exitX=0;exitY=1;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1850" y="375" as="sourcePoint" />
<mxPoint x="1880" y="315" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-106" value="" style="endArrow=none;html=1;rounded=0;exitX=0;exitY=1;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1870" y="375" as="sourcePoint" />
<mxPoint x="1900" y="315" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-107" value="" style="endArrow=none;html=1;rounded=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;exitX=0.81;exitY=1.006;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-95" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1890" y="370" as="sourcePoint" />
<mxPoint x="1910" y="330" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-108" value="" style="endArrow=none;html=1;rounded=0;entryX=0.108;entryY=-0.002;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="8hqsfwtfT8Qknly6Bg2j-95" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1790" y="340" as="sourcePoint" />
<mxPoint x="1800" y="320" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-109" value="Uprawnienia dla użytkowników&amp;nbsp;" style="shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;" parent="1" vertex="1">
<mxGeometry x="2850" y="267.5" width="160" height="80" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-110" value="&lt;span id=&quot;docs-internal-guid-236ea2a5-7fff-6485-3329-f8a95cef6eb5&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; background-color: transparent; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-variant-position: normal; font-variant-emoji: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;font&gt;Rozdzielenie uprawnień poprzez interfejs&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;strokeWidth=3;" parent="1" vertex="1">
<mxGeometry x="2990" y="377.5" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-111" value="Niska złożoność zarządzania użytkownikami" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="3010" y="137.5" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-112" value="Zwiększenie bezpieczeństwa" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="2894" y="137.5" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-113" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-109" target="8hqsfwtfT8Qknly6Bg2j-112" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2920" y="407.5" as="sourcePoint" />
<mxPoint x="2970" y="357.5" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-114" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-109" target="8hqsfwtfT8Qknly6Bg2j-111" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2920" y="407.5" as="sourcePoint" />
<mxPoint x="2970" y="357.5" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-115" value="&lt;span id=&quot;docs-internal-guid-6da60d2f-7fff-cffc-81ee-36c272259f97&quot;&gt;&lt;p style=&quot;line-height:1.38;margin-top:0pt;margin-bottom:0pt;&quot; dir=&quot;ltr&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; color: rgb(0, 0, 0); background-color: transparent; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-variant-position: normal; font-variant-emoji: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;font&gt;zunifikowany interfejs&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#999999;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="2740" y="377.5" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-116" value="Ułatwienie w kontroli dostęp do wrażliwych funkcji i danych" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="2990" y="517.5" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-117" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="2990" y="517.5" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-118" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-117" target="8hqsfwtfT8Qknly6Bg2j-110" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2920" y="427.5" as="sourcePoint" />
<mxPoint x="2970" y="377.5" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-121" value="" style="endArrow=none;html=1;rounded=0;exitX=0.4;exitY=0.4;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-150" target="8hqsfwtfT8Qknly6Bg2j-110" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="3130" y="470.3571428571429" as="sourcePoint" />
<mxPoint x="2970" y="377.5" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-122" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.polygon;polyCoords=[[0.25,0],[0.75,0],[1,0.25],[1,0.75],[0.75,1],[0.25,1],[0,0.75],[0,0.25]];polyline=0;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="3170" y="347.5" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-123" value="&lt;span data-end=&quot;3290&quot; data-start=&quot;3248&quot;&gt;Potencjalne&lt;/span&gt;&lt;div&gt;&lt;span data-end=&quot;3290&quot; data-start=&quot;3248&quot;&gt;błędy w&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span data-end=&quot;3290&quot; data-start=&quot;3248&quot;&gt;zarządzaniu&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;&amp;nbsp;rolami&lt;/span&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="3160" y="367.5" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-124" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-110" target="8hqsfwtfT8Qknly6Bg2j-122" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2920" y="427.5" as="sourcePoint" />
<mxPoint x="2970" y="377.5" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-125" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-110" target="8hqsfwtfT8Qknly6Bg2j-109" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2920" y="427.5" as="sourcePoint" />
<mxPoint x="2970" y="377.5" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-126" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.polygon;polyCoords=[[0.25,0],[0.75,0],[1,0.25],[1,0.75],[0.75,1],[0.25,1],[0,0.75],[0,0.25]];polyline=0;" parent="1" vertex="1">
<mxGeometry x="2630" y="467.5" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-127" value="Ryzyko przypadkowego ujawnienia danych administratora użytkownikom" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="2630" y="467.5" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-128" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-127" target="8hqsfwtfT8Qknly6Bg2j-115" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2920" y="427.5" as="sourcePoint" />
<mxPoint x="2970" y="377.5" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-129" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-115" target="8hqsfwtfT8Qknly6Bg2j-109" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2920" y="427.5" as="sourcePoint" />
<mxPoint x="2970" y="377.5" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-130" value="Architekt bezpieczeństwa" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="2720" y="197.5" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-131" value="" style="endArrow=none;startArrow=none;html=1;rounded=0;startFill=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-130" target="8hqsfwtfT8Qknly6Bg2j-109" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2920" y="427.5" as="sourcePoint" />
<mxPoint x="2970" y="377.5" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-132" value="Prostsze zarządzanie aplikacją" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#999999;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="2810" y="487.5" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-133" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="8hqsfwtfT8Qknly6Bg2j-115" target="8hqsfwtfT8Qknly6Bg2j-132" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2740" y="507.5" as="sourcePoint" />
<mxPoint x="2790" y="457.5" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-150" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.polygon;polyCoords=[[0.25,0],[0.75,0],[1,0.25],[1,0.75],[0.75,1],[0.25,1],[0,0.75],[0,0.25]];polyline=0;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="3130" y="470" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="8hqsfwtfT8Qknly6Bg2j-149" value="Zwiększona&amp;nbsp;&lt;div&gt;złożoność&lt;/div&gt;&lt;div&gt;&amp;nbsp;systemu&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="3135" y="490" width="90" height="60" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-28" value="Realizacja obsługi&lt;div&gt;&amp;nbsp;płatności i archiwizacji danych&lt;/div&gt;" style="shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;" parent="1" vertex="1">
<mxGeometry x="302.5" y="790" width="160" height="80" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-29" value="&lt;span&gt;Systemy zewnętrzne&lt;/span&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;strokeWidth=3;" parent="1" vertex="1">
<mxGeometry x="442.5" y="900" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-30" value="Zgodność z wymogami prawnymi" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="462.5" y="660" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-31" value="Możliwość skalowania" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="346.5" y="660" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-32" value="Wysoka wydajność" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="512.5" y="760" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-33" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-28" target="vxyVkt_PTZCki5Mz5ZuO-31" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="372.5" y="930" as="sourcePoint" />
<mxPoint x="422.5" y="880" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-34" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-28" target="vxyVkt_PTZCki5Mz5ZuO-30" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="372.5" y="930" as="sourcePoint" />
<mxPoint x="422.5" y="880" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-35" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-28" target="vxyVkt_PTZCki5Mz5ZuO-32" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="372.5" y="930" as="sourcePoint" />
<mxPoint x="422.5" y="880" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-36" value="Własne rozwiązanie" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#999999;" parent="1" vertex="1">
<mxGeometry x="192.5" y="900" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-39" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-38" target="vxyVkt_PTZCki5Mz5ZuO-29" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="372.5" y="950" as="sourcePoint" />
<mxPoint x="422.5" y="900" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-45" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-29" target="vxyVkt_PTZCki5Mz5ZuO-57" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="372.5" y="950" as="sourcePoint" />
<mxPoint x="622.5" y="922.9411764705883" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-46" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-29" target="vxyVkt_PTZCki5Mz5ZuO-28" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="372.5" y="950" as="sourcePoint" />
<mxPoint x="422.5" y="900" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-48" value="" style="endArrow=none;html=1;rounded=0;exitX=0.367;exitY=0.008;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-61" target="vxyVkt_PTZCki5Mz5ZuO-36" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="271.92857142857133" y="1010" as="sourcePoint" />
<mxPoint x="422.5" y="900" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-51" value="" style="endArrow=none;html=1;rounded=0;exitX=0.85;exitY=0.108;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-59" target="vxyVkt_PTZCki5Mz5ZuO-36" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="171.03999999999996" y="1021.04" as="sourcePoint" />
<mxPoint x="422.5" y="900" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-52" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-36" target="vxyVkt_PTZCki5Mz5ZuO-28" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="372.5" y="950" as="sourcePoint" />
<mxPoint x="422.5" y="900" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-53" value="Architekt Systemu" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="172.5" y="720" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-54" value="" style="endArrow=none;startArrow=none;html=1;rounded=0;startFill=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-53" target="vxyVkt_PTZCki5Mz5ZuO-28" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="372.5" y="950" as="sourcePoint" />
<mxPoint x="422.5" y="900" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-56" value="Certyfikowane rozwiązania (zgodne z wymogami prawnymi)" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="625" y="890" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-57" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="625" y="890" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-59" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.polygon;polyCoords=[[0.25,0],[0.75,0],[1,0.25],[1,0.75],[0.75,1],[0.25,1],[0,0.75],[0,0.25]];polyline=0;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="70" y="1010" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-58" value="Trudność&lt;div&gt;&amp;nbsp;w aktualizacji&lt;div&gt;&amp;nbsp;wymogów prawnych&lt;/div&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="65" y="1040" width="130" height="60" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-61" value="Mniejsze zależności zewnętrzne, lepsza kontrola nad logiką" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="244" y="1010" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-62" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.polygon;polyCoords=[[0.25,0],[0.75,0],[1,0.25],[1,0.75],[0.75,1],[0.25,1],[0,0.75],[0,0.25]];polyline=0;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="20" y="880" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-63" value="" style="endArrow=none;html=1;rounded=0;exitX=1.008;exitY=0.442;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-62" target="vxyVkt_PTZCki5Mz5ZuO-36" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="182" y="1033" as="sourcePoint" />
<mxPoint x="237" y="970" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-64" value="Trudności&lt;div&gt;w samodzielnym&lt;/div&gt;&lt;div&gt;skalowaniu&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="25" y="910" width="110" height="60" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-69" value="Zapewnienie dostępności&lt;div&gt;i odporności na awarie&lt;/div&gt;" style="shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;" parent="1" vertex="1">
<mxGeometry x="1160" y="780" width="160" height="80" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-70" value="&lt;span&gt;On-premise&lt;/span&gt;&lt;div&gt;&lt;span&gt;z replikacją,&amp;nbsp; na różnych podach&lt;/span&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;strokeWidth=3;" parent="1" vertex="1">
<mxGeometry x="1300" y="890" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-71" value="Zadowalające koszty utrzymania" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="1320" y="650" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-72" value="Niezawodność&lt;div&gt;systemu&lt;/div&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="1204" y="650" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-73" value="Kontrola i wgląd do systemu" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="1370" y="750" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-74" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-69" target="vxyVkt_PTZCki5Mz5ZuO-72" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1230" y="920" as="sourcePoint" />
<mxPoint x="1280" y="870" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-75" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-69" target="vxyVkt_PTZCki5Mz5ZuO-71" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1230" y="920" as="sourcePoint" />
<mxPoint x="1280" y="870" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-76" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-69" target="vxyVkt_PTZCki5Mz5ZuO-73" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1230" y="920" as="sourcePoint" />
<mxPoint x="1280" y="870" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-77" value="Cloud deployment" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#999999;" parent="1" vertex="1">
<mxGeometry x="1050" y="890" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-78" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-66" target="vxyVkt_PTZCki5Mz5ZuO-70" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1230" y="940" as="sourcePoint" />
<mxPoint x="1280" y="890" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-79" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-67" target="vxyVkt_PTZCki5Mz5ZuO-70" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1230" y="940" as="sourcePoint" />
<mxPoint x="1280" y="890" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-80" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-70" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1230" y="940" as="sourcePoint" />
<mxPoint x="1480" y="912.9411764705883" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-81" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-70" target="vxyVkt_PTZCki5Mz5ZuO-69" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1230" y="940" as="sourcePoint" />
<mxPoint x="1280" y="890" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-82" value="" style="endArrow=none;html=1;rounded=0;exitX=0.367;exitY=0.008;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-91" target="vxyVkt_PTZCki5Mz5ZuO-77" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1129.4285714285713" y="1000" as="sourcePoint" />
<mxPoint x="1280" y="890" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-83" value="" style="endArrow=none;html=1;rounded=0;exitX=0.85;exitY=0.108;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-89" target="vxyVkt_PTZCki5Mz5ZuO-77" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1028.54" y="1011.04" as="sourcePoint" />
<mxPoint x="1280" y="890" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-84" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-77" target="vxyVkt_PTZCki5Mz5ZuO-69" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1230" y="940" as="sourcePoint" />
<mxPoint x="1280" y="890" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-85" value="Architekt bezpieczeństwa" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="1030" y="710" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-86" value="" style="endArrow=none;startArrow=none;html=1;rounded=0;startFill=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-85" target="vxyVkt_PTZCki5Mz5ZuO-69" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1230" y="940" as="sourcePoint" />
<mxPoint x="1280" y="890" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-89" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.polygon;polyCoords=[[0.25,0],[0.75,0],[1,0.25],[1,0.75],[0.75,1],[0.25,1],[0,0.75],[0,0.25]];polyline=0;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="927.5" y="1000" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-90" value="Wieksze koszta&lt;div&gt;utrzymania&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="932.5" y="1040" width="110" height="40" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-91" value="Duża kontrola środowiska (dostęp do logów)" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="1101.5" y="1000" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-93" value="" style="endArrow=none;html=1;rounded=0;exitX=1.008;exitY=0.442;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="vxyVkt_PTZCki5Mz5ZuO-77" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="998.46" y="923.04" as="sourcePoint" />
<mxPoint x="1094.5" y="960" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-94" value="Stabilność systemu&lt;div&gt;zależna od dostawcy&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="875" y="910" width="130" height="40" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-98" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.polygon;polyCoords=[[0.25,0],[0.75,0],[1,0.25],[1,0.75],[0.75,1],[0.25,1],[0,0.75],[0,0.25]];polyline=0;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="1671.25" y="870" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-99" value="Wydajne usługi" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#999999;" parent="1" vertex="1">
<mxGeometry x="2091.25" y="1030" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-105" value="Wybór technologii&lt;div&gt;wdrożeniowej&lt;/div&gt;" style="shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;" parent="1" vertex="1">
<mxGeometry x="1951.25" y="780" width="160" height="80" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-106" value="Sprawdzone technologie (Ubuntu, Apache, Oracle)" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;strokeWidth=3;" parent="1" vertex="1">
<mxGeometry x="2091.25" y="890" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-107" value="Wysoka wydajność" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="2111.25" y="650" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-108" value="Długoterminowe wsparcie" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="1995.25" y="650" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-110" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-105" target="vxyVkt_PTZCki5Mz5ZuO-108" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2021.25" y="920" as="sourcePoint" />
<mxPoint x="2071.25" y="870" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-111" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-105" target="vxyVkt_PTZCki5Mz5ZuO-107" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2021.25" y="920" as="sourcePoint" />
<mxPoint x="2071.25" y="870" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-113" value="Cloud-native stack" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#999999;" parent="1" vertex="1">
<mxGeometry x="1841.25" y="890" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-114" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-100" target="vxyVkt_PTZCki5Mz5ZuO-106" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2021.25" y="940" as="sourcePoint" />
<mxPoint x="2071.25" y="890" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-115" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-101" target="vxyVkt_PTZCki5Mz5ZuO-106" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2021.25" y="940" as="sourcePoint" />
<mxPoint x="2071.25" y="890" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-117" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-106" target="vxyVkt_PTZCki5Mz5ZuO-105" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2021.25" y="940" as="sourcePoint" />
<mxPoint x="2071.25" y="890" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-118" value="" style="endArrow=none;html=1;rounded=0;exitX=0.367;exitY=0.008;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-125" target="vxyVkt_PTZCki5Mz5ZuO-113" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1920.6785714285713" y="1000" as="sourcePoint" />
<mxPoint x="2071.25" y="890" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-119" value="" style="endArrow=none;html=1;rounded=0;exitX=0.85;exitY=0.108;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-123" target="vxyVkt_PTZCki5Mz5ZuO-113" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1819.79" y="1011.04" as="sourcePoint" />
<mxPoint x="2071.25" y="890" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-120" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-113" target="vxyVkt_PTZCki5Mz5ZuO-105" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2021.25" y="940" as="sourcePoint" />
<mxPoint x="2071.25" y="890" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-121" value="DevOps lead" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="1821.25" y="710" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-122" value="" style="endArrow=none;startArrow=none;html=1;rounded=0;startFill=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-121" target="vxyVkt_PTZCki5Mz5ZuO-105" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2021.25" y="940" as="sourcePoint" />
<mxPoint x="2071.25" y="890" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-123" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.polygon;polyCoords=[[0.25,0],[0.75,0],[1,0.25],[1,0.75],[0.75,1],[0.25,1],[0,0.75],[0,0.25]];polyline=0;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="1718.75" y="1000" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-124" value="Potrzeba opanowania&lt;div&gt;nowych narzędzi&lt;/div&gt;&lt;div&gt;i technologii&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="1708.75" y="1030" width="140" height="60" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-125" value="Wydajność dostawcy" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="1892.75" y="1000" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-126" value="" style="endArrow=none;html=1;rounded=0;exitX=1.008;exitY=0.442;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="vxyVkt_PTZCki5Mz5ZuO-113" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1789.71" y="923.04" as="sourcePoint" />
<mxPoint x="1885.75" y="960" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-127" value="Ryzyko vendor lock-in" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
<mxGeometry x="1661.25" y="915" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-128" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-105" target="vxyVkt_PTZCki5Mz5ZuO-129" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2150" y="816" as="sourcePoint" />
<mxPoint x="2200" y="770" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-129" value="Szybkość wdrożenia" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="2170" y="740" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-131" value="Znajomość technologii" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="2280" y="840" width="120" height="120" as="geometry" />
</mxCell>
<mxCell id="vxyVkt_PTZCki5Mz5ZuO-133" value="" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=-0.008;exitY=0.608;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="vxyVkt_PTZCki5Mz5ZuO-131" target="vxyVkt_PTZCki5Mz5ZuO-106" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2241" y="993" as="sourcePoint" />
<mxPoint x="2199" y="960" as="targetPoint" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

View File

@ -0,0 +1,236 @@
\documentclass[a4paper,12pt]{article}
% Packages
\usepackage{amsmath, amssymb, amsthm} % For math symbols and theorems
\usepackage{graphicx} % For including images
\usepackage{hyperref} % For hyperlinks
\usepackage{geometry} % Page layout
\usepackage{fancyhdr} % Header and footer
\usepackage{listings} % Code listings
\usepackage{xcolor} % Colors for code
\usepackage{biblatex} % References
\usepackage{float} % Dodaj na początku dokumentu
\usepackage{polski} % Obsługa języka polskiego
\addbibresource{references.bib}
% Page Setup
\geometry{margin=1in}
\pagestyle{fancy}
\fancyhf{}
\rhead{\thepage}
\lhead{Small Documentation}
\renewcommand{\headrulewidth}{0.4pt}
% Code Formatting
\lstset{
language=Python,
basicstyle=\ttfamily\small,
keywordstyle=\color{blue},
commentstyle=\color{gray},
stringstyle=\color{red},
breaklines=true,
frame=single
}
% Theorem, Definition, and Example Styles
\theoremstyle{definition}
\newtheorem{definition}{Definition}
\newtheorem{theorem}{Theorem}
\newtheorem{example}{Example}
\begin{document}
% Title Page
\title{AIS \\ Projekt}
\author{Jakub Woźniak 318745 \\ Filip Budzyński 319021 \\}
\date{\small \today}
\maketitle
\begin{abstract}
Projekt opiera sie...
\end{abstract}
\tableofcontents
\newpage
\section{Wymagania funkcjonalne}
\subsection{Pogrupowana lista wymagań}
\begin{itemize}
\item \textbf{Rejestracja i zarządzanie kontem}
\begin{itemize}
\item Rejestracja konta użytkownika (indywidualnego lub firmowego)
\item Dodawanie pojazdów i przypisywanie urządzeń lokalizacyjnych
\item Zarządzanie danymi użytkownika
\end{itemize}
\item \textbf{Monitoring pojazdów}
\begin{itemize}
\item Odbieranie danych GPS w czasie rzeczywistym
\item Identyfikacja płatnych odcinków
\item Obsługa przerw w sygnale
\end{itemize}
\item \textbf{Naliczanie opłat}
\begin{itemize}
\item Analiza przejazdu i naliczanie opłaty
\item Uwzględnianie kategorii pojazdu, pory dnia, długości trasy
\item Obsługa taryf i zniżek
\end{itemize}
\item \textbf{Płatności i fakturowanie}
\begin{itemize}
\item Doładowanie konta
\item Historia opłat i przejazdów
\item Generowanie faktur
\end{itemize}
\item \textbf{Obsługa wyjątków}
\begin{itemize}
\item Brak sygnału GPS interpolacja pozycji
\item Brak środków powiadomienie i odroczenie płatności
\item Korekta błędnych danych, reklamacje
\end{itemize}
\end{itemize}
\subsection{Kluczowy proces biznesowy: Naliczanie opłaty}
\begin{itemize}
\item \textbf{Cel:} Naliczenie opłaty za przejazd przez płatny odcinek drogi
\item \textbf{Stan początkowy:} System odbiera dane GPS pojazdu
\item \textbf{Stan końcowy:} Opłata naliczona i zarejestrowana
\item \textbf{Kroki:}
\begin{enumerate}
\item Odbiór danych GPS
\item Detekcja wjazdu/zjazdu z odcinka
\item Obliczenie opłaty
\item Sprawdzenie środków:
\begin{itemize}
\item Jeśli są: pobranie opłaty
\item Jeśli brak: zapis zobowiązania, notyfikacja
\end{itemize}
\item Zapis transakcji
\item Wystawienie e-faktury
\end{enumerate}
\end{itemize}
\section{Wymagania niefunkcjonalne}
\begin{itemize}
\item \textbf{Skala działania:} Polska, z możliwością rozszerzenia na UE
\item \textbf{Liczba klientów:} do 7 milionów aktywnych użytkowników
\item \textbf{Zdarzenia biznesowe:}
\begin{itemize}
\item 5 mln przejazdów dziennie
\item 200 tys. opłat/h
\item 10 tys. zapytań/min
\end{itemize}
\item \textbf{Wydajność:} <1s latencji, \textless 200 ms API
\item \textbf{Niezawodność:} SLA 99.95\%, redundancja
\item \textbf{Bezpieczeństwo:}
\begin{itemize}
\item TLS, MFA, role
\item Szyfrowanie danych lokalizacyjnych
\item Zgodność z RODO
\end{itemize}
\end{itemize}
\section{Model C4}
\begin{itemize}
\item \textbf{Poziom 1:} Kontekst użytkownicy, systemy zewnętrzne, urządzenia
\item \textbf{Poziom 2:} Kontenery frontend, backend, baza, billing
\item \textbf{Poziom 3:} Komponenty mikroserwisy: płatności, GPS, billing, notyfikacje
\end{itemize}
\section{Diagramy}
\begin{itemize}
\item \textbf{Diagram dynamiczny:} Proces naliczania opłaty
\item \textbf{Diagram wdrożenia:} Kubernetes, CDN, bazy danych, load balancer
\end{itemize}
\section{Zastosowane wzorce i taktyki}
\begin{itemize}
\item CQRS oddzielenie zapisu i odczytu
\item Event-Driven Architecture system oparty na zdarzeniach
\item Saga Pattern do obsługi błędów i retry
\item Service Mesh np. Istio
\item Cache Aside Redis dla odczytów
\item Sharding danych lokalizacyjnych
\end{itemize}
\section{Model MAD 2.0 decyzje architektoniczne}
\begin{tabular}{|p{4cm}|p{4cm}|p{7cm}|}
\hline
\textbf{Decyzja} & \textbf{Alternatywy} & \textbf{Uzasadnienie} \\
\hline
Architektura mikroserwisowa & Monolit & Skalowalność i niezależny rozwój komponentów \\
\hline
TimescaleDB & MongoDB, Cassandra & Dane czasowo-lokalizacyjne w zoptymalizowany sposób \\
\hline
gRPC do komunikacji & REST & Wydajność, binarny format, mniejsze opóźnienia \\
\hline
Kafka jako event broker & RabbitMQ & Lepsza wydajność dla dużych wolumenów danych \\
\hline
Kubernetes & VM & Skalowalność, automatyzacja, dostępność \\
\hline
\end{tabular}
% ===============
% MODELE MAD 2.0
% ===============
\begin{figure}[h]
\centering \includegraphics[width=0.8\textwidth]{mad/mad2-wybor-architektury.png}
\caption{Model MAD 2.0 dla decyzji wyboru architektury systemu.}
\label{fig:csr}
\end{figure}
\begin{figure}[h]
\centering \includegraphics[width=0.8\textwidth]{mad/mad2-organizacja-aplikacji-serwerowej.png}
\caption{Model MAD 2.0 dla decyzji organizacji aplikacji serwerowej.}
\label{fig:csr}
\end{figure}
\begin{figure}[h]
\centering \includegraphics[width=0.8\textwidth]{mad/mad2-dostep-do-systemu.png}
\caption{Model MAD 2.0 dla decyzji dostępu do systemu.}
\label{fig:csr}
\end{figure}
\begin{figure}[h]
\centering \includegraphics[width=0.8\textwidth]{mad/mad2-uprawniania-uzytkownikow.png}
\caption{Model MAD 2.0 dla decyzji o uprawnianiach dla użytkowników.}
\label{fig:csr}
\end{figure}
\begin{figure}[h]
\centering \includegraphics[width=0.8\textwidth]{mad/mad2-obsluga-platnosci-archiwizacja-danych.png}
\caption{Model MAD 2.0 dla decyzji o realizacji obsługi płatności i archiwizacji danych.}
\label{fig:csr}
\end{figure}
\begin{figure}[h]
\centering \includegraphics[width=0.8\textwidth]{mad/mad2-zapewnienie-dostepnosci.png}
\caption{Model MAD 2.0 dla decyzji zapewnienia dostępności i odporności na awarie.}
\label{fig:csr}
\end{figure}
\begin{figure}[h]
\centering \includegraphics[width=0.8\textwidth]{mad/mad2-wybor-tech-wdrozeniowej.png}
\caption{Model MAD 2.0 dla decyzji wyboru technologii wdrożeniowej.}
\label{fig:csr}
\end{figure}
\end{document}
\printbibliography
\end{document}

Binary file not shown.

View File

@ -0,0 +1,398 @@
\documentclass[12pt]{article}
\usepackage[left=0.75in,right=0.75in,bottom=0.75in]{geometry}
\usepackage[polish]{babel}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}
\usepackage{graphicx}
\usepackage{enumitem}
\usepackage{url}
\usepackage{listings}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{float}
\usepackage{titlesec}
\usepackage{xcolor}
\graphicspath{ {../images/} }
% Configure hyperlinks
\hypersetup{
colorlinks=true,
linkcolor=blue,
filecolor=magenta,
urlcolor=blue,
pdftitle={System e-Toll - Dokumentacja},
pdfauthor={},
pdfsubject={Wymagania funkcjonalne i niefunkcjonalne systemu e-Toll},
pdfkeywords={e-Toll, wymagania, architektura, system}
}
\title{System e-Toll \\
\large Dokumentacja systemu do zbierania danych na temat ruchu pojazdów\\po polskich drogach i naliczania należności za przejazdy}
\author{Dawid Budzyński, Filip Budzyński \\ Artur Romaniuk, Krzysztof Rudnicki, Jakub Woźniak}
\date{\today}
\begin{document}
\maketitle
\section{Wymagania funkcjonalne}
\subsection{Kluczowy proces biznesowy: Naliczanie i pobieranie opłat za przejazd}
\subsubsection{Cel procesu}
\begin{enumerate}
\item Wykrywanie pojazdów na płatnych odcinkach dróg
\item Naliczanie należności zgodnie z taryfami
\item Pobieranie opłat od użytkowników
\end{enumerate}
\subsubsection{Stan początkowy}
Pojazd niezarejestrowany w systemie jako znajdujący się na płatnym odcinku drogi, z kontem użytkownika posiadającym określony stan środków (prepaid) lub limitem kredytowym (postpaid).
\subsubsection{Stan końcowy}
Prawidłowo naliczona i pobrana opłata za przejazd, zaksięgowana w systemie finansowym, z wygenerowanym potwierdzeniem dla użytkownika oraz aktualizacją stanu konta.
\subsubsection{Kroki procesu}
\begin{enumerate}
\item Identyfikacja pojazdu wjeżdżającego na płatny odcinek (poprzez urządzenie OBU, aplikację mobilną lub kamery ANPR) [Dla redundancji, im więcej systemów tym większa szansa na identyfikację]
\item Zebranie danych o pojeździe (kategoria, klasa emisji spalin, masa)
\item Rozpoczęcie śledzenia przejazdu i rejestracja czasu wjazdu
\item Monitorowanie trasy przejazdu przez punkty kontrolne
\item Identyfikacja zjazdu z płatnego odcinka
\item Obliczenie należności na podstawie przebytej trasy i charakterystyki pojazdu
\item Weryfikacja dostępności środków na koncie użytkownika
\item Pobranie opłaty z konta użytkownika
\item Wygenerowanie potwierdzenia transakcji
\item Aktualizacja salda konta użytkownika
\end{enumerate}
\paragraph{Obsługa sytuacji wyjątkowych:}
\begin{itemize}
\item Jeśli identyfikacja pojazdu nie jest możliwa: uruchomienie procedury rejestracji incydentu z dokumentacją wizualną (zdjęcia niezidentyfikowanego pojazdu)
\item W przypadku niewystarczających środków na koncie:
\begin{enumerate}
\item Zablokowanie konta do momentu zapłacenia
\item W przypadku braku zapłaty w określonym czasie, uruchomienie procedury windykacyjnej
\end{enumerate}
\item Przy awarii urządzenia OBU: automatyczne przełączenie na identyfikację przez system kamer ANPR
\item W razie przerwy w komunikacji: lokalne buforowanie danych i synchronizacja po przywróceniu łączności
\item Jeśli zidentyfikowano omijanie bramek:
\begin{enumerate}
\item Poinformowanie użytkownika
\item Uruchomienie procedury kontrolnej
\item Naliczenie kary
\end{enumerate}
\end{itemize}
\subsection{Lista wymagań funkcjonalnych}
\begin{enumerate}
\item \textbf{System rejestracji użytkowników} - System musi umożliwiać rejestrację nowych użytkowników z weryfikacją tożsamości, zbieraniem danych o pojazdach (w tym masa, klasa emisji, kategoria) oraz wyborem metody płatności (prepaid lub postpaid).
\item \textbf{Moduł geolokalizacji pojazdów} - System musi określać pozycję pojazdów z dokładnością do 10 metrów, wykorzystując dane GPS z urządzeń OBU lub aplikacji mobilnej, aktualizowane nie rzadziej niż co 30 sekund podczas przejazdu.
\item \textbf{System rozpoznawania tablic rejestracyjnych (ANPR)} - System musi identyfikować pojazdy poprzez kamery ANPR z dokładnością co najmniej 98\% w różnych warunkach pogodowych i oświetleniowych, jako dopełnienie jeśli wszystkie systemy działają poprawnie lub alternatywa dla urządzeń OBU w razie awarii.
\item \textbf{Elastyczny system taryfowy} - System musi obsługiwać zróżnicowane taryfy opłat w zależności od: typu pojazdu, masy całkowitej, klasy emisji spalin, pory dnia, dnia tygodnia oraz stopnia zatłoczenia drogi.
\item \textbf{Moduł rozliczeń i płatności} - System musi obsługiwać różne metody płatności (karty płatnicze, przelewy, płatności mobilne, blik) z możliwością automatycznego doładowania konta prepaid oraz wystawiania faktur elektronicznych zgodnych z przepisami prawa.
\item \textbf{System powiadomień dla użytkowników} - System musi wysyłać automatyczne powiadomienia do użytkowników (aplikacja, mail + sms) o: niskim stanie konta, zbliżającym się terminie płatności, dokonanych transakcjach oraz zmianach w taryfach i regulaminie.
\item \textbf{Moduł raportowania i analityki} - System musi generować raporty dotyczące natężenia ruchu, generowanych przychodów, incydentów oraz efektywności egzekwowania opłat, z możliwością eksportu danych w formatach CSV i PDF.
\item \textbf{System wykrywania naruszeń} - System musi identyfikować próby obejścia opłat (np. manipulacja urządzeniem OBU, podawanie fałszywych danych o pojeździe) i automatycznie uruchamiać procedury weryfikacyjne.
\item \textbf{Portal samoobsługowy dla użytkowników} - System musi udostępniać portal internetowy oraz aplikację mobilną umożliwiającą użytkownikom zarządzanie kontem, przeglądanie historii przejazdów i opłat, generowanie raportów oraz aktualizację danych pojazdu.
\item \textbf{System korekty opłat} - System musi umożliwiać ręczną korektę naliczonej opłaty przez operatora w przypadku zgłoszenia błędu przez użytkownika. Zakładając, że system źle naliczył opłatę np. Użytkownik został obciążony za trasę, której nie przejechał lub przypisano niewłaściwą kategorię pojazdu. Użytkownik zgłasza błąd do obsługi systemu. W takim przypadku operator musi mieć możliwość ręcznej korekty naliczonej opłaty np. Anulowanie opłaty, zmniejszenie jej lub ponowne przeliczenie, jeżeli zgłoszenie użytkownika okaże się zasadne. Zasadność zgłoszenia musi być weryfikowalna poprzez fizyczne zdjęcia pojazdu.
\end{enumerate}
\section{Wymagania niefunkcjonalne}
\begin{enumerate}
\item \textbf{Wydajność systemu} - System musi obsługiwać jednoczesne przetwarzanie danych z co najmniej 200,000 pojazdów w godzinach szczytu\footnote{\url{https://forsal.pl/transport/drogi/artykuly/8295957,najbardziej-obciazone-drogi-w-polsce-s8-s2-a4-s86-mapa.html}}, z czasem odpowiedzi dla transakcji poniżej 1s oraz przetwarzaniem danych geolokalizacyjnych w czasie rzeczywistym.
\item \textbf{Dostępność systemu} - System musi zapewniać dostępność na poziomie 99,9\% (maksymalny czas niedostępności: $\sim$9 godzin rocznie), z planowanymi oknami serwisowymi w godzinach nocnych (1:00-4:00) i z odpowiednim wyprzedzeniem komunikowanym użytkownikom.
\item \textbf{Bezpieczeństwo danych} - System musi zapewniać:
\begin{enumerate}
\item Szyfrowanie danych w spoczynku i podczas transmisji (minimum AES-256)
\item Zgodność z normą ISO/IEC 27001
\item Wielopoziomową autoryzację użytkowników (hasło + kod sms)
\item Pełną zgodność z RODO, włączając automatyczne mechanizmy anonimizacji danych historycznych starszych niż 5 lat.
\end{enumerate}
\item \textbf{Skalowalność} - System musi posiadać architekturę umożliwiającą skalowanie w celu obsługi wzrostu liczby użytkowników o 30\% rocznie bez pogorszenia wydajności\footnote{\url{https://kpmg.com/pl/pl/home/media/press-releases/2024/02/liczba-rejestracji-nowych-samochodow-osobowych-wzrosla-o-13-2-procent-w-2023-roku.html}}, z automatycznym zwiększeniem zasobów w odpowiedzi na zwiększone obciążenie w ciągu dnia.
\item \textbf{Niezawodność i odporność na awarie} - System musi zawierać rozwiązania wysokiej dostępności z nadmiarowością komponentów krytycznych, automatycznym przełączaniem awaryjnym poniżej 10 sekund oraz mechanizmem ciągłej replikacji danych między geograficznie odległymi centrami danych, zapewniając RPO (Recovery Point Objective) poniżej 5 minut i RTO (Recovery Time Objective) poniżej 30 minut.
\item \textbf{Interoperacyjność} - System musi obsługiwać standardy interoperacyjności z europejskimi systemami elektronicznego poboru opłat (zgodnie z dyrektywą EETS\footnote{\url{https://eur-lex.europa.eu/legal-content/PL/TXT/?uri=CELEX\%3A32019L0520}}), zapewniając pełną wymianę danych poprzez standardowe API (REST/SOAP) z minimum 99,5\% dostępnością interfejsów integracyjnych.
\item \textbf{Użyteczność i dostępność interfejsów} - Interfejsy użytkownika (portal i aplikacja mobilna) muszą spełniać standardy WCAG 2.1 na poziomie AA, obsługiwać minimum 5 języków (polski, angielski, niemiecki, ukraiński, rosyjski), zapewniać responsywność na urządzeniach mobilnych oraz wykazywać wskaźnik satysfakcji użytkowników (CSAT) na poziomie minimum 85\%.
\item \textbf{Audytowanie i śledzenie aktywności} - System musi rejestrować wszystkie operacje w niezmienialne logi z zachowaniem zgodności z wymogami prawnymi dotyczącymi dowodów elektronicznych, umożliwiać niemodyfikowalny ślad audytu dla wszystkich transakcji finansowych oraz zapewniać przechowywanie logów przez minimum 5 lat z możliwością szybkiego wyszukiwania.
\item \textbf{Efektywność zarządzania danymi} - System musi umożliwiać archiwizację i zarządzanie cyklem życia danych zgodnie z polityką retencji, zapewniać kompresję danych historycznych na poziomie minimum 80\% oraz optymalizację zapytań do bazy danych z czasem odpowiedzi poniżej 10 sekund dla 90\% zapytań raportowych.
\item \textbf{Utrzymywalność i modyfikowalność} - System musi być zaprojektowany z wykorzystaniem architektury modułowej i mikroserwisowej, umożliwiającej niezależną aktualizację poszczególnych komponentów bez przerywania działania całości systemu, z automatycznymi testami regresji pokrywającymi minimum 90\% kodu oraz pełną dokumentacją techniczną aktualizowaną przy każdej \textbf{dużej} (takiej która sprawia że system nie jest kompatybilny z poprzednią wersją) zmianie.
\item \textbf{System integracji z zewnętrznymi bazami danych} - System musi komunikować się z zewnętrznymi bazami danych (np. CEPiK, rejestry pojazdów innych krajów) w celu weryfikacji danych pojazdów oraz wymiany informacji o użytkownikach z zagranicznymi systemami poboru opłat.
\item \textbf{Zgodność prawna i regulacyjna} - System musi spełniać wszystkie obowiązujące przepisy prawa krajowego oraz unijnego dotyczące elektronicznego poboru opłat. Ustawę o drogach publicznych, dyrektywę EETS, przepisy podatkowe oraz przepisy dotyczące ochrony konkurencji i konsumentów.
\item \textbf{Czas wdrożenia poprawek krytycznych} - w przypadku wykrycia krytycznego błędu (np. Uniemożliwiającego naliczenie opłaty lub przetwarzanie przejazdów) poprawka musi zostać wdrożona w ciągu maksymalnie 24 godzin od momentu potwierdzenia błędu.
\item \textbf{Transparentność naliczanych opłat} - system musi umożliwiać użytkownikom końcowym wgląd w szczegółowe informacje dotyczące każdej naliczonej opłaty. Czas przejazdu, odcinki dróg, taryfy oraz podstawy naliczenia.
\item \textbf{Elastyczność taryf} - system musi obsługiwać dynamiczne taryfy drogowe (np. Zmienne w zależności od natężenia ruchu czy poziomu emisji pojazdu) z możliwoścą wdrażania nowych taryf bez konieczności przerywania działania systemu.
\item \textbf{Personalizacja powiadomień dla użytkowników} - system musi umożliwić użytkownikom wybór otrzymywania powiadomień np. (sms, e-mail, powiadomienie push w aplikacji) z opcją definiowania progów powiadomień (np. Przekroczenie salda, opłata powyżej X zł etc.)
\end{enumerate}
\section{Decyzje architektoniczne}
\subsection{Podział na warstwy}
\begin{figure}[H]
\centering
\includegraphics[width=0.8\textwidth]{wybor_architektury.png}
\caption{Diagram podziału na warstwy}
\label{fig:layers}
\end{figure}
\begin{itemize}
\item Warstwa prezentacji: trzy różne aplikacje klienckie — aplikacja webowa, mobilna i aplikacja na urządzenia embedded.
\item Warstwa logiki biznesowej: centralna aplikacja serwerowa (serverApp), w której znajdują się komponenty takie jak UserService, PaymentService, PositionService itd.
\item Warstwa dostępu do danych: komponenty UserRepository, PaymentRepository.
\item Warstwa danych: baza danych Oracle z mechanizmem failover.
\end{itemize}
\textbf{Decyzja:} Rozdzielenie odpowiedzialności na warstwy zwiększa modularność i ułatwia zarządzanie kodem oraz jego testowanie.
\textbf{Alternatywa:} Architektura mikroserwisowa
\textbf{Zalety alternatywy:}
\begin{itemize}
\item Lepsza skalowalność poszczególnych komponentów
\item Możliwość niezależnego wdrażania i rozwijania usług
\item Lepsza odporność na awarie (awaria jednego serwisu $\neq$ awaria całego systemu)
\end{itemize}
\textbf{Wady alternatywy:}
\begin{itemize}
\item Większa złożoność wdrożeniowa (DevOps, CI/CD, monitoring)
\item Konieczność rozwiązywania problemów związanych z komunikacją między serwisami
\item Trudniejsze debugowanie i testowanie end-to-end
\end{itemize}
\subsection{Modularność i komponenty (Component-based Design)}
\begin{figure}[H]
\centering
\includegraphics[width=0.8\textwidth]{organizacja_aplikacji_serwerowej.png}
\caption{Diagram komponentów}
\label{fig:components}
\end{figure}
\begin{itemize}
\item Serwerowa aplikacja została podzielona na komponenty pełniące konkretne role (SigninController, TollController, MainComponent, itd.).
\item Każdy komponent ma jasno zdefiniowaną odpowiedzialność, zgodnie z zasadą Single Responsibility Principle.
\end{itemize}
\textbf{Decyzja:} Wprowadzenie komponentów umożliwia łatwe rozszerzanie i testowanie poszczególnych fragmentów systemu.
\textbf{Alternatywa:} Monolityczna aplikacja serwerowa
\textbf{Zalety alternatywy:}
\begin{itemize}
\item Prostsza implementacja i wdrożenie
\item Mniejsza liczba zależności i konfiguracji
\item Mniej złożone środowisko developerskie
\end{itemize}
\textbf{Wady alternatywy:}
\begin{itemize}
\item Trudniejsza skalowalność i refaktoryzacja
\item Każda zmiana wymaga redeploy całej aplikacji
\item Trudniejsze testowanie izolowanych funkcji
\end{itemize}
\subsection{Wielokanałowy dostęp (Multi-Platform Clients)}
\begin{figure}[H]
\centering
\includegraphics[width=0.8\textwidth]{dostep_do_systemu.png}
\caption{Diagram wielokanałowego dostępu}
\label{fig:multichannel}
\end{figure}
\begin{itemize}
\item Użytkownicy mogą korzystać z systemu za pomocą aplikacji mobilnej, webowej lub urządzeń embedded.
\end{itemize}
\textbf{Decyzja:} Umożliwienie różnym grupom użytkowników (np. administratorzy vs kierowcy) dostępu do funkcji systemu w najbardziej dogodny sposób.
\textbf{Alternatywa:} Tylko aplikacja mobilna (np. PWA lub natywna)
\textbf{Zalety alternatywy:}
\begin{itemize}
\item Uproszczony interfejs użytkownika
\item Jedna platforma do utrzymania
\item Lepsze dopasowanie do kontekstu użytkownika (kierowcy)
\end{itemize}
\textbf{Wady alternatywy:}
\begin{itemize}
\item Brak wygodnego interfejsu dla administratorów lub analityków
\item Mniejsza elastyczność użytkowania
\item Trudności z dostępem do systemu z urządzeń stacjonarnych
\end{itemize}
\subsection{Rozdzielenie ról i uprawnień}
\begin{figure}[H]
\centering
\includegraphics[width=0.8\textwidth]{uprawnienia_dla_uzytkownikow.png}
\caption{Diagram ról i uprawnień}
\label{fig:roles}
\end{figure}
\begin{itemize}
\item Administrator ma dostęp tylko przez aplikację webową.
\item Kierowca może korzystać z trzech różnych interfejsów — w zależności od potrzeb.
\end{itemize}
\textbf{Decyzja:} Jasny podział ról zwiększa bezpieczeństwo i ergonomię systemu.
\textbf{Alternatywa:} Jeden zunifikowany interfejs z uprawnieniami na poziomie konta
\textbf{Zalety alternatywy:}
\begin{itemize}
\item Mniejsze zróżnicowanie UI
\item Mniej kodu i testów związanych z różnymi platformami
\end{itemize}
\textbf{Wady alternatywy:}
\begin{itemize}
\item Mniejsza przejrzystość
\item Możliwość przypadkowego ujawnienia funkcji nieprzeznaczonych dla danego typu użytkownika
\end{itemize}
\subsection{Integracja z zewnętrznymi systemami}
\begin{figure}[H]
\centering
\includegraphics[width=0.8\textwidth]{realizacja_obslugi_platnosci_i_archiwizacji_danych.png}
\caption{Diagram integracji z systemami zewnętrznymi}
\label{fig:integration}
\end{figure}
\begin{itemize}
\item System płatności (systemPlatnosci) oraz system archiwizacji danych (archiwum) są zewnętrznymi systemami zintegrowanymi z systemem e-Toll.
\end{itemize}
\textbf{Decyzja:} Wydzielenie tych odpowiedzialności do zewnętrznych systemów pozwala na lepsze skalowanie oraz wykorzystanie istniejących rozwiązań.
\textbf{Alternatywa:} Wszystko w ramach jednej aplikacji (np. własny moduł płatności i archiwizacji)
\textbf{Zalety alternatywy:}
\begin{itemize}
\item Większa kontrola nad logiką
\item Mniejsze zależności zewnętrzne
\end{itemize}
\textbf{Wady alternatywy:}
\begin{itemize}
\item Większe ryzyko błędów w obszarach regulowanych prawnie (np. płatności)
\item Większe koszty utrzymania i certyfikacji
\item Brak skalowalności i elastyczności
\end{itemize}
\subsection{Wysoka dostępność i odporność na awarie}
\begin{figure}[H]
\centering
\includegraphics[width=0.8\textwidth]{zapewnienie_dostepnosci_i_odpornosci_na_awarie.png}
\caption{Diagram wysokiej dostępności}
\label{fig:high-availability}
\end{figure}
\begin{itemize}
\item Baza danych jest replikowana (primarysecondary).
\item Oddzielne deployment node'y dla różnych typów urządzeń oraz dla aplikacji serwerowej i bazy danych.
\item Failover serwera bazy danych — Oracle - Secondary.
\end{itemize}
\textbf{Decyzja:} Architektura uwzględnia mechanizmy zapewniające ciągłość działania systemu nawet w przypadku awarii.
\textbf{Alternatywa:} Deployment w chmurze
\textbf{Zalety alternatywy:}
\begin{itemize}
\item Duża skalowalność
\item Bezpieczeństwo i redundancja
\end{itemize}
\textbf{Wady alternatywy:}
\begin{itemize}
\item Wyższe koszty
\item Przetwarzanie danych przez inne podmioty
\end{itemize}
\subsection{Wybór technologii wdrożeniowych}
\begin{figure}[H]
\centering
\includegraphics[width=0.8\textwidth]{wybor_technologii_wdrozeniowej.png}
\caption{Diagram technologii wdrożeniowych}
\label{fig:deployment-tech}
\end{figure}
\begin{itemize}
\item System hostowany na serwerach z Ubuntu 24.04 LTS.
\item Serwer aplikacji oparty o Apache Tomcat 8.x.
\item Baza danych Oracle 12c.
\end{itemize}
\textbf{Decyzja:} Użycie sprawdzonych technologii o długoterminowym wsparciu i wysokiej wydajności.
\textbf{Alternatywa:} Cloud-native stack np. AWS/GCP
\textbf{Zalety alternatywy:}
\begin{itemize}
\item Automatyczne skalowanie, monitoring, CI/CD
\item Niższe koszty utrzymania fizycznej infrastruktury
\item Łatwiejsze zarządzanie kontenerami i usługami
\end{itemize}
\textbf{Wady alternatywy:}
\begin{itemize}
\item Uzależnienie od chmury (vendor lock-in)
\item Potrzeba opanowania nowych technologii
\item Potencjalne wyższe koszty początkowe
\end{itemize}
\section{Projekt systemu w postaci modelu C4}
\begin{figure}[H]
\centering
\includegraphics[width=1\textwidth]{c4/etoll.png}
\caption{Poziom context}
\label{fig:deployment-tech}
\end{figure}
\begin{figure}[H]
\centering
\includegraphics[width=1\textwidth]{c4/component_server_app.png}
\caption{Poziom component}
\label{fig:deployment-tech}
\end{figure}
\begin{figure}[H]
\centering
\includegraphics[width=1\textwidth]{c4/etool_glebiej.png}
\caption{Diagram dynamiczny}
\label{fig:deployment-tech}
\end{figure}
\begin{figure}[H]
\centering
\includegraphics[width=1\textwidth]{c4/deployment.png}
\caption{Diagram technologii wdrożeniowych}
\label{fig:deployment-tech}
\end{figure}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

View File

@ -0,0 +1,155 @@
workspace "Name" "Description" {
!identifiers hierarchical
model {
admin = person "Administrator" "Administrator zarządzający systemem e-Toll"
kierowca = person "Kierowca" "Kierowca korzystający z płatnych dróg w systemie e-Toll"
archiwum = softwareSystem "System agregacji danych historycznych" "Archiwum danych do celów statystycznych"
systemPlatnosci = softwareSystem "System procesowania płatności" "System odpowiedzialny za obsługę płatności dokonywanych prze użytkowników"
systemEtoll = softwareSystem "System e-Toll" {
webApp = container "Aplikacja webowa" "Służy do zarządzania kontem oraz systemem"
mobileApp = container "Aplikacja mobilna" "Pozwala na śledzenie pozycji pojazdu w celu dokonywania opłat"
embeddedApp = container "Aplikacja na dedykowane urządzenia zbierania opłat" "Działa na dedykowanych urządzeniach śledzących pozycję pojazdu"
serverApp = container "Aplikacja serwerowa" "Obsługuje logikę działania systemu" {
mainComponent = component "MainComponent" "Centralny element aplikacji odpowiedzialny za jej działanie"
signinController = component "SigninController" "Odpowiada za logowanie do systemu i autoryzację"
tollController = component "TollController" "Odpowiada za kontrolowanie wysokości opłat"
userService = component "UserService" "Zawiera logikę biznesową dotyczącą użytkowników"
paymentService = component "PaymentService" "Zawiera logikę dotyczącą przetwarzania płatności"
userRepository = component "UserRepository" "Odpowiada za dostęp do danych użytkownika"
paymentRepository = component "PaymentRepository" "Odpowiada za dostęp do danych płatności"
positionService = component "PositionService" "Odpowiada za określanie pozycji pojazdu w kontekście odcinków dróg"
mainComponent -> signinController "Używa"
mainComponent -> tollController "Używa"
signinController -> userService "Używa"
mainComponent -> paymentService "Używa"
tollController -> positionService "Używa"
userService -> userRepository "Odczytuje/zapisuje dane"
paymentService -> paymentRepository "Odczytuje/zapisuje dane"
}
db = container "Baza danych" {
tags "Database"
}
serverApp -> db "Czyta i zapisuje dane"
webApp -> serverApp
mobileApp -> serverApp
embeddedApp -> serverApp
}
admin -> systemEtoll.webApp "Zarządza systemem"
kierowca -> systemEtoll "Korzysta z systemu"
kierowca -> systemEtoll.webApp "Zarządza kontem"
kierowca -> systemEtoll.mobileApp "Opłaca przejazdy"
kierowca -> systemEtoll.embeddedApp "Opłaca przejazdy"
systemEtoll.serverApp -> systemPlatnosci "Realizuje płatność"
systemEtoll.serverApp -> archiwum "Przekazuje dane o użyciu dróg"
liveDeployment = deploymentEnvironment "Deployment" {
deploymentNode "Urządzenie mobilne klienta" "" "Apple iOS or Android" {
liveMobileAppInstance = containerInstance systemEtoll.mobileApp
}
deploymentNode "Dedykowane urządzenie zbierania opłat" "" "Linux" {
liveEmbeddedAppInstance = containerInstance systemEtoll.embeddedApp
}
deploymentNode "Urządzenie klienta" "" "Laptop/Desktop" {
deploymentNode "Przeglądarka internetowa" "" "Chromium/Firefox" {
browserInstance = containerInstance systemEtoll.webApp
}
}
deploymentNode "System e-Toll" "" "Data Center dla systemu e-Toll" {
deploymentNode "etoll-server" "" "Ubuntu Server 24.04 LTS" "" 4 {
deploymentNode "Apache Tomcat" "" "Apache Tomcat 8.x" {
liveWebApplicationInstance = containerInstance systemEtoll.serverApp
}
}
db1 = deploymentNode "etoll-db01" "" "Ubuntu Server 24.04 LTS" {
primaryDatabaseServer = deploymentNode "Oracle - Primary" "" "Oracle 12c" {
livePrimaryDatabaseInstance = containerInstance systemEtoll.db
}
}
db2 = deploymentNode "etoll-db02" "" "Ubuntu Server 24.04 LTS" "Failover" {
secondaryDatabaseServer = deploymentNode "Oracle - Secondary" "" "Oracle 12c" "Failover" {
liveSecondaryDatabaseInstance = containerInstance systemEtoll.db "Failover"
}
}
deploymentNode "etoll-prod001" "" "" "" {
softwareSystemInstance systemEtoll
}
db1.primaryDatabaseServer -> db2.secondaryDatabaseServer "Replikuje dane"
}
}
}
views {
systemContext systemEtoll "SystemContext" {
include *
autolayout bt
}
container systemEtoll "Container" {
include *
}
# component systemEtoll.webApp "ComponentWebApp" {
# include *
# }
# component systemEtoll.mobileApp "ComponentMobileApp" {
# include *
# }
# component systemEtoll.embeddedApp "ComponentEmbeddedApp" {
# include *
# }
component systemEtoll.serverApp "ComponentServerApp" {
include *
autoLayout bt
}
deployment systemEtoll "Deployment" {
include *
autoLayout lr
}
styles {
element "Element" {
color #ffffff
}
element "Person" {
background #199b65
shape person
}
element "Software System" {
background #1eba79
}
element "Container" {
background #23d98d
}
element "Database" {
shape cylinder
}
}
}
configuration {
scope softwaresystem
}
}

File diff suppressed because one or more lines are too long