You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by David Sean Taylor <da...@bluesunrise.com> on 2007/09/04 23:50:38 UTC

Re: 3 tier separation and Jetspeed services

On Aug 27, 2007, at 6:40 AM, sebastien.doyon@bnpparibas.com wrote:

>
> Hi,
>
> I am working in a web project in a company where security is really  
> strict.
> Web applications must have a clean 3 tier separation and the  
> presentation
> layer accessed by internet users have no direct access to the  
> database.
> Accesses to the database must be done by calling remotely the  
> application
> layer behind a firewall.
>
> I was investigating how this could be implemented into Jetspeed and my
> first idea was to use Spring Remoting. The simple HttpRemoteInvoker  
> would
> be my first choice since it demands no special ports else than HTTP.
>
> My problem is that if I consider proxyfying all Jestpeed services that
> access the database, I think I will get problems with transactional
> propagation. From the Spring configuration files, some of the services
> methods use transactional attribute "PROPAGATION_REQUIRED" witch  
> means that
> I can run into an already created transaction (created by an other
> service?).
>
> So, to help me on this task, I am asking you, the Jestpeed gurus,  
> if there
> is a right place where transactions starts and ends, something that  
> I could
> proxyfy with a remoting proxy. Are there few guidelines that you could
> provide me to achieve this?
>
> With your help, I am willing to implements some or all  
> modifications that
> could be necessary and will return the code to the project if you  
> consider
> it relevant.
>
> I hope what I want to achieve is clear enough. Thanks for your help.

Were you planning on running the OJB-based Jetspeed services on a 3rd  
tier, or writing your own services?
I don't think that HttpRemoteInvoker supports distributed  
transactions. You may want to check and let us know
So you would have to somehow implement your own transactions

Take a look at transaction.xml:

	<!-- Transaction manager for a single OJB PersistenceBroker  
(alternative to JTA) -->
	<bean id="transactionManager"  
class="org.springframework.orm.ojb.PersistenceBrokerTransactionManager"/ 
 >