Changes between Version 1 and Version 2 of NovoExpresso/ear


Ignore:
Timestamp:
10/05/11 11:35:18 (12 years ago)
Author:
zapa
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • NovoExpresso/ear

    v1 v2  
    1  
    2  -- EM CONSTRUÇÃO -- 
     1=== Documento de Arquitetura do Novo Expresso === 
     2 
     3 
     4'''1.  Objetivo''' 
     5 
     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. 
     7 
     8   1.2. Será adotado software TINE20, como base tecnologia para este NOVO EXPRESSO, agregando necessidades ou funcionalidades nesta 
     9 plataforma. 
     10  
     11'''2. Elementos de software  Significativos e Licenciamentos ''' 
     12 
     13  '''ExtJS''' 
     14     ExtJS   é   um   framework   Javascript   orientado   a   objetos.   Ele   permite   o        controle   de eventos    
     15     desacoplado das páginas HTML e possui vários  componentes gráficos prontos para uso (widgets).  
     16     Versão utilizada: 3.1.1  
     17     Licença: GPLv3  
     18     Site: http://www.sencha.com/products/extjs [[BR]] 
     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 'self­service' 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''' 
     37     Ajam   (Asynchronous   Javascript   Asterisk   Manager),   é   tecnologia   disponibilizada   na versão 1.4 do      
     38     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.  
     40     Versão utilizada: Asterisk 1.4  
     41     Licença: GPLv2  
     42     Site: http://www.asterisk.org/asterisknow/developers/­guide 
     43 
     44  '''GeoExt''' 
     45     GeoExt é um framework Javascript para sistemas de informação geográfica. Ele faz uso de ExtJS e OpenLayers.  
     46     Versão utilizada: não informada  
     47     Licença: BSD  
     48     Site: http://www.geoext.org  
     49 
     50  '''Hash''' 
     51     Classes para criptografia de senhas.  
     52 
     53  '''HTMLPurifier''' 
     54     HTMLPurifier   é   uma   biblioteca   de   filtros   escrita   em   PHP   compatível   com   padrões HTML.   Ela        
     55     remove   código   malicioso   enviado   em   tentativas   de   ataque   XSS   (Cross­Site Scripting), utilizando     
     56     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     Versão utilizada: 4.2.0  
     59     Licença: LGPL  
     60     Site: http://htmlpurifier.org  
     61 
     62  '''OpenDocument''' 
     63     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   e­mail   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 ''' 
     88     É   um   framework   WebDAV   para   PHP.   WebDAV   (Web­based   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                                                                                                               
     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''' 
     108 
     109      A proposta de evolução está baseada em uma implementação MVC. Essa implementação tem fraco acoplamento com o Zend Framework,   
     110      evitando heranças das classes do framework.   
     111 
     112      Descrição das camadas :  
     113        Camada de modelo está dentro da pasta Tinebase/Model. [[BR]] 
     114 
     115        Camada de controle está dentro da pasta Tinebase/Controller. [[BR]] 
     116 
     117        Camada de visão está dentro da pasta Tinebase/views.  
     118 
     119      A camada de visão é baseada em arquivos PHP que produzem conteúdo dinâmico em HTML e fazem uso intensivo de Javascript, 
     120      por meio do framework ExtJS. A   Figura abaixo demonstra   uma   visão   geral,   mostrando   a   multiplicidade  
     121      de backends e frontends. 
     122 
     123 
     124 
     125 
     126 
     127'''4. Padrões Arquiteturais''' 
     128 
     129   '''4.1.Single Page Application (SPA). ''' 
     130 
     131          Servido por meio de uma única URL, o arquivo index.php.  
     132          O entendimento do fluxo da aplicação   simplificado, uma vez que só há uma porta de entrada para as requisições.  
     133          Pode-se dizer que esse modelo SPA implementa o padrão de   projeto   Front   Controller,   o  que   resolve  problemas  
     134          de   organização  e segurança.  
     135 
     136 
     137 
     138   '''4.2. ISO-13407(processo voltado para usuários) e RIA(rich internet application)''' 
     139 
     140        A navegação nos módulos do sistema será padronizada,baseada sempre no layout  abaixo: 
     141 
     142 
     143 
     144 
     145'''5. Topologia''' 
     146 
     147      As camadas entre aplicação, backends e visualizações estão bem separadas. 
     148      A orientação a serviços e utilização do JSON como interface desta prestação de  
     149      serviços possibilitará a oferta de serviços a diferentes clientes em plataformas  
     150      diferentes, desde que suportem o protocolo JSON. 
     151 
     152      Toda comunicação se dará por protocolos padrões, XML/RPC ou SyncML para conexão 
     153      a clientes de e-mail. 
     154 
     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 
     164   O novo expresso interagirá com os seguintes componentes/serviços providos pela infraestrutura que  
     165   suporta a aplicação: 
     166 
     167   A camada que trata dos backends  será flexível suficiente para prover a troca de serviços, de modo configuráveis: 
     168 
     169   '''Serviços LDAP''' – Poderão acoplar-se qualquer serviço que tenha suporte ao padrão LDAP, desde OpenLdap, RHDS, 
     170      Novell ou Ad(Windows). 
     171 
     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''' 
     181 
     182      Os front-ends do Expresso permitirão acesso remoto, via internet e intranet, quantos necessário para crescimento horizontal,  
     183      com balanceamento de carga conforme a demanda de requisições: 
     184 
     185 
     186'''8.  Arquitetura com alta disponibilidade''' 
     187 
     188    '''8.1.'''Disponibilidade e replicação do banco de dados 
     189    '''8.2.'''Disponibilidade e replicação do IMAP 
     190    '''8.3.'''Disponibilidade e replicação do LDAP 
     191    '''8.4.'''Disponibilidade e replicação do SMTP 
     192 
     193 
     194'''9. Pontos a Exaltar''' 
     195 
     196   Um passo estratégico, considerando os problemas atuais e perspectivas futuras, orientação a serviços, 
     197   ambiente de nuvem,  visibilidade, usabilidade e segurança. 
     198   Foco na qualidade do produto e segurança, com consequente satisfação dos clientes e usuários. 
     199 
     200