 |
| |
| META TOPICPARENT | name="WonderlandArticles" |
Home | Changes | Index | Search | Go <-- This creates the navigation links to : Home | Help | Index | etc. --> | | | bin/wonderland-smc.sh
| |
> > | Running the SMC on a Separate Machine
Running lots of SMC applications can place a significant load on your server machine.
If you plan to run lots of these you should plan to run the SMC on a separate machine
than the one on which the Wonderland server is running. This section describes how to
configure this.
First, start up the voicebridge and the Wonderland server on one
machine. This will be called the "server machine." If you are using a
source tree and start up the voicebridge, Wonderland server, and the
SMC automatically by running the server.sh script, you should comment
out the execution of runsmc in this script. Then run the script
normally. Conversely, if you normally start these by hand, just omit
the starting of the SMC.
Then, on a separate machine which will be called the "SMC machine", add a "sgs.server=<ip-address-of-server-machine>" entry
to your my.run.properties (for binary release) or my.build.properties (for source tree).
Then run the following:
% cd <your lg3d-wonderland directory>
% ./bin/wonderland-smc.sh (for binary release)
-or-
% ./src/scripts/runsmc (for source tree)
| | | Further Reading
|
| |
| META TOPICPARENT | name="WonderlandArticles" |
Home | Changes | Index | Search | Go <-- This creates the navigation links to : Home | Help | Index | etc. --> | | |  | |
< < | It highlights two different ways applications can be launched in-world: via the "server master client" (SMC) or by a Wonderland | > > | This diagram highlights two different ways applications can be launched in-world: via the "server master client" (SMC) or by a Wonderland | | | client running on Linux/Solaris. The SMC is a special instance of a Wonderland client (that you never see) whose purpose is
to launch shared applications in-world so that all clients may interact with them, but is not associated with any one Wonderland | |
< < | client in particular (hence, it is a 'system wide' shared application). Also, each individual Wonderland client may launch its
own shared applications in-world so that all clients may interact with them. The shared application is associated with the
Wonderland client who launches it, so once the Wonderland client leaves the world, so does the shared application.
In Figure 1, the SMC launches and hosts the Firefox ('FF', solid rectangle) applications in-world; the two Wonderland clients
may interact with it ('FF', dashed rectangles). Although, the Wonderland client (running on either Linux or Solaris) can launch
its own applications to be shared, e.g. StarOffice? ('SO', solid rectangle). The other Wonderland client (running on either
Windows or Mac OSX) can interact with it ('SO', dashed rectangle). | > > | client in particular (hence, it is a 'system wide' shared application). Also, any individual Wonderland client that runs on Solaris
or Linux may launch its own shared applications in-world so that all clients may interact with them. The shared application is
associated with the Wonderland client who launches it, so once the Wonderland client leaves the world, so does the shared application.
In Figure 1, the SMC launches and hosts the Firefox ('FF', solid rectangle) application in-world; Wonderland clients
may interact with it ('FF', dashed rectangles). Wonderland clients that run on either Linux or Solaris can also launch
and interact with their own shared applications, e.g. StarOffice ('SO', solid rectangle). Other clients that run on either
Mac OS X or Windows may interact with these client-launched shared applications ('SO', dashed rectangle). | | | Sharing an Application from a Wonderland Client | | | The list of available applications is configured via a file in the Wonderland source code: apps.xml located in either the
lg3d-wonderland.dev.java.net/src/config/apps-solaris or lg3d-wonderland.dev.java.net/src/config/apps-linux directories
depending upon whether the Wonderland client runs on Solaris or Linux, respectively. The apps.xml file is an XML serialization | |
< < | of an array of the org.jdesktop.lg3d.wonderland.appsshare.AppConfigX11Example class. The header of this file is: | > > | of an array of the org.jdesktop.lg3d.wonderland.appshare.AppConfigX11Example class. The header of this file is: | | |
<?xml version="1.0" encoding="UTF-8"?> | | | | |
< < | LOCAL | > > | Local | | |
| | |
| |
< < | Note that the first application entry in this file has , the second will have an index of 1, etc. There are several important | > > | Note that the first application entry in this file should have an index of 0, the second should have an index of 1, etc. There are several important | | | attributes to set. The name attribute specifies the name that appears in the menu, and the command attribute specifies the command | |
< < | that launches the application. | > > | that launches the application. Note: The command is interpreted relative to the path of the launching client. So, for example, if
the command consists of "firefox" then the executable firefox must be in the execution path of the
launching client. | | | You may also configure how and where the shared application appears. The cellDimensions property gives the <x, y, z> dimensions of
the application, in this example 10 m x 10 m x 10m. You may leave this attribute as is -- it is simply used by the Wonderland server to | |
< < | coarsely determine whether your application will be visible at a distance. Since you shared application is likely smaller than 10 m x 10 m x 10 m,
your shared application will be visible to an avatar farther away than if you set these dimension to the actual dimensions of your shared
application (which is likely not possible until run-time). | > > | coarsely determine whether your application will be visible at a distance. | | | | |
< < | The cellPosition properly defines the initial position of the shared application. XXX | > > | There are two ways to specify the position of the application (or, more specifically, the center point of the primary window of the application). | | | | |
< < | XXX need to talk about other parameters. | > > | 1. Absolute positioning (Local or SMC apps) | | | | |
> > | In the first method, the property initInBestView is set to false and cellPosition is set to the desired center point (in world coordinates).
In addition, cellRotateY is specified to the desired rotation angle (in degrees) around the world Y (vertical) axis. When this positioning method is used
the application will appear at the specified position and have the specified rotation each time it is launched.
This positioning method may be used for both local and SMC apps.
2. Best View positioning (Local apps only)
In the second method, the property initInBestView is set to true. This will make the app appear flat in front of where the launching user is currently
looking. In this method, the values of the cellPosition and cellRotateY properties are ignored.
This positioning method may be used only for local SMC apps.
Other configuration parameters include:
appMenu
For an application that is to be launched by a Wonderland user client (that is, for an app entry that is in apps.xml) the value of the appMenu
property must be set to Local. All application entries in the apps.xml file must have an appMenu value of Local.
For an application that is to be launched by the SMC (that is, for an application entry that is in the apps-smc.xml file) the value of the
appMenu property must be one of: Conference Room, Team Room, or Demo Floor. This specifies the Shared Apps submenu
in which the menu entry for the app will be placed.
pixelScale
The pixelScale x and y properties specify the size (in meters) of each pixel of the application. The pixelScale x property specifies the
pixel width and the y property specifies the pixel height. | | | In addition to these pre-configured applications, you can always run any application you specify from the Shared Apps -> Run Local Apps | |
< < | menu item. | > > | menu item on clients running Linux or Solaris. | | | Sharing an Application via the SMC | |
< < | Applications shared via the SMC are system-wide: they persist independently of any one client and are available immediately once the SMC
is started. The SMC can only run on Linux or Solaris. It does not, however, have to run on the same machine as the Wonderland server. The
SMC can be started using the following script from the lg3d-wonderland directory (source build): | > > | Applications shared via the SMC are system-wide: although they are launch by any client, they persist independently of the client and are still
in-world after the client disconnects. The SMC can only run on Linux or Solaris. It is usually run on the same machine as the Wonderland
server, but it does not have to be. To run the SMC on a different machine you merely need to make sure that the sgs.server and sgs.port
properties are set to refer to the Wonderland server in the my.build.properties (source code) or my.run.properties (binary build) in the SMC's
lg3d-wonderland directory.
If you are starting the Wonderland server using src/scripts/server.sh (source code) the SMC is started by this this script. To run the SMC
separately use the following command (assuming your current working directory is lg3d-wonderland): | | |
% src/scripts/runsmc
| |
< < | The applications that appear in-world are configured via apps-smc.xml files in the apps-solaris and apps-linux directories. The format
of the apps-smc.xml file is the same as the format of the apps.xml file, however, the interpretation of some of the attributes as different.
XXX. | > > | or (binary build):
bin/wonderland-smc.sh
| | | Further Reading | |
< < |
- [[https://lg3d-wonderland.dev.java.net/source/browse/*checkout*/lg3d-wonderland/src/classes/org/jdesktop/lg3d/wonderland/scenemanager/resources/xappsharing.html][Wonderland X11 App Sharing Instructions] in the Wonderland User Guide
| > > | | | | |
| |
| META TOPICPARENT | name="WonderlandArticles" |
Home | Changes | Index | Search | Go <-- This creates the navigation links to : Home | Help | Index | etc. --> | | | menu item.
Sharing an Application via the SMC | |
> > | Applications shared via the SMC are system-wide: they persist independently of any one client and are available immediately once the SMC
is started. The SMC can only run on Linux or Solaris. It does not, however, have to run on the same machine as the Wonderland server. The
SMC can be started using the following script from the lg3d-wonderland directory (source build):
% src/scripts/runsmc
The applications that appear in-world are configured via apps-smc.xml files in the apps-solaris and apps-linux directories. The format
of the apps-smc.xml file is the same as the format of the apps.xml file, however, the interpretation of some of the attributes as different.
XXX.
Further Reading
- [[https://lg3d-wonderland.dev.java.net/source/browse/*checkout*/lg3d-wonderland/src/classes/org/jdesktop/lg3d/wonderland/scenemanager/resources/xappsharing.html][Wonderland X11 App Sharing Instructions] in the Wonderland User Guide
- Developers Getting Start (tutorial) - Describes how to download, build, and run Wonderland from the source code
|
| |
| META TOPICPARENT | name="WonderlandArticles" |
Home | Changes | Index | Search | Go <-- This creates the navigation links to : Home | Help | Index | etc. --> | | | Wonderland client who launches it, so once the Wonderland client leaves the world, so does the shared application.
In Figure 1, the SMC launches and hosts the Firefox ('FF', solid rectangle) applications in-world; the two Wonderland clients | |
< < | may interact with it ('FF', dashed rectangles). | > > | may interact with it ('FF', dashed rectangles). Although, the Wonderland client (running on either Linux or Solaris) can launch
its own applications to be shared, e.g. StarOffice? ('SO', solid rectangle). The other Wonderland client (running on either
Windows or Mac OSX) can interact with it ('SO', dashed rectangle). | | | | |
> > | Sharing an Application from a Wonderland Client | | | | |
< < | Any Wonderland client can launch a shared application in-world via the Shared Apps -> Run Local Apps menu item if running | > > | Any Wonderland client can launch a shared application in-world via the Shared Apps -> Run Local Apps menu item if running | | | on Solaris or Linux (the menu item is appropriately enabled/disabled). The Wonderland User's
Guide has more details. | |
> > | The list of available applications is configured via a file in the Wonderland source code: apps.xml located in either the
lg3d-wonderland.dev.java.net/src/config/apps-solaris or lg3d-wonderland.dev.java.net/src/config/apps-linux directories
depending upon whether the Wonderland client runs on Solaris or Linux, respectively. The apps.xml file is an XML serialization
of an array of the org.jdesktop.lg3d.wonderland.appsshare.AppConfigX11Example class. The header of this file is:
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.6.0-dp" class="java.beans.XMLDecoder">
<array class="org.jdesktop.lg3d.wonderland.appshare.AppConfigX11Example" length="2">
where length="2" gives the number of shared applications configured in the menu. For each application to appear in the
Shared Apps -> Run Local Apps menu, an entry that looks like the following appears next:
<void index="0">
<object class="org.jdesktop.lg3d.wonderland.appshare.AppConfigX11Example">
<void property="appMenu">
<object id="AppConfigX11Example$AppMenu1" class="org.jdesktop.lg3d.wonderland.appshare.AppConfigX11Example$AppMenu" method="valueOf">
<string>LOCAL</string>
</object>
</void>
<void property="initInBestView">
<boolean>true</boolean>
</void>
<void property="cellDimensions">
<object class="javax.vecmath.Vector3f">
<void property="x">
<float>10.0</float>
</void>
<void property="y">
<float>10.0</float>
</void>
<void property="z">
<float>10.0</float>
</void>
</object>
</void>
<void property="cellPosition">
<object class="javax.vecmath.Point3f">
<void property="x">
<float>52.0</float>
</void>
<void property="y">
<float>1.7</float>
</void>
<void property="z">
<float>28.0</float>
</void>
</object>
</void>
<void property="cellRotateY">
<float>45.0</float>
</void>
<void property="command">
<string>/usr/bin/gnome-terminal</string>
</void>
<void property="name">
<string>Terminal</string>
</void>
<void property="pixelScale">
<object id="Vector2f0" class="javax.vecmath.Vector2f">
<void property="x">
<float>0.01</float>
</void>
<void property="y">
<float>0.01</float>
</void>
</object>
</void>
</object>
</void>
Note that the first application entry in this file has , the second will have an index of 1, etc. There are several important
attributes to set. The name attribute specifies the name that appears in the menu, and the command attribute specifies the command
that launches the application.
You may also configure how and where the shared application appears. The cellDimensions property gives the <x, y, z> dimensions of
the application, in this example 10 m x 10 m x 10m. You may leave this attribute as is -- it is simply used by the Wonderland server to
coarsely determine whether your application will be visible at a distance. Since you shared application is likely smaller than 10 m x 10 m x 10 m,
your shared application will be visible to an avatar farther away than if you set these dimension to the actual dimensions of your shared
application (which is likely not possible until run-time).
The cellPosition properly defines the initial position of the shared application. XXX
XXX need to talk about other parameters.
In addition to these pre-configured applications, you can always run any application you specify from the Shared Apps -> Run Local Apps
menu item.
Sharing an Application via the SMC |
| |
| META TOPICPARENT | name="WonderlandArticles" |
Home | Changes | Index | Search | Go <-- This creates the navigation links to : Home | Help | Index | etc. --> | | | <-- Please make sure some other page points to your new article so that others can find it! -->
<-- For more on how to write Javapedia articles please read the WritingArticles? page. --> | |
< < | TODO | | | \ No newline at end of file | |
> > | Introduction
This article describes the basic, high-level software architecture and means of configuring the shared application support
in Project Wonderland. Currently, shared applications may only be launched on Linux and Solaris--it uses a modified X11
Server to host the shared applications. Clients on all operating systems (Windows, Mac OSX, Linux, Solaris) are able to see and
interact with shared applications in-world, however.
Figure 1 illustrates the high-level software architecture of shared applications.
It highlights two different ways applications can be launched in-world: via the "server master client" (SMC) or by a Wonderland
client running on Linux/Solaris. The SMC is a special instance of a Wonderland client (that you never see) whose purpose is
to launch shared applications in-world so that all clients may interact with them, but is not associated with any one Wonderland
client in particular (hence, it is a 'system wide' shared application). Also, each individual Wonderland client may launch its
own shared applications in-world so that all clients may interact with them. The shared application is associated with the
Wonderland client who launches it, so once the Wonderland client leaves the world, so does the shared application.
In Figure 1, the SMC launches and hosts the Firefox ('FF', solid rectangle) applications in-world; the two Wonderland clients
may interact with it ('FF', dashed rectangles).
Any Wonderland client can launch a shared application in-world via the Shared Apps -> Run Local Apps menu item if running
on Solaris or Linux (the menu item is appropriately enabled/disabled). The Wonderland User's
Guide has more details. |
|
> > |
| META TOPICPARENT | name="WonderlandArticles" |
Home | Changes | Index | Search | Go <-- This creates the navigation links to : Home | Help | Index | etc. -->
Configuring Wonderland X11 Shared Applications
<-- Your JavaDesktop? article goes here. Please try to include at least one sentence describing this topic. -->
<-- Also please try to include at least one sentence describing where each link goes. -->
<-- Please make sure some other page points to your new article so that others can find it! -->
<-- For more on how to write Javapedia articles please read the WritingArticles? page. -->
TODO |
|