A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Camilo Carromeu camilo@carromeu.com Semana Acadêmica de Sistemas de Informação 2008.

Apresentações semelhantes


Apresentação em tema: "Camilo Carromeu camilo@carromeu.com Semana Acadêmica de Sistemas de Informação 2008."— Transcrição da apresentação:

1 Camilo Carromeu camilo@carromeu.com
Semana Acadêmica de Sistemas de Informação 2008

2 Sumário Histórico O Framework Arquitetura Características Instanciando
Conceitos Sistema de Segurança Árvore de Diretórios Arquivos de Configuração Customizando Titan Roadmap Em Desenvolvimento Funcionalidades Futuras Documentação

3 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

4 Histórico Atualmente é utilizado em diversos projetos do LEDES e do NIN/UFMS: Projeto Medusa DCT DEA PROPP PREAE etc Escola de Conselhos PAIR Projeto e-SAPI Projeto Colosus SIAD

5 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

6 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 filhos Seções-falsas (fake) podem ser criadas

7 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ção XML + Entidades SQL Componentes estão para seções assim como engines estão para ações

8 Arquitetura: Componentes e Engines
Dentro do componente, que é uma pasta, estão as engines Cada engine é um conjunto de 3 arquivos prepare view commit Objetivo: separar a visualização da camada de negócios (MVC)

9 Arquitetura Núcleo (Core) independente e imutável em função de instâncias Desenvolvimento e aprimoramento constante, mas legado Repositório: Componentes Tipos Templates de código Skins Packages

10 Arquitetura Log Chat CV Skins RSS Núcleo Repositório Gráficos
de Tipos Camada de Segurança Núcleo Repositório Log Chat CV Skins Gráficos RSS Camada de Persistência Repositório de Componentes

11 Arquitetura Log Chat CV Skins RSS Núcleo Repositório XML Gráficos
de Tipos Camada de Segurança Núcleo Repositório Log Chat XML CV Skins Gráficos RSS Camada de Persistência Repositório de Componentes SQL

12 Arquitetura Log Chat CV Skins RSS Núcleo Repositório XML XML Gráficos
de Tipos Camada de Segurança Núcleo Repositório Log Chat XML CV Skins XML Gráficos RSS Camada de Persistência Repositório de Componentes SQL SQL

13 Arquitetura Log Chat CV Skins RSS Núcleo Repositório XML XML Gráficos
de Tipos Camada de Segurança Núcleo Repositório Log Chat XML CV Skins XML Gráficos RSS XML Camada de Persistência Repositório de Componentes SQL SQL SQL

14 Características Listas com: Sistema de upload de arquivos completo
Busca Paginação Ordenaçã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

15 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

16 Instanciando Para tudo! Instanciando sua primeira aplicação:
Criar uma pasta no seu “htdocs” do Apache Criar as seguintes pasta dentro desta: core/ repos/ file/ cache/ Fazer checkout do núcleo do Titan na pasta “core”: Repetir o procedimento para o repositório do Titan na pasta “repos”:

17 Instanciando Exportar código-base para a pasta criada
Criar BD a partir do db.sql do código-base Editar o arquivo “configure/titan.xml” de acordo com as configurações locais Executar a instância: Criação de cache (necessita de internet) Login: admin / Senha: admin Configuração de grupos e permissões

18 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ões Usuá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

19 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órias Trabalhando com esquemas

20 Conceito: Arquivos de Configuração
Configuração Geral: Principal: titan.xml Camada de negócios: business.xml Tipos de usuários: security.xml Arquivos aceitos (upload): archive.xml Configuração de Seções: config.inc.xml Formulários (padrão)

21 Customizando a Aplicação
Básico Instanciando seções Instanciando ações Instanciando tipos de usuários Avançado Implementando componentes Diretórios: _script, _menu, _icon, _resource, _i18n Implementando engines (motores) Implementando tipos

22 Em Desenvolvimento Locale Sistema de Log (SQLite) Titan Desktop
Internacionalization (i18n) Localization (l10n) Sistema de Log (SQLite) Titan Desktop Sistema de Atualização (Subversion) Suporte a pacotes PHAR Titan Architect Wizard Centauro (Pantaneiro)

23 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

24 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:

25 “Nada melhor do que um programador preguiçoso
“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.


Carregar ppt "Camilo Carromeu camilo@carromeu.com Semana Acadêmica de Sistemas de Informação 2008."

Apresentações semelhantes


Anúncios Google