Inquiridor
CORBA, RMI, GLOBUS e SOA

Discussão Geral
-
Bom dia pessoal,
Estou estudando arquitetura orientada a serviços, e estou achando um pouco complicado. A maioria do conteudo que encontro trata o assunto de uma maneira meio abstrata, o que me faz ter entendimentos diferentes em todo momento. Nesse estudo acabei achando essas 4 arquiteturas que me parecem ser as mais conhecidas no mercado, porém em algumas leituras um parece não ter nada haver com o outro servindo pra propositos diferentes e em outras todas parecem ter o mesmo objetivo.
Queria saber a experiencia e opnião de vocês no assunto.
Afinal CORBA, RMI, GLOBUS e SOA são:
um Design Pattern ?
um Framework ?
regras de boas praticas em sistemas distribuídos?espero que a discussão seja bacana.
abcs
SerraVentura
Todas as Respostas
-
Serra,
Realmente essa discussão é muito abstrata.
SOA é a idéia de arquitetura orientada a serviços. Mas o que é isso na prática?
Imagine uma corporação que tem sua tonelada de sistemas. Um sistema de folha de pagamento em Oracle, CRM de outro vendor, ERP da SAP e mais algumas coisinhas desenvolvidas em casa.
Óbvio que tudo isso precisa ser integrado e nada é integrado. O sistema de ERP controla o orçamento, o de folha de pagamento, precisa mandar todos os gastos com pessoal para o ERP. O outro sistema que trata de compras, usa o workflow do ERP para aprovação. E assim sucessivamente.
A idéia de uma arquitetura orientada a serviços é justamente não pensar em sistemas, mas em serviços. Você pluga todos esses sistemas num "barramento" (ou BUS) de serviços, e todos eles começam a se conversar. Isso que eu te contei é como a indústria faz para vender essa BUS de serviços.
Na prática, vocÊ tem uma série de integrações via Web Service. Os sistemas provêem interfaces via web services e os outros passam a consumir esses web services. A idéia é gerar um ferramental, protocolos e meios de comunicação que simplifiquem toda essa interoperabilidade necessária para os sistemas atuais.
Mas que tecnologia usar, que pattern usar? Não existe uma convenção em relação a isso. Por isso a Microsoft investe por exemplo no WCF. Você pode expor os "serviços" da sua aplicação num mecanismo que permita comunicação tanto via remoting, quanto SOAP, quanto REST. Esse é o mecanismo.
O próprio conceito de "web service" é meio abstrato. SOAP é uma implementação, REST é outra, JSON é outra, XML sobre HTTP é outra.
As boas práticas para sistemas distribuídos é justamente "enxergar" esses serviços, como encapsulá-los e direcioná-los para os sistemas corretos que sabem lidar com esses serviços. Eliminar redundâncias (2 sistemas de folha de pagamento, 2 sistemas de compras).
CORBA é um "padrão' para objetos distribuídos, assim como EJB's, componentes DCOM ou mesmo Web Services podem se encaixar nessa idéia. RMI eu acredito que seja outra (não conheço). Não necessariamente estão relacionados com o conceito de SOA.
SOA é o conceito. Não existe uma "implementação" de SOA. Geralmente as pessoas tem integraçãos via Web Service e dizem que suportam SOA.
Abraço,
Eric
-