Table of Contents
TOC \o "1-3" \h \z
Go to First topic
Fax Active Directory (FAD) Browser
The Fax Active Directory (FAD) is the foundation of our fax system. Please see Fax Corefor details on what FAD is, and its architecture. In simple terms, the FAD is an arborescence of fax related objects, which allows navigation (browsing), configuring and execution of its individual objects.
The FAD viewer/browser is the tool to manage fax objects.
Please follow the >> button for details.
See also Fax System, Fax Type Library , Fax Core
The reader is already familiar with the workings of a File Manager/Explorer, and would not be surprised by nay of these duties of the browser. It's what browsers do.
All object types share some common aspects: Name, Flags, Status, and Dirty. The browser allows an object to be renamed using the tree's in-place label editor. The flags can be edited in the flags bar. The status is a synthetic field of an object, and can only be displayed. The status line is the second panel of the status-bar. The browser doesn't modify the Dirty state of an object and only uses it for the look of a tree label.
Renaming an object is disabled for read-only objects, the flags cannot be altered for protected objects that do not belong to the current user's tree of containment.
An element of novelty, perhaps, is the FAD Browser's alternative behavior to moving objects, which is to create links between the dragged objects and the drop target. This mode is available during drag-and-drop while pressing the ALT key. Object links are displayed in italic and they represent a loose coupling relationship between the source of the link and the target of the link. The target object seems to have this source as a sub-object. One can browse the link as any sub-node, while in fact browsing the original. In the screenshot above, amongst the sub-objects of fax document Fax2_041120_201555 we find references to Address Book Extension and to John Doe, both of which are contained elsewhere in the FAD, and only included here for use.
A source object shares itself to other objects. Other objects include the object source by reference. The inclusion doesn't copy the source object. Consequently, the targets of a shared object will receive updates from the source, and always see the latest contents of the included object.
The FAD network is distributed amongst computers. To distinguish local objects from remote a color scheme of black=local and blue=remote is used in the tree view. There are numerous issues involved with browsing across machine boundaries most of them pertaining to the domain of networking protocols and file-systems. The FAD is both a file system and a networking protocol. The FAD allows entire structures to be moved from one machine to another while preserving the reference links between objects, which is a highly sophisticated issue that we had to resolve. All the reader needs to know here is that the FAD browser will manage the all the cross-links between the user's local machine and remote ones, and vice versa. Please note that object may only be moved when they are flagged as such. Also, objects that are flagged as non-insert-able cannot be drop targets in move operations. They may, however, be linked to source objects with the appropriate concourse of the object's type editor, under program control.
Each FAD object has a type. The object's type provides an editor for the object. The fax system groups all these type editors into the Fax Type Library. Double clicking on a tree node would open that object's type editor. The GUI docking frame opens the object's editor on the right hand side panel next to the FAD browser. The object's label will change to mark it as having been opened for editing. If the editor for the object is already open, then the FAD will locate and activate that editor, as others may have obscured it. The user may now drag FAD nodes from the browser and drop them over the editor to quickly create reference links. The browser and the editor work mostly decoupled so the user is free to browse any branch of the tree while editing one object. The browser acts on the editor when opening and closing the editor, when dropping nodes over the editor, or when focusing a tree node that is already in an editor. The editor interacts with the browser on special occasions such as performing a login/logout sequence and that requires a certain tree branch to be expanded or collapsed.
The browser may be asked to locate a given object in the tree and expand the quickest path to it. This mechanism is used in the fax system to bring-up the news from a server to a user. An example of auto location is an incoming fax file in a server's queue that pops up on a user's remote user interface. The auto-locator works in conjunction with a server's path builder logic and can expand trees of up to 32 levels deep.
The browser is made out of: Fax Tree View, Tool bar . and Status bar
Shows and browses the arborescence of the Fax Active Directory.
The attributes of an object in the FAD browser may be one or combinations of the following:
2. Modified (bold label)
3. Remote (blue label)
4. Link (Italic label)
5. Editing (Underline label)
Go to FAD Browser
Groups the tightest possible set of options needed and sufficient to edit the tree.
Buttons and related menu options are described next
When a branch is selected in the tree browser, clicking this button will set the branch as the new root of the browser. The tree will then fill with the sub-nodes of the branch. If no object is selected, clicking this tool would set the browser's root to the FAD's absolute beginning, which is always the Servers node.
Before pressing this button the FAD tree is organized naturally. Natural ordering is the order in which the objects were created. Pressing this button would sort the tree based on lexicographic order of tree node labels. The tool is useful in sorting the fax documents in an ascending date and time order given the file-naming scheme purposely chosen in this sense.
Only objects flaggedas insert-able have this button enabled. The drop-down menu is automatically rebuilt on tree selection changes to reflect the insertion capabilities of each type of FAD node. This context-sensitive menu helps to maintain the sanity of a FAD tree. One can still move objects any type of other object into this one with drag and drop. The user does this at his own risk, however. The administrator would prevent any critical FAD branches from such insertion flagging the objects as not insert-able.
Only write-ableobjects may be deleted. Deleting an object automatically closes any local editors. If an object is edited remotely, then the inter server transport protocol will cancel the delete operation. Deleting certain complex objects may have extensive side effects. Deleting a user, for instance would log that user out and destroy all the associated file persistence. Selecting a server, would destroy all the users of that server which in turn involves a sequence of logouts, etc. Sensitive objects should not be write-able. An administrator who needs to edit something should remember to put the read-only flag back on right after. Deleting an object also deletes all references that other objects have to this source.
Renaming an object is done with the in-place label editor of the tree viewer. Entering this label editing mode is done with two subsequent mouse clicks further apart than the double-click delay. The option is available in the system's menu. Only write-ableobjects may be renamed. Renaming a source object also propagates to all other objects that include it by reference.
Go to FAD Browser
The status bar
The first panel shows the status of the local server. For a server that isn't loaded much the message would mostly say Paused and only occasionally turn to Evaluating. So this panel is only accurate so as to change once every second server evaluation cycle. These are common sampling issues. If the evaluation effort grows in comparison with the evaluation period, then the status becomes more accurate.
The second panel shows the status of the node currently selected in the browser. Remote nodes are not generally refreshed for status, so this panel only shows the last known status of the selected object. To refresh these remote objects you may need to collapse and expand the FAD branch that contains the object, so that the inter-server synchronization protocol may come into action. Certain editors such as the Document Editor refreshes the status of the edited object for its own internal reasons. The browser would also benefit from such updates.
Status reporting is a system's ongoing work of refinement. The system updates an object's status field only on major events such as a failed connection, or a finished job. The real state of the object may have changed since the last assignment to this field and the report refers to an older condition, that has now changed. In simple terms, the status bar generally shows a slightly worse picture of the system than it currently is in. The object may have since reconnected without clearing an error status.
Go to FAD Browser
Go to FAD Browser
Each object has a flags field editable with the following checkbox bar.
The flags are defined as follows:
An object that is not readable would not be allowed to be loaded into viewer by anyone other than its owner. The owner of an object is a user that ultimately contains the object. The tree of containment must be a straight parenthood relation from object up towards the user, and not discontinued by any link object. Whether you can access an object doesn't imply that you're also its owner.
An object that is not write-able cannot be deleted. The editor opens for it, but the Apply button would be denied with a status report showing the cause. A non-write-able object may still be moveable and insert-able.
This flag sets a protection onto the flags themselves, so only the owner of the object can edit them. You are not the owner of an object if you don't have a straight containment descent from your user session down to the object.
Any shared objects in the first level of containment of a server will be made available by reference to all users upon their login. You may choose to share "yourself" onto the server you're logging into. You do so by logging in firs, then setting the Shared flag on your user node. Any other user logging into the system would then link to you. Pleas consider the security implications of doing this, and have all your sensitive material not-readable, or not not-write-able, etc. Sharing your user session onto the network means that other users can pick you as a nominal fax destination of an inbound call. Also they can forward their documents to you in raw TIFF form. If you don't share your user session (default) then you will only be targeted by server fax broadcasts to everyone.
Moving an object can have adverse effects on you or on the whole system. You should not be able to move a remote server's Outbox, for example. Doing so would leave that server incapable of sending faxes until the Outbox queue is restored. You may want to periodically move your remote Inboxes and bring them locally. You would then need to re-create another Inbox on that server. What you do with your folders is your prerogative. You cannot move objects owned by someone else, and that are flagged as non-moveable. If you choose to share yourself on the network, you should also protect your own folders with this flag, so others can't snatch them from you.
Unless an object allows insertions, it cannot be the destination of a manual drag and drop move operation. The system underneath does it though. The flag only prevents other users from dropping you stuff.
This flag affects the fax Server itself and its automated de-convolving iterators. It's like saying whether the system can or cannot browse this branch of the FAD like you do manually. Non traversable objects do not appear on any report list that the server builds. Such a list is the Files, Contacts, and Jobs of the Document Editor, or the list of the Queue Editor. Generally, Contacts are traversable in their Contact Lists, Users are traversable in their Servers, Files are traversable in their Queues. Reference links are not traversable by default, unless the system created them for internal reasons. When working with links to include address books or folders into one another, you must take good care of this issue and not create traversable cycles.
# FAD Browser
K FAD Browser
# FAD tree viewer
K FAD tree viewer
! JumpContext(FaxSys.hlp, 1)
! JumpContext(FaxTypeLib.hlp, 1)
# Fax Type Library
K Fax Type Library
! JumpContext(FaxCore.hlp, 1)
# Fax Core
K Fax CoreCreated on 05/27/2009 06:38:37 AM, modified on 05/27/2009 06:38:37 AM
Send mail to
questions or comments about this web site.