Buscar

trabalho individual do 6º semestre unopar

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

�PAGE �
SUMÁRIO
31	INTRODUÇÃO	�
42	DESENVOLVIMENTO	�
42.1. DISPOSITIVOS MÓVEIS.	�
62.1.1. PERSISTENCIA	�
62.1.2. THREAD	�
132.1.3. SINCRONIA DE PROCESSOS	�
152.1.4. INTERFACE COM USUARIO	�
162.1.4.1. RECOMENDAÇÕES CRÍTICAS PARA O PROJETO DE INTERFACES MOBILE.	�
162.1.4.2. REDUZIR CLICKS.	�
172.1.4.3. REDUZIR FUNCIONALIDADES	�
172.1.4.4. REDUZIR CONTEÚDO	�
172.1.4.5. DAR ESCOLHAS AO USUÁRIO	�
172.1.4.6. OUTRAS PRÁTICAS IMPORTANTES QUE HERDAMOS DA USABILIDADE CONVENCIONAL	�
192.1.5. FERREMENTAS DE DESENVOLVIMENTO.	�
212.2. GESTÃO DO CONHECIMENTO.	�
222.3. ELEMENTOS DA GESTÃO DO CONHECIMENTO.	�
233. OBJETIVOS DA GESTÃO DO CONHECIMENTO.	�
253.1. AS DIMENSÕES DO CONHECIMENTO	�
273.2. TIPOS DE CONHECIMENTO.	�
343.3. SEGURANÇA DE SISTEMAS ONLINE.	�
354. CONCLUSÃO	�
36REFERÊNCIAS	�
��
INTRODUÇÃO.
Neste portfólio será abordada toda a matéria do referente Semestre, dentro deste contexto serão apresentados vários recursos utilizados em dispositivos móveis, como a persistência dos dados, threads e sincronia de processos. 
Ainda contexto dos sistemas móveis será mostrado à usabilidade de interfaces para dispositivos móveis, e podendo como isso trazer benefícios para o usuário, como a facilidade de uso, melhorando assim a forma como as pessoas interagem com estes dispositivos.
Outro tema de grande importância neste portfólio, é a gestão e segurança no sistema de informação, onde serão descritos alguns critérios como engenharia social, vulnerabilidades, ameaças e ataques, bem como medidas de segurança e auditoria.
DESENVOLVIMENTO.
Com o crescimento extraordinário dos dispositivos móveis, os usuários são providos de acesso a dados em qualquer lugar que estejam. Os sistemas que fornecem esse acesso aos dados necessitam de novas tecnologias para gerenciar e sincronizar dados, solucionando possíveis conflitos, verificando mudanças e propagando as atualizações nos diversos dispositivos da sincronização.
Os protocolos de sincronização de dados para dispositivos móveis são cuidadosamente criados para cobrir todos os problemas enfrentados. No caso especial dos PDAs, que geralmente comunicam-se via serial, usb ou via wireless com baixa largura de banda, possuem poder de processamento limitado, pouca memória e pouca bateria espera-se que sempre estejam prontos para processar ou transferir um grande volume de dados. Com esta visão levantada, existe a necessidade que os protocolos de sincronização sejam eficientes o suficiente para suprir as necessidades requeridas de acesso e segurança dos usuários, onde demonstraremos.
O protocolo WAP permite aos utilizadores acederem on-line a inúmeros serviços a partir de pequenos telefones móveis. As grandes empresas de sistemas de comunicações móveis, construíram e disponibilizaram os seus Kit´s de desenvolvimento e “gateways” para que se desenvolvam as aplicações residentes nos servidores WAP comunicando com a rede GSM (Global System for Mobile) (Ericsson, 1999).
Dispoisitivos móveis.
Toda tecnologia que permite seu uso durante a movimentação do usuário é uma tecnologia móvel. A tecnologia móvel não é apenas uma invenção, ela pode ser considerada uma revolução, pois foi capaz de atingir o cotidiano das pessoas e fazer parte da vida delas, modificando suas rotinas e formas de tomar decisões. Muitas pessoas não vivem sem celular, outras estão 24 horas disponíveis e as encontramos em qualquer lugar, algumas não abrem mão de estarem com seu smartphone conectado na Internet e ao mesmo tempo se deslocando pela casa. Tudo isso só foi possível através da evolução da tecnologia móvel, que nos diversos dispositivos, como por exemplo na telecomunicação, onde podemos citar os celulares, redes wireless, Wi-Fi, Bluetooth, GSM, CDMA, SmartPhones. Outro exemplo seriam os computadores portáteis, destes citamos os tablets e notebooks.
A mobilidade iniciou como uma facilidade, mas hoje em dia tornou-se uma necessidade. Mas porque a evolução deste segmento foi tão rápida? Simples. Porque este tipo de tecnologia permite o acesso a dados e informações em qualquer momento e em qualquer lugar. Isto torna-se um poderoso atrativo.
Este tipo de investimento também começa a atingir as empresas de médio e grande porte, pois esta não é somente uma opção para facilitar tarefas particulares, mas é também uma oportunidade de melhorar na gestão de negócios, podendo integrar dispositivos móveis com sistemas de gestão e e-bussiness. É importante o investimento na mobilidade também para o atendimento ao cliente, pois estabelece muitas opções de interatividade com o mesmo.
A mobilidade popularizou-se principalmente pelo lançamento e evolução de handhelds (entende-se palm) e de telefones celulares. Destacaremos neste artigo os computadores de mão. O produto foi criado por Jeff Hawkings e lançado no mercado em abril de 1996. Além da Palm Jeff fundou a Handspring, empresa historicamente ligada a evolução dos computadores de mão. A palm posteriormente foi divididade em duas empresas: a palmOne, responsável pela industrialização dos equipamentos e a palm Source, responsável pelo sistema operacional Palm OS, desenvolvido por Hawkings.
PERSISTÊNCIA.
É a capacidade de persistir dados ou armazenar informações é sem dúvida um dos recursos mais importantes em qualquer linguagem de programação. Armazenar dados para uma posterior recuperação é uma constante na maioria dos ambientes computacionais, seja para persistência simples de parâmetros de configurações de algum sistema ou persistência de informações digitadas pelo usuário para alimentar algum banco de dados.
No que diz respeito à persistência em ambientes computacionais e em dispositivos móveis, o complicador é quando esse mesmo ambiente tem recursos de armazenamento restrito e, ainda, uma arquitetura de hardware e software bem diferente da encontrada em desktops ou grandes servidores, como é o caso dos dispositivos móveis. Essas diferenças podem ser observadas tanto do ponto de vista do usuário (ergonomia de hardware e software), quanto do ponto de vista do desenvolvedor (ferramentas de software, APIs e recursos). Os telefones celulares conseguiram alcançar uma popularidade quase tão grande quanto a observada na utilização de computadores pessoais a partir da década de 80. Mas, assim como todos os dispositivos móveis, eles também trazem consigo algumas dificuldades, como, problemas relacionados à ergonomia do teclado, uma interface visual simples, porém limitada e a dependência de baterias que requerem recarga constante.
Nesse artigo, serão apresentadas as APIs que tratam da persistência de dados disponíveis no J2ME. Inicialmente, alguns fundamentos serão abordados e a seguir o pacote javax.microedition.rms, responsável pelo gerenciamento de registros, será detalhado através de definições e do uso de exemplos. A descrição do funcionamento de uma classe, quatro interfaces e cinco exceções, é tudo do que trata esse artigo. Comprovando, por incrível que pareça, toda a simplicidade e eficiência do pacote RMS.
THREAD.
 Antes de iniciarmos a explicação prática de Thread, entenda que estas são subdivisões dos processos, como assim? Cada processo possui diversas threads (linhas de instruções), assim nós podemos dividir partes do nosso processo (programa em Java) para trabalhar paralelamente.
	Entendendo como uma Thread funciona
