camilo carromeu [email protected]. sumário histórico o framework arquitetura características...
TRANSCRIPT
![Page 2: Camilo Carromeu camilo@carromeu.com. Sumário Histórico O Framework Arquitetura Características Instanciando Conceitos Sistema de Segurança Árvore de Diretórios](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc12a497959413d8ceb47/html5/thumbnails/2.jpg)
Sumário Histórico O Framework Arquitetura Características Instanciando Conceitos
Sistema de SegurançaÁrvore de DiretóriosArquivos de Configuração
Customizando Titan Roadmap
Em DesenvolvimentoFuncionalidades Futuras
Documentação
![Page 3: Camilo Carromeu camilo@carromeu.com. Sumário Histórico O Framework Arquitetura Características Instanciando Conceitos Sistema de Segurança Árvore de Diretórios](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc12a497959413d8ceb47/html5/thumbnails/3.jpg)
Histórico Desenvolvido no Laboratório de Engenharia
de Software (LEDES / DCT / UFMS)Desde 2004, mas somente em meados de 2007
assumiu caráter de um projeto colaborativo Necessidade de um framework em PHP que
possibilitasse reaproveitamento de código e, assim, rápida instanciação de portais institucionais com requisitos semelhantes
Requisito: fácil manutenção e extensibilidade
![Page 4: Camilo Carromeu camilo@carromeu.com. Sumário Histórico O Framework Arquitetura Características Instanciando Conceitos Sistema de Segurança Árvore de Diretórios](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc12a497959413d8ceb47/html5/thumbnails/4.jpg)
Histórico Atualmente é utilizado em diversos projetos do
LEDES e do NIN/UFMS:Projeto Medusa
○ DCT○ DEA○ PROPP○ PREAE○ etc
Escola de ConselhosPAIRProjeto e-SAPIProjeto ColosusSIADetc
![Page 5: Camilo Carromeu camilo@carromeu.com. Sumário Histórico O Framework Arquitetura Características Instanciando Conceitos Sistema de Segurança Árvore de Diretórios](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc12a497959413d8ceb47/html5/thumbnails/5.jpg)
O Framework
O Titan é um framework para geração de CMSs (Content Management Systems)
Possibilita a construção de sistemas CRUD através da simples configuração de XMLs ou de sistemas complexos através do uso de sua API
Reproveitamento de código e de configurações
![Page 6: Camilo Carromeu camilo@carromeu.com. Sumário Histórico O Framework Arquitetura Características Instanciando Conceitos Sistema de Segurança Árvore de Diretórios](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc12a497959413d8ceb47/html5/thumbnails/6.jpg)
Arquitetura: Seções e Ações Conceito lógico de navegação:
Seções: Área com contexto definido.○ Ex.: notícias, agenda, contato, etc
Ações: Define uma ação que pode ser executada em uma seção.○ Ex.: criar, editar, apagar, listar, etc
Seções podem ser organizadas visualmente em um conceito de pais e filhosSeções-falsas (fake) podem ser criadas
![Page 7: Camilo Carromeu camilo@carromeu.com. Sumário Histórico O Framework Arquitetura Características Instanciando Conceitos Sistema de Segurança Árvore de Diretórios](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc12a497959413d8ceb47/html5/thumbnails/7.jpg)
Arquitetura: Componentes e Engines
Define a arquitetura física Código fonte executável que,
devidamente configurado, instancia uma seção
Um componente pode gerar diversas seções similares em uma aplicaçãoXML + Entidades SQL
Componentes estão para seções assim como engines estão para ações
![Page 8: Camilo Carromeu camilo@carromeu.com. Sumário Histórico O Framework Arquitetura Características Instanciando Conceitos Sistema de Segurança Árvore de Diretórios](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc12a497959413d8ceb47/html5/thumbnails/8.jpg)
Arquitetura: Componentes e Engines Dentro do componente, que é uma
pasta, estão as engines Cada engine é um conjunto de 3
arquivosprepareviewcommit
Objetivo: separar a visualização da camada de negócios (MVC)
![Page 9: Camilo Carromeu camilo@carromeu.com. Sumário Histórico O Framework Arquitetura Características Instanciando Conceitos Sistema de Segurança Árvore de Diretórios](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc12a497959413d8ceb47/html5/thumbnails/9.jpg)
Arquitetura
Núcleo (Core) independente e imutável em função de instânciasDesenvolvimento e aprimoramento
constante, mas legado Repositório:
1. Componentes
2. Tipos
3. Templates de código
4. Skins
5. Packages
![Page 10: Camilo Carromeu camilo@carromeu.com. Sumário Histórico O Framework Arquitetura Características Instanciando Conceitos Sistema de Segurança Árvore de Diretórios](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc12a497959413d8ceb47/html5/thumbnails/10.jpg)
Arquitetura
Camada de PersistênciaCamada de Persistência
Repositóriode Componentes
Repositóriode TiposCamada de
Segurança
Núcleo Repositório
Log Chat
CV Skins
Gráficos RSS
![Page 11: Camilo Carromeu camilo@carromeu.com. Sumário Histórico O Framework Arquitetura Características Instanciando Conceitos Sistema de Segurança Árvore de Diretórios](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc12a497959413d8ceb47/html5/thumbnails/11.jpg)
Arquitetura
XMLXML
Camada de PersistênciaCamada de Persistência
Repositóriode Componentes
Repositóriode TiposCamada de
Segurança
Núcleo Repositório
SQL
Log Chat
CV Skins
Gráficos RSS
![Page 12: Camilo Carromeu camilo@carromeu.com. Sumário Histórico O Framework Arquitetura Características Instanciando Conceitos Sistema de Segurança Árvore de Diretórios](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc12a497959413d8ceb47/html5/thumbnails/12.jpg)
Arquitetura
XMLXML
XMLXML
Camada de PersistênciaCamada de Persistência
Repositóriode Componentes
Repositóriode TiposCamada de
Segurança
Núcleo Repositório
SQL SQL
Log Chat
CV Skins
Gráficos RSS
![Page 13: Camilo Carromeu camilo@carromeu.com. Sumário Histórico O Framework Arquitetura Características Instanciando Conceitos Sistema de Segurança Árvore de Diretórios](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc12a497959413d8ceb47/html5/thumbnails/13.jpg)
Arquitetura
XMLXML
XMLXML
XMLXMLCamada de PersistênciaCamada de Persistência
Repositóriode Componentes
Repositóriode TiposCamada de
Segurança
Núcleo Repositório
SQL SQL SQL
Log Chat
CV Skins
Gráficos RSS
![Page 14: Camilo Carromeu camilo@carromeu.com. Sumário Histórico O Framework Arquitetura Características Instanciando Conceitos Sistema de Segurança Árvore de Diretórios](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc12a497959413d8ceb47/html5/thumbnails/14.jpg)
Características Listas com:
BuscaPaginaçãoOrdenação
Sistema de upload de arquivos completo Criação de páginas ricas (FCK) RSS para monitoramento Sistema de Cache (XMLs parseados) Chat Gráficos quantitativos automáticos Uso extensivo de XML
Cache para performance
![Page 15: Camilo Carromeu camilo@carromeu.com. Sumário Histórico O Framework Arquitetura Características Instanciando Conceitos Sistema de Segurança Árvore de Diretórios](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc12a497959413d8ceb47/html5/thumbnails/15.jpg)
Características
Controle de versões Criação de repositórios privados
Permite a criação de seus próprios componentes, tipos e templates
Sistema de alertas Sistema de Log Ajax Totalmente OO (PHP 5) Lançamento de exceções para controle
de regras de negócios, validação e erros
![Page 16: Camilo Carromeu camilo@carromeu.com. Sumário Histórico O Framework Arquitetura Características Instanciando Conceitos Sistema de Segurança Árvore de Diretórios](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc12a497959413d8ceb47/html5/thumbnails/16.jpg)
Instanciando Para tudo! Instanciando sua primeira
aplicação:1. Criar uma pasta no seu “htdocs” do Apache
2. Criar as seguintes pasta dentro desta:○ core/○ repos/○ file/○ cache/
3. Fazer checkout do núcleo do Titan na pasta “core”:
○ https://service.ledes.net/svn/architect/core/
4. Repetir o procedimento para o repositório do Titan na pasta “repos”:
○ https://service.ledes.net/svn/architect/repository
![Page 17: Camilo Carromeu camilo@carromeu.com. Sumário Histórico O Framework Arquitetura Características Instanciando Conceitos Sistema de Segurança Árvore de Diretórios](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc12a497959413d8ceb47/html5/thumbnails/17.jpg)
Instanciando
5. Exportar código-base para a pasta criadao https://service.ledes.net/svn/architect/repository/
component/architect.creator/_base/basic/
6. Criar BD a partir do db.sql do código-base
7. Editar o arquivo “configure/titan.xml” de acordo com as configurações locais
8. Executar a instância:o http://localhost/my_instance/titan.phpo Criação de cache (necessita de internet)o Login: admin / Senha: admino Configuração de grupos e permissões
![Page 18: Camilo Carromeu camilo@carromeu.com. Sumário Histórico O Framework Arquitetura Características Instanciando Conceitos Sistema de Segurança Árvore de Diretórios](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc12a497959413d8ceb47/html5/thumbnails/18.jpg)
Conceito: Sistema de Segurança Controle de navegação Tipos de usuários:
Definição de metadados de usuários Grupos de usuários:
Recebem permissõesUsuários herdam as permissões por união de
conjuntos de todos os grupos aos quais estão vinculados
Administrador (conceito): usuários pertencentes a algum grupo administrador possuem acesso irrestrito às seções marcadas com admin=“true” no business.xml
![Page 19: Camilo Carromeu camilo@carromeu.com. Sumário Histórico O Framework Arquitetura Características Instanciando Conceitos Sistema de Segurança Árvore de Diretórios](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc12a497959413d8ceb47/html5/thumbnails/19.jpg)
Conceito: Árvore de Diretórios Diretórios e arquivos:
Configuração (mandatório): configure/Seções (mandatório): section/Upload: file/Cache: cache/Inicializador: titan.php
Banco de Dados:Colunas mandatóriasTrabalhando com esquemas
![Page 20: Camilo Carromeu camilo@carromeu.com. Sumário Histórico O Framework Arquitetura Características Instanciando Conceitos Sistema de Segurança Árvore de Diretórios](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc12a497959413d8ceb47/html5/thumbnails/20.jpg)
Conceito:Arquivos de Configuração
Configuração Geral:Principal: titan.xmlCamada de negócios: business.xmlTipos de usuários: security.xmlArquivos aceitos (upload): archive.xml
Configuração de Seções:config.inc.xmlFormulários (padrão)
![Page 21: Camilo Carromeu camilo@carromeu.com. Sumário Histórico O Framework Arquitetura Características Instanciando Conceitos Sistema de Segurança Árvore de Diretórios](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc12a497959413d8ceb47/html5/thumbnails/21.jpg)
Customizando a Aplicação Básico
Instanciando seçõesInstanciando açõesInstanciando tipos de usuários
AvançadoImplementando componentes
○ Diretórios: _script, _menu, _icon, _resource, _i18n
Implementando engines (motores)Implementando tipos
![Page 22: Camilo Carromeu camilo@carromeu.com. Sumário Histórico O Framework Arquitetura Características Instanciando Conceitos Sistema de Segurança Árvore de Diretórios](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc12a497959413d8ceb47/html5/thumbnails/22.jpg)
Em Desenvolvimento
LocaleInternacionalization (i18n)Localization (l10n)
Sistema de Log (SQLite) Titan Desktop Sistema de Atualização (Subversion) Suporte a pacotes PHAR Titan Architect Wizard Centauro (Pantaneiro)
![Page 23: Camilo Carromeu camilo@carromeu.com. Sumário Histórico O Framework Arquitetura Características Instanciando Conceitos Sistema de Segurança Árvore de Diretórios](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc12a497959413d8ceb47/html5/thumbnails/23.jpg)
Novas Funcionalidades
Geração de cache HTML Interoperabilidade de instâncias através
de webservices Titan Mobile Sistema de busca global (Lucene) Suporte a bibliotecas JAR API para uso externo Integração do PHPDocumentor
![Page 24: Camilo Carromeu camilo@carromeu.com. Sumário Histórico O Framework Arquitetura Características Instanciando Conceitos Sistema de Segurança Árvore de Diretórios](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc12a497959413d8ceb47/html5/thumbnails/24.jpg)
Documentação
Wiki do Titan em http://wiki.ledes.net/ Paradigma de desenvolvimento de
software livre: baseado no conceito de comunidade
Lista de discussão:http://groups.google.com.br/group/titan-framework
![Page 25: Camilo Carromeu camilo@carromeu.com. Sumário Histórico O Framework Arquitetura Características Instanciando Conceitos Sistema de Segurança Árvore de Diretórios](https://reader035.vdocuments.net/reader035/viewer/2022062512/552fc12a497959413d8ceb47/html5/thumbnails/25.jpg)
“Nada melhor do que um programador preguiçoso. Você usa
coisas que já estão prontas e tudo fica mais simples”Vinton Cerf
Evangelista-chefe de internet do Google.