A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Arquitetura de Sistemas de Software. Estilos de Arquitetura  Camadas (MVC)  SOA (Service Oriented Architecture)  CBD (Component-based Development)

Apresentações semelhantes


Apresentação em tema: "Arquitetura de Sistemas de Software. Estilos de Arquitetura  Camadas (MVC)  SOA (Service Oriented Architecture)  CBD (Component-based Development)"— Transcrição da apresentação:

1 Arquitetura de Sistemas de Software

2 Estilos de Arquitetura  Camadas (MVC)  SOA (Service Oriented Architecture)  CBD (Component-based Development)

3 Estilos de Arquitetura  Definem um conjunto de regras de projeto que identificam tipos de componentes, seus conectores e restrições existentes para a sua composição, os quais podem ser usados para compor uma família de sistemas e subsistemas.

4 Estilos de Arquitetura  MVC O MVC (Model-View-Controller) é um padrão de projeto arquitetural baseado em outros padrões como o Observer, Composite e Strategy. O MVC, como o nome sugere, possibilita a separação de um projeto em múltiplas camadas, das quais fazem parte: Modelo (Model), Visão (View) e Controlador (Controller).

5 Estilos de Arquitetura  O cientista da computação Trygve Mikkjel Heyerdahl Reenskaug foi o responsável pelo Model-View-Editor que foi o primeiro nome dado ao padrão arquitetural de projeto criado em meados da década de 70.

6 Estilos de Arquitetura  O MVC que separa a lógica de negócios no model, a apresentação na view e a interação entre eles no controller.  É uma boa escolha para a construção de aplicações web interativas. Isto devido ao fato de neste tipo de aplicação haverem grandes quantidades de interações de diversos tipos de usuários e buscas e exibições de dados.

7 Estilos de Arquitetura  Model: define a semântica da aplicação e define seu comportamento.  View: viabilizam uma apresentação visual da aplicação.  Controller: gerencia as interações do usuário com os modelos e visões da aplicação.

8 Estilos de Arquitetura

9

10  Model Essa Camada é responsável pela Lógica, como se diz ela é responsável pela regra do negócio, essa camada é o software em si. A camada model representa e manipula seguindo as regras do negócio.

11 Estilos de Arquitetura  Model O modelo encapsula o estado e comportamento da aplicação além de ser o único componente do MVC que faz interface da aplicação frente à fonte de dados, que normalmente é representada pelo banco de dados da aplicação.

12 Estilos de Arquitetura  Model Devido aos bancos serem relacionais, é necessário existir um mapeamento dos objetos do software orientados a objeto, para as tabelas do banco de dados.

13 Estilos de Arquitetura  Model Essa técnica é o Mapeamento Objeto-Relacional (ORM – Object Relational Mapping). Além desta técnica, há o padrão DAO (Data Access Object – Objeto de acesso a dados) que permite melhor acesso a dados por parte dos objetos.

14 Estilos de Arquitetura  Model A lógica de negócio (o model) não fica apenas separada da apresentação, ela sequer sabe da existência da mesma. O model é a combinação dos dados e dos métodos que os manipulam. Com isso, o reuso provido pelo MVC se dá principalmente neste componente (modelo), sendo este o núcleo funcional do sistema.

15 Estilos de Arquitetura  Em resumo a camada do modelo... Encapsula dados do negócio; Encapsula as regras do negócio; Acesso ao banco de dados e sistemas de informação da empresa para consultar/persistir dados.  Não se preocupa com quem mostra os dados ou como serão mostrados.

16 Estilos de Arquitetura  Visão (View) Essa camada é responsável pela apresentação, é a interface de representação do modelo, ou seja, trata-se da fronteira entre usuário e o sistema em si.

17 Estilos de Arquitetura  Visão (View) A view pode dar forma mais conveniente, exibir alguns atributos e ocultar outros, atuando como um filtro para os dados do modelo. É papel do controlador definir a view apropriada para a exibição da resposta obtida pela requisição feita.

18 Estilos de Arquitetura  Visão (View) No modelo tradicional do MVC, a view é composta por GUI’s (Graphical Users Interface) enquanto que no MVC web a visualização das informações acontece através das páginas HTML para informação estática e JSP, ASP, PHP, dentre outras, para informações dinâmicas.

19 Estilos de Arquitetura  Visão (View) No caso de aplicações web as notificações são sempre mediadas pelo controlador, principalmente pela necessidade do reuso, é na visão que ocorrem todas as interações do usuário que serão tratadas pelo controlador para chamar os métodos apropriados no modelo.

20 Estilos de Arquitetura  Visão (View) Este componente pode ser considerado o mais flexível do MVC, podendo ser facilmente alterado ou substituído. Novas visões também podem ser facilmente implementadas, sem afetar em nada a estrutura do sistema.

