Você está na página 1de 40

EXPRESSO

Manual de Referncia
Sute de Comunicao Expresso - Manual de Referncia
Sumrio
1 - ntroduo...................................................................................................................................... 4
1.1 - Caractersticas........................................................................................................................ 4
2 - Estrutura dos servios.................................................................................................................... 4
3 - Pacote Bsico................................................................................................................................ 4
3.1 Sistema Operacional................................................................................................................ 5
3.2 - Servidor Web.......................................................................................................................... 5
3.2.1 - Pacotes utilizados........................................................................................................... 5
3.3 - Servidor de Banco de Dados.................................................................................................. 5
3.3.1 - Agenda............................................................................................................................ 5
3.3.2 - ContactCenter................................................................................................................. 7
3.3.3 - Pacotes Utilizados........................................................................................................... 9
3.4 - Servio de Diretrio................................................................................................................ 9
3.4.1 - Login no Expresso e LDAP...........................................................................................10
3.4.2 - Pacotes utilizados:........................................................................................................ 10
3.5 - Servios de Autenticao..................................................................................................... 11
3.5.1 - Pacotes utilizados:........................................................................................................ 11
3.6 - Servio de Correio................................................................................................................ 11
3.6.1 - Cyrus MAP................................................................................................................... 11
3.6.2 - Os arquivos do Cyrus.................................................................................................... 11
3.6.3 - Pacotes utilizados......................................................................................................... 12
3.7 - Postfix................................................................................................................................... 12
3.7.1 Pacotes utilizados........................................................................................................... 12
3.8 - Arquivamento Local.............................................................................................................. 12
3.8.1 - Arquivos........................................................................................................................ 13
3.9 - Expresso Offline................................................................................................................... 13
3.10 Temas e Templates.............................................................................................................. 14
3.10.1 Templates...................................................................................................................... 14
3.10.2 Temas........................................................................................................................... 14
3.10.3 Templates e temas nos mdulos do Expresso.............................................................15
4 - Servios Especiais...................................................................................................................... 16
4.1 - Servidor de Listas de Endereamento..................................................................................16
4.1.1 - Pacotes utilizados:........................................................................................................ 16
4.2 - Utilizao de Certificados Digitais......................................................................................... 17
4.2.1 - Componentes................................................................................................................ 17
4.2.2 - Estao de trabalho do usurio....................................................................................17
4.2.3 - Servidor da aplicao.................................................................................................... 18
4.2.4 Diagrama...................................................................................................................... 19
4.2.5 - Funcionamento............................................................................................................. 19
4.2.6 - Repositrio de certificados............................................................................................ 20
4.2.7 - Cifrando mensagens(Envio).......................................................................................... 20
4.2.8 - Decifrando mensagens(Recebimento)..........................................................................20
4.3 Cliente Voz sobre P.............................................................................................................. 21
4.4 Sincronismo com dispositivos mveis ...................................................................................22
4.4.1 Requisitos........................................................................................................................ 22
4.4.2 Servidor Funambol ........................................................................................................ 22
4.4.3 Dispositivos Mveis .................................................................................................. 22
4.4.4 Topologia ....................................................................................................................... 23
4.5 Comunicao nstantnea...................................................................................................... 25
4.6 Workflow................................................................................................................................. 26
5 Setup de aplicaes....................................................................................................................... 27
5.1 . Overview .............................................................................................................................. 27
5.2 . Arquivos do Setup da aplicao........................................................................................... 28
5.2.1 . setup.inc.php (Requirido) ............................................................................................. 28
5.2.1.1 nformaes Bsicas............................................................................................... 28
5.2.1.2 nformaes de tabelas...........................................................................................30
5.2.1.3 Hooks....................................................................................................................... 30
5.2.1.4 Dependncias.......................................................................................................... 30
5.2.2 tables_baseline.inc.php (Recomendado) ......................................................................31
5.2.3 tables_current.inc.php (Recomendado) .........................................................................32
5.2.4 tables_update.inc.php (Recomendado) .........................................................................33
5.2.5 default_records.inc.php (Opcional) ...............................................................................35
5.2.6 test_data.inc.php (Opcional) ......................................................................................... 35
5.2.7 language files (Requirido) ............................................................................................. 35
5.3 Developer Tools..................................................................................................................... 36
5.3.1 sqltoarray.php ................................................................................................................ 36
5.3.2 schematoy.php ............................................................................................................... 36
5.4 O processo de install/upgrade .............................................................................................37
5.4.1 Setup internal upgrade functions....................................................................................37
5.4.2 Novas instalaes........................................................................................................... 37
5.4.2.1 Deteco.................................................................................................................. 37
5.4.2.2 Selection.................................................................................................................. 38
5.4.2.3 nstallation................................................................................................................ 38
5.4.3 4.3 Upgrades .................................................................................................................. 38
5.4.3.1 Deteco.................................................................................................................. 38
5.4.3.2 Selection.................................................................................................................. 38
5.4.3.3 Upgrade................................................................................................................... 39
5.4.4 4.4 Uninstallation/Removal .............................................................................................39
5.4.4.1 Selection.................................................................................................................. 39
5.4.4.2 Uninstallation........................................................................................................... 39
5.4.5 Miscelnias...................................................................................................................... 39
5.4.5.1 Auto fields................................................................................................................ 39
5.4.5.2 Default 0.................................................................................................................. 40
1. Referncias.................................................................................................................................... 41
Ficha Tcnica..................................................................................................................................... 42
- !ntroduo
O Expresso "i#re uma soluo completa de comunicao que rene Email,
Agenda, Catlogo de Endereos e Mensagens nstantneas em um nico ambiente. Por ser
uma verso customizada do E-GroupWare, seu desenvolvimento tambm totalmente
baseado em software livre.
Este manual descreve as principais funcionalidades e caractersticas tecnolgicas
envolvidas no Expresso. No inteno fornecer aqui elementos de configurao ou
administrao de ambiente pois estes possuem documentao prpria.
$ - Caractersticas
Alta Escalabilidade
Baixo custo
Utilizao de protocolos padres
ntegrao com outros sistemas Web
ndependncia de fornecedor
ndependncia de plataforma cliente
ndependncia de plataforma servidor
Mobilidade dos usurios
O Expresso uma aplicao desenvolvida em PHP, com algumas funcionalidades
em Java ou mesmo Python e que rene vrios componentes que esto integrados em si.
Abaixo tem-se um resumo de cada um deles:
Sistema Operacional Hospedeiro
Servidor Web Apache e pacotes necessrios
Servidor de Banco de Dados PostgreSql
Servidor de Diretrio Ldap
Servidor Cyrus MAP
Servidor Postfix
SASL
Jabber
Servidor de Listas Mailman
Google Gears
Java(TM) Plug-in
Funambol-7.0.6
Funambol-psync-1.0.0.s4j
Jre-1.5.0 ou maior
% - Estrutura dos ser#ios
& - Pacote 'sico
Esta seo descreve os componentes que compe a soluo Expresso, necessrios para o
seu funcionamento, considerando as funcionalidades bsicas.
&$ Sistema Operacional
O sistema operacional utilizado para a instalao do Expresso o GNU Linux Debian Etch.
&$% - Ser#idor (e)
O Apache um servidor de aplicaes WEB para nternet e adotado como padro pela
equipe Expresso. Permite que toda a aplicao Expresso Livre seja acessada via navegadores de
internet, como Mozilla Firefox ou Microsoft nternet Explorer. Ele livre e de cdigo aberto, alm de
ser reconhecido internacionalmente como uma ferramenta confivel. Todos os servidores da
aplicao Expresso rodam Apache e todos os servios do Expresso Livre so disponibilizados com
o servidor web Apache.
&$%$ - Pacotes utili*ados
- Apache2
- Openssl
- Php5
- Php5-imap
- Php5-ldap
- Php5-pgsql
&$& - Ser#idor de 'anco de +ados
O PostgreSQL uma excelente alternativa de bancos de dados em software livre e um dos
bancos mais confiveis da atualidade. Aguenta elevada carga de dados e por ter custo zero, foi
escolhido como o padro para o Expresso.
O banco de dados do Expresso, guarda informaes como preferncias, eventos do
calendrio, catlogo pessoal e informaes do prprio sistema do expresso, alm de dados
necessrios execuo da aplicao, flags, variveis dos servios de correio, entre outros.
&$&$ - ,-enda
O mdulo da Agenda de Eventos utiliza o banco de dados para armazenar os
agendamentos de usurios e seus participantes. No momento da criao de um evento
(agendamento), um registro gravado na tabela p.p-/0cal. No caso de haver participantes, um
registro com o uid de cada um deles associado ao mesmo cal_id do evento, ser gravado na tabela
p.p-/0cal0user$
Os agendamentos tambm so classificados quanto ao tipo e, conforme o caso, um valor
especfico armazenado no banco para identific-lo. Para os eventos do tipo normal e do tipo
restrito, o campo 1cal0t2pe3 da tabela p.p-/0cal recebe o valor "E; para agendamentos do tipo
privado, o valor "P e quando um agendamento que se repete, o valor gravado "M.
As informaes relativas aos agendamentos recursivos, so gravadas na tabela
p.p-/0cal0repeats. De acordo com o tipo de recursividade, um valor de identificao diferente
gravado no campo 1recur0t2pe3 da referida tabela. Os valores so:
1 para repetio Diria;
2 para repetio Semanal;
3 para repetio Mensal (por data);
5 para repetio Anual.
Ainda na tabela p.p-/0cal0repeats, o campo recur0data registra os dias de repetio de
um agendamento. A maneira que essa informao gravada toma como base o somatrio de
valores relativos a cada dia da semana selecionado importante lembrar que essa informao
utilizada apenas quando a repetio do tipo Semanal. Os valores so:
1 domingo
2 segunda-feira
4 tera-feira
8 quarta-feira
16 quinta-feira
32 sexta-feira
64 sbado
No caso de um agendamento com alarme configurado, a tabela p.p-/0as2nc recebe os
dados relativos a esse alarme.
O Expresso Admin tambm usa o banco de dados para guardar dados. Na tabela phpgw_acl
so gravadas informaes referentes a quais mdulos do Expresso os usurios tm permisso de
acesso.
4a)ela p.p-/0cal
Campo 4ipo +escrio
cal_id int4(not null)[pk]
Numero de identificao do evento.
O valor padro dado pela seqencia
nextval(('seq_phpgw_cal'::text)::regclass)
uid
varchar(255)(not
null)
Guarda o dominio onde o usuario est inserido ( ex. -@. , joao@. )
owner int8(not null) Numero de identificao do dono do evento
category varchar(30)
Define se o evento est em alguma categoria.
1 : Para evento com categoria
' ': Para evento sem categoria
groups varchar(255) NULL (todos os eventos que foram criados ficaram com esse valor)
datetime int8 Guarda, em microtime, a data e hora em que o evento ir acontecer.
mdatetime int8 Guarda, em microtime, a data e hora em que o evento foi criado.
edatetime int8 Guarda, em microtime, a data e hora em que o evento ir terminar.
priority int8(not null)
Define a prioridade do evento.
0 : Para evento sem prioridade
1 : Para evento com prioridade baixa
2 : Para evento com prioridade mdia
3 : Para evento com prioridade alta
cal_type varchar(10)
Define se o evento ser repetido.
E : Para evento unico
M : Para evento com repetio
is_public int8(not null)
Define se o evento ser publico.
0 : Para evento particular
1 : Para evento pblico
title
varchar(80)(not
null)
Guarda o titulo do evento.
description text Guarda a descrio do evento.
location varchar(255) Guarda o local onde o evento ir ocorrer.
reference int8(not null)
Quando um evento de um evento recursivo editado, esse campo
recebe o cal_id referente ao evento que foi editado.
ex_participants text
Guarda os e-mails dos participantes que no esto em nenhum grupo.
Os participantes esto separados por virgulas.
Estas tabelas tm um relacionamento de 1/1, onde o campo cal_type deve estar com o valor
m para que haja uma entrada na tabela abaixo.
4a)ela p.p-/0cal0repeats
Campo 4ipo +escrio
cal_id int8(not null) Numero de identificao do evento.
recur_type
varchar(30)(not
null)
Define o tipo de repetio do evento.
1 : Para evento dirio
2 : Para evento semanal
4 : Para evento mensal por dia
3 : Para evento mensal por data
5 : Para evento anual
recur_use_end int8 0 (Todos os eventos ficaram com esse valor)
recur_enddate int8 Guarda, em microtime, a data em que a repetio do evento ir terminar.
recur_interval int8
Guarda o intervalo em que o evento ira ocorrer.
0 : Para um evento unico
1 : Para um evento diario ou semanal ou mensal ( passo de 1 )
2 : Para eventos a cada 2 dias, 2 semanas 2 meses
e assim por diante.
recur_data int8
Guarda quais dias da semana o evento ir acontecer, a somatria desses
valores indicar os dias que foram marcados
1 : Domingo
2 : Segunda
4 : Tera
8 : Quarta
16 : Quinta
32 : Sexta
64 : Sabado
(Ex.: 42 = Segunda(2), Quarta(8) e Sexta(32))
recur_exceptio
n
varchar(255)
Guarda, em microtime, os dias em que no haver o evento.
Esses dias so separados por virgula.
O evento somente ser exibido se houver uma entrada nesta tabela indicando a ID do
evento e a ID do dono.
4a)ela p.p-/0cal0user
Campo 4ipo +escrio
cal_id int8(not null) Numero de identificao do evento.
cal_login int8(not null) Numero de identificao do dono do evento.
cal_status char(1)
Define se o usurio aceitou ou no participar do evento.
A : Se aceitou participar
U : Se no aceitou participar
cal_type varchar(1)(not null) Guarda algum tipo de informao que ainda no foi possvel descobrir
&$&$% - ContactCenter
O mdulo Catlogo de Endereos guarda os contatos pessoais dos usurios no banco de
dados.
Os dados dos contatos esto dividos em 25 tabelas, mas em 2 tabelas se encontram todos
os dados necessrios para o contato. Os dados que podero ser utilizados no padro vCard so os
seguintes:
4a)ela p.p-/0cc0contact
Nesta tabela ficam armazenados o nome, sobrenome e apelido dos contatos. Atravs do
campo "id_owner, possvel identificar a qual usurio o contato pertence.
Campo 4ipo +escrio
id_contact
int8(NOT NULL)
[pk]
Numero de identificao do contato.
id_owner int8(NOT NULL) Numero de identificao do dono do contato.
id_status int4 Numero de identificao para contato completo ou simples.
photo bytea Valor binrio da imagem de exibio do contato.
alias varchar(30) Guarda o nome de exibio do contato.
id_prefix int4 NULL ( Nenhum dos exemplos criados chegaram a ocupar esse espao)
given_names varchar(100) Guarda o primeiro nome do contato.
family_names varchar(100) Guarda o sobre-nome do contato.
names_ordere
d
varchar(100) Guarda o nome completo do contato.
id_suffix int4 NULL ( Nenhum dos exemplos criados chegaram a ocupar esse espao)
birthdate date Guarda a data de aniversrio do contato.
sex char(1)
Caracter que indentifica o sexo do contato.(nenhum dos exemplos ocupou
esse campo, nem havia onde registrar-lo)
pgp_key text Chave publica pgp do contato para criptografia das mensagens.
notes text Notas sobre o contato.
is_global bool Flag que define se o contato publico ou privado.
4a)ela p.p-/0cc0connections
Registra os endereos eletrnicos e nmeros de telefone dos contatos.
Campo 4ipo +escrio
id_connection int8(NOT NULL)[pk] Numero de identificao da ligao com o contato
connection_name varchar(50)
Guarda o nome do endereo de e-mail ou telefone do contato.
Principal : Para o e-mail principal do contato
Alternativo : para o e-mail alternativo do contato
Residencial : Para o telefone Residencial do contato
Celular : Para o telefone Celular do contato
Comercial : Para o telefone Comercial do contato
Fax : Para o telefone Fax do contato
Pager : Para o telefone Pager do contato
connection_value varchar(50) Guarda o valor do e-mail ou telefone do contato.
connection_is_default bool Define se o endereo ou e-mail o padro do contato.
4a)ela p.p-/0cc0addresses
Registra os endereos dos contatos; o campo "id_address remete tabela
phpgw_cc_typeof_ct_addrs, que identifica o endereo como sendo "Residencial e "Comercial.
Campo 4ipo +escrio
id_address int8(NOT NULL)[pk] Numero de identificao do endereo
id_city int8 Numero de identificao da cidade
id_state int8 Numero de identificao do estado
id_country bpchar(2)(NOT NULL) Numero de identificao do pais
address1 varchar(60) Endereo principal
address2 varchar(60) Endereo secundrio
complement varchar(30) Complemento
address_other varchar(60) Outro endereo
postal_code varchar(15) CEP
po_box varchar(30) Caixa Postal
address_is_default boolean Endereo padro?
4a)ela p.p-/0cc0contact0 connections
As tabelas p.p-/0cc0contact e p.p-/0cc0connections esto ligadas num
relacionamento de 1/N atravs dessa tabela:
Campo 4ipo +escrio
id_contact int8[pk] Guarda a identificao do contato
id_connection int8[pk] Guarda a identificao da conexo do contato
id_typeof_contact_connection int4
Guarda o tipo de conexao com o contato:
1: Para e-mail
2: Para Telefone
4a)ela p.p-/0cc0contact0addrs
As tabelas p.p-/0cc0contact e p.p-/0cc0addresses esto ligadas num relacionamento de 1/N
atravs dessa tabela:
Campo 4ipo +escrio
id_contact int8[pk] Numero de identificao do contato
id_address int8[pk] Numero de identificao do endereo
id_typeof_contact_address int4
Numero de identificao do tipo de endereo:
1 : Para endereo comercial
2 : Para endereo residencial
As tabelas p.p-/0cc0state e p.p-/0cc0cit2 contm a lista com os estados e cidades brasileiras,
respectivamente.
&$&$& - Pacotes 5tili*ados
- Postgresql-8.1
- Postgresql-common
- Postgresql-client-8.1
- Postgresql-client-common
&$6 - Ser#io de +iret7rio
O LDAP ou "i-.t/ei-.t +irector2 ,ccess Protocol uma base de dados no SQL
especificamente projetada para busca e navegao, alm de suporte s funes de consulta e
atualizao dos dados.
O LDAP uma definio de protocolo para acesso a bancos de dados especializados
chamados diretrios. similar ao SQL no sentido que uma linguagem para interagir com bancos
de dados sem especificar um banco de dados particular. De fato, o banco de dados de suporte ao
LDAP quase sempre um sistema RDBMS geral, como o LDBM ou o Oracle.
Nas diversas tecnologias que empresas de mdio e grande porte utilizam hoje em dia, uma
rea para autenticao exigida por praticamente todos os sistemas, o que pode muitas vezes
ocasionar uma variada quantidade de cadastro de utilizadores replicados entre os sistemas. Como
exemplo daquele utilizador que tem muitos "logins" e "senhas" para acesso aos sistemas da
empresa e toda semana precisa lembrar ou alterar alguma informao de seu cadastro. Ex: login e
senha para acesso a mquina, a rede, ao e-mail, ao sistema de gesto, sistema de documentos,
etc. Um servidor de diretrios como o Open LDAP ou MS Active Directory recebe esta autenticao
dos muitos sistemas; o protocolo LDAP serve justamente para outras aplicaes quaisquer da
empresa se conectarem e consultarem um servidor de diretrios.
Diretrios tendem a conter informaes descritivas baseadas em atributos e suportar
sofisticados filtros de busca, porm, geralmente, no suportam transaes mais complexas ou
esquemas de roll-back encontrados em sistemas de gerenciamento de dados projetados para tratar
de grandes volumes de atualizaes.
O Expresso utiliza o OpenLDAP para montar a rvore de organizaes e usurios e
cadastrar dados bsicos como nome, sobrenome e senha destes. A partir da senha, gerado um
hash que fica gravado no diretrio. As senhas so armazenadas usando o tipo de encriptao MD5,
independentemente do uso de certificado digital para efetuar login.
&$6$ - "o-in no Expresso e "+,P
No processo de login sem certificado digital, o usurio informa, alm do <nome de usurio>,
a <senha>. O Expresso faz uma consulta base Ldap procura daquele usurio e, a partir da
senha informada, gera um hash e o compara com o hash que est armazenado l. Em caso
positivo, o acesso sute liberado. Em caso negativo, o Expresso apresentar mensagem de erro
solicitando novamente <usurio> e <senha>.
Para o login com certificado digital, o processo um pouco diferente. O usurio precisa
informar ao Expresso que deseja efetuar login usando um certificado digital; para isso deve usar o
link "Utilizar o meu Certificado para logar na tela inicial. Neste caso o usurio no informa a senha,
apenas o <nome de usurio>. A consulta base Ldap feita, s que, desta vez, a procura por
um campo que contm a senha, ou hash desta, criptografada com a chave pblica do usurio. Este
o atributo "cryptpassword. O Expresso, ento, descriptografa o contedo desse campo utilizando
a chave privada contida no token do usurio, e a partir da, o processo se d de forma semelhante
ao anterior.
Para informaes sobre o uso de certificado digital no Expresso, ver o item 3.2 deste
manual.
&$6$% - Pacotes utili*ados8
- Slapd
- Ldap-utils
&$9 - Ser#ios de ,utenticao
O servio SASL, sigla que vem de "Simple Authentication and Security Layer" ou "Camada
Simples de Autenticao e Segurana", define o mtodo de autenticao das contas dos usurios e
o protocolo de segurana de acesso s caixas de mensagens. O SASL j est integrado ao servidor
Cyrus MAP e ao OpenLDAP.
&$9$ - Pacotes utili*ados8
- Libsasl2
- Libsasl2-modules
- Sasl2-bin
&$: - Ser#io de Correio
&$:$ - C2rus !M,P
O map um protocolo standard para armazenamento e recuperao de emails na nternet
(nternet Message Access Protocol).
A principal funo do servidor MAP prover acesso remoto a clientes de email, sejam eles
web como no caso do Expresso ou mesmo clientes desktop(RFC 3501).
O servidor Cyrus mapeia as caixas de mensagens dos usurios e aceita conexes MAP, em
que as mensagens recebidas apenas ficam no servidor para consulta e/ou alterao dos clientes.
neste servio que so definidas as quotas das caixas de e-mail e onde a hierarquia de
pastas e subpastas criada. Toda essa estrutura de pastas fica armazenada no diretrio
/var/spool/cyrus/mail/.
O Cyrus oferece integrao com o SASL para autenticao de usurios, suporte a
aplicativos como Clamav e Postfix e suporte nativo para filtros de e-mail (SEVE).
&$:$% - Os ar;ui#os do C2rus
Acessando a pasta do usurio, o administrador pode ver, remover, adicionar, alterar os e-
mails das caixas postais. Por exemplo, na pasta "/var/spool/cyrus/mail/e/user/expresso-admin"
encontra-se as caixas do usurio expresso-admin. Ao listar o contedo da mesma, tem-se:
10740. 10751. cyrus.cache cyrus.index Enviados
10749. 95431. cyrus.header Drafts Lixeira
Os arquivos regulares 10740., 10749., 10751. e 95431. so mensagens em formato texto.
Lixeira, Enviados e Drafts so diretrios que representam as pastas da caixa postal.
Os arquivos cyrus.index, cyrus.cache e cyrus.header so arquivos de controle do cyrus para
otimizar buscas em contedos e cabealhos dos e-mails. Quando as caixas apresentarem
problema, como por exemplo lentido, estas podem ser refeitas. A forma de refaz-las usando a
ferramenta /usr/sbin/cyrreconstruct.
Para administrar caixas no modo de comando (como por exemplo remoo e criao) o
administrador deve usar a ferramenta cyradm.
A criao e administrao de usurios permite a manipulao das caixas postais, via
interface grfica do Expresso.
&$:$& - Pacotes utili*ados
- Cyrus-admin
- Cyrus-clients
- Cyrus-common
- Cyrus-imapd
&$< - Postfix
O Postfix o servio de correio que executa o protocolo SMTP, responsvel pelo envio de
mensagens. mplementa as filas de mensagens e deixa registrados em suas logs os envios de
mensagens, para consulta do administrador. Seus pacotes j possuem integrao com os outros
componentes do Expresso, como LDAP e Cyrus, e pode ser usado com qualquer protocolo de
recebimento de mensagens.
&$<$ Pacotes utili*ados
- Postfix
- Postfix-ldap
O ExpressoMail faz uso destes dois servios para recebimento e entrega de mensagens. O
funcionamento de ambos o padro, porm existe a possibilidade do uso de certificados digitais
para assinatura e criptografia das mensagens; para informaes sobre o uso de certificado digital
no Expresso, ver o item 3.2 deste manual.
&$= - ,r;ui#amento "ocal
A imensa quantidade de informaes importantes que circulam por e-mail, junto com as
facilidades que as ferramentas de correio eletrnico proporcionam, exigem que hoje tenhamos uma
capacidade de armazenamento bastante ampla.
Pensando em atender esta demanda para o armazenamento de mensagens de e-mail, a
equipe de desenvolvimento do Expresso implementou o arquivamento local atravs do Expresso
WEB, permitindo que os e mails armazenados no servidor central sejam copiados ou movidos para
o banco de dados da estao de trabalho do usurio, funcionalidade denominada Arquivamento
Local.
Este arquivamento utiliza o Google Gears(http://gears.google.com), um complemento para
os browsers Mozilla Firefox e nternet Explorer (compatvel com os sistemas operacionais Windows
e Linux). Atravs deste complemento, possvel que as mensagens recebidas no Expresso sejam
armazenadas no disco rgido da estao do usurio.
A instalao do Google Gears feita automaticamente pelo Expresso, caso o usurio deseje
usar a funcionalidade. O Gears possui verses para:
- nternet Explorer 6+ - recomendado E7+
- Firefox 1.5+ - recomendado FF3+
At o momento da confeco deste manual, a verso utilizada do >ears a ?$9$&%$? para
"inux e ?$9$&:$? para (indo/s.
&$=$ - ,r;ui#os
@o diret7rio )ase do >oo-le >ears8
localser#er$d) A Este um banco de dados SQLite que guarda apontamento para todos os
arquidos guardados no LocalServer de todos os domnios. Este arquivo usado internamente pelo
Gears e no pode ser acessado por programao da AP do Gears.
permissions$d) A um banco de dados SQLite que guarda todos os domnios(urls) que tem
permisso para utilizao do Gears.
@o diret7rio domnio do >oo-le >ears8
BdomainCD.ttps066&DBfilenameCEdata)ase A Este um banco de dados SQLite criado pelo
Expresso para o domnio <domain> .
BdomainCD.ttps066&DBfilenameCElocalser#er A Este um diretrio(pasta) que contem os
arquivos cachados por cada tipo de LocalServer, um ResourceStore ou um
ManagedResourceStore, criado pelo dominio <domain > .
Ao fazer uso do arquivamento local, o Gears cria um banco de dados SQLite que fica
localizado dentro do diretrio com o perfil do browser do usurio. Como o Gears usa o conceito de
um banco por URL, h que se considerar que o acesso a sites via HTTP ou via HTTPS, geram
caminhos e bancos locais diferentes, mesmo que a URL do Expresso seja a mesma.
No (indo/s XP, usando-se o browser !nternet Explorer, o caminho para o banco de dados
do Gears :
c://Documents and Settings/!s!ario"/#onfig!ra$%es &ocais/Dados de
'plicativos/(oogle/(oogle (ears/!rl do expresso"/http o! https"/
Em outras verses do Windows, o caminho do banco de dados local pode ser encontrado de
maneira anloga ao do XP, sempre partindo da pasta de perfil do usurio.
Caso o browser usado no (indo/s seja o Firefox, o caminho muda e fica da seguinte
maneira:
c://Doc!ments and Settings/!s!ario"/#onfig!ra$%es &ocais/Dados de
'plicativos/)o*illa/+irefox/,refis/perfil do firefox"/(oogle (ears for +irefox/!rl do expresso"/http
o! https"/
No "inux o caminho tambm usa o mesmo princpio, porm escrito de outra maneira,
considerando-se que aqui o browaer o Firefox:
/home/!s!ario"/-mo*illa/firefox/perfil do firefox"/(oogle (ears for +irefox/!rl do
expresso"/http o! https"/
O nome do arquivo de banco de dados, em todos os casos, data)ase-testEdata)ase.
&$G - Expresso Offline
O Expresso Mail Offline o mdulo Expresso Mail, configurado apenas para trabalhar com
acesso as Pastas Locais, permitindo assim que o usurio possa acessar os seus e-mail ainda que
no haja uma conexo com a rede ou com a internet. Segue abaixo um passo a passo de como
utiliz-lo.
O Google Gears requisito obrigatrio para a utilizao do Expresso Mail Offline e o usurio
deve ter optado nas suas preferncias do mdulo de email a utilizar arquivamento local, bem como
ter realizado a instalao do Google Gears quando da solicitao de sua instalao pelo Expresso.
&$? 4emas e 4emplates
O Expresso possibilita a customizao de sua aparncia mediante a utilizao de templates
e temas, a saber:
Template organiza e d forma interface normalmente composto por um cdigo html
que determina a disposio dos elementos da interface na tela do browser;
Tema compe a aparncia final, definindo as cores e as imagens que daro s pginas
do Expresso a identidade visual desejada.
A seleo do template e do tema a serem utilizados feita em )inhas ,refer.ncias /
,refer.ncias /0rigat1rias / Sele$2o de Interface/)odelo e )inhas ,refer.ncias / ,refer.ncias
/0rigat1rias / Sele$2o de 3ema (cores/fontes). A possibilidade do usurio final selecionar o
template ou tema de sua preferncia configurvel, ou seja, o administrador pode ou no
disponibilizar ao usurio final a seleo dos templates e temas.
&$?$ 4emplates
Os templates disponveis esto localizados na pasta
/phpgwapi/templates. O Expresso identifica os templates nesta
pasta e os inclui para seleo na lista de templates.
Cada template possui em sua estrutura arquivos de folha
de estilo, cdigos php e imagens.
Os arquivos de folha de estilo (.css) esto localizados na
pasta css. Esta pasta pode conter um arquivo css para cada
tema disponvel para o template, alm do arquivo base.css, que
o arquivo padro de estilo do template. Este arquivo padro
deve conter as definies que so compartilhadas por todos os
temas do template, sendo a base do seu layout. Porm, no
obrigatria a sua presena, sendo que, se ele no existir, o
template seguir as definies constantes do arquivo base.css
presente no template defa!lt.
As imagens padro do template esto localizadas na
pasta images. As demais pasta contm cdigo. Na raiz do
template tambm esto mais alguns arquivos de cdigo e
arquivos template (tpl).
Por ltimo, a pasta themes contm folhas de estilo e imagens especficas dos temas,
permitindo customizar a aparncia de acordo com o cliente e/ou preferncia pessoal.
&$?$% 4emas
Os temas disponveis para um determinado template se localizam na pasta
/phpgwapi/templates/nome do template"/themes. Uma vez selecionado o template, o Expresso
identifica os temas nesta pasta e os inclui para seleo na lista de temas.
Cada tema possui em sua estrutura arquivos de folha de
estilo e imagens. Os arquivos de folha de estilo (css) esto
localizados na pasta css, e as imagens na pasta images.
&$?$& 4emplates e temas nos m7dulos do Expresso
Esta estrutura de templates e temas tambm est
presente em cada mdulo do Expresso, por exemplo, no
expresso)ail. Assim, detalhes prprios de um mdulo podem
ser exibidos de acordo com o template e tema escolhido.
No caso de no existir, em um determinado mdulo, o
template selecionado, o Expresso utilizar o template defa!lt.
Situao parecida se aplica no caso em que, em um
determinado mdulo, no exista o tema selecionado, quando
ento ser utilizado o padro do template.
A incluso dos arquivos css nas pginas segue a
seguinte ordem:
1. arquivo /phpgwapi/templates/template"/css/0ase-css
ou, caso este no exista, /phpgwapi/templates/defa!lt/css/0ase-css4
2. arquivo /phpgwapi/templates/template"/css/theme"-css;
3. arquivo /mod!lo"/templates/template"/css/theme"-css;
4. arquivo /mod!lo"/templat
6 - Ser#ios Especiais
Nesta seo sero descritos os servios adicionais especiais comportados pelo Expresso,
como novas funcionalidades ou modificao de outras j existentes. Considera-se servio adicional
aqueles servios no disponveis no pacote bsico e que dependem da disponibilidade adicional de
infra estrutura a ser disponibilizada para o Expresso, isto , a simples instalao do Expresso no
comportar os servios mencionados a seguir, havendo necessidade recursos de software ou
hardware adicionais.
6$ - Ser#idor de "istas de Endereamento
Mdulo adicionado para implementar o uso do servio de listas de e-mail com todas as suas
funcionalidades, dentre as quais:
- Histrico de mensagens
- Limitao do tamanho de arquivos anexados
- Moderao de listas
Este servio deve ser instalado, preferencialmente, em um servidor exclusivo.
6$$ A Funcionamento
A base LDAP contm usurios e listas de distribuio. Toda a administrao feita via
interface do Expresso, e nela possvel inserir, excluir e editar listas, incluir e excluir usurios,
permite tambm estabelecer permisses de envio para lista.
Para que um usurio possa realizar essas aes, ele precisa ser o Gerente da lista. Atravs
da opo "Adm o administrador do Expresso pode delegar a gerncia de listas para determinados
usurios. A partir desta condio, o usurio, agora gerente, poder realizar todos os procedimentos
administrativos sobre a lista.
A criao e excluso de uma ou mais listas , a princpio, privilgio do administrador do
Expresso; todavia, tambm possvel delegar estas funes para outros usurios. Para isto, a
condio que o usurio escolhido seja pertencente ao grupo "listadmin do LDAP.
A sincronizao LDAP e Mailman feita no servidor de listas, que cria listas, inclui e exclui
usurios, automatizando a manuteno e ainda mudando os mesmos de lista quando for
necessrio.
O envio e recebimento de mensagens feito via relay de entrega ou diretamente ao servidor
responsvel pela conta do usurio ou lista. A base LDAP contm o endereo de email da lista, bem
como seus membros; o Mailman de posse destes dados, faz a entrega de forma controlada e
escalonada das mensagens. possvel estabelecer polticas diferenciadas de envio e
recebimento, estabelecendo quais os usurios podem ou no submeter mensagens a lista. Todas
as listas esto disponveis para pesquisa no Catlogo de Endereos e no Expresso Mail.
6$$ - Pacotes utili*ados8
- Mailman
- Postfix
- Php5-common
- Php5-dev
- Php5-curl
- Php5-cli
- Php5-ldap
6$% - 5tili*ao de Certificados +i-itais
A certificao digital uma ferramenta de segurana que permite ao cidado brasileiro
realizar transaes no meio eletrnico, que necessitem de segurana, como assinar emails, obter
informaes sensveis do governo e do setor privado, entre outros exemplos.
O Brasil conta com um Sistema Nacional de Certificao Digital que mantido pelo nstituto
Nacional de Tecnologia da nformao.
Tecnicamente, o certificado um documento eletrnico que por meio de procedimentos
lgicos e matemticos asseguraram a integridade das informaes e a autoria das transaes. Esse
documento eletrnico gerado e assinado por uma terceira parte confivel, ou seja, uma
Autoridade Certificadora que, seguindo regras emitidas pelo Comit Gestor da CP-Brasil , associa
uma entidade (pessoa, processo, servidor) a um par de chaves criptogrficas.
O expresso possui suporte utilizao de certificados digitais atualmente utilizados e
homologados para login no seu sistema, assinatura e criptografia de emails produzidos ou
recebidos pela ferramenta.
Foram testados e homologados certificados tipo A1 e A3, produzidos pelo Serpro, Serasa ,
Frb, nos dispositivos tokens e smart-cards.
O Expresso d suporte a login, assinatura e criptografia de emails por meio de certificados
digitais padres CP-Brasil, conforme descrito acima.
O Expresso verifica a validade dos certificados usados nestas operaes e a integridade das
mensagens assinadas ou cifradas recebidas.
Quando do recebimento de uma mensagem assinada digitalmente, o certificado que assinou
a mensagem armazenado automaticamente em um repositrio de certificados, e fica disponvel
para cifrar mensagens para os seus proprietrios.
O objetivo principal da utilizao de certificados no Expresso esta relacionado a segurana
da informao, considerando as quatro premissas:
Autenticao: Com quem estamos comunicando?
Sigilo/Confidencialidade: Algum pode ler?
ntegridade : O dado foi alterado?
rretratabilidade/No repdio : E se ele disser que no foi ele?
6$%$ - Componentes
6$%$% - Estao de tra)al.o do usurio
O suporte a certificados composto por um ambiente de software na estao de trabalho do
usurio para possibilitar o acesso aos dispositivos criptogrficos, sejam eles na forma de
arquivos(A1), tokens ou smart-cards(A3) conectados as portas USB do equipamento do usurio.
Os softwares necessrios so basicamente: o Certificado, o Browser, uma mquina virtual
Java, o driver do dispositivo utilizado pelo usurio(do fabricante) e previamente configurado na
estao e a applet java do Expresso para conversao com o dispositivo criptogrfico.
Esquema da estao do usurio.
Funcionalmente a Applet Java desenvolvida para o expresso ir se comunicar com o driver
do dispositivo criptogrfico instalado na estao e a aplicao expresso.
6$%$& - Ser#idor da aplicao
H necessidade de um conjunto de softwares no ambiente do servidor da aplicao, em conjunto
com os softwares da estao de trabalho, para prover as funcionalidades relativas a utilizao de
certificados digitais.
Como por exemplo de suporte a funcionalidade, podemos citar:
Configuraes especficas no diretrio ldap,
Localizao padro dos drivers dos dispositivos dos usurios nas estaes,
Utilizao de comunicao segura https,
Lista de certificados revogados,
Cadeia de certificados e autoridades certificadoras,
Repositrio de certificados.
6$%$6 +ia-rama
ES4,HIO +E 4R,',"JO
SERK!+OR +E ,P"!C,HIO

