1
0
mirror of https://github.com/falk-werner/webfuse synced 2024-10-27 20:34:10 +00:00

replaces ASCII art by UML diagram

This commit is contained in:
Falk Werner 2019-04-01 20:47:28 +02:00
parent c68106f87d
commit f7d47fcc45
3 changed files with 31 additions and 28 deletions

View File

@ -33,34 +33,7 @@ webfuse solves this problem by using the [WebSocket](https://en.wikipedia.org/wi
## Concept
+---------------------+ +-------------+ +------+
| Filesystem Provider | | webfuse | | user |
| (e.g. Webbrowser) | | daemon | | |
+----------+----------+ +------+------+ +---+--+
| | |
| +-+-+ |
| | +--+ |
| | | | fuse_mount |
| | +<-+ |
| | | |
| | +--+ |
| | | | start ws |
| | +<-+ |
| +-+-+ |
| | |
+-+-+ connect +-+-+ |
| |--------------->| | |
+-+-+ +-+-+ |
| | |
| +-+-+ ls +-+-+
+-+-+ readdir | |<------------+ |
| |<---------------+ | | |
| | | | | |
| | readdir_resp | | | |
| +--------------->| | [., ..] | |
+-+-+ | +------------>| |
| +-+-+ +-+-+
| | |
![concept](doc/concept.png)
With webfuse it is possible to implement remote filesystems based on websockets.
A reference implementation of such a daemon is provided within the examples. The picture above describes the workflow:

BIN
doc/concept.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

30
doc/concept.uml Normal file
View File

@ -0,0 +1,30 @@
@startuml
participant "Filesystem Provider\n(e.g. Webbrowser)" as provider
participant "webfuse\ndaemon" as daemon
actor "user" as user
group startup
daemon -> daemon : fuse_mount
daemon -> daemon : start ws
end
...
group connect
provider -> daemon : connect
opt authentication
provider -> daemon: authenticate
daemon -> daemon: check credentials
daemon --> provider: okay
end
end
...
group directory listing
user -> daemon : ls
daemon -> provider : readdir
provider --> daemon : readdir_resp
daemon --> user : "[., ..]"
end
...
@enduml