21 Estilos de Arquitetura  Em resumo a camada Visão (View)... Interação com o usuário Interação com outros sistemas Interação com dispositivos  Diversas visões dos dados do negócio Se preocupa apenas em apresentá-los. Não se interessa em como foram obtidos

22 Estilos de Arquitetura  Controlador (Controller) Como o próprio nome já diz, essa camada é o controlador onde controla a comunicação entre o modelo e a visão.

23 Estilos de Arquitetura  Controlador (Controller) Pode ser considerado como a fronteira entre os outros dois componentes do MVC e sua finalidade é controlar interações que ocorram a partir do usuário (recebe o input) que trabalha sobre elementos na camada de visão e descobre o que essa entrada significará para o modelo.

24 Estilos de Arquitetura  Controlador (Controller) As entradas que esses componentes recebem são, normalmente, eventos de mouse, entradas de teclado, entre outras.

25 Estilos de Arquitetura  Controlador (Controller) Estes eventos por sua vez serão traduzidos em requisições de serviços para outro componente que deverá tratar, existe um controlador para cada função da aplicação, mas algumas estratégias podem ser adotadas para que se desenvolva um controle central e se evite código duplicado.

26 Estilos de Arquitetura  Controlador (Controller) Em aplicações Web uma solução comumente adotada para a criação deste controle central é a implementação do padrão Front-Controller. Um objeto é criado e serve como ponto de entrada principal para todas as requisições que vem da view, este objeto mapeia a requisição para o tratador adequado.

27 Estilos de Arquitetura  Em resumo o Controlador (Controller)... Fluxo de apresentação das informações Intermediação entre visão e modelo Escolha da apresentação em função da língua do usuário, permissões de aceso

28 Estilos de Arquitetura  As camadas MVC são importantes por agilizar o desenvolvimento e até a manutenibilidade, pois como são divididas as camadas Model, View e Controller fica mais fácil de fazer alterações nos código, isso foi uma evolução tecnológica pois com a agilidade é mais fácil de manipular o código, podendo modificar qualquer camada sem modificar as outras.

29 Estilos de Arquitetura  Principais vantagens Reaproveitamento de código e regras; Facilidade de manutenção; Integração de equipes e/ou divisão de tarefas; Facilidade na atualização da interface da aplicação; Etc...

30 Exercícios

31

32

33

34 Estilos de Arquitetura  SOA SOA (“Service Oriented Architecture” ou “Arquitetura Orientada a Serviços”); O termo é associado à tecnologia “WebServices”; O SOA, como o nome diz, é uma “arquitetura”, ou seja, um conjunto de princípios, padrões e orientações que englobam desde uma visão de negocio até as possíveis alternativas tecnológicas.

35 Estilos de Arquitetura  SOA Um dos pontos importantes sobre SOA é que ela libera o negócio das restrições da tecnologia; "SOA permite ao negócio tomar decisões de negócio suportadas pela tecnologia ao invés de tomar decisões de negócio DETERMINADAS ou LIMITADAS pela tecnologia“ (HURWITZ, 2007).

36 Estilos de Arquitetura  SOA SOA do ponto de vista do Negócio: Arquitetura orientada a serviços é uma maneira de implementar os processos de negócio da empresa na forma de funções bem definidas, flexíveis e reutilizáveis chamadas de serviços.

37 Estilos de Arquitetura  SOA SOA do ponto de vista de TI: Arquitetura orientada a serviços é uma arquitetura que permite a automação dos processos de negócio da empresa através da orquestração de diversos componentes com funções bem definidas, chamados de serviços.

38 Estilos de Arquitetura  SOA SOA se baseia em diversas tecnologias, como WebServices e BPM, priorizando características como aderência a padrões, agilidade, flexibilidade, reutilização, interoperabilidade e alinhamento ao negócio.

39 Estilos de Arquitetura  Camadas de abstração da SOA Modelos de abstração facilitam o entendimento de conceitos, por organizarem ideias, funcionalidades e documentações no nível de detalhe mais adequado para cada tipo de necessidade, como fazem as plantas elétrica e hidráulica no caso da indústria civil.

40 Estilos de Arquitetura  Camadas de abstração da SOA Fonte: BIEBERSTEIN, 2006

41 Estilos de Arquitetura  Camada Corporativa É caracterizada por um modelo que descreve o negócio da empresa. Esta camada identifica os processos de negócio chave da empresa, os quais são essenciais para sua vantagem competitiva, e que, portanto devem ser controlados de perto, e os processos de suporte, que podem até ser delegados para parceiros.

42 Estilos de Arquitetura  Camada Corporativa Há diversos frameworks e metodologias que se aplicam a camada corporativa, mas SOA introduz novos artefatos e considerações de arquitetura, principalmente por habilitar o estabelecimento de parcerias (clientes, fornecedores) nas camadas de processo e serviço.

