portals-jetspeed-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Helmut Eggebert (JIRA)" <jetspeed-...@portals.apache.org>
Subject [jira] Created: (JS2-317) Virtual Portal Implementation
Date Thu, 28 Jul 2005 18:45:23 GMT
Virtual Portal Implementation
-----------------------------

         Key: JS2-317
         URL: http://issues.apache.org/jira/browse/JS2-317
     Project: Jetspeed 2
        Type: New Feature
    Versions: 2.0-M4, 2.0-FINAL    
 Environment: Apache Web Server, Apache Jakarta Tomcat and mod_jk or mod_jk2 connectors
    Reporter: Helmut Eggebert


This Issue is to implement True Virtual Portals

The Apache Web server implements Web virtual hosting in two ways: IP-based virtual hosting
and name-based virtual hosting.  With name-based, the Web server listens on the IP addresses
configured on the host, and serves resources from the relevant Web site based on HTTP request
headers from the Web client.

When Apache Web server is connected to Tomcat via a mod_jk or mod_jk2 connector, a host, port
and a worker are specified in a properties file (ex. localhost at 8009 with ajp) and are associated
to uri contexts (ex. www.foo.com/portal/*).

We have a requirement to set up many (ex. 100+) virtual hosts on Apache Web server, and one
host, port, and worker for many uri contexts in the connector.  This is what we have done
for other web applications.  Each web application can have a different host and port but the
same web application must only have one instance (ex. one host and port) for many different
Apache Web server virtual hosts (ex. Web sites).

Thus we would like to set many virtual hosts to have one host and port for the ajp worker
in the connector properties file that points to the running instance of Jetspeed 2.  Of course
there will be many uri contexts because there are many virtual hosts (sometimes several contexts
per host).  For each virtual host, there should be a virtual portal.  A virtual portal should
be able to have a customizable view look and feel, customizable configuration of displayed/included
portlets, and a differentiated set of users.  Of course, if this is not all possible in M4,
you could just make the customizable view look and feel and customizable list of displayed/included
portlets a goal and set the differentiated users for a later milestone.

I have seen this done in the past with other open source projects.  For example, OFBiz ( www.ofbiz.com
) embeds Tomcat and, in one instance, it can run N number of online stores.  Each virtual
store has a customizable look and feel and has users, product catalogs and orders differentiated.
 I am familiar with how this app does it so I will explain it as a possible approach to this
requirement.

If you log into the ofbiz catalog administration and create a "new store" you can configure
it with different view template files, default name and other differentiating elements.  Then
you need to log into content administration and create a "new website" and associate it to
the store id created earlier.

Then with the app shut down, you copy a webapp directory ofbiz called "ecommerce" and rename
it to something like "ecommerce1".  Then you do the following 3 config edits:
1) Edit the WEB-INF/web.xml file in the recently copied and renamed ecommerce1 as follows:
<context-param>
   <param-name>webSiteId</param-name>
   <param-value>WebStore1</param-value>
   <description>A unique ID used to look up the WebSite entity to get information about
catalogs, etc.</description>
</context-param>
2) Edit the ofbiz-component.xml file in components/ecommerce/ and add the new webapp context
as follows:
<webapp name="ecommerce1"
   title="Ecommerce1"
   server="default-server"
   location="webapp/ecommerce1"
   mount-point="/ecommerce1"
   app-bar-display="false"/>
3) Edit the ofbiz-component.xml file in components/ecommerce/ and change the new webapp context
you just added to make the mount point /store and add a virtual host element as follows:
<webapp name="ecommerce1"
   title="Ecommerce1"
   server="default-server"
   location="webapp/ecommerce1"
   mount-point="/store"
   app-bar-display="false">
   <virtual-host host-name="www.foo.com"/>
</webapp>

With this approach, the goals are accomplished with one instance.  The OFBiz instance knows
which webapp, location="webapp/ecommerce1", is associated to <virtual-host host-name="www.foo.com"/>
and that mount-point="/store"

Hope this helps!

By the way this is the url for the ofbiz MIT Open Source license:
http://www.ofbiz.org/ofbizmitlicense.html

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org


Mime
View raw message