quarta-feira, 4 de junho de 2008

SOA - Arquitetura Orientada a Serviço

Muito se fala em criar aplicações, nesta ou naquela linguagem, muitos defendem seu ponto de vista e defendem também a linguagem que usa e que as outras não prestam. Porém alguns pontos deveriam ser questionados, será que o desenvolvimento do seu software seguiu padrões? Será que o seu software foi testado? Que metodologia voce usou?
Bom, voce ja tentou responder estas perguntas? Caro analista, não ha mais espaço para softwares que não seguem padrões e não são testados. Para isso é que a Engenharia de software existe. Hoje em dia a exigencia é muito grande, os resultados podem definir se a empresa sobreviverá ou não no mercado, um erro pode custar a vida útil de uma empresa.
É por este motivo que venho abordar o assunto e levantar a seguinte situação: Que metodologia utilizar? Qual a melhor metodologia de testes?
Hoje se fala muito em desenvolvimento ágil como XP, Scrum, FDD, Crystal etc. Agora a nova onda é o SOA que é Service Oriented Architecture ou arquitetura orientada a serviço. O termo descreve duas coisas muito diferentes onde as duas primeiras palavras expressam metodologia para desenvolvimento de software e a terceira é um panorama de todos os ativos de software de uma empresa. E o que é um serviço em tecnologia? São porções, componentes de software construidas de forma que possam ser facilmente vinculadas a outros componentes de software. Um exemplo de SOA é a integração do sistema de call center com o sistema de gestão empresarial para saber se determinado pedido será entregue no prazo. A arquitetura orientada a serviço permite a integração dos vários componentes fazendo com que os resultados sejam muito precisos determinando uma boa prestação de serviço e aumento de receitas. SOA não é modismo e vc pode utilizar seu desenvolvimento ágil da melhor forma possível, testar seu software exaustivamente.
SOA e WEB SERVICES - SOA é a arquitetura abrangente para criar aplicações dentro de uma empresa — pense em um projeto arquitetônico — mas, neste caso, a arquitetura demanda que todos os programas sejam criados com uma metodologia de desenvolvimento de software específica, conhecida como programação orientada a serviço. Web services são um conjunto de mecanismos-padrão de comunicação criados sobre a World Wide Web. Ou seja, os web services são uma metodologia para conectar e comunicar. Enquanto SOA é uma estratégia de TI.
Uma das grandes vantagens do SOA é o desenvolvimento de aplicações customizadas para seu negocio com mais facilidade para responder as demandas do mercado em uma aconomia globalizada. O SOA ta na pauta de todos os CIO´s de grandes empresas e veio para ficar não será mais uma modinha. Observem esta tendência.

5 comentários:

pedrocesar disse...

Muito bom o blog, concordo plenamente com o post. Parabéns.

Anônimo disse...

"...neste caso, a arquitetura demanda que todos os programas sejam criados com uma metodologia de desenvolvimento de software específica, conhecida como programação orientada a serviço."

O que vale ressaltar é que SOA não necessariamente é Web Service.
Pode-se ter uma arquitetura orientada a serviço usando várias outras tecnologias como REST por exemplo.
http://javawora.blogspot.com/2008/01/soa-no-webservice.html

Marcilio Ferreira de Souza Júnior disse...

Olá, legal seu post!! Gostaria de fazer dois comentários. Primeiro: "Ou seja, os web services são uma metodologia para conectar e comunicar". Lembrando que WS é uma Tecnologia, não uma metodologia!! Segundo, já faz um bom tempo que SOA é um assunto quente. Existe um grande número de blogs que falam sobre o assunto, seja com o foco em Web Services apenas, seja em SOA como um todo. Entretanto, não vejo ninguém - ou quase ninguém - comentar SOA na prática. Tentem pegar 2, apenas 2, aplicações desenvolvidas em liguagens/plaraformas diferentes e tentar usar um OpenESB, Eclipse SOA Tools Platform Project, Apache Tuscany, SCA, Mule ou Apache Service Mix para ver a dor de cabeça que é usar um BUS e fazer 2 aplicações conversar. Por fim, vejo que o futuro realmente é SOA (alinhamento do negócio com a TI), porém sem a discussão prática dessa arquitetura não conseguiremos chegar a lugar algum durante um bom tempo. Oriento projetos de pesquisa nessa área, quem quiser contribui fique à vontade. Abraços!!

Gerson Júnior disse...

É bem interessante realmente essa tal de "alinhamento de TI" chamado SOA. Na verdade SOA veio para cumprir todas as promessas que O.O não conseguiu cumprir quando prometeu mundos e fundos na sua concepcão e realmente se implementado corretamente tem tudo para funcionar. SOA veio fazer com que alguns objetos reunidos tenham algum sentido para o negócio, incluindo cada vez mais o negócio dentro de TI.

Quanto ao comentario do Marcílio, creio que tem que se ir até mais a essência para resolver questões como essas, ver o que realmente se deseja integrar, escolher o ORB (Object Request Broker) ideal para ser utilizado entre as aplicações que irão conversar e etc, não é simples realmente, mas se olharmos para o conceito e não apenas aplicações/ferramentas/produtos, pode ser que seja tudo mais simples!

Abraço a todos e Macelo, parabéns pelo Blog!

Anônimo disse...

ótimo post, claro e objetivo. Parabéns