camilo carromeu [email protected]. sumário histórico o framework arquitetura características...

25
Camilo Carromeu [email protected] SEMANA ACADÊMICA DE SISTEMAS DE INFORMAÇÃO 2008

Upload: internet

Post on 18-Apr-2015

106 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Camilo Carromeu camilo@carromeu.com. Sumário Histórico O Framework Arquitetura Características Instanciando Conceitos Sistema de Segurança Árvore de Diretórios

Camilo Carromeu

[email protected]

SEMANA ACADÊMICA DE SISTEMAS DE INFORMAÇÃO 2008

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

“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.