Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma:



Documentos relacionados
ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

Microsoft Access XP Módulo Um

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão Atualização 26/01/2009 Depto de TI - FASUL Página 1

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

MVC e Camadas - Fragmental Bliki

HIBERNATE EM APLICAÇÃO JAVA WEB

SISTEMA INTEGRADO DE GESTÃO ACADÊMICA

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

Universidade Paulista

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

1 Sumário O Easy Chat Conceitos Perfil Categoria Instalação O Aplicativo HTML...

Engenharia de Requisitos Estudo de Caso

Documento de Arquitetura

OBJETIVO 2 APLICAÇÃO 3 ATRIBUIÇÕES E RESPONSABILIDADES 4 DOCUMENTOS DE REFERÊNCIA 5 TERMINOLOGIA 6 DESCRIÇÃO DO PROCESSO DE GESTÃO DE MUDANÇAS

Guia de Especificação de Caso de Uso Metodologia CELEPAR

CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE

Anexo I Formulário para Proposta

AP_ Conta Aplicativo para digitação e envio de contas médicas no padrão TISS

4 O Workflow e a Máquina de Regras

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

Guia Rápido para Acesso, Preenchimento e Envio Formulário de Cadastro da Empresa e Formulário de Projeto

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

3 Arquitetura do Sistema

Histórico da Revisão. Data Versão Descrição Autor

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

Especificação de Requisitos

Processo de Desenvolvimento de Sites

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

Anexo VI Edital nº 03361/2008. Projeto de Integração das informações de Identificação Civil. 1. Definições de interoperabilidade adotadas pela SENASP

UFG - Instituto de Informática

1. Sistema de cadastramento para empresas NÃO cadastradas (cadastro inicial) 1.1. Links de acesso direto na área de cadastro

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Sistemas Distribuídos

Extrato Financeiro Manual de Usuário 02/05/2012 FAPESP

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

Gerencie a sala de espera e garanta a satisfação dos pacientes

Software de segurança em redes para monitoração de pacotes em uma conexão TCP/IP

3 a Lista de Exercícios

Engenharia de Software III

Manual do usuário - Service Desk SDM - COPASA. Service Desk

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Metodologia de Gerenciamento de Projetos da Justiça Federal

MicroDNS. Armando Adami Zaro Pablo Augusto Lerina Rodrigues. 3 de outubro de 2007

Documento de Análise e Projeto VideoSystem

Projeto SIAC 2.0: Uma aplicação do framework Demoiselle para o desenvolvimento de Sistema de Informações Acadêmicas da UFBA (SIAC)

Sistema de Controle de Solicitação de Desenvolvimento

SISTEMA GERENCIADOR DE BANCO DE DADOS

SISTEMA DE SERVIÇOS DE INFRA-ESTRUTURA DA UFRGS

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto

Processos de Desenvolvimento de Software

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

Disciplina de Banco de Dados Introdução

Manual SAGe Versão 1.2 (a partir da versão )

SISTEMA PATRIMÔNIO WEB

Manual do usuário. v1.0

Documento de Requisitos Projeto SisVendas Sistema de Controle de Vendas para Loja de Informática.

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES

MANUAL DE UTILIZAÇÃO SISTEMA DE CADASTRO INTRANET

Padrões de Projeto WEB e o MVC

IMPLANTAÇÃO DE UM SISTEMA DE AVALIAÇÃO DE DESEMPENHO NA UFG

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Manual do Módulo de PC Online

Manual do Usuário Certificação

Atendimento CREA-RO. Plano de Desenvolvimento de Software. Histórico das Reuniões do Grupo

GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD. Acadêmico: Maicon Klug Orientadora: Joyce Martins

Com relação às áreas de conhecimento de projetos conforme o. PMBoK, julgue os itens subseqüentes.

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

MANUAL DO UTILIZADOR

PREFEITURA MUNICIPAL DO NATAL

Relatório do GPES. Arquitetura Geral do Framework

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

PROCEDIMENTOS PARA A INSTALAÇÃO E UTILIZAÇÃO DO APLICATIVO DE LEILÃO ELETRÔNICO DA CONAB

Documentação EPL - Clientes

Ambiente de Pagamentos

LINGUAGEM DE BANCO DE DADOS

IV PLANO DE GERENCIAMENTO DE TEMPO

