
Mingle server 1.0 10/5/2002
--------------------------------------------------------

Mingle is a secure distributed search system developed by CMU for
personal computing. The Mingle package consists of a Mingle server
sub-package and a Mingle client sub-package. This is the server part
of the Mingle system. To get the Mingle system running, you will also
need to build and install the Mingle client.

The Mingle server implementation uses the Crypto++ library (version
4.2) implemented by Wei Dai for the RSA algorithms used in the
package. For more information about the Crypto++ library, refer to the
following website: http://www.eskimo.com/weidai/cryptlib.html


GENERAL FEATURES

-Indexing: Mingle builds an inverted index table of local files on
each participating Mingle host for fast search.

-Searching: Mingle supports keyword searching on one or more
participating Mingle hosts. A query can be processed by the local
host, or routed through remote hosts to locate all of the desired
data. Advanced search options include: (1) file title/content search,
(2) logic operations "OR", "AND" in a query, (3) wildcard matching
(e.g. use "a*" as a keyword).

-Security: Mingle allows file owners to grant search permissions to
other Mingle users on a file-by-file basis.  Each request is
authenticated to protect data from being searched by unauthorized
users.


SYSTEM REQUIREMENTS AND INSTALLATION

Mingle is written in C++. Up to this time, it has been tested on Linux
version 2.4.7 up (gcc version 2.95.3 up).  To build (and install) the
Mingle server, read and follow the directions in the file "INSTALL"
(in the same directory as this file).
 

USAGE

-Master server configuration: You will need to configure a master
server in each Mingle cluster that consists of one or more Mingle
hosts. The master server maintains the list of host names inside the
cluster.  Modify the mingle.config file for master server
configuration.

-Mingle single sign-on: Each user will be represented by a global
unique Mingle id within a Mingle cluster.  The mingle id needs to be
signed on at the master server once before using the Mingle system.

-User authentication: Each remote request will be authenticated using
the conventional digital signature mechanism.  Each Mingle user will
have a pair of RSA keys (a public RSA key and a private RSA key) that
are generated by the Master server at single sign-on. Mingle servers
can cache both keys for user convenience and better performance
(Modify the mingle.config file to set up RSA key TTLs for caching).

-Access control: The access control specification is performed by
access-right mapping where a file owner maps a remote user to a local
(or afs) user name (or group name), meaning the remote user is able to
search all the files that are searchable by the mapped local (or afs)
user (or group).

-Indexing: At the beginning, none of the files is indexed. Each user
has to explicitly specify which directory (or file) to be indexed into
the inverted index table.  The index table will then be updated
regularly.

-Searching: Search is performed based on the index table. After a user
submits a query (a keyword combination), Mingle displays all the
matching results from the index table of the specified hosts.


MORE INFO

See http://www.cs.cmu.edu/~mingle