Um processador não é capaz de processar mais de uma instrução ao mesmo tempo, isso é, se ele tem duas instruções para executar em sua fila, ele vai executar primeiro uma e depois a outra. Porém, ele é capaz de trabalhar com mais de uma linha de execução ao mesmo tempo. Cada linha de execução possui sua própria fila de instruções para serem executadas. O processador então executa uma instrução de cada linha de execução consecutivamente, fazendo com que o processador “pareça” estar executando mais de uma instrução aomesmo tempo.
Criando um aplicativo que executa dois processamentos simultaneamente, chamados A e B. Digamos ainda que ambos possuem em cada um, cinco instruções a serem executadas e essas instruções tenham um número sequencial crescente (para o processo A seria: A1, A2, A3, A4 e A5. O processo B seria: B1, B2, B3, B4 e B5).
Figura 1.  A representação gráfica do resultado desse processamento em um aplicativo não multitarefa.
 
Figura 1. Exemplo de processamento não multitarefa.
No quadro Linhas de Execução, temos o aplicativo que possui os dois processos a serem executados. Note que apesar de serem dois processos, apenas uma linha de execução é utilizada entre o aplicativo e o processador, isso é, apenas a thread principal comunicou-se com o processador.
Figura 2. Temos a representação gráfica do processamento em um aplicativo multitarefa.
 
Figura 2. Exemplo de processamento multitarefa.
No quadro Linhas de Execução, temos o aplicativo que possui os dois processos a serem executados. Porém nesse caso, não temos apenas um thread comunicando-se com o processador, mas duas. Aqui tenho um detalhe a destacar. Observando o gráfico, veja que o primeiro processo faz uso do thread principal (não existe linha de execução diretamente entre o processo A e o processador) e o processo B é executado em um segundo thread criado.
Veja que na figura 1, a segunda linha de processamento (B) somente começou a ser executada quando a primeira (A) foi concluída. Isso pode ser notado porque no quadro Resultado, primeiro todas as instruções do processo A são processadas e somente depois disso é que as instruções do processo B aparecem no resultado.
Já figura 2, veja que ambos os processos foram executados em paralelo, fazendo com que o processador concluísse as duas tarefas quase que simultaneamente. Nesse caso, no quadro Resultado, note que o resultado é alternado, isso é, uma instrução do processo A uma do processo B e assim por diante.
Por isso, threads trazem inúmeros benefícios ao aplicativo, não apenas em performance, mas em flexibilidade e acessibilidade também. Lembre-se do primeiro exemplo que citei, fazer um backup enquanto escreve um documento no Word.
O NET Framework, através do Managed Code e o namespace System. Threading, foi um grande presente da Microsoft para o desenvolvedor, pois transformou um processo complexo, difícil e perigoso em um processo muito mais acessível, seguro e simples.
A API Win32 (do Windows SDK), possui inúmeros recursos para a execução de threads diretamente no Windows (Unmanaged Code), mas qualquer desenvolvedor que já tenha usado esses recursos nessas condições, sabe que é um processo complexo e delicado.
Lembrando que todo e qualquer tipo de alocação de memória em Unmanaged Code, a liberação dessa após o uso é de total responsabilidade do executor. Desse modo, se um bug no seu código deixar de liberar a memória após o seu uso, essa ficará perdida, caracterizando um vazamento de memória (Memory Leak).
	Exemplos de procedimento que consome muito tempo do processador, vamos supor o exemplo abaixo de um cálculo que faz consultas a um Web Service (que pode demorar muito a responder):
Listagem 1: Procedimento comum sem thread
public void calculaTotalRecebido(){
		//Recebe aproximadamente 70mil registros. 
		List<HistoricoRecebimento> recebidos = getListRecebimentos();
		Integer soma = 0;
		
		for(HistoricoRecebimento h1: recebidos){
			soma = soma + recebidos.getValorRecebido();
		}
		
		Integer porcentagemImposto = getReajusteAtualFromWebService();
		
		soma = soma + ((porcentagemImposto/100)*soma);
		
		retornaParaWebServiceValorTotal(soma);
	}
	O procedimento acima parece simples (de fato é simples), recebe uma lista com mais ou menos 70 mil registros, depois pega o valor de cada registro e soma. Após isso, captura um valor para reajuste em porcentagem (capturado de um WebService que pode demorar a responder), e recalcula o valor somado. Por fim retorna o resultado via WebService.