6$%$9 - Funcionamento
O processo consiste na cifragem e decifragem. Para a cifragem basicamente no h
complexidade no lado da estao pois ela apenas submete os dados para o servidor, este tratar
de todos o processo de verificao e cifragem retornando para a estao o sucesso ou no da
operao.
J na leitura da mensagem existe a figura da applet que tem o papel de comunicar-se com o
servidor, acessar(estao) o certificado do usurio, requerer o PN e efetuar a decifrao da
mensagem.
J44PS
,P,CJELD#arD///DexpressoM
EXPRESSO
"CR- Certificados Re#o-ados8
/security/crls
Reposit7rio C.a#es PN)licas8
Phpgw_certificados
,C - Cadeia ,utoridades Certificadoras:
/security/cas/todos.cer

,RO5!KOS +e K,"!+,HIO
POS4>RES
"+,P
Certificado do 5surio8
UserCertificate
Pass/ord Cripto-rafada8
Criptpassword
CO@F5>5R,HIO
.ttps8DDexpresso$-o#$)rDsetup
.eader0inc$p.p
6$%$: - Reposit7rio de certificados
Sempre que um usurio receber um email assinado ou criptografado, a chave pblica do
certificado do remetente guardada no banco de dados em uma tabela denominada
Phpgw_certificados, para que seja utilizada quando algum usurio necessitar criptografar um email
destinado a este usurio e portanto fazer uso da chave pblica deste usurio.
Somente podero ser criptografadas mensagens para destinatrios cuja chave se encontre
armazenada no banco de dados.
A tabela repositrio, p.p-/0certificadosP contem os seguintes dados:
6$%$< - Cifrando mensa-ensLEn#ioM
1. No expressoMail, o usurio compe a mensagem, marca o checkbox para cifragem e
submete ao servidor atravs do boto enviar;
2. Ao chegar no servidor, a mensagem tratada da seguinte forma:
1. So recuperados do 'anco de +ados todos os certificados de cada destinatrio
inclusive do remetente;
2. So #erificados todos certificados e caso algum apresente alguma inconformidade a
operao abortada;
3. gerada uma c.a#e comum atravs das chaves pblicas de todos os certificados
recuperados. Essa chave comum permite a decifrao da mensagem atravs da chave
privada de qualquer desses destinatrios da mensagem;
4. A mensagem cifrada usando a chave comum e depois enviada para o servidor de e-
mail;
3. A estao/usurio informada do envio da mensagem.
6$%$= - +ecifrando mensa-ensLRece)imentoM
1. No expressoMail, o usurio clica na mensagem cifrada( ) e a requisio vai at o
servidor;
2. O servidor identifica que se trata de uma mensagem cifrada e envia de volta para a
estao(applet) o corpo da mensagem(cifrada);
3. A applet requisita o certificado digital do usurio e requere o P!@;
4. Validado o PN, a chave privada do certificado do usurio usada para a decifrao da
mensagem;
5. A mensagem decifrada enviada para o servidor e este submete ao MAP para sua
formatao;
6. A mensagem formatada retorna a estao e exi)ida.
OBS: Esse processo vale para a leitura das mensagens cifradas enviadas(Caixa de Enviados) pelo
usurio.
6$& Cliente Ko* so)re !P
6$6 Sincronismo com dispositi#os m7#eis
Com a popularizao de dispositivos mveis tais como celulares, smartphones e PDAs
(Personal Digital Assistant), custos mais baixos tanto dos dispositivos como da infra-estrutura de
acesso a dados, bem como a possibilidade de trafegar dados com segurana so fatores que
contribuem para aumentar a facilidade e velocidade de acesso as informaes. sso do ponto de
vista empresarial quer dizer um aumento de produtividade, e o SERPRO de forma a manter-se
alinhado com essa tendncia vai fornecer o acesso ao Expresso atravs de dispositivos mveis.
A seguir ser descrita a topologia bsica, os padres e nomenclaturas, o modelo de
endereamento e as questes relacionadas segurana, visando orientar o uso do expresso em
dispositivos mveis, permitindo o sincronismo da caixa de email, contatos e agenda em qualquer
lugar onde o acesso a internet estiver disponvel para o dispositivo mvel.
A ferramenta responsvel pelo sincronismo o Funambol, que tem a vantagem de ter o
cdigo aberto, permitindo alteraes e melhorias de acordo com as necessidades do Expresso.
Por usar rede sem fio ou pacotes de dados da telefonia celular, as informaes
esto vulnerveis a sofrer algum tipo de monitoramento, podendo at mesmo ser alteradas
durante o processo de transmisso, portanto o aspecto de segurana tem que ser levado
em conta. Para garantir essa segurana todo trfego tem que ser feito atravs de HTTPS.
O servidor onde ser instalado o Funambol precisa ser instalado de forma que
consiga acessar correio do Expresso, bem como ter permisso de escrita no banco de
dados.
6$6$ Re;uisitos
6$6$% Ser#idor Funam)ol
Funambol-7.0.6
Funambol-psync-1.0.0.s4j
Jre-1.5.0 ou maior
PostgreSql 8.3
6$6$& +ispositi#os M7#eis
Os dispositivos compatveis so:
Dispositivos que suportem o padro SyncML1;
Smartphones clientes, tendo intalado:
Windows Mobile (a partir da verso 5);
Celulares compatveis com java, atendendo aos requisitos:
MDP 2.0;
WMA 1.1;
Heap de pelo menos 800Kb;
Tamanho mximo de download de pelo menos 250Kb

