Changes between Version 30 and Version 31 of NovoExpresso/ear
- Timestamp:
- 09/22/14 09:54:16 (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
NovoExpresso/ear
v30 v31 1 1 2 2 = Documento de Arquitetura do Novo Expresso = 3 [[BR]]4 [[BR]]5 6 7 3 8 4 = 1. Objetivo = 9 10 5 11 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. … … 13 8 1.2. Será adotado software TINE20, como base tecnologia para este NOVO EXPRESSO, agregando necessidades ou funcionalidades nesta 14 9 plataforma. 15 16 17 10 18 11 = 2. Elementos de software Significativos e Licenciamentos = 19 12 20 === ExtJS=== 13 === ExtJS === 14 21 15 ExtJS é um framework Javascript orientado a objetos. Ele permite o controle de eventos 22 16 desacoplado das páginas HTML e possui vários componentes gráficos prontos para uso (widgets). … … 25 19 Site: http://www.sencha.com/products/extjs [[BR]] 26 20 27 === Zend=== 21 === Zend === 22 28 23 Zend Framework é um framework para desenvolvimento de aplicações PHP orientado a objetos e com 29 24 arquitetura de baixo acoplamento. Pode ser usado para construir toda a estrutura de uma aplicação e … … 40 35 41 36 42 === Ajam ===37 === Ajam === 43 38 Ajam (Asynchronous Javascript Asterisk Manager), é tecnologia disponibilizada na versão 1.4 do 44 39 servidor de comunicação por voz Asterisk, para permitir o uso de sua interface de gerenciamento por HTTP, … … 49 44 Site: http://www.asterisk.org/asterisknow/developers/guide 50 45 51 === GeoExt=== 52 GeoExt é um framework Javascript para sistemas de informação geográfica. Ele faz uso de ExtJS e OpenLayers. [[BR]] 46 === !GeoExt === 47 48 !GeoExt é um framework Javascript para sistemas de informação geográfica. Ele faz uso de ExtJS e !OpenLayers. [[BR]] 53 49 54 50 Versão utilizada: não informada … … 56 52 Site: http://www.geoext.org 57 53 58 === Hash=== 54 === Hash === 55 59 56 Classes para criptografia de senhas. 60 57 61 58 === HTMLPurifier=== 59 62 60 HTMLPurifier é uma biblioteca de filtros escrita em PHP compatível com padrões HTML. Ela 63 61 remove código malicioso enviado em tentativas de ataque XSS (CrossSite Scripting), utilizando … … 69 67 Site: http://htmlpurifier.org 70 68 71 === OpenDocument === 69 === !OpenDocument === 70 72 71 Classes para criação de documentos ODT e ODS. 73 72 74 === OpenLayers=== 73 === !OpenLayers === 74 75 75 Framework Javascript para mapeamento dinâmico (construção de mapas geográficos em tempo real) em páginas Web. [[BR]] 76 76 … … 80 80 81 81 === PHPExcel=== 82 82 83 Conjunto de classes PHP que permitem gravar e ler arquivos de diferentes formatos,como Excel 2007, PDF e HTML. [[BR]] 83 84 … … 115 116 de documentos em redes móveis. 116 117 117 118 119 120 121 122 118 = 3. Descrição da Arquitetura = 123 119 … … 129 125 Descrição das camadas : [[BR]] 130 126 131 Camada de modelo está dentro da pasta Tinebase/Model. [[BR]]132 133 Camada de controle está dentro da pasta Tinebase/Controller. [[BR]]127 Camada de modelo está dentro da pasta !Tinebase/Model. [[BR]] 128 129 Camada de controle está dentro da pasta !Tinebase/Controller. [[BR]] 134 130 135 131 Camada de visão está dentro da pasta Tinebase/views. [[BR]] 136 137 132 138 133 A camada de visão é baseada em arquivos PHP que produzem conteúdo dinâmico em HTML e fazem uso intensivo de Javascript, … … 142 137 [[Image(camada1.jpg,,center)]] 143 138 144 145 139 = 4. Padrão Arquitetural = 146 147 148 140 149 141 ==== 4.1.Single Page Application (SPA). ==== … … 154 146 de organização e segurança. 155 147 156 157 158 148 ==== 4.2. ISO-13407(processo voltado para usuários) e RIA(rich internet application)==== 159 149 160 150 A navegação nos módulos do sistema será padronizada,baseada sempre no layout abaixo:[[BR]] 161 151 162 163 152 [[Image(layout.jpg,,center)]] 164 165 153 166 154 ==== 4.3. Direitos e Privilégios ==== … … 174 162 Um container pode ser um addresbook pessoal ou compartilhado. 175 163 Os grants são atribuídos ao container e não para os registros de dados.[[BR]] 176 177 164 178 165 O Novo Expresso suporta conceder privilégios:[[BR]] … … 186 173 Diagrama Entidade Container 187 174 188 189 175 [[Image(Egwbase_Record_Container.png,,center)]] 190 176 … … 200 186 * Admin (administrar esta aplicação) 201 187 202 203 204 ==== 4.3. Registros e RecordSet ==== 188 ==== 4.3. Registros e !RecordSet ==== 205 189 206 190 NO php5, é possível escrever código com o paradigma de Programação Orientado Objeto. Uma das conseqüências ao escrever o código 207 191 com o paradigma OOP é, que o transporte de dados não é um array. 208 192 209 No NovoExpresso usamos objetos como transporte de dados. Chamamos a entidade de dados de 210 registros de RecordSet.193 No NovoExpresso usamos objetos como transporte de dados. Chamamos a entidade de dados de registro e chamamos a coleta de muitos 194 registros de !RecordSet. 211 195 Exemplificando, uma única conta, evento, contatoou e-mail, por exemplo, é um registro enquanto que um grupo de contas, uma lista 212 de calendário completo ou uma caixa de entrada é um RecordSet.196 de calendário completo ou uma caixa de entrada é um !RecordSet. 213 197 214 198 * Tinebase_Record_Abstract … … 218 202 registro com métodos necessários para filtrar e validar entrada do usuário. 219 203 220 * Tinebase_Record_ RecordSet221 222 O RecordSet é o mapeamento de dados para conjuntos de dados. É importante perceber a sua tarefa como sendo apenas um veículo para223 não ter nada para com questões agrupamento , ouAccessControl.204 * Tinebase_Record_!RecordSet 205 206 O !RecordSet é o mapeamento de dados para conjuntos de dados. É importante perceber a sua tarefa como sendo apenas um veículo para 207 não ter nada para com questões agrupamento, ou !AccessControl. 224 208 A relação entre os registros é tratada por ACL Egwbase_Record_Container. 225 209 226 * Diagrama de classes Record e RecordSet210 * Diagrama de classes Record e !RecordSet 227 211 228 212 … … 243 227 = JAMAIS SERÁ GERADO CÓDIGO HTML NA CAMADA DE NEGÓCIOS = 244 228 245 246 229 [[Image(soa.jpg,,center)]] 247 230 248 249 250 231 ==== 5.1.JSON/RPC para comunicação com outras aplicações, independente de plataforma.==== 251 232 252 233 ==== 5.2.SyncML/OMA''' – Para dispositivos móveis.==== 253 254 255 234 256 235 = 6. Topologia da Infraestrutura = … … 263 242 A camada que trata dos backends será flexível suficiente para prover a troca de serviços, de modo configuráveis:[[BR]] 264 243 265 266 244 ==== Serviços LDAP ==== 267 Poderão acoplar-se qualquer serviço que tenha suporte ao padrão LDAP, desde OpenLdap, RHDS,Novell ou Ad(Windows).245 Poderão acoplar-se qualquer serviço que tenha suporte ao padrão LDAP, desde !OpenLdap, RHDS,Novell ou Ad(Windows). 268 246 ==== Banco de dados ==== 269 247 Deverá suportar Mysql(default), podendo usar Postgresql ou mesmo Oracle. … … 273 251 Suporte a Postfix ou similar. 274 252 275 276 277 278 253 = 7. Arquitetura disponível em Nuvem = 279 254