Ajuda - Controle de sessão entre diferentes aplicações JAVA EE

Prezados amigos do GUJ,

Atualmente iniciei em um projeto, onde uma aplicação JAVA EE (principal.war) desenvolvida em SPRING MVC controla o acesso a diversas outras aplicações também JAVA EE (app1.war, app2.war, etc).

Imaginando o cenario abaixo, gostaria de saber qual seria a melhor maneira (pattern, framework, arquitetura, etc…) para gerenciar as sessões dessas aplicações:

[i]- Quando um usuario acessa a aplicação PRINCIPAL ele inicia uma sessão para o contexto dessa aplicação.

  • A partir da aplicação PRINCIPAL, atraves de um menu, o usuario acessa uma aplicação, APP1 por exemplo, e também inicia uma sessão para o contexto desta aplicação.
  • A partir deste momento o usuario tem 2 sessões abertas, e dois tempos de timeouts correndo em paralelo.
  • O problema é que o usuario pode ficar várias horas dentro do contexto de uma aplicação, sem passsar pelo contexto da aplicação PRINCIPAL, pois cada uma dessas aplicações acessadas pela PRINCIPAL possui um sub-menu de acesso a suas paginas.
  • Sendo assim apenas o timeout da aplicação acessada, APP1 no exemplo, esta sendo renovado, enquanto que o timeout da PRINCIPAL pode expirar.
  • Este mesmo cenario acontece com todas as outras aplicações acessadas pela PRINCIPAL, pois a ideia é permitir ao usuario acessar varias aplicações a partir de uma aplicação PRINCIPAL.[/i]

Sendo assim, minha duvida seria em relação as melhores praticas para lidar com um cenario deste tipo.

Por favor, comentem se nao estiver clara a explicacao.

Muito obrigado!!!

Qualquer ajuda, explicação ou orientação será muito bem vinda.

Não sei se um Single Sign On seria uma alternativa, caso o usuario retorne a aplicação PRINCIPAL depois de sua sessão ter expirado.
Estava pensando também na possibilidade de criar filtros nas aplicações acessadas pela PRINCIPAL, para em qualquer request nestas aplicações renovar o timeout da sessão da aplicação PRINCIPAL.

Agradeço muito se puderem dar algum pitaco nesse assunto.