Através deste procedimento percebemos com clareza tão consumo de hardware que pode demorar minutos, e não vai retornar nada ao usuário, apenas fazer comunicação interna entre Web Services. Não podemos parar toda nossa aplicação para executar o procedimento acima. Pois imagina se o usuário está fazendo um cadastro simples e tem que esperar 4 minutos para terminar o processamento acima.
A solução então é fazer com que esse procedimento seja executado concorrentemente, ou seja, ao mesmo tempo em que o usuário está realizando o cadastro, o procedimento acima também é executado, e provavelmente quando ele terminar o cadastro, o procedimento acima também já terminou, de forma imperceptível a ele.
No código abaixo vamos usar o mesmo código, porém usando o conceito de Threads. Iremos criar uma Thread para um bloco específico de código, através da Classe java.lang.Thread.
Existe uma interface chamada Runnable que possui um método run. Dentro do método run devem ficar os procedimentos que você deseja executar paralelamente, sendo assim vamos colocar todo o código acima dentro de um método run. Como Runnable é apenas um contrato, precisamos de alguma classe que a implemente e faça o trabalho da “paralelização”, que é a classe Thread.
Listagem 2: Usando Thread
public void calculaTotalRecebido(){
		new Thread() {			
			@Override
			public void run() {
				//Recebe aproximadamente 70mil registros. 
		List<HistoricoRecebimento> recebidos =getListRecebimentos();
				Integer soma = 0;				
				for(HistoricoRecebimento h1: recebidos){
					soma = soma + recebidos.getValorRecebido();
				}
				Integer porcentagemImposto = getReajusteAtualFromWebService();
				
				soma = soma + ((porcentagemImposto/100)*soma);				
				retornaParaWebServiceValorTotal(soma);
				}
		}.start();
	}
	Na execução do “. Start (); ” já estamos iniciando o processamento paralelo, e liberando o programa para executar qualquer outro thread. Então tenha a seguinte ideia assimilada: Se você deseja que o programa não “trave para o usuário” naquele determinado procedimento que pode demorar muito tempo, use Thread.
Caso deseje que sua classe seja processada paralelamente, porém ela já estende de outra, você poderá optar por implementar o Runnable, que é a interface padrão para Thread. Por boas práticas, geralmente implementamos Runnable em vez de estender de Thread.
Atente a outro ponto muito importante: O programador não tem nenhum controle sobre o escalonador do processador. Isso significa que sendo os processos executados paralelamente, você não tem como saber qual a ordem de execução destes. No exemplo abaixo vamos colocar 2 contadores para executar paralelamente, você irá perceber que o resultado pode diferir cada vez que você executar, ou até de computador para computador.
Listagem 3: Teste de Contadores com Thread
	public class MyTest {
	 static int i = 0;
	 public static void main(String[] args) {
	 new Thread(t1).start();
	 new Thread(t2).start();
	 }
	 private static void countMe(String name){
	 i++;
	 System.out.println("Current Counter is: " + i + ", updated by: " + name);
	 }
	 private static Runnable t1 = new Runnable() {
	 public void run() {
	 try{
	 for(int i=0; i<5; i++){
	 countMe("t1");
	 }
	 } catch (Exception e){}
	 }
	 };
	 private static Runnable t2 = new Runnable() {
	 public void run() {
	 try{
	 for(int i=0; i<5; i++){
	 countMe("t2");
	 }
	 } catch (Exception e){}
	 }
	 };
	}
SINCRONIA DE PROCESSOS.
	A sincronia de processos permite gerenciar o acesso concorrente a recursos do sistema operacional de formacontrolada por parte dos processos, de maneira que um recurso não seja modificado em simultâneo, ou que os processos não fiquem em espera que o recurso seja libertado.
Um protocolo de sincronização define o fluxo de trabalho para a comunicação durante uma seção de sincronização de dados quando o dispositivo móvel é conectado à rede fixa. Para BREITBART, KOMONDOOR, RASTOGI (1999), deve dar suporte a identificação de registros, comandos de protocolo comuns para sincronização de dados local e de rede, e poder apoiar a identificação e resolução de conflitos de sincronização.
Os processos (aplicativos ou programas) de um computador compartilham determinados recursos da chamada região crítica, que são as variáveis globais, as instruções de E/S, algum banco de dados, etc. Neste compartilhamento podem ocorrer erros. Exemplo:
Uma escola está fazendo sua matrícula apenas pela internet, o número de vagas é 5, dois usuários estão fazendo a matrícula no exato momento, finalizam a matrícula. A operação que o programa usa da região crítica: matrícula finalizada -1.
Se os dois usuários fazem a operação ao mesmo tempo, quando a matricula for finalizada subtrai-se 1 vaga:
Matrícula finalizada -1 (5-1) =4
Matrícula finalizada -1 (5-1) =4
	Quando um terceiro usuário for fazer esta mesma matrícula, o número de vagas será expresso como 4, sendo que na verdade deveria ser 3. Isto causará instabilidade e poderá comprometer todo o sistema. A solução para este tipo de caso é a certeza de exclusão mútua, isto é, apenas um processo pode acessar a região crítica por vez; os mecanismos que implementam a exclusão mútua utilizam um protocolo de acesso à região crítica. Toda vez que um processo for executar sua região crítica, ele é obrigado a passar por um controle de entrada e outro de saída.
	Atualmente diversos fabricantes oferecem uma variedade de produtos de sincronização de dados. Cada protocolo funciona apenas para transportes específicos implementados para alguns dispositivos. A proliferação de tecnologias de sincronização complica as tarefas de usuários, fabricantes de dispositivos, provedores de serviços e desenvolvedores de aplicações. 
	A falta de um protocolo de sincronização de dados comum impede o crescimento do uso de dispositivos móveis, restringindo a habilidade de usuários para ter acesso dados e limitando a entrega de operações realizadas sobre dados móveis. Todos os protocolos tendem a alcançar o pentágono, figura abaixo, mas nenhum protocolo estudado alcança tal objetivo.
 	O Pentágono da Sincronização em Ambientes Móveis A sincronização entre dispositivos móveis é determinada por uma variedade de fatores, incluindo a latência da sincronização, a quantidade de bateria utilizada, o custo monetário envolvido (conexão à rede, tempo, etc.), a robustez e a confiabilidade da rotina de sincronização. Um bom protocolo de sincronização é aquele que tende a estas direções.
	
