GPS Seamless Archive Center @ SOPAC
Information
Overview
Documentation
News
Resources
FAQ
Web Stats
Online Access
Maps
SOPAC Wizard
UNAVCO Wizard
SOPAC Service
UNAVCO Service
Support
Software
GSAC Forums Contact Us
Participation
Retailing
Wholesaling
SOPAC
Related Links
UNAVCO
SOPAC
CSRC
CDDIS
SCEC
NCEDC
NGS
PANGA
Technologies
PostgreSQL
PostGIS
Oracle Corp.
Red Hat Linux
Apache Server
Perl Language
Participation
GSAC Retailing - What's Involved?

Becoming a GSAC Retailer involves several components, the most important of which is the existence of a dependable, fast, isolated database management system that can be dedicated to GSAC purposes if possible. The second major component is an Apache web server (possibly located on the same machine as the database server) with mod_perl built into it. The third major component is a current installation of the GSAC Perl modules (contained in the current distribution of the GSAC software, available by request from SOPAC). With a fully- loaded, continously-updated GSAC database (one of two types currently supported for GSAC Retailers - Oracle or Postgres), an Apache web server with the mod_perl extension and the Apache::GSAC::handler method registered as a mod_perl "service" on the web server, and a complete GSAC Perl installation, you can begin offering the /GSAC service to the public.

Without a doubt, Retailing is the MOST involved participation one can have in the GSAC, and the most difficult and/or timeconsuming to construct and maintain. The three major components involved in constructing a Retailer service are outlined below. Each component has it's own set of instructions and/or installation process. It is entirely possible, and, in fact, encouraged, that all three components reside on the same server hardware, thereby affording the implementing agency the opportunity to construct and administer their GSAC "service" in complete isolation of the rest of their system if need be.

  • Database Server
  • Though all three Retailer components are necessary to GSAC Retailing (using Perl anyway) the most important is by far the Database Management System. Currently Oracle 8,8i (and probably 9i) and Postgres 7.x databases are supported by the GSAC Perl software. Assuming there are one or more people familiar with and/or responsible for database administration for the GSAC duties of the local agency first and foremost their needs to exist a functional GSAC schema (and associated user accounts) within the database in order for proper interfacing to occur via the GSAC Perl software. Additionally, there is an optional spatial component that requires the PostGIS extension to Postgres or the Spatial Option for Oracle Enterprise Edition. Sample SQL scripts and instructions for creating the schema are contained in the GSAC software distribution under the subdirectory schemas; this is where you should go for more information about the database component, and then email SOPAC if you have further questions.

  • Apache Web Server
  • While the database facilitates ALL of the "backend" Wholesaler->Retailer syncronization and information management, the Apache web server of the local Retailer facilitates ALL of the "frontend" interaction with GSAC users. Since it would not only be painful, insecure, and inefficient to provide the public with direct access to your database, it would be extremely difficult to implement seamlessly across multiple Retailers since each would probably offer different methods for interacting with their own service. Thus, a URI-based request and response protocol has been established to help ensure the seamless nature across multiple Retailers, and to the data holdings and monument catalog information they contain.

    For this part of the Retailing "project" one needs to build an Apache web server, with a compiled-in mod_perl extension, and/or utilize a preexisting server (with mod_perl) for GSAC purposes. mod_perl is the critical ingredient here as it facilitates direct communication between the Apache process and the local GSAC database via the GSAC Perl modules. It also ensures faster execution since there is a Perl interpretor built into the Apache process, making it much faster than, say, a CGI-based interface. Of course, the database we're speaking of must be visible and/or accessible from the web server machine, if they aren't one in the same. As for the Apache configuration all that needs to modified is the addition of a few lines to httpd.conf, namely: SetHandler perl-script PerlHandler +Apache::GSAC There are no more instructions regarding this component at this time. Please feel free to email SOPAC if you have further questions.

  • GSAC Perl Libraries
  • The GSAC Perl libraries serve as the glue between the web server and database server, translating requests from HTTP URIs into appropriate methods for the native GSAC::Agent driver. From a Retailers perspective the ONLY modifications required are in their respective gsac.conf file. Although actual functionality, and semantics vary between Oracle and Postgres the methods available to the Apache mod_perl service through the corresponding GSAC::Agent driver are identical. This will allow multiple GSAC Retailers to provide the EXACT same URI-based interface to the public.

    This component of Retailing will be installed during the installation process of the GSAC distribution. Please refer to The Perl-related component of the GSAC for more information.

    After installation, the operator will edit their gsac.conf file and specify what type of database they are using, how to connect to it through the Perl DBI, what user and password to use during the connection, and what special options their database supports. (see your gsac.conf file for more detailed instructions)

  • Database Syncronization (backend)
  • Assuming all of the above requirements are met, none of this will work unless the given Retailer can 1) populate their database with the entire holdings (monument and data) of EVERY participating Wholesaler, and 2) keep their database accurate and up-to-date with the Wholesalers indefinately. There is one particular utility designed to perform these two functions for a Retailer. The utility is called gsac-sync and it is included in the GSAC distribution under /bin. Using this utility a Retailer can maintain a current GSAC database. It is a system-level script designed to help fulfill the "backend" responsibilities of a GSAC Retailer.
  • Web-Based GSAC Clients (frontend)
  • Last, but not least, users of the GSAC can become familiar with the GSAC, it's function, it's purpose and design, using either a custom application of the Retailer's choosing or the provided CGI Wizard /cgi-bin/GSAC.cgi and/or the command-line utility /bin/gsac-client. GSAC.cgi offers a graphical Wizard interface enabling basic to moderately-complex GSAC query generation and interaction. However, Retailers should stress to their users that the actual "service" can be accessed via non-graphical tools as well; as long as the tool supports the HTTP protocol it can be used to "fetch" GSAC requests in the same fashion as the most advanced graphical web browsers.

Copyright® 1996-2007 Scripps Orbit and Permanent Array Center, UCSD      |      GSAC Help Forums