Update: a subset of the most recent A mini-distribution of QuickSilver Live Objects is available online
Contents:
This tutorial assumes you've installed the following:
After you satisfy these above and download the zipped installer for a mini-distribution of QuickSilver Live Objects "OLE Power Package", you will need to request from us the decrytpion key.
We will also be interested in a user's guide of the latest version of QSM, available from the QSM project webpage.
OLE (Object Linking and Embedding) is a technology that enables an application to create compound documents that contain information from a number of different sources. For example, a document in an OLE-enabled word processor can accept an embedded spreadsheet object. Unlike traditional "cut and paste" methods where the receiving application changes the format of the pasted information, embedded documents retain all their original properties. If the user decides to edit the embedded data, Windows activates the originating application and loads the embedded document. See here to get more information.
Basically, there are two ways to embed live objects into OLE hosts: (1) drag and drop a live object onto target OLE hosts (2) select a live object from the menu such as [Insert]->[Object]->[Create from File] tab.
You will see two icons above on your desktop after the installation process. If you double-click the first icon, you will see a folder with live objects. The second icon points the link to a short QuickSilver Live Objects readme installed on your machine like abvoe.
This example shows you how live objects are embedded in a Microsoft Excel worksheet. If you want to see how the shared text note works in detial, please see "QuickSilver Live Objects Tutorials".
This is a "limited, initial integration of live objects into MS Excel" which means that data in cells cannot colleborate with live objects directly in current version. We will provide full integrated examples with MS Excel in our future "QuickSilver Live Objects Office Package".
To run this exampleLet's start a server, "channels_server.liveobject" in a "examples" directory fist, as you see below.
The server will control multicast channels. We could use other multicast systems by simply changing configuration settings.
Now multicasting is working. Let's start a live object, a shared text note, "shared_text_1.liveobject" in the examples folder.
This one is a simple shared text note. It can be edited by multiple users at the same time. In real life, multiple users could open the text notes on different machines.
Let's start a MS Excel template worksheet as an example which will not be provided for you in this example. You can simply create a spreadsheet document. Click a particular cell such as [B2] in this worksheet. Let's embed a shared text note, "shared_text_1.liveobject" in the "examples" folder, into a MS Excel worksheet. Before you activate the shared note, you may want to resize the shared text note as fitable as the selected cell. Then double-click the shared text note to in-place activate.
If the shared text note is connected to multicast channel, you can type text as you want above.
Let's run the second live object, a shared text note, "shared_text_2.liveobject" in the examples folder which will have the different multicast channel from the first shared text note.
Click a particular cell such as [B3] in this worksheet. Let's embed a shared text note, "shared_text_2.liveobject" in the "examples" folder, into a MS Excel worksheet. Before you activate the shared note, you may want to resize the shared text note as fitable as the selected cell. Then double-click the shared text note to in-place activate below.
The restriction for OLE Live Objects here is that both of objects cannot be in-place activated simultaneously according to the OLE specification. This feature will be covered later by "OLE Automation" technology.
This example shows you how live objects are embedded in a Microsoft PowerPoint document. If you want to see how the shared desktop works in detial, please see "QuickSilver Live Objects Tutorials".
To run this exampleNow here is an example of live object, a shared desktop. Let's start a server first. Then run a shared desktop.
It is a collection of live objects scattered around on a large two dimensional surface. For instance, we can drag the text note, "shared_text_1.liveobject", drag it onto such a desktop as below.
Then you may want to type some text into the shared text note. Once you make changes, the changes propagate one second after you stop typing to the others as you see above.
As you see, the note as displayed on the desktop stays in the synch with the shared text note windows. So the same object can be embedded in various places. And no matter where it is embedded, where it is accessed from, it always looks the same.
Let's zoom in and out the desktop by scrolling a mouse wheel on the desktop.
Using this technology, we can create arbitrary mashups. Let's add an image live object, "image_1.liveobject" in the examples folder, to the desktop.
Since there is no image on the image live object, you can drag and drop an image file such as bmp, jpg or gif as below.
Let's start a Microsoft PowerPoint template document as an example which will not be provided for you. You can simply create a PowerPoint document. Let's embed a shared text note, "shared_text_1.liveobject" in the "examples" folder, into a MS PowerPoint document by draging and droping the file. Before you activate the shared note, you may want to resize the shared text note as fitable as the document design. Then double-click the shared text note to in-place activate.
This example shows you how live objects are embedded in a Microsoft Word document. If you want to see how the shared desktop works in detial, please see "QuickSilver Live Objects Tutorials".
To run this exampleSuppose that we experience the resue mission in San Diego. For example, if the map displayed the status of the rescue mission, the building colors could indicate whether the buildings have been searched or not. The data would be published by the devices carried by firefighters. This plate on the desktop could be in the mission headquarters.
Let's start (1) a server, "channels_server.liveobject" (2) a shared folder, "shared_folder_1_view.liveobject" and (3) three dimensional desktop, "window_x.liveobject" in examples folder.
By dragging a shared folder, "shared_folder_1.liveobject" in the examples folder onto the desktop, we can attach the desktop onto the folder.
The desktop does not show you anything for now since there is no live objects in the shared folder. Now desktop provides another view into the folder. It displays all live objects that have three dimensional user interface.
For example, I can drag a 3D map, "map_3d.liveobject" in the examples folder, onto the desktop.
You can notice how the folder gets automatically updated. This is because the folder and the desktop are connected to the same multicast channel.
As you see above, we can navigate the space on the map.
At this point, let's start a MS Word template document for the rescue mission.
Then drag and drop the shared folder view onto the Word document. As you see below, the contents in both of shared folder views stay identical since they are connected to the same multicast channel.
In particular, the map graphics could be rendered based on live data. In order to show that, let's drag and drop three live buildings ("building_00_model.liveobject", "building_01_model.liveobject", "building_01_model.liveobject" in the examples folder) into the shared folder or onto the map.
The color of this building is connected to multicast channel. The channel carries a stream of color values. Right now nobody is multicasting. So let me start a publisher ( "building_00_server_0.liveobject", "building_01_server.liveobject" and "building_02_server.liveobject" in the examples folder ) to multicast a stream of color values.
As you move their ruler, new values of color are calculated and published on the channel. And every object connected to it updates itself.
As we mentioned above, if the map displayed the status of the rescue mission, the building colors published by firefighter's devices could indicate whether the buildings have been searched or not.
Let's drag and drop more buildings (from "building_03.liveobject" to "building_15.liveobject" in the examples folder) onto the map or the folder .
Now the buildings don't move. So I can add an airplane, "plane_0_model.liveobject", to this mashup by dragging it from a folder. The airplane object is also based on a multicast channel. This channel is a stream of the airplane's coordinates, speed, orientation and space. Now we wouldn't see anything unless somebody was multicasting those coordinates. So I just started a publisher, "plane_0_server_0.liveobject".
In our architecture, objects can be easily reused. For example, we can take channels with the stream of airplanes' coordinates and connect it to the camera of our spatial desktop. If you aware of real airplanes, you would essentially have a live pilot's view on the area. We can switch between these views easily by grabbing different streams of coordinates and dragging them into our spatial desktop.
In real life, a commander in the mission headquater will see the Word document. He may be able to command something to firefighters' devices or airplanes' GPS devices by wireless multicast channels.
comming soon...