Quando você está projetando um sistema ou desenvolvendo módulos, às vezes você obtém vantagens colocando um módulo intermediário entre um módulo e um serviço externo que ele está chamando. Você só pode utilizar a abordagem descrita aqui se estiver utilizando ligações de SCA.
Uma vantagem de utilizar um módulo intermediário é que você pode alterar o aplicativo ou serviço externo que seu aplicativo está chamando sem interrupção. Este exemplo utiliza uma importação de serviço da Web para ilustrar o conceito.
A primeira figura a seguir mostra o módulo A com uma importação que chama um serviço remoto por uma conexão direta. Se você quiser que o módulo A chame um serviço remoto diferente, você precisará atualizar a lógica. Em seguida, você precisaria parar a versão antiga do módulo e desinstalá-la do servidor. A nova versão do módulo poderia então ser instalada e iniciada. Durante este processo, há uma interrupção de serviço para o módulo A.
Se você utilizar um módulo intermediário no seu aplicativo e conectá-lo ao módulo A com uma ligação de SCA, você terá mais flexibilidade. A figura a seguir mostra essa configuração. O Módulo A tem uma importação que está conectada à exportação de um módulo intermediário ou módulo de mediação, módulo B. Os módulos devem ter interfaces correspondentes. No cenário descrito neste tópico, eles devem ter uma ligação de SCA. O Módulo B chama o serviço. O Módulo B é uma fachada; o módulo A contém a lógica de negócios real.
O diagrama também mostra outro serviço, serviço da Web remoto 2. Na preparação da utilização desse serviço, o módulo C e sua importação de serviço da Web foram construídos e testados utilizando o WebSphere Test Environment.
Quando esse novo módulo estiver pronto para ser implementado, você poderá utilizar o console administrativo do WebSphere Process Server para apontar a importação de SCA no módulo A do módulo de destino antigo (módulo B) para a exportação de SCA no novo (módulo C), criando uma transição ininterrupta para o serviço atualizado. A figura a seguir mostra a nova implementação. Este método permite que você atualize um aplicativo sem causar qualquer interrupção no serviço.
O padrão a seguir também poderia ser utilizado para exportações externas. Por exemplo, um módulo pode expor um serviço por uma exportação de serviço da Web. Tipicamente, se a lógica do módulo precisar ser atualizada, haverá uma interrupção no serviço. No entanto, se um módulo de fachada for utilizado para a exportação do serviço da Web, a lógica de negócios poderá ser atualizada sem uma interrupção no serviço.
Esse princípio de design é explicado mais detalhadamente na documentação do WebSphere Process Server; consulte as instruções para isolar os módulos e os destinos e para alterar os destinos.