$Header: /p/shore/public/html/RCS/shore.home.html,v 1.6 1997/09/07 14:40:20 solomon Exp solomon $
Shore Project Home Page
Shore - A High-Performance, Scalable, Persistent Object
Repository
Document Contents:
See Also:
The objective of the Shore project is to design, implement, and
evaluate a persistent object system that will serve the needs of a
wide variety of target applications including hardware and software
CAD systems, persistent programming languages, geographic
information systems, satellite data repositories, and multi-media
applications. Shore expands on the basic capabilities of the
widely-used EXODUS
Storage Manager (developed at Wisconsin, funded by ARPA ) in a number of ways including
support for typed objects, multiple programming languages, a
``Unix-like'' hierarchical name space for named objects, and a
Unix-compatible interface to objects with a ``text'' field. This
interface is intended to ease the transition of applications from
the Unix file system environment to Shore as existing Unix tools
such as vi, emacs, or cc will be able to store their data in Shore
objects without modification.
Shore has a layered architecture that allows users to choose the
level of support appropriate for a particular application. We
briefly overview this architecture here. The paper Shoring
Up Persistent Applications describes the design of Shore in
much greater detail.
The Shore Storage Manager (SM) is a persistent object
storage engine that supports creation of persistent files
of records. Each record can be any size, with efficient
storage of records from a few bytes to megabytes or larger. Records
may be retrieved by object identifier or by scanning
files. The SM provides full concurrency control and recovery (the
so-called ACID properties) with two-phase locking and write-ahead
logging. It also provides robust implementations of btrees and
rtrees and record access through logical object identifiers. The SM
is designed to be used as a library to create value-added
servers tailored to specific applications.
The Shore Value-Added Server (SVAS) builds on the
functionality of the SM to provide typed objects, a Unix-like
directory namespace, access control, and a client-server
architecture supporting object-level caching, transactional
semantics, and security at the server boundary. The NFS value-added
server fully implements the standard NFS (Network File Server)
protocol, allowing legacy applications to access Shore objects as
if they were Unix files.
The Shore Data Language (SDL), which is based on the
Object Database Management Group (ODMG) ODL language, supports
language-independent description of object-oriented data types. The
SDL compiler compiles definitions into type objects stored
in the database and C++ language stubs. The combination of the SDL
compiler and an extensive run-time library allows programmers to
write applications that manipulate objects through type-safe
object references. The library takes care of fetching
objects on demand to an LRU client-level object cache, flushing
changes to the server on transaction commit, and swizzing
and unswizzling references as necessary.
Shore serves as the basis of other database projects, including
Paradise at the
University of Wisconsin and PREDATOR at
Cornell University.
Paradise is a
scalable, parallel geographic information system (GIS) that is
capable of storing and manipulating massive data sets. By applying
object-oriented and parallel database technologies to the problem
of storing and manipulating geographic information, the Paradise
project hopes to significantly advance the size and complexity of
GIS data sets that can be successfully stored, browsed, and
queried.
The PREDATOR
object-relational database system from Cornell University is freely
available for research and education purposes. PREDATOR is a
multi-threaded client-server system built on Shore. It supports
standard relational query-processing with SQL queries,
extensibility with enhanced complex data types with user-defined
methods and aggregates, and WWW access through a Java applet
client.
Beta Release (0.9)
On May 3, 1995 we had our first beta release.
Beta Release (0.9.3)
A second Beta-rlease of Shore (version 0.9.3) was released on
September 18, 1995. It is now obsolete.
Version 1.0
On August 6, 1996 we released Shore,
version 1.0. Gzip'd tar files of the source, documentation and
a binary release (sparc and pentium solaris 2.5), can be found at
<ftp://ftp.cs.wisc.edu/shore/1.0/>
. This release will be removed after release 1.1 is found to be
stable.
Version 1.1
A updated release, with numerous bug fixes and performance
enhancements was announced August 9, 1997. Gzip'd tar files of the
source, documentation and a binary release (sparc and pentium
solaris 2.5), can be found at <ftp://ftp.cs.wisc.edu/shore/1.1/>.
If you encounter any problems with it, please send mail to shore_support@cs.wisc.edu.
Version 1.1.1
A minor bug-fix release relative to 1.1. The most important change
is that it has been patched to work under Linux.
There are two Shore-related mailing lists: shore_support@cs.wisc.edu
and shore_all@cs.wisc.edu.
shore_support@cs.wisc.edu
This mailing list reaches the Shore development team. Use this
address to submit questions, comments, and bug reports to us. You
cannot subscribe to this mailing list. Note that the name is
spelled with an underscore, not a hyphen.
shore_all@cs.wisc.edu
This is a mailing list for users of (and those interested in)
Shore. This list is managed by Majordomo software at
the UW--Madison CS department. It is currently unmoderated, but in
the event it gets cluttered with junk mail we will moderate it.
Use this list to discuss Shore with other users, ask for advice,
exchange tips, etc. The list is also used by the maintainers to to
notify interested parties about new releases and other changes in
the Shore ftp archive
By default, replies will be sent only to the sender, rather than
being posted to the entire list. If you want the entire list to see
your reply, just copy the reply to shore_all.
The shore_all list is a public mailing list,
meaning that anyone may subscribe to it. Only subscribers may post
to the list.
Subscribing to shore_all
To subscribe or to change your subscription, send a message to
majordomo@cs.wisc.edu.
The Subject line of the message is ignored. The body should
contain one or more of the following commands.
- help
- asks Majordomo to send you a brief summary of available
commands.
- subscribe shore_all
- asks that you be added to the mailing list. Note that the list
name is spelled with an underscore, not a hyphen.
- unsubscribe shore_all
- asks that you be removed from the mailing list.
Archives
We keep an archive of past messages to the list. Send a message
containing
index shore_all
to majordomo@cs.wisc.edu
to get a list of the archive files available. The time period
covered by each file should be obvious from the file name. To have
a copy of a particular archive file mailed to you, send a message
containing
get shore_all
filename
to majordomo@cs.wisc.edu.
For example,
get shore_all
shore_all.archive.9704
will get an archive of messages sent during April 1997.
Last Modified:
August 19, 1997
Marvin Solomon / solomon@cs.wisc.edu.