Serviço da Área de Trabalho: Considerações Especiais
Os desenvolvedores que utilizam áreas de trabalho devem considerar os seguintes aspectos que podem, potencialmente, causar problemas: a interoperabilidade entre os modelos de programação EJB e CORBA e a utilização de áreas de trabalho com o Abstract Windowing Toolkit do Java.
Interoperabilidade do EJB e CORBA
Embora o serviço de área de trabalho possa ser utilizado por meio dos modelos de programação EJB e CORBA, muitos tipos de dados compostos não podem ser utilizados com êxito por meio desses limites. Por exemplo, se uma instância SimpleSampleCompany for transmitida do ambiente do WebSphere para um ambiente CORBA, o aplicativo CORBA poderá recuperar o objeto SimpleSampleCompany encapsulado em um objeto CORBA Any a partir da área de trabalho, mas não poderá extrair o valor dele. Do mesmo modo, uma estrutura definida pela IDL definida em um aplicativo CORBA e definida em uma área de trabalho não será legível por um aplicativo utilizando a classe UserWorkArea.
Além disso, o CORBA Anys que contém o typecode tk_null ou tk_void pode ser definido na área de trabalho utilizando a interface CORBA. No entanto, a especificação da área de trabalho não pode permitir que a implementação de J2EE (Java™ 2 Platform, Enterprise Edition) retorne null em uma consulta que recupera estas propriedades configuradas para CORBA sem indicar incorretamente que não haja um conjunto de valores para a chave correspondente. Por exemplo, quando um usuário tenta recuperar uma chave não existente a partir de uma área de trabalho, o serviço da área de trabalho retorna nulo para indicar que a chave especificada não contém um valor, indicando que a própria chave não está em uso ou não existe. No caso em que o CORBA Anys contém tk_null ou tk_void, quando um usuário solicita a chave associada a um desses valores, o serviço de área de trabalho retorna nulo, conforme o esperado. Nesse caso, a chave pode realmente existir e o serviço de área de trabalho estava simplesmente retornando o valor de nulo da chave. Portanto, ao trabalhar com o CORBA Anys, um usuário não deve fazer qualquer implicação quando um nulo é retornado de uma área de trabalho, porque isso poderá significar que não há uma propriedade associada à chave determinada ou que há uma propriedade associada à chave determinada e ela contém tk_null ou tk_void, por exemplo, um nulo no ambiente J2EE. Se um aplicativo J2EE tentar recuperar propriedades definidas pelo CORBA que não sejam serializáveis, ou contiver nulos ou referências nulas do CORBA, a exceção com.ibm.websphere.workarea.IncompatibleValue será emitida.
Utilizando Áreas de Trabalho com o AWT (Abstract Windowing Toolkit) do Java
As áreas de trabalho devem ser utilizadas cautelosamente em aplicativos que utilizam o Abstract Windowing Toolkit) do Java. A implementação AWT é multiencadeada e as áreas de trabalho iniciadas em um encadeamento não estão disponíveis em outro. Por exemplo, se um programa começar uma área de trabalho em resposta a um evento AWT, como pressionar um botão, a área de trabalho pode não ficar disponível para alguma outra parte do aplicativo após a execução do evento ser concluída.