INTERFACE COM USUARIO.
 		Há um questionamento comum sobre as melhores práticas de front-end / usabilidade para dispositivos móveis é o quanto elas são específicas ao contexto mobile, pois muitas delas não se distinguem das diretrizes que vêm sendo difundidas há 20 anos.
 É fato que grande parte das diretrizes são semelhantes, mas o que muda é a criticidade quando tratamos de mobile. Algumas recomendações tornam-se mais graves e imperdoáveis quando não são seguidas no projeto de interfaces para dispositivos móveis.
 Podemos usar a questão da densidade informacional. Em aplicações que serão visualizadas em dispositivos móveis, os textos devem ser concisos, eliminando informações secundárias que podem ser irrelevantes. “Ora, mas isso também vale para aplicações visualizadas em desktop! “, você pensa. Porém, para mobile, a concisão deve ser ainda maior e informações que seriam aceitáveis nas aplicações web/desktop convencionais devem ser removidas de aplicações mobile. A diretriz base é a mesma: reduzir informação secundária. O que diferencia é o grau de severidade que isto representa neste outro cenário.
RECOMENDAÇÕES CRÍTICAS PARA O PROJETO DE INTERFACES MOBILE.
 Desenvolver sites e aplicações para mobile requer atenção para alguns critérios que tem um grande impacto na forma com que as pessoas interagem com estes dispositivos.
 REDUZIR CLICKS.
 Ok, esta parece ser uma recomendação óbvia para ambiente mobile. Porém, quem já desenvolveu para mobile ou utiliza aplicações nestes dispositivos, pense: você já deve ter visto algum site que apresenta uma informação bem limitada na primeira tela com um link de “leia mais”, onde você tem o esforço de clicar e esperar o carregamento do restante do conteúdo que você necessita, que às vezes poderia ser resumido em apenas uma tela.
 Se em um projeto usual de interface as melhores práticas indicam que seria mais adequado disponibilizar toda a informação necessária em uma única tela e poupar cliques do usuário, porque esta diferença em mobile? Por isso, deixar o conteúdo mais conciso é crucial para que a informação possa ser apresentada de modo objetivo e o menos fragmentado possível.
 REDUZIR FUNCIONALIDADES.
 Restringir a quantidade de funcionalidades, mantendo as que são necessárias ao ambiente mobile, diminui a chance dos usuários se confundirem diante de todas as possibilidades e opções oferecidas.
 REDUZIR CONTEÚDO.
 Devido ao tamanho das telas, o conteúdo para mobile exige uma carga cognitiva maior e, portanto, pode ser até duas vezes mais difícil de compreender. Como a memória de curto prazo é fraca, quanto mais os usuários tiverem que rolar para se lembrar de um conteúdo, menos eles o farão.
 DAR ESCOLHAS AO USUÁRIO.
 Textos mais concisos e funcionalidades mais restritas são necessários. Mas é importante manter um link para a versão convencional do site, caso o usuário precise acessar algum recurso que não esteja na versão mobile. O usuário deve ter o direito de escolha sobre como ele deseja visualizar o site.
OUTRAS PRÁTICAS IMPORTANTES QUE HERDAMOS DA USABILIDADE CONVENCIONAL.
INTEGRIDADE ESTÉTICA.
 O quanto o design da sua aplicação se integra com a função da mesma. É o casamento entre forma e função, interface com boa qualidade estética e funcional.
CONSISTÊNCIA.
A consistência de interface permite que o usuário transfira seus conhecimentos e habilidades de uso de uma aplicação para outra. É preciso frisar que uma aplicação consistente não é aquela que copia outras aplicações. Pelo contrário, é uma aplicação que tira proveito dos padrões e paradigmas de interface com os quais as pessoas se sentem mais confortáveis durante a interação.
METÁFORAS.
 Fácil reconhecimento e memorização de palavras, símbolos e imagens.
CONTEXTO DO USUÁRIO.
 Especificação do ambiente do usuário, incluindo também a modelagem de e análise de tarefa e objetivos de negócio.
MODELO MENTAL.
 Organização apropriada de dados, funções, tarefas, papéis e pessoas de acordo com o modo com que o usuário compreende e reconhece estes elementos.
NAVEGAÇÃO.
 Navegação adequada considerando o modelo mental através de janelas, menus, caixas de diálogos e painéis de controle em formato compreensível.
INTERAÇÃO E FEEDBACK.
 Input efetivo e feedback do output de informações para assegurar ao usuário que uma ação está em processamento.
APARÊNCIA E DESIGN.
 Qualidade visual e atenção ao design com relação à escala, proporção, ritmo, simetria e balanceamento de componentes.
VISUALIZAÇÃO DE INFORMAÇÕES.
 Apresentação de informações por tabelas, gráficos, mapas e diagramas. Uma vez que a tela destes dispositivos ainda é pequena em comparação aos computadores comuns (mesmo se tratando de tablets), é preciso se valer de componentes coringas que são capazes de apresentar uma boa quantidade de informação de modo compacto, conciso, de fácil visualização e acessível. Além dessasquestões relativas à interface, temos fatores externos que têm grande influência na interação dentro destes ambientes. É o que veremos na parte II deste artigo.
