--- doc/gutshtml/SessionTwo.html 2002/06/28 20:30:29 1.1 +++ doc/gutshtml/SessionTwo.html 2003/07/22 14:47:00 1.2 @@ -1 +1,1441 @@ -
Internally, all resources are identified primarily by their URL. Different logical areas of the server are distinguished by the beginning part of the URL:
Authors can only write-access the /~authorname/ space. They can copy resources into the resource area through the publication step, and move them back through a retrieve step. Authors do not have direct write-access to their resource space.
The standard mode in which the Apache web server is used is that a URL corresponds to some static file on the file system, which then more or less gets sent out as-is. Slight deviations from that simple principle are however already the directory listing function, virtual servers, and the cgi-bin directory. In the latter case, Apache executes the file in a new process and provides both the input to the process in the environment, and routes the output to the client. Other deviations are the error messages.
In a more general view, URLs to Apache are URIs (Uniform Resource Identifiers), which may are may not correspond to a physical file, which in turn may or may not be sent out as-is.
As a request for a URI gets sent to the Apache server, it goes through several phases. At each phase (ÒstageÓ) along the process, handler modules can be defined to deal with the request. Details about these phases are given in the Eagle book Chapter 3 (page 60).
These handler modules are not like cgi-scripts executed in a separate process, but are dynamically linked into the Apache child processes themselves Ð they run inside of Apache. The mod_perl mechanism in addition links the Perl interpreter into the Apache child process. Modules are pre-interpreted (ÒcompiledÓ) by the Perl interpreter when they are first loaded, and the pre-interpreted code stays permanently in the memory allocated to that Apache child process. The result is a significant speed-up, and through the flexible mechanism of module registration and different stages of the process, a high degree of customizability.
LON-CAPA does not use Apache::Registry, and so in addition avoids the unnecessary overhead of emulating a cgi-environment within the handlers. Instead, it makes direct use of the Apache Perl API (Chapter 9, Eagle book).
Which chain of handler deals with which kind of resource is defined in /etc/httdp/conf/loncapa_apache.conf. LON-CAPA only defines handlers at the (in order) header-parser, access control, and response phase (figure 3-3 Eagle book). In the header-parser phase, the replication handler is run, and in the access-control phase, the various access-handlers. Future handlers will mostly be implemented in the response phase. Fig. 1.2.2 shows excerpts of the configuration script /etc/httpd/loncapa_apache.conf for these modules.
# ------------------------------------------------------------- Access Handlers
<LocationMatch "^/res.*">
PerlAccessHandler Apache::lonacc
PerlHeaderParserHandler Apache::lonrep
ErrorDocument 403 /adm/login
ErrorDocument 404 /adm/notfound.html
ErrorDocument 406 /adm/roles
ErrorDocument 500 /adm/errorhandler
</LocationMatch>
<LocationMatch "^/priv.*">
PerlAccessHandler Apache::loncacc
SetHandler perl-script
PerlHandler Apache::lonconstruct
ErrorDocument 403 /adm/login
ErrorDocument 404 /adm/notfound.html
ErrorDocument 406 /adm/unauthorized.html
ErrorDocument 500 /adm/errorhandler
</LocationMatch>
<LocationMatch "^/raw.*">
PerlAccessHandler Apache::lonracc
</LocationMatch>
<LocationMatch "^/\~.*">
PerlAccessHandler Apache::loncacc
ErrorDocument 403 /adm/login
ErrorDocument 404 /adm/notfound.html
ErrorDocument 406 /adm/unauthorized.html
ErrorDocument 500 /adm/errorhandler
AllowOverride None
</LocationMatch>
É
# --------------------------------------------- Resource Space Content Handlers
<LocationMatch "^/res/.*/$">
SetHandler perl-script
PerlHandler Apache::lonindexer
</LocationMatch>
<LocationMatch "^/res/.*\.tex$">
SetHandler perl-script
PerlHandler Apache::lontex
</LocationMatch>
<LocationMatch "^/res/.*\.page$>
SetHandler perl-script
PerlHandler Apache::lonpage
</LocationMatch>
É
<LocationMatch "^/(res|\~).*\.(xml|html|htm|xhtml|xhtm)$">
SetHandler perl-script
PerlHandler Apache::lonxml
</LocationMatch>
<LocationMatch "^/(res|\~).*\.(problem|exam|quiz|assess|survey|form)$">
SetHandler perl-script
PerlHandler Apache::lonhomework
</LocationMatch>
# -------------------------------------------------------------- Admin Programs
<Location /adm/roles>
PerlAccessHandler Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonroles
ErrorDocument 403 /adm/login
ErrorDocument 500 /adm/errorhandler
</Location>
<Location /adm/login>
SetHandler perl-script
PerlHandler Apache::lonlogin
</Location>
É
<Location /adm/annotations>
PerlAccessHandler Apache::lonacc
SetHandler perl-script
PerlHandler Apache::admannotations
ErrorDocument 403 /adm/login
ErrorDocument 500 /adm/errorhandler
</Location>
É etc É
Fig. 1.2.2 Ð Excerpts of loncapa_apache.conf
A user can log into any server in the network and run sessions. The server responsible for initially authenticating the user is the userÕs homeserver.
When a user first accesses a server within a browser session, he or she is challenged to provide authentication information in the form of username, password and domain Ð this is done by lonlogin, which is the error_document for lonacc and loncacc (the normal authentication handlers). When the server receives that information, it asks all library servers in the domain that the user specified to validate the information Ð this is done by lonauth.
The userÕs home server will answer with authorized or non_authorized, all others with unknown_user. If one server authorizes the user, a cookie is returned to the user by lonauth and the session is initialized on the local server by establishing the session environment file. If a server sends non_authorized, the user is rejected. Fig. 1.3.1 illustrates this process.
Domain
ˆ username, password ˆ Library Server
| § unknown_user §
|
| ˆ username, password ˆ Library Server
| § authorized §
|
User ˆ username,password,domain ˆ Server
§ cookie § store session information for valid cookies
Fig. 1.3.1 Ð Illustration of Authentication Mechanism
At all subsequent interactions, the client sends the cookie back to the server Ð if the cookie is missing or invalid, the user is re-challenged for login information. Handlers are lonacc and loncacc. Cookies expire by closing the browser and are invalidated when the user logs out or logs in a second time into the same machine from another browser.
On the library servers, it is a routine in lond that does the authentication. It checks if this is the userÕs homeserver, checks the password, and answers with Òunknown_userÓ, ÒauthorizedÓ or Ònon_authorizedÓ.
Determination if this is the userÕs homeserver is done by the presence of his or her password file in
/home/httpd/lonUsers/domain/1.char/2.char/3.char/username/passwd
for example
/home/httpd/lonUsers/msu/s/m/i/smith/passwd
The password is stored in the format mechanism:info, where mechanism can currently be unix, krb4 or internal. For krb4, the info is the Kerberos domain, for internal it is the crypt password itself. unix simply authenticates against /etc/passwd.
The access handlers Ð coming early in the Apache request cycle Ð also set up the session environment. The cookie received from the web client is a pointer to the session profiles, which are stored in a directory for temporary files (/home/httpd/lonIDs/).
Standard Components
These are the standard components of the environment added by Apache and the shell.
AUTH_TYPE ---- Basic
DOCUMENT_ROOT ---- /home/httpd/html
GATEWAY_INTERFACE ---- CGI-Perl/1.1
HTTP_ACCEPT ---- image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*
HTTP_ACCEPT_CHARSET ---- iso-8859-1,*,utf-8
HTTP_ACCEPT_ENCODING ---- gzip
HTTP_ACCEPT_LANGUAGE ---- en,pdf
HTTP_CONNECTION ---- Keep-Alive
HTTP_COOKIE ---- SITESERVER=ID=cbc6695505253a2ff0e7bb7110574d90; lonID=kortemey_990461714_msu_msul1
HTTP_HOST ---- zaphod.lite.msu.edu
HTTP_REFERER ----
HTTP_USER_AGENT ---- Mozilla/4.75 (Macintosh; U; PPC)
MOD_PERL ---- mod_perl/1.21
PATH ---- /sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bi¤
QUERY_STRING ----
REMOTE_ADDR ---- 35.8.63.7
REMOTE_PORT ---- 1844
REMOTE_USER ---- lonadm
REQUEST_METHOD ---- GET
REQUEST_URI ---- /adm/test
SCRIPT_FILENAME ---- /home/httpd/html/adm/test
SCRIPT_NAME ---- /adm/test
SERVER_ADDR ---- 35.8.63.51
SERVER_ADMIN ---- korte@lite.msu.edu
SERVER_NAME ---- zaphod.lite.msu.edu
SERVER_PORT ---- 80
SERVER_PROTOCOL ---- HTTP/1.0
SERVER_SIGNATURE ----
SERVER_SOFTWARE ---- Apache/1.3.9 (Unix) (Red Hat/Linux) mod_perl/1.21
Resource Access Control
The following values are set by traceroute at the initialization of the course and are used by access handlers to check if a resource can be served to a user.
acc.cond.msu_12679c3ed543a25msul1.0 ---- 0
acc.cond.msu_12679c3ed543a25msul1.1 ---- 0
acc.res.msu_12679c3ed543a25msul1. ---- &:1&
acc.res.msu_12679c3ed543a25msul1.msu/mmp ---- &welcome267.htm:1&welcomelbs267.htm:0&
acc.res.msu_12679c3ed543a25msul1.msu/mmp/applist/Spectrum ---- &s.htm:1&
acc.res.msu_12679c3ed543a25msul1.msu/mmp/applist/chain ---- &chain.htm:1&
acc.res.msu_12679c3ed543a25msul1.msu/mmp/applist/coulomb ---- &orbit.htm:1&
acc.res.msu_12679c3ed543a25msul1.msu/mmp/applist/induct ---- &faraday.htm:1&
acc.res.msu_12679c3ed543a25msul1.msu/mmp/conversions ----
&conv_area.htm:1&prefixes.htm:1&conv_power.htm:1&intro.htm:1&conv_temperature.htm:1&conv_time.htm:1&conv_velocity.htm:1&conversions.sequence:1&conv_length.htm:1&conv_mass.htm:1&conv_pressure.htm:1&conv_volume.htm:1&conv_energy.htm:1&conv_angle.htm:1&sibaseunits.htm:1&
acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap13 ---- &cd371.htm:1&
acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap16 ----
&cd427.htm:1&cd424.htm:1&Stable.htm:1&cd421.htm:1&Constants.htm:1&cd425.htm:1&cd422.htm:1&kap16.sequence:1&cd426.htm:1&cd423.htm:1&
acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap17 ----
&cd436.htm:1&kap17.sequence:1&cd433.htm:1&cd430.htm:1&cd437.htm:1&cd434.htm:1&cd428.htm:1&cd431.htm:1&cd435.htm:1&cd429.htm:1&geometry.htm:1&cd432.htm:1&
acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap17/calculus ---- &calc.htm:1&
acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap18 ----
&RR440.htm:1&RR449b.htm:1&RR446b.htm:1&cd473.htm:1&RR453.htm:1&RR447.htm:1&RR443b.htm:1&RR449a.htm:1&RR450.htm:1&RR452a.htm:1&RR444.htm:1&RR446a.htm:1&sum18a.htm:1|1&RR441.htm:1&RR443a.htm:1&eField.htm:1&RR454.htm:1&RR444b.htm:1&RR448.htm:1&RR447app.htm:1&RR451.htm:1&RR445.htm:1&RR453a.htm:1&kap18.sequence:1&RR439.htm:1&RR447a.htm:1&RR442.htm:1&RR450a.htm:1&RR444a.htm:1&RR448b.htm:1&RR445newch.htm:1&RR4460app.htm:1&RR455.htm:1&RR441a.htm:1&RR449.htm:1&RR452.htm:1&cd438.htm:1&RR446.htm:1&RR454a.htm:1&sum18.htm:1|1&RR446c.htm:1&RR448a.htm:1&RR451a.htm:1&RR443.htm:1&RR445answer.htm:0&RR445a.htm:1&
acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap18/demo ----
&vid440.htm:0&vid440sm.htm:0&vid449.htm:0&vid449-a.htm:0&vid441.htm:0&vid449sm.htm:0&vid455.htm:0&egun.htm:0&egunsm.htm:0&vid441sm.htm:0&vid449-asm.htm:0&vid455sm.htm:0&
acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap18/problems ----
&cd460b.problem:1&cd458.problem:1&cd462.problem:1&cd457.problem:1&cd461.problem:1&cd460.problem:1&cd464.problem:1&cd459.problem:1&cd463.problem:1&
acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap18a ---- &kap18a.sequence:1&
acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap18a/problems ----
&cd465.problem:1&cd472.problem:1&cd466.problem:1&cd467.problem:1&cd470.problem:1&cd468.problem:1&cd471.problem:1&cd469.problem:1&
É etc for all resources in the course É
Browser Information
browser.mathml ----
browser.os ---- mac
browser.type ---- netscape
browser.version ---- 4.75
Cached Information about Courses and their Description
course.msu_12679c3ed543a16msul1.description ---- lbs267L Lab SS01
course.msu_12679c3ed543a16msul1.domain ---- msu
course.msu_12679c3ed543a16msul1.home ---- msul1
course.msu_12679c3ed543a16msul1.last_cache ---- 990461725
course.msu_12679c3ed543a16msul1.num ---- 12679c3ed543a16msul1
course.msu_12679c3ed543a16msul1.url ---- msu/mmp/lbs267l.sequence
course.msu_12679c3ed543a25msul1.description ---- lbs267 Lecture SS01
course.msu_12679c3ed543a25msul1.domain ---- msu
course.msu_12679c3ed543a25msul1.home ---- msul1
course.msu_12679c3ed543a25msul1.last_cache ---- 990461728
course.msu_12679c3ed543a25msul1.num ---- 12679c3ed543a25msul1
course.msu_12679c3ed543a25msul1.url ---- msu/mmp/lbs267.sequence
course.msu_12679c3ed543a37msul1.description ---- Demo Course
course.msu_12679c3ed543a37msul1.domain ---- msu
course.msu_12679c3ed543a37msul1.home ---- msul1
course.msu_12679c3ed543a37msul1.last_cache ---- 990461725
course.msu_12679c3ed543a37msul1.num ---- 12679c3ed543a37msul1
course.msu_12679c3ed543a37msul1.url ---- msu/korte/demo.sequence
Information Imported from the Environment Database File of the User
environment.favorite.cake ---- Cheese Cake
environment.favorite.color ---- green
environment.firstname ---- Gerd
environment.id ---- z12345678
environment.lastname ---- Kortemeyer
Information about the Request
httpref./res/msu/mmp/ ---- /res/msu/mmp/welcome267.htm
request.ambiguous ---- adm/pages/index.html
request.course.fn ---- /home/httpd/perl/tmp/kortemey_msu_12679c3ed543a25msul1
request.course.id ---- msu_12679c3ed543a25msul1
request.course.sec ----
request.course.uri ---- msu/mmp/lbs267.sequence
request.filename ---- /home/httpd/html/adm/test
request.host ---- zaphod.lite.msu.edu
request.role ---- cc./msu/12679c3ed543a25msul1
request.state ---- published
Information about the User
user.domain ---- msu
user.environment ---- /home/httpd/lonIDs/kortemey_990461714_msu_msul1.id
user.home ---- msul1
user.login.time ---- 990461714
user.name ---- kortemey
Information about User Roles and Privileges
user.priv.au./msu/./ ---- :sma&F:gan&F
user.priv.au./msu/./msu/ ---- :cca&IK:are&F:bre&F:cre&F:ere&F
user.priv.ca./msu/korte./ ---- :sma&F:gan&F
user.priv.ca./msu/korte./msu/ ---- :are&F:bre&F:cre&F:ere&F
user.priv.ca./msu/korte./msu/korte ----
user.priv.cc./msu/12679c3ed543a16msul1./ ---- :sma&F:bre&F:mcr&F
user.priv.cc./msu/12679c3ed543a16msul1./msu/ ----
user.priv.cc./msu/12679c3ed543a16msul1./msu/12679c3ed543a16msul1 ---- :opa&F:srm&F:gan&F:are&F:ccr&IK:cep&IK:cta&IK:cre&F:cst&IK:cin&IK:ere&F:vgr&F
user.priv.cc./msu/12679c3ed543a25msul1./ ---- :sma&F:bre&F:mcr&F
user.priv.cc./msu/12679c3ed543a25msul1./msu/ ----
user.priv.cc./msu/12679c3ed543a25msul1./msu/12679c3ed543a25msul1 ---- :opa&F:srm&F:gan&F:cta&IK:cep&IK:ccr&IK:are&F:cin&IK:cst&IK:cre&F:ere&F:vgr&F
user.priv.cc./msu/12679c3ed543a37msul1./ ---- :sma&F:mcr&F:bre&F
user.priv.cc./msu/12679c3ed543a37msul1./msu/ ----
user.priv.cc./msu/12679c3ed543a37msul1./msu/12679c3ed543a37msul1 ---- :opa&F:srm&F:gan&F:are&F:ccr&IK:cep&IK:cta&IK:cre&F:cst&IK:cin&IK:ere&F:vgr&F
user.priv.cm./ ---- :sma&F:mcr&F:gan&F:bre&F
user.priv.cm./msu/ ---- :mau&F:cca&IK:cad&UIK:ccc&U:cst&UIK:cdg&UIK:are&F:cli&UIK:cta&UIK:cep&UIK:ccr&UIK:bre&F:cau&U:cre&F:cin&UIK:ere&F
user.priv.cm./msu/12679c3ed543a16msul1 ---- :opa&F:srm&F:gan&F:are&F:ccr&IK:cep&IK:cta&IK:cre&F:cst&IK:cin&IK:ere&F:vgr&F
user.priv.cm./msu/12679c3ed543a25msul1 ---- :opa&F:srm&F:gan&F:are&F:ccr&IK:cep&IK:cta&IK:cre&F:cst&IK:cin&IK:ere&F:vgr&F
user.priv.cm./msu/12679c3ed543a37msul1 ---- :opa&F:cst&IK:vgr&F:srm&F:gan&F:are&F:ccr&IK:cep&IK:cta&IK:cre&F:cin&IK:ere&F
user.priv.cm./msu/korte ----
user.priv.dc./msu/./ ---- :sma&F
user.priv.dc./msu/./msu/ ---- :mau&F:cad&UIK:ccr&UIK:cep&UIK:cta&UIK:cli&UIK:ccc&U:cau&U:cst&UIK:cin&UIK:cdg&UIK
user.role.au./msu/ ---- 964531839.0
user.role.ca./msu/korte ---- .
user.role.cc./msu/12679c3ed543a16msul1 ---- 964531839.0
user.role.cc./msu/12679c3ed543a25msul1 ---- 964531839.0
user.role.cc./msu/12679c3ed543a37msul1 ---- 964531839.0
user.role.dc./msu/ ---- 964531839.0
Scott Harrison, freeware volunteer, sharrison@sourceforge.net
LON-CAPA provides many different web services for coordinating online educational interactions. Currently, these web services are made available by 77 different perl modules. The invocation of these perl modules is many times due to the URI format based on entries inside /etc/httpd/conf/loncapa_apache.conf.
Throughout this technical manual, various web perl modules are described in detail. Here is a summary of all the 77 web perl modules:
Name/Location |
Description |
SOURCE: rat/lonwrapper.pm |
Wrapper for external and binary files as standalone resources. Edit handler for rat maps; TeX content handler. |
SOURCE: loncom/publisher/loncfile.pm |
Provides web-based functionality for file copy, rename, mkdir, etc, in the construction space menu. |
SOURCE: loncom/interface/lonstatistics.pm |
Handler to show statistics on solving LON-CAPA problems. |
SOURCE: loncom/publisher/londiff.pm |
Handler to show difference between two files. |
SOURCE: loncom/publisher/lonupload.pm |
Handler to upload files through browser into construction space. |
SOURCE: loncom/homework/essayresponse.pm |
Handler to evaluate essay (ungraded) style responses. |
SOURCE: loncom/homework/externalresponse.pm |
Handler to evaluate externally graded responses. |
SOURCE: loncom/homework/loncapagrade.pm |
Handler to evaluate externally graded responses. |
SOURCE: loncom/publisher/lonpubdir.pm |
Handler to publish directories. |
SOURCE: loncom/publisher/lonretrieve.pm |
Handler to retrieve old versions from resource space. |
SOURCE: loncom/homework/edit.pm |
Helper functions when in homework edit mode. |
SOURCE: loncom/interface/lonmeta.pm |
Metadata display handler. |
SOURCE: rat/lonambiguous.pm |
Handler to resolve ambiguous file locations. |
SOURCE: rat/lonratparms.pm |
Handler to set resource parameters inside of the RAT based on metadata. |
SOURCE: rat/lonsequence.pm |
Handler for showing sequence objects of educational resources. |
SOURCE: loncom/interface/loncreatecourse.pm |
Allows domain coordinators to create new courses and assign course coordinators. |
SOURCE: loncom/interface/loncreateuser.pm |
Allows users to within their own privileges create/edit users and give them roles. |
SOURCE: loncom/interface/lonchart.pm |
Produces simple LectureOnline-like student assessment performance chart |
SOURCE: loncom/interface/loncommon.pm |
Makes a table out of the previous attempts. Inputs result_from_symbread, user, domain, home_server, course_id. |
SOURCE: loncom/homework/grades.pm |
Handles the viewing of grades. |
SOURCE: loncom/homework/imageresponse.pm |
Coordinates the response to clicking an image. |
SOURCE: loncom/homework/optionresponse.pm |
Handles tags associated with showing a list of options. |
SOURCE: loncom/homework/outputtags.pm |
Handles tags associated with output. Seems to relate to due dates of the assignment. |
SOURCE: loncom/interface/lontest.pm |
Used for debugging and testing the LON-CAPA system. |
SOURCE: loncom/homework/radiobuttonresponse.pm |
Handles multiple-choice style responses. |
SOURCE: loncom/interface/lonassignments.pm |
Handles processing of assignments. |
SOURCE: loncom/interface/loncommunicate.pm |
Will be the access handler to email sending, as well as the planned chatrooms, etc. |
SOURCE: loncom/interface/lonerrorhandler.pm |
Handles errors. |
SOURCE: loncom/interface/lonevaluate.pm |
Handles evaluation. |
SOURCE: loncom/interface/lonfeedback.pm |
Handles feedback from students to instructors and system administrators. Provides a screenshot of the current resource, as well as previous attempts if the resource was a homework. Used by lonmsg.pm. |
SOURCE: loncom/interface/lonnavmaps.pm |
Handles navigational maps. |
SOURCE: loncom/interface/lonpreferences.pm |
Handles user preferences associated with customizing the online LON-CAPA educational environment. |
SOURCE: loncom/interface/lonprintout.pm |
Handles the production of printable files and resources. |
SOURCE: loncom/interface/lonsearchcat.pm |
Handles a searchable catalogue. |
SOURCE: loncom/interface/londropadd.pm |
Allows course coordinators to upload courselists in different formats, and automatically create users (if they do not exist already), assign them the role of student in a course, and add them to the classlist. |
SOURCE: loncom/interface/lonmsg.pm |
lonmsg.pm has several functions to send and receive internal messages. author_res_msg - send message to resource author. user_crit_msg - send a critical message to a user. A critical message will require acknowledgment by the recipient and the sender will be notified. user_crit_received - routine to trigger acknowledgment. statuschange - change the status of a message (read, replied, forwarded, etc). The handler also displays messages, has routines to reply, etc. |
SOURCE: loncom/homework/hint.pm |
This handler coordinates the delivery of hints to students working on LON-CAPA problems and assignments. |
SOURCE: loncom/interface/lonspreadsheet.pm |
Spreadsheets are completely web-based. They exist on the level of a whole course, a student, and individual assessments. |
SOURCE: loncom/interface/lonparmset.pm |
Handler to resolve ambiguous file locations |
SOURCE: loncom/publisher/lonconstruct.pm |
Page wrapper for handling construction space. |
SOURCE: loncom/publisher/lonpublisher.pm |
Publishes an LON-CAPA educational resource complete with metadata (authorship, language, copyright, creation date, etc). |
SOURCE: loncom/interface/lonmenu.pm |
Has routines which control the remote control. |
SOURCE: rat/lonpageflip.pm |
Deals with forward, backward, and other page flips. |
SOURCE: rat/lonratedt.pm |
Builds up frame set and loads in the right thing. |
SOURCE: loncom/html/res/adm/pages/homeworkmenu.html |
Homework remote control. |
SOURCE: loncom/html/res/adm/pages/annotator/admannotations.pm |
This will take annotations and then plug them into a page. |
SOURCE: loncom/html/res/adm/pages/bookmarkmenu/admbookmarks.pm |
This will take bookmarks and get/write/display them for the LON-CAPA user interface. |
SOURCE: rat/lonratsrv.pm |
Handler that takes output from RAT and stores it on disk. Handles the upper hidden frame of the added window that comes up in RAT. (3 frames come up in RAT server, code, and output. This module handles server connection.) |
SOURCE: rat/lonpage.pm |
bundles pages into one page |
SOURCE: rat/lonuserstate.pm |
compile course into binary data structure (in loncom/rat) |
SOURCE: loncom/xml/lontex.pm |
Handler for tex files (somewhere in modules) |
SOURCE: loncom/xml/lontexconvert.pm |
Access to tth/ttm |
SOURCE: loncom/xml/lonxml.pm |
XML Parsing Module |
SOURCE: loncom/xml/lonplot.pm |
XML-based plotter of graphs |
SOURCE: loncom/xml/style.pm |
Style Parsing Module |
SOURCE: loncom/xml/londefdef.pm |
Tags Default Definition Module |
SOURCE: loncom/xml/run.pm |
used to prevent poorly written problems from causing lingering after effects |
SOURCE: loncom/xml/scripttag.pm |
implements <script>, <scriptlib>, <parserlib>, and <import> |
SOURCE: loncom/homework/randomlabel.pm |
Interface for producing applet code which randomizes the labelling of an image. |
SOURCE: loncom/homework/lonhomework.pm |
handles requests for output, evaluation, and alteration of a homework resource |
SOURCE: loncom/homework/inputtags.pm |
produces HTML input tags (<INPUT>) for rendering homework resources |
SOURCE: loncom/homework/structuretags.pm |
produces HTML tags necessary for structuring the presentation of homework resources |
SOURCE: loncom/homework/response.pm |
defines different types of responses given to student as well as syntax for producing response values |
SOURCE: loncom/homework/caparesponse/caparesponse.pm |
handles request to the CAPA homework processing engine |
SOURCE: loncom/xml/Safe.pm |
Meant to safely substitute for CPAN version of Safe. Allows for safely executing embedded perl comands in a way that does not threaten the operating system. |
SOURCE: loncom/auth/localauth.pm |
Local authentication mechanism (meant to be customized). |
SOURCE: loncom/auth/lonacc.pm |
(This module, like loncacc.pm also authenticates with cookies.) lonacc.pm coordinates access to a wide range of administrative-type functions (e.g. roles, logout, annotations, and bookmarks) as well as coordinating access to educational resources. |
SOURCE: loncom/auth/lonracc.pm |
access handler for file transfers |
SOURCE: loncom/auth/loncacc.pm |
This module provides access to an educational resource construction area. This module is invoked by the URL-related pattern syntax LocationMatch "^/priv.*" or LocationMatch "^/\~.*". Authentication of user identity is coordinated through cookies. The abbreviation "cacc" corresponds to "construction-space access"). If the cookie handle is invalid, then this module returns a forbidden status and makes appropriate log entries. If the cookie handle is valid, status is determined to be okay (and, for the "priv"-type access, the resource is delivered by the lonconstruct module). |
SOURCE: loncom/auth/lonauth.pm |
authenticate, set up session environment |
SOURCE: loncom/auth/lonlogin.pm |
login screen |
SOURCE: loncom/auth/lonlogout.pm |
logout |
SOURCE: loncom/lonnet/perl/lonrep.pm |
replication |
SOURCE: loncom/auth/lonroles.pm |
This perl handling module reads in the available roles available for a LON-CAPA user (different courses, different privileges, etc) and produces a form-element HTML page which allows the user to select which role he wishes to exercise in the LON-CAPA system. For instance, a user may want to select between being a student in a thermodynamics physics course or a teaching assistant for an introductory calculus class. |
SOURCE: loncom/interface/lonindexer.pm |
cross server filesystem browser |
SOURCE: loncom/interface/groupsort.pm |
Implements a second phase of importing multiple resources into the RAT. Allows for reordering the sequence of resources. |
SOURCE: loncom/lonnet/perl/lonnet.pm |
This file is an interface to the lonc processes of the LON-CAPA network as well as set of elaborated functions for handling information necessary for navigating through a given cluster of LON-CAPA machines within a domain. There are over 40 specialized functions in this module which handle the reading and transmission of metadata, user information (ids, names, environments, roles, logs), file information (storage, reading, directories, extensions, replication, embedded styles and descriptors), educational resources (course descriptions, section names and numbers), url hashing (to assign roles on a url basis), and translating abbreviated symbols to and from more descriptive phrases or explanations. |
SOURCE: loncom/homework/lectureonline.lcpm |
Intended for providing perl functions for the <script></script> environment in a problem that was converted from lectureonline. |
SOURCE: loncom/homework/default_homework.lcpm |
Provides many functions for the <script> environment in a .problem. Functions are documented in CVS:loncapa/doc/homework/homework5.html. |
Internally, all resources are identified primarily by their URL. Different + logical areas of the server are distinguished by the beginning part of the + URL:
+Authors can only write-access the /~authorname/ space. They can copy resources into + the resource area through the publication step, and move them back through + a retrieve step. Authors do not have direct write-access to their resource + space.
+The standard mode in which the Apache web server is used is that a URL corresponds + to some static file on the file system, which then more or less gets sent + out as-is. Slight deviations from that simple principle are however already + the directory listing function, virtual servers, and the cgi-bin directory. + In the latter case, Apache executes the file in a new process and provides + both the input to the process in the environment, and routes the output to + the client. Other deviations are the error messages.
+In a more general view, URLs to Apache are URIs (Uniform Resource Identifiers), + which may are may not correspond to a physical file, which in turn may or + may not be sent out as-is.
+As a request for a URI gets sent to the Apache server, it goes through several + phases. At each phase (ÒstageÓ) along the process, handler modules can be + defined to deal with the request. Details about these phases are given in + the Eagle book Chapter 3 (page 60).
+These handler modules are not like cgi-scripts executed in a separate process, + but are dynamically linked into the Apache child processes themselves Ð they + run inside of Apache. The mod_perl mechanism in addition links the Perl interpreter + into the Apache child process. Modules are pre-interpreted (ÒcompiledÓ) by + the Perl interpreter when they are first loaded, and the pre-interpreted code + stays permanently in the memory allocated to that Apache child process. The + result is a significant speed-up, and through the flexible mechanism of module + registration and different stages of the process, a high degree of customizability.
+LON-CAPA does not use Apache::Registry, and so in addition avoids the unnecessary + overhead of emulating a cgi-environment within the handlers. Instead, it makes + direct use of the Apache Perl API (Chapter 9, Eagle book).
+Which chain of handler deals with which kind of resource is defined in /etc/httdp/conf/loncapa_apache.conf. + LON-CAPA only defines handlers at the (in order) header-parser, access control, + and response phase (figure 3-3 Eagle book). In the header-parser phase, the + replication handler is run, and in the access-control phase, the various access-handlers. + Future handlers will mostly be implemented in the response phase. Fig. + 1.2.2 shows excerpts of the configuration + script /etc/httpd/loncapa_apache.conf + for these modules.
+# ------------------------------------------------------------- + Access Handlers
+<LocationMatch "^/res.*">
+PerlAccessHandler + Apache::lonacc
+PerlHeaderParserHandler Apache::lonrep
+ErrorDocument + 403 /adm/login
+ErrorDocument + 404 /adm/notfound.html
+ErrorDocument + 406 /adm/roles
+ErrorDocument + 500 /adm/errorhandler
+</LocationMatch>
+<LocationMatch "^/priv.*">
+PerlAccessHandler Apache::loncacc
+SetHandler + perl-script
+PerlHandler + Apache::lonconstruct
+ErrorDocument + 403 /adm/login
+ErrorDocument + 404 /adm/notfound.html
+ErrorDocument + 406 /adm/unauthorized.html
+ErrorDocument + 500 /adm/errorhandler
+</LocationMatch>
+<LocationMatch "^/raw.*">
+PerlAccessHandler Apache::lonracc
+</LocationMatch>
+<LocationMatch "^/\~.*">
+PerlAccessHandler Apache::loncacc
+ErrorDocument + 403 /adm/login
+ErrorDocument + 404 /adm/notfound.html
+ErrorDocument + 406 /adm/unauthorized.html
+ErrorDocument + 500 /adm/errorhandler
+AllowOverride None
+</LocationMatch>
+É
+# --------------------------------------------- + Resource Space Content Handlers
+<LocationMatch "^/res/.*/$">
+SetHandler perl-script
+PerlHandler Apache::lonindexer
+</LocationMatch>
+<LocationMatch "^/res/.*\.tex$">
+SetHandler perl-script
+PerlHandler Apache::lontex
+</LocationMatch>
+<LocationMatch "^/res/.*\.page$>
+SetHandler perl-script
+PerlHandler Apache::lonpage
+</LocationMatch>
+É
+<LocationMatch "^/(res|\~).*\.(xml|html|htm|xhtml|xhtm)$">
+SetHandler perl-script
+PerlHandler Apache::lonxml
+</LocationMatch>
+<LocationMatch "^/(res|\~).*\.(problem|exam|quiz|assess|survey|form)$">
+SetHandler perl-script
+PerlHandler Apache::lonhomework
+</LocationMatch>
+# -------------------------------------------------------------- + Admin Programs
+<Location /adm/roles>
+PerlAccessHandler + Apache::lonacc
+SetHandler perl-script
+PerlHandler Apache::lonroles
+ErrorDocument + 403 /adm/login
+ErrorDocument + 500 /adm/errorhandler
+</Location>
+<Location /adm/login>
+SetHandler perl-script
+PerlHandler Apache::lonlogin
+</Location>
+É
+<Location /adm/annotations>
+PerlAccessHandler + Apache::lonacc
+SetHandler perl-script
+PerlHandler Apache::admannotations
+ErrorDocument + 403 /adm/login
+ErrorDocument + 500 /adm/errorhandler
+</Location>
+É etc É
+Fig. 1.2.2 Ð Excerpts of loncapa_apache.conf
+A user can log into any server in the network and run sessions. The server + responsible for initially authenticating the user is the userÕs homeserver.
+When a user first accesses a server within a browser session, he or she is + challenged to provide authentication information in the form of username, + password and domain Ð this is done by lonlogin, which is the error_document + for lonacc and loncacc (the normal authentication handlers). + When the server receives that information, it asks all library servers in + the domain that the user specified to validate the information Ð this is done + by lonauth.
+The userÕs home server will answer with authorized or non_authorized, all others with unknown_user. If one server authorizes + the user, a cookie is returned to the user by lonauth + and the session is initialized on the local server by establishing the session + environment file. If a server sends non_authorized, the user is rejected. Fig. + 1.3.1 illustrates this process.
+Domain
+ˆ + username, password ˆ Library + Server
+| § + unknown_user §
+|
+| ˆ + username, password ˆ Library + Server
+| § + authorized §
+|
+User ˆ + username,password,domain ˆ + Server
+§ cookie § + store session information for valid + cookies
+Fig. 1.3.1 Ð Illustration of Authentication Mechanism
+At + all subsequent interactions, the client sends the cookie back to the server + Ð if the cookie is missing or invalid, the user is re-challenged for login + information. Handlers are lonacc and loncacc. Cookies expire by closing the browser and are invalidated + when the user logs out or logs in a second time into the same machine from + another browser.
+On the library servers, it is a routine in lond that does the authentication. It + checks if this is the userÕs homeserver, checks the password, and answers with Òunknown_userÓ, + ÒauthorizedÓ or Ònon_authorizedÓ. +
+Determination if this is the userÕs homeserver is done + by the presence of his or her password file in
+/home/httpd/lonUsers/domain/1.char/2.char/3.char/username/passwd
+for example
+/home/httpd/lonUsers/msu/s/m/i/smith/passwd
+The password is stored in the format mechanism:info, where mechanism can currently be unix, krb4 + or internal. For krb4, the info is the Kerberos domain, for internal it is the crypt password itself. unix simply authenticates against /etc/passwd.
+The access handlers Ð coming early in the Apache request cycle Ð also set + up the session environment. The cookie received from the web client is a + pointer to the session profiles, which are stored in a directory for temporary + files (/home/httpd/lonIDs/). +
+Standard Components
+These are the standard components of the environment added by Apache and + the shell.
+AUTH_TYPE ---- + Basic
+DOCUMENT_ROOT ---- + /home/httpd/html
+GATEWAY_INTERFACE + ---- CGI-Perl/1.1
+HTTP_ACCEPT ---- + image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*
+HTTP_ACCEPT_CHARSET + ---- iso-8859-1,*,utf-8
+HTTP_ACCEPT_ENCODING + ---- gzip
+HTTP_ACCEPT_LANGUAGE + ---- en,pdf
+HTTP_CONNECTION + ---- Keep-Alive
+HTTP_COOKIE ---- + SITESERVER=ID=cbc6695505253a2ff0e7bb7110574d90; lonID=kortemey_990461714_msu_msul1
+HTTP_HOST ---- + zaphod.lite.msu.edu
+HTTP_REFERER ---- +
+HTTP_USER_AGENT + ---- Mozilla/4.75 (Macintosh; U; PPC)
+MOD_PERL ---- mod_perl/1.21
+PATH ---- /sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bi¤
+QUERY_STRING ---- +
+REMOTE_ADDR ---- + 35.8.63.7
+REMOTE_PORT ---- + 1844
+REMOTE_USER ---- + lonadm
+REQUEST_METHOD + ---- GET
+REQUEST_URI ---- + /adm/test
+SCRIPT_FILENAME + ---- /home/httpd/html/adm/test
+SCRIPT_NAME ---- + /adm/test
+SERVER_ADDR ---- + 35.8.63.51
+SERVER_ADMIN ---- + korte@lite.msu.edu
+SERVER_NAME ---- + zaphod.lite.msu.edu
+SERVER_PORT ---- + 80
+SERVER_PROTOCOL + ---- HTTP/1.0
+SERVER_SIGNATURE + ----
+SERVER_SOFTWARE + ---- Apache/1.3.9 (Unix) (Red Hat/Linux) mod_perl/1.21
+Resource Access Control
+The following values are set by traceroute at the initialization of the + course and are used by access handlers to check if a resource can be served + to a user.
+acc.cond.msu_12679c3ed543a25msul1.0 + ---- 0
+acc.cond.msu_12679c3ed543a25msul1.1 + ---- 0
+acc.res.msu_12679c3ed543a25msul1. + ---- &:1&
+acc.res.msu_12679c3ed543a25msul1.msu/mmp + ---- &welcome267.htm:1&welcomelbs267.htm:0&
+acc.res.msu_12679c3ed543a25msul1.msu/mmp/applist/Spectrum + ---- &s.htm:1&
+acc.res.msu_12679c3ed543a25msul1.msu/mmp/applist/chain + ---- &chain.htm:1&
+acc.res.msu_12679c3ed543a25msul1.msu/mmp/applist/coulomb + ---- &orbit.htm:1&
+acc.res.msu_12679c3ed543a25msul1.msu/mmp/applist/induct + ---- &faraday.htm:1&
+acc.res.msu_12679c3ed543a25msul1.msu/mmp/conversions + ----
+&conv_area.htm:1&prefixes.htm:1&conv_power.htm:1&intro.htm:1&conv_temperature.htm:1&conv_time.htm:1&conv_velocity.htm:1&conversions.sequence:1&conv_length.htm:1&conv_mass.htm:1&conv_pressure.htm:1&conv_volume.htm:1&conv_energy.htm:1&conv_angle.htm:1&sibaseunits.htm:1&
+acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap13 + ---- &cd371.htm:1&
+acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap16 + ----
+&cd427.htm:1&cd424.htm:1&Stable.htm:1&cd421.htm:1&Constants.htm:1&cd425.htm:1&cd422.htm:1&kap16.sequence:1&cd426.htm:1&cd423.htm:1&
+acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap17 + ----
+&cd436.htm:1&kap17.sequence:1&cd433.htm:1&cd430.htm:1&cd437.htm:1&cd434.htm:1&cd428.htm:1&cd431.htm:1&cd435.htm:1&cd429.htm:1&geometry.htm:1&cd432.htm:1&
+acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap17/calculus + ---- &calc.htm:1&
+acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap18 + ----
+&RR440.htm:1&RR449b.htm:1&RR446b.htm:1&cd473.htm:1&RR453.htm:1&RR447.htm:1&RR443b.htm:1&RR449a.htm:1&RR450.htm:1&RR452a.htm:1&RR444.htm:1&RR446a.htm:1&sum18a.htm:1|1&RR441.htm:1&RR443a.htm:1&eField.htm:1&RR454.htm:1&RR444b.htm:1&RR448.htm:1&RR447app.htm:1&RR451.htm:1&RR445.htm:1&RR453a.htm:1&kap18.sequence:1&RR439.htm:1&RR447a.htm:1&RR442.htm:1&RR450a.htm:1&RR444a.htm:1&RR448b.htm:1&RR445newch.htm:1&RR4460app.htm:1&RR455.htm:1&RR441a.htm:1&RR449.htm:1&RR452.htm:1&cd438.htm:1&RR446.htm:1&RR454a.htm:1&sum18.htm:1|1&RR446c.htm:1&RR448a.htm:1&RR451a.htm:1&RR443.htm:1&RR445answer.htm:0&RR445a.htm:1&
+acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap18/demo + ----
+&vid440.htm:0&vid440sm.htm:0&vid449.htm:0&vid449-a.htm:0&vid441.htm:0&vid449sm.htm:0&vid455.htm:0&egun.htm:0&egunsm.htm:0&vid441sm.htm:0&vid449-asm.htm:0&vid455sm.htm:0&
+acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap18/problems + ----
+&cd460b.problem:1&cd458.problem:1&cd462.problem:1&cd457.problem:1&cd461.problem:1&cd460.problem:1&cd464.problem:1&cd459.problem:1&cd463.problem:1&
+acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap18a + ---- &kap18a.sequence:1&
+acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap18a/problems + ----
+&cd465.problem:1&cd472.problem:1&cd466.problem:1&cd467.problem:1&cd470.problem:1&cd468.problem:1&cd471.problem:1&cd469.problem:1&
+É etc for all + resources in the course É
+Browser Information
+browser.mathml + ----
+browser.os ---- + mac
+browser.type ---- + netscape
+browser.version + ---- 4.75
+Cached Information about Courses and their Description
+course.msu_12679c3ed543a16msul1.description + ---- lbs267L Lab SS01
+course.msu_12679c3ed543a16msul1.domain + ---- msu
+course.msu_12679c3ed543a16msul1.home + ---- msul1
+course.msu_12679c3ed543a16msul1.last_cache + ---- 990461725
+course.msu_12679c3ed543a16msul1.num + ---- 12679c3ed543a16msul1
+course.msu_12679c3ed543a16msul1.url + ---- msu/mmp/lbs267l.sequence
+course.msu_12679c3ed543a25msul1.description + ---- lbs267 Lecture SS01
+course.msu_12679c3ed543a25msul1.domain + ---- msu
+course.msu_12679c3ed543a25msul1.home + ---- msul1
+course.msu_12679c3ed543a25msul1.last_cache + ---- 990461728
+course.msu_12679c3ed543a25msul1.num + ---- 12679c3ed543a25msul1
+course.msu_12679c3ed543a25msul1.url + ---- msu/mmp/lbs267.sequence
+course.msu_12679c3ed543a37msul1.description + ---- Demo Course
+course.msu_12679c3ed543a37msul1.domain + ---- msu
+course.msu_12679c3ed543a37msul1.home + ---- msul1
+course.msu_12679c3ed543a37msul1.last_cache + ---- 990461725
+course.msu_12679c3ed543a37msul1.num + ---- 12679c3ed543a37msul1
+course.msu_12679c3ed543a37msul1.url + ---- msu/korte/demo.sequence
+Information Imported from the Environment Database File of the User
+environment.favorite.cake + ---- Cheese Cake
+environment.favorite.color + ---- green
+environment.firstname + ---- Gerd
+environment.id + ---- z12345678
+environment.lastname + ---- Kortemeyer
+Information about the Request
+httpref./res/msu/mmp/ + ---- /res/msu/mmp/welcome267.htm
+request.ambiguous + ---- adm/pages/index.html
+request.course.fn + ---- /home/httpd/perl/tmp/kortemey_msu_12679c3ed543a25msul1
+request.course.id + ---- msu_12679c3ed543a25msul1
+request.course.sec + ----
+request.course.uri + ---- msu/mmp/lbs267.sequence
+request.filename + ---- /home/httpd/html/adm/test
+request.host ---- + zaphod.lite.msu.edu
+request.role ---- + cc./msu/12679c3ed543a25msul1
+request.state ---- + published
+Information about the User
+user.domain ---- + msu
+user.environment + ---- /home/httpd/lonIDs/kortemey_990461714_msu_msul1.id
+user.home ---- + msul1
+user.login.time + ---- 990461714
+user.name ---- + kortemey
+Information about User Roles and Privileges
+user.priv.au./msu/./ + ---- :sma&F:gan&F
+user.priv.au./msu/./msu/ + ---- :cca&IK:are&F:bre&F:cre&F:ere&F
+user.priv.ca./msu/korte./ + ---- :sma&F:gan&F
+user.priv.ca./msu/korte./msu/ + ---- :are&F:bre&F:cre&F:ere&F
+user.priv.ca./msu/korte./msu/korte + ----
+user.priv.cc./msu/12679c3ed543a16msul1./ + ---- :sma&F:bre&F:mcr&F
+user.priv.cc./msu/12679c3ed543a16msul1./msu/ + ----
+user.priv.cc./msu/12679c3ed543a16msul1./msu/12679c3ed543a16msul1 + ---- :opa&F:srm&F:gan&F:are&F:ccr&IK:cep&IK:cta&IK:cre&F:cst&IK:cin&IK:ere&F:vgr&F
+user.priv.cc./msu/12679c3ed543a25msul1./ + ---- :sma&F:bre&F:mcr&F
+user.priv.cc./msu/12679c3ed543a25msul1./msu/ + ----
+user.priv.cc./msu/12679c3ed543a25msul1./msu/12679c3ed543a25msul1 + ---- :opa&F:srm&F:gan&F:cta&IK:cep&IK:ccr&IK:are&F:cin&IK:cst&IK:cre&F:ere&F:vgr&F
+user.priv.cc./msu/12679c3ed543a37msul1./ + ---- :sma&F:mcr&F:bre&F
+user.priv.cc./msu/12679c3ed543a37msul1./msu/ + ----
+user.priv.cc./msu/12679c3ed543a37msul1./msu/12679c3ed543a37msul1 + ---- :opa&F:srm&F:gan&F:are&F:ccr&IK:cep&IK:cta&IK:cre&F:cst&IK:cin&IK:ere&F:vgr&F
+user.priv.cm./ + ---- :sma&F:mcr&F:gan&F:bre&F
+user.priv.cm./msu/ + ---- :mau&F:cca&IK:cad&UIK:ccc&U:cst&UIK:cdg&UIK:are&F:cli&UIK:cta&UIK:cep&UIK:ccr&UIK:bre&F:cau&U:cre&F:cin&UIK:ere&F
+user.priv.cm./msu/12679c3ed543a16msul1 + ---- :opa&F:srm&F:gan&F:are&F:ccr&IK:cep&IK:cta&IK:cre&F:cst&IK:cin&IK:ere&F:vgr&F
+user.priv.cm./msu/12679c3ed543a25msul1 + ---- :opa&F:srm&F:gan&F:are&F:ccr&IK:cep&IK:cta&IK:cre&F:cst&IK:cin&IK:ere&F:vgr&F
+user.priv.cm./msu/12679c3ed543a37msul1 + ---- :opa&F:cst&IK:vgr&F:srm&F:gan&F:are&F:ccr&IK:cep&IK:cta&IK:cre&F:cin&IK:ere&F
+user.priv.cm./msu/korte + ----
+user.priv.dc./msu/./ + ---- :sma&F
+user.priv.dc./msu/./msu/ + ---- :mau&F:cad&UIK:ccr&UIK:cep&UIK:cta&UIK:cli&UIK:ccc&U:cau&U:cst&UIK:cin&UIK:cdg&UIK
+user.role.au./msu/ + ---- 964531839.0
+user.role.ca./msu/korte + ---- .
+user.role.cc./msu/12679c3ed543a16msul1 + ---- 964531839.0
+user.role.cc./msu/12679c3ed543a25msul1 + ---- 964531839.0
+user.role.cc./msu/12679c3ed543a37msul1 + ---- 964531839.0
+user.role.dc./msu/ + ---- 964531839.0
+Scott Harrison, freeware volunteer, sharrison@sourceforge.net
+LON-CAPA provides many different web services for coordinating online educational + interactions. Currently, these web services are made available by 77 different + perl modules. The invocation of these perl modules is many times due to + the URI format based on entries inside /etc/httpd/conf/loncapa_apache.conf.
+Throughout this technical manual, various web perl modules are described + in detail. Here is a summary of all the 77 web perl modules:
+
+ Name/Location + |
+
+ Description + |
+
+ SOURCE: rat/lonwrapper.pm |
+
+ Wrapper for external and binary files as standalone resources. Edit + handler for rat maps; TeX content handler. + |
+
+ SOURCE: loncom/publisher/loncfile.pm |
+
+ Provides web-based functionality for file copy, rename, mkdir, etc, + in the construction space menu. + |
+
+ SOURCE: loncom/interface/lonstatistics.pm |
+
+ Handler to show statistics on solving LON-CAPA problems. + |
+
+ SOURCE: loncom/publisher/londiff.pm |
+
+ Handler to show difference between two files. + |
+
+ SOURCE: loncom/publisher/lonupload.pm |
+
+ Handler to upload files through browser into construction space. + |
+
+ SOURCE: loncom/homework/essayresponse.pm |
+
+ Handler to evaluate essay (ungraded) style responses. + |
+
+ SOURCE: loncom/homework/externalresponse.pm |
+
+ Handler to evaluate externally graded responses. + |
+
+ SOURCE: loncom/homework/loncapagrade.pm |
+
+ Handler to evaluate externally graded responses. + |
+
+ SOURCE: loncom/publisher/lonpubdir.pm |
+
+ Handler to publish directories. + |
+
+ SOURCE: loncom/publisher/lonretrieve.pm |
+
+ Handler to retrieve old versions from resource space. + |
+
+ SOURCE: loncom/homework/edit.pm |
+
+ Helper functions when in homework edit mode. + |
+
+ SOURCE: loncom/interface/lonmeta.pm |
+
+ Metadata display handler. + |
+
+ SOURCE: rat/lonambiguous.pm |
+
+ Handler to resolve ambiguous file locations. + |
+
+ SOURCE: rat/lonratparms.pm |
+
+ Handler to set resource parameters inside of the RAT based on metadata. + |
+
+ SOURCE: rat/lonsequence.pm |
+
+ Handler for showing sequence objects of educational resources. + |
+
+ SOURCE: loncom/interface/loncreatecourse.pm |
+
+ Allows domain coordinators to create new courses and assign course + coordinators. + |
+
+ SOURCE: loncom/interface/loncreateuser.pm |
+
+ Allows users to within their own privileges create/edit users and + give them roles. + |
+
+ SOURCE: loncom/interface/lonchart.pm |
+
+ Produces simple LectureOnline-like student assessment performance + chart + |
+
+ SOURCE: loncom/interface/loncommon.pm |
+
+ Makes a table out of the previous attempts. Inputs result_from_symbread, + user, domain, home_server, course_id. + |
+
+ SOURCE: loncom/homework/grades.pm |
+
+ Handles the viewing of grades. + |
+
+ SOURCE: loncom/homework/imageresponse.pm |
+
+ Coordinates the response to clicking an image. + |
+
+ SOURCE: loncom/homework/optionresponse.pm |
+
+ Handles tags associated with showing a list of options. + |
+
+ SOURCE: loncom/homework/outputtags.pm |
+
+ Handles tags associated with output. Seems to relate to due dates + of the assignment. + |
+
+ SOURCE: loncom/interface/lontest.pm |
+
+ Used for debugging and testing the LON-CAPA system. + |
+
+ SOURCE: loncom/homework/radiobuttonresponse.pm |
+
+ Handles multiple-choice style responses. + |
+
+ SOURCE: loncom/interface/lonassignments.pm |
+
+ Handles processing of assignments. + |
+
+ SOURCE: loncom/interface/loncommunicate.pm |
+
+ Will be the access handler to email sending, as well as the planned + chatrooms, etc. + |
+
+ SOURCE: loncom/interface/lonerrorhandler.pm |
+
+ Handles errors. + |
+
+ SOURCE: loncom/interface/lonevaluate.pm |
+
+ Handles evaluation. + |
+
+ SOURCE: loncom/interface/lonfeedback.pm |
+
+ Handles feedback from students to instructors and system administrators. + Provides a screenshot of the current resource, as well as previous + attempts if the resource was a homework. Used by lonmsg.pm. + |
+
+ SOURCE: loncom/interface/lonnavmaps.pm |
+
+ Handles navigational maps. + |
+
+ SOURCE: loncom/interface/lonpreferences.pm |
+
+ Handles user preferences associated with customizing the online LON-CAPA + educational environment. + |
+
+ SOURCE: loncom/interface/lonprintout.pm |
+
+ Handles the production of printable files and resources. + |
+
+ SOURCE: loncom/interface/lonsearchcat.pm |
+
+ Handles a searchable catalogue. + |
+
+ SOURCE: loncom/interface/londropadd.pm |
+
+ Allows course coordinators to upload courselists in different formats, + and automatically create users (if they do not exist already), assign + them the role of student in a course, and add them to the classlist. + |
+
+ SOURCE: loncom/interface/lonmsg.pm |
+
+ lonmsg.pm has several functions to send and receive internal messages. + author_res_msg - send message to resource author. user_crit_msg - + send a critical message to a user. A critical message will require + acknowledgment by the recipient and the sender will be notified. user_crit_received + - routine to trigger acknowledgment. statuschange - change the status + of a message (read, replied, forwarded, etc). The handler also displays + messages, has routines to reply, etc. + |
+
+ SOURCE: loncom/homework/hint.pm |
+
+ This handler coordinates the delivery of hints to students working + on LON-CAPA problems and assignments. + |
+
+ SOURCE: loncom/interface/lonspreadsheet.pm |
+
+ Spreadsheets are completely web-based. They exist on the level of + a whole course, a student, and individual assessments. + |
+
+ SOURCE: loncom/interface/lonparmset.pm |
+
+ Handler to resolve ambiguous file locations + |
+
+ SOURCE: loncom/publisher/lonconstruct.pm |
+
+ Page wrapper for handling construction space. + |
+
+ SOURCE: loncom/publisher/lonpublisher.pm |
+
+ Publishes an LON-CAPA educational resource complete with metadata + (authorship, language, copyright, creation date, etc). + |
+
+ SOURCE: loncom/interface/lonmenu.pm |
+
+ Has routines which control the remote control. + |
+
+ SOURCE: rat/lonpageflip.pm |
+
+ Deals with forward, backward, and other page flips. + |
+
+ SOURCE: rat/lonratedt.pm |
+
+ Builds up frame set and loads in the right thing. + |
+
+ SOURCE: loncom/html/res/adm/pages/homeworkmenu.html |
+
+ Homework remote control. + |
+
+ SOURCE: loncom/html/res/adm/pages/annotator/admannotations.pm |
+
+ This will take annotations and then plug them into a page. + |
+
+ SOURCE: loncom/html/res/adm/pages/bookmarkmenu/admbookmarks.pm |
+
+ This will take bookmarks and get/write/display them for the LON-CAPA + user interface. + |
+
+ SOURCE: rat/lonratsrv.pm |
+
+ Handler that takes output from RAT and stores it on disk. Handles + the upper hidden frame of the added window that comes up in RAT. (3 + frames come up in RAT server, code, and output. This module handles + server connection.) + |
+
+ SOURCE: rat/lonpage.pm |
+
+ bundles pages into one page + |
+
+ SOURCE: rat/lonuserstate.pm |
+
+ compile course into binary data structure (in loncom/rat) + |
+
+ SOURCE: loncom/xml/lontex.pm |
+
+ Handler for tex files (somewhere in modules) + |
+
+ SOURCE: loncom/xml/lontexconvert.pm |
+
+ Access to tth/ttm + |
+
+ SOURCE: loncom/xml/lonxml.pm |
+
+ XML Parsing Module + |
+
+ SOURCE: loncom/xml/lonplot.pm |
+
+ XML-based plotter of graphs + |
+
+ SOURCE: loncom/xml/style.pm |
+
+ Style Parsing Module + |
+
+ SOURCE: loncom/xml/londefdef.pm |
+
+ Tags Default Definition Module + |
+
+ SOURCE: loncom/xml/run.pm |
+
+ used to prevent poorly written problems from causing lingering after + effects + |
+
+ SOURCE: loncom/xml/scripttag.pm |
+
+ implements <script>, <scriptlib>, <parserlib>, + and <import> + |
+
+ SOURCE: loncom/homework/randomlabel.pm |
+
+ Interface for producing applet code which randomizes the labelling + of an image. + |
+
+ SOURCE: loncom/homework/lonhomework.pm |
+
+ handles requests for output, evaluation, and alteration of a homework + resource + |
+
+ SOURCE: loncom/homework/inputtags.pm |
+
+ produces HTML input tags (<INPUT>) for rendering homework resources + |
+
+ SOURCE: loncom/homework/structuretags.pm |
+
+ produces HTML tags necessary for structuring the presentation of + homework resources + |
+
+ SOURCE: loncom/homework/response.pm |
+
+ defines different types of responses given to student as well as + syntax for producing response values + |
+
+ SOURCE: loncom/homework/caparesponse/caparesponse.pm |
+
+ handles request to the CAPA homework processing engine + |
+
+ SOURCE: loncom/xml/Safe.pm |
+
+ Meant to safely substitute for CPAN version of Safe. Allows for safely + executing embedded perl comands in a way that does not threaten the + operating system. + |
+
+ SOURCE: loncom/auth/localauth.pm |
+
+ Local authentication mechanism (meant to be customized). + |
+
+ SOURCE: loncom/auth/lonacc.pm |
+
+ (This module, like loncacc.pm also authenticates with cookies.) lonacc.pm + coordinates access to a wide range of administrative-type functions + (e.g. roles, logout, annotations, and bookmarks) as well as coordinating + access to educational resources. + |
+
+ SOURCE: loncom/auth/lonracc.pm |
+
+ access handler for file transfers + |
+
+ SOURCE: loncom/auth/loncacc.pm |
+
+ This module provides access to an educational resource construction + area. This module is invoked by the URL-related pattern syntax LocationMatch + "^/priv.*" or LocationMatch "^/\~.*". Authentication + of user identity is coordinated through cookies. The abbreviation + "cacc" corresponds to "construction-space access"). + If the cookie handle is invalid, then this module returns a forbidden + status and makes appropriate log entries. If the cookie handle is + valid, status is determined to be okay (and, for the "priv"-type + access, the resource is delivered by the lonconstruct module). + |
+
+ SOURCE: loncom/auth/lonauth.pm |
+
+ authenticate, set up session environment + |
+
+ SOURCE: loncom/auth/lonlogin.pm |
+
+ login screen + |
+
+ SOURCE: loncom/auth/lonlogout.pm |
+
+ logout + |
+
+ SOURCE: loncom/lonnet/perl/lonrep.pm |
+
+ replication + |
+
+ SOURCE: loncom/auth/lonroles.pm |
+
+ This perl handling module reads in the available roles available + for a LON-CAPA user (different courses, different privileges, etc) + and produces a form-element HTML page which allows the user to select + which role he wishes to exercise in the LON-CAPA system. For instance, + a user may want to select between being a student in a thermodynamics + physics course or a teaching assistant for an introductory calculus + class. + |
+
+ SOURCE: loncom/interface/lonindexer.pm |
+
+ cross server filesystem browser + |
+
+ SOURCE: loncom/interface/groupsort.pm |
+
+ Implements a second phase of importing multiple resources into the + RAT. Allows for reordering the sequence of resources. + |
+
+ SOURCE: loncom/lonnet/perl/lonnet.pm |
+
+ This file is an interface to the lonc processes of the LON-CAPA network + as well as set of elaborated functions for handling information necessary + for navigating through a given cluster of LON-CAPA machines within + a domain. There are over 40 specialized functions in this module which + handle the reading and transmission of metadata, user information + (ids, names, environments, roles, logs), file information (storage, + reading, directories, extensions, replication, embedded styles and + descriptors), educational resources (course descriptions, section + names and numbers), url hashing (to assign roles on a url basis), + and translating abbreviated symbols to and from more descriptive phrases + or explanations. + |
+
+ SOURCE: loncom/homework/lectureonline.lcpm |
+
+ Intended for providing perl functions for the <script></script> + environment in a problem that was converted from lectureonline. + |
+
+ SOURCE: loncom/homework/default_homework.lcpm |
+
+ Provides many functions for the <script> environment in a .problem. + Functions are documented in CVS:loncapa/doc/homework/homework5.html. + |
+