Escolar Documentos
Profissional Documentos
Cultura Documentos
23/02/2013
Estilos arquitetnicos
Alguns estilos arquitetnicos: Arquitetura baseada em camadas os componentes so organizados em camadas; Arquitetura baseada em dados os processos se comunicam por meio de repositrios de dados comum; Arquitetura baseada em objetos ou componentes cada objeto corresponde a um componente. Os componentes so conectados atravs de chamadas remotas; Arquitetura baseada em eventos processos se comunicam por meio de propagao de eventos que transportam dados. Arquitetura baseada em servio (SOA) - processos se comunicam por meio da prestao de servios; Arquiteturas hbridas dois ou mais estilos podem ser combinados para representar a arquitetura de um software.
23/02/2013
23/02/2013
Desenvolvimento em Camadas
Divises lgicas de um programa Lgica de Apresentao Interao usurio x aplicativo Apresentao das informaes Lgica de Negcio Regras que governam o processo de negcio Lgica de Acesso a Dados Funcionalidades de acesso a dados e persistncia
Arquitetura em Camadas
A arquitetura em camadas lgica e no fsica. Se preocupa com as funes do aplicativo e no com sua implementao. Essa mesma arquitetura pode ser usada para elaborar sistemas distribudos ou centralizados, tradicionais, Cliente/Servidor ou para a Web. Entretanto, a utilizao dessa arquitetura facilita a distribuio dos componentes do aplicativo, quando for preciso por razes de negcios, tecnolgicas ou ambas.
Modelo em camadas
Esse modelo organiza um sistema em camadas, cada uma fornecendo um conjunto de servios. Cada camada pode ser imaginada como uma mquina abstrata cuja linguagem de mquina definida pelos servios oferecidos pela camada. Apoia o desenvolvimento incremental de sistemas. medida que uma camada desenvolvida, alguns servios fornecidos por essa camada pode ser disponibilizados para os usurios.
Abstrao
Usando a abstrao, pode-se ocultar uma srie de detalhes dos quais no se necessita num determinado nvel do sistema aplicativo. A reduo da quantidade de detalhes visveis uma parte fundamental da descrio e do projeto de sistemas aplicativos complexos. A principal tcnica para ocultar detalhes definir os nveis de abstrao a serem utilizados.
a superfcie entre os componentes adjacentes de um aplicativo e o dispositivo por meio do qual eles interagem atravs das seguintes funes: 1. Informa o que o outro componente deve fazer; 2. Pergunta o estado atual de outro componente; 3. Recebe os resultados das operaes solicitadas.
Transaes e consultas
Camada de Interface
Apresentao: Apresentao de informaes Metforas visuais Navegao e transio consistente entre formulrios/pginas Entrada: Coleta de informaes (conjuntos de dados) Coleta de decises (execuo de aes) Interao (dilogo) com os usurios
Camada de Interface
Um nico componente de software trata de uma tarefa especfica. Este componente deve ser independente do banco de dados e da interface do usurio. Todos os aplicativos da organizao sempre utilizam este mesmo componente de software (classe de objeto) para realizar esta mesma tarefa.
Camada de Dados
Transaes: Atualizaes de dados consistentes; Imposio de regras de negcios bsicas; Evitar mudanas no-autorizadas ou invlidas. Consultas: Simplificar unies complexas de tabelas; Assegurar consistncia de resultados; Assegurar direitos de acesso. Dados proveniente de vrias fontes.
1, 2, 3, N Camadas
23/02/2013
22
Acesso a Dados
Banco de dados
Banco de dados
Necessidade do cliente saber detalhes da localizao das fontes de dados Clientes gordos Atualizaes individuais Suporte ao desenvolvimento WEB
Camada de Persistncia.
Problemas para o usurio, que no tem os programas funcionando como deveriam; Problemas para a equipe de desenvolvimento que no tem o seu trabalho reconhecido e, normalmente, tem que trabalhar apenas "apagando incndios"; e Problemas para a Administrao/Gerncia da rede que no consegue gerar os resultados esperados pela Administrao da empresa, apesar dos elevados valores j investidos.
30
Lgica de Apresent ao
Lgica de Negcio
Banco de dados
Diviso de trabalho Facilidade na atualizao Proteo do cdigo Transparncia no acesso a dados Maior portabilidade
Os servidores no precisam estar necessariamente em mquinas diferentes, podem estar na mesma mquina. Porem questes de performance so relevantes.
Camada de Apresentao Camada de Negcios Camada de Persistncia
36
37
Helper classes
C
M
SGDB
NAVEGADOR WEB
V
CLIENTE - SERVIDOR
CLIENTE
SERVIDOR
SERVIDOR WEB
Arquitetura em camadas
42
SGDB
M
SERVIDOR
CLIENTE - SERVIDOR
23/02/2013
47
23/02/2013
52
Estilos arquitetnicos
formulado em termos de componentes: Como esto conectados; Como os dados so trocados; Maneira como os componentes so configurados.
Um componente uma unidade modular com interfaces requeridas e bem definidas, que substituvel dentro de seu ambiente. Um conector descrito como um mecanismo que serve de mediador da comunicao ou da cooperao entre componentes.
23/02/2013
53
Class Name
attribute:Type = initialValue attribute:Type = initialValue attribute:Type = initialValue operation(arg list):return type
Class Name
Diagramas da UML
Class Name
attribute:Type = initialValue operation(arg list):return type
Necessita ambientes de desenvolvimento extremamente rigorosos e formais, com pessoal altamente treinados
Nos grandes projetos abstraes corretas so difceis de realizar Modelos de objeto mal realizados criam mais problemas do que solues O nvel de granularidade dos objetos muito baixo, o que torna complexo o controle da dependncia entre eles
Componentes
Definio: Um pequeno grupo de objetos trabalhando agrupados a fim de prover uma funo do sistema Os objetos dentro do componente no so conhecidos por outra parte do sistema, exceto pelo prprio componente
Tem todas as caractersticas de um objeto Tem limites impostos pela plataforma para a qual foi projetado Podem existir independentes dos outros componentes, exceto daqueles que usa na mesma plataforma Tem uma interface fixa e comum a todos os demais componentes do sistema So auto descritos ( os seus clientes sabem como us-los )
Componentes de Software
Interface do Componente
Define o contrato do componente com o cdigo do outro componente que o chama
Compone nt
Um sistema complexo pode ser considerado como um conjunto composto de um nmero arbitrrio de pequenos sistemas coesivos ( componentes ) Cada componente construdo para implementar um conjunto definido de responsabilidades
Facilita a construo, administrao e manuteno de componentes Deve ser padronizada Deve conter:
Permite o desenvolvimento e a utilizao de sistemas baseado em componentes Cria instncias runtime de componentes Permite a componentes descobrir e se comunicar com outros componentes Prov servios comuns adicionais, como: Persistncia
Transaes
Independncia de localizao Segurana
Monitoramento
Tcnicas A complexidade melhor administrada, permitindo melhor qualidade nas solues Funcionalidade tcnicas ( no de negcios ) concentrada na plataforma Negcios Produtos de melhor qualidade
Custo reduzido
Alto reuso para projetos futuros
Os componentes so fortemente acoplados uns aos outros: uma mudana no cdigo de um deles pode levar a mudanas nos demais A administrao da complexidade da dependncia entre os componentes em grandes sistemas difcil: um componente ainda tem que saber muito sobre os demais ( aos quais se acopla ) As solues proprietrias: ( DCOM MS, CORBA )
23/02/2013
66
SOA
Arquitetura que tem tido destaque na integra-o de negcios atualmente.
SOA segundo a Accenture: Uma arquitetura que define como funes de negcios dinstintas, implementadas por siste-mas autnomos, devem operar conjuntamen-te para executar um processo de negcio.
SOA
Cada funo de negcio (componente) im-plementada como um servio.
Esses servios ficam disponveis em uma re-de para que as aplicaes possam utiliz-los. Em geral, esta rede a internet e os servios so chamados de web services.
Caractersticas da arquitetura
As partes (servios) so bastante indepen-dentes entre si. No h limitaes em relao plataforma ou linguagem utilizada para implementar um servio, apenas em relao a como eles comunicam-se. Um servio encapsula uma lgica de neg-cio. Assim, temos um alto ndice de reapro-veitamento.
Um exemplo
Benefcios
Tempo e custo de desenvolvimento sero re-duzidos ao reutilizarmos um servio em uma parte diferente do sistema. A aplicao final mais facilmente extens-vel. Uma aplicao diferente poder se beneficiar dos servios implementados anteriormente.
Padres utilizados
XML (Linguagem de Marcao Extensvel) SOAP (Protocolo de Acesso a Objetos Simples) WSDL (Linguagem de Descrio de Servios Web) UDDI (Descrio, Descoberta e Integrao Universais)
Arquitetura
Orientada a Servios
Publicao
- SOA -
Apresentao