. FERREMENTAS DE DESENVOLVIMENTO.
 Existem diversas ferramentas para desenvolvimento de aplicações para dispositivos móveis. As ferramentas não ficam distribuídas em melhores ou piores, mas sim em as mais adequadas ao projeto específico. Para escolher a ferramenta levamos em consideração alguns pontos relevantes:
 Tamanho e Performance do aplicativo X Facilidade e Rapidez de desenvolvimento. É claro que os aplicativos desenvolvidos em linguagem C terão um tamanho bem menor do que os demais e a performance poderá ser bem diferenciada. Entretanto, o desenvolvimento em C requer tempo e habilidade por nós já esquecida. A flexibilidade da linguagem C nos dá um poder muito grande, como por exemplo acessar todas as funções do PalmOS. Mas a dificuldade em desenvolver é bem maior comparado a das ferramentas "RAD”, o que implica no fator TEMPO, que é tão importante na hora de dimensionar o prazo de um projeto.
 Ficou claro que quanto maior a facilidade e rapidez de desenvolvimento, maior a possibilidade de termos um aplicativo bem dimensionado, ou um aplicativo não tão grande, porém sujeito a trabalhar com run-time.
Run-time.
Avaliar o espaço ocupado e se a empresa cobra um custo por run-time. 
Preço dos Aplicativos. 
 Avaliar o preço do aplicativo, ficar também atento à licença de uso por tempo determinado, além da política de upgrades. Podemos separar as ferramentas de desenvolvimento em categorias, onde os principais termos de comparação são FLEXIBILIDADE x FACILIDADE/RAPIDEZ de desenvolvimento.
 	Na categoria FÁCIL e RÁPIDO, porém pouco flexível, e ainda sujeito à run-time presente no Palm, ficaram, entre outros, o Satelite Forms, o CASL Tools e o Pendragon Forms. São ferramentas para desenvolvedores bem acostumados a desenvolver sistemas em Delphi, VB e semelhantes. 
 Na categoria FLEXÍVEL e LEVE, porém com uma curva lenta de aprendizado, com o pré-requisito de muito conhecimento em linguagem C, estão o CodeWarrior e o GCC.
 	 O CodeWarrior é o ambiente oficial de desenvolvimento para o PalmOS e permite criar aplicações em ANSI C e C++ no Windows 95/98/NT e Macintosh. 
 O seguinte quadro comparativo foi criado para avaliação das ferramentas encontradas: 
Tabela- ferramentas de desenvolvimento para Palm-Os.
 Como foi citado anteriormente, algumas ferramentas têm seus próprios Conduits. Outras, entretanto, como exemplo o CodeWarrior, cujos aplicativos são PRCs e manipulam PDBs, devem ser complementadas com a aplicação Conduit.
GESTÃO DO CONHECIMENTO.
	A gestão do conhecimento trata-se de uma área de atuação transversal que possui diversas áreas correlacionadas, principalmente, a gestão estratégica, teoria das organizações e sistemas de informação. A gestão do conhecimento promove, com visão integrada, o gerenciamento e compartilhamento de todo o ativo possuído pela empresa. Esta informação pode estar em um banco de dados, em um procedimento ou documento, bem como nos colaboradores com suas experiências e habilidades.
	O conceito de gestão do conhecimento surgiu nas organizações no início da década de 90, segundo Karl Sveiby, a gestão do conhecimento não é apenas um modo de eficiência operacional, mas sim parte da estratégia empresarial. Essa ideia parte da premissa de que todo o conhecimento existente na organização pertence unicamente à mesma. Em contrapartida, todos os colaboradores podem usufruir desse conhecimento, o que pode ser de grande valia, pois, contribui significativamente para a geração de riquezas, lucros e valor para a empresa e para seus colaboradores.
