4. Mobiware Features
Signalling
programmable handoff
flow/session bundling
mobile soft-state
Transport
active wireless transport
adaptive FEC
active filters
Management
mobiman: Java-based tool
Multimedia Applications
adaptive video applications (clients/servers)
data applications
mobiware application GUI
5. Mobiware code
at a glance
Mobiware comprises a set of programmable
distributed CORBA objects that support the delivery of adaptive QoS flows
in wireless broadband networks. The details about the functionality and
the interaction of these objects are readily given in [Nossdav98]. A summary
of the Mobiware objects and the corresponding executable files that need
to be built are given in the Table 2.1 below:
|
object name
|
type
|
description
|
executable file
|
|
MobileDevice
|
CORBA object
|
Provides APIs for quering
beconing information, registration with an access point, connection establishment
and handoff
|
mobile_terminal.exe
|
|
AccessPoint
|
CORBA object
|
It supports binding
to the wireline network, on behalf of mobile stations, propagating CORBA
calls for connection establishment and refreshing, and injecting active
filters and adaptive error controllers.
|
access_point_server.exe
|
|
NodeServer
|
CORBA object
|
Abstracts and represents
physical ATM switch/routers and is fully quality of service programmable.
|
node_server.exe
switch_gsmp
|
|
MobilityAgent
|
CORBA object
|
Provides flow management,
handoff signalling, and mobility management services
|
mobiware_cm_server
|
|
ATMRoute
|
CORBA object
|
Provides routing information
to the MobilityAgent object
|
atm_route_server
|
|
MWManage
|
Java Class
|
Graphical tool for mobility
control cand management.
|
MWManage.class
|
|
FilterDaemon
|
Java Class
|
Arranges the injection
of an Active Transport Object (ATO) to a strategic point inside the network.
|
FilterDaemon.class
|
|
FilterServer
|
Java Class
|
Database of transport
objects. It provides the FilterDaemon with ATOs
|
FilterServer.class
|
|
MediaSelector
|
Java Class
|
Active Filter that performs selective frame dropping.
|
MediaSelector.class
|
|
MediaSource
|
CORBA object
|
A multimedia on-demand
server. It supports client registration and multimedia transmission over
ATM
|
MediaSource_server.exe
|
|
MediaReceiver
|
CORBA object
|
A multimedia client.
|
MediaReceiver_server.exe
|
|
-
|
C++ application
|
Application that packetizes
MPEG video into Application Level Frames. It is used by the MediaSource
Object.
|
videosource.exe
|
|
-
|
C++ application
|
Application that transmits
simple ASCII text. It is used by the MediaSource Object.
|
atml_test.exe
|
|
-
|
C++ application
|
Application that receives
and displays siimple ASCII text.
|
mtdp_spawn.exe
|
Table I: Mobiware Objects and Executable
files
Mobiware source code directory for NT comprises
10 subdirectories called applications, core, datapath, gui filters,
network, services, startup, transport, and wavelan. The source
code directory for Solaris comprises 2 subdirectories called net,
and services. Table II gives a short description for the content
of each directory. The source code consists of
38220 lines of C++, Java and IDL code.
directory
(lines of code)
|
description
|
platform
|
applications
(1593)
|
Source code for the
videosource, atml_test and mtdp_spawn applications
|
Windows NT
|
core (3298)
|
Contains the definition
and implementation of fundamental low level objects, and data tructures
|
Windows NT
|
datapath (3736)
|
Contains the implementation
of a programmable ATM-Wireless LAN gateway. It is used by the AccessPoint
object.
|
Windows NT
|
GUI (2175)
|
The files for the Mobiware
graphical management tool.
|
Windows NT
|
filters (1207)
|
It includes the implementation
of filter daemons, filter servers and Active Transport Objects (ATOs)
|
Windows NT
|
network (9922)
|
The most significant
part of the code. It contains the files for the distributed network objects
shown in Table I, such as MobileDevice, AccessPoint, NodeServer
|
Windows NT
|
services (444)
|
The definition and implementation
of MobilityAgent and ATMRoute objects
|
Windows NT
|
startup (1138)
|
Programs for installing
and executing Mobiware easily
|
Windows NT
|
transport (3112)
|
It contains the definition
and implementation of the MediaSource and MediaReceiver objects together
with their underlying transport mechanisms.
|
Windows NT
|
wavelan (722)
|
Header files for the
beaconing functions and methods. Their Implementation is provided as a
static library
|
Windows NT
|
net (5821)
|
Implementation of wireline
distributed network objects, such as NodeServer.
|
Solaris
|
services (5052)
|
The definition and implementation
of MobilityAgent and ATMRoute objects
|
Solaris
|
Table II: Mobiware source code
6. Installing
Mobiware
First, download and uncompress the source
code packages for both the NT and Solaris environments. In Windows NT you
may use WinZip, whereas in Solaris type gunzip *.tar.gz
and then tar -xvf *.tar.
The NT package contains the files needed to build the executables that
run on wireless access points (pentium PCs), mobile devices (notebooks),
and mobile devices' peer hosts (PCs), whereas the Solaris package contains
the files for the NodeServer and MobilityAgent objects, that run on sparc
workstations.
Mobiware can be compiled in two different
modes: debug and release. In release mode, printout messages are suppressed
and this applies to both the NT and Solaris packages. Also the NT executables
produced in debug mode, support Microsoft Developer Studio's debuger. We
suggest you to initially install mobiware in debug mode. Take care that
your environment's system variables are set to appropriate values.
In windows NT, click on Start, Settings, Control Panel,
System, Environment to add or modify the
IT_CONFIG_PATH user variable.
It should be set to the path and filename of the Orbix configuration
file. You may use the one included in the mobiware package
(Orbix\Orbix_mobiware.cfg
. In Solaris you may type
setenv IT_CONFIG_PATH <location of the Orbix configuration file>.
Follow the procedure above to make sure that your
CLASSPATH
system variable includes the mobiware home
directory, and your path
contains the bin and
original\bin
directories for the Orbix package, the
bin
directory for the OrbixWeb package (NT package only), and the
bin_debug or
bin_release
directory of the mobiware package, depending on your compilation mode.
6.1 Installing Mobiware in Windows NT
To install mobiware on all NT running mobiware
nodes customize the system configuration file system.cfg,
which is located under the configs
directory of the mobiware package. Instructions on how to customize it
are contained inside the file. NT-running mobiware nodes are of three types:
access points, mobile terminals and peer hosts. In the current version of
mobiware, peer hosts cannot be co-located with access points.
You need to
provide one configuration file, for each distributed object of the programmable
mobile network that runs on every mobiware node (viz.
NodeServer,
AccessPoint, and
MobileDevice objects).
This file should be located under the
configs
directory as well. The names of all these configuration files are declared in
system.cfg, as it is explained
inside that file. The mobiware package contains a number of examples of
these configuration files, such as ap1_base.cfg, ap1_node.cfg,
peer_node.cfg etc.
To proceed with the installation type under
the bin_debug or bin_release
directory: install <NODE_ID>. The NODE_ID
should be exactly as described in the system.cfg
. For example it may be
AP1, AP2, MOBILE etc.
Next you will need to compile all mobiware
projects written in C++ and CORBA. There are 8 sub-directories under the
NT package. Each one contains a Microsoft Developer
Studio workspace file, which can be used to enable the process of building the
source code. The directories of Mobiware's source code are best shown in
Table II. Before building each Microsoft Visual C++ project, however
you should customize your Developer Studio's environment, by entering
the appropriate include directories and library directories, as discussed
in section 4 of this page. The Vicsual C++ project
are set by default to the DEBUG
active configuration.
Attention: The MediaReceiver_server
project contains the files asyncio.cpp and
asyncrdr.cpp which are not included in the source
code of Mobiware, but instead in the sample files of Direct show's SDK.
Remove these files from the project, and add them again, taking care that, this time
they are located at your own Direct Show's
samples/async/base path.
Finally to execute mobiware on each NT
running machine type startup_script <NODE_ID>
,
where <NODE_ID> should
be the same as declared in the system.cfg
file for that particular node and used in the
installation of the system.
We advice you, if you have enough disk
space, to download, and uncompress the package contaning the MPEG-1 test
clips that were used in our extensive testing of mobiware.
6.2 Installing Mobiware in Solaris
First customize your Orbix configuration
file. You might want to use the one provided with the package. In this
case, also edit and customize all the *.IMP files under the
Orbix/Implementation directory
of the Solaris package, or explicitly register the servers for the NodeServer
and MobilityAgent objects.
Second, edit the file
src/setenv.sh
and modify the path of GNU's make, if different.
Next, edit the file src/mobiware.mk
and set the variable MOBI_HOME
equal to your mobiware home directory.
You might need to insert valid paths for varius Unix compilers, drivers and
utilities. Modify accordingly the variables from AR
to C++
, and also IDL_HOME
, FORE_HOME
, X11_HOME
, and MOTIF_INCDIR
.
Also choose the appropriate set of compilation flags according to your
mode (debug/release).
Then you have to accurately specify your
system's topology. The network's topology is declared in a file called
node.topology. An example
of such file is included in the bin_debug
directory of the Solaris package. Instructions on how to customize this
file are contained inside the file. Additionally for every NodeServer object,
that runs on each workstation of your network, you have to provide a
configuration file. An example of such a file is included in the Solaris
package (Configs/atml_switch.cfg
).
Instructions on how to customize it, are contained inside the file.
To build mobiware, enter the directory
src and type source
setenv.sh; afterwords
makesoftlinks
under bin_debug
or
bin_release depending
on
your compilation mode. Then enter the directory src/net
and
type make clean first and
then make all. Do the same
for the directory src/services.
Your code has been successfully built. Be careful to use
removesoftlinks
before makesoftlinks, when
re-building mobiware.
Finally to execute mobiware on all
workstations
that run Solaris, type startup_script
under
bin_debug or
bin_release
directory, depending on your compilation mode.
7. What else
do I need to know?
This section describes how the Microsoft's
Developer Studio environment should be customized, for the successful
compilation of the C++ code contained in the NT package. An example is given
below:
Let us assume that the mobiware home directory
is c:\mobiware, that the Orbix
home directory is c:\Orbix,
that DirectShow SDK is installed under c:\MSAMovDK, and that the AtmSockets SDK is installed undet
c:\atmsock. Then, click on Options,
Directories to add the following directories into your Microsoft
Developer Studio's Environment.
Include Directories:
C:\Orbix\original\include,
C:\mobiware\src\network, C:\mobiware\src\network\idl, C:\mobiware\src\network\include,
C:\mobiware\src\datapath, C:\mobiware\src\datapath\idl, C:\mobiware\src\datapath\include,
C:\mobiware\src\services, C:\mobiware\src\services\idl, C:\mobiware\src\services\include,
C:\mobiware\src\transport, C:\mobiware\src\transport\idl, C:\mobiware\src\transport\include,
C:\mobiware\src\core, C:\mobiware\src\core\idl, C:\mobiware\src\core\include,
C:\mobiware\src\applications, C:\mobiware\applications\include,
C:\mobiware\src\wavelan\include, C:\mobiware\src\startup, C:\mobiware\src\startup\include,
C:\MSAMovDK\include, C:\MSAMovDK\classes\base, C:\MSAMovDK\samples\async\include,
C:\atmsock\inc
Library Directories:
C:\Orbix\original\lib
C:\mobiware\lib
C:\MSAMovDK\lib
C:\atmsock\lib
We remind that, after entering the directories above,
and before compiling the source code, you should exit from Microsoft Developer Studio,
so that these changes may be saved in your Windows NT user profile.
8. Download Area
Before downloading mobiware, please read the following:
This is unpublished proprietary software developed as part of the COMET
Group, Center for Telecommunications Research (CTR) at Columbia University.
This software is to be used for research and exploratory development purposes
only; it may not be used for or incorporated in commercial products or
services without the prior written permission of the CTR.
All advertising materials mentioning features or use of this software
must display the following acknowledgement: This product includes
software developed by the COMET Group, Center for Telecommunications
Research at Columbia University.
Software and Information furnished in this page is believed to be
accurate and reliable. It is distributed as is, with absolutely no
warranty of any kind, either expressed or implied, including, but not
limited to, the implied warranties of merchantability of fitness for a
particular purpose. The entire risk as to the quality and performance of the
programs is with you. Should the programs prove defective, or cause any
damage, CTR assumes no responsibility to that cost or damage. CTR also
assumes no responsibility for any infringement of patents or other rights of
third parties which may result from its use. No license is granted by
implication or otherwise under any intelectual property rights. Software
and Information is subject to change without notice.
The WaveLAN Utility API and the driver contained in the mobiware package
are property of Lucent Technologies and provided as they are with
no further support.
Mobiware_v10_NT.zip
Mobiware_v10_Sun.tar.gz
test_clips.zip
wavelan_driver.zip