Boas Práticas: Módulos e Pacotes para Serviços de Negócios

Ao desenvolver aplicativos de integração de negócios, pode ser necessário trabalhar com recursos, tais como, arquivos JSP, arquivos JAR, projetos da Web, projetos Java e projetos J2EE. Este tópico fornece informações para ajudá-lo a configurar seus projetos e recursos para que eles sejam construídos e implementados com êxito no WebSphere Process Server.

Arquivos JavaServer Pages Funcionando com Referências Independentes

Os arquivos JSP (JavaServer Pages) chamam componentes SCA (Service Component Architecture) utilizando referências independentes na montagem do módulo. O arquivo JSP deve ser implementado no mesmo arquivo EAR que a montagem do módulo. Aqui estão as etapas para inclusão do arquivo JSP no módulo:
  1. Crie o projeto da Web.
  2. Construa o arquivo JSP no projeto da Web. Se estiver importando o código, importe-o para este projeto da Web. Consulte Código JSP de Amostra.
  3. Abra o módulo (que possui as referências independentes) com o editor de dependência. Inclua uma dependência no projeto da Web como um projeto J2EE. Certifique-se de que a opção da caixa de opções Implementar com Módulo esteja selecionada para que o projeto da Web seja incluído no arquivo EAR.
Nota: Não copie o arquivo sca.references para outro arquivo EAR. O arquivo não funcionará fora do módulo ao qual ele pertence.

Se o projeto da Web estiver em outro arquivo EAR, o arquivo JSP estará em outro módulo e serão requeridas importações e exportações para que ele funcione com serviços em outro módulo.

Código JSP de Amostra

Aqui está um código JSP de amostra que utiliza referências independentes na montagem do módulo:

com.ibm.websphere.sca.Service bankService = (com.ibm.websphere.sca.Service)com.ibm.websphere.sca.ServiceManager.INSTANCE.locateService("BankServicePartner");
=> O nome da referência "BankServicePartner" é derivado do arquivo sca.references no módulo (por exemplo, <reference name="BankServicePartner">...). Este arquivo existirá após a criação de uma referência independente no editor de ligação.
com.ibm.websphere.sca.scdl.OperationType operationType = bankService.getReference().getOperationType("openAccount");
=> Utilizaremos o tipo de operação para obter os tipos DataObject que precisam ser transmitidos para a operação de chamada
com.ibm.websphere.bo.BOFactory factory = (com.ibm.websphere.bo.BOFactory) new com.ibm.websphere.sca.ServiceManager().locateService("com/ibm/websphere/bo/BOFactory");
=> Maneira padrão de obter o depósito de informações para a criação de objetos de negócios.
commonj.sdo.DataObject input = factory.createByType(operationType.getInputType());
=> criar o tipo adequado de objeto de dados que a operação espera como entrada
commonj.sdo.DataObject customer = input;
=> suponha que não temos uma entrada agrupada por enquanto
if(operationType.isWrapperType(operationType.getInputType()))
{
=> Para chamar a referência neste caso, o wrapper definido no arquivo WSDL da interface deve ser transmitido. Portanto, criamos o objeto de dados agrupado e o configuramos no wrapper (o nome da propriedade é derivado do esquema seqüencial no arquivo WSDL).
customer = factory.createByType(operationType.getInputType().getProperty("customer").getType());
input.set("customer", customer);
}
customer.setString("firstName", "Bob");
customer.setString("lastName", "Smith");
customer.setString("address", "7 Holly Drive");
customer.setBoolean("isGold", true);
customer.setInt("birthYear", 1976);
=> As 5 linhas acima configuram os atributos no Cliente.
commonj.sdo.DataObject output = (commonj.sdo.DataObject)bankService.invoke("openAccount",input);
commonj.sdo.DataObject account = null;
if(operationType.isWrapperType(operationType.getOutputType()))
account = output.getDataObject("account");
else
account = output;
=> A saída retornada pode ou não ser agrupada.

Trabalhando com Código Java

Boas Práticas: Se precisar desenvolver aplicativos Java ou importar arquivos JAR que serão utilizados em um módulo de integração de negócios, será necessário criar um projeto Java para o código e incluir uma dependência no projeto Java para o módulo que utilizará o código Java.

As propriedades Java da biblioteca ou módulo de integração de negócios não devem ser alteradas, porque isto pode causar problemas na geração do código de implementação. Por isso, não é recomendável desenvolver aplicativos Java complexos ou importar arquivos JAR para uma biblioteca ou módulo para utilizá-los. Além disso, quando gerar implementações Java para componentes em um diagrama de montagem, as implementações Java geradas devem ser utilizadas como um ponto de ativação para chamar outras classes Java.

Observe que a visualização Integração de Negócios mostra apenas implementações e interfaces Java utilizadas em um diagrama de montagem. Elas estão listadas no módulo que as utiliza. Se precisar trabalhar com projetos Java, você poderá comutar para trabalhar com a perspectiva Java.

Comutando para a Perspectiva Java

