HyperCast
SOURCES Readme
June 2006
1.
Overview of modules
The
CVS sources of HyperCast include the following modules.
- hypercast.
Contains HyperCast protocols and
overlay socket. This module is needed
for all other modules.
- lotos.
Contains the Lotos(Logical Topology
Simulator) simulation package.
- RunControl.
Contains applications for monitoring and controlling experiments of
HyperCast networks.
- Pastry.
Contains source code that allows to
run the Pastry distributed hash table protocol in HyperCast.
The source code consists of FreePastry code
from Rice University and wrapper code that provides the interfaces
expected by
HyperCast.
This file
describes the hypercast module.
2.
Open Source License
HyperCast
is being made available under the terms version 2.1 of the
GNU Lesser General Public License
("LGPL").
FreePastry
files contained in the Pastry module are disseminated with a
BSD like open source license. For details see
http://freepastry.org/ for details.
3.
Files in hypercast module
Other
files
Makefile
This is a
GNU Makefile that
contains instructions for compiling all or parts of the sources,
generating
Javadoc, \ files, building the target "/lib/hypercast.jar", and
generating a ZIP archive with binaries and other files.
XML
files:
hypercast.xml
HyperCast
configuration file. This file needs to be customized
when running programs with overlay
sockets, as described in HyperCast-BINARIES-Readme.html and the Chapters on the API (available from the Design Docs link at www.hypercast.org).
Readme
files:
/HyperCast-SOURCES-Readme.html - this file
/HyperCast-BINARIES-Readme.html - Readme
file for hypercast binaries
Certificate:
testcert.cer
- A
self-signed digital certificate for
security settings
.keystore
-
Java Keystore file that contains private
key for public key in testcert.cer
Note:
These files are used for the security protocols of HyperCast.They
contain a self-signed certificate and a private key for the
certificate.
These
files need to be replaced by locally created files. Instructions are
provided in the Chapter on Security (available from the Design Docs link at www.hypercast.org).
Directories:
lib
Directory
with external *.jar
files needed for HyperCast.
After compiling HyperCast,
the JARFILE hypercast.jar will be put in this directory.
lib/bcprov-jdk14-122.jar
Implementation
of cryptographic algorithms (www.bouncycastle.org)
lib/xalan.jar
XSLT
processor for XML documents
(xml.apache.org/xalan-j/)
lib/crimson.jar
XML classes
needed for JDK 1.5 and later (not needed for JDK
1.4)
/bin
Contains a
few scripts
conf.sh,
conf.bat - starts the
HyperCast configuration editor
version.sh,
gui.bat
- displays the version of HyperCast
/src/hypercast
- contains common source files for
overlay socket
/src/hypercast/DT
- DT protocol
files
/src/hypercast/HC
- HC protocol files
/src/hypercast/SPT
- SPT
protocol files
/src/hypercast/NONE
- files for
the NONE protocol
/src/MonitorandControl
- files
of the monitor protocol
/src/hypercast/adapters
- contains
code for adapters
/src/hypercast/nodeloaders
-
files for creating overlay nodes
/src/hypercast/events
- files
that define HyperCast events
/src/hypercast/util
- XSD Schema
file and misc. utility files
4.
Version Identifiers
The following files contain the version identifiers.
/src/hypercast/util/Version.java
/src/hypercast/util/hypercast.xsd
/src/hypercast/util/hypercast_private.xsd
Before creating a new version of HyperCast, the version identifier in
these files should be updated. Running the Version.class file displays the version identifier stored in Version. java.
Releases
posted at SourceForge should follow the convention that a release
has a tag which identifies the developer who created the
release and the date of the creation of the release.
However, the version
numbering of HyperCast is not strictly enforced. Each developer
(including the
developers that maintain the Sourceforge.net repository) is
responsible for maintaining a meaningful or consistent versioning
scheme.
5.
Compiling HyperCast (without Makefile)
This
version of HyperCast compiles with Java SDK version 1.4 or later.
HyperCast also compiles with earlier versions of the Java SDK (Note
that
different external jar files may be needed.).
HyperCast has been used and compiled for SDK that compile for the
Pocket PC
platform. Refer to additional documentation from the www.hypercast.org
website. Compiling HyperCast with an IDE is straightforward. With
Eclipse, the sources
can be downloaded from the CVS repository.
6.
Compiling HyperCast (with Makefile)
The following instructions describe how
to use the Makefile for compiling the
code and creating
ZIP files with
binaries. This
Makefile in the module is a GNU makefile. (On some systems, you need to
run "gmake"). The makefile should run under Unix and under
Windows/Cygwin.
All class files are placed in the /bin
directory. All Javadoc files are placed
in the /javadoc directory.
Remarks:
- The
Makefile creates a VERSIONTAG
which is used to create ZIP files. By default, the VERSIONTAG consists
of a
username and a date. Edit the Makefile
to change the VERSIONTAG.
- Many configuration defaults are
extracted from the XSD schema file hypercast.xsd and placed in the
source
file
/src/hypercast/util/ConfigurationDefaults.java.
The program that extracts the defaults is:
/src/hypercast/util/ExtractConfigurationDefaults.java
Thus, whenever the XSD file has been
modified, one needs to execute the
ExtractConfigurationDefaults program and generate a
new file
ConfigurationDefaults.
Here are the available options for the Makefile:
make,
make complete
Creates
configuration defaults, compiles all sources,
creates lib/hypercast.jar
make hypercast
Like `make
complete',
but does not create JAR file
make HC (or DT, SPT, NONE, util,
events, adapters, ... )
Only
compiles sources in specified
directory.
make Pastry
Tests if /src/hypercast/Pastry
directory is available (note that
Pastry files are in a separate module) and compiles source files.
make
javadoc
Creates Javadoc
files of all methods in
/javadoc_public
directory and creates a ZIP archive.
make
javadocpublic
Creates Javadoc
files of public methods in
/javadoc
directory and creates a ZIP archive.
make
zipbinaries
Generates a
ZIP file with HyperCast
binaries and VERSIONTAG in the name of the ZIP file. The zip files
contains:
lib/*.jar
bin/*.sh
bin/*.bat
examples/*.java
Readme-hypercast-BINARIES
hypercast.xml
testcert.cer
.keystore
make
zipsources
Generates a
ZIP file
with HyperCast sources and VERSIONTAG in the name of the ZIP file. The
zip
files contains:
lib/*.jar
bin/*.sh
bin/*.bat
src/*
hypercast.xml
testcert.cer
.keystore
examples/*.java
Readme-hypercast-BINARIES
Readme-hypercast-SOURCES
Makefile
make
clean
Removes
binary files in
/bin/hypercast/*
and removes javadoc files
7.
Running HyperCast
Refer
to the instructions in
/HyperCast-BINARIES-Readme.html or the instructions on
the website
www.hypercast.org.