2013-03-19 13 views
6

Sto sviluppando una nuova applicazione basata su Spring MVC e Hibernate per l'accesso ai dati. Desidero che il livello di accesso ai dati sia in esecuzione su un server applicazioni separato, preferibilmente JBOSS.DAO su diversi server applicazioni

voglio lo strato di accesso ai dati per essere in esecuzione dietro un firewall.

Come posso ottenere questo risultato?

In questo momento mi sono preoccupato per hibernate inizializzazione differita in questo scenario. Ci sarebbero davvero problemi con l'inizializzazione pigra di Hibernate?

risposta

1

ci potrebbe essere qualche penalità di prestazioni di questo approccio - IO sarà un collo di bottiglia. Tuttavia, Spring Remoting ti consente di ottenere facilmente questo risultato.

  • Creare un'interfaccia per voi DAO.
  • Implementare l'implementazione concreta.
  • Utilizzare il servizio remoto per esportare l'interfaccia.
  • Iniettare l'interfaccia - dal suo punto di vista la sua app solo qualcosa che implementa l'interfaccia. Non si cura che le chiamate vengano lanciate sul server remoto.

Il meccanismo per ottenere ciò si chiama DynamicProxies, una funzionalità di Java SE. DynamicProxies consente di fornire una classe che risponde alle chiamate di metodo su un'interfaccia in fase di esecuzione. In questo caso, le chiamate al metodo vengono inviate ai metodi corrispondenti sul server remoto.

Sia il livello di servizio che i server di livello DAO devono trovarsi dietro il firewall sullo stesso dominio.

1

Dal interfaccia utente, utilizzare REST servizi web per recuperare i dati dal server di applicazione (che ospita il servizio transazionale di DAO e). Annotare le classi di entità con @Proxy(lazy=false) per evitare carichi pigri di entità. Affinché il server possa convalidare i client (applicazione Web che interroga il livello aziendale dietro il firewall), utilizzare i certificati di identità del client, è possibile utilizzare le API Bouncy Castle CMS per convalidare l'identità, la fiducia e l'integrità del messaggio. Se nella rete sono presenti scaricatori SSL, utilizzare le firme separate nelle intestazioni http(s).

Problemi correlati