999 resultados para Programação orientada a componentes e serviços
Resumo:
Dissertação apresentada para obtenção do Grau de Doutor em Informática pela Universidade Nova de Lisboa,Faculdade de Ciências e Tecnologia
Resumo:
Neste trabalho foi considerada a possibilidade de incorporar serviços remotos, normalmente associados a serviços web e cloud computing, numa solução local que centralizasse os vários serviços num único sistema e permitisse aos seus utilizadores consumir e configurar os mesmos, quer a partir da rede local, quer remotamente a partir da Internet. Desta forma seria possível conciliar o acesso a partir de qualquer local com internet, característico nas clouds, com a simplicidade de concentrar num só sistema vários serviços que são por norma oferecidos por entidades distintas e ainda permitir aos seus utilizadores o controlo e configuração sobre os mesmos. De forma a validar que este conceito é viável, prático e funcional, foram implementadas duas componentes. Um cliente que corre nos dispositivos dos utilizadores e que proporciona a interface para consumir os serviços disponíveis e um servidor que irá conter e prestar esses serviços aos clientes. Estes serviços incluem lista de contactos, mensagens instantâneas, salas de conversação, transferência de ficheiros, chamadas e conferências de voz e vídeo, pastas remotas, pastas sincronizadas, backups, pastas partilhadas, VoD (Video-on Demand) e AoD (Audio-on Demand). Para o desenvolvimento do cliente e do servidor foi utilizada a framework Qt que recorre à linguagem de programação C++ e ao conjunto de bibliotecas que possui, para o desenvolvimento de aplicações multiplataforma. Para as comunicações entre clientes e servidor, foi utilizado o protocolo XMPP (Extensible Messaging and Presence Protocol), pela forma da biblioteca qxmpp e do servidor XMPP ejabberd. Pelo facto de conter um conjunto de centenas de extensões atualmente ativas que auferem funcionalidades como salas de conversação, transferências de ficheiros e até estabelecer sessões multimédia, graças à sua flexibilidade permitiu ainda a criação de extensões personalizada necessárias para algumas funcionalidades que se pretendeu implementar. Foi ainda utilizado no servidor a framework ffmpeg para suportar algumas funcionalidades multimédia. Após a implementação do cliente para Windows e Linux, e de implementar o servidor em Linux foi realizado um conjunto de testes funcionais para perceber se as funcionalidades e seus mecanismos funcionam corretamente. No caso onde a análise da performance e do consumo de recursos era importante, foram realizados testes de performance e testes de carga.
Resumo:
Apresenta-se neste trabalho pesquisa científica que levou à modelagem de um sistema de informação para o registro de dados de rastreabilidade destinado à indústria do vinho, segundo os conceitos de uma arquitetura computacional orientada a serviços (service oriented architecture, SOA). Desde 2005, a manutenção de tais registros é obrigatória para todos os produtores que pretendem exportar para países da União Europeia. Ademais, os consumidores finais, inclusive brasileiros, preocupados com a segurança alimentar, apresentam demanda crescente por informações. Buscou-se uma solução que contemple a indústria coletivamente, por meio de consórcios ou associações de produtores, diluindo custos e compartilhando benefícios. A partir do levantamento bibliográfico realizado e de contatos com pesquisadores e representantes do setor produtivo vinícola brasileiro, em Bento Gonçalves -RS, pesquisaram-se tópicos de tecnologia da informação ligados ao tema, além de detalhes sobre o processo produtivo do vinho. A partir de um modelo do processo produtivo do vinho sugerido pelos autores, empregou-se a Unified Modeling Language (UML), para a modelagem do sistema, que utiliza a tecnologia de web services para o tráfego de dados. Com um protótipo funcional, constataram-se a viabilidade do modelo e a possibilidade de sua utilização em outros domínios.
Resumo:
Independentemente do modelo de programação adotado, no projeto e implementação de aplicações de alta disponibilidade, faz-se necessário usar procedimentos de tolerância a falhas. Dentre as atividades que trazem consigo interesse de pesquisa na área de Tolerância a Falhas, estão os mecanismos de recuperação em um sistema computacional. Do ponto de vista prático, estes mecanismos buscam manter próximo do mínimo o tempo total de execução de aplicações computacionais de longa duração, ao mesmo tempo em que as preparam para não sofrerem perdas significativas de desempenho, em caso de falhas. Paralelamente à evolução dos sistemas computacionais, foi possível observar também a evolução das linguagens de programação, principalmente as que utilizam o paradigma orientado a objetos. O advento da área de tolerância a falhas na orientação a objetos resultou em novos problemas na atividade de recuperação quanto aos mecanismos de salvamento de estados e retomada da execução, principalmente no que se refere às dificuldades de gerenciamento e controle sobre a alocação de objetos. Entretanto, observa-se que a complexidade de implementação dos mecanismos de recuperação, por parte dos programadores, exige deles conhecimentos mais especializados para o salvamento dos estados da aplicação e para a retomada da execução. Portanto, a simplificação do trabalho do programador, através do uso de uma biblioteca de checkpointing que implemente os mecanismos de salvamento de estados e recuperação é o ponto focal deste trabalho. Diante do contexto exposto, nesta dissertação, são definidas e implementadas as classes de uma biblioteca que provê mecanismos de checkpointing e recuperação. Esta biblioteca, denominada de Libcjp, visa aprimorar o processo de recuperação de aplicações orientadas a objetos escritas na linguagem de programação Java. Esta linguagem foi escolhida para implementação devido à presença dos recursos de persistência e serialização. Para a concepção do trabalho, são considerados ambos os cenários no paradigma orientado a objetos: objetos centralizados e distribuídos. São utilizados os recursos da API de serialização Java e a tecnologia Java RMI para objetos distribuídos. Conclui-se o trabalho com a ilustração de casos de uso através de diversos exemplos desenvolvidos a partir de seus algoritmos originais inicialmente, e incrementados posteriormente com os mecanismos de checkpointing e recuperação. Os componentes desenvolvidos foram testados quanto ao cumprimento dos seus requisitos funcionais. Adicionalmente, foi realizada uma análise preliminar sobre a influência das ações de checkpointing nas características de desempenho das aplicações.
Resumo:
Computação Móvel é um termo genérico, ainda em definição, ao redor do qual se delineia um espectro de cenários possíveis, desde a Computação Pessoal, com o uso de computadores de mão, até a visão futurista da Computação Ubíqua. O foco do projeto ISAM (Infra-estrutura de Suporte às Aplicações Móveis Distribuída), em desenvolvimento no II/UFRGS, é a Pervasive Computing. Esta desenha um cenário onde o usuário é livre para se deslocar mantendo o acesso aos recursos da rede e ao seu ambiente computacional, todo tempo em qualquer lugar. Esse novo cenário apresenta muitos desafios para o projeto e execução de aplicações. Nesse escopo, esta tese aprofunda a discussão sobre questões relativas à adaptação ao contexto em um ambiente pervasivo sob a ótica de uma Linguagem de Programação, e define uma linguagem chamada ISAMadapt. A definição da linguagem ISAMadapt baseia-se em quatro abstrações: contexto, adaptadores, políticas e comandos de adaptação. Essas abstrações foram concretizadas em duas visões: (1) em tempo de programação, através de comandos da linguagem e arquivos de configuração, descritos com o auxílio do Ambiente de Desenvolvimento de Aplicações; (2) em tempo de execução, através de serviços e APIs fornecidos pelos componentes que integram o ambiente de execução pervasiva (ISAMpe). Deste, os principais componentes que implementam a semântica de execução da aplicação ISAMadapt são: o serviço de reconhecimento de contexto, ISAMcontextService, e a máquina de execução da adaptação dinâmica, ISAMadaptEngine.As principais contribuições desta tese são: (a) primeira linguagem para a codificação de aplicações pervasivas; (b) sintaxe e semântica de comandos para expressar sensibilidade ao contexto pervasivo; (c) fonte para o desenvolvimento de uma metodologia de projeto de aplicações pervasivas; (d) projeto ISAM e o projeto contextS (www.inf.ufrgs.br/~isam) que fornecem suporte para o ciclo de vida das aplicações, desde o desenvolvimento até a execução de aplicações pervasivas.
Resumo:
Novas tecnologias têm sido investigadas como soluções alternativas ao protocolo de gerenciamento de redes padrão, o SNMP. Nesse cenário, a tecnologia de Web Services (WS) vem se tornando bastante promissora, mas imaginar que ela irá substituir de imediato o SNMP não é uma abordagem factível, pois é provável que o SNMP continue sendo utilizado nos dispositivos de rede por um bom tempo. Além disso, os WS são recentes, necessitando maiores investigações com respeito a utilização no gerenciamento de redes. As atuais investigações realizadas comparam os WS com o SNMP em casos genéricos, não levando em consideração casos especí cos de gerenciamento. Nesse contexto, esta dissertação apresenta o desenvolvimento e a avaliação de duas implementações baseadas em WS, desenvolvidas no especí co contexto do gerenciamento distribuído por delega- ção e tendo a MIB Script, de nida pelo IETF, como base de desenvolvimento. A primeira implementação consiste na construção de um novo tipo de gateway WS para SNMP, denominado gateway em nível de serviço, que caracteriza-se por ser construído baseado nos serviços que um determinado módulo de MIB oferece. Isso proporciona um grau maior de abstração, na visão do gerente WS, na manipulação dos agentes SNMP e, também, diminui o número de mensagens trocadas entre o gerente WS e o gateway desenvolvido. A segunda implementação realiza a total substituição do SNMP no gerenciamento dos dispositivos, permitindo, com isso, um gerenciamento de redes completamente baseado em Web Services. A implementação consistiu na construção de um novo tipo de agente, denominado por agente orientado a serviços baseado em Web Services, ou apenas agente WS. O agente WS desenvolvido possui as mesmas características que o gateway em ní- vel de serviço, diferindo apenas na não utilização de SNMP no caso do agente WS. O gerenciamento das duas implementações é realizado através de um módulo desenvolvido e incorporado ao ambiente de gerenciamento de redes QAME. Esse módulo manipula as duas implementações da mesma maneira, uma vez que os serviços oferecidos por elas possuem a mesma interface de acesso. A avaliação realizada consistiu na comparação entre as duas implementações desenvolvidas neste trabalho e outras duas soluções de gerenciamento investigadas: o gateway em nível de objeto e uma implementação da MIB Script, denominada Jasmin. Os parâmetros de avaliação utilizados nas comparações foram o tráfego gerado e o tempo de resposta percebido. Como será visto ao nal, os resultados das comparações realizadas no caso especí co do gerenciamento por delega- ção são diferentes daqueles apresentados em investigações mais genéricas. Além disso, as duas implementações desenvolvidas neste trabalho demonstraram serem promissoras, apresentando resultados bastante satisfatórios com relação aos parâmetros avaliados.
Resumo:
Este trabalho tem por objetivo analisar como a adoção de três componentes tecnológicos pode aumentar a integração, eficiência e qualidade do processo de check-in de passageiros no aeroporto internacional de Guarulhos, que atende a cidade de São Paulo. Após uma introdução sobre a relevância do tema, e tendo por base os casos de Las Vegas McCarran e Londres Heathrow – Terminal 5, foi feita uma revisão do referencial teórico para explicitar as características identificadas. A abordagem metodológica eleita foi o estudo de caso-único, resultando na definição de quatro categorias de pesquisa: modularidade, customização massificada, o redesenho da cadeia de negócios através quarto nível de integração por meio de TI, e aceitação dos serviços de auto-atendimento pelos passageiros. Em seguida, foi feito um contraponto entre dados secundários globais para as categorias de pesquisa definidas e dados relativos ao aeroporto internacional de Guarulhos. Na conclusão é feita uma análise para cada categoria de pesquisa, bem como sugeridos novos itens para pesquisas futuras.
Resumo:
A Customização em massa é um conceito emergente na indústria orientada a fornecer produtos e serviços customizados através de processos flexíveis, em grandes volumes e a custos razoavelmente baixos. A customização de produtos é uma estratégia chave para conseguir a satisfação do cliente com produtos exclusivos e preços razoáveis. Este trabalho de tese propõe um modelo de customização de produtos para facilitar o projeto e colaboração do cliente no processo de selecionar a configuração de um produto. O modelo integra as técnicas de modelagem orientada a objetos, análise de decisão multi-atributo e programação linear inteira. O objetivo do modelo é dar suporte à customização de produtos/serviços, em que as escolhas do cliente são gerenciadas pela relevância relativa de um conjunto de atributos sobre um conjunto de combinações de componentes oferecidas pela empresa, e com a limitação de restrições técnicas, estéticas e financeiras, que definem interativamente projetistas e consumidores. A integração das técnicas resulta em uma representação do processo de configuração que considera, simultaneamente, a abordagem técnica, explícita e objetiva dos projetistas e a abordagem baseada em intenções e preferências do consumidor. Com o modelo desenvolvido, o cliente pode definir regras e fornecer informação que pode ser utilizada para representar o conhecimento tácito em um modelo de programação linear que otimiza a sua utilidade específica. O modelo computacional é capaz de implementar o processo cognitivo que caracteriza a configuração de produtos em um ambiente de customização em massa de forma explícita, dinâmica e flexível. Experimentos foram realizados para exemplificar como é utilizado o programa e um estudo de caso foi desenvolvido para validar o modelo.
Resumo:
Este trabalho pretende contribuir com questões relacionadas ao planejamento e programação de operações de prestação de serviços. Seu enfoque é nos bastidores das operações de serviços, onde ocorre o fluxo de materiais e são observadas características similares às da manufatura. Ainda assim, algumas características específicas das operações de serviços influenciam o processo a ser planejado. O tema desta dissertação consiste na definição de um método de planejamento e programação das operações dos bastidores de empresas prestadoras de serviço. Este método engloba conceitos utilizados tanto na manufatura quanto nos serviços. Na etapa inicial do trabalho, é apresentada uma revisão bibliográfica sobre planejamento da produção na manufatura, planejamento da prestação de serviços e gerenciamento de projetos. Na etapa seguinte, apresenta-se um método de planejamento e programação para operações dos bastidores de empresas prestadoras de serviço. A etapa final apresenta a validação prática do método proposto em uma empresa do setor elétrico que atua no segmento de distribuição de energia.
Resumo:
T he people’s daily lives are surrounded by computing devices, with increasing resources (sensors) and, with increasing processing. How these devices communicate is still not natural and This retards the growth of Ubiquitous Computing. This paper presents a way in which these devices can communicate using Jini technology and concepts of Service Oriented Architecture, applying these concepts in a test case of Ubiquitous Computing. To conduct the test case was constructed a fictitious system for management of a soccer championship, where users can interact with each other and with the system in a simplified way, have access to data in real time of the championship during the event. This communication is performed by services built using Jini technology, which were based on key SOA concepts, such as modularity and reusability
Resumo:
O conceito de empreendedorismo tem vindo, progressivamente, a ganhar espaço na comunidade académica como campo de estudo (de aplicação global, muito ligado à criação de riqueza, independência e realização pessoal (Miner, 1997)) sendo que, no entanto, as interpretações em seu redor continuem fragmentadas e sem que haja uma definição universal. O trabalho de reflexão, aqui proposto, procura reunir e apresentar os principais aspectos inerentes ao empreendedorismo bem como dissecar o seu processo através de um quadro denominado 4-P framework: pioneer (pioneiro, no qual o empreendedor é um inovador ou campeão da inovação), perspective (perspectiva, denotando o espírito empreendedor), practice (prática, como símbolo das actividades empreendedoras) e performance (desempenho, indicando o outcome ou resultado das acções e actividades empreendedoras). O estudo tem, como propósito, proporcionar uma melhor compreensão no que concerne à essência do empreendedorismo: fundamentos teóricos e implicações práticas (Ma & Tan, 2006) numa óptica de turismo. O empreendedorismo é tido como uma força central do desenvolvimento económico, na medida em que serve de veículo para a inovação e mudança. Sendo o turismo um dos sectores económicos em que o grau de envolvimento é necessário para o seu sucesso, a diversificação de produtos e serviços turísticos torna-se uma exigência capaz de conduzir ao aumento da procura de novos tipos de necessidades em turismo incluindo, também, oportunidades para um turismo mais sustentável (Lordkipanidze, Brezet & Backman, 2005). No que toca à metodologia aqui utilizada, trata-se de um artigo conceptual, com revisão de literatura que reúna os componentes principais do empreendedorismo e suas implicações numa perspectiva turística e modelo conceptual da natureza dinâmica do Triggering Process e inovação.
Resumo:
A inovação e o desenvolvimento tecnológico obrigam os fabricantes a uma intensa competição global, face a uma redução no ciclo de desenvolvimento dos produtos e a rigorosos constrangimentos de custos, ao mesmo tempo que enfrentam consumidores mais exigentes, que procuram produtos de Qualidade. A Fiabilidade do bem é um aspecto marcante dessa Qualidade. Tradicionalmente o acesso a essa fiabilidade é baseado em testes de vida, normalmente acelerados. Todavia, para produtos altamente fiáveis, pouca informação a respeito da sua fiabilidade é fornecida por via dos testes de vida, nos quais poucas ou nenhumas falhas são observadas. Perante este cenário, a análise de degradação surge como uma técnica alternativa atractiva aos clássicos métodos de estudo da fiabilidade, apresentando como grande vantagem o facto de não ser necessário que nenhuma falha ocorra para se obter informação sobre a fiabilidade do bem, beneficiando ainda de uma redução no tempo de duração dos testes. Este trabalho começa por abordar os fundamentos da teoria da fiabilidade, e sua aplicação ao ciclo de vida dos componentes, fazendo alusão aos modelos de fiabilidade, ou distribuições de vida que mais usualmente se ajustam as várias fases de vida de um bem, nomeadamente a distribuição Exponencial, Normal e com particular destaque à versátil distribuição de Weibull. De seguida é feita a abordagem à análise de degradação dos componentes como uma técnica útil para estimar a fiabilidade de um bem, e neste contexto é feita a abordagem de uma metodologia de análise da degradação com base na monitorização da condição dos componentes. Quando um bem está sujeito a um processo de degradação, onde se pode fixar um valor limite para a característica que está a ser medida, pode-se recolher uma série de dados relativos ao processo em causa, servindo estes para ajustar um modelo matemático de degradação, que por extrapolação da curva de degradação permitem estimar o tempo até à falha, e por consequência o tempo de vida útil restante.O trabalho enquadra ainda a análise da degradação dos componentes numa perspectiva de apoio à estratégia de manutenção, no domínio da manutenção condicionada, e em particular no quadro da manutenção preditiva, tendo por objectivo fazer a optimização do programa de manutenção a aplicar, de forma a minimizar os custos globais da função manutenção. Nesta vertente são também considerados os intervalos P-F para monitorizar a evolução do estado de falha, em que é necessário definir o valor do parâmetro analisado para o qual se considere o início do processo de falha e o correspondente valor de falha efectiva. É apresentado um estudo prático com a colaboração duma prestigiada empresa de comercialização e distribuição de veículos pesados, focalizado num modelo de camião específico comercializado por essa marca. O estudo está direccionado para o sistema de travagem do veículo, mais concretamente a um dos seus componentes mecânicos, as pastilhas de travão. Este componente tem associado o mecanismo de degradação conhecido por desgaste. A medição do parâmetro de desgaste será feita por meio da técnica de simulação de valores, tendo no entanto em consideração, uma base de dados restrita de valores reais. O estudo de fiabilidade deste componente tem por objectivo fundamental estimar o tempo de Vida Útil Restante (“Residual Useful Life, RUL”) para as pastilhas, ou seja, até que se atinja o valor limite admissível (considerado como falha). Para os cálculos foi utilizado o programa informático denominado Weibull ++7. O caso de estudo permitiu determinar para situações particulares a relação entre o desgaste e a distância percorrida, estimando-se desta forma a vida restante (em distância), até ao momento em que o componente atinge o limite de desgaste considerado admissível. O grande potencial de estudo futuro passa pela elaboração de um modelo (com base em dados reais de exploração), que contemple os principais factores de influência, e que duma forma expedita permita a gestores de frota, fabricantes ou responsáveis da marca fazer a análise da fiabilidade do componente, tendo em conta uma situação específica de exploração. O conhecimento da fiabilidade das pastilhas pode levar à optimização da exploração do veiculo, por meio de um planeamento estratégico da sua manutenção,nomeadamente ao nível do aprovisionamento, na programação das intervenções, e em particular quanto à vida útil restante para as pastilhas.
Resumo:
A rápida evolução dos dispositivos móveis e das tecnologias de comunicação sem fios transformou o telemóvel num poderoso dispositivo de computação móvel. A necessidade de estar sempre contactável, comum à civilização moderna, tem aumentado a dependência deste dispositivo, sendo transportado pela maioria das pessoas num ambiente urbano e assumindo um papel talvez mais importante que a própria carteira. A ubiquidade e capacidade de computação dos telemóveis aumentam o interesse no desenvolvimento de serviços móveis, além de tradicionais serviços de voz. Um telemóvel pode em breve tornar-se um elemento activo nas nossas tarefas diárias, servindo como um instrumento de pagamento e controlo de acessos, proporcionando assim novas interfaces para serviços existentes. A unificação de vários serviços num único dispositivo é um desafio que pode simplificar a nossa rotina diária e aumentar o conforto, no limite deixaremos de necessitar de dinheiro físico, cartões de crédito ou débito, chaves de residência e de veículos automóveis, ou inclusive documentos de identificação como bilhetes de identidade ou passaportes. O interesse demonstrado pelos intervenientes, desde os fabricantes de telemóveis e operadores de rede móvel até às instituições financeiras, levaram ao aparecimento de múltiplas soluções de serviços móveis. Porém estas soluções respondem geralmente a problemas específicos, apenas contemplando um fornecedor de serviços ou uma determinada operação de pagamento, como seja a compra de bilhetes ou pagamento de estacionamento. Estas soluções emergentes consistem também tipicamente em especificações fechadas e protocolos proprietários. A definição de uma arquitectura genérica, aberta interoperável e extensível é necessária para que os serviços móveis possam ser adoptados de uma forma generalizada por diferentes fornecedores de serviços e para diversos tipos de pagamento. A maior parte das soluções actuais de pagamento móvel depende de comunicações através da rede móvel, algumas utilizam o telemóvel apenas como uma interface de acesso à internet enquanto outras possibilitam o envio de um SMS (Short Message Service) para autorizar uma transacção, o que implica custos de comunicação em todas as operações de pagamento. Este custo de operação torna essas soluções inadequadas para a realização de micropagamentos e podem por isso ter uma aceitação limitada por parte dos clientes. As soluções existentes focam-se maioritariamente em pagamentos à distância, não tirando partido das características do pagamento presencial e não oferecendo por isso uma verdadeira alternativa ao modelo actual de pagamento com cartões de crédito/débito. As capacidades computacionais dos telemóveis e suporte de diversos protocolos de comunicação sem fio local não têm sido aproveitadas, vendo o telemóvel apenas como um terminal GSM (Global System for Mobile Communications) e não oferecendo serviços adicionais como seja a avaliação dinâmica de risco ou controlo de despesas. Esta dissertação propõe e valida, através de um demonstrador, uma aquitectua aberta para o pagamento e controlo de acesso baseado em dispositivos móveis, intitulada WPAC (Wireless Payment and Access Control). Para chegar à solução apresentada foram estudadas outras soluções de pagamento, desde o aparecimento dos cartões de débito até a era de pagamentos electrónicos móveis, passando pelas soluções de pagamento através da internet. As capacidades dos dispositivos móveis, designadamente os telemóveis, e tecnologias de comunicação sem fios foram também analisadas a fim de determinar o estado tecnológico actual. A arquitectura WPAC utiliza padrões de desenho utilizados pela indústria em soluções de sucesso, a utilização de padrões testados e a reutilização de soluções com provas dadas permite aumentar a confiança nesta solução, um destes exemplos é a utilização de uma infra-estrutura de chave pública para o estabelecimento de um canal de comunicação seguro. Esta especificação é uma arquitectura orientada aos serviços que utiliza os Web Services para a definição do contracto do serviço de pagamento. A viabilidade da solução na orquestração de um conjunto de tecnologias e a prova de conceito de novas abordagens é alcançada com a construção de um protótipo e a realização de testes. A arquitectura WPAC possibilita a realização de pagamentos móveis presenciais, isto é, junto do fornecedor de bens ou serviços, seguindo o modelo de pagamento com cartões de crédito/débito no que diz respeito aos intervenientes e relações entre eles. Esta especificação inclui como aspecto inovador a avaliação dinâmica de risco, que utiliza o valor do pagamento, a existência de pagamentos frequentes num período curto de tempo, e a data, hora e local do pagamento como factores de risco; solicitando ao cliente o conjunto de credenciais adequado ao risco avaliado, desde códigos pessoais a dados biométricos. É também apresentada uma alternativa ao processo normal de pagamento, que apesar de menos cómoda permite efectuar pagamentos quando não é possível estabelecer um canal de comunicação sem fios, aumentando assim a tolerância a falhas. Esta solução não implica custos de operação para o cliente na comunicação com o ponto de venda do comerciante, que é realizada através de tecnologias de comunicação local sem fios, pode ser necessária a comunicação através da rede móvel com o emissor do agente de pagamento para a actualização do agente de software ou de dados de segurança, mas essas transmissões são ocasionais. O modelo de segurança recorre a certificados para autenticação dos intervenientes e a uma infra-estrutura de chave pública para cifra e assinatura de mensagens. Os dados de segurança incluídos no agente de software móvel, para desabilitar a cópia ou corrupção da aplicação mas também para a comparação com as credenciais inseridas pelo cliente, devem igualmente ser encriptados e assinados de forma a garantir a sua confidencialidade e integridade. A arquitectura de pagamento utiliza o standard de Web Services, que é amplamente conhecido, aberto e interoperável, para definição do serviço de pagamento. Existem extensões à especificação de Web Services relativas à segurança que permitem trocar itens de segurança e definem o modo de cifra e assinatura de mensagens, possibilitando assim a sua utilização em aplicações que necessitem de segurança como é o caso de serviços de pagamento e controlo de acesso. O contracto de um Web Service define o modo de invocação dos serviços, transmissão de informação e representação de dados, sendo normalmente utilizado o protocolo SOAP que na prática não é mais que um protocolo de troca de mansagens XML (eXtensible Markup Language). O envio e recepção de mensagens XML; ou seja, a transmissão de simples sequências de caracteres, é suportado pela maioria dos protocolos de comunicação, sendo portanto uma solução abrangente que permite a adopção de diversas tecnologias de comunicação sem fios. O protótipo inclui um agente de software móvel, implementado sobre a forma de uma MIDlet, aplicação Java para dispositivos móveis, que implementa o protocolo de pagamento comunicando sobre uma ligação Bluetooth com o ponto de venda do comerciante, simulado por uma aplicação desenvolvida sobre a plataforma .NET e que por isso faz prova da heterogeneidade da solução. A comunicação entre o comerciante e o seu banco para autorização do pagamento e transferência monetária utiliza o protocolo existente para a autorização de pagamentos, com base em cartões de crédito/débito. A definição desta especificação aberta e genérica em conjunto com o forte interesse demonstrado pelos intervenientes, proporciona uma boa perspectiva em termos de adopção da solução, o que pode impulsionar a implementação de serviços móveis e dessa forma simplificar as rotinas diárias das pessoas. Soluções móveis de pagamento reduzem a necessidade de transportar vários cartões de crédito/débito na nossa carteira. A avaliação dinâmica de risco permite aumentar a segurança dos pagamentos, com a solicitação de mais credenciais ao cliente para pagamentos com um maior risco associado, sendo um ponto importante quer para os clientes quer para as instituições financeiras pois diminui o risco de fraude e aumenta a confiança no sistema. Esta solução de pagamento electrónico pode também facilitar a consulta de pagamentos efectuados e saldos, mantendo um histórico dos movimentos, o que não é possível nos cartões de crédito/débito sem uma visita a uma ATM (Automated Teller Machine) ou utilização de homebanking.
Resumo:
O presente projecto tem como objectivo a disponibilização de uma plataforma de serviços para gestão e contabilização de tempo remunerável, através da marcação de horas de trabalho, férias e faltas (com ou sem justificação). Pretende-se a disponibilização de relatórios com base nesta informação e a possibilidade de análise automática dos dados, como por exemplo excesso de faltas e férias sobrepostas de trabalhadores. A ênfase do projecto está na disponibilização de uma arquitectura que facilite a inclusão destas funcionalidades. O projecto está implementado sobre a plataforma Google App Engine (i.e. GAE), de forma a disponibilizar uma solução sob o paradigma de Software as a Service, com garantia de disponibilidade e replicação de dados. A plataforma foi escolhida a partir da análise das principais plataformas cloud existentes: Google App Engine, Windows Azure e Amazon Web Services. Foram analisadas as características de cada plataforma, nomeadamente os modelos de programação, os modelos de dados disponibilizados, os serviços existentes e respectivos custos. A escolha da plataforma foi realizada com base nas suas características à data de iniciação do presente projecto. A solução está estruturada em camadas, com as seguintes componentes: interface da plataforma, lógica de negócio e lógica de acesso a dados. A interface disponibilizada está concebida com observação dos princípios arquitecturais REST, suportando dados nos formatos JSON e XML. A esta arquitectura base foi acrescentada uma componente de autorização, suportada em Spring-Security, sendo a autenticação delegada para os serviços Google Acounts. De forma a permitir o desacoplamento entre as várias camadas foi utilizado o padrão Dependency Injection. A utilização deste padrão reduz a dependência das tecnologias utilizadas nas diversas camadas. Foi implementado um protótipo, para a demonstração do trabalho realizado, que permite interagir com as funcionalidades do serviço implementadas, via pedidos AJAX. Neste protótipo tirou-se partido de várias bibliotecas javascript e padrões que simplificaram a sua realização, tal como o model-view-viewmodel através de data binding. Para dar suporte ao desenvolvimento do projecto foi adoptada uma abordagem de desenvolvimento ágil, baseada em Scrum, de forma a implementar os requisitos do sistema, expressos em user stories. De forma a garantir a qualidade da implementação do serviço foram realizados testes unitários, sendo também feita previamente a análise da funcionalidade e posteriormente produzida a documentação recorrendo a diagramas UML.