2.3 Elementos da Gestão do conhecimento.
Para melhor compreensão da gestão do conhecimento, primeiramente, deve-se entender os conceitos de dado, informação e conhecimento:
Dado: Para uma organização, um dado é basicamente o registro estruturado de transações, atividades e operações realizadas pela mesma. Trata-se da informação bruta, ou seja, da descrição exata de algo ou de algum evento que tenha ocorrido. Os dados em si não possuem relevância, propósito ou significado, contudo são importantes porque compõem a matéria-prima para criação das informações.
Informação: É uma mensagem com dados que fazem a diferença, podendo ser audível ou visível, e onde existe um emitente e um receptor. É o insumo mais importante na produção humana dentro da organização. Em suma, a informação são dados interpretados, dotados de relevância e algum propósito. Pode-se dizer que é um fluxo de mensagens que são capazes de gerar conhecimento. 
Conhecimento: Deriva da informação e assim como esta, dos dados. O conhecimento não é puro, nem simples, entretanto pode ser considerada uma mistura de elementos formalmente estruturados. Segundo Davenport e Prusak, o conhecimento pode ser comparado a um ser vivo, que cresce e se modifica à medida que interage com o meio ambiente. Os valores e as crenças integram o conhecimento, pois determinam, em grande parte, o que o conhecedor vê, absorve, conclui e realiza, a partir de suas observações.
Com esta explicação, podemos entender que a gestão do conhecimento consiste em organizar e dar coerência aos dados, a informação e o conhecimento da organização. Trata-se de uma gestão que gira em torno da capacidade de gerar, captar, traduzir, modelar, armazenar, disseminar e gerenciar as informações interna ou externamente. Essa informação deve ser transformada em conhecimento e distribuída para os colaboradores. O conhecimento aplicado passa a ser um ativo da empresa e não mais um suporte à tomada de decisão.
3. Objetivos da Gestão do Conhecimento.
A gestão do conhecimento é um recurso estratégico inserido nas empresas e no cotidiano das pessoas. No geral, consiste na modelagem de processos por meio de conhecimentos gerados. Ela visa tornar acessível grandes quantidades de informações organizadas, dando vida aos dados soltos e transformando-os em informação essencial ao desenvolvimento da empresa.
A gestão do conhecimento ainda permite o mapeamento dos ativos intelectuais, possuindo também o intuito de apoiar a geração de novos conhecimentos e o estabelecimento de estratégias competitivas, aumentando a competitividade das organizações, através da valorização de seus bens intangíveis ou do desenvolvimento lógico dos dados de forma a torná-los compreensíveis e de fácil aplicação para todos. Com esses objetivos, a gestão do conhecimento amplia a estratégia competitiva e concorrencial da empresa, reduzindo seus custos com planejamento e desenvolvimento, gerando novos modelos de negócios e melhorando o aproveitamento do seu capital intelectual.
Substancialmente, a gestão do conhecimento acaba favorecendo a organização por meio do seu próprio desempenho, preocupando-se com as condições organizacionais e com o compartilhamento de informações relevantes que geram impactos positivos para a empresa. O capital humano torna-se fonte geradora de receita, a informação se transforma em ferramenta para a comunicação e o relacionamento se torna algo interativo e decorrente das redes pessoais. A gestão do conhecimento amplia a capacidade da companhia, refletindo sobre o desempenho atual e os fatores que o geram. Calculando, planejando e implementando ações para se mover da situação atual para a desejada.
O contexto central da gestão do conhecimento nas organizações é o de aproveitar os recursos que já existem na empresa para que as pessoas encontrem e empreguem as melhores práticas, ao invés de tentar criar algo que já havia sido criado. Trata-se de uma gestão que tem como principal finalidade agregar valor à informação existente, filtrando e resumindo os dados dispersos, as informações e o conhecimento, para que assim se desenvolva numa característica de utilização pessoal e organizacional, auxiliando no alcance da informação necessáriapara a execução de determinada ação.
Entender que a gestão do conhecimento nas organizações é a modelagem dos processos corporativos a partir do conhecimento gerado por quem os exerce, permite a estruturação das atividades organizacionais, com parâmetros gerados pelo monitoramento dos processos. Por fim, percebemos que a gestão do conhecimento é um sistema de gerenciamento corporativo, ou seja, trata-se um conceito gerencial que permite às empresas ganharem poder de competição ante a concorrência, conciliando tecnologias da informação e processos de comunicação com o desenvolvimento constante do aprendizado organizacional.
3.1 As dimensões do conhecimento.
Para que possamos entender a gestão do conhecimento, segundo Terra (2000), há necessidade de que esta seja relacionada a sete dimensões que avaliam a existência de ações, valores, normas e mecanismos compatíveis com a implantação do processo sistêmico de gestão que envolve três diferentes níveis da prática gerencial: o estratégico, o organizacional e o estrutural.
Fatores estratégicos e o papel da alta administração: Seu papel é indispensável na clarificação da estratégia empresarial e na definição de metas.
Cultura e valores organizacionais: A organização deve desenvolver uma cultura voltada à inovação, experimentação, aprendizado contínuo, comprometida com resultados de longo prazo e com a otimização de todas as áreas da empresa.
Estrutura organizacional: Baseadas no trabalho de equipes multidisciplinares com alto grau de autonomia.
Administração de recursos humanos: Melhorando a capacidade das organizações de atrair e reter profissionais com habilidades, comportamentos e competências, estimulando comportamentos alinhados com os requisitos dos processos individual e coletivo de aprendizado e adotando políticas de remuneração, associadas à aquisição de competências individuais, ao desempenho da equipe e da organização.
Sistemas de informação: Processos de geração, difusão e armazenamento de conhecimento, dentro de um ambiente de confiança, transparência e colaboração.
Mensuração dos resultados: Avaliar várias dimensões do capital intelectual.
Aprendizado com o ambiente: Por intermédio de alianças com outras organizações e do estreitamento do relacionamento com clientes.
3.2 Tipos de conhecimento.
A percepção da importância de disseminar conhecimento se tornou um diferencial para melhorar produtividade e competitividade de uma instituição. Para conseguir manter um ritmo equilibrado e o desenvolvimento de competências dentro das equipes o líder tem papel importante e fundamental. Ele deve agir como um gestor de competência entre seus liderados, assegurando que toda a aquisição de conhecimentos esteja de fato agregando valor na preparação destes profissionais e melhorando o desenvolvimento dos projetos.
Diante dessa nova perspectiva, as organizações adotaram novos paradigmas de conhecimento e competência que facilitam o entendimento, classificação e acompanhamento de tais conhecimentos.
Existem dois tipos de conhecimento: Tácito e Explícito que ajudam a promover um modelo de gestão que é conhecido como “Espiral do Conhecimento” e foi definido por Nonaka e Tekeuchi em seu livro Criação do conhecimento na empresa da editora Campus (1997). A teoria sugere e incentiva modelos de transformação dos conhecimentos dentro de uma equipe de projeto, e quando o gerente de projeto consegue dominar essa teoria, fica muito mais fácil conduzir o conhecimento.
Figura Espiral do Conhecimento.
A classificação e definição do tipo de conhecimento facilita a organização do gerenciamento de competências dentro da organização.
Conhecimento explícito: Já o conhecimento explícito diz respeito aos conhecimentos técnicos que são registrados em algum tipo de material físico, como em um vídeo, em um livro, manual, treinamento (slides), enfim é todo conhecimento que é possível compartilhar através de uma simples ferramenta. Ou seja, conhecimento explícito também poderia ser chamado de informação.
Conhecimento tácito: Esse tipo de conhecimento diz respeito à bagagem que a pessoa traz consigo todo conhecimento adquirido em outras experiências, em universidades, na participação de um curso. É aquele conhecimento que a pessoa só consegue transmitir ao outro através da transferência de experiência em um trabalho em grupo, pois é o conhecimento vivenciado, é de fato o que ele sabe e domina na prática.
Tecnologia de RFID e NFC.
			Especificações NFC se resume em um conjunto de tecnologias sem fio de curto alcance (em geral, até 10cm). Consiste de três elementos básicos, assim como em sistemas RFID: um leitor, uma antena e uma etiqueta (tag). 
 		 	Assim como em um sistema RFID, o fluxo básico de dados ocorre da seguinte maneira: o leitor envia sinais de interrogação (pedidos) para as etiquetas através da antena. A etiqueta então envia sua resposta de identificação, que será transmitida através de sua antena.
 		As etiquetas são classificadas em passivas ou ativas.
