Licenças
Frameworks livres desenvolvidos dentro do projeto devem ser disponibilizados com a LGPL versão 3. Qualquer framework especialista utilizado nos componentes devem ser compatíveis com esta licença.
Demoiselle tem por objetivo definir uma arquitetura de software padronizada para o desenvolvimento de sistemas baseados na plataforma JEE (Java Enterprise Edition), além de padronizar e integrar frameworks especialistas para o desenvolvimento de aplicações.
A arquitetura de referência proposta para Demoiselle é baseada em camadas. Além das clássicas camadas do modelo MVC (Modelo, Visão e Controlador), elas se distinguem como camadas de persistência, transação, segurança, injeção de dependência e mensagem.
Pela essência das aplicações web, os servidores de aplicação devem implementar as especificações JEE. Devido a essa restrição, é recomendado o uso de Apache Tomcat 6.0 ou JBoss 4.2.2 ou versões superiores. As definições de banco de dados precisam suportar padrões SQL Ansi 92 entre outras características.
Para mais informações sobre Demoiselle, veja as próximas seções deste documento:
- Destaques
A arquitetura do Demoiselle para aplicações que o utilizam orienta o uso de componentes reutilizáveis e frameworks especialistas. Sua definição se baseia em três camadas:
* Visão e Controlador: usa componentes de apresentação. (JSF, Jasper, Framework,...);
* Negócio: implementa as regras de negócio da aplicação;
* Persistência: usa componentes para persistência da informação (Hibernate, JDBC).
Além das camadas que modulam as aplicações, o Framework implementa um grupo de recursos que fornecem funcionalidades especiais para as aplicações de um modo simples e transparente para os desenvolvedores. Seguem esses recursos:
* Transação: fornece uma mecanismo para gerenciamento de transação para prover controle transacional de um modo transparente. Implementa a especificação Java Transaction API (JTA).
* Aspectos: é o mecanismo usado pelo Framework para embutir funcionalidades nas aplicações de um modo transparente. Por meio desse recurso o Framework consegue fornecer suas injeções de dependência, controle de transações, controle de log e controle de mensagem e exceção. É implementado por AspectJ.
* Mensagem e Exceção: para padronizar a navegação de mensagens e exceções entre as camadas da aplicação de modo a fornecer uma infra-estrutura para tratamento de mensagens e permitir a manipulação de mensagens a partir de qualquer camada.
* Segurança: camada que fornece controle de autenticação por meio de usuário e senha ou certificação digital. Provê controle de autorização por meio de papéis. É compatível com Java IF Security (JAAS). Permite a manipulação de informação sobre autenticação e autorização a partir de qualquer camada.
* Integração: organiza o relacionamento entre os componentes da camada de arquitetura de referência. Facilita a injeção de camadas usando injeção de dependências e investimento de controle. Provê um mecanismo básico de injeção de dependências para a arquitetura de referência.
- Edições de Software com Compatibilidade Conhecida
Segue a lista de compatibilidade do Demoiselle abaixo com o ambiente de desenvolvimento e produção:
* JDK5 é necessário para rodar o Framework
* Os servidores de aplicação que implementam as especificações JEE recomendadas são Apache Tomcat 6.0.x ou JBoss 4.2.x
Os seguintes frameworks especialistas estão integrados a este produto:
- Licença Apache 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* MyFaces Tomahawk: http://myfaces.apache.org/tomahawk/index.html
* Axis 1.4: http://ws.apache.org/axis/;
* Apache Commons: http://commons.apache.org/;
* Apache Maven 2.0.9: http://maven.apache.org/;
* Apache log4j 1.2.14: http://logging.apache.org/log4j/;
* CGLib 2.0: http://cglib.sourceforge.net/;
* Facelets 1.1.14: https://facelets.dev.java.net/;
- Eclipse Public License 1.0 - http://www.eclipse.org/legal/epl-v10.html
* AspectJ 1.6.2: http://www.eclipse.org/aspectj/
- CDDL + GPLv2 - http://www.sun.com/cddl/cddl.html / http://www.gnu.org/licenses/gpl-2.0.txt
* JavaServer Faces (JSF) 1.2: http://java.sun.com/javaee/javaserverfaces/;
- LGPL - http://www.gnu.org/licenses/lgpl-3.0.txt
* JBoss RichFaces 3.2.2: http://www.jboss.org/jbossrichfaces/
* JBoss Ajax4jsf: http://www.jboss.org/jbossajax4jsf/
* Hibernate 3.3.1: http://www.hibernate.org/;
* JasperReports 3.0.1: http://jasperreports.sourceforge.net/;
A arquitetura de referência proposta para Demoiselle é baseada em camadas. Além das clássicas camadas do modelo MVC (Modelo, Visão e Controlador), elas se distinguem como camadas de persistência, transação, segurança, injeção de dependência e mensagem.
Pela essência das aplicações web, os servidores de aplicação devem implementar as especificações JEE. Devido a essa restrição, é recomendado o uso de Apache Tomcat 6.0 ou JBoss 4.2.2 ou versões superiores. As definições de banco de dados precisam suportar padrões SQL Ansi 92 entre outras características.
Para mais informações sobre Demoiselle, veja as próximas seções deste documento:
- Destaques
A arquitetura do Demoiselle para aplicações que o utilizam orienta o uso de componentes reutilizáveis e frameworks especialistas. Sua definição se baseia em três camadas:
* Visão e Controlador: usa componentes de apresentação. (JSF, Jasper, Framework,...);
* Negócio: implementa as regras de negócio da aplicação;
* Persistência: usa componentes para persistência da informação (Hibernate, JDBC).
Além das camadas que modulam as aplicações, o Framework implementa um grupo de recursos que fornecem funcionalidades especiais para as aplicações de um modo simples e transparente para os desenvolvedores. Seguem esses recursos:
* Transação: fornece uma mecanismo para gerenciamento de transação para prover controle transacional de um modo transparente. Implementa a especificação Java Transaction API (JTA).
* Aspectos: é o mecanismo usado pelo Framework para embutir funcionalidades nas aplicações de um modo transparente. Por meio desse recurso o Framework consegue fornecer suas injeções de dependência, controle de transações, controle de log e controle de mensagem e exceção. É implementado por AspectJ.
* Mensagem e Exceção: para padronizar a navegação de mensagens e exceções entre as camadas da aplicação de modo a fornecer uma infra-estrutura para tratamento de mensagens e permitir a manipulação de mensagens a partir de qualquer camada.
* Segurança: camada que fornece controle de autenticação por meio de usuário e senha ou certificação digital. Provê controle de autorização por meio de papéis. É compatível com Java IF Security (JAAS). Permite a manipulação de informação sobre autenticação e autorização a partir de qualquer camada.
* Integração: organiza o relacionamento entre os componentes da camada de arquitetura de referência. Facilita a injeção de camadas usando injeção de dependências e investimento de controle. Provê um mecanismo básico de injeção de dependências para a arquitetura de referência.
- Edições de Software com Compatibilidade Conhecida
Segue a lista de compatibilidade do Demoiselle abaixo com o ambiente de desenvolvimento e produção:
* JDK5 é necessário para rodar o Framework
* Os servidores de aplicação que implementam as especificações JEE recomendadas são Apache Tomcat 6.0.x ou JBoss 4.2.x
Os seguintes frameworks especialistas estão integrados a este produto:
- Licença Apache 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* MyFaces Tomahawk: http://myfaces.apache.org/tomahawk/index.html
* Axis 1.4: http://ws.apache.org/axis/;
* Apache Commons: http://commons.apache.org/;
* Apache Maven 2.0.9: http://maven.apache.org/;
* Apache log4j 1.2.14: http://logging.apache.org/log4j/;
* CGLib 2.0: http://cglib.sourceforge.net/;
* Facelets 1.1.14: https://facelets.dev.java.net/;
- Eclipse Public License 1.0 - http://www.eclipse.org/legal/epl-v10.html
* AspectJ 1.6.2: http://www.eclipse.org/aspectj/
- CDDL + GPLv2 - http://www.sun.com/cddl/cddl.html / http://www.gnu.org/licenses/gpl-2.0.txt
* JavaServer Faces (JSF) 1.2: http://java.sun.com/javaee/javaserverfaces/;
- LGPL - http://www.gnu.org/licenses/lgpl-3.0.txt
* JBoss RichFaces 3.2.2: http://www.jboss.org/jbossrichfaces/
* JBoss Ajax4jsf: http://www.jboss.org/jbossajax4jsf/
* Hibernate 3.3.1: http://www.hibernate.org/;
* JasperReports 3.0.1: http://jasperreports.sourceforge.net/;
