Service-oriented architecture: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Aleth Bot (discussão | contribs)
m Bot: Substituição automática de afluentes - solicitado em Usuária:Aleth Bot/Substituição de afluentes
m ajustes usando script
Linha 1:
{{Multitag|trad|wkf|rev|rec|snot|data=Novembro de 2011}}
 
'''Service-Oriented Architecture (SOA)''', pode ser traduzido como '''arquitetura orientada a serviços''', e é um estilo de [[arquitetura de software]] cujo princípio fundamental prega que as funcionalidades implementadas pelas [[programa de computador|aplicações]] devem ser disponibilizadas na forma de serviços.<ref>{{citar web|url=http://opengroup.org/projects/soa/doc.tpl?gdid=10632|titulo=Definition of SOA|autor=SOA Working Group of [[The Open Group]]|lingua=inglês|acessodata=4 de junho de 2007}}</ref><ref name="boris">{{citar web|url=http://www.ibm.com/developerworks/library/ar-soastyle/|titulo=Defining SOA as an architectural style|autor=Boris Lublinsky|lingua=ingles|acessodata=4 de junho de 2007}}</ref> Frequentemente estes serviços são conectados através de um "barramento de serviços" ('''enterprise service bus''', em inglês) que disponibiliza [[interface (ciência da computação)|interface]]s, ou contratos, acessíveis através de ''[[web service]]s'' ou outra forma de comunicação entre aplicações.<ref name="boris"/><ref>{{Referência acitar livro | Autor autor= Dirk Krafzig, Karl Banke, Dirk Slama | Título título= Enterprise SOA | Subtítulo subtítulo= Service-Oriented Architecture Best Practices | Edição edição= 1 | Local de local-publicação = Estados Unidos da América | Editora editora= Prentice Hall | Ano ano= 2004 | ID isbn= ISBN 0131465759}}</ref><ref>{{citar web|url=http://www.redbooks.ibm.com/redbooks/pdfs/sg246346.pdf|titulo=Patterns: Implementing an SOA using an Enterprise Service Bus|autor=Martin Keen, Susan Bishop, Alan Hopkins, Sven Milinski, Chris Nott, Rick Robinson, Jonathan Adams, Paul Verschueren, Amit Acharya|lingua=inglês|acessodata=4 de junho de 2007}}</ref> A arquitetura SOA é baseada nos princípios da [[computação distribuída]] e utiliza o paradigma ''request/reply'' para estabelecer a comunicação entre os sistemas clientes e os sistemas que implementam os serviços.<ref>{{citar web|url=http://www.javaworld.com/javaworld/jw-06-2005/jw-0613-soa.html|titulo=What is service-oriented architecture?|autor=Raghu R. Kodali|lingua=inglês|acessodata=4 de junho de 2007}}</ref>
 
Além da perspectiva estritamente técnica, a arquitetura orientada a serviços também se relaciona com determinadas políticas e conjuntos de "boas práticas" que pretendem criar um processo para facilitar a tarefa de encontrar, definir e gerenciar os serviços disponibilizados.<ref>{{citar web|url=http://www.ibm.com/developerworks/library/ar-servgov/|titulo=Introduction to SOA governance|autor=Bobby Woolf|lingua=inglês|acessodata=4 de junho de 2007}}</ref><ref>{{citar web|url=http://www.oasis-open.org/committees/download.php/19679/soa-rm-cs.pdf|titulo=Reference Model for Service Oriented Architecture 1.0|autor=[[OASIS (organização)|OASIS]]|lingua=inglês|acessodata=4 de junho de 2007}}</ref>
 
A arquitetura orientada a serviços também se insere em um processo de reorganização dos departamentos de tecnologia da informação das organizações, permitindo um melhor relacionamento entre as áreas que dão suporte tecnológico à empresa e as áreas responsáveis pelo negócio propriamente dito, graças a maior agilidade na implementação de novos serviços e reutilização dos ativos existentes.<ref>{{citar web|url=http://www.ebizq.net/topics/soa/features/6639.html|autor=Chris Harding, The Open Group|titulo=Achieving Business Agility through Model-Driven SOA|lingua=|ingles|acessodata=4 de junho de 2007}}</ref><ref>{{citar web|url=http://www.ibm.com/developerworks/webservices/library/ws-reuse-soa.html|autor=Rich Rogers|titulo=Reuse engineering for SOA|lingua=|ingles|acessodata=4 de junho de 2007}}</ref>
Linha 11:
==Introdução==
 
Parece provável supor que a maioria das funcionalidades de um software sejam entregues e consumidas como serviços. Devido à maturidade dos protocolos Web Services e outras tecnologias, o mais provável é que tudo seja realmente implementado através de serviços.
 
As implementações SOA dependem de uma rede de serviços de software. Serviços incluem baixo acoplamento de unidades e de funcionalidade. Cada serviço implementa uma ação, como preencher um formulário on-line de uma aplicação ou visualizar um extrato bancário de uma conta, ou realizar uma reserva on-line para bilhete de avião. Ao invés de realizar de chamadas diretas para o código fonte, os serviços definem protocolos que descrevem como enviar e receber as mensagens, utilizando descrições em metadados.
Linha 106:
Pode ser em contextos distintos. Estes contextos podem ser específicos para uma tarefa de negócio, entidades de negócio e outros agrupamentos de negócio.
 
[[Imagem:Fig3.1.jpg|thumb|350px|Serviços podem encapsular a lógica de outros serviços "find-bind-execute"]]
 
Na figura, quando construímos uma solução consistente de serviço, cada serviço pode encapsular a tarefa realizada por um passo individual ou um sub-processo composto de um conjunto de passos. Um serviço pode encapsular toda a lógica do processo. O último caso representado pelo serviço pode englobar a lógica encapsulada de outros serviços.
Linha 112:
'''Como serviços são relacionados'''
 
[[Imagem:Fig3.2.jpg|thumb|350px|Serviços podem encapsular a lógica de outros serviços "find-bind-execute"]]
 
Dentro do SOA serviços podem ser usados por outros serviços ou por outros programas. Independentemente, o relacionamento por trás do serviço é baseado no entendimento que os serviços possam interagir. Eles devem estar atentos ao outro. Esta consciência é obtida através do uso da descrição do serviço.
Linha 130:
'''Acoplamento:''' busca-se um fraco acoplamento.
'''Contrato de serviço:''' meio de acesso a esse serviço.
'''Autonomia:''' serviços têm controle sobre a lógica que a encapsulam.
'''Abstração:''' além do que é descrito no contrato de serviço, serviços escondem a lógica do mundo exterior.
'''Reusabilidade:''' a lógica é dividida no serviço com a intenção de reuso.
Linha 144:
* '''Abordagem bottom-up:''' serviços (ou capacidades) identificados através dos pontos de integração entre sistemas ou das funcionalidades já disponíveis nos sistemas atuais. Nessa abordagem corre-se o risco de criar serviços que não representam uma função de negócio ou que tenham acoplamento com a implementação. Porém, pode ser uma boa opção quando existem muitos problemas de integração ''spaghetti'' ou se deseja preparar para substituição de algum sistema de ''back-end''.
 
==={{Ver também}}===
{{wikiquote|SOA}}
*[[Arquitetura de software]]
Linha 155:
{{referências}}
 
==Ligações externas==
=={{links externos}}==
* [http://www.ibmpressbooks.com/bookstore/product.asp?isbn=0131870025&rl=1 Norbert Bieberstein et al. Service-Oriented Architecture Compass by Pearson 2006]
* [http://www.research.ibm.com/journal/sj44-4.html IBM Systems Journal edition on SOA]
Linha 164:
 
{{Correlatos|
|commons =
|wikisource =
|wikiquote = SOA
|wikilivros =
|wikinoticias =
|wikcionario = SOA
|wikispecies =
|meta =
}}