Interface de Integração - Qual a melhor prática?

Não sei se esse é o local certo para postar essa dúvida, mas vamos lá.

Como disponibilizar os seus objetos nas interfaces de webservice, por exemplo, só receber objetos de transferência (TO), ou seja, objetos pobres sem nenhuma regra. Ou colocar objetos com algumas regras dentro dele (regras de validação e etc).

Qual a melhor prática?

Pergunto isso, pq se for usado o primeiro cenário terei que fazer uma camada só para “transformar” os TOs nos meus beans (objetos com algumas regras de negócio, como validação de um campo e etc)

Como o Eclipse já tem um wizard que gera as classes a partir do webservice, até ai trabalho nenhum. Depois é só você ler os objetos da classe do webservice e atender o que for necessário nos seus objetos de negócio, que nem sempre vão ser iguais.

Sim, isso quando você é o cliente, mas quando você é o host?

Quando você monta os seus serviços, vc deixa os objetos que vão trafegar com alguma regra de negócio? Por exemplo, em um cadastro de pessoa física, vc recebe um objeto usuário ou parâmetro por parâmetro? E neste objeto usuário dentro dele vai ter uma validação para o CPF ou não vai ter nada?

http://martinfowler.com/eaaCatalog/remoteFacade.html

Você está misturando as coisas. TO é um padrão usado na época dos EJBs. Web services e EJB são coisas diferebtes. Não existe objetos trafegando em uma comunicação via web services.

Fernando, pelo que eu entendi seria isso mesmo, criar objetos "pobres", sem nenhuma regra e dentro do serviço (que seria o facade), colocar um "de->para" colando ali as regras necessárias, pois assim iria ser ter um trafego menor na rede e etc…

Ou seja, tenho que receber parâmetro a parâmetro. Independente se existiram entrada iguais ou não, um exemplo bem simples, seria um serviço de cadastro e update que recebem os mesmo parâmetros, em vez de criar um objeto e receber ele eu passo a receber parâmetro por parâmetro.

[quote=Jedi_FeniX]
Ou seja, tenho que receber parâmetro a parâmetro. Independente se existiram entrada iguais ou não, um exemplo bem simples, seria um serviço de cadastro e update que recebem os mesmo parâmetros, em vez de criar um objeto e receber ele eu passo a receber parâmetro por parâmetro.[/quote]

Não. Significa apenas que não existe objetos trafegando.

Não entendi por qual motivo você teria que receber parametro por parametro. Você recebe uma página palavra por palavra, uma imagem byte por byte?

O universo não se resume a objetos ou caos. Existem várias tipos de conteúdo disponível para se organizar informação, ou pode criar o seu formato próprio.

[quote=Jedi_FeniX]Sim, isso quando você é o cliente, mas quando você é o host?

Quando você monta os seus serviços, vc deixa os objetos que vão trafegar com alguma regra de negócio? Por exemplo, em um cadastro de pessoa física, vc recebe um objeto usuário ou parâmetro por parâmetro? E neste objeto usuário dentro dele vai ter uma validação para o CPF ou não vai ter nada?[/quote]
O seu server vai receber um objeto com as informações que o cliente enviou. Depois você vai ler esse objeto e atender seu modelo de negócio. Então, também uma classe enxuta para o WS, já que seu modelo de negócio pode evoluir muito, ter mais necessidades e o WS nem sempre vai ser igual.

Geração de código é um sinal que estamos falando de alguma variação de objetos distribuídos (EJB-RMI, CORBA) e não webservices.