David,
great proposal !
See comments below.
Best regards,
Thomas
Thomas Schaeck
IBM Pervasive Computing Division
Phone: +49-(0)7031-16-3479 e-mail: [EMAIL PROTECTED]
Address: IBM Deutschland Entwicklung GmbH,
Schoenaicher Str. 220, 71032 Boeblingen, Germany
> Hi All,
>
> Below is a proposal for a Jetspeed Profiler Service.
> It is not final and your input is welcome.
>
> David
>
> ...
> -------------------------------
> Localized Resources
> --------------------------------
>
> Resource names can optionally be localized. This is done by suffixing the
> resource name. The suffix is made up of a required ISO-639 standard
> two-character language abbreviation, and an optional IS0-3166 standard
> two-character country code abbreviation.
>
> The suffix is of the format:
>
> _lc_cc
>
> where:
>
> lc = language code
> cc = country code
>
> Some examples
>
> groups/accounting/html/default_fr_FR.psml // french language, France
> groups/accounting/html/default_fr.psml // french language, any
country
>
> For a given locale of fr_FR, the search order for the default accounting
> resource would be:
>
> groups/accounting/html/default_fr_FR.psml
> groups/accounting/html/default_fr.psml
> groups/accounting/html/default.psml
>
> The profiler will look at the "Content Language" HTML header for locale
> specific settings. If there are multiple settings, all settings will be
> searched until the first resource is found.
>
> Localization can be configured in the JetspeedResources.properties file.
>
> You can configure a default language. This language will be considered
the
> default language and no prefix will be necessary for their resources.
>
> # only french belgium
> profiler.language.default=fr_BE
>
> # default language any spanish
> profiler.language.default=es
>
> # all resources must be suffixed
> profiler.language.default=
>
> To turn on/off all localization checking:
> profiler.default=true/false
>
> For a complete list of ISO-639 standard language abbreviations, see:
> http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt
>
> For a complete list of ISO-3166 standard country code abbreviations, see:
> http://userpage.chemie.fu-berlin.de/diverse/doc/ISO_3166.html
It is a very good idea to support multi-linguality. Would it be possible
to have URIs that explicitly specify the language, e.g.
http://server/servlet/jetspeed/portal/group/sales/SalesCenter/fr_FR ?
Accepting this and returning the language specified in the request would
allow implementing portals where users can select the language and e.g.
bookmark a page in a certain language.
Problems might occur if user's change their language settings in the
browser. This way, the user might apparently loose customizations he
made to a language specific page.
> -------------------------------
> Device Explicit Resource Names
> --------------------------------
>
> Optionally, names can include the media type explicitly.
>
> http://host/servlet/jetspeed/portal/media-type/html/user/BenefitsPage
>
> In this case, the 'media-type' prefix must follow the portal prefix, and
> then the actual media type is specified. The above example explicitly
asks
> for the html resource for the BenefitsPage, and explicitly for the
current
> user. First the profiler will look for the media type in the resource
name.
> If it is not specified there, it will then query the CapabilityMap.
Good !
> -------------------------------
> Default Media-Type and Fallback
> --------------------------------
>
> If a request is for a given media type, and the resource is not found for
> the given media type, then the profiler will fallback to a default
resource
> if available. This default resource is assumed to work for all media
types
> without a specific resource. The default media type resource should be
> placed in the root directory for a given user, role or group.
>
>
> -------------------------------
> Anonymous Access and Profiles
> --------------------------------
>
> The default resource shown to anonymous logons is configured with
> profiler.anon.directory setting. A device specific path could be set
here,
> but probably should not so that Jetspeed can autodectect the media type.
>
> # Directory used for anonymous access
> profiler.anon.directory=/user/default/
>
> The actual resource displayed is then dependent on media type, language,
and
> the default resource markup filename.
>
> Profiles available to anonymous users are configured with:
>
> profiler.anon.profiles=/role/TennisNewUserProfile
> profiler.anon.profiles=/role/RugbyNewUserProfile
> profiler.anon.profiles=/role/BadmintonNewUserProfile
>
> These are not used directly by the default profiler, but could be used by
> applications to provide choices of profiles available to anonymous users.
> The roles must actually have their security setup correctly to work,
meaning
> that access should be given to 'everyone' on these roles.
>
> -------------------------------
> Authorized Profiles
> --------------------------------
> When a user first signs up, they could be given a choice of profiles
> available authorized users. This services can be configured as:
>
> profiler.authorized.profiles=/role/engineer/
> profiler.authorized.profiles=/group/accounting/
Do you mean "authorized" or "authenticated" ?
> --------------------------------
> Cookie-based Anonymous Sessions
> --------------------------------
> Cookies are used to automatically remember an unauthorized user's last
> profile The cookie would remember which 'anon' role it used last. This
> provides access for unauthorized users to other resources besides the
> default.
>
> --------------------------------
> Cookie-based Authorized Sessions
> --------------------------------
> Cookies are used to automatically logon an authorized user and remember
> the default profile for the authorized user.
Would this both be permanent cookies ? I guess the cookies would only
contain some identifier that would be used to associate the user with
data stored on the server, is that correct ?
> --------------------
> Profiler Registry
> --------------------
>
> The Profile Registry in the jcfg file would be deprecated.
Perhaps it may even be removed. Is there a reason to only deprecate it ?
> ====================
> Interfaces
> ====================
>
> All profiler services must implement the ProfilerService interface.
> The Profile interface defines a profile instance.
> A Profile is the object representation of a Jetspeed PSML resource.
>
>interface ProfilerService extends Service
> {
> /*
> initialize the profiler service
> the profiler service is implemented as a turbine service
> */
> init();
>
> /*
> get the Profile object using the Rundata state and capability map
> this is the mapping functionality of the profiler
> */
>
> Profile getProfile(Rundata, CapabilityMap );
>
> /*
> get the base URL for the profile registry
> */
> String getBaseURL();
Who would call this method ? Would it be public ?
> /*
> get the default resource name
> */
> String getDefaultResourceName();
Who would call this method ? Would it be public ?
>
> /*
> is security enabled
> */
> boolean isSecurityEnabled();
Who would call this method ? Would it be public ?
> getAuthorizedProfiles();
> getAnonymousProfiles();
>
> /*
> store cookie in response to the current resource
> */
> storeCookie();
Who would call this method ? Would it be public ?
>}
>
>interface Profile
>{
> /**
> * Gets a PortletSet for this profile object.
> *
> * @return The root portlet set for this profile.
> */
>
> PortletSet getPortletSet(); // get the portlet set for this profile
>
> /*
> stores the resource by merging and rewriting the psml file
> */
> void store()
>
> /*
> accessors to new functionality - this may be default imp.
specific....
> */
> String getUser();
> String getGroup();
> String getRole();
> String getResourceName();
> String getResourcePath();
> String getMediaType();
> String getLanguageCode();
> String getCountryCode();
>}
>
> ==============================
> Future Directions
> ==============================
>
> - Full support of W3 CC/PP RDF descriptions
Very good !
> - Mapping IP address ranges to Groups. This would require a table, either
in
> the database or a simple text file.
What would this be used for ?
> - Dynamic profiling based on usage statistics
>
> - The Profile's content generation based on runtime criteria, not static
> psml files
Sounds very interesting. I'm curious about this one.
--
--------------------------------------------------------------
Please read the FAQ! <http://java.apache.org/faq/>
To subscribe: [EMAIL PROTECTED]
To unsubscribe: [EMAIL PROTECTED]
Archives and Other: <http://marc.theaimsgroup.com/?l=jetspeed>
Problems?: [EMAIL PROTECTED]