source: MondoRescue/branches/2.2.0/mondo-doc/MonitasConcepts.lyx@ 2183

Last change on this file since 2183 was 354, checked in by bcornec, 18 years ago

import website content + contrib + monitas doc

  • Property svn:executable set to *
File size: 68.7 KB
Line 
1#LyX 1.1 created this file. For more info see http://www.lyx.org/
2\lyxformat 218
3\textclass article
4\begin_preamble
5\@addtoreset{table}{section}
6\renewcommand{\thetable}{\thesection.\arabic{table}}
7
8\@addtoreset{figure}{section}
9\renewcommand{\thefigure}{\thesection.\arabic{figure}}
10\end_preamble
11\language english
12\inputencoding auto
13\fontscheme default
14\graphics default
15\float_placement !htbp
16\paperfontsize 10
17\spacing single
18\papersize a4paper
19\paperpackage a4
20\use_geometry 0
21\use_amsmath 0
22\paperorientation portrait
23\secnumdepth 3
24\tocdepth 3
25\paragraph_separation skip
26\defskip medskip
27\quotes_language english
28\quotes_times 2
29\papercolumns 1
30\papersides 1
31\paperpagestyle default
32
33\layout Title
34
35Concept paper for Monitas
36\layout Author
37
38from Stefan Hübner
39\newline
40and the Monitas Team
41\begin_float footnote
42\layout Standard
43
44Editor of this document is Stefan Hübner <shuebner.mondo@gmx.de>.
45 Please send comments, extensions and proposals to him.
46
47\end_float
48\layout Date
49
50$Revision: 1.3 $,
51\begin_inset External Date,"","-I"
52
53\end_inset
54
55
56\layout Abstract
57
58This is a proposal how to design Monitas before actually start the coding.
59 Collecting the ideas here will enforce to think about the structure before
60 it is realized in code that cannot be modified later.
61 With a little bit of luck this allows us to enhance Monitas' functionality
62 quite easy in the future.
63 And maybe we get a good user manual as side effect for free.
64
65\layout Abstract
66
67Revision 1.x of this
68\emph on
69concept
70\emph default
71 paper is not describing the final version of the
72\emph on
73software
74\emph default
75 that will be realized.
76 It is loosely based on the existing alpha version\SpecialChar ~
770.1 of Monitas and shall
78 be a step by step approach towards Monitas version\SpecialChar ~
790.99.
80 If improvements to Monitas v0.x and this document will be in sync, we will
81 have a good documentation of the internal system structure for Monitas\SpecialChar ~
82v1.0
83 (and then this will be called Revision 2.0 of this document).
84 So in general the major revision number of the concept paper is 1 higher
85 than of the software, the minor revision numbers are both increasing but
86 there is no connection between the values.
87\layout Standard
88
89
90\begin_inset LatexCommand \tableofcontents{}
91
92\end_inset
93
94
95\layout Section
96
97Basics
98\layout Standard
99
100Monitas is an extension to mondo/mindi to deal with remote backups between
101 TCP/IP connected PCs.
102 Monitas consists of two logical parts: a
103\emph on
104"client"
105\emph default
106 that resides on the PC where the files (to backup/restore) are and a
107\emph on
108"server"
109\emph default
110 on another (or the same) PC where the backup is stored.
111\layout Standard
112
113The backup may be written to/read from a CD, to a file on a hard-disk (or
114 later to a revision controlled database).
115\layout Standard
116
117Both together, server and client, will handle the backup and restore process
118 in the background.
119 Each is controlled via a pipe to send commands and to get status information
120 back (error messages, progress information).
121 Though it is possible to trigger the backup/restore process with these
122 interfaces, they are mainly designed for graphical (or text based) front-ends
123 which can dock there to control the process and interact with the user.
124 These front-ends aren't described here, but the syntax and semantics of
125 the interfaces.
126\layout Standard
127
128We use a 1:
129\emph on
130n
131\emph default
132 relation between the server and several clients on different PCs.
133 That means there exists only one central server that serves all the clients
134 out there.
135\layout Standard
136
137Even if this document distinguishes between
138\emph on
139server
140\emph default
141 and
142\emph on
143client
144\emph default
145 and the different roles they play for the backup process, it is possible
146 that both parts use the same executable as both parts have much code in
147 common.
148 Like
149\emph on
150gzip
151\emph default
152, which is compressing when executed as
153\family typewriter
154gzip
155\family default
156 and decompressing when executed as
157\family typewriter
158gunzip
159\family default
160, Monitas will run as server when executed as
161\family typewriter
162monitas_server
163\family default
164 and will run as client when started as
165\family typewriter
166monitas_client
167\family default
168.
169\layout Section
170
171Requirements for Monitas
172\begin_inset LatexCommand \label{sec:Requirements}
173
174\end_inset
175
176
177\layout Standard
178
179This chapter contains the basic requirements for the client and the server
180 part of Monitas.
181
182\layout Subsection
183
184Start a backup from client
185\layout Standard
186
187Necessary input:
188\layout Enumerate
189
190files to backup
191\layout Enumerate
192
193type of the backup (CD, ISO-file, ...)
194\layout Enumerate
195
196name of the backup (if not CD)
197\layout Enumerate
198
199compression (method, client or server-side)
200\layout Subsection
201
202Start a backup from the server
203\layout Standard
204
205Necessary input:
206\layout Enumerate
207
208client to address (IP address or name)
209\layout Enumerate
210
211files to backup
212\layout Enumerate
213
214type of the backup (CD, ISO-file, ...)
215\layout Enumerate
216
217name of the backup (if not CD)
218\layout Enumerate
219
220compression (method, client or server-side)
221\layout Subsection
222
223Restore a backup from client
224\layout Standard
225
226Necessary input:
227\layout Enumerate
228
229files to restore
230\layout Enumerate
231
232name/location of the backup (CD, ISO-file, ...)
233\layout Subsection
234
235Restore a backup from the server
236\layout Standard
237
238Necessary input:
239\layout Enumerate
240
241client to address (IP address or name)
242\layout Enumerate
243
244files to restore
245\layout Enumerate
246
247name/location of the backup (CD, ISO-file, ...)
248\layout Subsection
249
250Compare backup from client
251\layout Standard
252
253There are 2 reasons for a compares
254\layout Standard
255
256\SpecialChar ~
257\SpecialChar ~
258a) to guarantee the correct backup (
259\begin_inset Quotes eld
260\end_inset
261
262
263\emph on
264verify
265\emph default
266
267\begin_inset Quotes erd
268\end_inset
269
270)
271\layout Standard
272
273\SpecialChar ~
274\SpecialChar ~
275b) to find modifications of files since the last backup (
276\begin_inset Quotes eld
277\end_inset
278
279
280\emph on
281compare
282\emph default
283
284\begin_inset Quotes erd
285\end_inset
286
287)
288\layout Standard
289
290In case a) we must do a bit-compare between original files and their (decompress
291ed) backup, in case b) it's sufficient to generate hash values of every
292 original file and its backuped counterpart and compare the hashes (less
293 network traffic).
294\layout Standard
295
296To distinguish the different intentions, we call the comparison a)
297\emph on
298Verify
299\emph default
300 as it's normally started directly after a backup, and call the case b)
301
302\emph on
303Compare
304\emph default
305 as it is triggered to recognize modifications (perhaps to generate an increment
306al backup).
307\layout Standard
308
309Necessary input:
310\layout Enumerate
311
312name of the backup
313\layout Enumerate
314
315mode of compare [a) or b)]
316\layout Enumerate
317
318files to compare [mode b) only; mode a) will always compare all files in
319 the backup]
320\layout Subsection
321
322Compare from the server
323\layout Standard
324
325Necessary input:
326\layout Enumerate
327
328client to address (IP address or name)
329\layout Enumerate
330
331name of the backup
332\layout Enumerate
333
334mode of compare [a) or b), the modes were described in previous sub-chapter]
335\layout Enumerate
336
337files to compare [mode b) only; mode a) always compares all files in the
338 backup]
339\layout Section
340
341System structure
342\begin_inset LatexCommand \label{sec:SystemStructure}
343
344\end_inset
345
346
347\layout Standard
348
349Figure\SpecialChar ~
350
351\begin_inset LatexCommand \ref{fig:SystemStructure}
352
353\end_inset
354
355 gives an overview about the general structure of Monitas.
356 Monitas' functionality is mainly split into 2 independent parts: a
357\emph on
358client
359\emph default
360component on the PC where files are backuped or restored, and a
361\emph on
362server
363\emph default
364 component to write the backup on an external medium or read previous backups
365 from an external medium.
366
367\layout Standard
368
369Both parts base on mondo/mindi for accessing files, doing (de)compression,
370 creating ISO-files, writing them to CD/DVD, \SpecialChar \ldots{}
371
372\layout Standard
373
374\begin_float fig
375\layout Standard
376\align center
377
378\begin_inset Figure size 238 173
379file diagrams/systemoverview.eps
380width 4 80
381flags 10
382
383\end_inset
384
385
386\layout Caption
387
388
389\begin_inset LatexCommand \label{fig:SystemStructure}
390
391\end_inset
392
393System structure
394\end_float
395\layout Standard
396\added_space_top 0.3cm
397At startup, a client connects to the server process to establish the connection:
398 The client uses a predefined (
399\begin_inset Quotes eld
400\end_inset
401
402well known
403\begin_inset Quotes erd
404\end_inset
405
406) port where the server is listening.
407 When receiving a message at this port the server duplicates itself by using
408 the system call
409\family typewriter
410fork()
411\family default
412 or
413\family typewriter
414clone()
415\family default
416.
417 The child process will serve the connecting client on a new allocated port
418 and the parent process will continue waiting for further clients.
419\layout Standard
420
421By that mechanism we need only one predefined port number and only on the
422 server PC.
423 Details in the next chapter.
424\layout Section
425
426Message Flows
427\layout Standard
428
429This chapter describes the information flow between Monitas' structural
430 parts.
431 The flows are designed to fulfill the requirements of chapter\SpecialChar ~
432
433\begin_inset LatexCommand \ref{sec:Requirements}
434
435\end_inset
436
437.
438\layout Subsection
439
440Flows between Server and Client (
441\emph on
442IFcs
443\emph default
444 and
445\emph on
446IFsc
447\emph default
448)
449\layout Subsubsection
450
451Connection Establishment
452\layout Standard
453
454Before any backup/restore can start,
455\emph on
456client
457\emph default
458 and
459\emph on
460server
461\emph default
462 must introduce each other.
463 This message flow between (each) client process and the server (parent)
464 process only takes place when a client process is started.
465 The client calls the server to tell him "Here am I" whereupon the server
466 is doubling itself via the
467\family typewriter
468fork()
469\family default
470 system call.
471 The new created child of the server process will serve the new connected
472 client from now on, while the parent process of the server continues waiting
473 for other clients to connect.
474 The connecting procedure is shown in Figure\SpecialChar ~
475
476\begin_inset LatexCommand \ref{fig:ClientConnect}
477
478\end_inset
479
480.
481\layout Standard
482
483\begin_float fig
484\layout Standard
485\align center
486
487\begin_inset Figure size 238 260
488file diagrams/connect_client.eps
489width 4 80
490flags 10
491
492\end_inset
493
494
495\layout Caption
496
497
498\begin_inset LatexCommand \label{fig:ClientConnect}
499
500\end_inset
501
502A client connects to the server process
503\end_float
504\layout Subsubsection
505
506Backup and Restore Process
507\layout Standard
508
509The backup and restore procedures are handled between the client and its
510 corresponding child of the server process.
511 Both, backup and restore may be triggered from server or from client side.
512 The message flow between server and client for the backup process is shown
513 in Figure\SpecialChar ~
514
515\begin_inset LatexCommand \ref{fig:BackupClientServer}
516
517\end_inset
518
519.
520\layout Standard
521
522\begin_float fig
523\layout Standard
524\align center
525
526\begin_inset Figure size 238 329
527file diagrams/backup_client_server.eps
528width 4 80
529flags 10
530
531\end_inset
532
533
534\layout Caption
535
536
537\begin_inset LatexCommand \label{fig:BackupClientServer}
538
539\end_inset
540
541Message flow for Backup
542\end_float
543\layout Standard
544
545The restore procedure shown in Figure\SpecialChar ~
546
547\begin_inset LatexCommand \ref{fig:RestoreClientServer}
548
549\end_inset
550
551 is very similar.
552 It may be triggered either from server or from client side, too.
553\layout Standard
554
555\begin_float fig
556\layout Standard
557\align center
558
559\begin_inset Figure size 238 355
560file diagrams/restore_client_server.eps
561width 4 80
562flags 10
563
564\end_inset
565
566
567\layout Caption
568
569
570\begin_inset LatexCommand \label{fig:RestoreClientServer}
571
572\end_inset
573
574Message flow for Restore
575\end_float
576\layout Subsubsection
577
578Connection Termination
579\layout Standard
580
581When a client has done its job or some errors occurred (or maybe the server
582 wants to stop running or \SpecialChar \ldots{}
583) the connection can be shutdown in the way that
584 Figure\SpecialChar ~
585
586\begin_inset LatexCommand \ref{fig:DisconnectServerClient}
587
588\end_inset
589
590 shows.
591\layout Standard
592
593\begin_float fig
594\layout Standard
595\align center
596
597\begin_inset Figure size 238 362
598file diagrams/disconnect_client_server.eps
599width 4 80
600flags 10
601
602\end_inset
603
604
605\layout Caption
606
607
608\begin_inset LatexCommand \label{fig:DisconnectServerClient}
609
610\end_inset
611
612Terminating the connection between server and client
613\end_float
614\layout Subsubsection
615
616List backups
617\layout Standard
618
619Before restoring files, a client can inquire the server which backups are
620 available.
621 Since there are several locations where the server may store a backup (on
622 CD, in local file(s), (in the future: in a database,) \SpecialChar \ldots{}
623) the client can
624 use the message flow defined in Figure\SpecialChar ~
625
626\begin_inset LatexCommand \ref{fig:ListBackupsClientServer}
627
628\end_inset
629
630 to get a list of all (for this client) accessible backups.
631\layout Standard
632
633\begin_float fig
634\layout Standard
635\align center
636
637\begin_inset Figure size 238 135
638file diagrams/list_backups_client_server.eps
639width 4 80
640flags 10
641
642\end_inset
643
644
645\layout Caption
646
647
648\begin_inset LatexCommand \label{fig:ListBackupsClientServer}
649
650\end_inset
651
652Get list of accessible backups from server
653\end_float
654\layout Subsubsection
655
656List content of a backup
657\layout Standard
658
659When doing a
660\emph on
661nuke restore
662\emph default
663 it's sufficient to address a total backup.
664 But in all other cases you want to know which files are in the backup,
665 what their sizes, modification dates are and what other info is available.
666 To inquire the content of a specific backup file, the client uses the flows
667 in Figure\SpecialChar ~
668
669\begin_inset LatexCommand \ref{fig:ListBackupcontentClientServer}
670
671\end_inset
672
673.
674\layout Standard
675
676\begin_float fig
677\layout Standard
678\align center
679
680\begin_inset Figure size 238 135
681file diagrams/list_backupcontent_client_server.eps
682width 4 80
683flags 10
684
685\end_inset
686
687
688\layout Caption
689
690
691\begin_inset LatexCommand \label{fig:ListBackupcontentClientServer}
692
693\end_inset
694
695Get content of a specific backup from server
696\end_float
697\layout Subsection
698
699Message Flows between Client and (Graphical)User-Interface (
700\emph on
701IFcg
702\emph default
703)
704\begin_inset LatexCommand \label{sec:GuiClient}
705
706\end_inset
707
708
709\layout Standard
710
711To interact with the client process running silently in the background,
712 the client sets up a named pipe when it starts.
713 A Graphical User Interface (GUI) can dock to that pipe and control the
714 client.
715\layout Standard
716
717The messages sent through the pipe are text based commands, so the most
718 primitive user interface will be a console with I/O redirect to the pipe.
719\layout Standard
720
721The predefined commands are shown in Chapter\SpecialChar ~
722
723\begin_inset LatexCommand \ref{sec:GuiCommands}
724
725\end_inset
726
727.
728\layout Subsubsection
729
730(Re-)Connect to a server
731\begin_inset LatexCommand \label{sec:GuiClientConnect}
732
733\end_inset
734
735
736\layout Standard
737
738Figure\SpecialChar ~
739
740\begin_inset LatexCommand \ref{fig:GuiClientConnect}
741
742\end_inset
743
744 shows how the connection between a client and the server is established
745 from the Client GUI.
746 If there exists a previous connection, that connection is closed before
747 building up the new one, as every client can be connected to
748\emph on
749one
750\emph default
751 server only at the same time.
752\layout Standard
753
754\begin_float fig
755\layout Standard
756\align center
757
758\begin_inset Figure size 238 152
759file diagrams/connect_GUI_client.eps
760width 4 80
761flags 10
762
763\end_inset
764
765
766\layout Caption
767
768
769\begin_inset LatexCommand \label{fig:GuiClientConnect}
770
771\end_inset
772
773Enable Connection from Client GUI
774\end_float
775\layout Subsubsection
776
777Start a Backup
778\layout Standard
779
780When starting a backup, the client needs to know which files to backup and
781 some information about the backup itself: what type of backup (boot-able
782 CD-ROM, ISO-File,\SpecialChar \ldots{}
783), the name/location (/dev/cdwriter, /usr/bkup/file.tgz,\SpecialChar \ldots{}
784)
785 and the mode of the backup (compress_clientside=gzip,\SpecialChar \ldots{}
786).
787 The message flow is in Figure\SpecialChar ~
788
789\begin_inset LatexCommand \ref{fig:GuiClientBackup}
790
791\end_inset
792
793.
794\layout Standard
795
796\begin_float fig
797\layout Standard
798\align center
799
800\begin_inset Figure size 238 200
801file diagrams/backup_GUI_client.eps
802width 4 80
803flags 10
804
805\end_inset
806
807
808\layout Caption
809
810
811\begin_inset LatexCommand \label{fig:GuiClientBackup}
812
813\end_inset
814
815Start Backup from Client GUI
816\end_float
817\layout Subsubsection
818
819Start a Restore
820\layout Standard
821
822If a client knows (by other procedures, see chapter\SpecialChar ~
823
824\begin_inset LatexCommand \ref{sec:GuiClientListBackups}
825
826\end_inset
827
828 and
829\begin_inset LatexCommand \ref{sec:GuiClientListBackupContent}
830
831\end_inset
832
833) that a certain backup exists on the server (and the client may access
834 it), it can start restoring specified files like shown in Figure\SpecialChar ~
835
836\begin_inset LatexCommand \ref{fig:GuiClientRestore}
837
838\end_inset
839
840.
841 The files can be addressed by their exact path/name (as stored in the backup)
842 or as wildcards (path/* or path/name* -- may be extended in the future).
843\layout Standard
844
845\begin_float fig
846\layout Standard
847\align center
848
849\begin_inset Figure size 238 239
850file diagrams/restore_GUI_client.eps
851width 4 80
852flags 10
853
854\end_inset
855
856
857\layout Caption
858
859
860\begin_inset LatexCommand \label{fig:GuiClientRestore}
861
862\end_inset
863
864Start Restore from Client GUI
865\end_float
866\layout Subsubsection
867
868Get list of previous, accessible Backups
869\begin_inset LatexCommand \label{sec:GuiClientListBackups}
870
871\end_inset
872
873
874\layout Standard
875
876To get a list of available backups the client must ask the server which
877 are available (maybe specific to the requesting client/user).
878 The message flow is in Figure\SpecialChar ~
879
880\begin_inset LatexCommand \ref{fig:GuiClientListBackups}
881
882\end_inset
883
884.
885\layout Standard
886
887\begin_float fig
888\layout Standard
889\align center
890
891\begin_inset Figure size 238 104
892file diagrams/list_backups_GUI_client.eps
893width 4 80
894flags 10
895
896\end_inset
897
898
899\layout Caption
900
901
902\begin_inset LatexCommand \label{fig:GuiClientListBackups}
903
904\end_inset
905
906Ask Server for available backups
907\end_float
908\layout Subsubsection
909
910Get content (files) of a specified Backup
911\begin_inset LatexCommand \label{sec:GuiClientListBackupContent}
912
913\end_inset
914
915
916\layout Standard
917
918The client knows (maybe via the flow in Chapter\SpecialChar ~
919
920\begin_inset LatexCommand \ref{sec:GuiClientListBackups}
921
922\end_inset
923
924) which backup(s) are available at the server.
925 To view the content (the file names, -sizes,\SpecialChar \ldots{}
926) of a specific backup the
927 client can ask the server to deliver this information.
928 The message flow is shown in Figure\SpecialChar ~
929
930\begin_inset LatexCommand \ref{fig:GuiClientListBackupContent}
931
932\end_inset
933
934.
935\layout Standard
936
937\begin_float fig
938\layout Standard
939\align center
940
941\begin_inset Figure size 238 104
942file diagrams/list_backupcontent_GUI_client.eps
943width 4 80
944flags 10
945
946\end_inset
947
948
949\layout Caption
950
951
952\begin_inset LatexCommand \label{fig:GuiClientListBackupContent}
953
954\end_inset
955
956Ask Server for the content of a backup
957\end_float
958\layout Subsubsection
959
960Start a Verify
961\layout Standard
962
963<to be defined>
964\layout Subsubsection
965
966Start a Compare
967\layout Standard
968
969<to be defined>
970\layout Subsubsection
971
972Terminate Client
973\layout Standard
974
975It doesn't make sense to close the client-server connection without terminating
976 the client.
977 Either the client must be connected to another server (procedure see chapter\SpecialChar ~
978
979\begin_inset LatexCommand \ref{sec:GuiClientConnect}
980
981\end_inset
982
983) if it shall do other backups/restores or the client just keeps connected
984 to the same server (so no changes are necessary :-).
985 Nevertheless if the client has done its job, it must be shutdown but that
986 concerns both, the connection and the client .
987 This procedure is shown in Figure\SpecialChar ~
988
989\begin_inset LatexCommand \ref{fig:GuiClientTerminate}
990
991\end_inset
992
993.
994\layout Standard
995
996Of course you can simply close the GUI of the client.
997 But this won't have any influence to the running client\SpecialChar \ldots{}
998
999\layout Standard
1000
1001\begin_float fig
1002\layout Standard
1003\align center
1004
1005\begin_inset Figure size 238 141
1006file diagrams/terminate_GUI_client.eps
1007width 4 80
1008flags 10
1009
1010\end_inset
1011
1012
1013\layout Caption
1014
1015
1016\begin_inset LatexCommand \label{fig:GuiClientTerminate}
1017
1018\end_inset
1019
1020Terminate the client
1021\end_float
1022\layout Subsection
1023
1024Message Flows between Server and (Graphical)User-Interface (
1025\emph on
1026IFsg
1027\emph default
1028)
1029\layout Standard
1030
1031<to be defined> Ideas:
1032\layout Description
1033
1034N.N.
1035 All backup/verify/compare/restore procedures that can be triggered from
1036 client side, too.
1037\layout Description
1038
1039Status Show all current connections and its current status (activity).
1040\layout Description
1041
1042Monitor Request server to generate (continuous) progress messages to a specified
1043 connection.
1044\layout Description
1045
1046Info Server notifies the user about internal processes.
1047\layout Description
1048
1049Verbose Modify the level of server's verbosity.
1050\layout Subsection
1051
1052Message Flows between Server and its Child (
1053\emph on
1054IFss
1055\emph default
1056 and
1057\emph on
1058IFsm
1059\emph default
1060)
1061\layout Standard
1062
1063<to be defined> Ideas:
1064\layout Description
1065
1066GetClientInfo Server asks server child for info about the connection to
1067 a client (IP:port, current activity).
1068\layout Description
1069
1070TerminateConnection Server asks server child to terminate the connection.
1071\layout Description
1072
1073TerminateNotification Server child notifies the parent server that it will
1074 terminate now.
1075\layout Description
1076
1077N.N.
1078 All backup/verify/compare/restore procedures that are requested to the
1079 server, but must be executed from a server's child.
1080\layout Section
1081
1082Interfaces
1083\layout Standard
1084
1085Figure\SpecialChar ~
1086
1087\begin_inset LatexCommand \ref{fig:SystemStructure}
1088
1089\end_inset
1090
1091 in Section\SpecialChar ~
1092
1093\begin_inset LatexCommand \ref{sec:SystemStructure}
1094
1095\end_inset
1096
1097 (System Structure) names the defined interfaces in respect of their location.
1098 E.g.
1099 the interface between the server and the client is called
1100\emph on
1101IFcs
1102\emph default
1103 if you see it as part of the client, and it's called
1104\emph on
1105IFsc
1106\emph default
1107 if it is described as part of the server.
1108 This naming is continued in the software, but of course the 2 parts must
1109 fit together to transmit the information.
1110\layout Standard
1111
1112To describe this common part (e.g.
1113 the format of the data structures) we introduce a second naming scheme
1114 here that denominates the matter inbetween.
1115 These names are used in the sources, too.
1116 So pay attention to understand the difference: The common parts of the
1117 interfaces are named
1118\emph on
1119Ixx
1120\emph default
1121, their realization at the two ends are named
1122\emph on
1123IFxy
1124\emph default
1125.
1126
1127\layout Standard
1128
1129\begin_float tab
1130\layout Standard
1131
1132
1133\begin_inset Tabular
1134<lyxtabular version="2" rows="6" columns="2">
1135<features rotate="false" islongtable="false" endhead="0" endfirsthead="0" endfoot="0" endlastfoot="0">
1136<column alignment="left" valignment="top" leftline="true" rightline="false" width="" special="p{0.35\textwidth}">
1137<column alignment="left" valignment="top" leftline="true" rightline="true" width="" special="p{0.65\textwidth}">
1138<row topline="true" bottomline="true" newpage="false">
1139<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1140\begin_inset Text
1141
1142\layout Standard
1143
1144
1145\series bold
1146Interface
1147\end_inset
1148</cell>
1149<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="true" rotate="false" usebox="none" width="" special="">
1150\begin_inset Text
1151
1152\layout Standard
1153
1154
1155\series bold
1156is connecting
1157\end_inset
1158</cell>
1159</row>
1160<row topline="true" bottomline="false" newpage="false">
1161<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1162\begin_inset Text
1163
1164\layout Standard
1165
1166
1167\emph on
1168Im
1169\emph default
1170 ("Mondo")
1171\end_inset
1172</cell>
1173<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="true" rotate="false" usebox="none" width="" special="">
1174\begin_inset Text
1175
1176\layout Standard
1177
1178server/client internally with mondo
1179\end_inset
1180</cell>
1181</row>
1182<row topline="true" bottomline="false" newpage="false">
1183<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1184\begin_inset Text
1185
1186\layout Standard
1187
1188
1189\emph on
1190In
1191\emph default
1192 ("Network")
1193\end_inset
1194</cell>
1195<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="true" rotate="false" usebox="none" width="" special="">
1196\begin_inset Text
1197
1198\layout Standard
1199
1200client and server,
1201\emph on
1202IFcs <-->
1203\emph default
1204
1205\emph on
1206IFsc
1207\end_inset
1208</cell>
1209</row>
1210<row topline="true" bottomline="false" newpage="false">
1211<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1212\begin_inset Text
1213
1214\layout Standard
1215
1216
1217\emph on
1218Ipc
1219\emph default
1220 ("Pipe in Client")
1221\end_inset
1222</cell>
1223<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="true" rotate="false" usebox="none" width="" special="">
1224\begin_inset Text
1225
1226\layout Standard
1227
1228client to GUI,
1229\emph on
1230IFcg <-->
1231\emph default
1232 external
1233\end_inset
1234</cell>
1235</row>
1236<row topline="true" bottomline="false" newpage="false">
1237<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1238\begin_inset Text
1239
1240\layout Standard
1241
1242
1243\emph on
1244Ips
1245\emph default
1246 ("Pipe in Server")
1247\end_inset
1248</cell>
1249<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="true" rotate="false" usebox="none" width="" special="">
1250\begin_inset Text
1251
1252\layout Standard
1253
1254server to GUI,
1255\emph on
1256IFsg
1257\emph default
1258 <--> external
1259\end_inset
1260</cell>
1261</row>
1262<row topline="true" bottomline="true" newpage="false">
1263<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1264\begin_inset Text
1265
1266\layout Standard
1267
1268
1269\emph on
1270Is
1271\emph default
1272 ("Server interprocess")
1273\end_inset
1274</cell>
1275<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="true" rotate="false" usebox="none" width="" special="">
1276\begin_inset Text
1277
1278\layout Standard
1279
1280Server's parent instance with the child instances,
1281\emph on
1282IFss
1283\emph default
1284 <-->
1285\emph on
1286 IFsm
1287\end_inset
1288</cell>
1289</row>
1290</lyxtabular>
1291
1292\end_inset
1293
1294
1295\layout Caption
1296
1297
1298\begin_inset LatexCommand \label{tab:Interfaces}
1299
1300\end_inset
1301
1302Interfaces
1303\end_float
1304\layout Subsection
1305
1306Interface
1307\emph on
1308Im
1309\emph default
1310 to Mondo
1311\layout Standard
1312
1313<to be defined>
1314\layout Subsubsection
1315
1316
1317\emph on
1318Im
1319\emph default
1320 in Server
1321\layout Subsubsection
1322
1323
1324\emph on
1325Im
1326\emph default
1327 in Client
1328\layout Subsection
1329
1330Interface
1331\emph on
1332In
1333\emph default
1334 between Client and Server
1335\layout Standard
1336
1337<to be defined>
1338\layout Subsection
1339
1340Interface
1341\emph on
1342Ipc
1343\emph default
1344, Client's pipe to the GUI
1345\layout Standard
1346
1347<to be defined>
1348\layout Subsection
1349
1350Interface
1351\emph on
1352Ips
1353\emph default
1354, Server's pipe to the GUI
1355\layout Standard
1356
1357<to be defined>
1358\layout Subsection
1359
1360Interface
1361\emph on
1362Is
1363\emph default
1364, IPC of server instances
1365\layout Standard
1366
1367<to be defined>
1368\layout Section
1369
1370Commands at the GUI interfaces
1371\begin_inset LatexCommand \label{sec:GuiCommands}
1372
1373\end_inset
1374
1375
1376\layout Standard
1377
1378To interact from a Graphical User Interface (GUI) to the server or client
1379 process running locally, silently in the background, every client and the
1380 server (parent process) sets up a named pipe when it starts.
1381 A Graphical User Interface (GUI) can dock to that pipe and control the
1382 client/server.
1383
1384\layout Standard
1385
1386If not otherwise specified, the server's pipe is
1387\family typewriter
1388/var/run/monitas/server
1389\family default
1390 and a client's pipe is
1391\family typewriter
1392/var/run/monitas/client_
1393\emph on
1394nnn
1395\family default
1396\emph default
1397 with
1398\family typewriter
1399\emph on
1400nnn
1401\family default
1402\emph default
1403 depends upon the current connection.
1404\layout Standard
1405
1406(For IPv4 we could use the server's IP:port, e.g.
1407
1408\family typewriter
1409client_192168001001-22345
1410\family default
1411 i.e.
1412 12-digits IP address, dash, 5-digits port of the server's child for that
1413 connection).
1414
1415\layout Standard
1416
1417This allows us to run more than one client on a PC (maybe more than 1 user
1418 is logged in) that can be connected to the same server (IP address) with
1419 different ports (server's child's port number) or to different servers
1420 (different IP addresses).
1421 Only one server per PC is allowed, but it can handle several connections
1422 in parallel (by several child processes).
1423 In most cases, the backup medium is a very limiting resource (only 1, 2\SpecialChar \ldots{}
1424
1425 CD-Writer, Tape-Streamer, Database, \SpecialChar \ldots{}
1426) that can be managed much easier by
1427 one central instance.
1428 Otherwise we had to expand the resource management (that is already necessary
1429 between parent server and child processes) with more danger to run into
1430 dead-locks, race-conditions and other difficult-to-debug stuff.
1431
1432\layout Standard
1433
1434If not denoted otherwise, the description in this chapter is valid for the
1435 messages at the client GUI
1436\emph on
1437and
1438\emph default
1439 the messages at the server GUI.
1440
1441\layout Subsection
1442
1443Message Structure
1444\layout Standard
1445
1446The messages sent through the pipe are text based commands, so the most
1447 primitive user interface will be a console with I/O redirect to the pipe.
1448\layout Standard
1449
1450The used semantic is:
1451\layout Standard
1452
1453
1454\family typewriter
1455COMMAND [ARG [\SpecialChar \ldots{}
1456]]
1457\backslash
1458n
1459\layout Standard
1460
1461where
1462\layout Itemize
1463
1464COMMAND is a predefined (case insensitive) command, valid chars: [a-zA-Z]
1465\layout Itemize
1466
1467ARG is zero or more arguments for COMMAND, each COMMAND has a predefined
1468 number of mandatory arguments (some command additional might have optional
1469 arguments)
1470\layout Itemize
1471
1472COMMAND and ARG is separated by one space (\SpecialChar ~
1473)
1474\layout Itemize
1475
1476ARGs are separated by one space (\SpecialChar ~
1477)
1478\layout Itemize
1479
1480ARGs contain of at least one printable character and/or whitespace ([
1481\backslash
1482t
1483\backslash
1484n])
1485\layout Itemize
1486
1487an ARG that contains spaces must be surrounded by '\SpecialChar \ldots{}
1488' or
1489\begin_inset Quotes eld
1490\end_inset
1491
1492\SpecialChar \ldots{}
1493
1494\begin_inset Quotes erd
1495\end_inset
1496
1497
1498\layout Itemize
1499
1500inside '\SpecialChar \ldots{}
1501' following characters must be escaped by a backslash (
1502\backslash
1503) for their literal meaning:
1504\begin_deeper
1505\layout List
1506\labelwidthstring 00.00.0000
1507
1508
1509\backslash
1510' for literal single quote (')
1511\layout List
1512\labelwidthstring 00.00.0000
1513
1514
1515\backslash
1516
1517\backslash
1518 for the backslash (
1519\backslash
1520) itself
1521\layout Standard
1522
1523to use <c:
1524\backslash
1525stefan's
1526\begin_inset Quotes eld
1527\end_inset
1528
1529quote
1530\begin_inset Quotes erd
1531\end_inset
1532
1533> as one argument use
1534\family typewriter
1535'c:
1536\backslash
1537
1538\backslash
1539stefan
1540\backslash
1541's\SpecialChar ~
1542
1543\begin_inset Quotes eld
1544\end_inset
1545
1546quote
1547\begin_inset Quotes erd
1548\end_inset
1549
1550'
1551\end_deeper
1552\layout Itemize
1553
1554inside
1555\begin_inset Quotes eld
1556\end_inset
1557
1558\SpecialChar \ldots{}
1559
1560\begin_inset Quotes erd
1561\end_inset
1562
1563 you must not use the double quote character (
1564\begin_inset Quotes eld
1565\end_inset
1566
1567)!
1568\newline
1569There is no escape sequence defined for a literal meaning! Surprised? But
1570 this kind of definition allows us to use the ARG <c:
1571\backslash
1572hugo\SpecialChar ~
1573rabson's\SpecialChar ~
1574dir
1575\backslash
1576file.c> without further modification by simply surrounding it with double
1577 quotes:
1578\family typewriter
1579
1580\begin_inset Quotes eld
1581\end_inset
1582
1583c:
1584\backslash
1585hugo\SpecialChar ~
1586rabson's\SpecialChar ~
1587dir
1588\backslash
1589file.c
1590\begin_inset Quotes erd
1591\end_inset
1592
1593
1594\layout Itemize
1595
1596if the ARG itself shall begin with a double quote (
1597\begin_inset Quotes eld
1598\end_inset
1599
1600) or single quote (') then quote the whole argument with '\SpecialChar \ldots{}
1601' (and escape
1602 the ' at the beginning).
1603\layout Itemize
1604
1605if the ARG doesn't contain spaces but contains any quote character(s), you
1606 needn't do anything
1607\layout Itemize
1608
1609COMMAND line is terminated by a newline character('
1610\backslash
1611n'), an optional ASCII-Null ('
1612\backslash
16130') can follow
1614\layout Standard
1615
1616Possible, future extension:
1617\layout Itemize
1618
1619Using '
1620\backslash
16210' instead of '\SpecialChar ~
1622' to separate ARGs (and COMMAND) will dispense with the nasty
1623 space quoting.
1624 The end of the command line is then marked by two '
1625\backslash
16260' instead of '
1627\backslash
1628n'.
1629 To distinguish between old and new syntax, the client can look at the first
1630 character behind the COMMAND: if it's a '
1631\backslash
16320' the GUI uses the new syntax and all responses to the COMMAND use the
1633 new syntax, too.
1634 If the character is a space '\SpecialChar ~
1635' or newline '
1636\backslash
1637n' we answer in old (above described) syntax and must pay attention to the
1638 quoting
1639\layout Subsection
1640
1641Implementation Detail
1642\layout Standard
1643
1644There is much work that is common to all the pipe interfaces that use text
1645 based messages: extract the command, calculate the number of mandatory
1646 parameters, split the arguments, parse for escape sequences, check if an
1647 arguments fits the requested type (e.g.
1648 filename, IP address, port number,\SpecialChar \ldots{}
1649 ), translate the textual argument into
1650 its machine readable format, \SpecialChar \ldots{}
1651 And equivalent steps are necessary when we
1652 want to create and send a message.
1653 And different commands use the same argument types that always must be
1654 parsed and checked in the same way.
1655\layout Standard
1656
1657At the moment the extent of the complete command set cannot be given, so
1658 it would be the best to keep yet unknown extensions in mind and implement
1659 the pipe interface as a generic one:
1660\layout Itemize
1661
1662use tables for valid commands (different tables for server- and client-pipes
1663 [or flags in a common table to ease common syntax for equivalent server/client
1664 commands?])
1665\layout Itemize
1666
1667each
1668\begin_inset Quotes eld
1669\end_inset
1670
1671command
1672\begin_inset Quotes erd
1673\end_inset
1674
1675 entry contains the number of mandatory and optional arguments
1676\layout Itemize
1677
1678each argument refers to a predefined type (not only
1679\emph on
1680int
1681\emph default
1682,
1683\emph on
1684string
1685\emph default
1686 but of finer granularity like
1687\emph on
1688filename
1689\emph default
1690,
1691\emph on
1692dirname
1693\emph default
1694,
1695\emph on
1696devicename
1697\emph default
1698,
1699\emph on
1700backupname
1701\emph default
1702,
1703\emph on
1704portnumber
1705\emph default
1706, \SpecialChar \ldots{}
1707) that can be generated and checked for validity by generic routines.
1708\layout Standard
1709
1710The tables can easily be extended and new commands can introduced with less
1711 effort by reusing existing subroutines for the argument handling.
1712 (B.t.w.
1713 the table contains all information that is necessary for an generic help
1714 function to each defined message.) Of course this only concerns the interface
1715 handling, not the new functionality.
1716 But why reinvent the wheel twice?
1717\layout Subsection
1718
1719Defined Commands
1720\layout Standard
1721
1722Table\SpecialChar ~
1723
1724\begin_inset LatexCommand \ref{tab:GuiCommands}
1725
1726\end_inset
1727
1728 shows the defined commands to the GUI.
1729\layout Standard
1730
1731Currently there are only the messages from Figure\SpecialChar ~
1732
1733\begin_inset LatexCommand \ref{fig:GuiClientConnect}
1734
1735\end_inset
1736
1737 and
1738\begin_inset LatexCommand \ref{fig:GuiClientBackup}
1739
1740\end_inset
1741
1742 entered in this table.
1743 But we recognize that the messages
1744\family typewriter
1745notconnected
1746\family default
1747,
1748\family typewriter
1749abort
1750\family default
1751 and
1752\family typewriter
1753backupdone
1754\family default
1755 serve the same purpose.
1756 We should think about, if we want a streamline small interface (replace
1757 the 3 messages by one) or accept the redundancy.
1758 Perhaps that depends on the connected GUI.
1759 A simple command line interface (that transfers the messages transparently
1760 to the user) benefits from the different message names, a graphical user
1761 interface on the other side must join the different messages to the same
1762
1763\begin_inset Quotes eld
1764\end_inset
1765
1766Not Done! Error
1767\begin_inset Quotes erd
1768\end_inset
1769
1770 requestor.
1771\layout Standard
1772
1773\begin_float tab
1774\layout Standard
1775
1776
1777\begin_inset Tabular
1778<lyxtabular version="2" rows="14" columns="8">
1779<features rotate="false" islongtable="false" endhead="0" endfirsthead="0" endfoot="0" endlastfoot="0">
1780<column alignment="center" valignment="top" leftline="true" rightline="false" width="" special="">
1781<column alignment="center" valignment="top" leftline="true" rightline="false" width="" special="">
1782<column alignment="center" valignment="top" leftline="true" rightline="true" width="" special="">
1783<column alignment="center" valignment="top" leftline="true" rightline="false" width="" special="">
1784<column alignment="center" valignment="top" leftline="true" rightline="false" width="" special="">
1785<column alignment="center" valignment="top" leftline="true" rightline="false" width="" special="">
1786<column alignment="center" valignment="top" leftline="true" rightline="false" width="" special="">
1787<column alignment="center" valignment="top" leftline="true" rightline="true" width="" special="">
1788<row topline="true" bottomline="false" newpage="false">
1789<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1790\begin_inset Text
1791
1792\layout Standard
1793
1794If (from/
1795\end_inset
1796</cell>
1797<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1798\begin_inset Text
1799
1800\layout Standard
1801
1802\end_inset
1803</cell>
1804<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="true" rotate="false" usebox="none" width="" special="">
1805\begin_inset Text
1806
1807\layout Standard
1808
1809No of args
1810\end_inset
1811</cell>
1812<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1813\begin_inset Text
1814
1815\layout Standard
1816
1817type of
1818\end_inset
1819</cell>
1820<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1821\begin_inset Text
1822
1823\layout Standard
1824
1825type of
1826\end_inset
1827</cell>
1828<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1829\begin_inset Text
1830
1831\layout Standard
1832
1833type of
1834\end_inset
1835</cell>
1836<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1837\begin_inset Text
1838
1839\layout Standard
1840
1841type of
1842\end_inset
1843</cell>
1844<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="true" rotate="false" usebox="none" width="" special="">
1845\begin_inset Text
1846
1847\layout Standard
1848
1849type of
1850\end_inset
1851</cell>
1852</row>
1853<row topline="false" bottomline="true" newpage="false">
1854<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1855\begin_inset Text
1856
1857\layout Standard
1858
1859/to GUI)
1860\end_inset
1861</cell>
1862<cell multicolumn="1" alignment="center" valignment="top" topline="false" bottomline="true" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1863\begin_inset Text
1864
1865\layout Standard
1866
1867Command
1868\end_inset
1869</cell>
1870<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1871\begin_inset Text
1872
1873\layout Standard
1874
1875(mnd/opt)
1876\end_inset
1877</cell>
1878<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1879\begin_inset Text
1880
1881\layout Standard
1882
1883arg 1
1884\end_inset
1885</cell>
1886<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1887\begin_inset Text
1888
1889\layout Standard
1890
1891arg 2
1892\end_inset
1893</cell>
1894<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1895\begin_inset Text
1896
1897\layout Standard
1898
1899arg 3
1900\end_inset
1901</cell>
1902<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1903\begin_inset Text
1904
1905\layout Standard
1906
1907arg 4
1908\end_inset
1909</cell>
1910<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1911\begin_inset Text
1912
1913\layout Standard
1914
1915arg 5
1916\end_inset
1917</cell>
1918</row>
1919<row topline="true" bottomline="false" newpage="false">
1920<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1921\begin_inset Text
1922
1923\layout Standard
1924
1925C/-
1926\end_inset
1927</cell>
1928<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1929\begin_inset Text
1930
1931\layout Standard
1932
1933
1934\family typewriter
1935connect
1936\end_inset
1937</cell>
1938<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1939\begin_inset Text
1940
1941\layout Standard
1942
19431/1
1944\end_inset
1945</cell>
1946<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1947\begin_inset Text
1948
1949\layout Standard
1950
1951ServerIP
1952\end_inset
1953</cell>
1954<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1955\begin_inset Text
1956
1957\layout Standard
1958
1959Port
1960\end_inset
1961</cell>
1962<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1963\begin_inset Text
1964
1965\layout Standard
1966
1967\end_inset
1968</cell>
1969<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1970\begin_inset Text
1971
1972\layout Standard
1973
1974\end_inset
1975</cell>
1976<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1977\begin_inset Text
1978
1979\layout Standard
1980
1981\end_inset
1982</cell>
1983</row>
1984<row topline="true" bottomline="false" newpage="false">
1985<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1986\begin_inset Text
1987
1988\layout Standard
1989
1990-/C
1991\end_inset
1992</cell>
1993<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
1994\begin_inset Text
1995
1996\layout Standard
1997
1998
1999\family typewriter
2000disconnected
2001\end_inset
2002</cell>
2003<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2004\begin_inset Text
2005
2006\layout Standard
2007
20082/0
2009\end_inset
2010</cell>
2011<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2012\begin_inset Text
2013
2014\layout Standard
2015
2016ServerIP
2017\end_inset
2018</cell>
2019<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2020\begin_inset Text
2021
2022\layout Standard
2023
2024Port
2025\end_inset
2026</cell>
2027<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2028\begin_inset Text
2029
2030\layout Standard
2031
2032\end_inset
2033</cell>
2034<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2035\begin_inset Text
2036
2037\layout Standard
2038
2039\end_inset
2040</cell>
2041<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2042\begin_inset Text
2043
2044\layout Standard
2045
2046\end_inset
2047</cell>
2048</row>
2049<row topline="true" bottomline="false" newpage="false">
2050<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2051\begin_inset Text
2052
2053\layout Standard
2054
2055-/C
2056\end_inset
2057</cell>
2058<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2059\begin_inset Text
2060
2061\layout Standard
2062
2063
2064\family typewriter
2065connected
2066\end_inset
2067</cell>
2068<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2069\begin_inset Text
2070
2071\layout Standard
2072
20730
2074\end_inset
2075</cell>
2076<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2077\begin_inset Text
2078
2079\layout Standard
2080
2081\end_inset
2082</cell>
2083<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2084\begin_inset Text
2085
2086\layout Standard
2087
2088\end_inset
2089</cell>
2090<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2091\begin_inset Text
2092
2093\layout Standard
2094
2095\end_inset
2096</cell>
2097<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2098\begin_inset Text
2099
2100\layout Standard
2101
2102\end_inset
2103</cell>
2104<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2105\begin_inset Text
2106
2107\layout Standard
2108
2109\end_inset
2110</cell>
2111</row>
2112<row topline="true" bottomline="false" newpage="false">
2113<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2114\begin_inset Text
2115
2116\layout Standard
2117
2118-/C
2119\end_inset
2120</cell>
2121<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2122\begin_inset Text
2123
2124\layout Standard
2125
2126
2127\family typewriter
2128notconnected
2129\end_inset
2130</cell>
2131<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2132\begin_inset Text
2133
2134\layout Standard
2135
21361/1
2137\end_inset
2138</cell>
2139<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2140\begin_inset Text
2141
2142\layout Standard
2143
2144ErrNo
2145\end_inset
2146</cell>
2147<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2148\begin_inset Text
2149
2150\layout Standard
2151
2152ErrorMsg
2153\end_inset
2154</cell>
2155<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2156\begin_inset Text
2157
2158\layout Standard
2159
2160\end_inset
2161</cell>
2162<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2163\begin_inset Text
2164
2165\layout Standard
2166
2167\end_inset
2168</cell>
2169<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2170\begin_inset Text
2171
2172\layout Standard
2173
2174\end_inset
2175</cell>
2176</row>
2177<row topline="true" bottomline="false" newpage="false">
2178<cell multicolumn="0" alignment="center" valignment="top" topline="false" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2179\begin_inset Text
2180
2181\layout Standard
2182
2183C/-
2184\end_inset
2185</cell>
2186<cell multicolumn="0" alignment="center" valignment="top" topline="false" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2187\begin_inset Text
2188
2189\layout Standard
2190
2191
2192\family typewriter
2193backup
2194\end_inset
2195</cell>
2196<cell multicolumn="0" alignment="center" valignment="top" topline="false" bottomline="false" leftline="true" rightline="true" rotate="false" usebox="none" width="" special="">
2197\begin_inset Text
2198
2199\layout Standard
2200
22014/*
2202\end_inset
2203</cell>
2204<cell multicolumn="0" alignment="center" valignment="top" topline="false" bottomline="true" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2205\begin_inset Text
2206
2207\layout Standard
2208
2209Bkup type
2210\end_inset
2211</cell>
2212<cell multicolumn="0" alignment="center" valignment="top" topline="false" bottomline="true" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2213\begin_inset Text
2214
2215\layout Standard
2216
2217name
2218\end_inset
2219</cell>
2220<cell multicolumn="0" alignment="center" valignment="top" topline="false" bottomline="true" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2221\begin_inset Text
2222
2223\layout Standard
2224
2225mode
2226\end_inset
2227</cell>
2228<cell multicolumn="0" alignment="center" valignment="top" topline="false" bottomline="true" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2229\begin_inset Text
2230
2231\layout Standard
2232
2233filepattern
2234\end_inset
2235</cell>
2236<cell multicolumn="0" alignment="center" valignment="top" topline="false" bottomline="true" leftline="true" rightline="true" rotate="false" usebox="none" width="" special="">
2237\begin_inset Text
2238
2239\layout Standard
2240
2241\SpecialChar \ldots{}
2242
2243\end_inset
2244</cell>
2245</row>
2246<row topline="true" bottomline="false" newpage="false">
2247<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2248\begin_inset Text
2249
2250\layout Standard
2251
2252-/CS
2253\end_inset
2254</cell>
2255<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2256\begin_inset Text
2257
2258\layout Standard
2259
2260
2261\family typewriter
2262progress
2263\end_inset
2264</cell>
2265<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2266\begin_inset Text
2267
2268\layout Standard
2269
22701/0
2271\end_inset
2272</cell>
2273<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2274\begin_inset Text
2275
2276\layout Standard
2277
2278percent
2279\end_inset
2280</cell>
2281<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2282\begin_inset Text
2283
2284\layout Standard
2285
2286\end_inset
2287</cell>
2288<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2289\begin_inset Text
2290
2291\layout Standard
2292
2293\end_inset
2294</cell>
2295<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2296\begin_inset Text
2297
2298\layout Standard
2299
2300\end_inset
2301</cell>
2302<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2303\begin_inset Text
2304
2305\layout Standard
2306
2307\end_inset
2308</cell>
2309</row>
2310<row topline="true" bottomline="false" newpage="false">
2311<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2312\begin_inset Text
2313
2314\layout Standard
2315
2316-/CS
2317\end_inset
2318</cell>
2319<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2320\begin_inset Text
2321
2322\layout Standard
2323
2324
2325\family typewriter
2326abort
2327\end_inset
2328</cell>
2329<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2330\begin_inset Text
2331
2332\layout Standard
2333
23341/1
2335\end_inset
2336</cell>
2337<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2338\begin_inset Text
2339
2340\layout Standard
2341
2342ErrNo
2343\end_inset
2344</cell>
2345<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2346\begin_inset Text
2347
2348\layout Standard
2349
2350ErrorMsg
2351\end_inset
2352</cell>
2353<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2354\begin_inset Text
2355
2356\layout Standard
2357
2358\end_inset
2359</cell>
2360<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2361\begin_inset Text
2362
2363\layout Standard
2364
2365\end_inset
2366</cell>
2367<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2368\begin_inset Text
2369
2370\layout Standard
2371
2372\end_inset
2373</cell>
2374</row>
2375<row topline="true" bottomline="false" newpage="false">
2376<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2377\begin_inset Text
2378
2379\layout Standard
2380
2381-/C
2382\end_inset
2383</cell>
2384<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2385\begin_inset Text
2386
2387\layout Standard
2388
2389
2390\family typewriter
2391backupdone
2392\end_inset
2393</cell>
2394<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2395\begin_inset Text
2396
2397\layout Standard
2398
23991/1
2400\end_inset
2401</cell>
2402<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2403\begin_inset Text
2404
2405\layout Standard
2406
2407ErrNo
2408\end_inset
2409</cell>
2410<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2411\begin_inset Text
2412
2413\layout Standard
2414
2415ErrorMsg
2416\end_inset
2417</cell>
2418<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2419\begin_inset Text
2420
2421\layout Standard
2422
2423\end_inset
2424</cell>
2425<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2426\begin_inset Text
2427
2428\layout Standard
2429
2430\end_inset
2431</cell>
2432<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2433\begin_inset Text
2434
2435\layout Standard
2436
2437\end_inset
2438</cell>
2439</row>
2440<row topline="true" bottomline="false" newpage="false">
2441<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2442\begin_inset Text
2443
2444\layout Standard
2445
2446\end_inset
2447</cell>
2448<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2449\begin_inset Text
2450
2451\layout Standard
2452
2453\end_inset
2454</cell>
2455<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2456\begin_inset Text
2457
2458\layout Standard
2459
2460\end_inset
2461</cell>
2462<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2463\begin_inset Text
2464
2465\layout Standard
2466
2467\end_inset
2468</cell>
2469<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2470\begin_inset Text
2471
2472\layout Standard
2473
2474\end_inset
2475</cell>
2476<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2477\begin_inset Text
2478
2479\layout Standard
2480
2481\end_inset
2482</cell>
2483<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2484\begin_inset Text
2485
2486\layout Standard
2487
2488\end_inset
2489</cell>
2490<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2491\begin_inset Text
2492
2493\layout Standard
2494
2495\end_inset
2496</cell>
2497</row>
2498<row topline="true" bottomline="false" newpage="false">
2499<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2500\begin_inset Text
2501
2502\layout Standard
2503
2504\end_inset
2505</cell>
2506<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2507\begin_inset Text
2508
2509\layout Standard
2510
2511\end_inset
2512</cell>
2513<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2514\begin_inset Text
2515
2516\layout Standard
2517
2518\end_inset
2519</cell>
2520<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2521\begin_inset Text
2522
2523\layout Standard
2524
2525\end_inset
2526</cell>
2527<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2528\begin_inset Text
2529
2530\layout Standard
2531
2532\end_inset
2533</cell>
2534<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2535\begin_inset Text
2536
2537\layout Standard
2538
2539\end_inset
2540</cell>
2541<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2542\begin_inset Text
2543
2544\layout Standard
2545
2546\end_inset
2547</cell>
2548<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2549\begin_inset Text
2550
2551\layout Standard
2552
2553\end_inset
2554</cell>
2555</row>
2556<row topline="true" bottomline="false" newpage="false">
2557<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2558\begin_inset Text
2559
2560\layout Standard
2561
2562\end_inset
2563</cell>
2564<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2565\begin_inset Text
2566
2567\layout Standard
2568
2569\end_inset
2570</cell>
2571<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2572\begin_inset Text
2573
2574\layout Standard
2575
2576\end_inset
2577</cell>
2578<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2579\begin_inset Text
2580
2581\layout Standard
2582
2583\end_inset
2584</cell>
2585<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2586\begin_inset Text
2587
2588\layout Standard
2589
2590\end_inset
2591</cell>
2592<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2593\begin_inset Text
2594
2595\layout Standard
2596
2597\end_inset
2598</cell>
2599<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2600\begin_inset Text
2601
2602\layout Standard
2603
2604\end_inset
2605</cell>
2606<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2607\begin_inset Text
2608
2609\layout Standard
2610
2611\end_inset
2612</cell>
2613</row>
2614<row topline="true" bottomline="true" newpage="false">
2615<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2616\begin_inset Text
2617
2618\layout Standard
2619
2620\SpecialChar \ldots{}
2621
2622\end_inset
2623</cell>
2624<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2625\begin_inset Text
2626
2627\layout Standard
2628
2629Table
2630\end_inset
2631</cell>
2632<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2633\begin_inset Text
2634
2635\layout Standard
2636
2637is not
2638\end_inset
2639</cell>
2640<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2641\begin_inset Text
2642
2643\layout Standard
2644
2645complete
2646\end_inset
2647</cell>
2648<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2649\begin_inset Text
2650
2651\layout Standard
2652
2653\SpecialChar \ldots{}
2654
2655\end_inset
2656</cell>
2657<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2658\begin_inset Text
2659
2660\layout Standard
2661
2662\end_inset
2663</cell>
2664<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2665\begin_inset Text
2666
2667\layout Standard
2668
2669\end_inset
2670</cell>
2671<cell multicolumn="0" alignment="center" valignment="top" topline="true" bottomline="false" leftline="true" rightline="false" rotate="false" usebox="none" width="" special="">
2672\begin_inset Text
2673
2674\layout Standard
2675
2676\end_inset
2677</cell>
2678</row>
2679</lyxtabular>
2680
2681\end_inset
2682
2683
2684\layout Caption
2685
2686
2687\begin_inset LatexCommand \label{tab:GuiCommands}
2688
2689\end_inset
2690
2691Commands at the GUI Interfaces
2692\end_float
2693\layout Section
2694
2695Open Issues
2696\layout Standard
2697
2698Here I collect all the ideas that need further analysis.
2699 Some solutions may be written here if they might have side effects to the
2700 system, I must think about.
2701 Or if I hadn't have the time to insert them at the correct place ;-)
2702\layout Itemize
2703
2704How to realize the daemon for client and server side?
2705\begin_deeper
2706\layout Standard
2707
2708It should dock to the pipe between the GUI and the process, so it can monitor
2709 if there is something going on, and if not it can do its job.
2710\layout Standard
2711
2712If a daemon triggered backup is running, no user interaction is possible,
2713 so no mix up between two backups can happen.
2714\end_deeper
2715\layout Itemize
2716
2717Security
2718\begin_deeper
2719\layout Standard
2720
2721What should the user be allowed? Start backups? If yes, what files? Only
2722 files, he has access to, to prevent snooping system information.
2723\layout Standard
2724
2725Show contents of other backups?
2726\layout Standard
2727
2728Restore files? From which backups? To which destinations?
2729\layout Standard
2730
2731Backup to CD? Necessary rights to write there? Maybe handled by mondo.
2732\layout Standard
2733
2734Shall the client always run as root (to access all, if triggered from outside)?
2735 If yes, how assure that no unprivileged user will abuse this?
2736\layout Standard
2737
2738Shall server run as root? Server child with lower privilege? Same as user
2739 on client side - but then how to realize - user id's from client mustn't
2740 exist on server.
2741\end_deeper
2742\layout Itemize
2743
2744Use a secure tunnel as connection? How to establish/address tunnel?
2745\layout Subsection
2746
2747Possible Extensions
2748\layout Itemize
2749
2750Wildcards for specifying which files to backup/restore
2751\begin_deeper
2752\layout Itemize
2753
2754Step 1: Standard UNIX Expressions `*' `?' for filenames not only at the
2755 end of the name
2756\layout Itemize
2757
2758Step 2: also for directories (Q: does `/*/readme' match e.g.
2759
2760\newline
2761`/usr/local/share/packet/readme'?)
2762\layout Itemize
2763
2764Step 3: Regular Expressions (User has circumvent above question)
2765\end_deeper
2766\layout Itemize
2767
2768Distinguish between restore (files are written to their old places) and
2769 extract (new destination for file(s) possible).
2770\the_end
Note: See TracBrowser for help on using the repository browser.