Top Banner

of 14

Anotações APD

Mar 03, 2016

Download

Documents

asda sd asd
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • APD III

    24-01-2015

    Os padres arquiteturais existem devido complexidade dos projetos de sistema atuais.

    A Arquitetura de um sistema a estrutura ou conjunto estruturais do sistema, a qual composta pelos elementos de software, propriedades externas visveis e os relacionamentos entre esses elementos.

    Estrutura esttica

    - elementos estticos internos do software ou seja, planejados em tempo de concepo ou planejamento do projeto.

    - exemplo: Modulos, objetos, classes, pacotes, servios

    (tudo o que planejou e espera que d certo)

    Estrutura dinmica

    - Elementos dinmicos (runtime), ou seja, que podem sofrer alteraes em tempo de execuo.

    Ex. fluxo de informaes entre elementos.

    Comportamento externamente visvel

    - interaes funcionais entre o sistema e o seu ambiente

    - fluxo de informao de entrada e sada, como o sistema responde ao estmulos externos, o contrato publicado ou API que arquitetura tem com o mundo exterior.

    - O comportamento externo deve ser modelado observando o sistema como caixa preta.

    Requisitos funcionais : funes internas, tudo o que tem haver com o funcionamento interno do sistema.

    Requisitos no funcionais

    - Propriedades no funcionais, externas e visveis. (implementao fsica, controle de acesso)

    Desempenho, segurana e outros.

    Como o sistema se comporta do ponto de vista de um observador externo.

    Arquitetura candidata

    um conjunto de estruturas estticas e dinmicas que tem o potencial de mostrar comportamento interno visvel e requisito no funcionais.

    Importncia da arquitetura

    - Prov uma forma direta entre os stakeholders (-negociao de requisitos)

  • - uma manifestao das decises antecipadas do projeto.

    Planejamento de budget, equipes e planejamento.

    Base para a integrao, testes e manuteno

    Decises sobre os requisitos no funcionais.

    - uma abstrao transfervel e reutilizvel

    Muitos projetos com arquiteturas similares.

    03/03

    MVC

    Model View Controller

    Antes do MVC os sistemas eram monolticos, isto , os dados eram misturados, o processamento da entrada junto com o processamento de sada.

    Depois do MVC os dados de entrada e sada no se comunicam diretamente.

    MVC separao entre camada de negcio(model) e a camada de visualizao(view) com um medidor de comunicao (controller).

    Modelo 3 camadas Apresentao, Regras de Negcio e Dados

    Modelo 5 camadas Cliente, Apresentao, Negcio, Persistncia e Dados

    _____________________________________________________________________

    17/03

    Arquitetura de 2 camadas:

    Cliente e Servidor

    Arquitetura de 3 camadas:

    Cliente (browser), Camada de negcio (php, jsp, etc) e Dados (banco de dados). (servidor sendo as 2 ultimas camadas). No tem definida a camada de apresentao, fica separada entre a camada cliente e a camada de negcio. Como no tem a camada de persistncia de dados bem definida, ela fica separada entre a camada de negcio e a camada de dados.

    MVP - Model View Presenter: modelo parecido com a arquitetura de 3 camadas. Tem uma viso, um modelo com a lgica de negcios e a camada de apresentao que cuida da apresentao da view e faz com que a view no tenha acesso a lgica de negcio.

    Historia de usurio - maneira de detalhar os requisitos do usurio de forma mais detalhada. Deve-se definir algumas metas para teste para verificar que a historia de usurio foi atendida.

    A partir da histria do usurio criam-se mokups (https://moqups.com/ http://pencil.evolus.vn/ ), que um prottipo da interface

  • 31/03

    Diagrama de componentes: mostra os componentes, interfaces e interaes entre eles.

    Uma classe pode ser um componente, um conjunto de classes que se relacionam pode ser um componente.

    Diagrama de Deployment (Diagrama de distribuio ou Implantao) - mostra como a arquitetura de um sistema ser implementada em relao ao hardware. Composto: ns (elementos fsicos), artefatos (so rodados dentro dos ns) e elementos de comunicao.

    N - elemento fsico (hardware) - local onde ir implantar ou distribuir os artefatos

    Artefato - software

    Os diagramas de deployment e de componentes se relacionam, pois os componentes do diagrama de componentes se tornam os artefatos do diagrama de deployment.

    Diagrama de pacotes - mostra a estrutura de pacotes da aplicao e suas dependncias.

    _____________________________________________________________________

    Arquitetura Orientada a Componentes

    Componentes - uma unidade independente de software que encapsula um conjunto de requisitos funcionais e no funcionais e que possui interface de comunicao bem definidas.

    - na arquitetura baseada em componentes um conjunto de componentes forma um sistema complexo

    - os componentes de um sistema trocam mensagens por meio de interface - palavra - chave -> Reuso

    Tipos de reuso:

    - sistema completo de uma aplicao (alta granularidade) - componentes (meio termo) - subsistema, objeto - funes (baixa granulosidade)

    Tipos de componentes:

    - customizados: o componente feito do zero. Demanda maior tempo e dinheiro

  • - reusveis: j esto prontos, vem de outros projetos seus, podem ser feitos algumas modificaes. So perigosos, pois foram feitos para outra aplicao e podem gerar erros.

    - comerciais: comprou um componente, geralmente no podem ser modificados.

    Problemas de Reuso:

    - no fornecida toda a informao necessria - nem sempre pode ser modificada

    COTS - analise que permite decidir entre comprar componentes de terceiros, reusar ou desenvolver internamente componentes de um software.

    _____________________________________________________________________

    Arquitetura Orientada a Servios

    Pensar no sistema como um conjunto de servios prestados e servios consumidos

    SOA: padro de arquitetura que prev que seus produtos sejam parecidos com servios.

    5 camadas do SOA:

    Camada Corporativa - conjunto de processos

    Camada de Processos - conjunto de servios (orquestrao ou coreografia de servios)

    Camada de servios - servios isolados

    Camada de componentes

    Camada de Objetos

    SOA - Conceito de Arquitetura corporativa que promove a integrao entre o negcio e a TI por meio de um conjunto de interfaces de servios acoplados.Arquitetura tecnolgica mas que tenha domnio do negcio. As informaes ficam disponveis para todos os participantes da corporao

    Palavra-chave -> Baixo acoplamento! Interoperveis -> elementos que se comunicam

    Implementar web services baseados no XML usando SOA parece ser a melhor proposta para qualquer arquitetura de corporao.

    Paradigma Find-Bind-Execute - Procurar um servio, se associe a esse servio e execute esse servio (Base para o RMI, Java e SOA)

  • Para fazer a parte do Find-Bind usa-se um middleware

    middleware: deixa escondido para o cliente a parte de desenvolvimento, no interessa ao cliente quem vai responde-lo ou de quem vem o seu servio. Integram clientes que desejam acessar servios da aplicao.

    SOAP - UDDI

    CORBA - ORB

    RMI - rmiregistry

    ESB - Enterprise services bus. Do ponto de vista arquitetural.

    - middleware de integrao - adio de uma camada que isola os clientes do provedor do servio

    Cliente do Servico Contexto de construo (intermedirio) Provedor de Servio

    ESB uma camada adicional facilitadora de servios

    Propriedades:

    - membros do barramento - identifica os componentes que compem o barramento - destinos - mediaes - barramentos externos - servicios de entrada

    orquestrao - composio de servios onde existe a figura de um servio central que controla e coordena os demais processos. cada servio participante no tem conhecimento de que faz parte de uma composio de processos com exceo do servio mestre.

    coreografia - composicao de servios onde no existe a figura de um servio mestre que controla e coordena os demais servios. Um servio intercepta uma requisio, e sabe que deve se combinar com outro servio para executar essa requisio. Cada servio envolvido tem o conhecimento de que faz parte de uma composio e que precisa interagir com outros servios de maneira ordenada para que a composio resultante tenha sucesso. Um servio tem noo da existncia de outro.

    _____________________________________________________________________

  • ESTUDO

    Vises RUP - 4+1

    - Viso lgica: Para analistas de negcios e desenvolvedores. Descreve requisitos comportamentais e a decomposio do sistema. Expressa funcionalidades. Diagramas de classe, colaborao e de sequencia.

    - Viso da Implementao: Para desenvolvedores e gerentes. Descreve os mdulos do sistema ou subsistemas. Expressa gesto da configurao. Diagramas de componentes e pacotes.

    - Viso de Processo: Projetistas e integradores do sistema. Descrevem como os processos do sistema se comunicam. Expressa desempenho, escalabilidade e vaso. Diagramas de atividades.

    - Viso da Implantao: Para sustentao. Descreve como a aplicao instalada e executada. Expressa topologia do sistema, comunicao e provisionamento. Diagramas de implantao.

    - Cenrios: Para usurios e desenvolvedores. Descreve formas de utilizao do sistema. Expressa aes. Diagramas de casos de uso.

    Diagramas de Componentes e de Deployment

    - Mostra os componentes, interfaces e as interaes entre eles. - Componentes previamente construdos podem ser reutilizados ou substitudos. - Componente: representa parte de um sistema que encapsula um comportamento

    em um determinado ambiente. Interfaces providas ou Interfaces consumidas.

    - Conectores: especificam um link de comunicao entre componentes regidos por um contrato de comunicao.

    - Conector de comunicao: conectam dois ou mais componentes por meio de suas interfaces de comunicao

    - Conectores de delegao: conectam interfaces de comunicao internas com componentes externos ao componente.

  • Diagrama de Deployment

    - Mostra como a arquitetura de um sistema ser implementada em relao ao hardware.

    - Ns: Representam recursos computacionais que serviro como elementos de execuo de um artefato. Onde so implementados os artefatos e de forma indireta aos pacotes. Conectados por linhas de comunicao

    - Dispositivos: n que representa um recurso com capacidade de processamento onde artefatos podem ser implantados para execuo.

    - Ambientes de execuo: n que representa um ambiente de execuo para um conjunto de componentes.

    - Artefatos: representam elementos que sero implantados em um ambiente de execuo. Sempre so implantados em um n.

    - Elementos de comunicao: associao entre dois ns que permite a comunicao entre eles. Comunicao entre dispositivos a conexo fsica entre os elementos. Comunicao entre ambientes de execuo o protocolo de comunicao.

    - Deployment: Descreve a alocao de um artefato dentro de um n.

    Diagrama de Pacotes

    - Mostra a estrutura de pacotes da aplicao e suas dependncias. - Pacotes: elementos semanticamente relacionados e que mudam juntos, que

    recebem um nome. Os elementos so alterados e excludos de forma conjunta ao prprio pacote.

    - Elementos de um pacote: type, classe, caso de uso, componente, pacote, dependencia, evento.

    - Tipos de relacionamento: Importao (import), uso (use), merge (extends)

  • Diagrama de pacotes

    Diagrama de deploymet + componentes + pacotes

  • Diagrama de Modelo

    - mostra a estrutura das camadas da aplicao e seus pacotes. - composto por pacotes e camadas

    Arquitetura Orientada a Servios

    - servios: aplicaes identificadas por uma URL/URI disponveis na Web com a finalidade de oferecer servios para integrao de sistemas e comunicao entre aplicaes diferentes.

    - SOAP: forma de fazer Remote Procedure Call (RPC) usando documentos XML. - WSDL: linguagem XML que contem informaes sobre a interface, a semantica e

    outros detalhes de chamada de um web service.

    - UDDI: permite cadastrar registros e localiza-los. No necessrio usar UDDI se o cliente j tiver o documento WSDL

    - Webservice: ponto de acesso a funcionalidade que pode ser localizado dinamicamente, ter sua interface descoberta automaticamente e ser chamado na Web.

  • - Restful web service: permitem uma combinao de mltiplos web services em novas aplicaes

    - Servios de restful no requerem XML, SOAP ou WSDL - Verbos HTTP: GET, POST, PUT, DELETE

    SOA

    - Vantagens: Reutilizao de aplicaes existentes, utilizao de padres abertos, interoperabilidade de plataformas e linguagens e simplificao do processo de desenvolvimento.

    - Riscos e desvantagens: Disponibilidade, interfaces imutveis, garantia de execuo, desempenho, segurana, privacidade, e suporte a transaes.

    - Conceito de arquitetura corporativa que promove a integrao entre o negcio e a TI por meio de um conjunto de interfaces de servios acoplados.

    - Definido como a arquitetura que permite ligar os recursos segundo a demanda. - Servios independentes e o baixo acoplamento formam a arquitetura do SOA. - ESB: Enterprise Service Bus. Middleware de integrao. Adio de uma camada

    que isola os clientes do provedor de servios. Fornece as caractersticas para que SOA possa ser implementado. uma camada adicional facilitadora de servios.

    - Propriedades do ESB: Membros do barramento, destinos, mediaes, barramentos externos, servios de entradas, servios de sada, entrada de dados de autenticao, especificao de ativao JMS

  • Exercicio da prova: (Correo do Fe)

    3. Classe por si s representa uma abstrao, um modelo, um molde de um objeto do mundo real. Quando falamos de componentes, aumentamos o nvel de abstrao, pois um componente possui interfaces, classes de comunicao bem definidas que encapsulam um conjunto de requisitos, tornando-o uma unidade independente de software, possuindo vrios objetivos e funes.

    Um servio aumenta ainda mais o nvel de abstrao da relao, pois oferece meios de integrao de sistemas e comunicao entre aplicaes.

    O fato de componentes serem complexos, instveis, custosos para serem adaptados e de difcil integrao e reuso, pois propriedades de um componente nem sempre podem ser modificados, levou a criao da arquitetura orientada a servios, que possibilita a reutilizao de aplicaes, utilizao de padres abertos e interoperabilidade de plataformas e linguagens para disponibilizar funcionalidades na forma de servios.

    4.

    Explicao Sites Deployment

    A UML 2 diagrama de implantao descreve uma viso esttica da configurao de tempo de execuo dos ns de processamento e os componentes que so executados em ns. Em outras palavras, diagramas de implantao mostrar o hardware para o seu sistema, o software que est instalado no que hardware, eo middleware usado para ligar as mquinas dspares entre si. Voc deseja criar um diagrama de implantao para aplicativos que so implantados para vrias mquinas, por exemplo, um aplicativo de ponto-de-venda em execuo em um computador de rede de cliente fino que interage com vrios servidores internos por trs do firewall corporativo ou um sistema de atendimento ao cliente implantado usando uma arquitetura de como .NET da Microsoft de servios web. Os diagramas de implantao tambm podem ser criados para explorar a arquitetura de sistemas embarcados, mostrando como os componentes de hardware e software trabalham em conjunto. Em

  • suma, voc pode querer considerar a criao de um diagrama de implantao para todos, mas o mais trivial dos sistemas. A Figura 1 apresenta um exemplo de um diagrama de implantao UML 2 totalmente processado para o aplicativo de administrao do estudante. As caixas tridimensionais representar ns, software ou de hardware. Ns fsicos devem ser rotulados com o dispositivo esteretipo, para indicar que um dispositivo fsico, como um computador ou switch. Como voc pode ver eu no indicam que WebServer um dispositivo - que ser pelo menos algum tipo de artefato de software e muito bem pode ser um ou mais dispositivos fsicos, bem, mas a minha equipa no tenha tomado essa deciso ainda. Lembre-se, os modelos evoluem com o tempo. As conexes entre os ns so representados com linhas simples, e so atribudos esteretipos tais como RMI e barramento de mensagens para indicar o tipo de conexo. Nodes pode conter outros ns ou artefatos de software. O n ApplicationServer contm EJBContainer (um n de software), que por sua vez contm trs componentes de software, uma especificao de implantao, e um artefato de software. Os componentes de software utilizar a mesma notao como diagramas de componentes (eu poderia ter anotado-los com suas interfaces apesar de que no teria acrescentado qualquer valor na minha opinio). Especificaes de implantao so, basicamente, os arquivos de configurao, como um descritor de implementao EJB, que definem como um n deve operar. Eles so descritos como dois-seccionados retngulos com a especificao de implantao esteretipo, a top box indica o nome ea caixa inferior lista as propriedades de implantao (se houver) para o n. Na minha opinio as propriedades de implantao suprfluo, pois isso o tipo de informao que est contida no arquivo de especificao de implantao real em tempo de execuo. Artefatos de software so mostrados com o esteretipo visual de uma pgina com um canto dobrado ou com o artefato esteretipo textual (ou ambos, por vezes, que eu tambm acredito que suprfluo). Neste caso, o artefato de software um framework de persistncia ficcional comprado de AmbySoft (o fornecedor indicado com uma corda propriedade UML).

    Quando voc

  • parar e pensar sobre isso, os esteretipos que eu aplicados para as conexes no estiverem correctas. Na realidade, o software no servidor web est se comunicando atravs do protocolo RMI sobre a conexo com o software no servidor de aplicativos. A conexo fsica entre os ns de hardware fsico est em um nvel mais baixo, talvez uma conexo Ethernet, assim, na realidade eu realmente deveria ter modelado uma conexo entre os ns de hardware com Ethernet como um esteretipo e uma segunda conexo entre elementos de software com o esteretipo RMI. Eu tambm preciso para modelar uma relao de dependncia entre a conexo software ea conexo de hardware, talvez com o esteretipo de mais. Embora este seria mais preciso seria um monte de trabalho que eu provavelmente no iria se beneficiar muito de. Lembre-se, os modelos geis no precisa ser perfeito, eles precisam ser bons o suficiente apenas . Eu nunca desenhar diagramas de implantao a seguir o show estilo na Figura 1 , exceto quando eu estou escrevendo sobre modelagem de implantao, porque na minha opinio esta notao visualmente desperdcio. Um exemplo melhor mostrado na Figura 2 . elementos de software so agora simplesmente listados por seus nomes de arquivos fsicos, informaes de que os desenvolvedores so muito provvel que esteja interessado em, e, portanto, um diagrama mais compacta possvel. Eu tambm usou um tambor como um esteretipo visual para o banco de dados University DB, tornando-o mais fcil de distinguir no diagrama. Outra diferena que a verso concisa mostra menos detalhes, no como muitos valores marcados so mostrados como esta informao pode ser captada em qualquer documentao de apoio, arquivos de configurao, ou cdigo-fonte. Os diagramas de implantao tendem a se tornar muito grandes muito rapidamente, porque eles refletem as complexidades fsicas de seu sistema, portanto, uma notao concisa torna-se fundamental para seu sucesso.

    Figura 2. Concise UML 2 diagrama de implantao.

    !

    Como gil so diagramas de implantao? Como sempre, depende de seus objetivos. Muitas vezes, menos detalhados diagramas de rede , que so, sem dvida, diagramas de implantao com o uso extensivo de esteretipos visuais, so uma opo melhor. Isto particularmente verdadeiro quando voc est modelando um ambiente composto por um muitas mquinas interligadas. s vezes, um alto nvel de forma livre diagrama uma opo melhor porque a notao muito mais flexvel. As informaes contidas no Figura 2 pode ser to facilmente capturados em qualquer um diagrama de rede ou um diagrama de forma livre em combinao com scripts de instalao.

  • Quando voc pensa sobre isso scripts de instalao so efetivamente "cdigo fonte de implementao". Para determinar se voc precisa criar um modelo de implantao, pergunte-se: se voc no sabia nada sobre o sistema e algum lhe pediu para instal-lo e / ou manter e apoi-lo, voc iria querer uma descrio de como as partes do sistema de ajuste juntos? Quando eu fao esta pergunta das equipas de projecto com quem trabalho, quase sempre decidir desenvolver algum tipo de modelo de implantao. Mais importante, a prtica tem mostrado que a modelagem de implantao bem a pena. Modelos de implantao for-lo a pensar sobre problemas de implantao importantes muito antes que voc deve entregar o sistema real. Ao determinar como modelar a arquitetura de implantao de um sistema, independentemente dos artefatos escolhido, eu vou normalmente: 1 Identificar o mbito do modelo. O endereo diagrama como implantar uma

    verso de um nico aplicativo ou ser que retratam a implantao de todos os sistemas dentro de sua organizao?

    2 Considere questes tcnicas fundamentais. O que vocs vo existente sistemas precisam interagir / integrao com? Como que o seu robusto sistema precisa ser (haver hardware redundante para failover a)? O que / quem vai precisar se conectar e / ou interagir com o seu sistema e como eles vo fazer isso (atravs da Internet, a troca de arquivos de dados, e assim por diante)? O middleware, incluindo o sistema operacional e de comunicaes abordagens / protocolos, ir usar o seu sistema? O hardware e / ou software ir seus usurios interagir diretamente com (PCs, computadores de rede, navegadores e assim por diante)? Como voc pretende monitorar o sistema, uma vez que foi implantado? Quo seguro que o sistema precisa ser (voc precisa de um firewall, voc precisa de hardware fisicamente seguro, e assim por diante)?

    3 Identificar a arquitetura de distribuio. Voc pretende fazer uma abordagem cliente-gordo, onde a lgica de negcios est contida em um aplicativo de desktop ou de uma abordagem de cliente magro, onde a lgica de negcios implantado em um servidor de aplicativos? Ser que a sua aplicao tem duas camadas, trs camadas, ou mais? Sua estratgia de arquitetura de distribuio, muitas vezes, ser pr-determinado para a sua aplicao, especialmente se voc estiver implantando o sistema para um ambiente tcnico existente.

    4 Identificar os ns e suas conexes. Sua estratgia de distribuio ir definir o tipo geral de ns vai ter, mas no os detalhes exatos. Voc precisa tomar decises de plataforma, tais como os sistemas operacionais e de hardware para ser implantado, incluindo a forma como os vrios ns ser conectado (talvez atravs de RMI e um barramento de mensagens como na Figura 2 ).

    5 Distribuir software para ns. Ambas as verses dos diagramas de implantao indicar o software que implantado em cada n, informaes crticas para qualquer pessoa envolvida no desenvolvimento, instalao ou operao do sistema.