43 Estilos de Arquitetura  Camada de Processos É nesta camada que os processos de negócio são identificados e caracterizados. Cada processo é único no atendimento de uma determinada área funcional e pode ser composto de diversos sub-processos. Os sub-processos podem ser decompostos para expor suas dependências da camada de serviço.

44 Estilos de Arquitetura  Camada de Processos Como se pode confundir os conceitos de serviço e de processo de negócio, considera-se que os processos são definidos uma única vez, e usados dentro de um contexto único, já os serviços podem ser reaproveitados em diversos contextos (diferentes processos de negócio, departamentos ou linhas de negócio).

45 Estilos de Arquitetura  Camada de Processos

46 Estilos de Arquitetura  Camada de Serviços É responsável por mapear os serviços que provêm as funcionalidades básicas, técnicas e de negócio. O negócio identifica as funções críticas para atender o negócio, como identificação do cliente ou cálculo de taxas, enquanto os especialistas de TI criam funções técnicas para suportar os requisitos do negócio, como serviços de segurança.

47 Estilos de Arquitetura  Camada de Componentes Mapeia os componentes que tem potencial para se transformarem em serviços, normalmente através de técnicas “bottom-up” (análise das aplicações e identificação de funções que devem ser promovidas a serviços, por terem o potencial de servirem a mais sistemas).

48 Estilos de Arquitetura  Camada de Componentes Componentes são os blocos de construção de serviços na arquitetura SOA e embora vários sejam construídos com esta finalidade, a maioria será reaproveitada a partir de aplicações já existentes, através de técnicas de encapsulamento.

49 Estilos de Arquitetura  Camada de Objetos Esta camada identifica e caracteriza uma larga quantidade de classes de objetos, seus atributos, e relacionamentos.

50 Estilos de Arquitetura  Camada de Objetos Embora SOA reaproveite os conceitos de interface originados na orientação a objetos, ela o estende, pois temos que identificar que a classe não apenas é pública, ou seja, que pode ser utilizada por outras aplicações através de chamadas nativas da plataforma, mas sim que ela é importante o suficiente para ser promovida à componente/serviço, e assim pode ser chamada por mecanismos de maior poder de abstração, como WebServices.

51 Estilos de Arquitetura 

52 Estilos de Arquitetura  Benefícios Estratégicos Maior retorno de investimento (ROI) Maior agilizadade organizacional Menor carga de trabalho da TI

53 Exercícios Conceitualmente, SOA e Web services representam, respectivamente, a) estratégia de TI que emprega metodologia de programação orientada a objetos / conjunto de ferramentas Case para desenvolvimento Web. b) estratégia de TI que emprega metodologia de programação orientada a serviços / conjunto de ferramentas Case para desenvolvimento Web. c) estratégia de TI que emprega metodologia de programação orientada a objetos / conjunto de mecanismos padronizados de comunicação sobre a World Wide Web. d) estratégia de TI que emprega metodologia de programação orientada a serviços / conjunto de mecanismos padronizados de comunicação sobre a World Wide Web.

54 Exercícios Conceitualmente, SOA e Web services representam, respectivamente, a) estratégia de TI que emprega metodologia de programação orientada a objetos / conjunto de ferramentas Case para desenvolvimento Web. b) estratégia de TI que emprega metodologia de programação orientada a serviços / conjunto de ferramentas Case para desenvolvimento Web. c) estratégia de TI que emprega metodologia de programação orientada a objetos / conjunto de mecanismos padronizados de comunicação sobre a World Wide Web. d) estratégia de TI que emprega metodologia de programação orientada a serviços / conjunto de mecanismos padronizados de comunicação sobre a World Wide Web.

55 Exercícios Em relação aos aspectos do projeto de serviços em SOA, é INCORRETO afirmar: a) O meio de acesso ao serviço é estabelecido no Contrato de Serviço. b) Os serviços têm controle sobre a lógica que os encapsulam. c) Serviços são projetados para serem exteriormente descritos, e assim, serem encontrados e avaliados através de mecanismos de descobertas disponíveis. d) A lógica dos serviços pode exceder ao que está descrito no contrato. e) A lógica é dividida no serviço com a intenção de reúso.

56 Exercícios Em relação aos aspectos do projeto de serviços em SOA, é INCORRETO afirmar: a) O meio de acesso ao serviço é estabelecido no Contrato de Serviço. b) Os serviços têm controle sobre a lógica que os encapsulam. c) Serviços são projetados para serem exteriormente descritos, e assim, serem encontrados e avaliados através de mecanismos de descobertas disponíveis. d) A lógica dos serviços pode exceder ao que está descrito no contrato. e) A lógica é dividida no serviço com a intenção de reúso.


Carregar ppt "Arquitetura de Sistemas de Software. Estilos de Arquitetura  Camadas (MVC)  SOA (Service Oriented Architecture)  CBD (Component-based Development)"

Apresentações semelhantes


Anúncios Google