Thomas,
Ive updated the document per Raphael's suggestions.
I will send out a new document tomorrow incorporating yours.
Thanks, I knew you would be commenting on this....
David
see below
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]]On Behalf Of [EMAIL PROTECTED]
> Sent: Tuesday, November 28, 2000 12:41 PM
> To: JetSpeed
> Subject: Re: Profiler Proposal
>
>
>
>
> 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.
>
You can specify the language/county in the resource name itself.
Raphael suggested that, to conform with Turbine properties, I use name/value
pairs
To specify the french SalesCenter:
http://server/jetspeed/profile/SalesCenter_fr_Fr/group/sales
Also, since the resource is the value for the 'profile' keyword, the order
is no longer dependent.
> > -------------------------------
> > 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" ?
>
The users are authenticated, you are right.
After being authenticated for the first time, they are then authorized to
access the profiles above.
> > --------------------------------
> > 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 ?
It would be up to the implementation.
This seems like an important enough concept to put in the interface.
But Im not going to dictate how it should be implemented.
It would probably contain some kind of identifier.
Thats what Im doing in the default imp.
>
> > --------------------
> > 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 ?
>
+1
> > ====================
> > 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 ?
All these accessors are now removed from the interface since they are
implementation specific.
>
> > /*
> > 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 ?
>
The IP address ranges could be used in a corporate web site to map certain
groups of users to resources. IP addresses could be be broken down by
sub-companies, departments, etc.
> > - 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]
>
>
--
--------------------------------------------------------------
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]