Thursday, June 17, 2010

Tools For Administration

ViSit Anywhere provides a number of specialized tools for performing administrative tasks.  Our previous experience with ViSit and ViSit Web have shown that geospatial projects often evolve over time.  To manage this evolution a robust administration framework must be present.  ViSit Anywhere's change management provides the foundation for ensuring that the project configuration can be easily and transparently applied over the entire user base.  The post discusses some of the tools available to administrators for managing project change.  It is important to point out that most ViSit Anywhere users (even those making complex edits) are unlikely to need to use these tools.

The Project Tree

As stated previously on this site, a ViSit Anywhere project is managed by a hierarchy of project objects, including the object types used, the project schema and the project instance data.  Administrators can view the project hierarchy by activating the ribbon's Project tab and selecting the Project button from the Manage chunk.  This displays the main project tree control in a dockable panel.  The project tree control is based on a Outlook 2007 style navigation bar.  This type of control has a main display area (typically showing the full project tree and a set of navigation bars or buttons on the bottom that allow the view to be switched.  In our case, you can create sub-trees simply by selecting a node in the visible tree and dragging it onto the bar on the bottom.  Selecting a button will switch between tree views.

The docked panel is only the visible face of the ViSit Anywhere tree controller.  This object acts a server of project tree branches for other ViSit Anywhere tools and applications.  These sub-trees have the same functionality as the tree in the main view, but often add other features.  For example, the Place navigation tool collects all the available places, and will navigate when a Place is double-clicked.  The exact same functionality is available in the main tree (except that the Places may be dispersed across several branches there).

Right-clicking on a tree now presents the object's contextual menu that provides several tools for project configuration.  These will be discussed later in this document.  The items displayed in the contextual menu are controlled either by the selected node, its parent or one of the top level controllers (such as the type controller or the change manager).

Check Mode

It is very important for administrators to know that a configuration is valid.  ViSit Anywhere provides a special Check mode on the project tree to assist in this task.  To activate check mode either click on the Check button from the context menu of a node in the project tree, or select the Check button from Manage chunk in the Project ribbon page.  When this is done the selected node and all its child nodes are checked (errors bubble-up to the top level node to facilitate their location).  While in check mode, the image icons associated with the tree nodes take on an addition overlay that indicates the state of the object (based on its internal checking algorithm).  The state might be OK, Warning or Error.  Nodes in a warning or error state have an additional text message associated with the tree node text.  To disable check mode, just un-check the Check button.

Discovery is a foundation technology in ViSit Anywhere.  The idea is that certain project types, in under well-defined conditions do know how to "discover" (basically create configured objects) themselves without the need for an administrator to perform the configuration.  For organizations with data already in a relation database, Discover can be used to import the database schema (and eventually the data) into the new project.
  This is an important topic, so I will be spending more time on discovery and integration in an upcoming post.  For now, lets say that to use the discovery tools, simply select a tree node and then select the Discover Mode button, either in the project tree's contextual menu or the  Manage chunk on the Project ribbon page.  This puts the select item into Discovery state, at which time it tries to discover children objects.  Discovered children are displayed in the project tree with a question mark overlay on their node icon.  Discovered children can be added to a project simply by integrating them using the Integrate item in the discovered child's contextual menu.  Integrated objects become fully functional project objects.

As a simply example, consider the integration of a new snap-in application into ViSit Anywhere.  In order to add a ViSit Anywhere application to a project, we simply copy the .NET assemblies to the ViSit Anywhere program directory.  Next, we open the project tree and navigate to the Types object.  The object represented by this node is the type controller and it implicitly know how to discover ViSit Anywhere types.  When we activate Discover mode on the Types object (left side of the following screenshot) it scans the .NET assemblies in its domain path and shows the ViSit Anywhere types that are available for integration with the project.  The discovered types are shown in the project tree, decorated with the Discovered overlay (right side of the following screenshot).  The object can be integrated into the project (as fully validate project types) by selecting the Integrate action in the contextual menu associated with the discovered object.  We will be discussing the implementation of ViSit Anywhere snap-in applications in an upcoming post.

