pode ser observada a arquitetura do Grails.Arquitetura do GrailsO Grails Framework e composto por muitos componentes que juntos proporcionam um ambiente integrado com os principais recursos necessarios para o desenvolvimento de um sistema. A seguir sera definido cada um destes componentes.Models (Domains): este conceito compreende o conjunto das entidades que existem num determinado sistema. Nele sao definidas as propriedades e as operacoes basicas de um sistema. Cada Model representa uma tabela no banco de dados. Alem disso, nos domains pode ser especificado o mapeamento da classe e das propriedades com as tabelas do banco. Uma das formas para se criar um Model e utilizando o seguinte comando: $ grails create-domain-class Sample.Apos a execucao desse comando, sera criada a classe Sample no arquivo SampleClass. Outra opcao importante nos Models sao as constraints (parte do codigo onde e possivel especificar regras de validacao na insercao dos dados).Views: paginas que sao criadas para serem apresentadas para o usuario. Sao conhecidas por Groovy Server Pages (GSP). Geralmente, acionam-se estas paginas por meios de controllers que processam uma chamada do cliente e retorna algum parametro para uma view de nome correspondente. Por exemplo, uma controller de nome PessoaController, por padrao, sempre retornara o resultado para a view pessoa.gsp, exceto se houver algum redirecionamento para outra controller ou view no decorrer da execucao.Controllers: as controllers interceptam as solicitacoes do usuario. A partir delas e possivel acessar as domains, os services e as funcionalidades disponibilizadas pelos plugins instalados para a aplicacao. Segundo Klein (2009, p. 41, traducao nossa) As classes do controlador sao os despachantes de uma aplicacao Grails. Todos os pedidos do navegador vem atraves de um controlador. Apos cada processamento de um controller e renderizada uma view do sistema.Services & Plug-in: geralmente, sao servicos que realizam atividades que resolvem um determinado problema ou realizam uma determinada operacao. Nao e aconselhavel manter na controller uma logica que nao seja especifica de uma unica entidade (classe) do sistema. Nestes casos deve-se utilizar os Services. Isso evita que o controller fique muito complexo e facilita o reuso da logica. No caso dos Plug-ins, nao e necessario codificar nenhuma funcionalidade. Eles sao disponibilizados no site do Grails e, portanto, e necessario apenas instala-los e utiliza-los.SiteMesh: muitos sistemas utilizam alguma forma de organizacao de templates o que e muito importante para que algumas partes do layout possam ser reutilizadas sem que seja necessario a duplicacao de codigo de interface. No Grails essa tecnica e conhecida por SiteMesh. O SiteMesh e um Framework de layout que implementa o padrao design decorator (padrao que pode ser utilizado para estender funcionalidades de um objeto) para renderizacao do HTML. A utilizacao do SiteMesh possibilita nao apenas a incorporacao de conteudo numa determinada pagina, mas sim uma fusao de dados.Spring: o Spring Framework fornece suporte as configuracoes de infraestrutura que podem ser feitas em nivel de aplicacao, ou seja, os desenvolvedores nao precisarao se preocupar com configuracoes sobre as tecnologias especificas do ambiente de implantacao. Ele inclui injecao de dependencia, suporte a programacao orientada a aspectos, transacoes, cache, validacao, formatacao, suporte ao Hibernate e ao Quartz (servico