Etiquetas ativas: possuem uma bateria que alimenta constantemente a etiqueta.
Etiquetas passivas: não possuem bateria. São menores e mais baratas que as ativas. Para iniciarem o envio de um sinal, precisam ser alimentadas por alguma fonte de energia. Em especial, são alimentadas pelas ondas de rádio geradas pelo leitor.
Elas possuem entre 96 e 4096 bytes de memória, dependendo da aplicação em que são utilizadas.
A transmissão no NFC é feita em uma frequência de 13,56 MHz - a mesma frequência de sistemas RFID HF, padrão ISO/IEC 18000-3. Isto permite que um dispositivo NFC se comunique com uma etiqueta passiva de RFID de alta frequência. A transmissão ocorre a taxas de 106 kbps, 212 kbps ou 424kbps.
A comunicação em NFC envolve um iniciador e um alvo, e pode ser dividida em dois modos:
Comunicação ativa: no caso em que tanto o iniciador quanto o alvo possuem fontes de alimentação, a comunicação pode ser feita com os dois dispositivos gerando alternadamente suas ondas de rádio. Cada dispositivo desliga o seu campo quando está à espera dos dados. Em outras palavras, ambos os dispositivos atuam como leitor e etiqueta. Este é o modo que permite a comunicação Peer-to-Peer
Comunicação passiva: o dispositivo iniciador, que atua como leitor, gera ondas de rádio ativamente (ou seja, precisa de alimentação) que irão energizar passivamente o dispositivo alvo, que atua como etiqueta. A alimentação passiva entre dispositivos é possível graças à antena NFC, já que ela é na verdade um grande indutor - um fio condutor em forma de espiral. Quando o campo magnético de um indutor (antena) passa por outro indutor, uma corrente induzida será gerada no segundo indutor. De fato, isto é explicado por dois princípios fundamentais: a lei de Oersted, que afirma que uma corrente em um condutor produz um campo magnético correspondente, e a lei de Faraday, que afirma que um fluxo magnético variável induz uma força eletromotriz (e, portanto, uma corrente) em um condutor próximo
 Antena NFC.
 Porém, após ressaltar diversas semelhanças entre RFID e NFC, resta uma pergunta: qual a diferença entre NFC e RFID?
Diferenças entre NFC e RFID
Na verdade, as diferenças entre NFC e RFID são poucas. Conceitualmente, ambos são quase que idênticos. Porém, as diferenças práticas existem, devido a diferenças de implementação. A primeira diferença está nos modos de comunicação possíveis. Por definição, RFID consiste em técnicas de identificação através de ondas de rádio. Portanto, a comunicação em um único sentido (ou seja, um dispositivo leitor enviando sinais de interrogação a uma etiqueta, que somente poderá responder aos sinais de interrogação) é suficiente. Na verdade, é o único sentido possível.
Já um dispositivo NFC, por poder gerar alternadamente as ondas de rádio com outro dispositivo, pode atuar tanto como uma etiqueta como um leitor. Isto possibilita umacomunicação Peer-to-Peer, ou seja, uma troca verdadeira de informações. Como exemplo, podemos citar os smartphones modernos.
A segunda diferença está relacionada ao alcance.
Sistemas RFID tradicionais podem apresentar um bom alcance (de dezenas de metros, variando de acordo com o tipo de etiqueta). Esta característica certamente é favorável a várias aplicações. Já os dispositivos NFC apresentam um alcance pequeno, de no máximo 10cm. Mas na verdade, está limitação no alcance apresenta algumas vantagens. O alcance limitado oferece maior segurança na comunicação, já que dificulta a ocorrência de ataques. Para que um ataque seja realizado com sucesso, o atacante deve estar próximo aos dispositivos que estão se comunicando. Mesmo com todas as condições favoráveis, ele deveria estar a no máximo uma distância de 1 ou 2 metros, como veremos em breve. Além disso, em locais lotados o baixo alcance do NFC possibilitaria que várias pessoas pudessem transferir informações sem que houvesse interferência entre as diversas ondas transmitidas.
NFC x Bluetooth.
Quando pensamos em tecnologias de comunicação sem fio de curto alcance, certamente uma das primeiras que vêm à mente é o Bluetooth. Podemos destacar algumas diferenças significativas entre esta tecnologia e o NFC, sem levar em consideração aspectos técnicos específicos de cada tecnologia, como, por exemplo, os padrões utilizados por cada uma.
A primeira delas está relacionada ao alcance. Enquanto o NFC atinge um alcance de menos de 10cm, o Bluetooth pode atingir um alcance de até 100m (com a chamada classe 1). Novamente podemos considerar as vantagens de um baixo alcance vistas anteriormente.
A segunda está relacionada com a taxa de transmissão. Enquanto o NFC atinge uma velocidade máxima de 424kbps, o Bluetooth consegue transmitir a 2,1Mbps.
A terceira diferença está relacionada com o consumo de energia.
O consumo de energia para a transmissão com NFC é bem menor que a feita com Bluetooth (levando em conta a classe 1). Enquanto que utilizando NFC o consumo máximo é de 15mA, utilizando Bluetooth o consumo máximo é de 30mA (porém, vale lembrar que a tecnologia Bluetooth low energy (BLE) consegue atingir um consumo ainda menor que o do NFC). Porém, caso o dispositivo NFC tenha que alimentar outro dispositivo, como, por exemplo, uma etiqueta passiva, o consumo de energia passa a ser maior que o do Bluetooth.
A quarta e última diferença significativa está no tempo de setup.
Enquanto que para preparar uma comunicação Bluetooth temos que realizar alguns passos manualmente, levando alguns segundos, a comunicação por NFC pode ser preparada automaticamente e rapidamente, podendo levar menos de 0,1s.
Estas diferenças podem serem aproveitadas de forma melhor entre dois mundos. Caso o usuário queira uma conexão rápida e sem a necessidade de ficar “colado” com o outro dispositivo, uma conexão NFC inicial pode ser facilmente estabelecida para realizar os procedimentos necessários a uma conexão Bluetooth, que se encarregaria do resto da transmissão.
3.3 SEGURANÇA DE SISTEMAS ONLINE.
	O medo de ser infectado pelas pragas da internet é cada vez mais comum. Quanto mais a tecnologia se desenvolve, mais coisas são feitas pelos computadores pessoais e dispositivos móveis, como pagamento de contas, arquivos com informações pessoais. Dessa forma, também aumenta o interesse dos hackers em invadir os sistemas, a equipe de TI deve manter todos os equipamentos da rede, que executam firmware, atualizados. Manter relatórios de equipamentos e versões de firmware que estão rodando. Executar as atualizações dos firmwares quando saírem; 
	Tal procedimento evitará golpes e invasões que utilizam brechas de segurança na rede e consequentemente nos sistemas;
	A equipe de TI deve estar atualizada quando a patches de segurança lançada pelas empresas de softwares: sistema operacionais, aplicativos, ferramentas, plug-ins. Para tal, deve estar inscrita em newsletter diversas, que contemplem as principais áreas da segurança da informação;
	Atualizar frequentemente os sistemas operacionais; devem configurar, pelo menos um servidor de atualizações ou fazê-las manualmente em cada servidor e em cada terminal da rede;
	Manter antivírus, anti-malware, anti-spam e outras anti-pragas virtuais atualizados;
	Não desprezar a utilidade do Firewall; é trabalhoso configurar, mas, evita dores de cabeça e perca de dados e evita acessos indevidos;