SERVICE DESK MANAGER SDM. Manual do Sistema - DPOI

Índice. Para encerrar um atendimento (suporte) Conversa Adicionar Pessoa (na mesma conversa)... 20


Projeto Disciplinar de Infra-Estrutura de Software SISPA FACULDADE SENAC

SISTEMA UNIFICADO DE ADMINISTRAÇÃO PÚBLICA SUAP

paradigma WBC Public - compra direta Guia do Fornecedor paradigma WBC Public v6.0 g1.0

IMPLEMENTAÇÃO DAS CAMADAS Inference Machine e Message Service Element PARA UM SERVIDOR DE SISTEMA DE GERENCIAMENTO DE Workflow HOSPITALAR

2 a Lista de Exercícios

DIMENSIONANDO PROJETOS DE WEB-ENABLING. Uma aplicação da Análise de Pontos de Função. Dimensionando projetos de Web- Enabling

Manual do Contribuidor. Portal de Internet. Projeto: Novo Portal de internet

Manual de Instalação e Utilização Betha Compras AutoCotação

TUTORIAL DE UTILIZAÇÃO. Rua Maestro Cardim, cj. 121 CEP São Paulo - SP (11)

Transcrição:

1 Introdução A utilização de frameworks como base para a construção de aplicativos tem sido adotada pelos desenvolvedores com três objetivos básicos. Primeiramente para adotar um padrão de projeto que estabeleça um modelo único para todos as aplicações, facilitando o seu entendimento pela equipe e torne o processos de desenvolvimento e manutenção menos onerosos. Em segundo para permitir a reutilização de código, reduzindo o tempo de codificação e depuração, resultando em um significativo ganho de produtividade. Por último, porém não menos importante, para direcionar o agrupamento dos diversos componentes das aplicações de acordo com parâmetros claramente definidos, normalmente de acordo com a suas responsabilidades e forma de atuação. A framework PHP desenvolvida e adotada pela Codevasf como ambiente de operação dos sistemas de informação da empresa, é baseada na arquitetura de software MVC (Model View Controller), utilizada em diversos padrões de projeto de software, inclusive em frameworks voltadas para aplicativos WEB. Na arquitetura MVC, Model representa os dados e regras negociais da aplicação, View representa os elementos da interface com o usuário, enquanto Controller atua como um mediador na transferência de dados entre as duas outras camadas. É importante observar que a arquitetura MVC estabelece como os componentes da aplicação interagem, e não apenas como estes estão agrupados nas diversas camadas. Além dos objetivos gerais de utilização de frameworks, o modelo MVC visa dotar as aplicações de um máximo de independência principalmente entre a interface do usuário e o modelo negocial, permitindo que alterações em um acarretem em um mínimo de impacto sobre o outro. Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma: 1. O usuário interage com a interface (preenchendo um campo, acionando um botão, etc); 2. O Controller interpreta o evento da interface do usuário; 3. O Controller aciona o Model, baseado no evento e nos dados recebidos da interface; 4. O Model realiza as operações negociais da aplicação, incluindo a interação com as ferramentas de persistência de dados; 5. A View gera uma interface apropriada, utilizando indiretamente o Model; 6. A interface gerada pela View aguarda nova interação do usuário, iniciando um novo ciclo. O modelo MVC não define explicitamente uma camada de acesso a dados, estando no entanto sub-entendido que estes componentes encontram-se no Model. PHP Framework Ambiente de Sistemas de Informação 1