ViSit Anywhere also provides standard project configuration tools.  These are best used when starting without existing data.  In these cases, discovery is of little help (there is nothing to discover).  Fortunately ViSit Anywhere provide the tool to create new project objects from the project tree.  In this case, the parent object knows what type of children that it can have, so and which types can be created from nothing, so the list of objects to create is filtered.  For example, the screenshot below shows all the types that might be created as direct children of a Module object.  Note, object creation in this way make most sense for schema objects.  Type objects are best discovered and instance object typically created editing tools or discovered from existing data.  Once the user has created an object, it can be configure easily using the object properties controls.  This type of object creation and configuration is based on long standard Windows usage idioms and this allows users to quickly learn how to do basic configuration.

The configuration of the project objects is generally performed with the project tree.  This configuration often means that one object depends on the configuration of another, for example, a Relation object associates one Table to another.  In cases like this, it is often important to inspect and configure these object at the same time.  This can be difficult in very large projects, as such objects are often implemented in a disjoint, modular fashion.  To aid administrator deal with these types of complex associations, ViSit Anywhere provides Project Tree navigators in an objects context menu.  In the example below, when we right click on a table, we automatically see navigations to its parent tables.  Selecting one of these items will move the selected node in the Project Tree to the related object.

Drag and drop is another important technique used in ViSit Anywhere configuration.  By select a node in the Project Tree we can move, copy and depending on the drop site, even create new objects.  For example, by dropping one table column on another, in another table we can create a relation between the two tables.  Drag and drop often provides a simple, unambiguous way to achieve complex configurations.
Configuration Wizards
In some cases, configuration is very complex and may require a valid sequence of operations to effectively preform the task.  In these cases, ViSit Anywhere provides configuration wizards that allows the administrator to proceed step-by-step through the complex configuration task.

The Properties Control

The Project Tree allows us to configure the overall structure of the ViSit Anywhere project and it allows us to navigate and invoke different aspects of the project objects.  However, to configure the details of each object another tool is required.  This is the job of the Properties Control.  Each object in a ViSit Anywhere project implements a unique set of controls to facilitate its configuration.  This uses standard Windows user interface idioms which helps administrators in dealing with the diverse set of configurations possible.  For example, the screenshot below shows how we can customize the color of a line graphic by configuring the associated context.  Note, that context set is a hierarchy of objects that allows properties to be inherited and overridden.

The Properties Control is closely associated with the Project Tree control.  In order to facilitate the administration of the project, when the selection in the Project Tree changes, the read-only properties control is automatically updated so that the administrator can also check the specific configuration of any object quickly and easily.  Also it is important to point out that all the configurations discussed in post are change managed.  This means that when an administrator has finished a configuration task, he simply has to commit his changes to the ViSit Anywhere project server and the new configuration will automatically be installed on all other client machine when they synchronize to the server.  There is no need to make provisions for special configuration distributions.



This post has given a brief introduction to many of the tools available to ViSit Anywhere administrators.  We believe that they provide a unique environment for configuring geo-spatial data projects.  In upcoming posts we will look closer at many of the features we have introduced here.

Friday, June 4, 2010

ViSit Anywhere Update

At the risk of sounding trite, we would like to say that the Spatial Networking blog is back. We understand that it has been a while since a new post appeared here and we suppose we have no excuses. Of course we have been very busy and yes, the product has advanced to a state where we are ready for production use. The important point is that this blog is back and we will try to provide a bit of information about the new features on a regular basis.

ViSit Anywhere now sports a large number of features and functions. So many in fact that we have a difficult time quantifying them all. For this reason, we would like to present a tour of some of the latest release. The features that were previously discussed, integrated change management, CAD engine independence and superior user interface are still there (and better), but now we would like to discuss some of the less well-known features that we rarely have time to demonstrate. The extent and quality of these feature, demonstrates our commitment to building the best possible application for managing Geo-spatial information.

