Skip to content

Commit b1aec7f

Browse files
committed
docs: add protocol design
Update #3
1 parent 859104f commit b1aec7f

File tree

3 files changed

+601
-40
lines changed

3 files changed

+601
-40
lines changed

docs/README.md

Lines changed: 8 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,13 @@
11
# Occamy Manual
22

3-
## Architecture
4-
5-
Figure 1 illustrates the architecture of an Guacamole application, it requires
6-
end-user install a Guacamole Servlet for authentication proxy, and uses `guacd` as
7-
a second proxy for the connection management between end-user and remote desktop server.
8-
Futhermore, `guacd` manages connection in different processes, which can limits the maximum
9-
connection of Guacamole application.
10-
11-
```
12-
|-- Browser --|-------- Guacamole Server -----------|--- Intranet ---|
13-
14-
UserA --------+ +---- RDP server
15-
+------ Guacamole Servlet |
16-
UserB --------+ | +---- VNC server
17-
+------- guacd -------+
18-
+---- Others
19-
```
20-
21-
_Figure 1: Guacamole Architecture_
22-
23-
Occamy solves these issues, and it uses JWT for authentication as default option, manages
24-
all connection in mutiple thread rather than multiple processes, as shown in Figure 2.
25-
26-
```
27-
|-- Browser --|---- Occamy Server -----|--- Intranet ---|
28-
29-
30-
UserA --------+ +---- RDP server
31-
+------ Occamy ----------+
32-
UserB --------+ +---- VNC server
33-
|
34-
+---- Others
35-
```
36-
37-
_Figure 2: Occamy Architecture_
38-
39-
## Protocol Instructions
40-
41-
Refer to [Guacamole protocol reference](https://guacamole.apache.org/doc/gug/protocol-reference.html). Note that Occamy has no handshake process between client and Occamy, one can simply POST the connection information to Occamy for getting authentication tokens.
42-
3+
You may interested in the following document:
4+
5+
- [Occamy Architecture](./architecture.md)
6+
+ TL;DR: Occamy serves each connection in different goroutines
7+
- [Occamy Protocol](./protocol-cn.md)
8+
+ TL;DR: The great thing about Occamy is that occamy has no handshake process
9+
between client and Occamy, one can simply POST the connection
10+
information to Occamy for getting authentication tokens.
4311

4412
## License
4513

docs/architecture.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Occamy Architecture
2+
3+
Figure 1 illustrates the architecture of an Guacamole application, it requires
4+
end-user install a Guacamole Servlet for authentication proxy, and uses `guacd` as
5+
a second proxy for the connection management between end-user and remote desktop server.
6+
Furthermore, `guacd` manages connection in different processes, which can limits the maximum
7+
connection of Guacamole application.
8+
9+
```
10+
|-- Browser --|-------- Guacamole Server -----------|--- Intranet ---|
11+
12+
UserA --------+ +---- RDP server
13+
+------ Guacamole Servlet |
14+
UserB --------+ | +---- VNC server
15+
+------- guacd -------+
16+
+---- Others
17+
```
18+
19+
_Figure 1: Guacamole Architecture_
20+
21+
Occamy solves these issues, and it uses JWT for authentication as default option, manages
22+
all connection in multiple thread rather than multiple processes, as shown in Figure 2.
23+
24+
```
25+
|-- Browser --|---- Occamy Server -----|--- Intranet ---|
26+
27+
28+
UserA --------+ +---- RDP server
29+
+------ Occamy ----------+
30+
UserB --------+ +---- VNC server
31+
|
32+
+---- Others
33+
```
34+
35+
_Figure 2: Occamy Architecture_
36+
37+
## License
38+
39+
[Occamy](https://github.com/changkun/occamy) | [MIT](./LICENSE) © 2019 [Ou Changkun](https://changkun.de)

0 commit comments

Comments
 (0)