ASCOM Hubs allow you to share the control of a single piece of equipment among several programs. They can also be used as "middleware", to provide additional functionality not available in the individual programs or drivers.
A simple example is multiple applications sharing one telescope, as follows:
In this example, MaxIm DL is configured to connect to a telescope driver that isn't actually a telescope. It's the POTH Hub application that is included with the ASCOM Platform. Similarly, the planetarium program and other software is set up the same way. The hub itself is configured to talk to a specific telescope driver, e.g., Meade LX-200 and Autostar. In this way, all of the applications can monitor the telescope at the same time. Any one of them can send a command to the telescope, such as a GOTO command, and all of the programs will monitor the telescope as it moves across the sky.
Hubs represent a very simple, yet powerful technique for linking applications together. We can take this a step further, by adding extra features into the hub program itself. Applications such as MaxPoint (http://www.diffractionlimited.com) and FocusMax (http://focusmax.org) act as hubs and provide extra capabilities. MaxPoint, for example, models errors in the telescope mount and adjusts the commands sent to the telescope in order to achieve better pointing accuracy.
The very simplicity of hubs can sometimes make things a little confusing at first, since there can be many different ways to hook the blocks together. Just spend a few minutes drawing a block diagram like that above, and you will quickly see how to connect things up.
Some general principles:
The MaxPoint hub should always connect directly to the telescope, if at all possible. Any application that connects below MaxPoint will not have the benefit of the pointing corrector. Therefore it should be the main hub, and all other applications should connect to it.
If you are using TheSky, the Telescope API plug-in that comes with the ASCOM Platform can be used to connect it to ASCOM telescope drivers, instead of using the built-in drivers. This is recommended, since it allows TheSky to work with other programs. However, certain mounts (e.g. Paramount) can only be controlled by TheSky. In this case, there is a special "TheSky-controlled telescope' driver that lets other programs connect to it. Special settings are required; be sure to review the instructions in TheSky Controlled Telescope.
FocusMax, an excellent freeware autofocus utility, can act as a hub for focusers and telescopes. You should connect MaxIm DL's telescope interface to FocusMax, and then connect FocusMax directly to the telescope (or MaxPoint or other hub if used). You can do the same for the Focuser interface; but this is not essential, and you should only do so if you wish to use MaxIm DL's built-in focuser controls as well as those in FocusMax.
If you think you have too many hubs, try to simplify the configuration. It is simpler to have several programs in parallel connecting to one hub, rather than chaining hubs together in series.