2 Arquitetura da Framework A framework PHP da Codevasf é desenvolvida utilizando a metodologia de Programação Orientada a Objeto (OOP), de forma que todas as aplicações nela desenvolvidas devem obrigatoriamente seguir este paradigma. Da mesma forma, os componentes destas aplicações devem seguir os padrões estabelecidos pelo modelo, no que se refere ao agrupamento em camadas e nas suas competências. Esta framework adota a seguinte designação para as camadas nas quais os objetos e componentes das aplicações encontram-se agrupados: Apresentação Composta pelos elementos que formam a interface do usuário e responsável pela sua geração e interação com o usuário; Controle Responsável pela interpretação dos eventos disparados pela interface do usuário e pela comunicação de dados entre as camadas de apresentação e negócio; Negócio Detém as regras de negócio da aplicação e conforme acionamento pela camada de controle, interage com a camada de acesso a dados; Acesso a Dados Possui a definição das ferramentas de persistência de dados (estrutura e métodos de banco de dados) e realiza as operações de recuperação e atualização dos dados da aplicação. Outra premissa fundamental da framework refere-se à definição de caso de uso, elemento básico sobre o qual os aplicativos desenvolvidos devem estar organizados. Existe uma associação unívoca entre caso de uso e camada de controle, de forma que um caso de uso é definido pela classe de seu objeto da camada de controle. Desta forma, toda a referência ao aplicativo será efetuada utilizando-se o caso de uso, visto tratar-se da unidade por meio da qual o aplicativo é executado pela framework. Seguindo este padrão de projeto, a cada caso de uso acionado, além do objeto da camada de controle instanciado para o caso de uso, deve também ser instanciado um objeto correspondente à camada de apresentação. Com relação às demais camadas, do ponto de vista da framework, tais objetos não são obrigatórios, tendo em vista a sua específica relação com a funcionalidade do caso de uso e pelo fato de não ocorrer interação direta entre estas camadas e os objetos internos da framework. Na maioria dos casos, no entanto, deverá ser necessário instanciar pelo menos o objeto correspondente à camada de negócio. Assim sendo, a partir deste momento, sempre que forem citados os termos apresentação, controle, negócio e acesso a dados, estes estarão referindo-se aos componentes (classes e objetos) da framework e dos aplicativos, agrupados de acordo com o seu comportamento e pertencentes a estas camadas. PHP Framework Ambiente de Sistemas de Informação 2

Execução dos Casos de Uso Considerando o agrupamento dos componentes nas camadas acima definidas, o fluxo da framework, em linhas gerais, opera da seguinte forma: 1. O usuário interage com a interface (preenchendo um campo, acionando um botão, etc), concluindo a sua interação com um evento associado a uma ação de formulário; 2. A apresentação efetua um tratamento ao evento, de acordo com a ação de formulário recebida e considerando o estado atual, e estabelece um novo estado para o caso de uso; 3. O controle interpreta o evento da interface do usuário de acordo com o estado estabelecido, acionando o negócio, baseado no evento e nos dados recebidos da interface; 4. O negócio realiza as operações negociais da aplicação, interagindo com os componentes de acesso a dados quando estas envolverem persistência de dados; 5. O controle, provê a apresentação com informações recebidas do negócio, por meio de interação com seus componentes, podendo estabelecer novo estado para o caso de uso; 6. A apresentação gera uma interface apropriada, de acordo com o comportamento estabelecido pelo estado atual; 7. A interface gerada pela apresentação aguarda nova interação do usuário, iniciando um novo ciclo. O fluxo apresentado acima, apesar de bastante semelhante àquele descrito anteriormente, possui algumas diferenças importantes. A mais importante delas refere-se ao estado do caso de uso, conceito de fundamental importância para o fluxo do caso de uso como um todo. O estado é uma propriedade da execução do caso de uso, que, como o próprio nome indica, altera o comportamento tanto da apresentação como do controle. O conceito de estado permite, por exemplo, que um mesmo evento acionado pela interface do usuário, resulte em duas ou mais alternativas de comportamento do caso de uso, dependendo do estado em que se encontra o caso de uso. Deve-se observar ainda as diferenças existentes entre o primeiro ciclo de execução do caso de uso e os ciclos seguintes. Métodos e propriedades existentes, em especial nas camadas de apresentação e controle, são tratados de forma diferenciada no primeiro ciclo. Estas diferenças serão apresentadas quando do detalhamento de cada uma destas camadas. Outro ponto importante a ser considerado na construção dos casos de uso refere-se ao modelo de execução transacional ao qual todos os sistemas web estão vinculados. Tal modelo, no qual um ciclo de execução (transação) possui independência de execução e de processamento no servidor, não é adequado à necessidade quase sempre existente nos aplicativos, onde informações tratadas pela aplicação em um ciclo precisam ser utilizadas no ciclo seguinte. A persistência destas informações no ambiente da aplicação deve ser provida pela arquitetura existente, vinculadas à sessão do cliente e à janela de execução do browser. Esta última característica, a qual vincula a execução do cliente à janela do browser, é raríssima nas frameworks e sistemas baseados na tecnologia web, nas quais não é possível a execução simultânea de mais de um caso de uso com a utilização de várias janelas de um mesmo browser por um cliente. Dentre as informações persistidas ao nível do caso de uso estão o estado e o conteúdo dos objetos da camada de apresentação. PHP Framework Ambiente de Sistemas de Informação 3

