CS/CIS530 S04: Architecture of Large-Scale Information Systems

 
 

Project Resources

This page is a collection of pointers to relevant resources available on the Web. Every software package described here can be used in the CS530 project implementations. This list is far from complete. You probably know how to use Google better than I do ...

J2EE at Sun

You should probably consider Sun a source of documentation rather than executable downloads. Some useful links:

J2EE home
A tutorial
Java Blueprints

In the blueprints section there is a tutorial on developing an Amazon Web Services client.

Apache and Tomcat

Apache is free. It runs more web sites than any other software on the planet, and runs on every interseting platform.

If you don't already have it, go to the Apache home page to see what you are missing.

The corresponding Java Servlet container (and JSP) implementation is at the Tomcat home page.

There is an obscure Microsoft product called “IIS” that you might want to use instead of Apache :-). Or then again you might not.

JBoss (J2EE)

JBoss is a full open-source J2EE implementation written in Java. It runs on any 1.3 or higher JVM, thus works on pretty much any platform, including Windows, Linux and MacOS X.

The site is here and the download site here.

JBoss is slightly immature, but seems to be a rising star. It is becoming quite feature complete, including JMS, distributed transaction suppoort, drivers for any database you might want to use, and so on.

It is implemented entirely in Java, very portable and reasonably scalable but with the usual caveats about Java's raw performance.

Eclipse and MyEclipse

This is an IDE for Java development and deployment. It is compatible with a number of target platforms, including JBoss. It is implemented in Java and ruuns on on any 1.3 or higher JVM, so it reasonably portable.

It consists of two parts: the basic Eclipse system and a collection of plugins called MyEclipse. These are available at

www.eclipse.org
www.myeclipseide.com

In my opinion this system is a big fragile, but it does a tremendous amount of stuff automatically.

Spread Toolkit

Spread is a portable toolkit that implements group communication primitives. The home page is http://www.spread.org/. Here is a really short overview of its capabilities.

The strong point of Spread is fault-tolerant group communication (such as reliable multicast with various ordering guarantees). Of course this is not without its cost. But if you want application server failover with no loss of session state, this is an option.

Spread was used in a number of the CS514 projects last semester.

Oracle

Oracle software is available under a free “development license,” with obvious restrictions that imply you can't use the software to do any actual data processing in your business.

The interesting components are

Oracle Database 10g
Oracle Application Server 10g

Oracle is really heavyweight, both to download and to run, and is a rather complex installation. Also, it wants to run on a Linux or Solaris system. The Oracle RDBMS probably is not something you want to install on your laptop!

The major advantage of Oracle is that every technology we will discuss in class can be made to work on Oracle.

We have made the Oracle database platform available on a pair of Linux machines dedicated to CS530:

cs530db1.cs.cornell.edu    and    cs530db2.cs.cornell.edu

Our current plan is to treat the Oracle database as the “enterprise data server” giving each project group its own database user on each of the shared Oracle servers. Other options (e.g. the hot standby option supported by Oracle) are possible, but would require scheduling dedicated time on the server pair. Contact ademers@cs.cornell.edu or adrianb@cs.cornell.edu to discuss this.

The place to read about Oracle is the Oracle Technology Network, http://otn.oracle.com. This site has a great deal of useful documentation and many examples. It requires (free) registration. The site is a bit too marketing-oriented for my taste, but ...

Here are the necessary documents for setting up Oracle Advanced Replication):

  • Two Day DBA (PDF)
  • Administrator Guide (PDF)
  • Replication Guide (PDF)
  • Replication API (PDF)

(copied here in the interest of saving network traffic).

Instructions (from Adrian) for creating a script to set up replication of your Oracle schema between our two database instances:

  • Note that every table to be replicated should have a primary key column. Your table almost certainly does have a primary key, but it may not be declared to the database as a primary key constraint. It needs to be declared.
  • Read the Oracle Database Advanced Replication Management API Reference tutorial. (You should register at otn.oracle.com in order to read this document)
  • Use Chapter 3 to create a Master Group Replication (we use a multimaster environment).
  • The name of your replication group is dbaccount_repg, where dbaccount is your account on the database.
  • I will use cs530db1 as a master definition site. Thus, to add cs530db2 to the replication group, use the DBMS_REPCAT.ADD_MASTER_DATABASE procedure with 'sample.cs530db2.cs.cornell.edu' as the value of the master parameter.

Links to our db servers 

Here is a .zip file containing an Oracle sqlplus client for Windows. To use this on a Windows machine you need to unzip the files into a directory called <Oracle>. You then need to set the ORACLE_HOME Windows variable to the location of this <Oracle> directory and add <Oracle>\bin to your path.

From a command prompt, run

sqlplus /nolog
connect user/password@cs530db1.cs.cornell.edu

This also works on cs530db2.cs.cornell.edu.

Code example with a connection to DB1:

http://cs530db1.cs.cornell.edu:8888/test.jsp

Example with a connection to DB2:

http://cs530db2.cs.cornell.edu:8888/test.jsp

Registry Server jwsdp:

http://cs530db1.cs.cornell.edu:8080/RegistryServer

Information about Java WSDP technologies:

http://java.sun.com/webservices/webservicespack.html

 
 

HOME | ANNOUNCE | ADMIN | SCHED | LECT | HW | PROJ | MAIL