--- bookie/www/setup.html 2001/03/26 08:02:09 1.8 +++ bookie/www/setup.html 2002/07/14 09:36:35 1.12 @@ -1,43 +1,65 @@ -Setup instructions for Bookie: - -
-If you're just browsing or don't need to edit files directly, you can look -at Bookie through the web interface. - -
If you want to contribute to Bookie or compile it, then you should grab a -CVS client and set up a workspace for bookie. - + + ++
If you're just browsing or don't need to edit files directly, you can +look at Bookie through the web interface.+
If you want to contribute to Bookie or compile it, then you should grab +a CVS client and set up a workspace +for bookie.
You download bookie by doing this (you only need to login once, the password -is guest). - -
- cvs -d :pserver:email@example.com:/cvs login - cvs -d :pserver:firstname.lastname@example.org:/cvs co bookie -- -
You need to have a database set up with a database schema. Look in -./sql/solid for an example schema. - -
The database needs data in order to work. I wrote /scripts/import.pl
-which takes in my bookmarks.html file from Netscape and pumps it into the
-database. The script relies on
HTML::TokeParser, which you may need to download from
-ActivePerl or CPAN.
You can start the server from the root directory with: - -
java bookie.xmlrpc.BookieServer -Dbookie.logging=./scripts/logging.properties --Dbookie.database=./scripts/database.properties
There's an Ant script in ./scripts/ which handles compilation and testing. - -
Right now, the only way you get useful data is with the test class
ClientTest, which reads in the RDF to a memory model and writes
-out the answer to some queries (like 'what children does the root node
-have?'). More is on the way.
-Will. +is guest). Please use the prune option when checking out and updating, since +the CVS tree has a lot of dead branches in it.+
cvs -d :pserver:email@example.com:/cvs login+
cvs -d :pserver:firstname.lastname@example.org:/cvs co bookie -P
The java client is in
/clients/swing. There is anant script that should compile everything.
+ The client depends on Jena, Apache XML-RPC, Log4J and Xerces. All the libraries
+should be available in lib. The client's main class is
+will give you the classes, source code and javadoc to play with.
The java server is in
/server. Again, theant script that should compile everything.
+ The server currently depends on JTidy, Marquee XML-RPC, Jisp, Servlet 2.2,
+Log4J, and Xerces, which are all available in lib. The server's main class
The server will create four files on initialization in the current directory: ++
The server does not attempt to limit multiple logins on the same account + from different servers. However, care should be taken with this feature, + as there is no facility to distribute messages between clients that a + branch has been deleted.+
Bookmarks are cached on the server, but since bookmarks are unique to + each client this isn't that much of a win. Performance seems okay for +now (and if anything seems bound on the XML processing and IO overhead). + Database operations are not transactional.+
The server uses an MD5 hashed password for authentication of the client. + Once authenticated, the server maintains a session based off the IP address + of the client. All data is sent in the clear, and as such the passwords +and XML-RPC information may be packet sniffed. + Even if the attacker does not know the clear-text password, he can still +send the MD5 hash to be authenticated as the user. Unfortunately, XML-RPC +does not cover security and +session management very well; if there are any new RFCs I would love to +hear about them. One possible RFC is Jim Flanagan's proposal, but this requires + the use of HTTP digest + authentication, which I believe most clients don't support.+