SOFTWARE EMBARCADO E PARA WEB – TENDÊNCIA DE MERCADO PARA ALTA TECNOLOGIA Ana Paula Carrion1, Claudete Werner1 1 Universidade Paranaense (Unipar) Paranavaí – PR – Brasil [email protected], [email protected] Resumo. O presente artigo constitui uma breve descrição do que são softwares embarcados (embutidos) e softwares de aplicação web. Após a identificação das principais características destes tipos de aplicação, foram exemplificados dois modelos distintos de softwares em cada área, sua forma de implementação e as ferramentas mais utilizadas, que demonstram seu domínio sobre os sistemas de alta tecnologia, tornando-se essenciais em várias áreas de atuação distintas da informática, tendo como enfoque suas funcionalidades e benefícios. 1. Introdução Um software embarcado (ou software embutido) é um sistema que reside dentro de um produto, caracterizado por implementar funções dedicadas a um usuário final e ao próprio produto. Um sistema embarcado é diferente de um computador pessoal, ele realiza um conjunto de tarefas predefinidas, geralmente com requisitos específicos, que podem ser muito limitadas e particulares como um teclado para um forno microondas, ou fornecer função significativa e possuir capacidade de controles essenciais, como funções de controle de combustível e sistema de frenagem em um automóvel [Pressman 2006]. Por questões de segurança e usabilidade, normalmente os softwares embarcados são desenvolvidos para uma única tarefa específica, com restrições para computação em tempo real, e ainda, com recursos computacionais limitados, o que garantem a eficácia do produto e a execução da sua função, e não permitem a recorrência de problemas no sistema. Aplicações web podem ser pouco mais que um conjunto de arquivos ligados por hipertexto que apresentam informações usando texto e poucos gráficos. No entanto, conforme as aplicações de comércio eletrônico (e-commerce) e B2B crescem em importância, as aplicações web evoluem para sofisticados ambientes computacionais que fornecem não apenas características isoladas, funções de computação e conteúdo para o usuário final, mas também estão integradas ao bando de dados da empresa e às aplicações do negócio [Pressman 2006]. O rápido crescimento das aplicações web, tanto em seu escopo quanto na extensão de seu uso, tem afetado todos os aspectos de nossas vidas [Ginige e Murugesan 2001]. Por representar uma evolução do software convencional, algumas preocupações adicionais motivam as pesquisas relacionadas à engenharia de aplicações web, mantendo o objetivo de aplicar princípios de engenharia para desenvolver aplicações de qualidade. Neste artigo, após visualizarmos uma breve explicação sobre as principais características dos softwares embarcados e para web, contemplaremos dois exemplos de cada tipo de aplicação. 2. Software Embarcado Em diversas atividades humanas identificamos a presença de Software Embarcado, embora passe despercebido por nós, fazendo parte de artefatos eletrônicos fabricados pela humanidade, como celulares, relógios, televisores, equipamentos médicos, automóveis, vídeo-games, uma lista interminável de produtos que moldam nosso mundo atual. 2.1. Telemedicina Segundo a Organização Mundial de Saúde (OMS), Telemedicina é o uso da tecnologia da informação para entregar serviços e informações médicas de um local para outro. Nos casos em que a distância é um fator crítico, tais serviços são providos por profissionais da área da saúde, usando tecnologias de informação e de comunicação para o intercâmbio de informações válidas para diagnósticos, prevenção e tratamento de doenças, e a contínua educação de prestadores de serviços em saúde, assim como, para fins de pesquisas e avaliações. Tudo com o interesse de melhorar a saúde das pessoas e de suas comunidades [Kondo et al, 2006]. O objetivo do desenvolvimento relacionado ao campo da telemedicina, está diretamente relacionado em proporcionar atendimento de melhor qualidade e com índices de cura, contribuindo com o enriquecimento de dados diagnósticos obtidos criando um banco de informações individuais, melhorando a qualidade dos serviços prestados, e diminuindo o custo de cada procedimento por paciente. A abordagem implementada trouxe a concepção prática da telemedicina no contexto adequado da realidade brasileira, empenhada em um modelo de autosustentabilidade de baixo custo para ser disseminado ou adaptado a várias especialidades médicas. O módulo colaborativo do sistema possibilita a colaboração simultânea de informações médicas entre profissionais remotamente localizados, com recursos de chat, vídeo conferência, bidimensional, visualização volumétrica de imagens médicas, segunda opinião médica para diagnósticos. Num país de dimensões continentais e com oferta assimétrica de serviços na área da saúde, a Telemedicina pode ser uma oportunidade de resolução da dificuldade de comunicação entre instituições de saúde, garantindo a população uma maior qualidade na oferta dos serviços e benefícios do sistema nacional de saúde [Kondo et al, 2006]. 2.2. Biometria para Controle de Acesso A necessidade de identificação e autenticação de indivíduos, para terem acesso físico a locais restritos, se tornou comum e de extrema importância no auxílio da atividade de segurança das mais diversas organizações A finalidade de sistemas de informação utilizados para gerenciar o acesso de indivíduos à ambientes é garantir um acesso fácil e simplificado desses usuários devidamente autorizados e impedir a entrada dos não autorizados. Visando a melhoria do processo de identificação e autenticação de pessoas, são desenvolvidos sistemas computacionais de controle e registro de acesso de pessoas à ambientes. Este sistema, através de identificadores numéricos digitados em um teclado matricial e da biometria (impressão digital, retina, íris, etc.) e aplicando regras de validação, permite ou não, o acesso de indivíduos a ambientes. [Santos et al, 2009]. Um sistema de controle de acesso pode ser definido basicamente como um Sistema de Informação que gerencia e registra o acesso de indivíduos a um determinado ambiente. Esses sistemas possuem terminais específicos para autenticação dos usuários (leitores RFID e/ou biométricos, teclado numérico, entre outros sistemas embarcados). O controle de acesso realizado por esses sistemas é composto basicamente por uma composição dos processos de identificação, autenticação e auditoria. Na primeira fase deste controle, ocorre a identificação e autenticação do indivíduo que deseja ter acesso ao ambiente. Na fase de auditoria, o sistema pode armazenar informações das transações (os dados de quem acessou o ambiente, bem como a data e a hora deste acesso e outras informações pertinentes ao sistema) que sejam relacionadas à tentativa de acesso ao ambiente. 3. Software para Web Conallen [1999], considera que aplicação Web é um Web Site no qual é implementada uma lógica de negócio e cujo uso altera o estado do negócio. Segundo Paula Filho [2003], Aplicações Web são “produtos de software ou sistemas de informática que utilizam uma arquitetura distribuída, pelo menos parcialmente sob protocolo http. Em conseqüência, pelo menos parte das interfaces com o usuário é acessível através de um navegador (browser)”. Possuem como característica fácil interação com usuário e ampla acessibilidade com o advindo da internet móvel. Atualmente podemos encontrar aplicações web em todos os lugares, em empresas de vários tipos diferentes tais como: blogs, fotologs, sites de vendas de todo e qualquer tipo de produtos, até aplicativos de alto risco e desempenho como aplicações corporativas, bancárias, e etc. Entrando na parte técnica, aplicativos web são por natureza aplicações distribuídas. Ou seja, são pedaços de um mesmo programa que de forma combinada executam em diferentes lugares em máquinas separadas denominados clientes e servidores, interconectados através de uma rede comum. 3.1. Páginas de Entretenimento Basicamente todas as páginas que encontramos na internet, são softwares para web. As páginas com conteúdo de entretenimento são páginas que em geral não requerem troca de dados entre cliente-servidor e disponibilizam informação de todos os tipos ao usuário que navega por ela. Dentre estas podemos citar sites como Uol (www.uol.com.br) (figura 1) e Globo (www.globo.com). Estes são sites que ainda possibilitam algumas funcionalidades exclusivas para clientes que compram seus serviços de hospedagem, oferecendo-lhes conteúdo exclusivo e serviço de email. Figura 1: Primeira página da Uol (Fonte: http://www.logotiposdeempresas.com.br/index.php/2011/10/ uol-de-cara-nova/ Acesso em: 14/03/2012) 3.2. Páginas de Busca ou de Compra Praticamente todos os dias milhões de pessoas no Brasil e no mundo acessam essas aplicações sem saberem de que se trata de um sistema web. Sites como Google, Submarino, Mercado Livre (figura 2), Orkut, todos eles são excelentes exemplos de aplicações web, pois não se tratam de apenas páginas estáticas, mas sim sites que são montados dinamicamente conforme as ações tomadas pelos internautas. Em uma simples ação onde é necessário realizar um cadastro de usuário ou uma autenticação de um internauta, é necessário enviar as informações para o servidor, que por sua vez, através do código da aplicação faz a verificação se estes dados estão corretos e retorna uma informação, um acesso ou qualquer outra ação para o usuário. Isso é feito através da inteligência do site, do qual chamamos de web application ou aplicação web. Figura 2: Primeira página do Mercado Livre (Fonte: http://ociosidadesedentaria.blogspot.com/2008/09/o-msn-tapelando.html / Acesso em: 14/03/2012) 4. Metodologia Este artigo procurou através de revisão bibliográfica ilustrar dois tipos diferentes de aplicações de softwares, embarcados e para web, caracterizando a diversificação em que podem atuar, suas funcionalidades e benefícios. 5. Conclusão Os softwares embarcados contribuem grandemente hoje para o avanço tecnológico em várias áreas de atuação. Vêm tornar processos mais ágeis e mais baratos, facilitando a vida de diversos profissionais e de usuários que dependem da sua tecnologia. E tem se transformado na grande revolução tecnológica, é uma das áreas de aplicação que mais crescem no mercado. Através deste foi possível identificar também a importância da engenharia de software e da análise de requisitos. Sendo que, uma boa implementação dedicada aos hardwares e aos sistemas que se integram baseada na engenharia de software, possibilita construir um número infinito de aplicações que proporcionam qualidade nos serviços e satisfação do usuário. Já as aplicações para web se caracterizam por quase tudo que podemos ver na internet. São todas as páginas passíveis da interação e troca de dados, que nos proporcionam vários tipos de serviços desde a compra, até a busca de dados, ou a criação de perfis em redes sociais. Sua implementação acontece de inúmeras maneiras e a interação com o usuário foi aqui descrita através de exemplos simples que ocorrem no cotidiano de milhares de pessoas no mundo. Através deste artigo podemos identificar a importância deste tipo de programação, que simplifica várias interações cliente-servidor com agilidade e comodidade para ambos. Referências Avaliação de Desempenho, Área e Potência de Mecanismos de Comunicação em Sistemas Embarcados, Alexandre I. Gervini, Edgard de F. Corrêa, Luigi Carro, Flávio R. Wagner. ftp://ftp.inf.ufrgs.br/pub/simoo/papers/semish03.pdf. Acesso em: 10/03/2012. Estudo de Requisitos do Software Embarcado no Segmento da Telemedicina, Márcia Narumi Shiraishi Kondo, José Reinaldo da Silva, Adilson Yuuji Hira, Marcelo Knörich Zuffo. http://www.sbis.org.br/cbis/arquivos/816.pdf. Acesso em: 10/03/2012. Filho Paula, Pádua Wilson de. Engenharia de Software. Rio de Janeiro: LTC, 2003. Conallen Jim, Modeling Web Application Architetures with UML, Communications of ACM, v. 42, 1999. Fraternalli, P., Paolini, P., A Conceptual Model and a Tool Environment for Developing More Scalable, Dynamic, and Customizable Web Applications, In EDBT 1998. Marcondes, H., Junior, A., Wanner, L., Cancian, R., Santos, D., and Fröhlich, A. (2006). “EPOS: Um Sistema Operacional Portável para Sistemas Profundamente Embarcados”. Workshop de Sistemas Operacionais. Modelo de Arquitetura para Construção de Plataformas de Software Embarcado, Gustavo A. F. B. Melo, Sérgio V. Cavalcante. http://sbrc2010.inf.ufrgs.br/anais/data/pdf/wtr/stWiP_02_wtr.pdf. Acesso em: 10/03/2012. Pastor, O., Fitting the Pieces of the Web Engineering Puzzle, Palestra Convidada, XVIII Simpósio Brasileiro de Engenharia de Software (SBES), Brasília, 2004. Pressman, Roger S. Engenharia de Software. 6. Ed. – São Paulo: McGraw-Hill, 2006. Santos, D.L.; Oliveira Junior, J.F.; Santos, K.F. Um Sistema de Controle de Acesso Utilizando: APIs Javacomm e Jdbc, Microcontrolador Pic e Banco de Dados Relacional, 2., 2007, João Pessoa. Processos de Desenvolvimento para Aplicações web: Uma Revisão Sistemática, Tayana Conte, Emília Mendes, Guilherme Horta Travassos. http://lens.cos.ufrj.br:8080/ESEWEB/materials/RSProcessoWeb/2005_10_31_Conte_W ebMedia_2005_pubform.pdf. Acesso em: 10/03/2012. Santos, D.L.; Oliveira Junior, J.F.; Santos, K.F. Projeto de um Sistema de Informação Gerencial Baseado em um Controle de Acesso a Ambientes, 2., 2007, São Luiz. Ginige, A., Murugesan, S., Web Engineering: an Introduction, IEEE Multimedia, Vol. 8, 2001. Sommerville, I. Software Engineering. 8th ed., Addison-Wesley Pub. Lim. (2006) Uma proposta de processo de produção de aplicações Web, Rodrigo Franco Gonçalves, Vagner Luiz Gava, Marcelo Schneck de Paula Pessôa, Mauro de Mesquita Spinola http://www.scielo.br/scielo.php?script=sci_arttext&pid=S010365132005000300008&ln g=pt&nrm=iso&tlng=pt. Acesso em: 10/03/2012. Um Componente de Software para Integrar Leitores de Biometria a um Sistema de Controle de Acesso, Katyusco de Farias Santos, Mariana Victor da Silva, Ubiratan Gleidson da Silva Santos, Jardenes F. de Oliveira Junior, Dalasiel Lima dos Santos. http://connepi2009.ifpa.edu.br/connepi-anais/artigos/13_2094_1722.pdf. Acesso em: 10/03/2012.