Olá pessoal gostaria de saber de quem já utilizou Web Service e fez alguma comparação com EJB para saber sobre a performance, vantagens e desvantagens.
Por que tudo não pode ser serviço (Web Service)?
Olá pessoal gostaria de saber de quem já utilizou Web Service e fez alguma comparação com EJB para saber sobre a performance, vantagens e desvantagens.
Por que tudo não pode ser serviço (Web Service)?
Na verdade meu problema é diferente tenho vários sistema(9) em ears distintos estes sistemas conversam entre si, e com outros sistemas externos também. E a implementação destes sistemas será gradativa, um pedacinho de cada vez, por isso SOA, agora minha dúvida é qual é o preço disso? Quanto de overhead? Como saber isso?
Para um mesmo serviço, a versão WebService tende a ser mais lenta por conta do protocolo usado para serializar/desserializar os dados da chamada, que é 100%.
Como uma “regra do dedão”, eu não usaria WS para troca de informações entre sistemas sob o mesmo domínio de segurança/responsabilidade, a menos que não houvesse outra maneira.
Por outro lado, WSs podem sem uma boa alternativa de integração entre parceiros de negócios, substituindo tradicionais processos de troca de arquivos. O cuidado que se deve ter, no entanto, é quanto aos aspectos de segurança e gerenciamento dos serviços. Lembre-se que um WS tende a entrar “fundo” no seus sistemas internos (epa!), e, sem uma rigorosa auditoria de segurança, vc. estará pedindo para ter problemas…
A questão de segurança é muito importante mas se definir uma arquitetura aliada a uma infra estrutura onde eu tenha serviços internos são tratados do firewall pra dentro e serviços externos do firewall pra fora, ou seja quem tem autorização para serviços internos só quem está no firewall e tenha a chave pública de comunicação com este serviço, elimino boa parte do “epa” este serviço é interno e não pode ser exposto.
Mas o problema ainda é o tempo, quanto isso custa. Preciso de uma maneira eficaz para medir todos os tempos, de parser, autenticação e qualquer outra questão. Sei que o JMetter pode ajudar mas não tenho certeza.
Preciso codificar.
Escolha a tecnologia que melhor se adaptar ao seu problema funcional. Acredite: o desempenho será guiado infinitamente mais pela qualidade da sua aplicação do que pelo protocolo utilizado.
De novo eu aki! Esse assunto de serviços e transações distribuidas me incomoda pacas. Você já pensou em como vai tratar as transações distribuídas disso? Sistema A chama Sistema B que persiste algo (exemplo tah!) e chama Sistema C que persiste algo (ex de novo). Como tratar o caso do sistema C falhar? Tem pessoas que apontam para transações compensatorias, mas digamos que a propria falhe e B fica “comitado” e C não?
A proposito concordo com o pcalcado sobre “o desempenho será guiado infinitamente mais pela qualidade da sua aplicação do que pelo protocolo utilizado.”.
Valew!
Vamos lá então já coloquei meu problema para vcs vários sistemas em difirentes ears mas, o meu cliente final é java sempre será java, pensado nisso qual seria a melhor opção Session Façades com EJB remoto, ou Web Service? E porque?
E um pouco mais, como modificar um serviço em um determinado sistema e não afetar outros sistemas que utilizem determinados serviços do sistema modificado. Exemplo.
SF= Session Façade
EAR1: SF11, SF12, SF13
EAR2: SF21, SF22, SF23
EAR3: SF31, SF32, SF33
SF11 usa SF21
Por tanto eu teria que colocar o stub do SF21 na distribuição do SF11
Agora vamos imaginar que todos eles estejam utlizando interligados de alguma forma.
não haviria nenhuma outra forma de se acontecer uma manutenção em qualquer um dos sistemas que não afetasse “TODOS” os outros sistemas.
Isso é pedir pra morrer.
Só pra ter uma idéia todos os 9 sistemas juntos em uma fatoração preliminar tem mais de 50.000 pontos de função e já houveram mais de 5 tentativas de migração em 7 anos, e todas falharam justamente por este problema, o que é alterado em um deve ser replicado para todos, e alguns já falharam por subestimar o problema e tentar fazer um “big bang” fazer tudo e entregar.
O QUE EU FAÇO…
Contrate um consultor.
Tecnologia não é algo simples a ponto de alguém anônimo num fórum gratuitamente te dar resposta ideal. Seu problema precisa ser analisado e estudado.
Ok fui tosco em minha colocação, mas esta não foi a intenção, tenho certeza absoluta que não será deste fórum que vou ter a solução para este problema, simplesmente gostaria de saber se alguém já havia passado por situação semelhante.
Acredito que o foco tópico está fora do assunto que estamos discutindo, seria preciso mudar o nome ou abrir outro.
Isto varia de acordo com o propósito da sua aplicação, claro…
Veja se realmente você precisa de serviços distribuídos, pois isto gera um overhead a mais com toda certeza! Os beans vão modelar o negócio da sua aplicação. Ops, mas um bean pode ser um Web Service! Se necessário use os dois. Ainda, com a JPA (que está na especificação do EJB3) você pode persistir seus POJOs facilmente.
São tantos pontos a serem abordados, isso daria um belo livro se fosse escrever aqui!
Procure material sobre EJB3 na internet que você vai achar muita coisa…