Changes between Version 2 and Version 3 of NovoExpresso/ear
- Timestamp:
- 10/05/11 11:46:18 (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
NovoExpresso/ear
v2 v3 1 = == Documento de Arquitetura do Novo Expresso ===2 3 4 '''1. Objetivo''' 1 = Documento de Arquitetura do Novo Expresso = 2 3 4 == 1. Objetivo== 5 5 6 6 1.1. Proporcionar ao Expresso uma plataforma em que possa evoluir de modo a prover segurança, usabilidade, qualidade, desacoplamento de camadas MVC, principalmente relacionadas a negócio e visão, performance, reaproveitamento de componentes, mobilidade, orientação a serviços e suporte a estrutura de Nuvem. … … 9 9 plataforma. 10 10 11 '''2. Elementos de software Significativos e Licenciamentos ''' 12 13 '''ExtJS'''11 == 2. Elementos de software Significativos e Licenciamentos == 12 13 === ExtJS=== 14 14 ExtJS é um framework Javascript orientado a objetos. Ele permite o controle de eventos 15 15 desacoplado das páginas HTML e possui vários componentes gráficos prontos para uso (widgets). … … 18 18 Site: http://www.sencha.com/products/extjs [[BR]] 19 19 20 21 22 '''Zend''' 23 Zend Framework é um framework para desenvolvimento de aplicações PHP orientado a objetos e com 24 arquitetura de baixo acoplamento. Pode ser usado para construir toda a estrutura de uma aplicação e 25 governá-la pelo padrão MVC ou compor uma aplicação a partir de um modelo 'selfservice' de uso de classes. 26 Zend Framework possui um modelo de desenvolvimento de componentes que permite o encapsulamento de 27 classes de terceiros em uma interface padronizada e um estilo de codificação reconhecido pela ferramenta 28 PHP_CodeSniffer. 29 No caso do Tine 2.0, o Zend Framework não governa a aplicação, mas é utilizado por ela. O Tine 2.0 possui 30 uma implementação própria de MVC que faz uso das classes do Zend Framework. 31 Versão utilizada: 1.9.1 32 Licença: New BSD 33 Site: http://framework.zend.com 34 35 36 '''Ajam''' 20 === Zend=== 21 Zend Framework é um framework para desenvolvimento de aplicações PHP orientado a objetos e com 22 arquitetura de baixo acoplamento. Pode ser usado para construir toda a estrutura de uma aplicação e 23 governá-la pelo padrão MVC ou compor uma aplicação a partir de um modelo 'selfservice' de uso de classes. 24 Zend Framework possui um modelo de desenvolvimento de componentes que permite o encapsulamento de 25 classes de terceiros em uma interface padronizada e um estilo de codificação reconhecido pela ferramenta 26 PHP_CodeSniffer. 27 No caso do Tine 2.0, o Zend Framework não governa a aplicação, mas é utilizado por ela. O Tine 2.0 possui 28 uma implementação própria de MVC que faz uso das classes do Zend Framework. [[BR]] 29 30 Versão utilizada: 1.9.1 31 Licença: New BSD 32 Site: http://framework.zend.com 33 34 35 === Ajam=== 37 36 Ajam (Asynchronous Javascript Asterisk Manager), é tecnologia disponibilizada na versão 1.4 do 38 37 servidor de comunicação por voz Asterisk, para permitir o uso de sua interface de gerenciamento por HTTP, 39 via requisição assíncrona. O Tine 2.0 possui uma classe que serve de interface para um cliente Ajam remoto. 38 via requisição assíncrona. O Tine 2.0 possui uma classe que serve de interface para um cliente Ajam remoto.[[BR]] 39 40 40 Versão utilizada: Asterisk 1.4 41 41 Licença: GPLv2 42 42 Site: http://www.asterisk.org/asterisknow/developers/guide 43 43 44 '''GeoExt''' 45 GeoExt é um framework Javascript para sistemas de informação geográfica. Ele faz uso de ExtJS e OpenLayers. 44 === GeoExt=== 45 GeoExt é um framework Javascript para sistemas de informação geográfica. Ele faz uso de ExtJS e OpenLayers. [[BR]] 46 46 47 Versão utilizada: não informada 47 48 Licença: BSD 48 49 Site: http://www.geoext.org 49 50 50 '''Hash'''51 === Hash=== 51 52 Classes para criptografia de senhas. 52 53 53 '''HTMLPurifier'''54 === HTMLPurifier=== 54 55 HTMLPurifier é uma biblioteca de filtros escrita em PHP compatível com padrões HTML. Ela 55 56 remove código malicioso enviado em tentativas de ataque XSS (CrossSite Scripting), utilizando 56 57 uma lista branca auditada. Ela também verifica se os documentos estão compatíveis com as especificações do W3C, tarefa 57 possível somente com um grande conhecimento dos padrões. 58 possível somente com um grande conhecimento dos padrões. [[BR]] 59 58 60 Versão utilizada: 4.2.0 59 61 Licença: LGPL 60 62 Site: http://htmlpurifier.org 61 63 62 '''OpenDocument'''64 === OpenDocument=== 63 65 Classes para criação de documentos ODT e ODS. 64 65 '''OpenLayers ''' 66 Framework Javascript para mapeamento dinâmico (construção de mapas geográficos em tempo real) em páginas Web. 67 Versão utilizada: 2.8 68 Licença: Clear BSD 69 Site: http://openlayers.org 70 71 '''PHPExcel ''' 72 Conjunto de classes PHP que permitem gravar e ler arquivos de diferentes formatos, 73 como Excel 2007, PDF e HTML. 74 Versão utilizada: 1.7.5 75 Licença: GPL 76 Site: http://phpexcel.codeplex.com 77 78 '''qCal ''' 79 qCal é um gerador e leitor de iCalendar para PHP 5. É baseado na especificação iCalendar 80 2.0(RFC 2445). iCalendar é um formato de arquivo que permite a usuários de Internet enviarem 81 requisições de reunião e tarefas para outros usuários por email ou compartilhamento de arquivos 82 com extensão .ics. 83 Versão utilizada: Não informada 84 Licença: LGPL 85 Site: http://code.google.com/p/qcal 86 87 '''SabreDAV ''' 66 67 === OpenLayers=== 68 Framework Javascript para mapeamento dinâmico (construção de mapas geográficos em tempo real) em páginas Web. [[BR]] 69 70 Versão utilizada: 2.8 71 Licença: Clear BSD 72 Site: http://openlayers.org 73 74 === PHPExcel=== 75 Conjunto de classes PHP que permitem gravar e ler arquivos de diferentes formatos,como Excel 2007, PDF e HTML. [[BR]] 76 77 Versão utilizada: 1.7.5 78 Licença: GPL 79 Site: http://phpexcel.codeplex.com 80 81 === qCal=== 82 qCal é um gerador e leitor de iCalendar para PHP 5. É baseado na especificação iCalendar 83 2.0(RFC 2445). iCalendar é um formato de arquivo que permite a usuários de Internet enviarem 84 requisições de reunião e tarefas para outros usuários por email ou compartilhamento de arquivos 85 com extensão .ics. [[BR]] 86 87 Versão utilizada: Não informada 88 Licença: LGPL 89 Site: http://code.google.com/p/qcal 90 91 === SabreDAV=== 88 92 É um framework WebDAV para PHP. WebDAV (Webbased Distributed Authoring and 89 Versioning) é definido pela especificação RFC 4918. 90 Versão utilizada: 1.3.0 91 Licença: Modified BSD 92 Site: http://code.google.com/p/sabredav 93 Versioning) é definido pela especificação RFC 4918. [[BR]] 94 95 Versão utilizada: 1.3.0 96 Licença: Modified BSD 97 Site: http://code.google.com/p/sabredav 93 98 94 '''vcardphp ''' 95 Classe para geração de cartões virtuais de visita. 96 Versão utilizada: Não informada. 97 Licença: BSD 98 Site: http://vcardphp.sourceforge.net 99 100 '''Wbxml ''' 101 WBXML (WAP Binary XML) é uma representação binária de XML que permite a transmissão 102 de documentos em redes móveis. 103 104 105 '''3. Descrição da Arquitetura''' 106 107 '''3.1. Camadas e Subsistemas''' 99 === vcardphp === 100 Classe para geração de cartões virtuais de visita. [[BR]] 101 102 Versão utilizada: Não informada. 103 Licença: BSD 104 Site: http://vcardphp.sourceforge.net 105 106 === Wbxml=== 107 WBXML (WAP Binary XML) é uma representação binária de XML que permite a transmissão 108 de documentos em redes móveis. 109 110 111 == 3. Descrição da Arquitetura== 112 113 === 3.1. Camadas e Subsistemas=== 108 114 109 115 A proposta de evolução está baseada em uma implementação MVC. Essa implementação tem fraco acoplamento com o Zend Framework, 110 116 evitando heranças das classes do framework. 111 117 112 Descrição das camadas : 118 Descrição das camadas : [[BR]] 119 113 120 Camada de modelo está dentro da pasta Tinebase/Model. [[BR]] 114 121 115 122 Camada de controle está dentro da pasta Tinebase/Controller. [[BR]] 116 123 117 Camada de visão está dentro da pasta Tinebase/views. 124 Camada de visão está dentro da pasta Tinebase/views. [[BR]] 125 118 126 119 127 A camada de visão é baseada em arquivos PHP que produzem conteúdo dinâmico em HTML e fazem uso intensivo de Javascript, … … 125 133 126 134 127 '''4. Padrões Arquiteturais''' 128 129 '''4.1.Single Page Application (SPA). ''' 135 == 4. Padrões Arquiteturais== 136 137 === 4.1.Single Page Application (SPA). === 130 138 131 139 Servido por meio de uma única URL, o arquivo index.php. … … 136 144 137 145 138 '''4.2. ISO-13407(processo voltado para usuários) e RIA(rich internet application)''' 146 === 4.2. ISO-13407(processo voltado para usuários) e RIA(rich internet application)=== 139 147 140 148 A navegação nos módulos do sistema será padronizada,baseada sempre no layout abaixo: … … 143 151 144 152 145 '''5. Topologia''' 153 == 5. Topologia== 146 154 147 155 As camadas entre aplicação, backends e visualizações estão bem separadas. … … 153 161 a clientes de e-mail. 154 162 155 '''JSON/RPC''' para comunicação com outras aplicações, independente de plataforma.156 157 '''SyncML/OMA''' – Para dispositivos móveis.158 159 160 161 162 '''6. Topologia da Infraestrutura ''' 163 === JSON/RPC para comunicação com outras aplicações, independente de plataforma.=== 164 165 === SyncML/OMA''' – Para dispositivos móveis.=== 166 167 168 169 170 == 6. Topologia da Infraestrutura== 163 171 164 172 O novo expresso interagirá com os seguintes componentes/serviços providos pela infraestrutura que … … 167 175 A camada que trata dos backends será flexível suficiente para prover a troca de serviços, de modo configuráveis: 168 176 169 '''Serviços LDAP'''– Poderão acoplar-se qualquer serviço que tenha suporte ao padrão LDAP, desde OpenLdap, RHDS,177 === Serviços LDAP=== – Poderão acoplar-se qualquer serviço que tenha suporte ao padrão LDAP, desde OpenLdap, RHDS, 170 178 Novell ou Ad(Windows). 171 179 172 '''Banco de dados'''– Deverá suportar Mysql(default), podendo usar Postgresql ou mesmo Oracle.173 174 '''Imap'''– Suporte a Cyrus , Dovecot ou similar.175 176 '''SMTP'''– Suporte a Postfix ou similar.177 178 179 180 '''7. Arquitetura disponível em nuvem''' 180 === Banco de dados=== – Deverá suportar Mysql(default), podendo usar Postgresql ou mesmo Oracle. 181 182 === Imap=== – Suporte a Cyrus , Dovecot ou similar. 183 184 === SMTP=== – Suporte a Postfix ou similar. 185 186 187 188 == 7. Arquitetura disponível em nuvem== 181 189 182 190 Os front-ends do Expresso permitirão acesso remoto, via internet e intranet, quantos necessário para crescimento horizontal, … … 184 192 185 193 186 '''8. Arquitetura com alta disponibilidade''' 187 188 '''8.1.'''Disponibilidade e replicação do banco de dados189 '''8.2.'''Disponibilidade e replicação do IMAP190 '''8.3.'''Disponibilidade e replicação do LDAP191 '''8.4.'''Disponibilidade e replicação do SMTP192 193 194 '''9. Pontos a Exaltar''' 194 == 8. Arquitetura com alta disponibilidade== 195 196 === 8.1.===Disponibilidade e replicação do banco de dados 197 === 8.2.===Disponibilidade e replicação do IMAP 198 === 8.3.===Disponibilidade e replicação do LDAP 199 === 8.4.===Disponibilidade e replicação do SMTP 200 201 202 == 9. Pontos a Exaltar== 195 203 196 204 Um passo estratégico, considerando os problemas atuais e perspectivas futuras, orientação a serviços,