Instruir a todos, incluindo os da alta administração quanto aos cuidados com e-mail, golpes do tipo Phishing, Acesso remoto indevido, engenharia social;
	Configurar permissões e regras de acesso à rede de dispositivos móveis. Proteger a rede evitando o uso de dispositivos móveis como pendrives;
	Para falhas de segurança e invasões, quando ocorrem, é necessário ter cópia de segurança. Faça back-ups diariamente;
	Não permitir senha em branco, senhas padrões em Sistemas Operacionais e equipamentos de rede. Manter uma política de senha forte;
	Configurar corretamente as permissões de pastas e páginas, quando se tem acesso a servidor web, servidor de e-mail, ftp, etc. 
CONCLUSÃO.
			
			 Através da pesquisa e o desenvolvimento deste portfolio foram apresentados vários recursos para dispositivos móveis, tais como a persistência que é a capacidade de persistir dados ou armazenar informações, bem como, threads, sincronismo de processos, interface com os usuários e outros.
			Sobre os critérios utilizados para atender a gestão e segurança dos sistemas de informação, foi observado que a engenharia social é um meio utilizado para obter acesso a informações importantes ou sigilosas em organizações ou sistemas por meio da enganação ou exploração da confiança das pessoas. 	
			Outros critérios que foram aqui mencionados como as vulnerabilidades, ameaças e ataques, as medidas de segurança e políticas de segurança e auditoria, notando-se que foram referenciadas dicas para a segurança dos sistemas informáticos limitando-se geralmente a garantir os direitos de acesso aos dados e recursos de um sistema implementando mecanismos de autenticação e de controle que permitem garantir que os utilizadores dos ditos recursos possuem unicamente os direitos que lhes foram concedidos.
REFERÊNCIAS
AAKER, David Austin. Criando e administrando marcas de sucesso. São Paulo: Futura, 1996.
REIS, José Luís. O marketing personalizado e as tecnologias de Informação. Lisboa: Centro Atlântico, 2000. Acessado em 10 de outubro de 2015.
Wikipédia: <https://pt.wikipedia.org/wiki/Tecnologia_m%C3%B3vel>. Acessado em 10 de outubro de 2015.
Wikipédia: <https://pt.wikipedia.org/wiki/Sincronia_de_processos>>. Acessado em 10 de outubro de 2015.
Devmedia: <http://www.devmedia.com.br/artigo-webmobile-3-persistencia-em-aplicativos-para-dispositivos-moveis-com-j2me/2725>. Acessado em 10 de outubro de 2015.
Devmedia:<http://www.devmedia.com.br/trabalhando-com-threads-em-java/28780>. Acessado em 10 de outubro de 2015.
Site UFRJ: <http://www.gta.ufrj.br/ensino/eel879/trabalhos_vf_2013_2/nfc/funcionamento.html>. Acessado em 10 de outubro de 2015.
Tableless:<tableless.com.br/usabilidade-de-interfaces-para-dispositivos-moveis-parte1/>. Acessado em 10 de outubro de 2015.
Sistema de Ensino Presencial Conectado
análise e desenvolvimento de sistemas.
adilson alves de abreu.
Projeto de Sistemas de Informação ll
Lavras
2015
adilson alves de abreu.
Projeto de Sistemas de Informação ll
Trabalho de Projeto de sistemas de Informação ll apresentado à Universidade Norte do Paraná - UNOPAR, como requisito parcial para a obtenção de média semestral nas disciplinas de Fundamentos de Redes de Computadores; Tópicos Avançados em Desenvolvimento de Sistemas; Gestão do Conhecimento.
Orientador: Prof. Paulo K. Nishitani;Prof. Anderson E.M. Gonçalves; Merris Mozer. 
 
Lavras
2015

Outros materiais