Page MenuHomeSoftware Heritage

arch-container.svg
No OneTemporary

arch-container.svg

<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="333px" preserveAspectRatio="none" style="width:1253px;height:333px;" version="1.1" viewBox="0 0 1253 333" width="1253px" zoomAndPan="magnify"><defs/><g><!--MD5=[f9d78948ff2b83227b66866d68effa63]
cluster swhfs_bound--><rect fill="#FFFFFF" height="207" style="stroke: #444444; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;" width="670" x="572" y="24.5"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="85" x="864.5" y="39.4951">«boundary»</text><text fill="#444444" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="58" x="878" y="57.6484">SwhFS</text><text fill="#444444" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="62" x="876" y="72.5605">[System]</text><!--MD5=[23d6fcc501312e5a77e0f62381cd199c]
entity swh_fuse--><rect fill="#438DD5" height="115.4531" style="stroke: #3C7FC0; stroke-width: 1.5;" width="219" x="588" y="98"/><text fill="#FFFFFF" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="69" x="663" y="119.1387">«container»</text><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="81" x="657" y="136.8203">swh.fuse</text><text fill="#FFFFFF" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="145" x="625" y="151.7324">[pyfuse3, libfuse, FUSE]</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="0" x="699.5" y="167.5576"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="195" x="598" y="183.8545">Provides a filesystem view of</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="177" x="609" y="200.1514">Software Heritage objects</text><!--MD5=[23ec4f1fff159d71b633b9f85a9aab58]
entity cache--><path d="M1014,101.5 C1014,91.5 1120,91.5 1120,91.5 C1120,91.5 1226,91.5 1226,101.5 L1226,205.9531 C1226,215.9531 1120,215.9531 1120,215.9531 C1120,215.9531 1014,215.9531 1014,205.9531 L1014,101.5 " fill="#438DD5" style="stroke: #3C7FC0; stroke-width: 1.5;"/><path d="M1014,101.5 C1014,111.5 1120,111.5 1120,111.5 C1120,111.5 1226,111.5 1226,101.5 " fill="none" style="stroke: #3C7FC0; stroke-width: 1.5;"/><text fill="#FFFFFF" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="69" x="1085.5" y="126.6387">«container»</text><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="54" x="1093" y="144.3203">Cache</text><text fill="#FFFFFF" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="130" x="1055" y="159.2324">[SQLite or in-memory]</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="0" x="1122" y="175.0576"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="188" x="1024" y="191.3545">Local cache for objects and</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="65" x="1087.5" y="207.6514">metadata</text><!--MD5=[8fc3522a43f8c7199df5e09e5bb0188e]
entity user--><rect fill="#08427B" height="52.5938" style="stroke: #073B6F; stroke-width: 1.5;" width="74" x="6" y="129"/><text fill="#FFFFFF" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="54" x="16" y="150.1387">«person»</text><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="22.5" y="167.8203">User</text><!--MD5=[f2c2b31a53c5c4ce909f55cafb9e3eda]
entity fuse--><rect fill="#438DD5" height="131.75" style="stroke: #3C7FC0; stroke-width: 1.5;" width="184" x="214" y="89.5"/><text fill="#FFFFFF" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="69" x="271.5" y="110.6387">«container»</text><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="43" x="284.5" y="128.3203">FUSE</text><text fill="#FFFFFF" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="46" x="283" y="143.2324">[kernel]</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="0" x="308" y="159.0576"/><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="144" x="232" y="175.3545">Delegates filesystem</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="160" x="224" y="191.6514">implementation to user</text><text fill="#FFFFFF" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="42" x="285" y="207.9482">space</text><!--MD5=[a8305b23d211bc1ccd9424c697ead2f2]
entity archive--><rect fill="#999999" height="71.2188" style="stroke: #8A8A8A; stroke-width: 1.5;" width="188" x="1026" y="251"/><text fill="#FFFFFF" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="110" x="1065" y="272.1387">«external_system»</text><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="162" x="1036" y="289.8203">Software Heritage</text><text fill="#FFFFFF" font-family="sans-serif" font-size="16" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="1088" y="308.4453">archive</text><!--MD5=[10b3a46bea91c5f43069f2361ea72c4c]
link swh_fuse to cache--><path d="M807.06,154.98 C868.96,154.69 946.34,154.32 1008.54,154.03 " fill="none" id="swh_fuse-&gt;cache" style="stroke: #666666; stroke-width: 1.0;"/><polygon fill="#666666" points="1013.75,154,1004.7386,150.0257,1008.75,154.0143,1004.7615,158.0257,1013.75,154" style="stroke: #666666; stroke-width: 1.0;"/><text fill="#666666" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="138" x="839" y="121.5669">Reads objects and</text><text fill="#666666" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="112" x="854.5" y="136.6997">metadata from</text><text fill="#666666" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="33" x="894" y="150.9043">[SQL]</text><!--MD5=[ab48cbd348a76e20eaf6c83ec0a55c56]
link user to fuse--><path d="M80.02,155.5 C113.14,155.5 163.77,155.5 208.62,155.5 " fill="none" id="user-&gt;fuse" style="stroke: #666666; stroke-width: 1.0;"/><polygon fill="#666666" points="213.78,155.5,204.78,151.5,208.78,155.5,204.78,159.5,213.78,155.5" style="stroke: #666666; stroke-width: 1.0;"/><text fill="#666666" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="68" x="113" y="137.5669">Accesses</text><text fill="#666666" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="72" x="111" y="151.7715">[Filesystem]</text><!--MD5=[bb698cf1ed9bc1e60225f23580a72fd2]
link fuse to swh_fuse--><path d="M398.32,155.5 C453.32,155.5 523.83,155.5 582.48,155.5 " fill="none" id="fuse-&gt;swh_fuse" style="stroke: #666666; stroke-width: 1.0;"/><polygon fill="#666666" points="587.75,155.5,578.75,151.5,582.75,155.5,578.75,159.5,587.75,155.5" style="stroke: #666666; stroke-width: 1.0;"/><text fill="#666666" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="121" x="429" y="122.5669">Calls user space</text><text fill="#666666" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="60" x="462" y="137.6997">daemon</text><text fill="#666666" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="65" x="459.5" y="151.9043">[FUSE API]</text><!--MD5=[6556e5d5149acdab6ce9b45fdcf5a98f]
link swh_fuse to archive--><path d="M807.36,199.18 C817.33,202.8 827.32,206.3 837,209.5 C897.46,229.48 966.39,248.37 1020.97,262.44 " fill="none" id="swh_fuse-&gt;archive" style="stroke: #666666; stroke-width: 1.0;"/><polygon fill="#666666" points="1025.87,263.7,1018.1468,257.5883,1021.0269,262.4571,1016.1582,265.3372,1025.87,263.7" style="stroke: #666666; stroke-width: 1.0;"/><text fill="#666666" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="128" x="844" y="176.5669">Retrieves objects</text><text fill="#666666" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="145" x="838" y="191.6997">and metadata from</text><text fill="#666666" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="64" x="878.5" y="205.9043">[REST API]</text><!--MD5=[5fe99f700e4f8329d9336aad7ab1cfc2]
@startuml arch-container
skinparam defaultTextAlignment center
skinparam wrapWidth 200
skinparam maxMessageSize 150
skinparam rectangle {
StereotypeFontSize 12
shadowing false
}
skinparam database {
StereotypeFontSize 12
shadowing false
}
skinparam Arrow {
Color #666666
FontColor #666666
FontSize 12
}
skinparam rectangle<<boundary>> {
Shadowing false
StereotypeFontSize 0
FontColor #444444
BorderColor #444444
BorderStyle dashed
}
skinparam rectangle<<person>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #08427B
BorderColor #073B6F
}
skinparam rectangle<<external_person>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #686868
BorderColor #8A8A8A
}
skinparam rectangle<<system>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #1168BD
BorderColor #3C7FC0
}
skinparam rectangle<<external_system>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #999999
BorderColor #8A8A8A
}
skinparam database<<system>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #1168BD
BorderColor #3C7FC0
}
skinparam database<<external_system>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #999999
BorderColor #8A8A8A
}
skinparam rectangle<<container>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #438DD5
BorderColor #3C7FC0
}
skinparam database<<container>> {
StereotypeFontColor #FFFFFF
FontColor #FFFFFF
BackgroundColor #438DD5
BorderColor #3C7FC0
}
left to right direction
rectangle "==User" <<person>> as user
rectangle "==FUSE\n//<size:12>[kernel]</size>//\n\n Delegates filesystem implementation to user space" <<container>> as fuse
rectangle "==SwhFS\n<size:12>[System]</size>" <<boundary>> as swhfs_bound {
rectangle "==swh.fuse\n//<size:12>[pyfuse3, libfuse, FUSE]</size>//\n\n Provides a filesystem view of Software Heritage objects" <<container>> as swh_fuse
database "==Cache\n//<size:12>[SQLite or in-memory]</size>//\n\n Local cache for objects and metadata" <<container>> as cache
swh_fuse - -> cache : "===Reads objects and metadata from\n//<size:12>[SQL]</size>//"
}
rectangle "==Software Heritage archive" <<external_system>> as archive
user - -> fuse : "===Accesses\n//<size:12>[Filesystem]</size>//"
fuse - -> swh_fuse : "===Calls user space daemon\n//<size:12>[FUSE API]</size>//"
swh_fuse - -> archive : "===Retrieves objects and metadata from\n//<size:12>[REST API]</size>//"
@enduml
PlantUML version 1.2020.02(Sun Mar 01 11:22:07 CET 2020)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 14.0.2+12-Debian-1.1
Operating System: Linux
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>

File Metadata

Mime Type
image/svg+xml
Expires
Jun 4 2025, 7:50 PM (12 w, 4 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3290057

Event Timeline