We propose to post 2 or 3 short blog entries each week, describing new and important features of ViSit Anywhere. These entries will include:
  • Project Management tools - ViSit Anywhere uses advanced property controls, drag-and-drop and object discovery to make the work of administrators and integrators easier.
  • Non-Change Managed Information - In ViSit Anywhere all information can be change managed, but sometimes it is good to have a store of private information. This new feature allows such information to easily integrated into your project.
  • Graphic layers and Managed Contexts - Most graphic editors manage information in a set of layers and ViSit Anywhere is no exception. This entry describes how we define layers for managed graphic data using hierarchical contexts. This provides the foundation for a powerful framework for managing static symbology.
  • Graphic Layer tools - We provide a set of tools for managing the display of graphic layers that is at once robust and simple to use. The challenge is to have complete control over the displayed layers while avoiding the need to adjust their display.
  • The Relational Model - This entry discusses recent additions to our relational data model which allows separation and simplification in the presentation of attribute data.
  • More on the Relational Model - In this entry I would like to discuss the notions behind our spatial query tool and how it integrates with the way we centralize the display and interaction with tabular data.
  • Functions and Expressions - One of the most important run-time configuration tools is the table expression and function framework. This allows users to manipulate project information using C# scripts and special purpose expressions. These are compiled on-the-fly at run-time and used to transform or agglomerate information and present them to the user.
  • Application Settings and State - ViSit Anywhere now includes a new framework for saving the application state (without resorting to writing information in the Windows registry). This framework means that the function and layout of ViSit Anywhere is now persisted between editing sessions resulting in a much better user experience
  • Project Archives - ViSit Anywhere now has the ability to archive projects for re-use and re-distribution quickly and easily. These archives (and ViSit Anywhere change management) mean that simulations and restructuring can be performed without fear of breaking project integrity. In addition to project data, it is also possible to archive and distribute application environments. The result is that a user can be fully operational, for a cold start, in under 10 minutes.
  • Basic Network Editing - ViSit Anywhere has been designed to edit and maintain topological network data. This topic will describe the network model and the tools used to maintain it. We will also discuss some upcoming network features.
  • Cartographic Plots - ViSit Anywhere has number of tools for managing complex, multi-view cartographic plots. This topic will survey the tools available and discuss some of the future directions.
  • Ribbon Layout - The Office 2007 Ribbon user interface presents an opportunity to increase the usability of an application. Unfortunately the layout of the ribbon can often be optimized for a particular task. We have recently re-worked the layout of the ViSit Anywhere ribbon and in doing so, have laid the foundation for run-time, user driven ribbon layout.
  • User Roles - Another new technique for customizing the usability of ViSit Anywhere is through user roles. In this entry we will discuss how editing roles can be enforced at the user level and some future applications of these roles.
  • Data Integration - ViSit Anywhere is a great tool for integrating data from a variety of sources. Its "discovery" framework can be used to integrate data from Shape, Mid/Mif and other sources.
  • Auto-Synchronization - One of the benefits of robust change management and strict relational rules is the ability to have a production quality database that represents the stable state of the system. ViSit Anywhere provide auto-synchronization for this - in particular auto-synchronization to Oracle (with SDO geometry).
  • Navigation - Navigation in large geo-spatial datasets is hard problem. ViSit Anywhere provides a number of tools to address the difficulty, including gazetteers, external tables and favorite places.
  • GPS Integration - Today, GPS data is everywhere. To exploit this Géotech is working to integrate GPS with ViSit Anywhere. A side effect of GPS integration is the ability to transform from one system of coordinates to another. Given the state of web GIS tools, like Google (TM) or Bing (TM) Maps, the ability to manage coordinate systems provides new opportunities for desktop GIS.
  • Work Management - Today GIS must integrate with the enterprise information fabric if it is no remain relevant and deliver its full benefit. We believe believe that the integration point that will enable this is the work management system. In this way every edit in ViSit Anywhere are associated directly with a task that is important for the enterprise. This entry will discuss the foundation of the work management system integration in ViSit Anywhere.
  • Work Management 2 - This is a continuation of the previous entry. In this entry however, we will focus on the implemented tools for work management.
That it! The list is long, but we have been working hard and we really want to share information about these important features. After reading these entries we hope that you will agree with us when we say that we believe ViSit Anywhere is a geo-spatial tool unlike any other.