Acionamento dos Casos de Uso O acionamento dos casos de uso pela framework é realizado por meio de links montados na interface do usuário ou por um caso de uso em execução. Não é possível ao usuário realizar diretamente este acionamento, uma vez que o endereço para acesso ao caso de uso não encontra-se exposto pelo servidor web, como ocorre na maioria das frameworks e soluções de sistemas web existentes. Isto constituise um aspecto importante na segurança na aplicação, pois garante que o acionamento de um caso de uso ocorra apenas se autorizado pela framework, de acordo com o perfil do usuário corrente, nunca por decisão unilateral deste usuário. A referência para acionamento de um caso de uso pela framework é a classe da camada de controle definida para o caso de uso. É responsabilidade do construtor desta classe o instanciamento dos objetos da camada de apresentação e da camada de negócio, tornando-os acessíveis à framework. Cabe ao objeto da camada de negócio, por sua vez, o instanciamento, quando necessário e obedecendo à modelagem de negócio da aplicação, dos demais objetos negociais e de acesso a dados. A duração da vida do caso de uso se estende desde o momento do seu acionamento, independente da origem, até a sua substituição por outro componente no espaço de execução do cliente. Durante todo este tempo as informações persistentes na sessão do cliente são restauradas a cada ciclo de execução. Encadeamento de Casos de Uso Quando o acionamento de um caso de uso é efetuado durante a execução de um outro caso de uso e não por meio do menu apresentado pela estrutura da framework, pode ser desejada pela arquitetura da aplicação a retomada do caso de uso original, após a conclusão do segundo ou subseqüentes casos de uso acionados. Esta situação é implementada pela framework por meio de empilhamento e desempilhamento dos casos de uso conforme o seu acionamento, realizando a restauração do seu estado e de suas propriedades internas no retorno, tornando transparente para a aplicação o processamento ocorrido durante o encadeamento. A pilha de encadeamento dos casos de uso é esvaziada quando ocorre a seleção de qualquer item do menu de funcionalidades disponíveis para o usuário. Além do encadeamento acima descrito, um caso de uso pode ser acionado para execução em uma nova janela do browser, podendo este último, quando do seu encerramento, interagir com o caso do uso de origem. É importante observar que esta interação só é permitida no mesmo ciclo de execução que realizou o acionamento. PHP Framework Ambiente de Sistemas de Informação 4

3 A Persistência da Sessão do Usuário A persistência de informações na sessão do usuário, definida por cada janela do browser do cliente, ocorre em três níveis: Global Vinculada à sessão do usuário; Por Aplicação Vinculada à cada aplicação definida na framework; e Local Vinculada ao tempo de vida do caso de uso. A implementação desta persistência é executada pela framework e disponibilizada para o caso de uso por meio de um objeto da classe FormControl, o qual é instanciado pela framework e tornado disponível por referência à apresentação e ao controle. É também por meio de métodos disponibilizados por este objeto que o caso de uso efetua interações com a framework para além do seu próprio contexto de execução. Estes métodos podem ser agrupados de acordo com a sua funcionalidade, conforme descrito a seguir: Métodos de manipulação das informações da sessão: getapplparameters e setapplparameters Manipula as informações disponíveis no escopo da aplicação à qual o caso de uso pertence; getglobalparameters e setglobalparameters Manipula as informações disponíveis globalmente; setsessionvars Define as informações no escopo do caso de uso. Métodos de controle do fluxo de execução: execute Aciona a execução de um método público de uma aplicação; isauthorized, isconnected, loginuser, logoutuser e refresh Manipula informações referentes ao perfil do cliente; getcurrentprogram, getlastprogram, hasreturn, ispopup, popupreturn, redirect, redirectreturn e redirectsetparameter Trata as informações referentes ao fluxo de execução de casos de uso; getlaststate, getstate e setstate - Outros métodos disponíveis: getuniqueid Retorna uma identificação única; settoolbar Configura a barra de ferramentas. PHP Framework Ambiente de Sistemas de Informação 5