Changes between Version 2 and Version 3 of NovoExpresso/ear


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

--

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== 
    55 
    66   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. 
     
    99 plataforma. 
    1010  
    11 '''2. Elementos de software  Significativos e Licenciamentos ''' 
    12  
    13   '''ExtJS''' 
     11== 2. Elementos de software  Significativos e Licenciamentos == 
     12 
     13  === ExtJS=== 
    1414     ExtJS   é   um   framework   Javascript   orientado   a   objetos.   Ele   permite   o        controle   de eventos    
    1515     desacoplado das páginas HTML e possui vários  componentes gráficos prontos para uso (widgets).  
     
    1818     Site: http://www.sencha.com/products/extjs [[BR]] 
    1919 
    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''' 
     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 'self­service' 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=== 
    3736     Ajam   (Asynchronous   Javascript   Asterisk   Manager),   é   tecnologia   disponibilizada   na versão 1.4 do      
    3837     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  
    4040     Versão utilizada: Asterisk 1.4  
    4141     Licença: GPLv2  
    4242     Site: http://www.asterisk.org/asterisknow/developers/­guide 
    4343 
    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 
    4647     Versão utilizada: não informada  
    4748     Licença: BSD  
    4849     Site: http://www.geoext.org  
    4950 
    50   '''Hash''' 
     51  === Hash=== 
    5152     Classes para criptografia de senhas.  
    5253 
    53   '''HTMLPurifier''' 
     54  === HTMLPurifier=== 
    5455     HTMLPurifier   é   uma   biblioteca   de   filtros   escrita   em   PHP   compatível   com   padrões HTML.   Ela        
    5556     remove   código   malicioso   enviado   em   tentativas   de   ataque   XSS   (Cross­Site Scripting), utilizando     
    5657     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 
    5860     Versão utilizada: 4.2.0  
    5961     Licença: LGPL  
    6062     Site: http://htmlpurifier.org  
    6163 
    62   '''OpenDocument''' 
     64  === OpenDocument=== 
    6365     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 ''' 
     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   e­mail   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=== 
    8892     É   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     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  
    9398                                                                                                               
    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=== 
    108114 
    109115      A proposta de evolução está baseada em uma implementação MVC. Essa implementação tem fraco acoplamento com o Zend Framework,   
    110116      evitando heranças das classes do framework.   
    111117 
    112       Descrição das camadas :  
     118      Descrição das camadas : [[BR]] 
     119 
    113120        Camada de modelo está dentro da pasta Tinebase/Model. [[BR]] 
    114121 
    115122        Camada de controle está dentro da pasta Tinebase/Controller. [[BR]] 
    116123 
    117         Camada de visão está dentro da pasta Tinebase/views.  
     124        Camada de visão está dentro da pasta Tinebase/views. [[BR]] 
     125 
    118126 
    119127      A camada de visão é baseada em arquivos PHP que produzem conteúdo dinâmico em HTML e fazem uso intensivo de Javascript, 
     
    125133 
    126134 
    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). === 
    130138 
    131139          Servido por meio de uma única URL, o arquivo index.php.  
     
    136144 
    137145 
    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)=== 
    139147 
    140148        A navegação nos módulos do sistema será padronizada,baseada sempre no layout  abaixo: 
     
    143151 
    144152 
    145 '''5. Topologia''' 
     153== 5. Topologia== 
    146154 
    147155      As camadas entre aplicação, backends e visualizações estão bem separadas. 
     
    153161      a clientes de e-mail. 
    154162 
    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== 
    163171 
    164172   O novo expresso interagirá com os seguintes componentes/serviços providos pela infraestrutura que  
     
    167175   A camada que trata dos backends  será flexível suficiente para prover a troca de serviços, de modo configuráveis: 
    168176 
    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, 
    170178      Novell ou Ad(Windows). 
    171179 
    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== 
    181189 
    182190      Os front-ends do Expresso permitirão acesso remoto, via internet e intranet, quantos necessário para crescimento horizontal,  
     
    184192 
    185193 
    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''' 
     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== 
    195203 
    196204   Um passo estratégico, considerando os problemas atuais e perspectivas futuras, orientação a serviços,