reusabilidade dos componentes e facilita a manutencao da aplicacao. Domain Driven Design De acordo com o proprio criador, Eric Evans, DDD nao e uma tecnologia e nem uma metodologia. DDD e um estilo de arquitetura orientado a objetos, focado em modelar o dominio do negocio e a logica do dominio com o uso de tecnicas, praticas e padroes de projeto. Arquitetura em Camadas Esse e o estilo de arquitetura mais conhecido e mais utilizado para o desenvolvimento de aplicacoes. Ele permite a separacao dos modulos do sistema em camadas (layers) diferentes. As principais vantagens desse estilo sao a facilidade de manutencao, o aumento da extensibilidade, reusabilidade e escalabilidade. 3-Tiers/N-Tiers Esse estilo segrega as funcionalidades em segmentos separados de maneira similar ao estilo da arquitetura em camadas, mas com cada segmento alocado em camadas fisicas (tiers) separadas, conforme veremos em detalhes no topico Arquitetura Distribuida. Ele e ideal quando o projeto demanda escalabilidade. Para isso, as camadas logicas (layers) da aplicacao sao alocadas em maquinas diferentes. Geralmente, ao mapear as camadas logicas (layers) para as fisicas (tiers), podemos criar um cluster ou um farm na mesma camada fisica para aumentar a performance e a confiabilidade da aplicacao. Arquitetura Orientada a Servicos(SOA) SOA ja deixou de ser apenas uma palavra no meio de TI para se tornar um modelo consagrado adotado em muitas empresas. Uma arquitetura orientada a servicos nada mais e do que uma aplicacao que expoe e consome as funcionalidades do sistema como servicos por meio de contratos e mensagens. Algumas das caracteristicas de uma Arquitetura Orientada a Servicos sao: a independencia da Plataforma, comunicacao baseada em servicos entre os componentes de software, integracao de multiplas funcionalidades em um unico componente de interface do usuario e a exposicao dos servicos por meio de repositorios ou catalogos. Arquitetura Orientada a Objetos Ao aplicar esse estilo, o sistema e dividido em objetos individuais, reutilizaveis e autossuficientes. Cada objeto contem os dados e o comportamento pelos quais e responsavel. Uma arquitetura orientada a objetos geralmente busca espelhar objetos do mundo real de modo a tornar simples a modelagem da aplicacao.Tabela 1. Estilos de Arquitetura.Cluster: E um conjunto de computadores interligados que trabalham em conjunto como se fosse um unico computador. Estes computadores sao utilizados para suportar aplicacoes que tem necessidade de alta disponibilidade e alta capacidade de processamento.Farm: Um Servidor Farm, tambem conhecido como Data Center, e um conjunto de servidores mantido (geralmente) por uma empresa para atender as necessidades computacionais da corporacao, como o processamento de grandes volumes de informacao, atender aos sistemas corporativos e prover servidores de contingencia no caso de um problema no computador principal.Repositorio: Um Repositorio e um local onde todos os clientes de um dominio especifico publicam seus servicos, de maneira que todos os usuarios passam a conhecer os servicos disponiveis e como acessa-los.Para tanto, um repositorio deve ter uma interface bem definida para publicacao dos servicos, funcoes para localizacao, controle e maneira uniforme de acesso.Uma vez que o estilo de arquitetura e definido, o passo seguinte e definir como as funcionalidades do sistema serao divididas, de forma a manter