Escolar Documentos
Profissional Documentos
Cultura Documentos
Trabalho apresentado Universidade Nove de Julho, UNINOVE, em cumprimento parcial s exigncias da disciplina de Processo de Desenvolvimento de Software, sob orientao do Prof. Moises
Nomes Armando Lopes da Silva Deivid Moreira Macimo Francisco dos Santos Martins
SUMRIO
1. 2. RESUMO ............................................................................................................................................... 5 PROGRAMAO ORIENTADA A SERVIO (SOA) ................................................................................... 6 2.1. DEFINIO .................................................................................................................................... 6 2.2. SOA COMO SERVIOS ENCAPSULAM A LGICA ............................................................................. 7 2.3. SOA PRTICAS ESSENCIAIS ........................................................................................................ 10 3. PROGRAMAO ORIENTADA A ASPECTOS (POA) .............................................................................. 11 3.1. ORIENTAO A ASPECTOS .......................................................................................................... 12 3.2. ELEMENTOS DA ORIENTAO A ASPECTOS. ................................................................................ 14 3.3. ASPECTOS ................................................................................................................................... 15 3.4. AS VANTAGENS DA ORIENTAO ASPECTO ................................................................................ 16 4. CONCLUSO ....................................................................................................................................... 17
1.
RESUMO
Objetivo desta atividade descrever os conceitos sobre (SOA) programao orientada a servio e (POA) programao orienta a aspectos SOA um estilo de arquitetura de software cujo princpio fundamental prega que as funcionalidades implementadas pelas aplicaes devem ser disponibilizadas na forma de servio so conectados atravs de um "barramento de servios" (enterprise service bus, em ingls) que disponibiliza interfaces, ou contratos, acessveis atravs de web services ou outra forma de comunicao entre aplicaes. A arquitetura SOA baseada nos princpios da computao distribuda e utiliza o paradigma request/reply para estabelecer a comunicao entre os sistemas clientes e os sistemas que implementam os servios.
2.
2.1. Definio
Programao orientada a servio (SOA) um conceito de arquitetura corporativo, que nos permite criar, padronizar, documentar servios genricos, nicos e interoperveis, que possam de maneira fcil, ser reutilizados por diversas aplicaes diferentes, sem a necessidade de ser desenvolvido novamente, tornando o processo de desenvolvimento mais gil. O SOA coloca a prestao de servio como eixo de todo o negcio, dando destaque gesto de servios e ao cliente. Servio uma uma funo independente, sem estado (stateless) que aceita uma ou mais requisies e devolve uma ou mais respostas atravs de uma interface padronizada e bem definida. Servios podem tambm realizar partes discretas de um processo tal como editar ou processar uma transao. Servios no devem depender do estado de outras funes ou processos. A tecnologia utilizada para prover o servio, tal como uma linguagem de programao, no pode fazer parte da definio do servio. Orquestrao - Processo de sequenciar servios e prover uma lgica adicional para processar dados. No inclui uma representao de dados. Stateless - No depende de nenhuma condio pr-existente. Os servios no devem depender de condies de outros servios. Eles recebem todas as informaes necessrias para prover uma resposta consistente. O objetivo de buscar a caracterstica de stateless dos servios possibilitar que o consumidor do servio possa sequenci-lo, ou seja, orquestr-los em vrios fluxos (algumas vezes chamados de pipelines) para executar a lgica de uma aplicao. Provedor O recurso que executa o servio em resposta a uma requisio de um consumidor. Consumidor quem consome ou pede o resultado de um servio fornecido por um provedor. Descoberta SOA se baseia na capacidade de identificar servios e suas caractersticas. Consequentemente, esta arquitetura depende de um diretrio que descreva quais os servios disponveis dentro de um domnio. Binding A relao entre os servios do provedor e do consumidor deve ser idealmente dinmica, ela estabelecida em tempo de execuo atravs de um mecanismo de binding.
Pode ser em contextos distintos. Estes contextos podem ser especficos para uma tarefa de negcio, entidades de negcio e outros agrupamentos de negcio.
Servios podem encapsular a lgica de outros servios "find-bind-execute" Na figura, quando construmos uma soluo consistente de servio, cada servio pode encapsular a tarefa realizada por um passo individual ou um sub-processo composto de um conjunto de passos. Um servio pode encapsular toda a lgica do processo. O ltimo caso representado pelo servio pode englobar a lgica encapsulada de outros servios. Como servios so relacionados
Dentro do SOA servios podem ser usados por outros servios ou por outros programas. Independentemente, o relacionamento por trs do servio baseado no entendimento que os servios possam interagir. Eles devem estar atentos ao outro. Esta conscincia obtida atravs do uso da descrio do servio. Como servios se comunicam Quando as mensagens so enviadas eles perdem o controle do que acontece depois. Essas mensagens podem ser equipadas com inteligncia suficiente para auto-governar as partes lgicas do processamento.
Servios podem encapsular a lgica de outros servios "find-bind-execute" Esta arquitetura similar ao passado da arquitetura distribuda que suporta mensagens e separao de interface de processamento lgico. O que distingue como esses trs componentes fundamentais (servio, descrio e mensagem) so projetados. Onde entra a orientao de servios. Como servios so projetados
Servios podem encapsular a lgica de outros servios "find-bind-execute" Acoplamento: busca-se um fraco acoplamento. Contrato de servio: meio de acesso a esse servio. Autonomia: servios tm controle sobre a lgica que a encapsulam. Abstrao: alm do que descrito no contrato de servio, servios escondem a lgica do mundo exterior. Reusabilidade: a lgica dividida no servio com a inteno de reuso. Agregabilidade: colees de servios podem ser coordenados e montados em forma de servios compostos. Statelessness: servios minimizam a reteno da informao em determinada atividade. Descoberta: servios so projetados para ser exteriormente descrito, para que possam ser encontrados e avaliados atravs de mecanismos de descobertas disponveis. Como servios so construdos A obteno do SOA no exige servio web, mas SOA pode e deve ser realizada atravs do uso da plataforma de tecnologia de servio web
10
programao procedural e
11
Todas as aplicaes possuem diversas funcionalidades, algumas fazem parte do ncleo (primrias) e outras do suporte as funcionalidades presentes no ncleo e geralmente se repetem em diversos mdulos (secundrias). Em uma aplicao comercial as funcionalidades do ncleo so as regras de negcios e as secundrias so, por exemplo, logging e autorizao. A programao orientada a objetos a metodologia de programao mais utilizado para implementar funcionalidades primrias, mas ela no suficiente para cobrir as funcionalidades secundrias, especialmente em aplicaes complexas. Essas funcionalidades secundrias so definidas pelo termo crosscuting concerns. A orientao a objetos cria um acoplamento entre funcionalidades principais e os crosscuting concerns que no desejado, uma vez que a adio ou modificao dessas funcionalidades secundrias implicam em mudanas no ncleo da aplicao.
O acoplamento da regra de negcios com as funcionalidades secundrias, implica em mudanas no ncleo caso ocorra alguma alterao nas funcionalidades secundrias AOP uma nova metodologia que prov a separao dos crosscuting concerns introduzindo uma nova unidade de modularizao, o aspecto. Com AOP voc implementa os crosscuting concerns em aspectos ao invs de mescl-los nos mdulos principais. Os mdulos principais e os secundrios so implementados separadamente. Um compilador especial monta o sistema final combinando os mdulos principais e os secundrios num processo chamado weaving (tecelagem), da d-se o nome de weaver (tecelo) ao compilador. O resultado que a AOP modulariza as funcionalidades secundrias, possibilitando a criao de um sistema que mais fcil de implementar e manter.
12
A separao dos mdulos ainda possibilita a reutilizao dos mdulos secundrios em vrios mdulos principais. Os mdulos secundrios so escritos apenas uma vez, e mesclado quantas vezes for necessrio nos mdulos principais. Isso sem nenhuma alterao no ncleo da aplicao. Existem vrias implementaes de AOP para vrias linguagens de programao, inclusive em Java. AspectJ a implementao AOP para Java mais utilizada e que tem mais suporte, por isso utilizaremos ela nesse trabalho, alm disso a sintaxe estendida do AspectJ o torna uma das implementaes AOP mais poderosas que existe.
13
14
3.3. Aspectos
O aspect (aspecto) o ponto central da Orientao a Aspectos, assim como uma classe o ponto central em orientao a objetos. Nele so declarados e implementados os cdigos que expressam as regras de mesclagem das funcionalidades. Pointcuts, advices, introductions e declaraes so combinadas em aspectos. Alm dos elementos da Orientao a Aspecto, um aspecto tambm pode conter mtodos e variveis membros assim como nas classes Java. Existem outras implementaes de Orientao a Aspectos para Java que podem no ter a sintaxe extendida do AspectJ e por isso utiliza classes e mtodos normais para criao dos aspectos, mas ainda assim os conceitos so vlidos.
15
A Orientao a Aspectos traz novas dificuldades a programao, mesmo porque uma nova metodologia, e tudo que novo requer um tempo de aprendizado. Mas a Orientao a Aspectos oferece vantagens que cobrem esse tipo de problema: Responsabilidades mais transparentes de cada mdulo: cada mdulo responsvel apenas pelas tarefas destinadas ao prprio mdulo. Os mdulo so mais independentes. Modularizao mais alta: As responsabilidades so melhor definidas em cada mdulo, os mdulos tem baixo acoplamento entre si. Evoluo do sistema mais facilitada: O baixo acoplamento possibilita que alteraes no sistema sejam feitas sem alterao do ncleo. Decises de design podem ser tomadas com mais atraso: Devido ao baixo acoplamento no necessrio pensar em todos os problemas no incio do desenvolvimento do sistema. Mais reusabilidade do cdigo: Os mdulos podem ser mais reaproveitados devido a alta coeso e baixo acoplamento. Sistemas mais fceis de desenvolver e manter: Os aspectos tornam a integrao das partes do sistema um modulo separado, o que traz mais facilidade no desenvolvimento. Custos reduzidos de introduo de novas funcionalidades: Novas funcionalidades podem ser introduzidas criando aspectos, no sendo necessrio alterar o ncleo para adicionar tais funcionalidades.
16
4. Concluso
A Orientao a Aspectos uma nova metodologia de programao. A Orientao a Aspectos no um substituto a orientao a objetos e sim um complemento. Um novo nvel de modularizao alcanado, a diminuio do acoplamento dos mdulos possibilita mais facilidade de manuteno, maior reaproveitamento do cdigo e maior organizao do sistema. Apesar de ser uma nova metodologia a orientao a aspectos j est madura o suficiente para ser utilizada na produo de sistemas, j tem documentao e suporte de ferramentas suficiente. Assim como hoje a orientao a objetos a maneira mais aceita para desenvolvimento dos mdulos do sistema, a orientao a aspectos ser o padro de integrao desses mdulos.
17
5. Bibliografia
Uso de Programao Orientada a Aspecto no Desenvolvimento de Aplicaes que utilizam conceitos de Tecnologia Adaptativa http://lta.poli.usp.br/lta/wta/wta-2012/trabalhos/papers/wta_submission_13 Enciclopedias Wikipdia, a enciclopdia livre. Programao orientada a serivio http://pt.wikipedia.org/wiki/Service-oriented_architecture Programao orientada aspecto http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_orientada_a_aspecto
18