6$6$6 4opolo-ia
A topologia dever ser similar ao do Expresso na nternet, onde ser utilizado o servidor
apache na ZDM que atua como proxy, reencaminhando o pedido de sincronia do dispositivo na
nternet para o servidor Funambol na rede interna. Por segurana toda a comunicao dever ser
feita atravs de HTTPS, na porta 8443.
6$9 Comunicao !nstantQnea
6$: (orRflo/
9 Setup de aplicaSes
9$ $ O#er#ie/
A atualizao de objetos de banco de dados de um mdulo do Expresso baseado
em um procedimento denominado Setup3.
No setup3 do Expresso foram introduzidas novas funcionalidades para instalao ou
update de aplicaes/mdulo. Este set de alteraes permite abstrair a instalao de
aplicaes e se constitui de um processo independente para upgrade de objetos do banco
de dados. sto permite desenvolvedores escreverem um nico conjunto de definio ou
upgrades/updates de tabelas necessrios a aplicao.
O Setup3 permite ao desenvolvedor controlar todo processo de instalao e upgrade
de uma aplicao(mdulo) no Expresso.
9$% $ ,r;ui#os do Setup da aplicao
Os arquivos desta seo esto contidos no diretrio aplicao/setup. Todos os
mdulos devero conter estes arquivos para poderem operar com o Setup3.
9$%$ $ setup$inc$p.p LRe;uiridoM
9$%$$ !nformaSes 'sicas
Os #alores desta seo de#em ser usados por todas as aplicaSes ;ue se
#alerem do Setup& para instalao e up-rade$
A primeira seo a do setup.inc.php e define as informaes bsicas e crticas
a respeito da aplicao, conforme a seo seguinte:
/* Exemoplo : Basic information about this app */
$setup_info['contactcenter']['name'] = 'contactcenter';
$setup_info['contactcenter']['title'] = 'ContactCenter';
$setup_info['contactcenter']['ersion'] = '!"#"$$$';
$setup_info['contactcenter']['app_or%er'] = &;
$setup_info['contactcenter']['enable'] = #;
$setup_info['contactcenter']['author'] = ''aphael (erosso )ereira* +onas ,oes';
$setup_info['contactcenter']['note'] = 'Contact Center is the ne- e,.
a%%ressboo/" 0t mana1es all contacts* companies an% their informations';
$setup_info['contactcenter']['license'] = ',)2';
$setup_info['contactcenter']['%escription'] =
'Contact Center is a mo%ern a%%ressboo/ application that intro%uces a ne- -a3 to ' "
'%o thin1s in the .eb 4pplication .orl%" 0ts /e3 a%anta1es are the possibilit3 to ' "
'mana1e Contacts an% Companies in%epen%entl3" 5sers can access 6 t3pes of catalo1s: ' "
')ersonal 7-hich mana1es people an% companies8* ,lobal 72(4) or (B8 an% 4liens"';
$setup_info['contactcenter']['maintainer'] = ''aphael (erosso )ereira';
$setup_info['contactcenter']['maintainer_email'] =
'raphaelpereira9users"sourcefor1e"net';
TnameT
U usado pelo Expresso, tipicamente na variavel $phpgw_info, como 'currentapp' ou
'app_name'.
TtitleT
Deve ser usado na barra de navegao, no mdulo de admin, nas preferncias, bem
como na prpria aplicao se necessrio.
'#ersionT
Define a verso da aplicao e table code. Este deve ser incrementado Este deve
ser incrementado sempre que voce criar uma nova funo e tipicamente somente para
modificaes em tabelas. Se houverem modificaes substanciais no cdigo voce poder
incrementa-lo tambm. ncremento na verso no uma atividade trivial e deve ter base de
conhecimento para tal.
Tapp0orderT
Determina a ordem da aplicaes no navbar. Se o nmero que voc estabelecer
estiver o mesmo como estabelecido para outro app, o app cujo 'nome' primeiro no
alfabeto ingls pareceria primeiro. Os menores nmeros so exibidos mais perto do fim
superior ou esquerdo do navbar, dependendo do leiaute.
Tena)leT
usado pela AP para determinar se uma aplicao inutilizada, permitida, ou
permitida mas oculta contra o navbar.
A maior parte de aplicaes querero este jogo a um valor de 1 (permitido).
O notifywindow app estabelece isto em 2, que o guarda no navbar.
Permitir de 0 inutilizaria o app por defoult.
H um outro caso especial, 3, que usado principalmente pela prpria AP. Da
perspectiva de setup3, o AP uma aplicao como qualquer outra aplicao.
Estabelecendo a bandeira 'permito' em 3, a AP ainda permitido, mas no ser assinvel a
um usurio como uma verdadeira aplicao. Ser por meio disso oculto contra o admin de
edio de usurio/grupo e aplicao.
9$%$$% !nformaSes de ta)elas
Somente aplicaSes ;ue utili*am ta)elas iro usar esta seo
A prxima sesso dos valores de $setup_info um array definindo todas as tabelas
da aplicao:
/* Exemplo ContactCenter :ables */
$setup_info['contactcenter']['tables'][] = 'php1-_cc_status';
$setup_info['contactcenter']['tables'][] = 'php1-_cc_prefixes';
$setup_info['contactcenter']['tables'][] = 'php1-_cc_suffixes';
$setup_info['contactcenter']['tables'][] = 'php1-_cc_t3peof_ct_rels';
$setup_info['contactcenter']['tables'][] = 'php1-_cc_t3peof_ct_a%%rs';
$setup_info['contactcenter']['tables'][] = 'php1-_cc_t3peof_ct_conns';
$setup_info['contactcenter']['tables'][] = 'php1-_cc_t3peof_co_rels';
$setup_info['contactcenter']['tables'][] = 'php1-_cc_t3peof_co_a%%rs';
$setup_info['contactcenter']['tables'][] = 'php1-_cc_t3peof_co_conns';
$setup_info['contactcenter']['tables'][] = 'php1-_cc_t3peof_co_le1als';
$setup_info['contactcenter']['tables'][] = 'php1-_cc_state';
$setup_info['contactcenter']['tables'][] = 'php1-_cc_cit3';
$setup_info['contactcenter']['tables'][] = 'php1-_cc_a%%resses';
$setup_info['contactcenter']['tables'][] = 'php1-_cc_connections';
$setup_info['contactcenter']['tables'][] = 'php1-_cc_compan3';
$setup_info['contactcenter']['tables'][] = 'php1-_cc_compan3_rels';
$setup_info['contactcenter']['tables'][] = 'php1-_cc_compan3_a%%rs';
$setup_info['contactcenter']['tables'][] = 'php1-_cc_compan3_conns';
$setup_info['contactcenter']['tables'][] = 'php1-_cc_compan3_le1als';
$setup_info['contactcenter']['tables'][] = 'php1-_cc_contact';
$setup_info['contactcenter']['tables'][] = 'php1-_cc_contact_rels';
$setup_info['contactcenter']['tables'][] = 'php1-_cc_contact_a%%rs';
$setup_info['contactcenter']['tables'][] = 'php1-_cc_contact_conns';
$setup_info['contactcenter']['tables'][] = 'php1-_cc_contact_compan3';
$setup_info['contactcenter']['tables'][] = 'php1-_cc_contact_1rps';
$setup_info['contactcenter']['tables'][] = 'php1-_cc_1roups';
9$%$$& JooRs
,l-umas aplicaSes iro usar esta seo$
Hooks so parte do $setup_info e contm uma lista simples de hooks que a
aplicao ir utilizar:
/* The hooks this app includes, needed for hooks registration */
$setup_info['contactcenter']['hooks'][] = 'admin';
$setup_info['contactcenter']['hooks'][] = 'preferences';
$setup_info['contactcenter']['hooks'][] = 'config_validate';
$setup_info['contactcenter']['hooks'][] = 'sidebox_menu';
9$%$$6 +ependncias
4odas as aplicaSes de#em possuir pelo menos uma entrada
No final desta seo h uma lista de uma lista de outras aplicaes que a aplicao
requer para funcionametno:,
$setup_info['addressbook']['depends'][] = array(
'appname' => 'phpgwapi',
'versions' => Array(
'!"!#',
'!"!##',
'!"!#$',
'!"!#%'
&
&'
Esta a configurao standard para funcionamento sob o Expresso.
Basicamente fornece a AP como aplicao necessria e as verses da AP com que
a aplicao compatvel .
Se voc incluir aqui uma aplicao ela somente ser instalada somente se a
aplicao listada j tiver sido instalada
9$%$% ta)les0)aseline$inc$p.p LRecomendadoM
5ma aplicao ;ue re;uerer pelo menos um up-rade ir re;uerer esta seo$
O arquivo tables_baseline representa a mais antiga verso suportada pelas tabelas
da aplicao. Este arquivo usado s no processo de upgrade, e crtico ao seu xito.
Ele contm uma tabela independente de banco de dados, campo, chave e definies de
ndice.
Esta tabela formatada para o uso pelo arquivo de classe
schema_proc_array.inc.php em setup3. Ver a seo tables_update abaixo para mais
detalhe sobre schema_proc, mas por agora, aqui est uma definio de mesa simples neste
formato:
$phpgw_base(ine = array(
'ske(' => array(
'fd' => array(
'ske(_id' => array('type' => 'auto','nu((ab(e' => fa(se&,
'ske(_owner' => array('type' => 'var)har','pre)ision' => $*&,
'ske(_a))ess' => array('type' => 'var)har','pre)ision' => #&,
'ske(_)at' => array('type' => 'int','pre)ision' => +&,
'ske(_des' => array('type' => 'te,t'&,
'ske(_pri' => array('type' => 'int','pre)ision' => +&
&,
'pk' => array('ske(_id'&,
'fk' => array(&,
'i,' => array(&,
'u)' => array(&
&
&'
Este array multi-dimensional contm 1 subarray com 5 subs do seu prprio.
O primeiro array ('skel' em cima) define o nome da tabela.
Abaixo disto so 5 sees,
'fd' para definies de campos,
'pk' para definir chaves primrias,
'fk' para definir chaves estrangeiras,
'ix' para definir campos postos no ndex,
'uc' para definir colunas que necessitam valores nicos.
No exemplo, a tabela 'skel' tem 6 campos (skel_id, skel_owner, skel_access,
skel_cat, skel_des, skel_pri), e 'skel_id' definido tambm como a chave primria .
Este formato foi escolhido como uma soluo para definir tabelas e campos sem
necessidade de manter diferentes arquivos em diferentes databases para definies de
tabelas.
9$%$& ta)les0current$inc$p.p LRecomendadoM
Para todas as aplicaSes com ta)elas$
O arquivo tables_current tem a definio de tabelas atuais e combina com a cadeia
'de verso' em $setup_info bem como o cdigo atual. Este arquivo usado s para novas
instalaes, ou sempre que a aplicao seja retirada e reinstalada.
O formato e o nome do array neste arquivo o mesmo para ao arquivo
tables_baseline enumerado em cima.
De fato, sempre que se deva modificar as definies de tabelas, voc comearia
copiando o arquivo atual para o arquivo tables_baseline. Depois de ter criado as suas
rotinas de upgrade, voc ento recriaria o arquivo atual para combinar com as novas
definies da tabela.
Ex:
$phpgw_baseline = array(
'phpgw_cc_status' => array(
'fd' => array(
'id_status' => array( 'type' => 'int', 'precision' => 2, 'nullable' => false ),
'status_name' => array( 'type' => 'varchar', 'precision' => 30 )
),
'pk' => array( 'id_status' ),
'fk' => array(),
'ix' => array(),
'uc' => array()
),
'phpgw_cc_prefixes' => array(
'fd' => array(
'id_prefix' => array( 'type' => 'int', 'precision' => 2, 'nullable' => false ),
'prefix' => array( 'type' => 'varchar','precision' => 30)
),
'pk' => array('id_prefix'),
'fk' => array(),
'ix' => array(),
'uc' => array()
),
/* Version 2.0 */
'phpgw_cc_groups' => array(
'fd' => array(
'id_group' => array( 'type' => 'auto', 'nullable' => false ),
'title' => array( 'type' => 'varchar', 'precision' => 50 ),
'owner' => array( 'type' => 'int', 'precision' => 8, 'nullable' => false ),
'short_name' => array( 'type' => 'text', 'precision' => 21 ),
),
'pk' => array('id_group'),
'fk' => array(),
'ix' => array(),
'uc' => array()
),
);
9$%$6 ta)les0update$inc$p.p LRecomendadoM
4oda aplicao ;ue re;ueira um up-rade de uma #erso prV#ia de ta)elas$
Este arquivo ser o mais complexo de todos os arquivos do setup com os quais voc
estar trabalhando. Ele conter todas as funes de upgrade capazes de fazer um upgrade
de qualquer verso possvel do seu egroupware app.
Essas rotinas de upgrade rudemente combinam com as velhas funes de upgrade ,
mas o uso de objetos e os mtodos modificaram-se dramaticamente:
WtestXY Z T?$6$T[
function contactcenter_upgrade0_4_1() {
$oProc = $GLOBALS['phpgw_setup']->oProc;
$oProc->DropTable('phpgw_cc_city');
$oProc->DropTable('phpgw_cc_state');
WoProc-CCreate4a)leL
'phpgw_cc_state',array(
'fd' => array(
'id_state' => array( 'type' => 'int', 'precision' => 8, 'nullable' => false),
'id_country' => array( 'type' => 'char', 'nullable' => false, 'precision' => 2),
'state_name' => array( 'type' => 'varchar', 'precision' => 30),
'state_symbol' => array( 'type' => 'varchar', 'precision' => 10)
),
'pk' => array('id_state'),
'fk' => array('id_country' => array('phpgw_common_country_list' => 'id_country')),
'ix' => array(),
'uc' => array()
)
);
WoProc-CCreate4a)leL
'phpgw_cc_city', array(
'fd' => array(
'id_city' => array( 'type' => 'int', 'precision' => 8, 'nullable' => false ),
'id_state' => array( 'type' => 'int', 'precision' => 8 ),
'id_country' => array( 'type' => 'char', 'nullable' => false, 'precision' => 2),
'city_timezone' => array( 'type' => 'int', 'precision' => 2 ),
'city_geo_location' => array( 'type' => 'varchar', 'precision' => 40 ),
'city_name' => array( 'type' => 'varchar', 'precision' => 60, 'nullable' => 'false' ),
),
'pk' => array('id_city'),
'fk' => array('id_state' => array('phpgw_cc_state' => 'id_state') ),
'ix' => array(),
'uc' => array()
)
);
}
$test[] = '1.21';
fun)tion )onta)t)enter_upgrade#_$#(& -
$./01A/2['setup_info'][')onta)t)enter'][')urrentver'] = '$!!''
33 1ug fi,ing for type )ast prob(em 4.25/ version > 6!#! 7ep(a)ing trigger fun)tion8
$./01A/2['phpgw_setup']9>db9>:uery(;<7=A>= 07 7=4/A<= fun)tion share_)ata(og_de(ete(& returns trigger as ';!
;begin if o(d!a)(_appname = '')onta)t)enter'' and o(d!a)(_(o)ation?=''run'' then de(ete from ;!
;phpgw_))_)onta)t_re(s where id_)onta)t=o(d!a)(_(o)ation88bigint and id_re(ated=o(d!a)(_a))ount ;!
;and id_typeof_)onta)t_re(ation=#' end if' return new' end'' (anguage 'p(pgs:(';&'
return $./01A/2['setup_info'][')onta)t)enter'][')urrentver']'
@
$test[] = '2.0.000';
fun)tion )onta)t)enter_upgrade$__(& -
$./01A/2['setup_info'][')onta)t)enter'][')urrentver'] = '$!!#''
$./01A/2['phpgw_setup']9>db9>:uery(;A/>=7 >A1/= phpgw_))_)onta)t AAA <0/BCD web_page )hara)ter varying(#&;&'
$./01A/2['phpgw_setup']9>db9>:uery(;A/>=7 >A1/= phpgw_))_)onta)t AAA <0/BCD )orporate_name )hara)ter
varying(#&;&'
$./01A/2['phpgw_setup']9>db9>:uery(;A/>=7 >A1/= phpgw_))_)onta)t AAA <0/BCD Eob_tit(e )hara)ter varying(+&;&'
$./01A/2['phpgw_setup']9>db9>:uery(;A/>=7 >A1/= phpgw_))_)onta)t AAA <0/BCD department )hara)ter varying(%&;&'
return $./01A/2['setup_info'][')onta)t)enter'][')urrentver']'
@
Esta funo de upgrade simplesmente atualiza o nmero de verso atual. Observe
que no h s uma funo de upgrade, mas tambm a colocao de um valor no $test . O
nome 'test' um remanescente do velho programa de setup. Contudo, este nome deve ser
usado para o processo de upgrade para trabalhar. Antes de cada uma das suas funes de
upgrade, acrescente o valor da verso prvia a $test.
Agora de uma olhada ao nome de funo. O nome importante e deve ser
estruturado como o nome de aplicao e a verso da qual voc est pretendendo fazer um
upgrade. O ' .'s na cadeia de verso substitudo com ' _ '.
n addition to the basic AP db class functions, schema_proc introduces the following
special functions:
Create4a)le8
$phpgw_setup9>o4ro)9><reate>ab(eF(
')ategories', array(
'fd' => array(
')at_id' => array('type' => 'auto','nu((ab(e' => fa(se&,
'a))ount_id' => array('type' => 'int','pre)ision' => +,'nu((ab(e' => fa(se, 'defau(t' => &,
'app_name' => array('type' => 'var)har','pre)ision' => $*,'nu((ab(e' => fa(se&,
')at_name' => array('type' => 'var)har', 'pre)ision' => #*, 'nu((ab(e' => fa(se&,
')at_des)ription' => array('type' => 'te,t', 'nu((ab(e' => fa(se&
&,
'pk' => array(')at_id'&,
'i,' => array(&,
'fk' => array(&,
'u)' => array(&
&
&'
,ddColumn8
$phpgw_setup9>o4ro)9>Add<o(umnF('phpgw_)ategories',')at_a))ess',array('type' => 'var)har', 'pre)ision' =>
$*&&'
,lterColumn8
$phpgw_setup9>o4ro)9>A(ter<o(umnF('phpgw_sessions','session_a)tion',array('type' => 'var)har', 'pre)ision' =>
'$**'&&'
+ropColumn8
$newtb(def = array(
;fd; => array(
'a)(_appname' => array('type' => 'var)har', 'pre)ision' => *&,
'a)(_(o)ation' => array('type' => 'var)har', 'pre)ision' => $**&,
'a)(_a))ount' => array('type' => 'int', 'pre)ision' => +&,
'a)(_rights' => array('type' => 'int', 'pre)ision' => +&
&,
'pk' => array(&,
'i,' => array(&,
'fk' => array(&,
'u)' => array(&
&'
$phpgw_setup9>o4ro)9>Arop<o(umnF('phpgw_a)(',$newtb(def,'a)(_a))ount_type'&'
9$%$9 default0records$inc$p.p LOpcionalM
Para aplicaSes com ta)elas ;ue necessitem carre-ar al-uns #alores como
default$
// enable auto-loading of holidays from localhost by default
$oProc->query("NSERT NTO phpgw_config (config_app, config_name, config_value) VALUES
('phpgwapi','auto_load_holidays','True')");
$oProc->query("NSERT NTO phpgw_config (config_app, config_name, config_value) VALUES
('phpgwapi','holidays_url_path','localhost')");
9$%$: test0data$inc$p.p LOpcionalM
,n2 de#eloper /antin- to test t.e full list of up-rade routines can use t.is file$
test_data.inc.php similar ao default_records above. Ele chamado somente pelo
schematoy.php e nunca instalado com uma nova instalao ou upgrade.Este um arquivo
de desenvolvimento somente. O insert ser aplicvel nas tables_baseline definidas.
9$%$< lan-ua-e files LRe;uiridoM
4odas as aplicaSes de#em ter pelo menos um ar;ui#o de traduo in-lesa a
ser utili*ado pela aplicao em c.amadas lan-LM$
Formato do ar;ui#o8
-phrase@->A1@-appname@->A1@-/AD._<0A=@->A1@-trans(ation@
e!g8
first name )ommon en Girst Dame
first name )ommon de Horname
@ome dos ar;ui#os8
phpgw_-/AD._<0A=@!(ang
e!g!
=ng(ish8 phpgw_en!(ang
.erman8 phpgw_de!(ang
9$& +e#eloper 4ools
9$&$ s;ltoarra2$p.p
Mostra o corrente sc.ema0proc de definio das ta)elas da aplicao$
A aplicao le o status corrente das tabelas do banco de dados e parseia esta
informao segundo a definio para o schema_proc.
A aplicao web l a posio das tabelas atuais no banco de dados. Ele ento
analisa esta informao em um array de definio de tabela de schema_proc.
Ao visitar a app, lhe mostrado uma lista de aplicaes atualmente instaladas e
com suas definies de tabelas . Voc ento pode selecionar uma aplicao/modulo ou
todas. Desta forma voc ento pode carregar de um arquivo tables_current, conveniente.
9$&$% sc.emato2$p.p
Executa um ciclo completo de up-radesP incluindo test0data$
All application tables are dropped.
tables_baseline.inc.php is loaded.
test_data.inc.php is loaded
tables_update.inc.php is loaded.
a full application upgrade test begins.
9$6 O processo de installDup-rade
9$6$ Setup internal up-rade functions
O Setup usa um conjunto de funes para novas instalaes e/ou upgrades.
Esses so implementados como laos de multi-passo. Para uma nica instalao/upgrade
de aplicao/mdulo realizado um nico passo. J para instalao/upgrade de mltiplas
aplicaes, mltiplos passos so feitos automaticamente. A ordem de instalao
determinada pelas dependncias da aplicao. Outro fator de determinao a ordem na
qual os diretrios de aplicao e os arquivos setup.inc.php so lidos no sistema de
arquivos.
9$6$% @o#as instalaSes
9$6$%$ +eteco
Cada execuo do index.php ou applications.php em setup3 executa
primeiramente as rotinas de deteno.Estas rotinas lem os dados em cada arquivo
setup.inc.php, e nas tabelas 'aplications' 'phpgw_applications' como apropriado, e s se
uma dessas tabelas existir. Estes dados so analisados no array $setup_info . Neste caso,
este array contm a informao de todas as aplicaes. Baseado na informao, um
STATUS estabelecido em um dos valores seguintes valores:
U - Upgrade required/available
R - upgrade in pRogress
C - upgrade Completed successfully
D - Dependency failure
F - upgrade Failed
V - Version mismatch at end of upgrade
M - Missing files at start of upgrade (Not used, proposed only)
Usando esta informao, a lgica do setup no em index.php determina em que modo
estamos. O index.php projetado s para 'a Gerncia de Aplicao Simples', que o
Passo 1 do processo de setup.
Para mais manipulao de aplicao, use applications.php, index.php ento diz ao
usurio que
1) as suas aplicaes so atuais
2) algumas das suas aplicaes so fora da sincronizao
3) nenhum db existe, etc.
J que para novas instalaes, todas as aplicaes sero fora da sincronizao, desde que
no h at ento uma tabela 'phpgw_applications' no banco de dados para dizer ao setup
o que Status para qualquer aplicao.
9$6$%$% Selection
No h nenhuma seleo para instalao da aplicao no modo 'nova
instalao'. Todas as aplicaes fisicamente presentes sero instaladas, ou pelo menos
tentadas.
9$6$%$& !nstallation
Uma vez que o usurio do SETUP clicar o boto para instalar todas as aplicaes, o
seguinte ocorre:
O array setup_info passado a funo process_pass (), usando um mtodo ='new'
As aplicaes cujo status flag ='U' (AP no primeiro passo) ento transmitida
funo process_current () . sto trata a incluso e a instalao do arquivo da aplicao
tables_current.inc.php.
A aplicao registrada como uma nova aplicao na tabelaa 'phpgw_applications'.
Se por alguma razo houverem dados nesta tabela desta aplicao, ser atualizada. Os
seus hooks, se houver, so registrados na tabela 'phpgw_hooks'.
Depois, este array passado para funo process_default_records () . Se este
arquivo estiver presente no diretrio do setup da aplicaol, as queries sql aqui so
exetutadas para instalar os dados s tabelas da aplicao.
O loop acima mencionado repetido at que todos os StTATUS de aplicao fiquem
'C'. Contudo, se uma aplicao falha a instalao por alguma razo, ento ser skipada no
seguinte passo.
9$6$& 6$& 5p-rades
9$6$&$ +eteco
S uma diferena de verso da AP provocar um pedido automatizado ao
usurio para fazer um upgrade.
Contudo, se o AP estiver desincronizada, clicando 'Upgrade' em index.php tambm
tentar fazer um upgrade de outras aplicaes que podem estar desincronizadas, tambm.
Como o phpgwapi continua estabilizar-se, sentido que este mtodo do upgrade ficar
menos e menos comum.
9$6$&$% Selection
Dentro de applications.php, uma matriz colorida codificada de aplicao e aes
exibida. Dependendo do STATUS de cada aplicao, certas aes estaro enabled ou
disabled. Essas aes incluem 'install', 'upgrade', 'remove'. Se algo estiver muito errado
com as tentativas de instalar ou fazer um upgrade de uma aplicao, outra coluna chamada
'resoluo' ento ser exibido como link. Este link mostrar informaes adicionais que
seriam teis para determinar como resolver o problema. Assumindo que tudo ocorrera bem,
o usurio pode selecionar aplicaes que necessitam upgrade desta lista. Uma vez
selecionado, o usurio submete e isto dirigido para :
remove
install
upgrade
9$6$&$& 5p-rade
Quando selecionado upgrade de aplicao ocorre o seguinte:
Uma verso stripped down do array de setup_info passado para funo
process_upgrade () . Este array contm s a informao da aplicao selecionada
Na funo process_upgrade (), o arquivo tables_baseline.inc.php da aplicao
carregado.
O arquivo tables_update.inc.php da aplicao carregado
Os contedos do array de teste usado para fazer um loop pela lista inteira de
funes de upgrade da aplicao.
Quando o currentver (installed) fecha com a verso (avaiable), process_upgrade ()
termina, estabelecendo STATUS da app a 'C'.
Somente antes de terminar, a aplicao e os seus hooks so atualizados nas tabelas
'phpgw_applications' e 'phpgw_hooks'.
9$6$6 6$6 5ninstallationDRemo#al
9$6$6$ Selection
A seleo de aplicaes pode ser feita via applications.php, de modo similar ao
upgrade.
9$6$6$% 5ninstallation
Quando uma aplicao selecionada para remoo:
Um verso stripped down do array setup_info passado para funo
process_droptables(). Esta funo retira todas as entradas na tabela da aplicao, mas s
depois de verificar para ver se as tabelas existem.
Os HOOKS da aplicao so desregistrados (retirados de 'phpgw_hooks').
A prpria aplicao desregistrada (retirada de 'phpgw_applications').
9$6$9 MiscelQnias
9$6$9$ ,uto fields
Para campos tipos auto, o schema_proc cria uma seqncia automaticamente
baseada no nome da tabela de bancos de dados que requeiram seqncias. Em caso de
postgresql, o limite deste nome baseado nos nossos testes 31 carateres. O formato de
schema_proc :
$s;e<uence;=2 = sprintf7>C'E4:E ;E=5E?CE se<_@s>* $s:able?ame8;
O limite mximo para tablename 27 carcteres.
9$6$9$% +efault ?
Para campos int, o default de 0 no assumido. Voce deve explicitamente definir o
default na definio da tabela.
$ Referncias
[CEW-LG] SERPRO/CEW Centro de Especializao e nfra-estrutura Web. Logon no
Expresso com uso de Certificado Digital. login_certificado_v1.odt :
<http://10.200.240.220/dotproject/fileviewer.php?
file_id=587&dotproject=3c24a992974410fe813cadb642365365>
[CP-GL] CP-Brasil nfra-estrutura de Chaves Pblicas Brasileiras. Glossrio Completo.
glossario_iti.pdf: <https://www.icpbrasil.gov.br/duvidas/glossario_iti.pdf/view >
[CEW-AD] SERPRO/CEW Centro de Especializao e nfra-estrutura Web. Assinatura
Digital para mensagem de correio eletrnico Expresso.
< http://10.200.240.220/dotproject/fileviewer.php?
file_id=598&dotproject=8125bf72f90b10dc5e1571c9beeb6167 >
[CECD-TK] SERPRO/CECD Centro de Especializao em Certificao Digital. Cartilha de
Orientao para Utilizao de Certificado Digital em Token Criptogrfico .
manual2_item_21_1_1_Cartilha_Procedimentos_Autenticacao_Tokens_V1_1-1.pdf :
<http://10.200.27.8/macromodulo_supac/adm_e_gerencia_de_rl/manual2_item_21_1_1.htm
[CP-AP] CP-Brasil nfra-estrutura de Chaves Pblicas Brasileiras. Apresentao.
<https://www.icpbrasil.gov.br/apresentacao >
[T-M6] T-nstituto Nacional de Tecnologia da nformao. Manual de Condutas Tcnicas.
Volume - Requisitos Materiais Documentos para Softwares de Assinatura. MCT6_Vol_.pdf
<http://www.iti.gov.br/twiki/pub/Homologacao/Documentos/MCT6_Vol_.pdf>
[JAVA-JRE] Java Runtime Environment. Ambinte de execuo do codigo Java Script.
< http://java.sun.com >
Modelo Tecnologico de Sincronia do Expresso com Dispositivos
Moveis_v1.1.pdf SUPT/TCTA/SERPRO- Nauef Murad, Mrcio
Starke
Fic.a 4Vcnica
SERK!HO FE+ER," +E PROCESS,ME@4O +E +,+OS A SERPRO
Diretor Presidente: Marco Vincius Ferreira Mazoni
Diretor Superintendente: Gilberto Paganotto
+!RE4OR!, +E OPER,H\ES
Nivaldo Venncio da Cunha
S5PER!@4E@+]@C!, +E PRO+54OS E SERK!HOS A
,+M!@!S4R,HIO +E ,M'!E@4E +E 4EC@O"O>!, +, !@FORM,HIO A S5PS!
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
DVSO DE XXXXXXXXXXXXXXXXXX
E",'OR,HIO
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy

Você também pode gostar