Instituto Politécnico de Coimbra Instituto Superior de Engenharia de Coimbra Departamento de Engenharia Informática e Sistemas Curso de Especialização Tecnológica em Tecnologias e Programação de Sistemas de Informação Relatório de Estágio no âmbito da Componente de Formação em Contexto de Trabalho Reloading NFC E-Tickets over the Internet Marco António Vieira Antunes LISBOA, 02 de Junho de 2012 Instituto Politécnico de Coimbra Instituto Superior de Engenharia de Coimbra Departamento de Engenharia Informática e Sistemas Reloading NFC E-Tickets over the Internet 03/01/2012 a 04/05/2012 Marco António Vieira Antunes [email protected] +351963905511 Orientador(es): Acácio Amaral Docente, ISEC Tutor(es) na Empresa/Instituição: João Almeida Administrador, Card4B – Systems, S.A. Agradecimentos Em primeiro lugar quero agradecer à instituição ISEC por me ter aceite a realização deste estágio na Card4B - Systems, proporcionando-me desta forma o ingresso no mercado de trabalho numa empresa bem conceituada promovendo assim a minha preparação para um futuro na área da informática do ponto de vista empresarial/profissional. Estou particularmente grato ao João Almeida pelo seu excelente desempenho das funções de orientador de estágio, quer na disponibilidade que sempre demonstrou, quer por todos os conselhos que me deu ao longo do período em que decorreu este estágio e ao Henrique Parente não só pelo exemplar desempenho das suas funções enquanto meu co-orientador, mas também pela oportunidade que me concedeu e por toda a aprendizagem cujo acesso me disponibilizou. Não menos importante, um agradecimento à Filipa Jervis da Novabase e a todos os meus colegas, que de uma forma ou de outra me ajudaram durante este estágio, assim como um agradecimento muito especial à minha família e amigos, por todo o tempo sacrificado longe das suas companhias em prol da elaboração deste documento. iii Índice LISTA DE FIGURAS...................................................................................................................................................... VII LISTA DE TABELAS.......................................................................................................................................................IX ACRÓNIMOS....................................................................................................................................................................XI 1 INTRODUÇÃO........................................................................................................................................................ 13 1.2 ESTRUTURA DO RELATÓRIO ................................................................................................................................... 14 1.3 MOTIVAÇÃO .......................................................................................................................................................... 15 1.4 OBJECTIVOS ........................................................................................................................................................... 16 2 ENQUADRAMENTO NA EMPRESA......................................................................................................................... 17 3 CARACTERIZAÇÃO DO ESTÁGIO ......................................................................................................................... 18 3.1 INTRODUÇÃO ............................................................................................................................................................. 18 3.2 TECNOLOGIAS ............................................................................................................................................................ 18 3.3 PROGRAMA DE TRABALHOS ....................................................................................................................................... 20 3.4 ENQUADRAMENTO E FORMAÇÃO ............................................................................................................................... 21 3.5 INSTALAÇÃO E PARAMETRIZAÇÃO DO AMBIENTE DE DESENVOLVIMENTO................................................................ 21 3.6 IMPLEMENTAÇÃO DA SOLUÇÃO A PROPOSTA ............................................................................................................ 21 3.7 DOCUMENTAÇÃO GLOBAL......................................................................................................................................... 22 4 CONCLUSÕES ........................................................................................................................................................ 23 BIBLIOGRAFIA ............................................................................................................................................................... 25 v Lista de Figuras Fig. 1.1 Ferramentas de Automatização………………………………………………………….20 vii Lista de Tabelas Tabela 1.1 Ferramentas de Automatização...............................................................................19 ix Acrónimos PDF Portable Document Format SQL Structured Query Language XML EXtensible Markup Language ASP Active Server Pages CSS Cascading Style Sheets HTML HyperText Markup Language CET-TPSI Curso de Especialização Tecnológica em Tecnologias e Programação de Sistemas de Informação ISEC Instituto Superior de Engenharia de Coimbra NFC Near Field Communication OTLIS Organização de Transportes de Lisboa FTP File Transfer Protocol TCP/IP Transmission Control Protocol / Internet Protocol SSL/TLS Secure Sockets Layer / Transport Layer Security xi 1 Introdução Este relatório surgiu no âmbito da componente de formação em contexto de trabalho visando a conclusão do CET em Tecnologias e Programação de Sistemas de Informação no Instituto Superior de Engenharia de Coimbra, assumindo a forma de um estágio curricular com a duração de 600 horas, o qual teve lugar na Card4B - Systems, S.A., na filial de Lisboa, integrando a equipa ligada ao desenvolvimento de serviços, quer em manutenção correctiva, quer em manutenção periódica através do know-how das equipas de análise funcional e de desenvolvimento inseridas na sua área de negócio que está focada no fornecimento de componentes de software e serviços especializados para soluções integradas de mobilidade e multi-serviços. Neste relatório pretende-se fazer uma descrição da instituição de acolhimento, da equipa em que fiquei colocado, do plano de trabalho a realizar ao longo do estágio curricular e das ferramentas utilizadas no âmbito das actividades inerentes às minhas funções. Serão também transmitidos neste relatório uma visão geral dos conceitos nucleares dos projectos da empresa, assim como apresentar uma descrição do mesmo. Neste documento serão igualmente apresentadas as ferramentas utilizadas, passando-se a incluir a descrição de ferramentas mas que entretanto se tornaram necessárias no âmbito das novas tarefas que me foram atribuídas. Incluem-se ainda descrições pormenorizadas do trabalho realizado durante o decorrer do estágio. No que diz respeito ao planeamento inicial do estágio curricular, estava previsto um maior foco nos NFC E-Tickets over the Internet, mas devido a outros projectos aliciantes, foi-me proposto outras tarefas. No primeiro contacto com a empresa foi proposto o desenvolvimento com a empresa, propuseram-me desenvolver do zero o website da empresa, um desafio que me deixou com alguma responsabilidade. 13 1.2 Estrutura do Relatório Este documento procura ter uma estrutura que permita ser de fácil compreensão e percepção de todo o trabalho desenvolvido pelo estagiário. Neste sentido, o relatório de estágio foi dividido nas seguintes subsecções pela seguinte ordem: Introdução Uma breve introdução do relatório, fazendo breves referências à formação em contexto de trabalho. Estrutura do Relatório Nesta secção é descrita a estrutura geral do relatório. Motivação Neste capítulo faz-se um breve resumo sobre todos aspectos a nível da motivação do estagiário. Objectivos Aqui é descrito todos os objectivos que foram atingidos pelo estagiário. Enquadramento na Empresa Nesta secção pretende-se situar o leitor nos principais aspectos do projecto e em que medida o estagiário se enquadra nos projectos Caracterização do estágio Neste campo é focado todo trabalho desenvolvido durante o estágio, tais como as diferentes etapas e actividades. Conclusões Por fim, são registadas as conclusões relativas à formação em contexto de trabalho. Bibliografia Nesta secção apresentam-se as fontes bibliográficas que auxiliaram o desenvolvimento do projecto. Anexo Nesta secção são enumerados documentos considerados importantes para o entendimento de aspectos descritos neste relatório. 14 1.3 Motivação O estágio a que este relatório diz respeito decorreu durante aproximadamente 4 meses nas instalações da Card4B - Systems, onde-me foi atribuído a função de programador. Desde cedo encarei a realização deste estágio na Card4B – Sytems como um desafio interessante no meu início de carreira, tanto pelas tecnologias que me haviam sido apresentadas como possíveis ferramentas de trabalho, que abrangiam todo um conjunto de áreas importantes no nosso quotidiano, como é o caso dos serviços/tecnologias na mobilidade. Esse foi, sem dúvida, o principal factor de motivação para que tivesse optado por realizar o estágio nesta empresa, o ingresso no mercado de trabalho numa área pela qual me sinto motivado, promovendo assim a minha preparação para um futuro na área da informática e das telecomunicações do ponto de vista empresarial/profissional. Todos os elementos da equipa existente na Card4B – Systems se entre ajudavam com o objectivo de promover o desenvolvimento evolutivo da empresa como um todo, mas também para aumentar a qualidade do trabalho desenvolvido individualmente, contribuindo assim para a uma melhoria contínua do nível de serviço e disponibilidade aplicacional. Desta forma, atingese um dos objectivos primordiais da empresa, que consiste em garantir a qualidade dos processos de negócio dos clientes. Outro dos factores de motivação que contribuiu para a realização deste estágio esteve relacionado com as diversas funções e responsabilidades que me seriam atribuídas, tais como o desenvolvimento do site da empresa, e desde já a participação do projecto Lisboa Viva com a parceira Novabase. Com base na necessária interacção com as equipas existentes, ser-me-ia dado a oportunidade de obter uma visão muito completa da realidade vivida na organização e da abrangência da minha participação na melhoria dos serviços prestados por uma empresa bastante conceituada no seu ramo. Por fim, um outro factor de motivação e que sem dúvida influenciou a decisão de realizar este estágio na Card4B - Systems, teve a ver com o facto de se tratar de uma empresa particularmente adequada para os serviços que presta devido à sua experiência e know-how. A quantidade de informação a que tive acesso, o conjunto de boas práticas utilizadas e o conhecimento adquirido enquanto parte integrante da empresa, ser-me-á de grande utilidade para a minha vida profissional. 15 1.4 Objectivos Este estágio, conforme foi referido anteriormente, teve entre os seus objectivos primordiais, a consolidação/aperfeiçoamento dos meus conhecimentos num ambiente profissional, o qual serviu para complementar os conhecimentos adquiridos durante a componente lectiva do CET, contribuindo ainda mais para a minha experiência. Tinha ainda como finalidade a minha inserção num ambiente de trabalho no qual se promove bastante a interacção entre as equipas, o que é bastante enriquecedor no sentido em que esta interacção possibilita o meu envolvimento nos vários projectos e do fluxo de informação, permitindo-me obter uma visão mais aprofundada da forma como se processa o funcionamento e a manutenção/evolução de vários sistemas de informação de grande dimensão. Trata-se de uma interacção permanente, uma vez que é fundamental para assegurar o correcto funcionamento, disponibilidade e desempenho dos projectos, bem como suportar o seu contínuo processo evolutivo. Foi-me assim dado a oportunidade de participar na obtenção do objectivo de assegurar o cumprimento dos diferentes requisitos/necessidades aplicacionais inerentes ao projecto Lisboa Viva, contribuindo para o desenvolvimento do seu respectivo portal online, como também criar o respectivo website da empresa Card4B - Systems (www.card4b.pt). 16 2 Enquadramento na Empresa Em Janeiro de 2012 integrei a empresa Card4B - Systems, empresa essa que é constituída por um grupo de consultores munidos de conhecimentos técnicos e capacitados para dar resposta nas diferentes áreas de negócio da empresa. Após uma entrevista, que teve a duração de aproximadamente 1 hora em Dezembro de 2011, em que me foi dado a conhecer a empresa e o seu modo de funcionamento, tiveram inicio as minhas funções de estagiário nas instalações da Card4B Systems. A integração nesta empresa começou com a minha recepção por parte do administrador e tutor João Almeida. No meu primeiro dia realizou-se uma pequena reunião, onde me foi apresentado a unidade, os colegas com quem viria a trabalhar e ainda quais as minhas funções e responsabilidades dentro da organização. Da unidade foi também possível conhecer a sua estrutura funcional, organizacional e algumas metodologias e processos que são utilizados, de uma forma geral, por toda a equipa, nesta reunião foi-me dado a oportunidade de iniciar a concepção e estrutura do website da empresa, com a respectiva troca de ideias e soluções para o mesmo. Terminada a primeira semana em que decorreu o meu período de ambientação à empresa e durante o qual apresentei três proposta para design/estrutura do website, foi-me dado material informativo fornecido pela Card4B - Systems que seria para apresentar no respectivo sítio da internet. Após a escolha do design/estrutura deu-se início às minhas tarefas de desenvolvimento. Quando conclui o website, iniciei uma nova etapa, dei entrada no projecto Lisboa Viva em parceria com a Novabase, na qual tive três reuniões com a Filipa Jervis na OTLIS, fora todo o desenvolvimento na Card4B – Systems até ao final do estágio. Logo após os primeiros dias tinha objectivo de aumentar o meu conhecimento e que me permitiram ganhar autonomia suficiente para organizar o meu dia de trabalho e sobretudo tomar a iniciativa de desenvolver algumas actividades rotineiras sem que fosse necessária a dependência de terceiros. O esclarecimento de todas as dúvidas que surgiram foi realizado pelos elementos da equipa onde me encontrava inserido. Sempre que surgiam problemas complexos, os colaboradores Car4B Systems mais experientes mostraram-se disponíveis para dar o apoio necessário para que a resolução fosse rápida e eficaz, acabando também ela por contribuir para a minha aprendizagem. De um modo geral, a integração na unidade foi fácil, já que além de ter sido muito bem recebida por toda a equipa, encontrei um grupo unido, divertido, sendo um forte contributo para todo o tempo do estágio. 17 3 Caracterização do Estágio 3.1 Introdução Com a presente introdução pretende-se descrever os aspectos principais contidos no projecto referente à formação em contexto de trabalho. No contexto de trabalho proposto, foi necessário por parte do estagiário apresentar várias soluções. Após a escolha a solução era da responsabilidade do estagiário testar e ensaiar o mecanismo desenvolvido. Neste estágio foram desenvolvidos vários projectos entre os quais se podem salientar: o site da empresa, o desenvolvimento de um software de leitura do cartão de cidadão a partir de um leitor em C# e a criação de um protótipo de testes para a plataforma Lisboa Viva em ASP.NET. Este estágio iniciou a 03 de Janeiro de 2012 e terminou a 05 de Maio de 2012. 3.2 Tecnologias Apresenta-se de seguida uma breve descrição das tecnologias que foram utilizadas: SQL O SQL (Structured Query Language) é uma linguagem de pesquisa normalizada que permite a recolha e gestão da informação presente num sistema de base de dados. Trata-se de uma linguagem simples e fácil de utilizar, sendo esse o motivo pelo qual é considerada a linguagem padrão no que diz respeito às bases de dados. Para além disso, é uma linguagem declarativa em oposição às outras linguagens procedimentais. Filezilla O Filezilla é um programa que possibilita transferir arquivos de e para servidores FTP através da internet e de outras redes TCP/IP. A sua interface é muito semelhante à do Windows Explorer e como tal, oferece uma visão rápida de todas as transferências, sites e discos o que torna mais fácil a realização de transferências. Esta aplicação permite efectuar múltiplas conexões FTP de forma simultânea, aceitar arquivos com um tamanho superior a 4 Gigabytes, permite ainda a transferência em fila, bem como a edição e pesquisa remota desses mesmos arquivos e ainda a comparação entre os ficheiros locais e os remotos. Trabalha com os protocolos FTP e FTP sobre SSL/TLS e é 18 distribuído em licença GNU GPL (General Public License –Licença de software livre) para os sistemas operativos Windows, Macintosh e Linux. Existe uma versão disponibilizada para uso portátil (Filezilla Portable), que torna possível a execução do programa a partir de um disco rígido portátil como uma pen-drive. Fig.1.1 Ferramentas de Automatização. Dreamweaver CS4 O Adobe Dreamweaver, antigo Macromedia Dreamweaver é um software de desenvolvimento voltado para a web criada pela Macromedia (adquirida pela Adobe Systems), e que está atualmente na versão CS6. As suas versões iniciais serviam como um simples editor HTML WYSIWYG ("What You See Is What You Get", ou "O que tu vês é o que tu tens"), porém as suas versões posteriores incorporaram um notável suporte para várias tecnologias web, tais como XHTML, CSS, JavaScript, Ajax, outras linguagens Server-side. Adobe Photoshop CS4 Adobe Photoshop é um software caracterizado como editor de imagens bidimensionais do tipo raster (possuindo ainda algumas capacidades de edição típicas dos editores vectoriais) 19 desenvolvido pela Adobe Systems. É considerado o líder no mercado dos editores de imagem profissionais, assim como o programa de facto para edição profissional de imagens digitais e trabalhos de pré-impressão. Microsoft Visual Studio 2010 O Microsoft Visual Studio é um pacote de programas da Microsoft para desenvolvimento de software especialmente dedicado ao .NET Framework e às linguagens Visual Basic (VB), C, C++, C# (C Sharp) e J# (J Sharp). Também é um grande produto de desenvolvimento na área web, usando a plataforma do ASP.NET. As linguagens com maior freqüência nessa plataforma são: VB.NET (Visual Basic.Net) e o C (lê-se C Sharp). 3.3 Programa de trabalhos O estágio consistiu nas seguintes actividades e tarefas (a unidade da coluna duração é um dia): Actividades e Tarefas Fase Duração Tipo Característica T1 2 Enquadramento e Formação Análise do âmbito do sistema de informação sobre o qual seria desenvolvido o trabalho. Identificação dos principais módulos, arquitectura do sistema e os componentes tecnológicos utilizados. (ex.: linguagens de programação, bases de dado, etc.) T2 1 Instalação e parametrização do ambiente de desenvolvimento Instalação das ferramentas de desenvolvimento a utilizar, componentes tecnológicos e outros sistemas complementares (por exemplo, repositório para versionamento do código-fonte). T3 2 Levantamento de Requisitos Levantamento e documentação dos requisitos funcionais e não funcionais relativos ao módulo a desenvolver. T4 5 Análise e descrição T5 55 Implementação Codificação, integração e teste do módulo apresentado. T6 10 Documentação global Documentos globais sobre os módulos desenvolvidos, incluindo manuais de utilização, manuais técnicos (interfaces, APIs, etc.) e os manuais de instalação. Análise da solução a implementar. Tabela 1.1 Actividades e Tarefas realizadas. 20 3.4 Enquadramento e Formação Por fase de enquadramento e formação, entende-se a adaptação e o reconhecimento do actual projecto, ambiente de desenvolvimento, ferramentas e tecnologias necessárias para o desenvolvimento por parte do estagiário. Neste segmento, competia ao estagiário pesquisar conceitos, funcionalidades e documentos que pudessem ajudar o desenvolvimento dos projectos. 3.5 Instalação e Parametrização do Ambiente de Desenvolvimento Antes de avançar para o desenvolvimento e depois de analisada a situação, era necessário instalar o ambiente que permitisse o desenvolvimento da solução usando as tecnologias definidas. Nesta fase, o estagiário em conjunto com o Tutor, definiram quais os programas necessários, que metodologia de desenvolvimento a usar, que ligações seriam importantes e como partilhar o trabalho que ao longo do estágio ia sendo elaborado. 3.6 Implementação da Solução a Proposta O desenvolvimento do site foi pensado tendo em conta as tecnologias leccionadas durante a formação académica, sendo essa a principal razão da escolha das mesmas para a formação em contexto de trabalho. Nesta tarefa, competia ao estagiário dar início ao desenvolvimento do website. Através das tecnologias HTML, CSS foi desenvolvido com a devida aprovação semanal da administração. O design, alteração de imagens e a sua redimensão foi toda feita em Photoshop. O desenvolvimento em si foi no Dreamweaver. O segundo projecto seria o desenvolvimento de um software de leitura do cartão de cidadão a partir de um leitor, em C#. O suporte e documentação disponível sobre a API do cartão de cidadão são muito escassos. Existe um wrapper .NET que facilita o desenvolvimento em C# ou VB e ainda um fórum de discussão e demo bastante completo sobre a utilização deste wrapper, sendo este o principal motivo que levam os programadores a escolherem estas ferramentas. Noutras plataformas, JAVA por exemplo, também existe um wrapper disponível, no entanto não existem exemplos nem demos. As falhas do cartão de cidadão terão que ser levadas a sério, pois uma assinatura digital tem mais valor do que uma assinatura manuscrita. No entanto estas últimas têm muitos outros riscos e são mais 21 fáceis de ser ultrapassados, pelo que a utilização de assinaturas digitais não será pior do sistema actualmente em uso. A aplicação em si do cartão de cidadão é segura, e mesmo testando com a aplicação externa não conseguimos reproduzir a excepção que levaria ao erro relatado. Tentamos ainda por várias vezes contactar com o autor da denúncia, mas o mesmo não respondeu. Apenas se usar o cartão numa aplicação externa com intenções menos boas poderá ter problemas. Assim, uma boa forma de assegurar a segurança dos cartões de cidadão seria criar uma forma de certificar que o programa utilizado usa a biblioteca eID lib, ou outra que garanta uma ordem correcta de operações sobre o cartão. Neste caso, o utilizador teria uma forma de saber á partida se a aplicação é certificada e poderia utilizar a aplicação de forma segura. Por fim foi a criação de um protótipo de testes para a plataforma Lisboa Viva em ASP.NET. A nível de construção da aplicação web, esta foi desenvolvida sob uma estrutura HTML, aplicando ASP.NET e CSS para os estilos da aplicação. Foi usada uma ligação à base de dados MySQL através do .NET. O processo consistia em duas partes distintas. A primeira parte em obter os dados do cartão do cidadão já desenvolvido. A segunda parte consistia em simular pagamentos, em que a documentação de configuração confidencial foi obtida pela instituição SIBS. 3.7 Documentação Global Por fim, mas não menos importante, depois de desenvolvida e implementada a solução e efectuado os testes num ambiente de qualidade, competia ao estagiário elaborar os manuais de utilização, manuais técnicos e manuais de instalação da aplicação. 22 4 Conclusões Conforme foi referido anteriormente no presente relatório, o mesmo surge no âmbito da componente de formação em contexto de trabalho visando a conclusão do CET em Tecnologias e Programação de Sistemas de Informação no Instituto Superior de Engenharia de Coimbra. Este estágio consistiu na minha inclusão na empresa da Card4B - Systems, como parte integrante na mesma, de modo a poder dar o meu contributo à empresa no cumprimento das suas responsabilidades, nunca deixando de ter em mente o quão importante era deixar uma boa imagem enquanto aluno do Instituto Superior de Engenharia de Coimbra. Durante o período em que o estágio decorreu, foram adquiridos conhecimentos das linguagens de programação Javascript e XML e técnicas de cardsorting e testes. Foram ainda consolidados e aumentados os conhecimentos obtidos durante o CET de TPSI no que diz respeito às linguagens SQL, ASP.NET e C#, bem como o conhecimento geral inerente a bases de dados. Fora do campo técnico, considero ainda bastante importantes, tanto as noções teóricas adquiridas na vertente das telecomunicações e informática como as relacionadas com o funcionamento do trabalho em equipa na empresa, que me possibilitou dessa forma a compreensão das metodologias de trabalho existentes numa empresa de pequena dimensão e cujo negócio se centra numa das áreas mais importantes dos nossos dias. Devido à constante necessidade de comunicação, não só com elementos da própria equipa, mas também com elementos de equipas diferentes as técnicas e a capacidade de comunicação foram largamente melhoradas, assim como as noções acerca do modo como são feitas as trocas de ideias entre os intervenientes numa determinada tarefa. O facto de ter sido confrontado durante o estágio com a necessidade de cumprimento de prazos e de requisitos num ambiente profissional, aumentou bastante o meu sentido de responsabilidade, já que ao contrário do que sucedia num ambiente académico, o incumprimento desses mesmos prazos tornase prejudicial a várias entidades, entre as quais os clientes, com os quais a empresa assume responsabilidades contratuais, podendo colocar em causa as suas imagens. As supra-citadas conclusões permitem verificar que, do ponto de vista do desenvolvimento de capacidades a nível pessoal e profissional, esta foi uma experiência bastante enriquecedora, que certamente se revelará muito útil na continuidade da minha carreira profissional. No que respeita o trabalho futuro, a empresa continuará o exercício das suas actividades, a fim de dar continuidade ao cumprimento das responsabilidades com que se têm evidenciado até ao momento. 23 Por fim, resta voltar a salientar que considero a Card4B - Systems uma empresa particularmente adequada para a realização de um estágio, tanto pela grande quantidade de experiência e Know-How disponíveis, como pelas boas práticas que incute aos seus trabalhadores mais novos no ambiente em que o trabalho decorre. 24 Bibliografia Site Oficial Cartão de Cidadão (Manuais, Aplicações Oficiais) http://www.cartaodecidadao.pt/ eIDPT - Cartão de Cidadão .NET Wrapper http://cartaodecidadao.codeplex.com/ Serviços Online com o Cartão de Cidadão http://www.senha001.gov.pt/ CUC Manual Técnico Middleware do Cartão do cidadão http://www.cartaodecidadao.pt/index.php?option=com_content&task=view&id=115&Itemid=100&l ang=pt HTML, http://www.w3schools.com/html/default.asp CSS, http://www.w3schools.com/css/ .NET, http://pt.wikipedia.org/wiki/Microsoft_.NET SQL, http://www.sql.org C# (C Sharp), http://msdn.microsoft.com/en-us/vstudio/hh388566.aspx XML, http://www.w3schools.com/xml ASP.NET, http://www.asp.net 25 27 29