Features of data objects implementing the RemoteBean
interface:
Features of the object broker implementing the RemoteBroker interface:
Things which will be done soon:
Things which will be done by the implementation of the Banshee-project:
Some other things:
A complete Distribution contains on the following parts:
Optionally you may install the Log-server package. All binaries necessary for the logging mechanism are coming with this distribution from Skid and are running automatically. If you want to read more about the logging mechanism you have to have a look at the complete Log-server distribution.
Skid has a built in testing mechanism to ensure that the complete functionality is working as specified. All code for local as well as remote test-runs are coming with this Skid distribution. If you want to know more about the test mechanism you have to have a look at the complete Test-script distribution. How to run the test is described in section .
Skid support all level 4 JDBC driver to enable the physical storage in any SQL-Server. If no database server is available the ASCII-flatfile driver SimpleText (see next subsection) is used to create a local database automatically. Due performance impacts for bigger data-volumes a remote server is recommended.
This implementation has been tested with the free database-server mySQL (see www.mysql.com) which is available for different platforms. Also Oracle SQL server had been tested successfully in prior versions of this distribution. To support different SQL-dialects all needed SQL syntax is defined in a Ressource-class in the asgaard.skid.ressource package which can be maintained easily.
Copyright: (C) 1997 THOUGHT Inc. All rights reserved.
Copyright: (C) 1996 Karl Moss. All rights reserved.
You may study, use, modify and distribute this example
for any purpose, provided that this copyright notice
appears in all copies. This example is provided WITHOUT
WARRANTY either expressed or implied.
You must have at least JDK1.1.6 from JavaSoft or compatible Java
environment at the Server you want to run Skid. In the rest of
this page we assume that the Java interpreter (java) is installed
correctly and available in your path. Native-code compilations of
Skid are planned, but not implemented yet.
$ mysql mysql
mysql> insert into user values ('%', 'name', password('[a password]'),
'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y');
mysql> quit
$ mysqladmin reload
See also: mySQL-Manual 6.4 Adding new user privileges to MySQL
Note: This is a very priveleged user - you should specify 'N' to many of the above!
This user has to be named when you start Skid (see command line parameters in section ).
$ mysqladmin create skid # (skid is our database - name)
The Database is created as a subdirectory from the installation path e.g. mysql/data/skid.
The following packages (Java-Bytecode) have to be copied to the server-machine and added to the CLASSPATH. If you habe chosen an other database than we, ensure that you are using the right JDBC-driver.
The remote Skid-server Log is started with a Java virtual machine like
java asgaard.skid.Skid
Command line parameter are -hpPFLHMTDCUWmlt:
-h print this help message
-pP <propertyfile> alternative path for the skid file
-pF <DBpath> local directory if using a flatfile database
-pL <LOGpath> local directory to write the LOGFILE
-pH <mail HOST> used mailer (local log only)to
-pM <mail CC> cc mailed statements (local log only)
-pT <mail TO> mailed statements to (local log only)
-pS <LOGserver> remote LOGSERVER
-pK <LOGsize> mail if the Logfile extends <LOGsize>kb
-l<statement> log created statements up to this level
-m<statement> mail created statements (local log only)
0 process no statements
1 process security statements
2 process error statements
3 process warning statements
4 process remark statements
5 process backup statements
6 process debug statements
-pD <JDBC-drivername> e.g. oracle.jdbc.driver.OracleDriver
-pC <connectstring> e.g. jdbc:oracle:thin:@<host>:<port>:<database>
-pU <connectuser>
-pW <connectpassword>
-t runs the testscript
The parameter are not stored, so need to be specified on every
start. To store the settings edit the .property file in the
root directory of Skid. Additional reading of the
Log-server are recommended.
Before starting the Skid-server the rmiregistry must be started to establish the RMI name-service.
To start Skid type
rmiregistry
java -cp skid.jar;utils.jar;test.jar;SimpleText.zip asgaard.skid.Skid -t
java -cp skid.jar;utils.jar;test.jar;SimpleText.zip asgaard.skid.TestSkid <host>
First statement starts the registry, the second one a local
instance of the Skid server and the last does a remote test
of the remote Skid interface. For <host> insert the
IP-adress of the host where Skid is running.
A complete command-line call could look like:
rmiregistry
java -cp skid.jar;utils.jar;mysql.jar;activation.jar;mail.jar;SimpleText.zip
asgaard.skid.Skid
-pD org.gjt.mm.mysql.Driver
-pC jdbc:mysql://<host-IP>:<port>/skid
-pU <username>
-pW <password>
The use of Skid is implemented in one class named BeanBroker. For more detailed information please have a look at the javadoc-documentation.
BeanBroker broker = new BeanBroker(); // a new broker
// (one per VM)
SkidBean b = new SkidBean(); // instanciates a new Bean (1)
b.setXXX(); // sets properties
b.getXXX(); // get properties
b.undo(); // undo changes
// if in setXXX
SkidBean.modify(); // was implemented
b.flush(); // stores changes explizit
BeanLink[] l = b.getLink(); // all links of this bean
SkidBean b2 = l[i].getTo(); // get the connected Bean
// with the rekursion Bean/Link
// all data in the DB is available (2)
SkidBeanFilter f = b2.getFilter(); // 2nd possibility to (3)
// find beans
f.setFilterEntry("Vorname", "Klaus", FILTER_EQ); // def.
SkidBean[] b3 = f.getBeans(); // get the search result
BeanLinkFilter f2 = l.getFilter(); // same thing for links
b.addEvent( b2 ); // create an event (-> PUSH)
b.suscribeEvent(); // suscribe a type of Event
SkidEvent[] e = b.getEvent(); // get the events (4)
A overview about all classes from package asgaard.skid is given by Figure . A short intro in the outlined classes:

To create the stub classes the remote asgaard.skid.Skid and asgaard.skid.SkidBean class has to be compiled with the rmic compiler too.