Abra a perspectiva Java seguindo estas etapas:

  1. No menu, selecione Janela > Abrir Perspectiva > Outro....
  2. Selecione Java e clique em OK.

Na perspectiva Java, as duas perspectivas abertas são mostradas no canto superior direito da janela Workbench, você pode comutar para a perspectiva Integração de Negócios clicando no botão Perspectiva Integração de Negócios, conforme mostrado nesta imagem:

Canto superior direito da janela Workbench que mostra os dois botões da perspectiva

Aqui estão algumas instruções para o desenvolvimento Java em um projeto Java:
  • Crie um projeto Java.
  • Execute o desenvolvimento Java no projeto Java. Se precisar importar um arquivo JAR, importe o arquivo para o projeto Java. Não importe arquivos JAR para o módulo ou biblioteca; o JAR não será incluído no arquivo EAR.
  • Abra o módulo que utilizará o código Java com o editor de dependência. Inclua o projeto Java como um dependente e certifique-se de que a caixa de opções Implementar com Módulo esteja selecionada. O editor de dependência incluirá o projeto Java no caminho de classe do módulo. O arquivo JAR será implementado com o módulo.

Objetos e Interfaces de Negócios para Importações e Exportações

Boas Práticas: Se você pretende utilizar importações e exportações em diagramas de montagem, será uma boa prática colocar os objetos e interfaces de negócios utilizados pelas importações e exportações em uma biblioteca para que eles possam ser compartilhados. Em seguida, inclua a dependência na biblioteca para todos os módulos que utilizam estes recursos comuns. Evite copiar os mesmos objetos e interfaces de negócios para módulos diferentes para utilizá-los.

Recursos da Biblioteca Compartilhados

Após a implementação, se os recursos compartilhados forem alterados na biblioteca, os módulos que utilizam os recursos precisarão ser atualizados. Por exemplo, dois módulos compartilham alguns recursos em uma biblioteca. Os aplicativos são implementados. Um dos módulos precisa ser atualizado resultando em alterações em alguns dos recursos compartilhados na biblioteca. Neste caso, o segundo módulo também precisará ser atualizado para refletir as alterações nos recursos compartilhados.

Os Arquivos WSDL Devem Estar em um Módulo ou Biblioteca

Se precisar utilizar um arquivo WSDL em um módulo, copie-o para o módulo. Opcionalmente, copie o arquivo WSDL para uma biblioteca e, no módulo, configure uma dependência na biblioteca para que seja possível utilizar os recursos da biblioteca. Se você tentou arrastar um arquivo WSDL de outro tipo de projeto, por exemplo, um projeto da Web, uma mensagem de erro solicitará que você copie o WSDL para o módulo ou biblioteca.

Nomes de Módulos J2EE

O módulo de integração de negócios é um projeto simples que produz um arquivo EAR J2EE que consiste em projetos J2EE. Se o módulo for denominado MyApp, os projetos J2EE com estes nomes serão gerados e não deverão ser utilizados para seus próprios projetos J2EE:
  • MyAppApp
  • MyAppEJB
  • MyAppEJBClient
  • MyAppWeb

Alterando Dependências sem o Editor

Você deve evitar modificar dependências do módulo fora do editor de dependência.

Quando você inclui uma dependência em uma biblioteca, um projeto Java ou um projeto J2EE, as alterações são feitas nas propriedades do módulo. Ou seja, as propriedades do módulo serão alteradas da seguinte forma:

  • O Caminho de Construção Java teria a biblioteca ou projeto incluído em seu caminho de construção.
  • As Referências do Projeto determinam quais projetos J2EE ou JARs de utilitário devem ser incluídos no arquivo EAR resultante para o módulo. Se no editor de dependência, a biblioteca ou projeto também estiver selecionado para ser Implementado com o Módulo, as Referências do Projeto terão a biblioteca ou projeto selecionado para que ele seja incluído no arquivo EAR para implementação.

Utilize o editor de dependência para gerenciar dependências do projeto para seus módulos e bibliotecas em vez de editar suas propriedades. Existem premissas importantes Java configuradas nas propriedades dos módulos e bibliotecas, portanto, você não poderá modificar as propriedades Java, por exemplo, para alterar suas pastas de origem e de saída.

Conceitos relacionados
Módulos e Bibliotecas
Dependências de Módulos e de Bibliotecas
Recursos e Funções de Integração de Negócios
Folhas de Dicas de Integração de Negócios
Serviços de Negócios: Componentes e Módulos
Serviços de Mediação: Componentes e Módulos de Mediação
Tarefas relacionadas
Criando um Módulo para Serviços de Negócios
Criando um Módulo de Mediação
Alterando Espaços de Nomes Padrão
Ativando Recursos de Ferramentas
Incluindo Dependências em Módulos e Bibliotecas
Criando a Biblioteca
Criando Exportações
Referências relacionadas
Interfaces e Referências WSDL e Java

Informações relacionadas

Tutorial: Trabalhar com Módulos e Bibliotecas

Feedback
(C) Direitos Autorais IBM Corporation 2005, 2006. Todos os Direitos Reservados.