Criou página com '= Cliente Servidor = Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as referëncias (fontes) no último item, reforçand...' |
Sem resumo de edição |
||
| (7 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
| Linha 6: | Linha 6: | ||
<br> | <br> | ||
= Conceito = | == Conceito == | ||
<br> | <br> | ||
Um sistema de banco de dados, na sua maioria, pode ser considerado como sendo uma estrutura dividida em duas partes, consistindo em um servidor e um conjundo de clientes. A arquitetura cliente/ servidor é atualmente a principal paltaforma tecnológica da industria da tecnologia da informação. A sua popularização se deve aos vários fatores oriundos do processo de achatamento das estruturas organizacionais, fazendo com que muitos dos sistemas fossem descentralizados. | Um sistema de banco de dados, na sua maioria, pode ser considerado como sendo uma estrutura dividida em duas partes, consistindo em um servidor e um conjundo de clientes. A arquitetura cliente/ servidor é atualmente a principal paltaforma tecnológica da industria da tecnologia da informação. A sua popularização se deve aos vários fatores oriundos do processo de achatamento das estruturas organizacionais, fazendo com que muitos dos sistemas fossem descentralizados. | ||
Segundo Renaud (1994,p3) "cliente/servidor é um conceito lógico, mais precisamente um paradigma, ou modelo para interação entre processos de software em execução concorrente". Ou seja este conceito foi criado com o objetivo de possibilitar que vários tipos de aplicações, executadas em máquinas distintas, se comuniquem entre si, de forma independente. | Segundo Renaud (1994,p3) "cliente/servidor é um conceito lógico, mais precisamente um paradigma, ou modelo para interação entre processos de software em execução concorrente". Ou seja este conceito foi criado com o objetivo de possibilitar que vários tipos de aplicações, executadas em máquinas distintas, se comuniquem entre si, de forma independente. | ||
= Estrutura em Camadas = | == Estrutura em Camadas == | ||
<br> | <br> | ||
= MVC = | == MVC == | ||
<br> | <br> | ||
O padrão arquitetural Model-View-Controller (MVC) é uma forma de quebrar uma aplicação, ou até mesmo um pedaço da interface de uma aplicação, em três partes: o modelo, a visão e o controlador. Inicialmente foi desenvolvido no intuito de mapear o método tradicional de entrada, processamento, e saída que os diversos progamas baseados em interface gráfica de usuário utilizavam. No padrão teriamos o mapeamento de cada uma dessas partes da seguinte maneira: Input > Processing > Output > Controller > Model > View. | O padrão arquitetural Model-View-Controller (MVC) é uma forma de quebrar uma aplicação, ou até mesmo um pedaço da interface de uma aplicação, em três partes: o modelo, a visão e o controlador. Inicialmente foi desenvolvido no intuito de mapear o método tradicional de entrada, processamento, e saída que os diversos progamas baseados em interface gráfica de usuário utilizavam. No padrão teriamos o mapeamento de cada uma dessas partes da seguinte maneira: Input > Processing > Output > Controller > Model > View. | ||
Sendo assim o controlador (Controller) interpreta as entradas enviadas pelo usuário e mapeia essas ações do usuário em comandos que são enviados para o modelo (Model) e/ou para a janela de visualização (View) para efetuar a alteração apropriada. Já o modelo (Model) gerencia um ou mais elementos de dados, responde a pergundas sobre o seu estado e responde as instruções para mudar de estado. O modelo sabe o que o aplicativo quer fazer e é a principal estrutura computacional da arquitetura, pois é ele quem modela o problema que está se tentando resolver. Finalizando, a visão (View) gerencia a área do display e é responsavél por apresentar as informações para o usuário através de uma combinação de gráficos e textos. A visão não sabe nada sobre o que a aplicação está atualmente fazendo, tudo que ela realmente faz é receber instruções do controle e informações do modelo e então exibir elas. | Sendo assim o controlador (Controller) interpreta as entradas enviadas pelo usuário e mapeia essas ações do usuário em comandos que são enviados para o modelo (Model) e/ou para a janela de visualização (View) para efetuar a alteração apropriada. Já o modelo (Model) gerencia um ou mais elementos de dados, responde a pergundas sobre o seu estado e responde as instruções para mudar de estado. O modelo sabe o que o aplicativo quer fazer e é a principal estrutura computacional da arquitetura, pois é ele quem modela o problema que está se tentando resolver. Finalizando, a visão (View) gerencia a área do display e é responsavél por apresentar as informações para o usuário através de uma combinação de gráficos e textos. A visão não sabe nada sobre o que a aplicação está atualmente fazendo, tudo que ela realmente faz é receber instruções do controle e informações do modelo e então exibir elas. | ||
= Funções do Servidor = | == Funções do Servidor == | ||
<br> | <br> | ||
O sistema servidor é responsavel por receber dos clientes as requisições, processa-las e devolve-las ao mesmo os resultados. A grande vantagem desse sistema é a capacidade de ser totalmente reativo, isso faz com que o servidor não procure interagir com outros servidores durante um pedido de requisição, o que torna o processo de ativação uma tarefa a ser desempenhada apenas pelo cliente que o solicitou. O sistema servidor possui um conjunto de funcionalidades necessárias ao processamento de informação através da rede. estes componentes são divididos em: | O sistema servidor é responsavel por receber dos clientes as requisições, processa-las e devolve-las ao mesmo os resultados. A grande vantagem desse sistema é a capacidade de ser totalmente reativo, isso faz com que o servidor não procure interagir com outros servidores durante um pedido de requisição, o que torna o processo de ativação uma tarefa a ser desempenhada apenas pelo cliente que o solicitou. O sistema servidor possui um conjunto de funcionalidades necessárias ao processamento de informação através da rede. estes componentes são divididos em: | ||
| Linha 27: | Linha 27: | ||
*Sistema gerenciador de banco de dados; | *Sistema gerenciador de banco de dados; | ||
= Funções do cliente = | == Funções do cliente == | ||
<br> | <br> | ||
O sistema cliente é responsável pela tarefa de requisição de pedidos ao servidor e por toda a parte relativa à interação com o usuário final. Normalmente os sistemas cliente abstraem do usuário todas as funções de rede e do servidor, fazendo parecer que todos os processos estão rodadando em um mesmo local. Para fazer esta interação, o sistema abrange um conjunto de componentes básicos que auxiliam nas funcionalidades, tanto a nível de aplicação como de sistema. Estes componentes de acordo com Melo (1997) são agrupados em: | O sistema cliente é responsável pela tarefa de requisição de pedidos ao servidor e por toda a parte relativa à interação com o usuário final. Normalmente os sistemas cliente abstraem do usuário todas as funções de rede e do servidor, fazendo parecer que todos os processos estão rodadando em um mesmo local. Para fazer esta interação, o sistema abrange um conjunto de componentes básicos que auxiliam nas funcionalidades, tanto a nível de aplicação como de sistema. Estes componentes de acordo com Melo (1997) são agrupados em: | ||
| Linha 36: | Linha 36: | ||
*Interface gráfica de usuário; | *Interface gráfica de usuário; | ||
= Protocolos = | == Protocolos == | ||
<br> | <br> | ||
= Referências bibliográficas = | == Referências bibliográficas == | ||
<br> | <br> | ||
DOERNER, John Cristian. '''Protótipo De Um Banco De Dados Relacional Cliente/ Servidor'''. 88 f. Trabalho de conclusão de curso - Ciências da Computação, Universidade Regional de Blumenau SC, 2004. Disponivel em : <http://www.inf.furb.br/departamento/arquivos/tccs/monografias/2004-1johncdoernervf.pdf>. Acessado em: 13/05/2016. | DOERNER, John Cristian. '''Protótipo De Um Banco De Dados Relacional Cliente/ Servidor'''. 88 f. Trabalho de conclusão de curso - Ciências da Computação, Universidade Regional de Blumenau SC, 2004. Disponivel em : <http://www.inf.furb.br/departamento/arquivos/tccs/monografias/2004-1johncdoernervf.pdf>. Acessado em: 13/05/2016. | ||
| Linha 48: | Linha 48: | ||
================================================================================================================================================================ | ================================================================================================================================================================ | ||
Firmware | = Firmware | ||
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | ||
| Linha 125: | Linha 125: | ||
================================================================================================================================================================ | ================================================================================================================================================================ | ||
Interfaces Físicas | = Interfaces Físicas = | ||
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | ||
| Linha 199: | Linha 199: | ||
================================================================================================================================================================ | ================================================================================================================================================================ | ||
Virtualização | = Virtualização = | ||
== Técnicas == | == Técnicas == | ||
| Linha 303: | Linha 303: | ||
================================================================================================================================================================ | ================================================================================================================================================================ | ||
Mineração de Dados | = Mineração de Dados = | ||
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | ||
| Linha 380: | Linha 380: | ||
================================================================================================================================================================ | ================================================================================================================================================================ | ||
Realidade Aumentada | = Realidade Aumentada = | ||
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | ||
| Linha 456: | Linha 456: | ||
================================================================================================================================================================ | ================================================================================================================================================================ | ||
Sistema Embarcado | = Sistema Embarcado = | ||
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | ||
| Linha 488: | Linha 488: | ||
================================================================================================================================================================ | ================================================================================================================================================================ | ||
Sistema Operacional | = Sistema Operacional = | ||
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | ||
| Linha 592: | Linha 592: | ||
https://www.youtube.com/watch?v=Zl9w2HbUecU | https://www.youtube.com/watch?v=Zl9w2HbUecU | ||
---------------------------------------------------------------------------------------------------- | |||
= CLP = | |||
= Conceito = | |||
<br> | |||
* O que é? | |||
** CLP,controlador lógico programável,é uma espécie de computador industrial utilizado geralmente para a automatização e controle de processos. Os primeiros CLPs começaram a aparecer na década de 1960 para substituir os relés eletromagnéticos, que além de ocupar muito espaço estavam se tornando um sistema muito complexo e não tão eficiente para o controle lógico de alguns processos. | |||
** O CPL consiste num sistema de entradas e saídas,as entradas captam os dados que vem do processo a partir de instrumentos de medição e informam por meio de uma rede de comunicação ao controlador que processa esses dados e por meio das saídas atuam no processo,controlando então a velocidade por exemplo de um motor, a abertura de uma válvula, com o fim de atuar na variável que foi medida anteriormente. | |||
* Porque é interessante? | |||
** Atualmente quase não é possível imaginar um processo industrial de proporções médias,ou grandes sem o uso de CPLs, eles possibilitaram uma evolução muito grande ,pois com uma maior capacidade de controle puderam aumentar eficiência,velocidade e capacidade das indústrias. | |||
* Quais as características marcantes? | |||
** O sistema de CLPs é extremamente confiável,facil de se programar, facil de se expandir e capacidade de processamento. | |||
* Como está o Brasil neste segmento? | |||
** Existem pouquíssimas empresas brasileiras que desenvolvem CLPs no que se refere a Hardwere, a maior parte das CLPs utilizados no Brasil são de origem alemã ou norte americana,entretanto no que tange aos softweres que gerem os sistemas controlados por CLPs tempos os SCADAbr q é brasileiro e open source. | |||
<br> | |||
= Software = | |||
<br> | |||
* Qual o papel do software? | |||
** O softwere controla praticamente tudo no CLP,como deve ser tratada a informação que vem dos sensores,e o como deve ser o sinal de saída que vai para os atuadores, | |||
* Como funciona? | |||
** A programação de um CLP é feita geralmente em linguagem Ladder,que é uma espécie de diagrama composto por bobinas,contatos e blocos funcionais, com o intuito de facilitar o usuário a programar. Nesse diagrama ele configura o que está em cada entrada e saída,e como o controlador deve atuar no processo de acordo com a informação recebida por cada um de seus dispositivos entrada. | |||
= Aplicação = | |||
<br> | |||
* Cite as situações onde podemos usar esta tecnologia? | |||
** Os CLPs podem ser utilizados em qualquer tipo de sistema de controle ,porém devido ao seu alto custo eles são aplicados em processos industriais com proporções relativamente grandes. | |||
<br> | |||
== Tecnologias == | |||
<br> | |||
* Quais tecnologias são usadas? | |||
**Diversas tecnologias são utilizadas em CLPs por se tratar de uma estrutura muito complexa,no entanto uma área que se destaca no que tange esse assunto são os sistemas embarcados, tais controladores lógicos programáveis agregam tecnologias que são referências nessa área. | |||
<br> | |||
* Exemplos de interface? | |||
** Os CLPs em muitas partes do processo atuam autonomamente,entretanto em algumas precisa-se que exista a interação homem máquina para isto é utilizado os sistemas chamados de supervisórios,ou SCADA,nessa interface são mostrados os dados que são coletados pelo CLPs a partir dos sensores,e se o operador necessitar ele poderá atuar no processo.Fora isso as entradas e saídas dos CLPs são compostas por diversos tipos de sensores,e atuadores respectivamente. | |||
<br> | |||
= Estado da Arte = | |||
<br> | |||
* Atualmente se trabalha com o termo Controlador de Automação Programável como a evolução dos CLPs,estes são considerados a junção dos controladores lógicos com computadores industriais,pois apresentam uma maior capacidade de*processamento,podendo implementar algorítimos mais complexos. | |||
* Com a evolução da telefonia móvel e da capacidade dos smartphones existe uma tendência a se explorar um modo de levar o sistema supervisório para o celular,dando a a capacidade ao operador de visualizar via WI-FI todas as informações relacionadas a um processo industrial específico. | |||
= Referências = | |||
<br> | |||
*www.mecatronicaatual.com.br/ | |||
*www.automacaoindustrial.info/ | |||
*www.lee.eng.uerj.br/ | |||
*www.weg.net | |||
*www.automationdirect.com | |||
*www.amci.com | |||
---------------------------------------------------------------------------------------------------- | |||
= ETL = | |||
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | |||
referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese | |||
das pesquisas que fizer. | |||
<br> | |||
= Conceito = | |||
<br> | |||
ETL é uma sigla em inglês que significa Extract Transform Load, que traduzida para o português significa Extração, Transformação e Carga. O trabalho do ETL está ligado a extração de dados de fontes externas, transformação para atender às necessidades de negócios e carga dos dados dentro do Data Warehouse. O ETL pode ser realizado de uma ou mais bases de dados de origem para uma ou mais bases de dados de destino (Data Warehouse). | |||
A extração e carga são obrigatórias para o processo, sendo a transformação/limpeza opcional. | |||
= Funcionamento = | |||
<br> | |||
Antes de iniciar um Projeto de ETL é necessário definir claramente quais dados vão alimentar o Data Warehouse, a estrutura deve ser desenhada fazendo uma relação dos dados que serão extraídos de vários sistemas e as informações que devem ser geradas a partir deste repositório. Analisar a viabilidade dos dados. Deve-se verificar os requisitos do negocio e as Políticas de Compliance e Segurança. | |||
O funcionamento do sistema ETL: | |||
1º) Extração: Coletar os dados dos sistemas de origem (também chamados Data Sources ou sistemas operacionais), extraindo-os e transferindo-os para o ambiente de Data Warehouse, onde o sistema de ETL pode operar independente dos sistemas operacionais. | |||
2º) Limpeza, Ajustes e Consolidação (chamado transformação): É nesta etapa que realizamos os devidos ajustes, podendo assim melhorar a qualidade dos dados e consolidar dados de duas ou mais fontes. | |||
O estágio de transformação aplica um série de regras ou funções aos dados extraídos para ajustar os dados a serem carregados. Algumas fontes de dados necessitarão de muito pouca manipulação de dados. Em outros casos, podem ser necessários trabalhar algumas transformações, como por exemplo, Junção de dados provenientes de diversas fontes, seleção de apenas determinadas colunas e Tradução de valores codificados (se o sistema de origem armazena 1 para sexo masculino e 2 para feminino, mas o data warehouse armazena M para masculino e F para feminino, por exemplo). | |||
3º) Entrega ou Carga dos dados: Consiste em fisicamente estruturar e carregar os dados para dentro da camada de apresentação seguindo o modelo dimensional. Dependendo das necessidades da organização, este processo varia amplamente. Alguns data warehouses podem substituir as informações existentes semanalmente, com dados cumulativos e atualizados, ao passo que outro DW (ou até mesmo outras partes do mesmo DW) podem adicionar dados a cada hora. A latência e o alcance de reposição ou acréscimo constituem opções de projeto estratégicas que dependem do tempo disponível e das necessidades de negócios. | |||
4º) A parte de Gerenciamento é composta por serviços para auxiliar no gerenciamento do DataWarehouse. Aqui nós temos tasks específicas para gerenciamento de jobs, planos de backup, verificação de itens de segurança e compliance. | |||
O Ciclo de vida do Data Warehouse é composto por uma série de etapas. Inicia-se pelo planejamento do Programa ou Projeto, passamos pelo levantamento e definição dos requisitos de negócios e aí nos dividimos em 3 caminhos… Um seguindo a parte de Arquitetura e Design Técnico, Outro trabalhando a definição da Modelagem Dimensional, o Desenho físico e a parte de ETL, e um terceiro caminho que trata do planejamento e desenvolvimento da aplicação de BI, o front end propriamente dito. | |||
= Vantagens = | |||
<br> | |||
Desenvolvimento das cargas: Desenvolver uma rotina de carga em uma ferramenta de ETL é muito mais fácil e rápido que codificá-la. Dependendo da facilidade da ferramenta é possível inclusive que usuários não técnicos a utilizem para cargas mais simples. | |||
Manutenção das cargas: As tarefas de manutenção de uma rotina de carga são mais fáceis de realizar em relação à manutenção de código. | |||
Desempenho: As ferramentas de ETL utilizam métodos mais performáticos para trabalhar com grandes volumes e normalmente conseguem extrair, transformar e carregar dados com mais velocidade e menos utilização de recursos. Isso inclui operações não logadas, gravações em bloco, etc. | |||
Execução em paralelo: Ferramentas de ETL possuem recursos de paralelização nativos e facilmente implementáveis. | |||
Escalabilidade: Ferramentas de ETL podem ser transferidas de servidor mais facilmente e até eventualemente distribuir sua carga entre vários servidores. | |||
Diversidade de conectores: A conexão de uma ferramenta de ETL com múltiplas fontes de dados é transparente. Caso apareça alguma fonte não trivial como o SAP, Mainframe, VSAM, etc é possível adquirir o conector sem a necessidade de codificar um. | |||
Separação entre funcionalidade e manipulação de dados: Uma ferramenta de ETL já possui suas funcionalidades disponíveis (Lookup, Merge, Split, Expressões calculadas, etc). Só é necessário concentrar-se em como fluir os dados dentro da carga e não codificar cada tarefa da carga. | |||
Reusabilidade: Uma carga normalmente pode ser reaproveitada dentro de outras cargas ou sobre a forma de um template | |||
Reinicialização: Ferramentas de ETL possuem a capacidade de reiniciar a carga de onde pararam sem a necessidade de codificar essa inteligência | |||
Manutenção de Metadados: Os metadados são gerados e mantidos automaticamente com a ferramenta evitando que problemas de conversão gerem dados não íntegros ao final do processo. A manutenção de metadados também evita ou alerta para alterações de esquema que invalidem a carga. | |||
Documentação: As ferramentas de ETL possuem mecanismos de documentação (quando não são autoexplicativas). Isso pode ser um diferencial significativo principalmente para equipes de alta rotatividade. | |||
Maior garantia da qualidade dos dados: Ferramentas de ETL podem disponibilizar meios para trabalhar a qualidade dos dados através de algoritmos complexos (lógica fuzzy, IA, etc). | |||
Auditoria & Tracking: É possível implementar recursos de auditoria e tracking para conhecer de onde veio o registro, que transformações sofreu e como foi carregado. | |||
Segurança: É possível tornar a segurança mais modular dividindo-se os papéis (criação de cargas, execução de cargas, agendamento, etc). | |||
= Motivos para utilização = | |||
<br> | |||
Performace: mais rápido e eficiente que as tradicionais soluções de BI de base OLAP. | |||
Fluxo visual: Fluxo visual das cargas e dos processos de forma estruturada e lógica. | |||
Controle de cargas: Capacidade não apenas de fornecer o monitoramento do sucesso ou não das cargas, mas uns níveis de detalhe de quais problemas ocorreram, em que tabelas, quais registros duplicados ou rejeitados. Algumas delas fornecem modelos prontos para relatórios de operação de cargas. | |||
Tratamento de Flat Files: Possibilidade de mapear arquivos csv"s, txt"s, dbf"s etc...sem grandes esforços também é característico das ferramentas de ETL. | |||
= Exemplos de software = | |||
<br> | |||
Microsoft SQL Server Integration Services. | |||
Talend Open Studio. | |||
CloverETL. | |||
GeoKettle ETL. | |||
Jaspersoft ETL. | |||
HPCC Systems. | |||
= Relação com BI = | |||
<br> | |||
O ETL é uma ferramenta utilizada para extração, transformação e carga de dados que serão utilizados no BI. | |||
= Referências bibliográficas = | |||
<br> | |||
http://www.devmedia.com.br/extract-transformation-and-load-etl-ferramentas-bi/24408 | |||
http://www.linhadecodigo.com.br/artigo/2204/devo-utilizar-uma-ferramenta-de-etl.aspx | |||
http://corporate.canaltech.com.br/noticia/business-intelligence/entendendo-o-processo-de-etl-22850/ | |||
http://www.fsma.edu.br/si/Artigos/V2_Artigo1.pdf | |||
https://vivianeribeiro1.wordpress.com/2011/06/28/o-que-e-etl-2/ | |||
http://www.predictiveanalyticstoday.com/top-free-extract-transform-load-etl-software/ | |||
https://gustavomaiaaguiar.wordpress.com/2010/05/10/por-que-utilizar-uma-ferramenta-de-etl/ | |||
https://www.oficinadanet.com.br/post/13153-o-que-e-business-intelligence | |||
---------------------------------------------------------------------------------------------------- | |||
= Fibras Ópticas = | |||
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | |||
referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese | |||
das pesquisas que fizer. | |||
<br> | |||
= Conceito = | |||
<br> | |||
Fibras ópticas, simplificadamente, são fios que conduzem a potência luminosa injetada pelo emissor de luz, até o fotodetector. São estruturas transparentes, flexíveis, geralmente compostas por dois materiais dielétricos, tendo dimensões próximas a de um fio de cabelo humano. | |||
<br> | |||
Há uma região central na fibra óptica, por onde a luz passa, que é chamada de núcleo. O núcleo pode ser composto por um fio de vidro especial ou polímero que pode ter apenas 125 micrômetros de diâmetro nas fibras mais comuns e dimensões ainda menores em fibras mais sofisticadas. | |||
<br> | |||
Fibra Óptica ou Ótica, como também é conhecida, é o meio pelo qual a potência luminosa injetada pelo Emissor de Luz, é transmitida até o Fotodetector. Formada por um Núcleo de material dielétrico, geralmente Óxido de Silício (SiO2), dopado com Germânio, Fósforo e Alumínio para aumentar seu índice de refração, e por uma Casca de material dielétrico, podendo ser Sílica pura, com índice de refração ligeiramente inferior ao do Núcleo, o Cabo Ótico é protegido mecanicamente e ambientalmente por encapsulamentos (geralmente plásticos), conforme sua aplicação, podendo conter uma ou mais Fibras. | |||
<br> | |||
<br> | |||
[[Arquivo:fibra_detalhamento.jpg]] | |||
<br> | |||
Exposição da Fibra Óptica em Camadas | |||
<br> | |||
<br> | |||
Para confinar a luz dentro do Núcleo (fenômeno denominado Reflexão Total), a densidade ou índice de refração deve ser maior no Núcleo do que na Casca, variação que permite a reflexão da luz. | |||
<br> | |||
A Fibra Ótica transmite luz introduzida numa extremidade para a outra com pequena perda, devido a sequência de reflexões ao longo do caminho. Para exemplificar, imagine um tubo plástico de pequeno diâmetro, flexível e internamente espelhado. Em uma das pontas se injeta um Raio Laser, que é refletido ao longo de todo percurso pela superfície espelhada, mesmo nas curvas. Na outra ponta, o Raio Laser é detectado. | |||
<br> | |||
A luz, nos sistemas de Fibra óptica, é transmitida por variação de amplitude, existindo processos analógicos e digitais. | |||
<br> | |||
<br> | |||
'''Com capacidade de transmissão 1 milhão de vezes maior do que a do Cabo Metálico, a Fibra Óptica é o principal meio de comunicação mundial.''' | |||
<br> | |||
<br> | |||
---- | |||
Mantendo somente Cabos Metálicos como condutores de informações, em certos casos seria mais rápido enviar uma pessoa para entregar a correspondência, do que transmitir tais dados. | |||
<br> | |||
Para transmitir um pacote de informações com 72Gb- que corresponde ao conteúdo de um disco rígido de 9Gb- a uma distância de 10Km, utilizando Cabo Metálico, seriam necessárias dez horas. Por Fibra Ótica seriam gastos apenas 7,2 segundos. | |||
<br> | |||
Analogamente, se num estádio de futebol lotado houvesse apenas uma pequena porta de saída, o tempo para esvaziá-lo seria muito maior do que utilizando diversos portões. | |||
<br> | |||
= Funcionamento = | |||
<br> | |||
O funcionamento desses cabos ocorre de forma bem simples. Cada filamento que constitui o cabo de fibra óptica é basicamente formado por um núcleo central de vidro, por onde ocorre a transmissão da luz, que possui alto índice de refração e de uma casca envolvente, também feita de vidro, porém com índice de refração menor em relação ao núcleo. A transmissão da luz pela fibra óptica segue o princípio da reflexão. Em uma das extremidades do cabo óptico é lançado um feixe de luz que, pelas características ópticas da fibra, percorre todo o cabo por meio de sucessivas reflexões até chegar ao seu destino final. | |||
<br> | |||
Reflexão é quando a luz, propagando-se em um determinado meio, atinge uma superfície e retorna para o meio que estava se propagando. | |||
<br> | |||
<br> | |||
'''PRINCÍPIOS DE TRANSMISSÃO''' | |||
<br> | |||
Para que os raios de luz sofram reflexão total na fronteira entre núcleo e casca e permaneçam confinados no interior do núcleo da fibra, eles devem ser injetados num determinado ângulo que seja inferior ao ângulo do cone de captação, conforme ilustra a figura a seguir. Qualquer raio de luz que entre na fibra com um ângulo maior que o ângulo do cone de captação será refratado e consequentemente perdido. | |||
<br> | |||
<br> | |||
[[Arquivo:figura-2.jpg]] | |||
<br> | |||
<br> | |||
'''PROPAGAÇÃO DA LUZ''' | |||
<br> | |||
Raios de luz entram na fibra em diferentes ângulos e não seguem os mesmos caminhos. Os raios que entram no centro do núcleo da fibra com ângulo bem pequeno (praticamente horizontal) seguirão por um caminho relativamente direto pelo centro da fibra. Raios de luz que entram na fibra com elevado ângulo de incidência, seguirão por um caminho diferente, mais longo, e levarão mais tempo para atravessar a fibra. Cada caminho, resultante de um diferente ângulo de incidência, dará origem a um modo. Diferentes modos sofrerão diferentes atenuações enquanto trafegam ao longo da fibra. | |||
<br> | |||
<br> | |||
'''VELOCIDADE''' | |||
<br> | |||
A velocidade da luz em um determinado meio depende do índice de refração daquele meio, que por sua vez é definido como: | |||
h = c/v | |||
Onde: | |||
h – índice de refração do meio de transmissão | |||
c – velocidade da luz no vácuo (3 x 108 m/s) | |||
v – velocidade da luz no meio de transmissão | |||
Valores típicos de h para o vidro (ou para a fibra óptica) estão na faixa de 1,45 a 1,55. Note que quanto maior o índice de refração, menor é a velocidade da luz no meio de transmissão. | |||
<br> | |||
= Tipos = | |||
<br> | |||
As fibras ópticas são classificadas em fibras multimodo ou monomodo, baseado na forma que a luz as percorre. O tipo de fibra está relacionado ao diâmetro do núcleo e da casca. | |||
<br> | |||
[[Arquivo:figura-3.jpg]] | |||
<br> | |||
<br> | |||
'''FIBRA MONOMODO''' | |||
<br> | |||
As fibras monomodo possuem vantagens em relação às fibras multimodo, principalmente em relação à atenuação e a largura de banda. O principal motivo é o seu núcleo, bem menor, que limita os modos de propagação da luz a apenas um, eliminando completamente o fenômeno da dispersão modal. Tipicamente uma fibra monomodo pode transportar sinais ópticos na faixa de 10 a 40 Gbps. Esse tráfego pode ser ainda maior caso se utilizem técnicas de modulação WDM (wavelenght division multiplexing). | |||
<br> | |||
Como principais desvantagens, as fibras monomodo exigem fontes de luz e sistemas de alinhamento mais precisos, portanto mais caros, para um acoplamento eficiente ao longo do link óptico. Além disso, técnicas de fusão e conectorização também se tornam mais complicadas e caras no universo das fibras monomodo. No entanto, para sistemas de comunicação de alto desempenho ou muito extensos, sem dúvida as fibras monomodo são a melhor escolha. As dimensões típicas de uma fibra monomodo variam de um núcleo de 8 a 12 um e uma casca de 125 um. O valor típico do índice de refração da fibra monomodo é de 1.465. | |||
<br> | |||
[[Arquivo:figura-7.jpg]] | |||
<br> | |||
<br> | |||
'''FIBRA MULTIMODO''' | |||
<br> | |||
As fibras multimodo, devido ao seu núcleo largo, permitem a transmissão da luz em diferentes caminhos (múltiplos modos) ao longo do link, tornando-a particularmente sensível à dispersão modal. | |||
<br> | |||
Dentre as vantagens das fibras multimodo estão sua facilidade de acoplamento às fontes de luz e às outras fibras (devido ao seu núcleo largo), a possibilidade de utilizar fontes de luz de baixo custo e a simplicidade dos processos de fusão e conectorização. Entretanto, possuem atenuação alta e largura de banda estreita, fatores que limitam sua utilização às curtas distâncias. | |||
<br> | |||
[[Arquivo:figura-4.jpg]] | |||
<br> | |||
<br> | |||
'''FIBRAS MULTIMODO ÍNDICE DEGRAU''' | |||
<br> | |||
Fibras multimodo índice degrau possuem um índice de refração constante no interior do núcleo da fibra. A consequência desse fato é que os raios de luz sofrem reflexão total na fronteira entre o núcleo e a casca, percorrendo uma trajetória formada por segmentos de reta, conforme mostrado na figura abaixo: | |||
<br> | |||
[[Arquivo:figura-5.jpg]] | |||
<br> | |||
<br> | |||
'''FIBRAS MULTIMODO ÍNDICE GRADUAL''' | |||
<br> | |||
Fibras multimodo índice gradual possuem um índice de refração não-uniforme, que diminui de valor gradualmente do centro do núcleo em direção à casca. A consequência dessa variação é que os raios de luz percorrem o interior da fibra seguindo uma trajetória senoidal, conforme mostrado na figura abaixo: | |||
<br> | |||
[[Arquivo:figura-6.jpg]] | |||
<br> | |||
<br> | |||
= Benefícios = | |||
<br> | |||
Dimensões Reduzidas; | |||
<br> | |||
Capacidade para transportar grandes quantidades de informação (Um par de fibras ópticas, cujo diâmetro pode ser comparado com o de um fio de cabelo, pode transmitir 2.5 milhões ou mais de chamadas telefônicas ao mesmo tempo. Um cabo de cobre com a mesma capacidade teria um diâmetro da ordem de 6 m!); | |||
<br> | |||
Quantidade de dados passados potencialmente enormes, devido à menor dispersão de dados; | |||
<br> | |||
Perdas de transmissão muito baixas; | |||
<br> | |||
Imunidade às interferências eletromagnéticas e ao ruído; | |||
<br> | |||
Isolação eléctrica; | |||
<br> | |||
Pequeno tamanho e peso; | |||
<br> | |||
Matéria-prima muito abundante; | |||
<br> | |||
Segurança no sinal; | |||
<br> | |||
Facilidade na instalação; | |||
<br> | |||
Menos deterioração com o tempo comparando com os fios de cobre. | |||
<br> | |||
Alta resistência a agentes químicos e variações de temperatura. | |||
<br> | |||
= Comparação com par trançado = | |||
<br> | |||
Há diversos tipos de cabos que podem atender às várias necessidades e tamanhos de redes, de pequenas a grandes. | |||
<br> | |||
Cabeamento pode ser um assunto complexo. A Belden, importante fabricante de cabos, publica um catálogo que lista mais de 2.200 tipos. Felizmente, apenas três principais grupos de cabos são usados nas conexões da maioria das redes: | |||
<br> | |||
'''Coaxial (fino e grosso);''' | |||
<br> | |||
'''Par trançado (blindado e não blindado);''' | |||
<br> | |||
'''Fibra óptica (mono e multi-modo). | |||
''' | |||
<br> | |||
<br> | |||
Bom no caso vamos falar um pouco sobre fibra optica e os cabos de par trançado. | |||
<br> | |||
Com o passar do tempo, surgiu o cabeamento de par trançado. Esse tipo de cabo tornou-se muito usado devido à falta de flexibilidade de outros cabos e por causa da necessidade de se ter um meio físico que conseguisse uma taxa de transmissão alta e mais rápida. Os cabos de par trançado possuem dois ou mais fios entrelaçados em forma de espiral e, por isso, reduzem o ruído e mantém constantes as propriedades elétricas do meio, em todo o seu comprimento. | |||
<br> | |||
A desvantagem deste tipo de cabo, que pode ter transmissão tanto analógica quanto digital, é sua suscetibilidade às interferências a ruídos (eletromagnéticos e radio freqüência). Esses efeitos podem, entretanto, ser minimizados com blindagem adequada. Vale destacar que várias empresas já perceberam que, em sistemas de baixa freqüência, a imunidade a ruídos é tão boa quanto a do cabo coaxial. | |||
<br> | |||
O cabo de par trançado é o meio de transmissão de menor custo por comprimento no mercado. A ligação de nós ao cabo é também extremamente simples e de baixo custo. Esse cabo se adapta muito bem às redes com topologia em estrela, onde as taxas de dados mais elevadas permitidas por ele e pela fibra óptica ultrapassam, e muito, a capacidade das chaves disponíveis com a tecnologia atual. Hoje em dia, o par trançado também está sendo usado com sucesso em conjunto com sistemas ATM para viabilizar o tráfego de dados a uma velocidade extremamente alta: 155 megabits/seg. | |||
<br> | |||
Este cabeamento é de fácil instalação, tem uma boa relação custo/benefício, porém exige um curto alcance (em média 90 metros), além de oferecer, em alguns casos, interferência eletromagnética. | |||
<br> | |||
Como Já vimos acima como funciona os cabos de fibra optica, podemos notas que eles são mais eficientes em velocidade e quantidade de dados transmitidos, mas os cabos de par trançado são basicamente mais baratos dependendo do caso e em conexão direta a computadores comum uma boa opção, aliás a quantidade de informação que é mandada pelos cabos de fibra optica seria muito grande para eles. | |||
<br> | |||
= Desvantagens = | |||
<br> | |||
Custo elevado; | |||
<br> | |||
Fragilidade das fibras óticas sem encapsulamento; | |||
<br> | |||
Dificuldade para ramificações (Uma rede ponto a ponto seria mais viável, caso contrário as conexões tipo “T” sofrem com perdas muito elevadas de dados); | |||
<br> | |||
Impossibilidade de alimentação remota dos repetidores; | |||
<br> | |||
Falta de padronização dos componentes ópticos. | |||
<br> | |||
= Referências bibliográficas = | |||
<br> | |||
http://www.gta.ufrj.br/grad/08_1/wdm1/Fibraspticas-ConceitoseComposio.html | |||
<br> | |||
http://www.protecnos.com.br/artigos/conceitos-de-fibra-otica/ | |||
<br> | |||
http://brasilescola.uol.com.br/fisica/fibra-optica.htm | |||
<br> | |||
http://www.tecmundo.com.br/web/1976-o-que-e-fibra-otica-.htm | |||
<br> | |||
https://telteq.wordpress.com/2014/12/23/principio-de-funcionamento-e-tipos-de-fibra-optica/ | |||
<br> | |||
https://www.oficinadanet.com.br/artigo/redes/o-que-e-fibra-otica-e-como-funciona | |||
<br> | |||
http://tvdigitaltecno.blogspot.com.br/2010/03/vantagens-e-desvantagens-da-fibra.html | |||
<br> | |||
http://www.icei.pucminas.br/professores/marco/cabeamento-de-rede/ | |||
<br> | |||
http://www.teleco.com.br/tutoriais/tutorialrcompam/pagina_3.asp | |||
<br> | |||
---------------------------------------------------------------------------------------------------- | |||
IoS | |||
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | |||
referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese | |||
das pesquisas que fizer. | |||
<br> | |||
= Conceito = | |||
<br> | |||
sistema produzido por Apple Inc. lançado em 29 de junho de 2007, de código fechado com interface multi touch, suas atualizações são feitas por meio da Itunes ou por OTA (over-the-air) que a partir desta data sofreu alterações ate mesmo no nome passando de Iphone OS para IOS.O iOS consiste em quatro camadas de abstração: a camada Core Services, a camada Cocoa Touch, a camada mídia e a camada Core OS . Os aparelhos que recebem esse sistema são: Iphone, Ipod, Ipad, Ipod Touch e Apple TV , a Apple proíbe a execução desse sistema em hardwares de terceiros. | |||
= Funcionalidades = | |||
<br> | |||
A tela inicial do sistema IOS exibe aplicações de celular e um dock com seus aplicativos mais usados, nesta tela há uma barra de notificações que mostra a hora, intensidade do sinal, nível de bateria entre outras coisas,na primeira fase do sistema o Iphone OS 1 foi apresentado coo um sistema multitoque para dispositivos moveis, no Iphone OS 2 a grande inovação foi poder instalar aplicativos de terceiros no sistema, a partir do Iphone OS 3 uma função de pesquisa de lembrete entre outras coisas existentes no aparelho esta disponível, além da função de copiar e colar, a partir do IOS 4 esta disponível as pastas, basta arrastara um aplicativo pra cima de outro e já e criada uma pasta com esses dois aplicativos, e o usuário poderia trocar a imagem de fundo da tela principal, e a inclusão da função multitarefa, na atualização do IOS 5 as notificações aparecem na barra de notificações e você pode acessar elas clicando em cima da notificação, nessa atualização também foi anunciado um serviço baseado na nuvem, o Icloud, na versão do IOS 6 foram disponibilizados diversas funções, tais como mapas e a opção não perturbe que silencia um determinado aparelho por um determinado tempo, no IOS 7 foi preparada uma grande mudança na interface gráfica, uma nova ferramenta de acesso aos aplicativos mais usados além de voz masculina para o Siri, na versão 8 do IOS atualizaram a função OTA, adicionaram ferramentas pra edição de fotografias, muitas mudanças no aplicativo saúde, nessa edição ele e compatível com o Apple Watch, além da atualização do Siri em varias outras línguas incluindo pt-BR, na versão mais recente ate o momento, o IOS 9 ganhou a função de otimizar bateria, modo de baixo consumo de bateria, além de atualizações que ocupam menos espaço e os recursos avançados de segurança que vão manter seu dispositivo mais seguro. | |||
= Widgets = | |||
<br> | |||
São componentes que permitem a fácil utilização dos recursos do aparelho, para simplificar o uso de outros sistemas ou programas geralmente tem botões, ícones janelas e menus, tudo para auxiliar o uso. Alguns desses widgets são: O Evernote que te permite criar notas e lembretes e fixar na tela inicial; O Itranslate que te permite tradução com muitos idiomas; O Vidgets que te permite gerenciar outros widgets além de poder gerenciar previsão do tempo, tempo de bateria entre outros. Além desses widgets existem vários outros que podem auxiliar no uso do sistema. | |||
= Vantagens = | |||
<br> | |||
->Agilidade: O usuário que esta acostumado a esperar muito ou com o sistema travar demais, não terá esse problema com o IOS; | |||
->Intuitividade: Mesmo pessoas que acabaram de comprar o aparelho com o sistema conseguem dominar o aparelho por ter uma interface bastante intuitiva; | |||
->Padrão: A Apple é rigorosa quanto aos aplicativos disponíveis em sua loja, permitindo apenas aplicativos que sigam o padrão definido por ela, garantindo uma interface e um padrão de aplicativos original; | |||
->Novidades: A grande maioria dos aplicativos e atualizações chegam antes ao IOS e só depois vem a ser disponibilizadas em outros sistemas; | |||
->Icloud: Permite que o usuário sincronize facilmente os documentos de Mac para o laptop por exemplo, sem ter que fazer isso manualmente; | |||
= SDKs = | |||
<br> | |||
SDK significa Software Development Kit (ou Software Developers Kit – pacote de desenvolvimento de software)kit de desenvolvimento de software lançado para desenvolver aplicativos nativos para o IOS, não havia esse recurso quando o sistema foi lançado, pois a Apple alegava que era pra proteção de vírus ou programas maliciosos, porem em outubro de 2007 Steve Jobs anunciou que no final de fevereiro liberaria este recurso parra os usuários. com isso você poderá produzir seus próprios aplicativos e rodar eles em seu aparelho com sistema IOS. | |||
= App Store = | |||
<br> | |||
A App Store e um recurso exclusivo do sistema IOS ou Iphone OS, na App Store e possível fazer o download dos mais diversos tipos de aplicativo que você desejar em seu smartphone sugestões, reviews e notícias sobre os melhores aplicativos e lançamentos para iOS. | |||
= Referências bibliográficas = | |||
<br> | |||
https://pt.wikipedia.org/wiki/IOS | |||
https://support.apple.com/pt-br/HT204266 | |||
http://canaltech.com.br/tag/App-Store/ | |||
https://pt.wikipedia.org/wiki/IPhone_SDKs | |||
http://www.tudocelular.com/samsung/noticias/n33868/nove-vantagens-do-iOS-sobre-android.html | |||
---------------------------------------------------------------------------------------------------- | |||
= Protocolo IP = | |||
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | |||
referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese | |||
das pesquisas que fizer. | |||
<br> | |||
= Conceito = | |||
<br> | |||
** Protocolo de Internet (ou o acrónimo IP) é um protocolo de comunicação usado entre todas as máquinas em rede para encaminhamento dos dados. Tanto no Modelo TCP/IP, quanto no Modelo OSI, protocolo da internet IP está na camada intitulada camada de rede. Abaixo temos um resumo de seu papel nos modelos citados. | |||
**O protocolo IP faz parte da camada Internet da sequência de protocolos TCP/IP. Permite a elaboração e o transporte dos datagramas IP (hoje em dia, os pacotes de dados), sem contudo assegurar a “entrega”. Na realidade, o protocolo IP trata os datagramas IP independentemente uns dos outros, definindo a sua representação, o seu encaminhamento e a sua expedição. | |||
** Escutamos muito sobre sua funcionalidade, até mesmo para georreferencia, localização e rastreamento. Vamos explicar de forma simples como o protocolo IP consegue organizar e gerenciar os ''pacotes de dados'', e como o mesmo permite visualizar sua localização. | |||
(PARA UM MELHOR ENTENDIMENTO DO CONTEÚDO, AS PALAVRAS MAIÚSCULAS EM ITALICO POSSUEM SEU SIGNIFICADO E CONCEITO NO FIM DESTE ARTIGO) | |||
= Funcionamento = | |||
<br> | |||
*Numa rede IP, os dados são enviados em blocos de ficheiros. Em particular, no IP nenhuma definição é necessária antes do nó tentar enviar ficheiros para um nó com o qual não comunicou previamente. O IP oferece um serviço de '''''DATAGRAMAS'''''não confiável ou seja, o pacote vem quase sem garantias. O pacote pode chegar desordenado, também podem chegar duplicados, ou podem ser perdidos por inteiro. Se a aplicação requer maior confiabilidade, esta é adicionada na '''''CAMADA DE TRANSPORTE'''.'' | |||
*Os '''''''ROTEADORES''''''' são usados para reencaminhar datagramas IP através das redes interconectadas na segunda camada. A falta de qualquer garantia de entrega significa que o desenho da troca de pacotes é feito de forma mais simplificada. O IP é o elemento comum encontrado na Internet pública dos dias de hoje. É descrito no ''RFC 791'' da ''IETF'',. Este documento descreve o protocolo da camada de rede mais popular e atualmente em uso. Esta versão do protocolo é designada de versão 4, ou ''IPv4''. O ''IPv6'' tem endereçamento de origem e destino de 128 bits, oferecendo mais endereçamentos que os 32 bits do IPv4. | |||
= Formato do Cabeçalho = | |||
<br> | |||
(Formatos focados em IPV4). | |||
* '''Versão''' – Este é o primeiro campo do cabeçalho de um datagrama IPv4 com quatro bits. | |||
* '''Tamanho do cabeçalho (IHL)''' - o segundo campo, de quatro bits, é o IHL (Internet Header Length), com o número de palavras de 32 bits no cabeçalho IPv4. Como o cabeçalho IPv4 pode conter um número variável de opções, este campo essencialmente especifica o ''OFFSET'' para a porção de dados de um datagrama IPv4. Um cabeçalho mínimo tem vinte bytes de comprimento, logo o valor mínimo em decimal no campo IHL seria cinco. | |||
*'''''Tipo de serviço (ToS)''''' - Trata-se de um campo no cabeçalho IPv4 originalmente e tem sido definida de diferentes maneiras pelas normas RFC 791,RFC 1122, RFC 1349, RFC 2474 e RFC 3168, hoje definido pelas normas RFC 2474 como '''''DiffServ''''' combinando o IPv6, é utilizando para diferenciar o tipo do pacote a ser transportado, classificando-o para que possa ter prioridade em sua transmissão. Seu campo contém 8 bits sendo utilizado 6 bits para os serviços diferenciados, e 2 bits para o controle de alertas para congestionamento (ECN). Mesmo com as mudanças que o ToS vem passando ao longo do tempo hoje se tornado o DiffServ algumas de suas peculiaridades ainda são mantidas devido a compatibilidade de versões anteriores. | |||
*'''''Comprimento (pacote)''''' - o campo de 16 bits seguinte do IPv4 define todo o tamanho do datagrama, incluindo cabeçalho e dados, em 8 bits. O datagrama de tamanho mínimo é de 20 bytes e o máximo é 64 Kb. O tamanho máximo do datagrama que qualquer nó requer para estar apto para manusear são 576 bytes, mas os nós mais modernos manuseiam pacotes bem maiores. Por vezes, as '''''subredes''''' impõem restrições no tamanho, em cada caso os datagramas têm que ser "fragmentados". A fragmentação é manuseada quer no nó quer no comutador de pacotes no IPv4, e apenas no nó, no caso do IPv6. | |||
* '''''Identificador''''' - o campo seguinte de 16 bits é um campo de identificação. Este campo é usado principalmente para identificar fragmentos do datagrama IP original. Alguns trabalhos experimentais sugerem usar o campo IP para outros propósitos, tais como adicionar pacotes para levar a informação para o datagrama, de forma que ajude a pesquisar datagramas para trás com '''''endereços fonte falsificados'''''. | |||
* '''''Flags''''' - o campo de 3 bits é usado para controlar ou identificar fragmentos. | |||
*'''''Offset''''' - o campo offset do fragmento tem 13 bits, e permite que um receptor determine o local de um fragmento em particular no datagrama IP original. | |||
*'''''Tempo de vida (TTL)''''' - um campo de oito bits, o TTL ajuda a prevenir que os datagramas persistam numa rede. Historicamente, o campo TTL limita a vida de um datagrama em segundos, mas tornou-se num campo de contagem de nós caminhados. Cada '''''comutador''''' de pacotes que um datagrama atravessa decrementa o campo TTL em um valor. Quando o campo TTL chega a zero, o pacote não é seguido por um comutador de pacotes e é descartado. | |||
*'''''Protocolo''''' - um campo de protocolo de 8 bits, definindo o protocolo seguinte usado numa porção de dados de um datagrama IP. A Internet '''''Assigned Numbers Authority''''' mantém uma lista de números de protocolos. Os protocolos comuns e os seus valores decimais incluem o ICMP (1), o TCP (6). | |||
*'''''Checksum''''' - Campo de verificação para o cabeçalho do datagrama IPv4. Um pacote em trânsito é alterado por cada comutador que atravesse. Um desses comutadores pode comprometer o pacote, e a verificação é uma forma simples de detectar a consistência do cabeçalho. Este valor é ajustado ao longo do caminho e verificado a cada novo nó. | |||
*'''''Endereço de origem/Endereço de destino''''' - Campo de verificação de endereço de origem e de destino, de 32 bits cada um. Os endereços IPv6 de origem e destino são de 128 bits cada. | |||
*'''''Opções''''' - Campos do cabeçalho adicionais podem seguir o campo do endereço de destino, mas estes não são normalmente usados. Os campos de opção podem ser seguidos de um campo de caminho que assegura que os dados do utilizador são alinhados numa fronteira de palavras de 32 bits. Veja três exemplos de opções que são implementadas e aceitas na maioria dos roteadores: | |||
• Security : especifica o nível de segurança do datagrama, usado em aplicações militares. | |||
• Timestamp: Faz com que cada roteador anexe seu endereço e sua marca temporal (32 bits), que serve para depuração de algoritmos de roteamento. | |||
• Record route : faz com que cada roteador anexe seu endereço. | |||
= Comutação = | |||
<br> | |||
1. Basicamente, comutação significa troca, permuta, substituição, transformação, transmutação, metamorfose, alteração. | |||
'''''A comutação refere-se à alocação dos recursos da rede para a transmissão pelos diversos dispositivos conectados''.''' | |||
Tipos de Comutação: Comutação de Circuitos, Comutação de Mensagens, Comutação de Pacotes. | |||
*'''''Comutação de Circuitos''''': antes de ser enviada qualquer informação, procede-se ao estabelecimento duma ligação "física" ponta a ponta entre os terminais que pretendem comunicar. Estabelece-se um "caminho físico " dedicado. | |||
> Vantagens: – Garantia de recursos; – Disputa pelo acesso somente na fase de conexão; – Não há processamento nos nós intermediários (menor tempo de transferência); – Controle nas extremidades. | |||
> Desvantagens: – Desperdício de banda durante períodos de silêncio (problema para transmissão de dados) – Sem correção de erros – Probabilidade de bloqueio (Circuitos ocupados em um instante). | |||
*'''''Comutação de Mensagens''''': Não é estabelecido nenhum caminho físico dedicado entre o emissor e o receptor; As mensagens são armazenadas nos nós para posterior reenvio. As mensagens só seguem para o nó seguinte após terem sido integralmente recebidas do nó anterior. | |||
> Vantagens: – Maior aproveitamento das linhas de comunicação – Uso otimizado do meio. | |||
> Desvantagens: – Aumento do tempo de transferência das mensagens. | |||
*'''''Comutação de Pacotes''''': Não há estabelecimento de nenhum caminho físico dedicado entre o emissor e o receptor; Assemelha-se a comutação de mensagens, contudo as informações a serem enviadas são quebradas em pacotes; Cada pacote contém um cabeçalho com informação que permite o seu encaminhamento pela rede; | |||
Os pacotes são comutados individualmente e enviados de nó para nó entre a origem e o destino. Pacotes pertencentes a mesma mensagem podem seguir caminhos diferentes até chegar ao destino. O enlace de ligação entre dois nós consecutivos é agora compartilhado por pacotes de outras proveniências e com outros destinos. | |||
> Vantagens: – Uso otimizado do meio – Ideal para dados – Erros recuperados no enlace onde ocorreram – Dividir uma mensagem em pacotes e transmiti -los simultaneamente reduz o atraso de transmissão total da mensagem. | |||
> Desvantagens: – Sem garantias de banda, atraso e variação do atraso (jitter) - Por poder usar diferentes caminhos, atrasos podem ser diferentes. Ruim para algumas aplicações tipo voz e vídeo – Overhead de cabeçalho – Disputa nó-a-nó – Atrasos de enfileiramento e de processamento a cada nó. | |||
> Pode ainda ser efetuada de duas formas distintas: CIRCUITO VIRTUAL e DATAGRAMA; | |||
DATAGRAMAS: Cada pacote tem um tratamento independente, sem qualquer ligação com o tratamento dado nos nós aos pacotes anteriores. Assim os pacotes , devidamente numerados com número de sequência pelo emissor, transportam sempre consigo informação relativa ao endereço do destinatário e do remetente da mensagem. | |||
CIRCUITO VIRTUAL: É definida uma rota ou caminho (Circuito Virtual) para os pacotes, através dos vários nós intermédios até ao destino final. | |||
= Limitações = | |||
<br> | |||
= Endereçamento = | |||
<br> | |||
= Referências bibliográficas = | |||
<br> | |||
---------------------------------------------------------------------------------------------------- | |||
= Proxy = | |||
<br> | |||
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | |||
referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese | |||
das pesquisas que fizer. | |||
<br> | |||
= Conceito = | |||
<br> | |||
Proxy é o termo utilizado para definir os intermediários entre o usuário e seu servidor. E por isso desempenha a função de conexão do computador (local) à rede externa (Internet). Como os endereços locais do computador não são válidos para acessos externos, cabe ao proxy enviar a solicitação do endereço local para o servidor, traduzindo e repassando-a para o seu computador. | |||
[[Arquivo:proxy.jpg]] | |||
= Vantagens = | |||
<br> | |||
O proxy permite o compartilhamento da conexão com a Internet quando existe apenas um IP disponível (o proxy é o único realmente conectado à Web, os outros PCs acessam através dele); melhora o desempenho do acesso através de um cache de páginas, pois armazena as páginas e arquivos mais acessados, quando alguém solicitar uma das páginas já armazenadas do cache, esta será automaticamente transmitida, sem necessidade de baixa-la novamente; ajuda a melhorar a segurança porque filtra alguns tipos de conteúdo da Web e softwares mal-intencionados e protege o IP do computador. | |||
[[Arquivo:AntiMalware.png]] | |||
= Exemplos de proxy = | |||
<br> | |||
Além do já citado, existem outros tipos de proxies, como os web proxies, que são uma versão que esconde o seu IP real e lhe permite navegar anonimamente. Muitos deles são utilizados em redes fechadas como universidades e ambientes de trabalho para burlar uma determinação de bloqueio a alguns sites da internet; | |||
As redes proxy, que são baseadas em códigos criptados que permitem a comunicação anônima entre os usuários. Exemplo deste tipo de rede são as conexões P2P (peer to peer) em que um usuário se conecta ao outro sem saber sua identidade e trocam arquivos entre si; | |||
E as s conexões abertas de proxy (open proxy), que são o tipo mais perigoso e convidativo aos crackers e usuários mal intencionados. Quando um destes usuários consegue acessar um computador, instala um servidor proxy nele para que possa entrar quando quiser na máquina e promover diversos tipos de ilegalidade como scripts que roubam senhas de bancos, fraudes envolvendo cartões de crédito e uma grande variedade de atos ilegais. | |||
[[Arquivo:facebook.jpg]] | |||
= Cache = | |||
<br> | |||
Cache é o termo utilizado para uma área de armazenamento onde dados ou processos freqüentemente utilizados são guardados para um acesso futuro mais rápido, poupando tempo e uso desnecessário do seu hardware. | |||
[[Arquivo:cache.gif]] | |||
= Proxy HTTP = | |||
<br> | |||
Um proxy HTTP permite por exemplo que o cliente requisite um documento na World Wide Web e o proxy procura pelo documento na sua caixa (cache). Se encontrado, a requisição é atendida e o documento é retornado imediatamente. Caso contrário, o proxy busca o documento no servidor remoto, entrega-o ao cliente e salva uma cópia em seu cache. Isto permite uma diminuição na latência, já que o servidor proxy, e não o servidor original, é requisitado, proporcionando ainda uma redução do uso da banda. | |||
= Proxy reverso = | |||
<br> | |||
O Proxy Reverso, como o próprio nome diz, atua ao contrário do Proxy. Enquanto um Proxy, no modelo convencional, intercepta requisições originadas na rede local (LAN – Local Área Network) com destino à Internet, um Proxy Reverso intercepta requisições originadas na Internet com destino à rede local. | |||
= Referências bibliográficas = | |||
<br> | |||
http://alfredosabo.blogspot.com.br/ | |||
wikipedia | |||
http://windows.microsoft.com/ | |||
http://www.diegomacedo.com.br/ | |||
---------------------------------------------------------------------------------------------------- | |||
= API = | |||
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | |||
referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese | |||
das pesquisas que fizer. | |||
<br> | |||
= Conceito = | |||
Antes de tudo, deve-se ter em mente que uma interface lógica é uma "interface" que permite que haja uma comunicação entre dois sistemas. Uma API é um recurso de um sistema que permite que esse se comunique com outro sistema. É possível citar vários exemplos de api's, visto que atualmente a grande maioria dos sistemas "conversam" com outros sistemas. Por exemplo, quando um aplicativo permite que o usuário se autentique nele através do facebook, isso ocorre graças à uma api que permite que o aplicativo solicite as informações necessárias para o sistema do facebook e o facebook as envia, possibilitando o usuário autenticar-se no sistema sem necessariamente se cadastrar nele em si. Outro bom exemplo é quando o usuário está em um site de turismo ou em alguma outra aplicação que disponibiliza mapas. Esses mapas, quase sempre, são fornecidos pelo Google Maps, através de um api entre os sistemas. | |||
Concluindo, API's são padrões feitos pelos programadores dos respectivos softwares para que outros softwares possam utilizar alguns serviços, sem precisar implantar tal funcionalidade no próprio software. É como se um software pedisse uma aplicação "emprestada" para outro software. | |||
= Funcionamento = | |||
O funcionamento de uma api web é basicamente um conjunto de requisições e respostas HTTP, que geralmente estão no formato XML ou JSON. O modelo de arquitetura mais adotado hoje é o chamado REST(Representational State Transfer). | |||
A aplicação que deseja utilizar um serviço de outra, estabelece uma comunicação com tal aplicação e realiza uma requisição(escrita em XML ou JSON), que vai ser analizada pela outra aplicação, que vai dar uma resposta para a aplicação inicial, enviando dados ou informações requisitadas ou negando a requisição. | |||
<br> | |||
= Protocolos = | |||
Protocolo é uma convenção que possibilita e governa a comunicação entre dois sistemas. Ele pode ser implementado por hardware, software ou pelos dois. | |||
Alguns Exemplos de protocolos são TCP/IP, DHCP, TCP, entre outros. Porém, o protocolo mais importante quando se fala em API web é o protocolo HTTP(Hypertext Transfer Protocol), pois esse é o fator mais importante para a comunicação de dados na World Wide Web(WWW). | |||
<br> | |||
= Vantagens = | |||
As API's levam vantagem quando comparadas a outros tipos de comunicação. Por exemplo, quando comparada à web services, pode-se até mesmo considerar que todo web service é uma api, porém não é toda api que é um web service. Primeiro pois web services servem apenas para comunicação web, enquanto os api's podem ser utilizados para comunicação local e até mesmo apenas dentro de um sistema operacional. E também as web services usam apenas 3 meios de comunicação: SOAP, REST e XML-RPC, enquanto as api's podem utilizar qualquer meio. | |||
<br> | |||
= XML e JSON = | |||
XML(ou extensible markup language) e JSON são formatos para representar dados em uma web api, onde XML é um formato mais trabalhoso e bem estruturado e, por isso, leva vantagem em cima do JSON quando se trata de transportar grande carga. Porém, se a carga for pequena, o JSON se torna mais eficaz por ser um formato mais simples e menos. | |||
'''Exemplo de "código" em XML:''' | |||
<?xml version="1.0" encoding="ISO-8859-1"?> | |||
<receita nome="pão" tempo_de_preparo="5 minutos" tempo_de_cozimento="1 hora"> | |||
<titulo>Pão simples</titulo> | |||
<ingredientes> | |||
<ingrediente quantidade="3" unidade="xícaras">Farinha</ingrediente> | |||
<ingrediente quantidade="7" unidade="gramas">Fermento</ingrediente> | |||
<ingrediente quantidade="1.5" unidade="xícaras" estado="morna">Água</ingrediente> | |||
<ingrediente quantidade="1" unidade="colheres de chá">Sal</ingrediente> | |||
</ingredientes> | |||
<instrucoes> | |||
<passo>Misture todos os ingredientes, e dissolva bem.</passo> | |||
<passo>Cubra com um pano e deixe por uma hora em um local morno.</passo> | |||
<passo>Misture novamente, coloque numa bandeja e asse num forno.</passo> | |||
</instrucoes> | |||
</receita> | |||
'''Exemplo de "código" em JSON:''' | |||
{ "Alunos" : [ | |||
{ "nome": "João", "notas": [ 8, 9, 7 ] }, | |||
{ "nome": "Maria", "notas": [ 8, 10, 7 ] }, | |||
{ "nome": "Pedro", "notas": [ 10, 10, 9 ] } | |||
] | |||
} | |||
<br> | |||
= Exemplos de código = | |||
'''Modelo de código para logar no app com o facebook(em PHP):''' | |||
<?php | |||
session_start(); | |||
if($_SERVER['REQUEST_METHOD'] == 'GET' && isset($_GET['code'])){ | |||
// Informe o seu App ID abaixo | |||
$appId = '29048572934875'; | |||
// Digite o App Secret do seu aplicativo abaixo: | |||
$appSecret = '123456789'; | |||
// Url informada no campo "Site URL" | |||
$redirectUri = urlencode('http://fb.matheusafonso.com/'); | |||
// Obtém o código da query string | |||
$code = $_GET['code']; | |||
// Monta a url para obter o token de acesso e assim obter os dados do usuário | |||
$token_url = "https://graph.facebook.com/oauth/access_token?" | |||
. "client_id=" . $appId . "&redirect_uri=" . $redirectUri | |||
. "&client_secret=" . $appSecret . "&code=" . $code; | |||
//pega os dados | |||
$response = @file_get_contents($token_url); | |||
if($response){ | |||
$params = null; | |||
parse_str($response, $params); | |||
if(isset($params['access_token']) && $params['access_token']){ | |||
$graph_url = "https://graph.facebook.com/me?access_token=" | |||
. $params['access_token']; | |||
$user = json_decode(file_get_contents($graph_url)); | |||
// nesse IF verificamos se veio os dados corretamente | |||
if(isset($user->email) && $user->email){ | |||
/* | |||
*Apartir daqui, você já tem acesso aos dados usuario, podendo armazená-los | |||
*em sessão, cookie ou já pode inserir em seu banco de dados para efetuar | |||
*autenticação. | |||
*No meu caso, solicitei todos os dados abaixo e guardei em sessões. | |||
*/ | |||
$_SESSION['email'] = $user->email; | |||
$_SESSION['nome'] = $user->name; | |||
$_SESSION['localizacao'] = $user->location->name; | |||
$_SESSION['uid_facebook'] = $user->id; | |||
$_SESSION['user_facebook'] = $user->username; | |||
$_SESSION['link_facebook'] = $user->link; | |||
} | |||
}else{ | |||
echo "Erro de conexão com Facebook"; | |||
exit(0); | |||
} | |||
}else{ | |||
echo "Erro de conexão com Facebook"; | |||
exit(0); | |||
} | |||
}else if($_SERVER['REQUEST_METHOD'] == 'GET' && isset($_GET['error'])){ | |||
echo 'Permissão não concedida'; | |||
} | |||
?> | |||
<br> | |||
= Referências bibliográficas = | |||
http://canaltech.com.br/o-que-e/software/o-que-e-api/ | |||
http://www.tecmundo.com.br/programacao/1807-o-que-e-api-.htm | |||
https://pt.wikipedia.org/wiki/Interface_de_programa%C3%A7%C3%A3o_de_aplica%C3%A7%C3%B5es | |||
http://www.devmedia.com.br/application-programming-interface-desenvolvendo-apis-de-software/30548 | |||
https://en.wikipedia.org/wiki/Application_programming_interface | |||
https://pt.wikipedia.org/wiki/Protocolo_(ci%C3%AAncia_da_computa%C3%A7%C3%A3o) | |||
https://pt.wikipedia.org/wiki/World_Wide_Web | |||
https://pt.wikipedia.org/wiki/Hypertext_Transfer_Protocol | |||
http://sensedia.com/blog/apis/o-que-sao-apis-parte-2-como-uma-api-funciona/ | |||
https://fxcosta.wordpress.com/2015/05/31/diferenca-entre-api-e-web-service-de-maneira-simples/ | |||
http://phpsp.org.br/web-apis-xml-ou-json/ | |||
https://pt.wikipedia.org/wiki/XML | |||
https://pt.wikipedia.org/wiki/JSON | |||
<br> | |||
---------------------------------------------------------------------------------------------------- | |||
= SO Android = | |||
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | |||
referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese | |||
das pesquisas que fizer. | |||
<br> | |||
= Conceito = | |||
<br> | |||
O intenso aumento do uso de celulares e smartphones em todo o mundo, juntamente com a necessidade de encontrar nesses dispositivos mecanismos que facilitassem o dia a dia do usuário tornaram possível o desenvolvimento de Sistemas Operacionais, como o Android. Plataforma móvel mais popular no mundo é gerida pelo Google juntamente com a Open Handset Alliance (OHA), aliança formada por desenvolvedores, fabricantes e operadores de dispositivos móveis. O Android é open source, ou seja, possui um código aberto baseado no sistema Linux, que permite uma ampla possibilidade de interação e personificações. Atualmente essa plataforma se expandiu também para outros dispositivos, além da versão do sistema para smartphones, há outras para tablets, televisores, automóveis e até smartwatches. | |||
= Características = | |||
<br> | |||
*- O Sistema Operacional Android tem como código fonte um código aberto. | |||
*- Seu Kernel (ou núcleo) é o Linux. Uma versão modificada, voltada para dispositivos móveis. | |||
*- O sistema já vem com aplicações previamente instaladas, desenvolvidas pelo Google, como o Google Maps, Gmail, Google+, Youtube, Google Play Store, Google Drive, dentre outras, além dos aplicativos desenvolvidos pelo fabricante do dispositivo. | |||
*- Disponibiliza um Kit de desenvolvimento Java, denominado Android SDK, que permite a criação de diversos aplicativos e a implementação destes no Google Play Store. | |||
*- No quesito Mensagens, está disponível nas formas SMS e MMS. | |||
*- Suporte para a integração com hardwares como câmeras e GPS. | |||
*- Seu armazenamento é em SQLite (uma espécie de banco de dados). | |||
*- Possui suporte a gráficos 2D e bibliotecas gráficas 3D baseada em OpenGLES, recurso de diminui a incompatibilidade entre as versões. | |||
*- Na camada da arquitetura denominada Framework, se encontra os programas responsáveis por rodar as funções básicas do telefone. Onde há a integração de uma aplicação com outras, trocando informações. Camada responsável por determinar o início de término da execução de uma aplicação. Encontra-se nela outras funções como o gerenciamento do WIFI, Bluetooth, USB, Sensor e Location. | |||
= Developer = | |||
<br> | |||
Famoso por suas diversas fragmentações, as quais de forma inusitada foram denominadas com nomes de sobremesas, desde sua criação já foram desenvolvidas muitas versões do Android, que trouxeram consigo muitas inovações tecnológicas, a modernização da interface e da operação. Entretanto a rápida atualização de versões do sistema acarretam em uma obsolescência dos dispositivos, os quais vão se tornando cada vez mais ultrapassados. Além de que com a inovação de aplicações e a expansão de recursos resultam na precisão de novos aparelhos com hardwares mais tecnológicos. | |||
*Dentre estas fragmentações, estão: | |||
** Android 1.5 (Cupcake): Lançada em 2009, a versão mais ultrapassada do Android já não é usada em nenhum dispositivo atualmente. Em sua versão, trouxe consigo a aplicação de widgets na tela inicial e a visualização de vídeos no Youtube. | |||
** Android 1.6 (Donut):Também lançada em 2009, a versão 1.6 trouxe suporte a uma melhor resolução em telas de diferentes resoluções. | |||
** Android 2.0 (Eclair): Primeira versão com o GPS do aplicativo GoogleMaps. | |||
** Android 2.2 (Froyo): Versão com a operação consideravelmente mais rápida e com o ponto de aceso WIFI a parte do uso de dados 3G. | |||
** Android 2.3 (Gingerbread): Lançado com o aparelho móvel Googlephone, o Nexus S, com uma interface mais bem acabada e interação a novos sensores. | |||
** Android 3.0 (Honeycomb): Versão ultilizada em tablets, aparelhos que possuem especificações diferentes dos smarthphones, trouxe um design diferenciado, próprio para tablets. | |||
** Android 4.0 (Ice Cream Sandwich): Versão utilizada tanto em smathphones, quanto em tablets, possibilitou o destravamento de tela por reconhecimento facial. | |||
** Android 4.1 (Jelly Bean):Lançado com o Nexus 4, trouxe novas funcionalidade como a possibilidade de gerenciar e executar aplicativos direto pela tela de bloqueio. | |||
** Android 4.4 (Kitkat):Lançado em 2013, com um desenvolvimento mais flexível e um maior reforço na segurança. | |||
** Android 5.0 (Lollipop): Lançada em 2014 com integração com o usuário baseado em gestos, com a facilidade de se ver notificações sem executar o desbloqueio de tela do aparelho, além de que essa versão permite a integração com a versão do sistema para automóveis, o AndroidAuto. | |||
** Android 6.0 (Marshmallow): Lançado em 2015, a última versão lançada, com o recurso de melhor otimização e economia da bateria, além de uma maior segurança e privacidade em aplicativos. | |||
= Exemplo de código = | |||
<br> | |||
*O código do Sistema Operacional Android é open source, que por ser baseado na versão 2.6 do Linux, e traz em código diversas características da plataforma Linux, parte importante dessa unificação é o de controle de processos, gerenciamento de memória e a segurança de arquivos. | |||
*As bibliotecas do SI Android trazem consigo um conjunto que são desenvolvidos em C/C++, usadas em diversos níveis e funções do sistema. | |||
*Já para de desenvolvimento de aplicações é utilizado o código na linguagem Java. | |||
= SDKs = | |||
<br> | |||
O Kit de desenvolvimento conhecido também como SDK, permite que qualquer usuário possa desenvolver de forma gratuita e personificar aplicativos para a plataforma. Para o desenvolvimento, em linguagem Java, o Kit já possui todas as ferramentas necessárias, como o emulator, além de ser possível desenvolvê-los em outros sistemas operacionais de computadores (Windows XP, Vista, Windows 7, Mac OS X, e o Linux) e em diversos ambientes de desenvolvimento (Eclipse, JDK 6), opções que ficam a escolha do desenvolvedor. | |||
Após instalar o Kit de desenvolvimento, o usuário possuirá um emulator que fará uma simulação do aparelho móvel. O SDK permite também a interação com outras aplicações por meio da instalação conjunta com o Eclipse (ambiente de desenvolvimento) e o plugin ADT. | |||
* Para a montagem do ambiente: - é necessário fazer o download e descompactar o SDK; | |||
- instalar o plugin ADT e adicionar o software Eclipse; | |||
- instalar os pacotes; e | |||
- criar uma máquina virtual; | |||
Para que uma nova aplicação criada seja executável ela deve passar pelo programa de compatibilidade que garantirá a possibilidade de serem usados em dispositivos com diferentes versões do Android. Pois somente as aplicações compatíveis poderão ser implementadas na loja Google Play. | |||
= Dispositivos onde é usado = | |||
<br> | |||
O Sistema Operacional Android é usado principalmente em dispositivos móveis, como os smarthphones. Mas além desses o sistema possui outras versões, as quais abrangem outros tipos de dispositivos, como tablets, televisores, Smartwatches e automóveis. | |||
*São essas versões: | |||
**-Android Wear: Versão desenhada para atender dispositivos Smartwatches, que são relógios de pulso computadorizados, com funções semelhantes a dos smarthphones, possuem a capacidade de rodar aplicativos dos mais variados, além de possuir funcionalidades como o acompanhamento do controle físico em atividades físicas. | |||
**-Android Auto: Versão criada para carros, ao conectar um smathphone Android na versão 5.0 Lollipop (ou superior) ao carro, o painel roda todas as aplicações que lhe são compatíveis, como o Google Maps que instruirá diferentes rotas ao motorista, o Google Play Music, além de ser possível realizar chamadas, possuir comando de voz e executar muitos outros aplicativos, escolhidos como favoritos pelo motorista. | |||
**-Android TV: Desenvolvido para smart TVs que já contenham o Android TV integrado, o sistema disponibiliza acesso a diversos aplicativos de áudio, vídeo e games, como o Youtube, Netflix, Google Play Movies & TV. | |||
= Referências bibliográficas = | |||
<br> | |||
*Google Acadêmico: | |||
**https://books.google.com.br/books?hl=pt-BR&lr=&id=NrVUAwAAQBAJ&oi=fnd&pg=PA21&dq=sistema+operacional+android+codigo&ots=QaRyCgTh2x&sig=8C1XekxRp7mbV6UhUle5lAkgvCw#v=onepage&q=sistema%20operacional%20android%20codigo&f=false (Acesso em: 13/04/2016). | |||
** https://books.google.com.br/books?hl=pt-BR&lr=&id=8u9wJowXfdUC&oi=fnd&pg=PA1&dq=sistema+operacional+android&ots=LTig-80rs1&sig=RSiPbWn3BQwbr2uuBWxrohoJvsE#v=onepage&q=sistema%20operacional%20android&f=false (Acesso em: 13/04/2016). | |||
** http://www.inf.unioeste.br/~tcc/2012/TCC_Andre.pdf (Acesso em: 16/04/2016) | |||
*https://www.android.com/intl/pt-BR_br/ (Acesso em: 13/04/2016). | |||
*https://www.android.com/intl/pt-BR_br/wear/ (Acesso em: 13/04/2016). | |||
*https://www.android.com/intl/pt-BR_br/tv/ (Acesso em: 13/04/2016). | |||
*https://www.android.com/intl/pt-BR_br/auto/ (Acesso em: 13/04/2016). | |||
*https://www.android.com/intl/pt-BR_br/phones/ (Acesso em: 13/04/2016). | |||
* http://www.techtudo.com.br/noticias/noticia/2015/10/a-evolucao-do-android-do-cupcake-ao-marshmallow-conheca-todas-as-versoes.html (Acesso em: 16/04/2016). | |||
---------------------------------------------------------------------------------------------------- | |||
= Cloud Computing = | |||
== Cloud Computing == | |||
* Parte do artigo "A COMPUTAÇÃO AGORA É NAS NUVENS" | |||
O termo “Cloud computing” tem se tornado popular e está associado à utilização da rede mundial de computadores com uso massivo de servidores físicos ou virtuais – uma nuvem – para a alocação de um ambiente de computação (HAYES, 2009; SEGALIN, 2009). | |||
Segundo Mcafee (2006), em termos gerais, a Web 2.0 tem, nos últimos anos,fortalecido a idéia da utilização de serviços por meio de um conjunto transparente de plataformas computacionais. | |||
A alta velocidade de transmissão de dados possibilita que uma empresa possa acessar os necessários recursos computacionais, em tempo real, via uma rede integrada de aplicações, serviços e dispositivos, pela Internet e Web,independentemente de onde os recursos estejam e de quem os tem e mantém. | |||
Pode-se dizer que a computação em nuvem, assim chamada, incorpora o paradigmad e Arquitetura Orientada a Serviço (Service Oriented Architecture – SOA), onde, segundo Mackenzie (2006), todas as funções de um sistema são vistas como serviços de software,independentes e autocontidos. | |||
Giusti, et al (2008) destacam que SOA é um meio de desenvolvimento de sistemas distribuídos onde os componentes são serviços dedicados,utilizados a partir de provedores de serviços, com uso de protocolos padronizados. | |||
Contudo, o conceito de Cloud vai mais além, está associado a outros conceitos como Software as a Service (SAAS), Plataform as a Service (PAAS) e Infrastructure as a Service(IAAS). | |||
<br> | |||
== Introdução à Virtualização == | |||
<br> | |||
Virtualização é uma estrutura ou metodologia de divisão dos recursos de um computador em múltiplos ambientes de execução. | |||
As técnicas de virtualização criam múltiplas partições isoladas | |||
- Máquinas Virtuais (Virtual Machines - VMs) | |||
- Ambientes Virtuais (Virtual Environments - VEs) | |||
- em um único servidor | |||
Aprendendo um pouco mais ... | |||
[[Virtualização]] | |||
<br> | |||
<br> | |||
== Software como Serviço (SAAS) == | |||
Um mesmo software pode ser utilizado por múltiplos usuários, sejam pessoas ou empresas. | |||
Esse tipo de serviço é executado e disponibilizado por servidores em Data Centers de responsabilidade de uma empresa desenvolvedora, ou seja, o software é desenvolvido por uma empresa que ao invés de vendê-lo ou usá-lo para beneficio exclusivo, disponibiliza-o a um custo baixo a uma grande quantidade de usuários (AULBACH, 2009). | |||
<br> | |||
== Plataforma como Serviço (PAAS) == | |||
Consiste na disponibilização de plataformas de desenvolvimento que facilitam a implantação de aplicações e o gerenciamento do hardware subjacente e das camadas de software. | |||
Fornece todas as facilidades necessárias para suportar o ciclo de vida completo de construção e entrega de aplicações web, sem a necessidade de downloads e instalações de aplicativos para desenvolvedores, gerentes de TI e usuários finais. | |||
<br> | |||
<br> | |||
== Infraestrutura como Serviço (IAAS) == | |||
O termo original foi criado em março de 2006 pelo economista Nicholas Carr e chamava-se Hardware as a Service (HAAS), mas no final de 2006 ele começou a ser tratado pelas empresas como (IAAS) e hoje é como ele é mais conhecido. | |||
Trata-se do fornecimento de infra-estrutura de informática, geralmente na forma de virtualização. | |||
Este conceito, assim como os demais, faz parte de uma tendência onde recursos - neste caso a infraestrutura - são compartilhados. Segundo Cancian (2009), o cliente em vez de comprar servidores de alto desempenho, softwares complexos e equipamentos de rede pode adquirir esses recursos como um serviço totalmente terceirizado. | |||
O serviço é taxado levando em consideração a utilidade computacional utilizada, ou seja o custo irá refletir o consumo específico de cada usuário, como os tradicionais serviços deágua, luz e telefone. | |||
A indústria da computação é conhecida por criar jargões de curta vida útil, mas também por sofrer transformações profundas. Barros (2008) destaca que o conceito de Cloud, por englobar tanto serviços de hardware quanto software, ganha formas mais complexas do que vem se disseminando até aqui e impõe um desafio aos que se propõem a utilizá-lo: fazer com que todos estes recursos trabalhem de forma integrada. | |||
Miller (2008) destaca que, por se tratar de um novo paradigma, existem muitas contradições. Entretanto, a maioria dos pesquisadores considera que essa nova abordagem deva proporcionar economia de escala, uma vez que possibilitará que usuários domésticos, a partir de um computador com capacidades reduzidas ou até mesmo um televisor de alta definição, possa utilizar serviços especializados, oferecidos por companhias. | |||
<br><br> | |||
== Considerações == | |||
Os computadores pessoais convencionais, incluindo os notebooks, veem tendo uma acentuada queda nos últimos anos, pois o mercado caminha para o lado oposto das poderosas estações de trabalho, mas sim para o uso disseminado de dispositivos móveis e televisões digitais de alta definição conectadas a Internet. | |||
Essa reviravolta no modelo tradicional de computação pode ser comparada com o advento das redes públicas de eletricidade. Durante um breve período da Revolução Industrial, as grandes companhias tinham de gerar sua própria energia elétrica, mesmo que essa não fosse sua atividade-fim. | |||
Graças a um conjunto de inovações no final do século 19, porém, tudo mudou de forma radical. Linhas de transmissão permitiram separar a geração e o uso da eletricidade. "O que aconteceu com a geração de energia há um século agora acontece com o processamento de informações" (REESE, 2009). | |||
Os sistemas privados, montados e operados individualmente por empresas, estãosendo suplantados por serviços fornecidos sobre uma rede comum. A computação está virando um serviço e as equações econômicas que determinam a maneira como a sociedade vive estão sendo reescritas. | |||
A Google tomou a dianteira na revolucao dos notebooks agora criando o que para muitos é conhecido como o PC da era pós-PC. Trata-se do Cr-48, que não é nada mais nada menos do que um notebook que possui apenas abas do navegador da google o Chrome e dotado também de uma conexão 3G imbutida além do modem wi-fi. A proposta é simples, o sistema do notebook se baseia totalmente no conceito da Cloud Computing, uma vez que para operar o aparelho o usuário precisa se identificar com um nome de usuário e uma senha de sua conta Google, podendo navegar livremente pela Internet através do Chrome e acessar todos os sites assim como baixar aplicativos que ficam visíveis quando se abre uma nova aba no navegador. O notebook é uma opcao para computadores compartilhados por várias pessoas porque os arquivos não são instalados nas máquinas. Ficam online vinculados as contas Google. | |||
Segue abaixo o link oficial do produto: | |||
http://www.google.com/chromeos/pilot-program-cr48.html | |||
<br><br> | |||
== Autor == | |||
* NOGUEIRA, Matheus Cadori1; PEZZI, Daniel da Cunha2 mcadori@unicruz.edu.br; dpezzi@unicruz.edu.br | |||
---------------------------------------------------------------------------------------------------- | |||
= Técnica de Criptografia = | |||
<br> | |||
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | |||
referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese | |||
das pesquisas que fizer. | |||
<br> | |||
= Conceito = | |||
<br> | |||
= Técnicas ou tipos = | |||
<br> | |||
= Algoritmos = | |||
<br> | |||
= Chaves = | |||
<br> | |||
= Autenticação = | |||
<br> | |||
= Esteganografia = | |||
<br> | |||
= Referências bibliográficas = | |||
<br> | |||
---------------------------------------------------------------------------------------------------- | |||
= Tecnologia IoT = | |||
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | |||
referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese | |||
das pesquisas que fizer. | |||
<br> | |||
= Conceito = | |||
A Internet das Coisas (do inglês, Internet of Things – IoT) é um paradigma que preconiza um mundo de objetos físicos embarcados com sensores e atuadores, conectados por redes sem fio e que se comunicam usando a Internet, moldando uma rede de objetos inteligentes capazes de realizar variados processamentos, registrar variáveis ambientais e reagir a estímulos externos. Esses objetos interconectam-se entre si e com outros recursos (físicos ou virtuais) e podem ser controlados através da internet. | |||
<br> | |||
= Funcionamento = | |||
Em breve, nossos carros, nossas casas, nossos principais aparelhos domésticos e até mesmo as ruas de nossa cidade estarão conectados à internet. Composta por milhões de sensores e dispositivos que geram fluxos incessantes de dados, a IoT pode ser usada para melhorar nossas vidas e as vidas de nossas empresas em muitos aspectos, mas como ela funciona? | |||
<br> | |||
A internet das coisas é composta por três componentes principais: | |||
*As coisas ou recursos embarcados com sensores; | |||
*As redes de comunicação que as conectam; | |||
*Os sistemas de computação, que usam dados que fluem da internet para nossas coisas. | |||
Para ligar os objetos e aparelhos do dia-a-dia a grandes bases de dados e à Internet, é necessário um sistema eficiente de identificação, só dessa forma se torna possível colher e registrar os dados sobre cada uma das coisas. A identificação por radiofrequência oferece essa funcionalidade. O registro de dados beneficiará da capacidade de detectar mudanças na qualidade física das coisas usando a tecnologia dos sensores. A inteligência própria de cada objeto aumenta o poder da rede de devolver a informação processada para diferentes pontos. Finalmente, os avanços ao nível da miniaturização e da nanotecnologia significam que cada vez mais pequenos objetos terão a capacidade de interagir e se conectar. A combinação destes passos criará uma Internet das Coisas, que conecta os objetos do mundo de um modo sensorial e inteligente. | |||
<br> | |||
OBS: | |||
*Identificação por radiofrequência é um método de identificação automática através de sinais de rádio, que recupera e armazena dados remotamente por meio de dispositivos denominados etiquetas RFID. | |||
<br> | |||
= Tecnologias = | |||
Já é possível encontrar no mercado empresas que estão trabalhando em seus próprios sistemas de internet das coisas, utilizando esses sistemas para melhorar suas operações internas, ou desenvolvendo e testando produtos com sistemas de IoT. | |||
*A Samsung, por exemplo, já lançou geladeiras inteligentes com tela LCD capazes de reproduzir a tela do smartphone do usuário no refrigerador. Com isso, o usuário pode reproduzir vídeos e músicas, consultar a previsão do tempo e até mesmo fazer compras online enquanto verifica na geladeira os itens que precisam ser comprados. | |||
*A Nike e a Apple desenvolveram um sensor para ser colocado embaixo da palmilha do tênis. Usando o smartphone ou iPod, o corredor pode definir a distância que pretende correr, quantas calorias deseja perder, o seu trajeto e até mesmo uma lista de músicas para ouvir durante o seu exercício. Ao finalizar esta atividade, todas as informações são enviadas automaticamente para um site, onde é possível acompanhar o histórico de corridas, a evolução e até dividir resultados com outros corredores conectados. | |||
*Com o Windows 10 IoT, a Microsoft também vem investindo na Internet das coisas. O Windows 10 IoT será capaz de alimentar uma variada gama de objetos inteligentes e conectados, desde pequenos dispositivos, como gateways, até pontos de venda móveis e dispositivos poderosos da indústria, como robôs e dispositivos médicos de especialidade. | |||
<br> | |||
= Aplicações = | |||
A IoT pode ser aplicada nos seguintes itens: | |||
*Serviços | |||
Controles de estoques via RFID (etiqueta de identificação por radiofrequência), acionamento de lâmpadas públicas, lata de lixo pública que compacta o lixo conforme necessário e emite alertas aos funcionários da prefeitura quando estiver cheia. Sistema que controle a temperatura dentro de sua casa, com base em suas preferências e nas condições meteorológicas existentes. | |||
*Segurança | |||
Sensores para automóveis, automação residencial, em objetos de uso pessoal como carteiras e relógios, dentre outros. Sistema de segurança para casas, que permite controlar remotamente suas portas e janelas. | |||
*Saúde | |||
Implantes de monitoramento cardíaco comunicam-se com a rede e podem ser controlados e verificados através de um aplicativo que recebe os dados. Monitoramento das atividades realizadas diariamente, através de pulseiras e/ou relógios inteligentes, equipados com sensores capazes de recolher dados do usuário (como batimentos cardíacos) e enviar diretamente para um aplicativo móvel, e se for da preferência do usuário, até para seu médico. | |||
<br> | |||
= Estado da Arte = | |||
Atualmente, relógios inteligentes, estão ficando ainda mais inteligentes, com exteriores mais luxuosos e o lançamento, pela Casio, de uma versão para entusiasta de caminhadas e bicicletas. Carros, TVs e máquinas de lavar também evoluíram. Mas são os novos produtos que realmente estão dando o fôlego ao movimento da Internet das Coisas em 2016: testes de gravidez com bluetooth, TVs dobráveis, "fridge cams" (sim, uma câmera na geladeira para você poder ver o que tem lá pelo smartphone e comprar o que precisa antes de voltar para casa), robôs com projetores e um dispositivo para escanear a comida e analisar o valor nutritivo. Tudo isso e mais o fato de acrescentar o sobrenome "smart" a praticamente tudo, rondam o mundo em expansão da tecnologia IoT. | |||
<br> | |||
= Vantagens = | |||
São vários os benefícios oferecidos pela Internet das Coisas, dentre eles podemos citar: | |||
*Eficiências operacionais novas. | |||
*Mais rapidez e assertividade na tomada de decisões. | |||
*Inteligência de controle mais distribuída. | |||
*Melhor utilização do tempo. | |||
*Menor perda de tempo com tarefas cotidianas. | |||
*Sensores de monitoramento de máquinas diagnosticam, e preveem problemas pendentes da manutenção. | |||
*Sensores em residências e aeroportos, ou mesmo sapatos e portas, melhoram a segurança enviando sinais quando estão fora de uso por um período de tempo determinado, ou se eles forem usados na hora errada | |||
<br> | |||
= Referências bibliográficas = | |||
*UFES – Paulo F. Pires, Flavia C. Delicato, Thais Batista, Thomaz Barros, Everton Cavalcante e Marcelo Pitanga – Capítulo 3 – Plataformas para Internet das Coisas – Introdução. | |||
*MJV Blog - http://blog.mjv.com.br/ideias/como-a-internet-das-coisas-pode-evoluir-sua-empresa | |||
*ABEMD - http://abemd.org.br/noticias/ces-preve-boom-da-internet-das-coisas-em-2016 | |||
*Plantec Distribuidora - http://www.plantecdistribuidora.com.br/entenda-a-internet-das-coisas/ | |||
*SAS - http://www.sas.com/pt_br/insights/big-data/internet-das-coisas.html | |||
*Endeavor - https://endeavor.org.br/internet-das-coisas/ | |||
*Microsoft - https://news.microsoft.com/pt-br/windows-10-iot-impulsionando-a-internet-das-coisas/#sm.0001cux8hq19qex4ut527qcfv6gi2 | |||
*Wikipedia - Referências (The MIT Press - https://mitpress.mit.edu/books/internet-things e SAS) | |||
<br> | |||
---------------------------------------------------------------------------------------------------- | |||
= Tecncologia M2M = | |||
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | |||
referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese | |||
das pesquisas que fizer. | |||
<br> | |||
= Conceito = | |||
<br> | |||
Machine-to-Machine (M2M) (em português máquina a máquina) refere-se a tecnologias que permitem tanto sistemas com fio quanto sem fio a se comunicarem com outros dispositivos que possuam a mesma habilidade. M2M usa um dispositivo (como um sensor ou medidor) para capturar um evento (como temperatura, nível de estoque, etc), que é enviado através de uma rede (sem fio, com fio ou híbrida) para uma aplicação (programa), que transforma o evento capturado em informação útil (por exemplo, itens que precisam ser rearmazenados ). Isto é obtido com o uso da telemetria, a linguagem que as máquinas usam para comunicar entre si. Tal comunicação foi originalmente obtida com uma rede remota de equipamentos transmitindo informação de volta para um centralizador a fim de ser analisada, podendo ser posteriormente roteada para um sistema computacional, por exemplo um computador pessoal. | |||
= Tecnologias = | |||
<br> | |||
Além do uso da telemetria como princípio básico, a M2M se expandiu em termos de conexão, além da convencional conexão ponto-a-ponto ,mudaram para sistemas de rede que transmitem dados para equipamentos pessoais. A expansão das redes sem fio em todo o mundo tornou mais fácil o estabelecimento da comunicação M2M e reduziu a quantidade de energia e tempo necessários para transmitir informação entre equipamentos. Essas redes também abrem um leque de novas oportunidade de negócios e conectam os consumidores aos fabricantes em termos de disponibilidade de novos produtos. | |||
Como já dito no conceito, nesse processo será necessário o uso de softwares específicos que analisem a informação obtida através do sensor, informação essa que será transmitida para equipamentos(móveis ou não). | |||
= Interfaces utilizadas = | |||
<br> | |||
-->Interfaces com o software: | |||
Todos os dados deverão ser "tratados" por um software, como a informação fornecida pelo é bastante específica, construir um software para cada tipo de informação é necessário. | |||
Já existem hoje no mercado softwares de alta qualidade para algumas fenômenos: | |||
CYBERFLEET(Software de monitoramento de pneus). | |||
Site: http://www.autotrac.com.br/produtos/cyberfleet-telemetria-de-pneus. | |||
Que informações monitora: | |||
Pressão de enchimento; | |||
Temperatura de trabalho; | |||
Identificação de presença do pneu; | |||
Benefícios: | |||
Redução do consumo de combustível (a calibragem correta reduz a resistência ao rolamento, o que promove menor esforço para o motor); | |||
Aumento da vida útil do pneu (operando na pressão correta, os pneus apresentam melhor desempenho e consumo mais uniforme, sem desgaste exagerado concentrado em uma ou outra região); | |||
Otimização do tempo de manutenção do pneu, liberando sua frota para produzir (o monitoramento eletrônico dispensa o uso de medições manuais); | |||
Garantia de segurança patrimonial (ao monitorar a posição dos pneus, sua empresa é alertada de eventuais trocas ou remoções indevidas); | |||
Garantia de segurança operacional (sabendo o tempo todo das condições dos pneus, sua empresa pode evitar falhas e prevenir acidentes). | |||
-->Interfaces Lógicas: | |||
Como a comunicação é feita diretamente entre máquinas, atualmente alguns monitoramentos podem ser feitos em tempo real, os dados de um evento são transmitidos diretamente para o software de interpretação e assim imprimido em um dispositivo como um smartphone ou PC, que será usado como interface gráfica para manipulação dos dados. | |||
= Aplicações = | |||
<br> | |||
A grande inovação dessa tecnologia, e também o principal motivo de tamanha popularidade atualmente é a sua versatilidade, através de um monitoramento quase instantâneo de eventos que acontecem a quilômetros de distância temos como aplicações: | |||
--> Na conhecida Fórmula 1 todos os carros são monitorados segundo por segundo de uma corrida. Temperatura do motor, desgaste dos pneus, eficiência das asas, são algumas de várias informações recebidas pelos computadores dos engenheiros que ficam no pit stop e tomam decisões a fim de melhorar a performance do corredor. | |||
--> Carretas que carregam cargas importantes são monitoradas via satélite e também possuem sensores de temperatura tanto do motor quanto do container de carga. além de outros sensores. Nas centrais de comando são analisadas as melhores rotas para os caminhoneiros, quando o caminhoneiro deve parar para revisão do veículo, evitando acidentes e atrasos na entrega. | |||
= Vantagens = | |||
<br> | |||
As vantagens dessa tecnologia são inúmeras, mas como principais podemos citar: | |||
- Maior velocidade na transmissão de informações importantes ; | |||
- Na indústria automobilística : Maior acompanhamento das empresas na detecção e aperfeiçoamento de problemas em partes de automóveis; | |||
- No Sistema de Tráfego : Diminuição do número de acidentes causados por falta de informações ao condutor; | |||
- Diminuição do número de problemas que ocorrem em locais onde há uma grande concentração de pessoas. | |||
= Estado da Arte = | |||
<br> | |||
= Referências bibliográficas = | |||
<br> | |||
"Machine-to-Machine (M2M) Communication Challenges Established (U)SIM Card Technology" - GD | |||
"Machine to Machine (M2M) Technology in Demand Responsive Commercial Buildings" | |||
"M2M: The Internet of 50 Billion Devices", WinWin Magazine, January 2010. | |||
"Machine-to-Machine (M2M) Communications", MobileIN. | |||
"How Machine-to-Machine Communication Works", HowStuffWorks.com | |||
"When Machines Speak", InfoWorld. | |||
"Cyberfleet" http://www.autotrac.com.br/produtos/cyberfleet-telemetria-de-pneus/ | |||
---------------------------------------------------------------------------------------------------- | |||
= Android Developer = | |||
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | |||
referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese | |||
das pesquisas que fizer. | |||
<br> | |||
= Conceito de Developer = | |||
Um '''developer''' no sentido de programação é, na tradução literal, um '''desenvolvedor''' de determinado sistema, linguagem ou código. Um '''developer''' tem como função gerenciar e criar todo o projeto ao qual ele é responsável. Normalmente esse '''desenvolvedor''' é especialista em determinada linguagem ou determinado tipo de sistema.<br> | |||
= Android = | |||
O '''Android''' é um SO (Sistema Operacional) com funcionalidades voltadas para os dispositivos mobile. Atualmente se encontra entre os Sistemas operacionais mais utilizados em todo mundo, concorrendo com sistemas de grandes desenvolvedoras como a '''Microsoft''' (Windows Phone) e a '''Apple''' (IOS)'''.''' Entre suas principais características se encontram: | |||
-Handset Layouts | |||
-Conectividade | |||
-Mensagens | |||
-Browser | |||
-Suporte Java | |||
-Suporte Media | |||
-Suporte de Hardware | |||
-Market | |||
-Mensagens | |||
suporta tal como os outros dispositivos, SMS e MMS. | |||
-Browser | |||
o browser do Android é baseado num sistema open source Webkit. | |||
-Market | |||
é uma loja de aplicações que podem ser descarregadas directamente para o dispositivo e instaladas, sem ser preciso a utilização de um computador. Existem aplicações pagas, mas também gratuitas, maioritariamente. | |||
-Handset Layouts: | |||
esta plataforma adapta-se “ao grande”, VGA, bibliotecas de gráficos 2D e 3D, e layouts de smartphones tradicionais. | |||
-Conectividade | |||
o Android suporta tecnologias Bluetooth, GSM/EDGE, IDEN, CDMA, etc.. | |||
-Suporte Java | |||
as aplicações desta plataforma são feitos em Java. | |||
-Suporte Media | |||
o Android suporta MPEG-4, MP3, MIDI, WAV, JPG, PNG, etc..<br> | |||
= API = | |||
'''API''' (Application Programming Interface), são ferramentas utilizadas para estabelecer a comunicação entre diferentes softwares afim de que outros programas possam obter informações remotamente de um outro sistema. '''APIs''' são muito utilizados em redes sociais como Facebook, Twitter, etc, para que os visitantes de determinado site possam ter um link direto para a página do mesmo nessas redes sociais, facilitando assim o compartilhamento de informações e promoções do especificado site. <br> | |||
= Requisitos de um App = | |||
== Versão do Android == | |||
Hoje o Google está desenvolvendo a 20ª edição de sua API para Android, ainda é beta, para a próxima versão do Android 5.0, e ao meu ver esta tem com o principal foco os novos recursos de wearable (Tecnologia para Vestir) tanto é que é a primeira API dividida em duas partes: 20W e 20L, mas tudo isso ainda é apenas algo beta! | |||
Quando se desenvolve aplicativos para Android, é necessário especificar o nível de compatibilidade, que hoje são 19 versões de API disponível, portanto criar aplicativos compatível com com as 19 versões é bem mais difícil pois há muita coisa que foi descontinuada entre as versões, e muito mais ainda novos recursos que surgiram, e para ajudar existem bibliotecas auxiliares de compatibilidade, mas que complicam também o desenvolvimento. | |||
Na pratica desenvolver a partir da versão JELLY_BEAN (4.1) é mais fácil pois trata-se dos dispositivos Androids mais modernos e atuais lançados a partir de junho/2012, portanto qualquer projeto quanto mais específico for mais simples é de fazer. | |||
== Tamanho de tela == | |||
Outra variável muito importante é o tamanho da tela, pois a mesma versão de android pode rodar em um tablet, ou celular de tela grande ou pequeno, e ainda há o Google TV, ChromeCast, e ChromeBook, que também são outros tipos de dispositivos compatível, e nem sempre a proporção de tela é 4:3 ou 16:9, e o DPI muda muito. | |||
Também durante a execução de um aplicativo, com a opção de rotacionar tela automaticamente, basta mudar a posição do aplicativo que tudo já muda, e criar layouts compatível com as duas formas de tela também não é fácil, por outro lado posição fixas de tela pode inviabilizar ou limitar o uso. | |||
Em Tablets cabe muito mais informação em tela, mas em dispositivos menores não adianta só reduzir, se não nada ficará legível seja por causa do DPI, ou porque fica impossível de enxergar, ou fica difícil de tocar no item correto. | |||
Um tela com 300 DPI significa 300 pixel a cada polegada, ou seja: (1/300)*25,4 milímetros = 0,0846 milímetros, isso é menor que a decima parte de 1 milímetro, não da quase par enxergar! | |||
Há celulares com telas de 5” que tem a mesma resolução Full HD de TVs de 42”, ou seja, 1080 pixel de altura (varredura vertical), que fazendo as contastrigonometricamente em uma tela de de 5” com proporção de 16:9 temos | |||
co=9, ca=16, tg=co/ca, tg=9/16=0,5625 | |||
arctang(0,5625) => a=0,5123 radianos | |||
portanto 5”*sen(a)=2,45” | |||
matemágica! use a calculadora virtual! | |||
Ou o aplicativo Android Super Screen Specs Checker disponível no Google Play | |||
Mas para simplificar o Google fez algo interessante, criou uma unidade de medidas especial chamada de “DP”, use a calculadora de conversão para entender melhor o funcionamento, e também padronizou tamanhos de tela de acordo com a densidade: small, normal, large, xlarge | |||
== Método de Entrada == | |||
Em geral, o mais simples e comum é aplicativo touch simples, com único toque. | |||
Mas para andoroid possível ter multi-toque, usando vários dedos em tela, ou usar caneta de precisa, teclado virtual ou físico, mouse… | |||
Cada tipo de possível suporte de interface tem suas particularidades | |||
== Interconectividade == | |||
O Básico hoje em dia é o acesso a internet para se conectar a banco de dados, webservices, consumir serviços em json, mas cada tipo de conexão tem seus protocolos e formatos próprios e necessitam de um bom conhecimento de rede. | |||
Mas o aplicativo Android nunca pode fazer chamadas a internet pelo programa principal (MainThread), tem que sempre fazer de forma assíncrona, criando uma tarefa secundaria que irá executar em background, e ai começa a complicar, pois nada mais é síncrono, sequencial, e é necessário orquestrar várias tarefas, renderizar a tela, tudo de forma que uma tarefa não trave a outra, mas saiba esperar a outra acabar, sem contar os eventos do sistema operacional, além os outros aplicativos rodando em paralelo, e tudo sempre respeitando o ciclo de vida das Activity (Cada tela é chamada de uma Atividade) que pode parar, ou continuar a qualquer momento. | |||
Há ainda outas forma de se conectar como o Bluetooth, USB, Serial, NFC, e cada um tem suas características únicas | |||
== Recursos de Hardware == | |||
Usar os sensores de posição, acelerômetro, Magnético, GPS, Temperatura, umidade no Ar, Barômetro, e por ai vai… de acordo com o modelo tem muita coisa que pode se usada. | |||
Ler a câmera, trabalhar com vídeo, interagir com o hardware sempre requer muita experiência para não travar tudo pois são ações bem pesadas. | |||
Emitir um sinal usando o infravermelho, sintonizar uma radio, ou sinal de TV analógica ou digital, em fim cada coisa tem suas várias particularidades. | |||
== Persistência a Dados == | |||
Há várias formas e persistir(gravar) e ler dados no Android, a mais simples são os arquivos XML de preferencias de controle interno do Android, tem o acesso a arquivos no dispositivo (FileSystem), e também o sqLite, que é um versão reduzida do MySQL. | |||
Cada forma requer todo um conhecimento as classes de acesso específicas. | |||
<br> | |||
= Como funciona o Google Play? = | |||
A loja virtual de aplicativos Android conhecida como '''Google Play''' funciona de modo semelhante a outras lojas do mesmo seguimento porem de empresas diferentes. O usuário se cadastra com um e mail criado pelo provedor da '''Google''' (gmail), e a partir daí todas os aplicativos da '''Google Play''' estão liberados para serem baixados pelo usuário. Dentro do ambiente virtual o método de compra e de obtenção dos apps é simples e rápido, tendo diversas categorias para pesquisa e apps desde gratuitos até os pagos, com bastante variedade de preços. O ambiente conta também com um histórico de apps baixados e uma lista de sugestões baseadas nesse histórico de navegação pelo ambiente. | |||
<br> | |||
= XML= | |||
A plataforma Android é uma plataforma de desenvolvimento em software livre para celulares. Ele lhe dá acesso a todos os aspectos do celular em que é executado, de gráficos de baixo nível a hardware como a câmera do telefone. Com tantas possibilidades de uso do Android, talvez você se pergunte porque precisa se preocupar com '''XML'''. Não é que trabalhar com '''XML''' seja tão interessante; o interessante é trabalhar com as coisas que ele possibilita. '''XML''' é usado normalmente como formato de dados na Internet. Se quiser acessar dados na Internet, é bem possível que eles estejam em formato '''XML'''. Se você envia dados a um serviço da Web, talvez você também precise enviar em '''XML'''. Em resumo, se seu aplicativo Android quiser aproveitar a Internet, você provavelmente vai precisar trabalhar com '''XML'''. Felizmente, há várias opções disponíveis para trabalhar com '''XML''' em Android.<br> | |||
= Referências bibliográficas = | |||
https://www.android.com/intl/pt-BR_br/ | |||
https://prezi.com/7nylkcz473kt/principais-caracteristicas-do-sistema-android/ | |||
http://canaltech.com.br/o-que-e/software/o-que-e-api/ | |||
https://www.ibm.com/developerworks/br/opensource/library/x-android/ | |||
<br> | |||
---------------------------------------------------------------------------------------------------- | |||
= Normalização = | |||
* '''1FN - 1ª Forma Normal''': todos os atributos de uma tabela devem ser atômicos, ou seja, a tabela não deve conter grupos repetidos e nem atributos com mais de um valor. Os grupos repetidos devem ser postos em tabelas separadas, conectados por uma chave primária ou estrangeira. | |||
'''Exemplo:''' | |||
PESSOAS = {Id+ Nome + Endereço + Telefones} | |||
================================================================================================================================================================ | Ela contém a chave primária “Id” e o atributo “Telefones” é um atributo multivalorado e, portanto, a tabela não está na 1FN. Para deixá-la na 1FN, cria-se uma nova tabela chamada TELEFONES que conterá “IdPessoa” como chave estrangeira de PESSOAS e “Telefone” como o valor multivalorado que será armazenado. | ||
PESSOAS = { Id + Nome + Endereço } | |||
TELEFONES = { IdPessoa + Telefone } | |||
* '''2FN - 2ª Forma Normal''': todos os atributos não chaves da tabela devem depender unicamente da chave primária. Para tanto, é preciso identificar as colunas que não são funcionalmente dependentes da chave primária da tabela e, em seguida, remover essa coluna da tabela principal e criar uma nova tabela com esses dados. | |||
'''Exemplo:''' | |||
ALUNOS_CURSOS = { IdAluno + IdCurso + Nota + DescriçãoCurso } | |||
Nessa tabela, o atributo “DescriçãoCurso” depende apenas da chave primária IdCurso. Dessa forma, a tabela não está na 2FN. Para tanto, cria-se uma nova tabela chamada CURSOS que tem como chave primária IdCurso e atributo “Descrição” retirando, assim, o atributo “DescriçãoCurso” da tabela ALUNOS_CURSOS. | |||
ALUNOS_CURSOS = { IdAluno + IdCurso + Nota } | |||
CURSOS = {IdCurso + Descrição} | |||
* '''3FN - 3ª Forma Normal''': os atributos não chave de uma tabela devem ser mutuamente independentes e dependentes unicamente e exclusivamente da chave primária (um atributo B é funcionalmente dependente de A se, e somente se, para cada valor de A só existe um valor de B). Para atingir essa forma normal, é preciso identificar as colunas que são funcionalmente dependentes das outras colunas não chave e extraí-las para outra tabela. | |||
'''Exemplo:''' | |||
FUNCIONARIOS = { Id + Nome + IdCargo + DescriçãoCargo } | |||
O atributo “DescriçãoCargo” depende exclusivamente de “IdCargo” (atributo não chave) e, portanto, deve-se criar uma nova tabela com esses atributos. Assim: | |||
FUNCIONARIOS = { Id + Nome + IdCargo } | |||
CARGOS = { IdCargo + Descrição } | |||
*'''Exemplo:''' | |||
**Caso discutido em sala de aula: | |||
[[Arquivo:DiagramaBDUniversidade.png]] | |||
---------------------------------------------------------------------------------------------------- | |||
= Desenvolvimento Web = | |||
== '''Definição''' == | |||
*Desenvolvimento Web, de forma bem ampla, é o termo utilizado para definir tudo que é criado no ambiente virtual especifico de websites. De modo mais simples, o desenvolvimento web, é a criação de todo conteúdo de um site, fórum, rede social, etc . Este termo contempla todo o processo de construção e testes de aplicações web e de websites e os recursos utilizados para sua realização. | |||
== '''Linguagens''' == | |||
*Para a criação de páginas web e aplicativos web, algumas linguagens são extremamente importantes, sendo elas : | |||
**'''- HTML, XHTML''' : Essas linguagens geralmente são utilizadas para desenvolver o corpo de uma página web. | |||
**'''- CSS''' : Linguagem utilizada em geral, para o desenvolvimento gráfico de páginas e aplicativos web. | |||
**'''- .NET''': Possui função equiparada á linguagem HTML, entretanto é utilizada proritariamente para desenvolvimento e execução de sistemas web. | |||
**'''- JAVA, JAVASCRIPT, FLASH, PHP,''' : Possuem funções de desenvolvimento de aplicações web, como slides e jogos. Essas linguagens são predominantes no desenvolvimento de interfaces dinâmicas, entretanto, podem ser utilizadas para o desenvolvimento gráfico. | |||
**'''- MYSQL, POSTGRESQL, SQLITE, APACHE, FIREBIRD, ORACLE''' : São linguagens de banco de dados utilizadas para armazenar tudo que é necessário do contato cliente-servidor na web. | |||
== '''Processos do desenvolvimento web''' == | |||
* Os processos que estão envolvidos no desenvolvimento web são extremamente amplos e podem ser divididos da seguinte maneira : | |||
---- | |||
'''Desenvolvimento do Front-end''' | |||
*O termo "Front-end" é utilizado para definir a codificação dos dados inseridos pelo cliente. Essa etapa é extremamente importante no desenvolvimento web, pois é a partir do front-end que podemos criar uma interface dinâmica entre cliente-servidor em um website. | |||
*Nessa etapa algumas linguagens computacionais são extremamente importantes, sendo elas : | |||
*- HTML | |||
*- PHP | |||
*- CSS | |||
*- XHTML | |||
*- JAVASCRIPT | |||
*- FLASH | |||
---- | |||
'''Desenvolvimento do Back-end''' | |||
*O termo "Back-end" é utilizado com sentido oposto ao "Front-end", ou seja, enquanto o "front-end" é o desenvolvimento de métodos computacionais para a codificação dos dados insertos pelos usuário, o "back-end" é responsável por desenvolver os processos à serem realizados após a interação do cliente-servidor. Em geral, os processos são realizados pelo servidor, o que é de responsabilidade de "back-end". | |||
[https://www.oficinadanet.com.br/imagens/post/13541/front-end-back-end-01.png] | |||
*Nessa etapa algumas linguagens computacionais são extremamente importantes, sendo elas : | |||
*- HTML | |||
*- PHP | |||
*- .NET | |||
*- ASP | |||
*- JAVA | |||
*- PHYTON | |||
*- JAVASCRIPT | |||
---- | |||
'''Desenvolvimento do banco de dados''' | |||
*Neste etapa, após o fluxo de dados entre cliente-servidor , o programador desenvolve um banco de dados para armazenar tudo que necessário para sua aplicação web. | |||
*Nessa etapa algumas linguagens computacionais são extremamente importantes, sendo elas : | |||
* - MYSQL | |||
* - POSTGRESQL | |||
* - ORACLE | |||
* - APACHE | |||
---- | |||
'''Desenvolvimento do design gráfico''' | |||
*Sabemos que no âmbito do desenvolvimento web, uma das partes mais significativas do trabalho é o desenvolvimento do design, afinal no ambiente web o design de uma página ou aplicativo web é o que mais chama atenção do usuário. Nessa etapa é necessário um conhecimento amplo para a utilização de softwares, como o "Photoshop CS" , para criar a aparência do "produto final". | |||
*Nessa etapa algumas linguagens computacionais são extremamente importantes, sendo elas : | |||
*- PHP | |||
*- CSS | |||
*- HTML | |||
*- JAVASCRIPT | |||
*- FLASH | |||
== '''Aplicação no dia a dia''' == | |||
* O desenvolvimento web é extremamente aplicado no dia a dia de todos. Um bom exemplo é a rede web. Todos os websites que são criados, passam pelos processos de desenvolvimento web, desde sites comuns como blogs e páginas de noticias até páginas pouco mais complexas como as redes sociais. No dia a dia do usuário da tecnologia, as aplicações web também são utilizadas. Em um jogo, por exemplo, que realiza cadastro de seus usuários pelo seu website, os processos de desenvolvimento web também estão envolvidos, já que é preciso uma interface para realizar o contato entre o cliente, o servidor, o banco de dados e o própio aplicativo do jogo . Um banco que realiza transações bancárias e outras funções online, também utiliza dos processos de desenvolvimento web, assim como vários outros processos virtuais necessitam do desenvolvimento web. | |||
== '''Exemplos''' == | |||
* Existem diversos exemplos de desenvolvimento web : | |||
*'''Exemplo de uma página web desenvolvida em HTML''' | |||
[http://i.imgur.com/BfwASHR.png] | |||
[http://i.imgur.com/gfgFy0v.png] | |||
*'''Exemplo de uma aplicação web desenvolvida dinamicamente (Linguagens Java, JavaScript, Flash, etc)''' | |||
[http://i.imgur.com/IU2NrzQ.png] | |||
*'''Exemplo de um banco de dados de uma página web''' | |||
[http://wiki.inetweb.com.br/images/f/f7/Pma02.jpg] | |||
== '''Fontes bibliográficas''' == | |||
* - Conhecimentos gerais | |||
* - https://scholar.google.com.br/scholar?q=o+que+%C3%A9+desenvolvimento+web&btnG=&hl=pt-BR&as_sdt=0%2C5 | |||
* - http://www.devmedia.com.br/introducao-ao-desenvolvimento-de-aplicacoes-web/29798 | |||
* - http://www.tecmundo.com.br/2862-profissao-programador-web.htm | |||
* - https://www.oficinadanet.com.br/post/13541-afinal-o-que-e-frontend-e-o-que-e-backend- | |||
* - https://www.researchgate.net/profile/Guilherme_Travassos/publication/228647730_Processos_de_Desenvolvimento_para_Aplicaes_Web_Uma_Reviso_Sistemtica/links/00b7d51475c7f69e0b000000.pdf | |||
---------------------------------------------------------------------------------------------------- | |||
= Processo de Software = | |||
<br> | |||
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | |||
referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese | |||
das pesquisas que fizer. | |||
<br> | |||
= Conceito = | |||
<br> | |||
Quando se deseja projetar um sistema, é de suma importância que o desenvolvedor siga um roteiro, uma série de passos que permitam que seu projeto seja o mais dinâmico possível. Por dinâmico, entende-se a capacidade de projetar e incorporar de forma mais clara possível, utilizar recursos de forma inteligente, e tentar tornar seu sistema atemporal para que ele seja reaproveitado tantas vezes quanto for possível. | |||
O Processo de Software diz respeito ao gerenciamento da criação do software desde seu planejamento a ideia inicial até a sua distribuição comercial. | |||
Contém geralmente as seguintes etapas: | |||
- Análise | |||
- Design | |||
- Desenvolvimento do código / algoritmo | |||
- Testes e Manutenção | |||
= Modelo Cascata = | |||
<br> | |||
O '''Modelo Cascata''' também conhecido como '''Paradigma Clássico de Vida Útil''' (The Classic ''life-cycle'' paradigm) se originou nos anos 60 (sendo o mais antigo) pela demanda das indústrias de defesa, aeroespaciais nos Estados Unidos e também para aplicações comerciais, por softwares de larga escala. A formalização do termo é atribuída ao Cientista da Computação '''Winston W. Royce''' que escreveu um artigo em 1970 sobre o modelo. (Que no caso era uma crítica à essa forma de desenvolvimento, pois Royce era adepto da '''abordagem iterativa'''.) | |||
Tal processo de desenvolvimento idealiza as etapas de forma linear ou sistemáticas fases sequenciais colocando os desenvolvedores inicialmente no patamar de '''requisitos de alto nível''', passando pelos '''testes''', chegando assim na fase final que é a '''distribuição''', e a manutenção contínua do mesmo. | |||
Nas últimas três décadas, o modelo tem sido amplamente criticado, inclusive até seus maiores defensores levantavam questionamentos sobre a eficácia pois embora teoricamente o modelo siga uma linha de raciocínio bem elaborada e permita um desenvolvimento bem sólido e planejado, sua aplicação prática não funciona bem assim pois projetos reais muito dificilmente vão seguir à risca as etapas que o modelo propôs, o modelo em cascata embora tenha a iteração, ela acontece de forma indireta e qualquer mudança que ocorra no desenrolar do processo pode acabar gerando confusões. De início também é difícil para o cliente explicitar claramente todas suas necessidades, que é um requisito do modelo, além disso a versão operacional do projeto não estará disponível até as últimas etapas do processo, o que pode tornar pequenos erros se não detectados, um desastre total e comprometer todo o projeto. Portanto, para se utilizar o Modelo Cascata de forma inteligente, seria interessante que tivéssemos todos os requisitos bem definidos e estáveis. | |||
[[Arquivo:WF.png]] | |||
= Modelo Prototipação = | |||
<br> | |||
Pode ocorrer muitas vezes do cliente requisitar objetivos do software mas não detalhar especificamente os requisitos ou até mesmo do desenvolvedor apresentar uma certa insegurança quanto a compatibilidade e (ou) adaptação em um sistema e também da sua interface. | |||
Nesses casos é altamente recomendado o uso do Modelo de Prototipação. | |||
Pode ser usada tanto isoladamente tanto em conjunto com qualquer outro modelo de desenvolvimento. O objetivo principal do Protótipo é simplesmente ser uma forma de identificar os requisitos de software. | |||
o Processo de Prototipação inicia-se com a etapa de Comunicação onde se reúne com a equipe para explicitar a abrangência do software, relatar os requisitos já conhecidos e identificar as áreas onde que precisam de maior atenção quanto à definição; seguidamente ocorre a etapa de Modelação onde se cria um "Projeto Rápido" que pode ser descrito como as características do Software tangíveis ao usuário final, a partir do Projeto Rápido é finalmente criado o Protótipo que será aprimorado quantas vezes for necessário a partir das conclusões e necessidade dos desenvolvedores | |||
[[Arquivo:PTT.png]] | |||
= Modelo Espiral = | |||
<br> | |||
O '''Modelo Espiral''' foi introzido pelo Cientista da Computação '''Barry Boehm''' em seu artigo ''A Spiral Model of Software Development and Enhancement'' (1988), sua ideia é a fusão da iteratividade da prototipação e a a sistemática do '''Modelo Cascata'''. | |||
Basicamente, no '''Modelo Espiral''' nós começamos desenvolvendo o Software e a cada iteração ele se torna mais completo até se aproximar da versão final, isso significa que não teremos o software sendo desenvolvido em um única etapa, e sim como o resultado de várias micro checagens (resultante de cada iteração). | |||
É tido como o modelo mais viável para desenvolvimento de sistemas e softwares de larga escala pois permite um consenso mais claro entre desenvolvedor e cliente sobre os riscos. | |||
Se divide em quatro etapas cíclicas, sendo respectivamente: | |||
'''Planejamento''': Determinação dos Objetivos, cronograma, requisitos iniciais, finalidade do projeto com base na demanda. | |||
'''Análise de Riscos''': Resolução de riscos e estudo de alternativas. | |||
'''Construção ou Execução''': Desenvolvimento e checagem. | |||
'''Verificação''': Avaliação do usuário, e em caso de finalização do projeto, distribuição e suporte | |||
A cada iteração existe uma verificação ente a Análise de Riscos e a Construção denominada '''''go, non-go''''', é um ponto onde se analisa a viabilidade de dar continuidade ao projeto com base nos esforços necessários para tal. | |||
[[Arquivo:SPR.jpg]] | |||
= Modelo em Componentes = | |||
<br> | |||
O Modelo em Componentes ou Componentes de Software Comercial de Prateleira (COTS - Commercial off-the-shelf) é um formato de desenvolvimento de software terceirizado em larga escala onde vende-se funcionalidades pré desenvolvidas para serem acopladas em outros softwares, ou seja, não é exclusivo, isso implica que ele provavelmente será mais barato, de maior qualidade pois a concorrência é maior e mais complexos pela experiência dos que desenvolvem nesse modelo, rápida implementação. Incorpora elementos do '''Modelo Espiral'''. | |||
Exemplos de Softwares são Pacotes Office e Antivírus. | |||
= Comparação entre os modelos = | |||
<br> | |||
Nós já sabemos que o '''Modelo em Cascata''' é o mais velho, e também o mais difícil de ser implementado e menos usado, como explicado anteriormente, ele é baseado em certezas e linearidade, o que um projeto '''Real''' dificilmente vai apresentar principalmente por causa de prazos e a falta de um dinamismo pleno por parte da equipe que eventualmente terá problemas. | |||
Já o Modelo em Espiral é um dos mais usados até hoje que pode ser aproveitado de várias formas, não ficando somente preso à descrição clássica (podemos usá-lo em conjunto com o '''COTS''' por exemplo), é muito mais dinâmico que o Modelo em Cascata pelo fato de ser um modelo iterativo, parte da premissa que todo projeto é suscetível a falhas por isso necessita de constantes verificações e adaptações, diferentemente do inflexível '''Modelo em Cascata'''. | |||
O '''COTS''' pode ser mais entendido como um modelo de gerenciamento e administração do projeto do que do seu desenvolvimento propriamente dito, isso significa que a maior parte do tempo o empreendedor não se preocupará com o desenvolvimento do software propriamente dito e sim com os riscos de mercado tal como a implantação do mesmo, como explicitado anteriormente, é derivado do '''Modelo em Espiral'''. | |||
O '''Modelo em Prototipagem''' é uma ferramenta, embora possa ser usado separadamente, é geralmente implantado em conjunto, também com o '''Espiral''', sua vantagem é o levantamento de requisitos e consequentemente um dinamismo na totalidade do projeto e esclarecimento do mesmo. | |||
= Referências bibliográficas = | |||
<br> | |||
Michael A. Cusumano and Stanley Smith - MIT Sloan School of Management (1995). ''Beyond the Waterfall: Software Development at Microsoft'' | |||
Roger S. Pressman and Bruce Maxim - ''Software Engineering: A Practitioner's Approach''. | |||
---------------------------------------------------------------------------------------------------- | |||
= UML = | |||
= Conceito = | |||
Unified Modeling Language (UML) é uma linguagem de modelagem voltada para a área de Engenharia de Software e Sistemas de Informação, com função de especificar, visualizar, construir e documentar modelos de software orientados a objetos. A UML foi criada por Ivar Jacobson, Grady Booch e James Rumbaugh, cientistas da computação e engenheiros de software, criadores das mais conceituadas metodologias de modelagem da área até então, procurando desenvolver uma linguagem unificada padrão. | |||
UML não é, portanto, uma linguagem ou metodologia de programação visual, mas sim uma linguagem de modelagem visual. Pelo auxílio no levantamento dos requisitos de construção do sistema e, pelo fato de ser fortemente integrada aos conceitos de Orientação a Objetos, o UML tornou-se um padrão de grande aceitação. Sendo, assim, adotada pela OMG, Object Management Group, grupo responsável por aprovar padrões para aplicações em tecnologia orientada a objetos. | |||
=Diagramas= | |||
Na modelagem UML, diferentes elementos gráficos se combinam para compor um diagrama, seguindo regras de combinação. Cada diagrama é apresentado separadamente no projeto, com o objetivo de fornecer diversas visões do sistema a ser modelado. | |||
Os diagramas utilizados pela UML são compostos de 13 tipos, divididos em 3 categorias: 3 tipos Funcionais, 6 tipos Estruturais e 4 tipos de Interação. | |||
==Diagramas Funcionais== | |||
Os Diagramas Funcionais, ou comportamentais, representam os aspectos dinâmicos do sistema. São classificados em: | |||
===Diagrama de Caso de Uso=== | |||
Os Diagramas de Caso de Uso são utilizados para representar as funcionalidades do sistema. Descrevendo os relacionamentos e dependências entre um grupo de Caso de Uso, são as sequências de ações executadas, e os Atores, que são os usuários. | |||
[[Arquivo:CasodeUso.png]] | |||
Exemplo: Diagrama de Caso de Uso | |||
===Diagrama de Atividade=== | |||
Os Diagramas de Atividades são utilizados para descrever o fluxo de controle de uma atividade para outra, ou seja, descrever sequências de atividades de um processo. Pode ser confundido com um fluxograma, porém suporta diversos outros recursos. | |||
[[Arquivo:DiagramaAtividades.jpg]] | |||
Exemplo: Diagrama de Atividade | |||
===Diagrama de Máquina de Estado=== | |||
O Diagrama de Estado representa os diferentes estados de um objeto pode assumir, e os estímulos que causam essas alterações. | |||
[[Arquivo:DiagramaEstado.png]] | |||
Exemplo: Diagrama de Estado | |||
==Diagramas Estruturais== | |||
Os Diagramas Estruturais representam os aspectos estáticos, ou seja, representação da estrutura de um sistema. São classificados em: | |||
===Diagrama de Classes=== | |||
O Diagrama de Classe é o principal do modelo estrutural. Basicamente representa uma perspectiva do sistema de um ponto de vista externo. Demonstra uma visão do modelo estrutural estático, onde mostra as classes de um sistema, seus métodos (operações), atributos e a relação entre as classes. | |||
[[Arquivo:DiagramaClasses.jpg]] | |||
Exemplo: Diagrama de Classes | |||
===Diagrama de Objetos=== | |||
O Diagrama de Objeto pode ser considerado como uma variação do diagrama de classes, diferenciado pelo seu uso. São utilizados, de uma perspectiva prática, para mostrar exemplos de estruturas de dados pontos do sistema, útil no processo de construção do protótipo. | |||
[[Arquivo:DiagramaObjeto.png]] | |||
Exemplo: Diagrama de Objetos | |||
===Diagrama de Pacotes=== | |||
O Diagrama de Pacotes demonstra o agrupamento das classes e/ou interfaces e a relação de dependência entre eles. Pode ser utilizado em qualquer fase do processo de modelagem e tem como objetivo organizar os modelos. | |||
[[Arquivo:DiagramaPacote.jpg]] | |||
Exemplo: Diagrama de Pacotes | |||
===Diagrama de Estrutura Composta=== | |||
O Diagrama de Estrutura Composta é utilizado para modelar um conjunto de elementos que cooperam para fim de executar uma função específica. | |||
[[Arquivo:DiagramaEstrutura.png]] | |||
Exemplo: Diagrama de Estrutura Composta | |||
===Diagrama de Componentes=== | |||
O Diagrama de Componentes representa os conjuntos dos componentes, que é formado por um conjunto de classes que são implementadas nele, suas interfaces e relações. Mostra como as classes são organizadas em determinados grupos, baseando-se nas relações entre elas, destaca a função de cada componente, facilitando a sua reutilização em outros sistemas. | |||
[[Arquivo:DiagramaComponente.gif]] | |||
Exemplo: Diagrama de Componentes | |||
===Diagrama de Implantação=== | |||
O Diagrama de Implantação, ou de instalação, modela a relação das entidades físicas de infraestrutura do sistema. É normalmente utilizado em projetos onde há muita interdependência entre partes de hardware e software. | |||
[[Arquivo:DiagramaImplantacao.png]] | |||
Exemplo: Diagrama de Implantação | |||
==Diagramas de Interação== | |||
Os Diagramas de Interação, que derivam do Diagrama Comportamental, mostram como os objetos interagem uns com os outros. São classificados em: | |||
===Diagrama de Sequência=== | |||
O Diagrama de Sequência é utilizado para representar uma sequência de processos, de troca de mensagens, entre os objetos do sistema. | |||
[[Arquivo:DiagramaSequencia.gif]] | |||
Exemplo: Diagrama de Sequência | |||
===Diagrama de Comunicação=== | |||
Os Diagramas de Comunicação, ou Colaboração, são semelhantes aos de Sequência, mostrando as interações entre os objetos, porém agora apresentam os objetos com seus relacionamentos. | |||
[[Arquivo:DiagramaComunicacao.jpeg]] | |||
Exemplo: Diagrama de Comunicação | |||
===Diagrama de Visão Geral de Interação=== | |||
O Diagrama de Visão Geral é uma variação do diagrama de atividade, mostra visão geral do controle do fluxo de diferentes atividades. Quando as sequências de iterações mostram-se complexas, o uso do diagrama de visão geral torna-se necessário para um resumo da situação. | |||
[[Arquivo:DiagramaVisao.png.png]] | |||
Exemplo: Diagrama de Visão Geral | |||
===Diagrama de Tempo=== | |||
O Diagrama de Tempo assemelha-se ao diagrama de sequência, porém tem o foco na modelagem de restrições temporais. | |||
[[Arquivo:DiagramaTempo.png]] | |||
Exemplo: Diagrama de Tempo | |||
=Referências= | |||
*SILVA, Alberto M. R.; VIDEIRA, Carlos A. E. UML, Metodologias e Ferramentas Case, Vol. 1 | |||
Homepages: | |||
*Unified Modeling Language (UML). Disponível em: <http://www.uml.org/>. Acesso em: 29 abr. 2015. | |||
*Understanding the Unified Modeling Language (UML). Disponível em:<http://www.methodsandtools.com/archive/archive.php?id=76>. Acesso em: 29 abr. 2015. | |||
*UML - Standard Diagrams. <http://www.tutorialspoint.com/uml/uml_standard_diagrams.htm>. Acesso em: 29 abr. 2015 | |||
*Unified Modeling Language. <http://commons.wikimedia.org/w/index.php?title=Unified+Modeling+Language&uselang=pt>. Acesso em: 29 abr. 2015. | |||
---------------------------------------------------------------------------------------------------- | |||
= Banco de Dados = | |||
<br> | |||
= Introdução = | |||
* Um software de Banco de Dados é utilizado para '''armazenar, organizar, selecionar e processar dados''' de forma a facilitar consulta e a manipulação desses dados | |||
* Um banco de dados é usualmente mantido e acessado por meio de um software conhecido como Sistema Gerenciador de Banco de Dados (SGBD). | |||
* Modelos: | |||
** plano | |||
** em rede | |||
** relacional | |||
<br> | |||
Exemplos: | |||
* Microsoft Visual FoxPro | |||
* Microsoft Access | |||
* dBASE | |||
* FileMaker | |||
* (em certa medida) HyperCard | |||
* MySQL | |||
* Intpro | |||
* PostgreSQL | |||
* Firebird | |||
* Microsoft SQL Server | |||
* Oracle | |||
* Informix | |||
* DB2 | |||
* Caché | |||
* Sybase. | |||
<br> | |||
'''Oracle''' | |||
* Foi a primeira empresa a desenvolver softwares pra organizar arquivos de empresas | |||
* Ainda é a mais influente nesse setor | |||
* Está sempre lançando novos versões, para melhor atender as necessidades do mercado | |||
<br> | |||
= Funcionalidades = | |||
* Criar tabelas | |||
* Relacionar tabelas | |||
* Otimizar acesso ao banco de dados | |||
* Suportar alto número de registros | |||
<br> | |||
Em Setembro de 2007, a Oracle disponibilizou no mercado sua mais nova versão do Banco de Dados. Trata-se a versão Oracle 11g que vem com mais de 400 novas funcionalidades. | |||
Destacam-se abaixo algumas delas: | |||
<br> | |||
*PL/SQL Function Result Cache: | |||
Esta funcionalidade permite que o Oracle armazene em memória o resultado da execução de uma Função. | |||
Caso esta função seja re-executada, com os mesmos parâmentros, o resultado é buscado diretamente da memória sem processar o código novamente. | |||
*Oracle Flashback Data Archive: | |||
Antes da versão 11g, as operações de "flashback" dependem da área de Undo e de como está configurado o tempo de retenção desta área. A partir da versão 11g, todas as alterações numa tabela, por exemplo, podem ser armazenadas numa área denominada "Flashback Recovery Area". Sendo que o tempo de retenção pode ser configurado de acordo com a necessidade. | |||
*Oracle Real Application Testing (Database Replay): | |||
Antes de realizar substituições de hardware ou atualizações de softwares, normalmente as empresas elaboram diversos testes com o objetivo de validar o novo ambiente antes da migração. Porém, muitas vezes não consegue-se simular um ambiente de produção real. | |||
O Database Replay se dispõe como uma ferramenta capaz de capturar todo o processamento do banco de dados de produção, num determinado momento, e repetí-lo num ambiente de testes, por exemplo. | |||
<br> | |||
= Benefícios = | |||
* Ágil gestão da política de segurança | |||
* Redução do risco de fraudes online | |||
* Integração com parceiros de negócios seguros | |||
* Melhor experiência do usuário final | |||
* Aplicativo para dispositivos móveis | |||
* Economia da estrutura de rede. | |||
* Reduz indisponibilidade do ambiente. | |||
* Aumento de performance das aplicações. | |||
* Disponibilidade e condição de simular ambiente de produção em outro ambiente. | |||
* Controle detalhado e rápido de recover de tabelas, sem precisar recorrer a backup externo | |||
<br> | |||
= Interface gráfica = | |||
[[Arquivo:OBIE_PersonalizedStart.jpg]] | |||
<br> | |||
= Custos = | |||
* O maior pacote oferecido pela Oracle é o Oracle Access Management Suite Plus, e este tem o custo de R$391,104.00 com licença perpétua | |||
* Porém há outros pacotes com menos funções, adaptando-se ao perfil do usuário, que são mais acessíveis | |||
<br> | |||
= Fornecedor = | |||
* Oracle Corporation | |||
<br> | |||
= Sistema Operacional = | |||
* Windows (Versões) | |||
* Linux (Versões) | |||
* Solaris | |||
* SUSE ES | |||
<br> | |||
= Referências = | |||
* https://shop.oracle.com/pls/ostore/f?p=dstore:product:1349950105474367::NO:RP,3:P3_LPI,P3_PROD_HIER_ID:30914933132890119987055,4509956172801805720011 | |||
* http://www.cmswire.com/images/OBIE_PersonalizedStart.jpg | |||
* http://pt.wikipedia.org/wiki/Banco_de_dados | |||
* http://pt.wikipedia.org/wiki/Oracle_(banco_de_dados) | |||
* http://www.teiko.com.br/?novidades-do-oracle-11g&ctd=68 | |||
---------------------------------------------------------------------------------------------------- | |||
= WebService = | |||
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | |||
referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese | |||
das pesquisas que fizer. | |||
<br> | |||
= Conceito = | |||
<br> | |||
Web service é uma solução utilizada na integração de sistemas e na comunicação entre aplicações diferentes, com esta tecnologia é possível que novas aplicações possam interagir com aquelas que já existem e que sistemas desenvolvidos em plataformas diferentes sejam compatíveis, isto é possível pois os web services são componentes que permitem às aplicações enviar e receber dados em formato XML, mesmo que cada aplicação tenha sua própria "linguagem" ela é traduzida para a "linguagem universal" o formato XML. | |||
Os web services podem ser acessados usando os protocolos padrão da Web, como por exemplo http, https, etc. web Services podem ser aplicados a qualquer tipo de plataforma de integração e suportam tanto aplicações ponto-a-ponto quanto aplicações distribuídas. | |||
Os web services são formados por aplicativos que usam codificações e protocolos padronizados para troca de informações. Assim, são amplamente utilizados em aplicações de cunho comercial permitindo que sistemas de computação interajam através de diferentes ambientes. | |||
Os web services dispõem, alem de facilidades nas transações distribuídas, de bom nível de segurança e de serviços de mensagens confiáveis. Portanto, alguns problemas como distribuição, transporte, segurança, autenticação e controle de transações são amenizados através dessa tecnologia. | |||
'''Alguns dos conceitos principais de Web Services são:''' | |||
*Ele é acessível pela Internet pois os serviços se comunicam utilizando protocolos que são independentes de plataforma facilitando a integração em plataformas heterogêneas. | |||
*Web Services define um protocolo de comunicação e uma interface que pode ser requerida por um cliente ou fornecida pelo servidor de aplicação | |||
*WSDL (Web Services Description Language) adiciona uma camada de abstração entre a interface do serviço com o cliente e sua implementação. | |||
= Funcionamento = | |||
<br> | |||
= SOA = | |||
<br> | |||
Uma SOA é um modelo de projeto com um conceito profundamente amarrado à questão do encapsulamento de aplicação. A arquitetura resultante estabelece essencialmente um paradigma de projeto, no qual web services são os blocos de construção chave. Isto quer dizer que ao migrar a arquitetura da sua aplicação para uma SOA, estabelece-se um compromisso com os princípios de projeto de web services e a tecnologia correspondente, como partes fundamentais do seu ambiente técnico. | |||
Uma SOA baseada em XML web service é construída sobre camadas de tecnologia XML estabelecidas, focada em expor a lógica de aplicação existente como um serviço fracamente acoplado. Para apoiar este modelo, uma SOA promove o uso de um mecanismo de discovery por serviços via um service broker ou discovery agent. | |||
Os três papeis básicos presentes em uma plataforma para Web Services são: | |||
*'''"Service Consumer"''' | |||
O consumidor busca o serviço desejado na base de dados do Broker e utiliza o contrato para ligar a sua aplicação ao provedor. | |||
*'''"Service Provider"''' | |||
O provedor disponibiliza o serviço na Web e publica o contrato que descreve a sua interface. | |||
*'''"Service Broker"''' | |||
O Broker fornece para o cliente as direções necessárias sobre como encontrar o contrato que descreve a interface do serviço. | |||
Funcionalmente, pode-se dividir uma plataforma SOA em três componentes básicos: | |||
*'''Transporte - SOAP+XML''' | |||
O componente de transporte representa os formatos e os protocolos usados para conectar com o serviço. O formato especifica os tipos de dados transmitido e as seqüências de bits para representar os dados nas mensagens. É o protocolo de transporte que faz transferência da mensagem de um ponto a outro. | |||
*'''Descrição - WSDL''' | |||
Este componente representa a linguagem utilizada para descrever um serviço. É a descrição a responsável por juntar o serviço com a aplicação do cliente. Ela descreve o contrato de serviço que contém informações como as operações e os parâmetros que o serviço necessita para se comunicar. | |||
*'''Busca - UDDI''' | |||
O componente de busca implementa o mecanismo responsável por encontrar um serviço e sua descrição na web. esses mecanismos podem ser utilizados também em tempo de execução, tornando a aplicação mais dinâmica. | |||
[[Arquivo:plataformasoa.jpg]] | |||
[[Arquivo:plataformatecnicasoa.jpg]] | |||
= Tecnologias = | |||
<br> | |||
Hoje em dia, a maioria dos serviços integrados à Web são feitos a partir de um grupo de tecnologias incluindo: | |||
*XML - que fornece uma representação de dados independente de plataforma; | |||
*SOAP - que descreve o protocolo de comunicação e troca de dados; | |||
*WSDL - que descreve o serviço; | |||
*UDDI - que fornece uma maneira de encontrar serviços na Web. | |||
= Vantagens = | |||
<br> | |||
'''as vantagens são varias dentre elas estão:''' | |||
*XML é uma linguagem para representação de dados que é extensível e naturalmente independente de plataforma, além de ser amplamente utilizada pela indústria. Em web services, tando a descrição de um serviço quanto a comunicação entre serviços é feita usando XML. | |||
*Web services têm recebido grande apoio da indústria, particularmente por parte da IBM e da Microsoft. Recentemente, web services se tornatam parte das plataformas J2EE (Java Enterprise Edition, da Sun) e .NET (Microsoft). É possível, por exemplo, que um web service implantado num servidor de aplicações J2EE acesse outro web service implantado numa plataforma .NET. | |||
*Baseado em padrões abertos: web services são baseados em uma série de padrões abertos e amplamente difundidos, tais como XML, HTTP, SOAP, WSDL e UDDI. Isso assegura que implementações compatíveis com as especificações sejam interoperáveis. | |||
*As mensagens trocadas entre web services tipicamente usam HTTP como protocolo de transporte, o que em boa parte dos casos evita problemas com firewalls. | |||
*Os web services são identificados por uma URI (que tipicamente é uma URL), um formato muito utilizado devido à popularização da web e de fácil assimilação pelas pessoas. | |||
= Exemplos de código = | |||
<br> | |||
'''código para consulta ao banco de dados e retornar dados''' | |||
<WebMethod(Description:="Consulta | |||
banco de dados e retorna DataSet")> _ | |||
Function RetornaDataSet(ByVal strQuery As String) As DataSet | |||
Dim conn As New SqlConnection | |||
Dim cmd As New SqlCommand | |||
Dim da As New SqlDataAdapter | |||
Dim ds As New DataSet | |||
conn.ConnectionString = "Data Source=localHost; User ID=sa; | |||
Password=;Initial Catalog= Northwind;" | |||
cmd.Connection = conn | |||
cmd.CommandText = strQuery | |||
da.SelectCommand = cmd | |||
da.Fill(ds) | |||
conn.Dispose() | |||
cmd.Dispose() | |||
da.Dispose() | |||
Return ds | |||
End Function | |||
End Class | |||
= Referências bibliográficas = | |||
<br> | |||
http://www.devmedia.com.br/introducao-as-tecnologias-web-services-soa-soap-wsdl-e-uddi-parte1/2873 | |||
https://www.oficinadanet.com.br/artigo/447/o_que_e_web_service | |||
http://www.gta.ufrj.br/grad/05_1/webservices/definicao.htm | |||
http://www.ime.usp.br/~reverbel/SOD-06/trabalhos/fachada-ws/node2.html | |||
---------------------------------------------------------------------------------------------------- | |||
= Desenvolvimento Ágil = | |||
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | |||
referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese | |||
das pesquisas que fizer. | |||
<br> | |||
= Conceito = | |||
<br> | |||
O desenvolvimento de software tradicional é uma tarefa difícil, laboriosa e possui riscos. Riscos estes que envolvem orçamento, tempo para levantamento de requisitos e planejamento que não atendem ao cronograma estipulado e que tornará o projeto ainda mais caro, etc e que ao final de um período tudo pode estar perdido devido a não solução do problema do cliente. | |||
Pensando nisso, no início do ano de 2001, um grupo de consultores veteranos da área de engenharia de software se reuniu em Snowbird, Utah, EUA. Apesar de cada um ter aprendido segundo a cartilha tradicional, ter suas próprias práticas e teorias preferidas, concordaram que os riscos inerentes ao desenvolvimento de software tradicional só poderiam ser atenuados se houvesse uma forma diferente do existia até então para desenvolvimento. Apesar de seus métodos serem diferentes, houve consenso de que os projetos tinham em comum um pequeno conjunto de princípios e com base nisso criaram o Manifesto para Desenvolvimento Ágil de software. | |||
= Principais métodos = | |||
<br> | |||
Mesmo antes da reunião dos consultores da área de engenharia de software em Snowbird, Utah, EUA no início do ano de 2001, já haviam definições de desenvolvimento de software ágil que evoluíram a partir de meados dos anos de 1990 como parte de uma reação contra métodos “pesados”, caracterizados por regulamentação pesada, regimentação e micro gerenciamento usando o modelo em cascata para desenvolvimento. | |||
Inicialmente, métodos ágeis eram conhecidos como métodos “leves”. Após a reunião em Snowbird foi adotado o nome métodos ágeis, tendo publicado o Manifesto ágil, documento que reúne os princípios e práticas desta metodologia de desenvolvimento. | |||
Os métodos ágeis iniciais – criado a priore em 2000 – incluíam: | |||
**XP (Extreme Programming) (1996) | |||
**SCRUM (1986) | |||
**Feature Driven Development (FDD) | |||
**Dynamic Systems Development Method (DSDM) (1995) | |||
**Lean Development | |||
**Crystal Clear | |||
**Adaptive Software Development | |||
= Princípios do Manifesto Ágil = | |||
<br> | |||
Principais conceitos do Manifesto Ágil: | |||
**Indivíduos e interações mais que processos e ferramentas | |||
**Software em funcionamento mais que documentação abrangente | |||
**Colaboração com o cliente mais que negociação de contratos | |||
**Responder a mudanças mais que seguir um plano | |||
"mesmo havendo valor nos itens à direita, são mais valorizados mais os itens à esquerda." | |||
De acordo com estes conceitos, são 12 os princípios do Manifesto Ágil: | |||
**Garantir a satisfação do consumidor entregando rapidamente e continuamente softwares funcionais; | |||
**Softwares funcionais são entregues frequentemente (semanas, ao invés de meses); | |||
**Softwares funcionais são a principal medida de progresso do projeto; | |||
**Até mesmo mudanças tardias de escopo no projeto são bem-vindas. Processos ágeis tiram vantagem das mudanças visando vantagem competitiva para o cliente; | |||
**Pessoas de negócio e desenvolvedores devem trabalhar diariamente em conjunto por todo o projeto; | |||
**Projetos surgem através de indivíduos motivados, entre os quais existe relação de confiança. Dê a eles o ambiente e o suporte necessário e confie neles para fazer o trabalho; | |||
**Design do software deve prezar pela excelência técnica; | |||
**Simplicidade; | |||
**O método mais eficiente e eficaz de transmitir informações para e entre uma equipe de desenvolvimento é através de conversa face a face; | |||
**Os processos ágeis promovem desenvolvimento sustentável. Os patrocinadores, desenvolvedores e usuários devem ser capazes de manter um ritmo constante indefinidamente; | |||
**As melhores arquiteturas, requisitos e designs emergem de equipes auto-organizáveis; | |||
**Em intervalos regulares, a equipe reflete sobre como se tornar mais eficaz e então refina e ajusta seu comportamento de acordo. | |||
= Vantagens = | |||
<br> | |||
'''Vantagens''': | |||
**Redução do tempo de entrega da primeira versão do software pedido; | |||
**Métodos ágeis seguem processo iterativo de desenvolvimento e de sucessivas entregas ao cliente, o qual vai constatando e evolução e participando na avaliação e definição das novas funcionalidades a serem acrescentadas; | |||
**Aumento de controle por parte dos gestores, uma vez que se baseia no que realmente está sendo produzido e no que vai ser feito a curto prazo. Como tal, há menos especulação, há mais visibilidade e adequação das medições e avaliações do estado das funcionalidades e tarefas realizadas; | |||
**Por haver maior comunicação neste método, há maior aproximação entre desenvolvedores e gestores, havendo assim um ambiente propício a maior produtividade dos envolvidos. É especialmente adequado a projetos onde requisitos vão evoluindo constantemente e não se exigem muitas pessoas. A maioria dos relatórios de documentação são produzidos pelas ferramentas de trabalho, o que alivia as equipes de trabalho. | |||
'''Desvantagens''': | |||
**Uma desvantagem apontada aos Métodos Ágeis é o fato de estes não serem escaláveis. Na realidade, estes não foram desenhados para projetos muito longos existindo, contudo abordagens mais escaláveis, como o Scrum; | |||
**“O desenvolvimento ágil é mais difícil com equipes maiores . O projeto médio tem apenas nove pessoas , bem ao alcance dos processos ágeis mais básicas. No entanto, é interessante encontrar ocasionalmente projetos ágeis de sucesso com 120 ou até 250 pessoas”[1]; | |||
**Menor controle de custos. Tipicamente, nesta metodologia, o projeto termina quando o cliente não levantar mais funcionalidades relevantes que deseje ver concretizadas, em oposição a ser acordado um preço e um plano. Daqui tira-se que os custos e durações podem variar e podem ser de difícil gestão para a organização; | |||
**Documentação do projeto tipicamente mais pobre com relação aos métodos tradicionais. | |||
= Scrum = | |||
<br> | |||
Scrum é uma metodologia ágil para gestão e planejamento de projetos de software. Scrum permite criar produtos melhor adaptados à realidade do cliente de forma ágil. Além do mais, praticar Scrum nos projetos traz grandes benefícios para a equipe como comprometimento, motivação, colaboração, integração e compartilhamento de conhecimento, o que facilita em muito o gerenciamento e sucesso dos projetos. | |||
Segundo o seu autor SCHWABER (2004), o Scrum não é um processo previsível, ele não define o que fazer em toda circunstância. Ele é usado em trabalhos complexos nos quais não é possível prever tudo o que irá ocorrer e oferece um framework e um conjunto de práticas que torna tudo visível. Isso permite aos praticantes do Scrum saber exatamente o que está acontecendo ao longo do projeto e fazer os devidos ajustes para manter o projeto se movendo ao longo do tempo visando alcançar os seus objetivos. | |||
Logo, o Scrum não vai dizer exatamente o que fazer, não irá resolver todos os seus problemas, mas com certeza os problemas serão mais facilmente identificados. Por ser um framework, irá servir como um guia de boas práticas para atingir o sucesso. Entretanto, as decisões de quando e como usá-lo, quais táticas e estratégias seguir para obter produtividade e realizar as entregas ficam por conta de quem estiver aplicando. O conhecimento das suas práticas permite a aplicação das mesmas de forma variada e este é um dos aspectos positivos do Scrum, a adaptabilidade. | |||
Vale ressaltar que as práticas do Scrum podem ser aplicadas em qualquer contexto onde pessoas precisem trabalhar juntas para atingir um objetivo comum. Scrum é recomendado para projetos de outras áreas além de software e principalmente para projetos de pesquisa e inovação. | |||
No Scrum, os projetos são divididos em ciclos (tipicamente mensais) chamados de ''Sprints''. O Sprint representa um ''Time Box'' dentro do qual um conjunto de atividades deve ser executado. Metodologias ágeis de desenvolvimento de software são iterativas, ou seja, o trabalho é dividido em iterações, que são chamadas de Sprints no caso do Scrum. | |||
As funcionalidades a serem implementadas em um projeto são mantidas em uma lista que é conhecida como ''Product Backlog''[2]. No início de cada Sprint, faz-se um ''Sprint Planning Meeting''[4], ou seja, uma reunião de planejamento na qual o ''Product Owner''[3] prioriza os itens do ''Product Backlog''[2] e a equipe seleciona as atividades que ela será capaz de implementar durante o Sprint que se inicia. As tarefas alocadas em um Sprint são transferidas do ''Product Backlog''[2] para o ''Sprint Backlog''[5]. | |||
A cada dia de uma Sprint, a equipe faz uma breve reunião (normalmente de manhã), chamada ''Daily Scrum''[6]. O objetivo é disseminar conhecimento sobre o que foi feito no dia anterior, identificar impedimentos e priorizar o trabalho do dia que se inicia. | |||
Ao final de um Sprint, a equipe apresenta as funcionalidades implementadas em uma ''Sprint Review Meeting''[7]. Finalmente, faz-se uma ''Sprint Retrospective''[8] e a equipe parte para o planejamento do próximo Sprint. | |||
**[2] ''Product Backlog'': O Product Backlog é uma lista contendo todas as funcionalidades desejadas para um produto. O conteúdo desta lista é definido pelo Product Owner[3]. O Product Backlog não precisa estar completo no início de um projeto. Pode-se começar com tudo aquilo que é mais óbvio em um primeiro momento. Com o tempo, o Product Backlog cresce e muda à medida que se aprende mais sobre o produto e seus usuários | |||
**[3] ''Product Owner'': O Product Owner é a pessoa que define os itens que compõem o Product Backlog e os prioriza nas Sprint Planning Meetings. | |||
**[4] ''Sprint Planning Meeting'': O Sprint Planning Meeting é uma reunião na qual estão presentes o Product Owner, o Scrum Master e todo o Scrum Team, bem como qualquer pessoa interessada que esteja representando a gerência ou o cliente. | |||
**[5] ''Sprint Backlog'': - O Sprint Backlog é uma lista de tarefas que o Scrum Team se compromete a fazer em um Sprint. Os itens do Sprint Backlog são extraídos do Product Backlog, pela equipe, com base nas prioridades definidas pelo Product Owner e a percepção da equipe sobre o tempo que será necessário para completar as várias funcionalidades. | |||
**[6] ''Daily Scrum'': - A cada dia do Sprint a equipe faz uma reunião diária, chamada Daily Scrum. Ela tem como objetivo disseminar conhecimento sobre o que foi feito no dia anterior, identificar impedimentos e priorizar o trabalho a ser realizado no dia que se inicia. | |||
**[7] ''Sprint Review Meeting'': - Ao final de cada Sprint é feito um Sprint Review Meeting. Durante esta reunião, o Scrum Team mostra o que foi alcançado durante o Sprint. Tipicamente, isso tem o formato de um demo das novas funcionalidades. | |||
**[8] ''Sprint Retrospective'': - O Sprint Retrospective ocorre ao final de um Sprint e serve para identificar o que funcionou bem, o que pode ser melhorado e que ações serão tomadas para melhorar. | |||
= XP eXtreme Programming = | |||
<br> | |||
'''Extreme Programming (XP)''' | |||
Criada na década de 90, nos Estados Unidos, é uma Metodologia Ágil de desenvolvimento de software para equipes pequenas e médias que utilizam requisitos básicos e vagos e que se modificam com rapidez. É uma metodologia que tem feito sucesso em vários países por ajudar no desenvolvimento de sistemas com maior qualidade, produzidos em tempos menores e de forma mais econômica que o habitual. | |||
Como o principal objetivo da XP é dar agilidade ao desenvolvimento de projetos e buscar a garantia de satisfação do cliente, as práticas, regras, e os valores da XP garantem um agradável ambiente de desenvolvimento de software para os seus seguidores, que são conduzidos por quatro princípios básicos: | |||
**'''Princípio da Comunicação''' - busca manter o melhor relacionamento possível entre clientes e desenvolvedores, preferindo conversas pessoais a outros meios de comunicação. | |||
**'''Princípio da Simplicidade''' - entende-se como simplicidade, a busca do objetivo de implementar o software com o menor número possível de classes e métodos. Outra ideia importante deste princípio é procurar implementar apenas requisitos atuais, evitando assim adicionar funcionalidades que podem ser importantes apenas no futuro. A aposta da XP é que é melhor fazer algo simples hoje do que implementar algo complicado hoje que talvez não venha a ser usado. | |||
**'''Princípio do Feedback''' - A prática do feedback constante significa que o desenvolvedor terá informações constantes do código e do cliente. A informação do código é dada pelos testes constantes, que indicam os erros tanto individuais quanto do software integrado. | |||
**'''Princípio da Coragem''' - Sabe-se que não são todas as pessoas que possuem facilidade de comunicação e têm bom relacionamento interpessoal, este princípio também dá suporte à simplicidade, pois assim que a oportunidade de simplificar o software é percebida, a equipe pode experimentar e buscar novas soluções, além disso, é preciso coragem para obter e cobrar constantemente um feedback do cliente. | |||
'''Principais práticas da Extreme Programming (XP)''' | |||
**'''Planejamento''' - Define o que é ou não necessário ser feito no projeto. A XP baseia-se em requisitos atuais para desenvolvimento de software, não em requisitos futuros. | |||
**'''Entregas Frequentes''' - Baseiam-se no desenvolvimento de um software simples, e conforme os requisitos aparecem, há a atualização da versão do software. Cada versão entregue deve ter o menor tamanho possível, contendo os requisitos de maior valor para o negócio. É recomendado que as versões devem ser entregues a cada mês, ou no máximo a cada dois meses, aumentando a possibilidade de feedback rápido do cliente. | |||
**'''Metáfora''' - São as descrições de um software sem a utilização de termos técnicos com o objetivo de guiar o desenvolvimento do software com a maior transparência possível para o cliente. | |||
**'''Projeto simples''' - O software desenvolvido de acordo com a metodologia XP deve ser o mais simples possível e satisfazer os requisitos atuais, sem a preocupação de requisitos futuros. Eventuais requisitos futuros devem ser adicionados assim que eles realmente existirem. | |||
**'''Testes''' - A Extreme Programming (XP) prioriza a validação do projeto durante todo o processo de desenvolvimento. Os desenvolvedores implementam o software criando primeiramente os testes. | |||
**'''Programação em pares''' - A implementação do código é feita em dupla, ou seja, dois desenvolvedores trabalham em um único computador. Procurando identificar erros sintáticos e semânticos, pensando estrategicamente em como melhorar o código que está sendo implementado. Esses papéis podem e devem ser alterados sempre que possível. | |||
**'''Refatoração''' - Focaliza a lapidação do projeto do software e está presente em todas as etapas do desenvolvimento. A refatoração deve ser feita sempre que possível, buscando principalmente simplificar o código atual sem perder nenhuma funcionalidade. | |||
**'''Propriedade coletiva''' - O código do projeto pertence a todos os membros da equipe. Isto significa que qualquer pessoa que percebe que pode adicionar valor a um código, mesmo que ele próprio não o tenha desenvolvido, pode fazê-lo, desde que faça os testes necessários e não prejudique as funcionalidades atuais. Isto é possível porque na XP todos são responsáveis pelo software. Uma grande vantagem desta prática é que, caso um membro da equipe deixe o projeto antes do fim, a equipe consegue continuar o projeto sem grandes dificuldades, pois todos conhecem todas as partes do software, mesmo que não seja de forma detalhada. | |||
**'''Integração contínua''' - É a prática de interagir e construir o sistema de software várias vezes por dia, mantendo os programadores em sintonia, além de possibilitar processos rápidos. Integrar apenas um conjunto de modificações de cada vez é uma prática que funciona bem porque fica óbvio quem deve fazer as correções quando os testes falham. Esta prática é facilitada com o uso de apenas uma máquina de integração, que deve ter livre acesso a todos os membros da equipe. | |||
**'''40 horas de trabalho semanal''' - a XP assume que não se deve fazer horas extras constantemente. Caso seja necessário trabalhar mais de 40 horas pela segunda semana consecutiva, existe um problema sério no projeto que deve ser resolvido não com aumento de horas trabalhadas, mas com melhor planejamento. | |||
**'''Cliente presente''' - É fundamental a participação do cliente durante todo o desenvolvimento do projeto. O cliente deve estar sempre disponível para sanar todas as dúvidas de requisitos, evitando atrasos e até mesmo construções erradas. Uma idéia interessante é manter o cliente como parte integrante da equipe de desenvolvimento (Tester). | |||
**'''Código padrão''' - Baseia-se na padronização da arquitetura do código, para que este possa ser compartilhado entre todos os programadores e até mesmo entre outros softwares. | |||
= Referências bibliográficas = | |||
<br> | |||
**http://www.desenvolvimentoagil.com.br/ | |||
**https://pt.wikipedia.org/wiki/Desenvolvimento_%C3%A1gil_de_software | |||
**http://agilemanifesto.org/iso/ptbr/ | |||
**https://fernandofranzini.wordpress.com/2014/06/05/desenvolvimento-agil-de-software/ | |||
**http://www.teses.usp.br/teses/disponiveis/45/45134/tde-06072008-203515/en.php | |||
**http://www.devmedia.com.br/introducao-ao-desenvolvimento-agil/5916 | |||
**http://www.dcc.ufla.br/infocomp/index.php/INFOCOMP/article/view/68/53 | |||
**http://www.devmedia.com.br/conceitos-basicos-sobre-metodologias-ageis-para-desenvolvimento-de-software-metodologias-classicas-x-extreme-programming/10596 | |||
**http://www.siq.com.br/DOCS/EntendendoScrumparaGerenciarProjetosdeFormaAgil.pdf | |||
**[1] Cockburn, A. e Highsmith, “Agile Software Development: The People Factor”, IEEE Computer, v.34, n.11, nov. 2001, p. 131-33 | |||
---------------------------------------------------------------------------------------------------- | |||
= SGBDs = | |||
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | |||
referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese | |||
das pesquisas que fizer. | |||
<br> | |||
= Conceito = | |||
<br> | |||
Um Sistema de Gerenciamento de Banco de Dados (SGBD) – do inglês Data Base Management System (DBMS) – é o conjunto de programas de computador (softwares) responsáveis pelo gerenciamento de uma base de dados. Seu principal objetivo é retirar da aplicação cliente a responsabilidade de gerenciar o acesso, a manipulação e a organização dos dados. O SGBD disponibiliza uma interface para que seus clientes possam incluir, alterar ou consultar dados previamente armazenados. Em bancos de dados relacionais a interface é constituída pelas APIs (Application Programming Interface) ou drivers do SGBD, que executam comandos na linguagem SQL (Structured Query Language).” | |||
= Funcionalidades = | |||
<br> | |||
Tem como funções básicas: | |||
– Métodos de acesso : | |||
– '''Integridade Semântica''' :garantia de dados sempre corretos com relação ao domínio de aplicação | |||
– '''Segurança''' : -evitar violação de consistência dos dados | |||
-segurança de acesso (usuários e aplicações) | |||
-matrizes de autorização | |||
-visões | |||
-segurança contra falhas (recovery) | |||
– '''Concorrência''': evitar conflitos de acesso simultâneo a dados por transações (scheduler) | |||
– '''principais técnicas''' : bloqueio (lock) e timestamp | |||
– '''Independência''' : transparência da organização dos dados. | |||
'''• Independência física''' | |||
– transparência de organização (esquema) física dos dados | |||
– exemplos: organização dos arquivos, indexação, distribuição, agrupamento | |||
'''• Independência lógica''' | |||
– transparência do esquema lógico do BD | |||
– exemplo: visões (vários esquemas externos) | |||
= Benefícios = | |||
<br> | |||
'''Maior disponibilidade''': Uma das principais vantagens de um SGBD é que a mesma informação pode ser disponibilizada a utilizadores diferentes, ou seja, compartilhamento de dados. | |||
'''Redundância minimizada''': Os dados de um SGBD são mais concisos, porque, como regra geral, a informação nela aparece apenas uma vez. Isto reduz a redundância de dados, ou em outras palavras, a necessidade de repetir os mesmos dados uma e outra vez. Minimizando a redundância pode, portanto, reduzir significativamente o custo de armazenamento de informações em discos rígidos e outros dispositivos de armazenamento | |||
'''Precisão''': dados precisos, consistentes são um sinal de integridade dos dados. | |||
'''Programa e arquivo de consistência''': Usando um sistema de gerenciamento de banco de dados, formatos de tabelas e programas do sistema são padronizados. | |||
'''User-friendly''': Os dados são é mais fáceis de acessar e manipular com um SGBD do que sem ele. | |||
'''Maior segurança''': Como afirmado anteriormente, SGBDs permitem que múltiplos usuários acessem os recursos dos mesmos dados. Esta capacidade é geralmente vista como um benefício, mas há riscos potenciais para a organização | |||
= Serviços = | |||
<br> | |||
São softwares que permitem a definição de estruturas para armazenamento de informações e fornecimento de mecanismos para manipula-las. | |||
= Softwares disponíveis = | |||
<br> | |||
MySQL , PGadminIII, Oracle, | |||
= Estado da arte = | |||
<br> | |||
= Referências bibliográficas = | |||
<br> | |||
http://www.dicasdeprogramacao.com.br/ | |||
http://www.inf.ufsc.br/ | |||
https://pt.wikipedia.org/wiki/Sistema_de_gerenciamento_de_banco_de_dados | |||
---------------------------------------------------------------------------------------------------- | |||
= Browsers = | |||
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | |||
referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese | |||
das pesquisas que fizer. | |||
<br> | |||
= Conceito = | |||
<br> | |||
= Funcionamento = | |||
<br> | |||
= Protocolos = | |||
<br> | |||
= Exemplos do estilo CSS = | |||
<br> | |||
= Exemplos de código XML = | |||
<br> | |||
= Exemplos de browsers= | |||
<br> | |||
= Referências bibliográficas = | |||
<br> | |||
---------------------------------------------------------------------------------------------------- | |||
= Interface Lógica = | |||
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as | |||
referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese | |||
das pesquisas que fizer. | |||
<br> | |||
= Conceito = | |||
<br> | |||
Interface: significado: possibilita uma ligação física ou lógica entre dois sistemas. Interface lógica é basicamente a comunicação entre dois sistemas, na qual ocorre de forma lógica (abstrata). Este tipo de interface está presente na maioria dos dispositivos tecnológicos que encontramos no mercado atualmente. | |||
== | = GUIs = | ||
<br> | |||
GUI : ( Graphical User Interfac).Mais conhecida como a interface do usuário.É ela que é a interface que permite que o usuário manipule e se interage tecnologicamente com algum dispositivo. Essa interação é feita por meio de elementos gráficos(visuais). | |||
Obs: A GUI foi criada pela Xerox mas somente se tornou um produto com a Apple. | |||
== | =imagem= | ||
exemplo de interface gráfica: | |||
[[Arquivo:xxxxxx1.jpg]] | |||
API : | |||
[[Arquivo:xx1.jpg]] | |||
Protocolo de internet(API): | |||
[[Arquivo:2x1.jpg]] | |||
= Portas = | |||
<br> | |||
Porta: por onde é feita a comunicação, ou seja, onde os dados são transferidos entre o dispositivo de entrada(input), o processador e o dispositivo de saída(output).Uma porta serve como um canal de um dispositivo que dá suporte a uma conexão ponto a ponto. | |||
as PORTAS são usadas para armazenar de forma temporária os dados o processo de transferência entre o dispositivo e outro dispositivo. Quando um byte vai ser transferido do micro para a impressora, seu valor é escrito em uma destas posições e só então o comando de transferência é emitido. Quando a impressora está pronta para receber o dado, ele é lido daquela posição de memória e transferido através do cabo. | |||
Uma "porta" é constituída por um trecho de memória composto por uma ou mais posições de armazenamento temporário e identificada pelo seu endereço de base, ou do byte de endereço mais baixo. Foram padronizados três endereços de base para serem usados como portas paralelas: | |||
*03BC | |||
*0378 | |||
*0278. | |||
Os nomes das portas são: LPT1, LPT2 e LPT3 (LPT deriva de Line PrinTer, ou impressora de linhas). | |||
= API e Webservices = | |||
<br> | |||
API: ( Application Programming Interface) , funcionalidade que permite a comunicação entre dois sistemas.É atravéz no API que é formado um código que consequentemente gera um protocolo, no qual irá estabelecer a comunicação entre os sistemas. | |||
Web service: é utilizada para a integração de sistemas e na comunicação entre diferentes aplicações, é esta tecnologia que permite que certas aplicações se interagem.São responsáveis que permitem às aplicações enviar e receber dados em formato XML. Cada aplicação pode ter a sua própria "linguagem", que é traduzida para uma linguagem universa(formato) | |||
*XML | |||
*Json | |||
*CSV | |||
O objetivo do web service não é apenas de realizar a comunicação entre sistemas(aplicações) via internet, mas também de facilitar essas comunicações e tornar as mesmas mais eficientes. | |||
= Sockets = | |||
<br> | |||
Soquete de rede: Ponto de um fluxo de comunicação entre processos através de uma rede de computadores. | |||
Uma API de soquetes é uma interface de programação de aplicativos , normalmente fornecida pelo sistema operacional, que permite que os programas de aplicação controlem e usem soquetes de rede. | |||
Um endereço de soquete (socket address) é a combinação de um endereço de IP e um número da porta, muito parecido com o final de uma conexão telefônica que é a combinação de um número de telefone e uma determinada extensão. Com base nesse endereço, soquetes de internet entregam pacotes de dados de entrada para o processo ou thread de aplicação apropriado. | |||
Um soquete de rede em um computador é definido como a união entre um endereço de IP e o número de uma porta do protocolo de transporte acessado por um programa que utiliza este protocolo. | |||
= Exemplos= | |||
<br> | |||
1)sistemas de vendas de produtos e o sistema de Correios. | |||
2)sistemas que exigem que o usuário se autentifique por meio do Facebook. (Ou seja, é uma comunicação entre o sistema e o facebook). | |||
3)facebook e o outlook (para o usuário entrar no Facebook é necessário que ele informe o e mail para que o Facebook possa comunicar com o outlook para ver se o usuário é cadastrado (Ou seja, se tem e mail). | |||
4)sistema de vendas: no qual se comunica com o seres a para conferir e autenticar o CPf do usuário. | |||
5)youtube e facebook: pois para o usuário compartilhar,curtir ou descurtir algum vídeo é necessário que o usuário se autentifique por meio do login no Facebook.Ou seja, o youtube se comunica com o Facebook. | |||
== | = Referências bibliográficas = | ||
<br> | |||
*Wikipedia | |||
*clube do hardware | |||
*youtube (vídeos referente ao assunto)* | |||
*wikilivros | |||
*technet | |||
*http://www.ime.uerj.br/~alexszt/cursos/pc2/13-java-sockets.pdf | |||
---------------------------------------------------------------------------------------------------- | |||
Edição atual tal como às 15h45min de 1 de setembro de 2016
Cliente Servidor
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese das pesquisas que fizer.
Conceito
Um sistema de banco de dados, na sua maioria, pode ser considerado como sendo uma estrutura dividida em duas partes, consistindo em um servidor e um conjundo de clientes. A arquitetura cliente/ servidor é atualmente a principal paltaforma tecnológica da industria da tecnologia da informação. A sua popularização se deve aos vários fatores oriundos do processo de achatamento das estruturas organizacionais, fazendo com que muitos dos sistemas fossem descentralizados.
Segundo Renaud (1994,p3) "cliente/servidor é um conceito lógico, mais precisamente um paradigma, ou modelo para interação entre processos de software em execução concorrente". Ou seja este conceito foi criado com o objetivo de possibilitar que vários tipos de aplicações, executadas em máquinas distintas, se comuniquem entre si, de forma independente.
Estrutura em Camadas
MVC
O padrão arquitetural Model-View-Controller (MVC) é uma forma de quebrar uma aplicação, ou até mesmo um pedaço da interface de uma aplicação, em três partes: o modelo, a visão e o controlador. Inicialmente foi desenvolvido no intuito de mapear o método tradicional de entrada, processamento, e saída que os diversos progamas baseados em interface gráfica de usuário utilizavam. No padrão teriamos o mapeamento de cada uma dessas partes da seguinte maneira: Input > Processing > Output > Controller > Model > View.
Sendo assim o controlador (Controller) interpreta as entradas enviadas pelo usuário e mapeia essas ações do usuário em comandos que são enviados para o modelo (Model) e/ou para a janela de visualização (View) para efetuar a alteração apropriada. Já o modelo (Model) gerencia um ou mais elementos de dados, responde a pergundas sobre o seu estado e responde as instruções para mudar de estado. O modelo sabe o que o aplicativo quer fazer e é a principal estrutura computacional da arquitetura, pois é ele quem modela o problema que está se tentando resolver. Finalizando, a visão (View) gerencia a área do display e é responsavél por apresentar as informações para o usuário através de uma combinação de gráficos e textos. A visão não sabe nada sobre o que a aplicação está atualmente fazendo, tudo que ela realmente faz é receber instruções do controle e informações do modelo e então exibir elas.
Funções do Servidor
O sistema servidor é responsavel por receber dos clientes as requisições, processa-las e devolve-las ao mesmo os resultados. A grande vantagem desse sistema é a capacidade de ser totalmente reativo, isso faz com que o servidor não procure interagir com outros servidores durante um pedido de requisição, o que torna o processo de ativação uma tarefa a ser desempenhada apenas pelo cliente que o solicitou. O sistema servidor possui um conjunto de funcionalidades necessárias ao processamento de informação através da rede. estes componentes são divididos em:
- Hardware de servidor;
- Sistema operacional de rede;
- Interface de conectividade;
- Sistema gerenciador de banco de dados;
Funções do cliente
O sistema cliente é responsável pela tarefa de requisição de pedidos ao servidor e por toda a parte relativa à interação com o usuário final. Normalmente os sistemas cliente abstraem do usuário todas as funções de rede e do servidor, fazendo parecer que todos os processos estão rodadando em um mesmo local. Para fazer esta interação, o sistema abrange um conjunto de componentes básicos que auxiliam nas funcionalidades, tanto a nível de aplicação como de sistema. Estes componentes de acordo com Melo (1997) são agrupados em:
- Hardware de estação;
- Sistema operacional;
- Interface de conectividade;
- Programas de aplicação;
- Interface gráfica de usuário;
Protocolos
Referências bibliográficas
DOERNER, John Cristian. Protótipo De Um Banco De Dados Relacional Cliente/ Servidor. 88 f. Trabalho de conclusão de curso - Ciências da Computação, Universidade Regional de Blumenau SC, 2004. Disponivel em : <http://www.inf.furb.br/departamento/arquivos/tccs/monografias/2004-1johncdoernervf.pdf>. Acessado em: 13/05/2016.
MEDEIROS, Higor.Introdução ao Padrão MVC. Disponivel em :<http://www.devmedia.com.br/articles/viewcomp.asp?comp=29308>. Acessado em:13/05/2016.
MELO, Rubens N.; SILVA.Banco de dados não convencionais: a tecnologia do BD e suas novas áreas de aplicação. Campinas: Infobook, 1988.
RENAUD, Paul E. Introdução aos Sistemas Cliente / Servidor: Guia Prático para Profissionais de Sistemas. Rio de Janeiro: Infobook, 1994.
====================================================================================================================================================
= Firmware
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese das pesquisas que fizer.
Conceito
Firmware é o conjunto de instruções operacionais programadas diretamente no hardware de um equipamento eletrônico. Utiliza os tipos de memória ROM, PROM, EPROM ou EEPROM e memória flash para guardar suas funcionalidades permanentemente. Em outras palavras, o firmware é um software que é armazenado dentro de aparelhos como routers, celulares e iPods, para assim melhorar o funcionamento do equipamento eletrônico.
Assembler
Memórias
Memória são onde guardamos todos os tipos de dados, em alguns tipos de memórias os dados são permanentes e em outros eles são perdidos para sempre.
Existem as memórias voláteis e não voláteis: As memórias voláteis são aquelas que tudo que é armazenado se perde quando a memória para de ser alimentada por energia elétrica, porém tudo o que é guardado nessa memória não são informações tão importantes, já as memórias não-voláteis são aquelas que mesmo sem receber alimentação mantém os dados armazenados, neste caso as informações armazenadas são de extrema relevância, pois aqui estão os softwares, documentos pessoais, fotos, etc.
Exemplos de memórias voláteis:
RAM - Randomic Acess Memory (memória de acesso aleatório), que significa que os dados nela armazenados podem ser acessados a partir de qualquer endereço. Esse tipo de memória armazena os dados no momento de execução.
Exemplos de memórias não-voláteis:
ROM - Read Only Memory (memória somente de leitura)
PROM - Programable Read Only Memory (memória programável somente de leitura)
EPROM - Erasable Programable Read Only Memory(memória programável e apagável somente de leitura)
EEPROM - Electrically Erasable Programable Read Only Memory (memória programável e apagável eletronicamente somente de leitura)
Atualização de firmware
Muitos dispositivos não recebem atualização de firmware durante sua vida, porém aos que recebem a atualização de firmware é muito importante pois trás vários benefícios ao equipamento eletrônico.
A atualização de firmware pode corrigir erros, adicionar funcionalidades, melhorar tempos de resposta e intensidade de sinais, entre vários outros.
Mas tudo tem um porém, atualizar o firmware é muito fácil e qualquer usuário conseguiria, mas é realmente necessário verificar se o firmware a ser instalado é realmente o certo para aquele aparelho, pois caso esteja instando um firmware errado isso pode acarretar em problemas para o dispositivo.
Aplicações
Os firmwares estão presentes em vários dispositivos que usamos em nosso cotidiano e podem ser eles:
-Câmeras Digitais;
-Consoles;
-Controle Remoto;
-Pen-Drives;
-Celulares;
-Cartões de Memória;
-Leitores/gravadores de CDs/DvDs;
-iPods;
-Roteadores;
-Períféricos como Mouse e Teclado;
Entre vários outros.
Exemplos
Referências bibliográficas
====================================================================================================================================================
Interfaces Físicas
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese das pesquisas que fizer.
Conceito
A interface é um dos elementos responsáveis pelo processo de interação, pode ser dividida em dois aspectos de comunicação. Uma delas é a interface física (ou de hardware), meio de contato predominantemente físico, empregando a conexão entre um sistema e um hardware.
Exemplo de Funcionamento
MODEM
É um dispositivo interno ou externo ao computador capaz de transformar, no lado do emissor dos dados.
O sinal digital que sai do computador para uma forma analógica sofre um processo chamado de modulação para que ele possa ser transmitido nas linhas telefônicas.
No lado receptor dos dados, o modem demodula o sinal, reconvertendo o sinal que veio da linha telefônica para a forma digital que é inteligível para o computador, assim os torna "legíveis" para o computador possa processá-los.
Tipos
As interfaces podem ser transferidas por dois tipos:
- Meios guiados
OBS.: Esse tipo de meio que estão disponíveis nesta pesquisa na parte das Interfaces de Rede
- Meios não-guiados
Microondas: Acima de 100 MHz as ondas de radiofreqüência praticamente caminham em linha reta e podem ser concentradas em um feixe estreito. Exigem alinhamento perfeito entre a antena de emissão e a de recepção, sem obstáculos pelo caminho para garantir uma melhor transmissão das informações.
Ondas de Infravermelho: Utilizadas na comunicação de curto alcance. São bem direcionais, baratas e fáceis de montar, mas não atravessam objetos sólidos. Seu uso fica bem restrito a aparelhos domésticos que fiquem dentro de um mesmo espaço físico.
Ondas de luz: A sinalização óptica sem guia vem sendo utilizada há séculos. Uma aplicação mais moderna consiste em conectar LAN's em dois prédios por meio de lasers instalados em seus telhados. A sinalização óptica utiliza raios laser unidirecional, assim, cada prédio precisa do seu próprio raio laser e do seu próprio fotodetector. Esse esquema oferece uma largura de banda muito alta a um custo bastante baixo. Ele também é relativamente fácil de ser instalado. Entretanto uma grande desvantagens dos feixes de raios laser é o fato de que eles não podem atravessar chuva ou neblina espessa, mas normalmente funcionam bem em dias ensolarados.
Satélite: Satélites amplificadores e repetidores de comunicações colocados em órbita ao redor da Terra têm um importante papel nas transmissões sem fio. Existem atualmente três grandes tipos de satélites de comunicação:
Os que ficam em órbitas geoestacionárias na altitude de 35.800 km recebem os dados que e os retransmite de volta para grandes antenas na Terra que se encarregam da distribuição para suas redes.
Os satélites de órbita média, de mais ou menos 15.000 km de altitude precisam ser acompanhados em suas órbitas. Um exemplo dele é o GPS (Global Positioning System).
Satélites de órbita baixa – Girando a aproximadamente 1.000 km de altitude, com movimento muito rápido, há necessidade de uma quantidade grande de satélites para se ter um sistema de comunicação completo.
Exemplos com imagens
Alguns exemplos de interfaces físicas:
CABO DE REDE PAR TRANÇADO

Protocolos
Alguns protocolos que fazem parte da Camada Física:
IrDA (Infrared Data Association): protocolos responsáveis pela transferência de dados de infravermelho é implementada de acordo com esses protocolos e padrões.
USB: Universal Serial Bus é um tipo de dispositivo de conexão que foi projetado por companhias do ramo de telecomunicações e de computadores pessoais. Estas companhias são: Compaq, Hewlett-Packard, Intel, Lucent, Microsoft, NEC, Philips. O USB , basicamente, tem como objetivo conectar periféricos externos ao computador trazendo diversas vantagens como a versatilidade, a facilidade no uso e a alta velocidade.
DSL: Transmissão de dados através da rede de telefonia, podendo haver troca de pacote de dados e de voz. Fazem parte da família do DSL os protocolos: ADSL, HDSL, ISDL – ISDN, VDSL, SDSL, RADSL. (Cada protocolo possui uma especificação diferente)
OTN (Optical Transport Network): é um protocolo de nova geração padrão do setor que oferece um caminho eficiente e aceito globalmente para fazer multiplex de serviços em caminhos de luz ópticos. O recurso de multiplex avançado do OTN permite que diferentes tipos de tráfego—incluindo Ethernet, armazenamento, vídeo digital e SONET/SDH
GSM: A rede GSM é formada por interfaces abertas e padronizadas, seguindo sua principal intenção, montar uma arquitetura mais abrangente possível. Ela é estruturada para que seja possível a integração entre componentes de diferentes fabricantes, o que aquece a concorrência e diminui o preço para o usuário.
Interface de rede
Par trançado: Em sua forma mais simples, o cabo de par trançado é constituído por dois filamentos isolados de cobre torcidos. Há dois tipos de cabos de par trançado: par trançado não-blindado (UTP, Unshielded Twisted-Pair) e par trançado blindado (STP, Shielded Twisted-Pair). O nome "par trançado" é muito conveniente, pois estes cabos são constituídos justamente por 4 pares de cabos entrelaçados.
Coaxial: O cabo coaxial é um tipo de cabeamento de rede que foi amplamente utilizado, pois era relativamente barato, leve, flexível e fácil de manipular. A utilização era tão comum que sua instalação tornou-se segura e fácil de ser suportada.
Fibra óptica: As fibras ópticas transportam sinais de dados na forma de pulsos modulados de luz. Esse é um meio relativamente seguro de enviar dados porque nenhum impulso elétrico é transportado no cabo de fibra óptica. Isso significa que não é possível interceptar o cabo de fibra óptica e subtrair seus dados, o que pode acontecer com qualquer cabo baseado em cobre que transporta dados na forma de sinais eletrônicos.</p
Modem: Um dispositivo interno ou externo ao computador capaz de transformar o sinal digital que sai do computador para uma forma analógica para que este sinal possa ser transmitido por linhas telefônicas padrão. E o processo chamado de modulação. Quando ele recebe faz uma operação de demodula do sinal, reconvertendo o sinal transmitido da linha telefônica para a forma digital que é inteligível para o computador.
Hub: Com o HUB podemos ligar várias linhas de entrada e os dados que chegam a qualquer destas entradas são enviados a todas as outras, ou seja, ele retransmite o que chega para todos os nós da rede, não analisando endereços (IP), assim, aumentando o risco de ocorrer colisão de dados que chegarem ao mesmo tempo.
Repetidor: Esse dispositivo analógico tem como finalidade conectar dois segmentos de um cabo. Um sinal que aparece em um deles é amplificado e colocado no outro. Há, portanto uma regeneração de sinais. Um exemplo clássico de sua utilização é em redes Ethernet onde o limite entre nós de 100 metros pode-se ampliar até 1000 m com a colocação de um máximo de 4 repetidores no caminho.
Referências bibliográficas
http://www.n09.scalfoni.com.br/v1/download_3/FR/Trabalho_Camada_F%EDsica_de_Redes.doc
http://ceappedreirasrt.blogspot.com.br/2012/05/protocolos-camada-fisica.html
====================================================================================================================================================
Virtualização
Técnicas
Existem várias técnicas de virtualização, as quais fornecem aspectos similares, porém, diferem no grau de abstração e nos médodos usados para a virtualização.
Virtual Machines ( VMs )
As Máquinas Virtuais emulam algum hardware real ou fictício, o qual , por sua vez, requer recursos reais da máquina hospedeira.
Esta abordagem, usadas por muitos dos emuladores , permite que o emulador seja executado em um sistema operacional "guest" arbitrário , sem modificações, pelo fato dele não saber que não está sendo executado em hardware real.
A questão principal dessa abordagem é que, algumas instruções da CPU necessitam de privilégios adicionais e não podem ser executadas no espaço do usuário, exigindo portanto, um Monitor de Máquinas Virtuais ( VMM ) para analisar o código sendo executado e torná-lo seguro, dinamicamente.
A abordagem de emulação de hardware é usada pelo VMware, QEMU Parallels e Microsoft Virtual Server.
Paravirtualização
Esta técnica também requer um Monitor de Máquinas Virtuais ( VMM ), porém, muito do seu trabalho é executado no sistema operacional convidado (guest), que por sua vez , é modificado para suportar este VMM, e evita o uso desnecessário de instruções privilegiadas.
A técnica de paravirtualização também permite a execução de diferentes sistemas operacionais (OSs) em um único servidor, mas é necessário que eles sejam portados, ou seja, esses OSs sabem que estão rodando debaixo de um supervisor.
A técnica de paravirtualização é usada por produtos tais como o Xen e o UML.
Virtualização ao nível do SO
Virtualização de Containers
Muitas aplicações rodando em um servidor podem facilmente compartilhar a máquina com outros processos, se puderem ser isoladas e terem a segurança adequada.
Além disso, em muitos casos sistemas operacionais diferentes não são necessários no mesmo servidor, apenas múltiplas instâncias de um único sistema operacional.
Os sistemas de virtualização ao nível do sistema operacional foram projetados para prover o isolamento e a segurança necessários para rodar múltiplas aplicações ou cópias do mesmo sistema operacional ( porém, diferentes distribuições do OS ) no mesmo servidor.
OpenVZ, Virtuozzo, Linux-Vserver, Solaris Zones e FreeBSD Jais são exemplos desse tipo de virtualização.
Breve comparação
As três técnicas diferem:
- na complexidade de implementação
- no suporte a diferentes sistemas operacionais
- na performance em relação a um servidor stand-alone no nível de acesso aos recursos compartilhados.
Por exemplo, VMs tem uma abrangência maior de sistemas operacionais, porém sua performance é pior.
Para-VMs tem uma performance melhor , mas suportam poucos SOs um vez que eles precisam sofrer alterações para rodar nesse modo de virtualização.
A virtualização ao nível do SO provê a melhor performance e escalabilidade em comparação com as outras abordagens.
Aplicação pŕatica
- OpenVZ
Solução implementada que permite criar, manipular e gerenciar VMs (Máquinas Virtuais) mostrando que o esforço interno para disponibilização de ambientes para desenvolvimento e produção podem ser otimizados.
Com essa ferramenta, todo o processo interno de criar máquinas para desenvolvimento de aplicações, testes de carga, homologações de novas soluções e outras demandas poderiam ser facilitadas pelo gerenciamento do OpenVZ.
O cliente deste serviço teria flexibilidade e agilidade na criação de máquinas virtuais para vários propósitos , com uma interface amigável e funcionalidades que satisfazem as principais atividades de um configurador de ambientes com autonomia para administrar as máquinas através de um interface web.
- Hélvio Pereira de Freitas
====================================================================================================================================================
Mineração de Dados
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese das pesquisas que fizer.
Conceito
O data mining ou mineração de dados é um processo de análise, que tem como função principal a varredura de grandes quantidades de dados na busca de padrões e na detecção de relação entre informações, gerando,à partir dos dados captados, novos sub-grupos de dados,havendo sempre a cooperação e interação entre humanos e computadores para que o processo ocorra.
Os dados explorados são normalmente ligados a pesquisas científicas, negócios e mercado. Outra definição que ajuda a entender este conceito de data mining é a que aparace no artigo “Knowledge Discovery in Databases: An Overview” (W. Frawley, G. Piatetsky-Shapiro e C. Matheus; Al Magazine,1992) : “…É a extração não trivial de informação implícita, previamente desconhecida e potencialmente útil a partir de dados”. Já numa linguagem mais simples,é possível classificá-lo como um agregador e organizador de dados.
Data Mining x BigData
Big Data é um termo que se refere a um grande conjunto de dados não estruturados que todo o planeta está produzindo atualmente. De acordo com o Gartner Group, são produzidos diariamente 15 petabytes de dados estruturados e não estruturados (1 petabyte = 1.000.0000 gigabytes).
O Data Mining chega nessa era de dados digitais e de Big Data para fazer a mineração, a varredura desses dados para melhor entendê-los e, consequentemente, para melhor usá-los nos negócios e aréas de pesquisas. O diretor de Business Intelligence, Jorge Mendes, da MJV Tecnologia & Inovação ajuda a entender a relação entre Big Data e Data Mining: “Se Big Data é o conceito da explosão de dados, Data Mining é a forma como se trata esses dados, criando processos e parâmetros para melhor interpretá-los”.
Técnicas
A mineração de dados faz parte de um processo maior de pesquisa denominado Busca de Conhecimento em Banco de Dados (Knowledge discovery in Database - KDD),mas se tornou mais conhecido que o próprio KDD por ser a etapa onde são aplicadas as técnicas de busca de conhecimento.
Os métodos (técnicas) de mineração de dados são tradicionalmente agrupados em aprendizado supervisionado (preditivo) e não-supervisionado (descritivo).A diferença entre os dois se encontra no fato de que os métodos não-supervisionados não precisam de uma pré-categorização para os registros, ou seja, não precisam de um atributo alvo. As tarefas de agrupamento (identifica e aproxima os registros similares) e associação (identifica quais atributos estão relacionados) são consideradas como não-supervisionadas. Já no aprendizado supervisionado ,os métodos são providos com um conjunto de dados que possuem uma variável alvo pré-estabelecida. As tarefas que são comumente usadas nos métodos supervisionados são as de classificação (identifica a qual classe um registro pertence) e regressão (parecido com classificação, porém é usada quando o registro é identificado por um valor numérico e não um categórico).
De acordo com o livro “Data Mining: Concepts and Techniques” (HAN, J; KAMBER, M. . Elsevier, 2006), os métodos são classificados de acordo com as tarefas que realizam. A seguir estão presentes as técnicas e seu principal modelo:
- ASSOCIAÇÔES: É uma das técnicas mais conhecidas de mineração de dados, identifica o relacionamento dos itens mais frequentes em um determinado conjunto de dados, e permite obter,por exemplo, resultados do tipo: SE compra leite e pão TAMBÉM compra manteiga.
- Mineração de Itens Frequentes (Frequent Itemset Mining): essa técnica pode ser visualizada em duas etapas: primeiro, um conjunto de itens frequentes (Frequent Itemset) é criado, respeitando um valor mínimo de frequência para os itens e então depois, as regras de associação são geradas pela mineração desse conjunto.
- CLASSIFICAÇÕES: As técnicas de classificação podem ser supervisionadas e não-supervisionadas. São usadas para prever valores de variáveis do tipo categóricas.Usada para classificar clientes de um banco,por exemplo.
- Árvores de decisões (Decisions Trees): funciona como um fluxograma em forma de árvore, onde cada nó indica um teste feito sobre um valor (compras > 30, por exemplo). As ligações entre os nós representam os valores possíveis do teste do nó superior, e as folhas indicam a classe (categoria) a qual o registro pertence. A seguir, um pequeno exemplo de árvore de decisão:
- AGRUPAMENTOS: As técnicas de agrupamento são consideradas como não supervisionadas. Dado um conjunto de registros, são gerados agrupamentos, contendo os registros mais semelhantes.Os elementos de um agrupamento são considerados similares aos elementos no mesmo agrupamento e diferentes aos elementos nos outros agrupamentos
- Métodos Hierárquicos (Hierarchical Methods): a ideia básica dos métodos hierárquicos é criar o agrupamento por meio da aglomeração ou da divisão dos elementos do conjunto. A forma gerada por estes métodos é um gráfico em formato de árvore.
Etapas
As fases e as atividades da mineração de dados são, nos dias de hoje, padronizadas e definidas por diversos processos.Apesar das pequenas diferenças,todos possuem a mesma estrutura. Basicamente, as etapas são:
- 1 - Entendimento dos negócios: entender qual o objetivo que se deseja atingir com a mineração de dados. Esse entendimento vai ajudar nas próximas fases.
- 2 - Entendimento dos dados: é necessário conhecer os dados visando descrever de forma clara o problema, identificar os dados relevantes para o problema em questão e verificar se as variáveis relevantes para o projeto não são dependentes entre si.Tudo isso é necessário,pois as fontes fornecedoras dos dados podem vir de diversos locais e possuírem diversos formatos.
- 3 - Preparação dos dados: como os dados possuem diversas origens possíveis,normalmente nem todos estão prontos para que as técnicas de mineração sejam aplicadas.Dependendo da qualidade dos dados em questão,é necessário que algumas ações sejam realizadas,como:filtrar, combinar e preencher valores vazios.
- 4 - Modelagem: aplicação das técnicas de mineração,sendo que as selecionadas depende do objetivos estipulados anteriormente.
- 5 - Avaliação: Sendo necessário a participação de especialistas nos dados, conhecedores do negócio e tomadores de decisão,nessa etapa diversas ferramentas gráficas são utilizadas para visualização e análise dos resultados obtidos na modelagem.
- 6 - Distribuição: Depois de executado o modelo com os dados reais e completos é necessário que os envolvidos conheçam os resultados.
Exemplos
No dia-a-dia das grandes empresas,o Data Mining pode ser utilizado para uma grande variedade de contextos de tomada de decisão nos negócios, como: no markenting,onde as aplicações incluem a análise do comportamento do consumidor com base em padrões de compra, podendo determinar as estratégias de marketing, incluindo propaganda, localização de lojas e projetos de catálogos; na manufatura, onde as aplicações envolvem otimizações de recursos como equipamentos,força de trabalho e matéria-prima.
Na área de pesquisas, o Data Mining também é de suma importância,aparecendo nas áreas: da saúde, onde as aplicações incluem a análise da eficácia de certos tratamentos,podendo, assim, otimizar os processos dentro de um hospital e a análise de efeitos colaterais de drogas; na área biomédica, onde diversos diversos aparelhos de diagnósticos estão sendo desenvolvidos segundo os padrões encontrados em populações observadas ao longo de vários anos, com o objetivo de detectar e identificar grupos de riscos para os pacientes e trabalhar na prevenção de possíveis doenças.
Ferramentas
Com o aumento da procura de como organizar e usar os dados armazenados, algumas ferramentas foram desenvolvidas no intuito de tornar o uso do Data Mining uma tarefa menos técnica, e com isto possibilitar que profissionais de outras áreas possam fazer usa dela.Algumas dessas ferramentas são:
- Clementine: Uma das ferramentas líder de mercado, desenvolvida pela SPSS, o Clementine suporta o processo CRISP-DM, além de possuir outras facilidades.
- WEKA: É uma das melhores ferramentas livre. Possui uma série de algoritmos para as tarefas de mineração. Os algoritmos podem ser aplicados diretamente da ferramenta, ou utilizados por programas Java. Fornece as funcionalidades para pré-processamento, classificação, regressão, agrupamento, regras de associação e visualização.
- Oracle Data Mining (ODM): É uma ferramenta para a Mineração de Dados desenvolvida pela Oracle para o uso em seu banco de dados ORACLE.
Referências bibliográficas
http://www.the-data-mine.com/Misc/IntroductionToDataMining
ftp://ftp.inf.puc-rio.br/pub/docs/techreports/02_10_cortes.pdf
http://www.alvoconhecimento.com.br/saiba-o-que-e-data-mining/
http://professorloureiro.com/data-mining-conceitos-e-aplicabilidades/
http://www.inf.ufg.br/sites/default/files/uploads/relatorios-tecnicos/RT-INF_001-09.pdf
http://blog.mjv.com.br/ideias/big-data-data-mining-e-data-warehouse-quais-diferencas
====================================================================================================================================================
Realidade Aumentada
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese das pesquisas que fizer.
Conceito
Realidade aumentada (RA) é toda e qualquer informação virtual disposta em visualizações do mundo real. Ou seja, qualquer tipo de informação, seja ela uma imagem, dados, videos, etc... será incorporada em um modelo em 3D na interface gráfica do dispositivo, fazendo com que o mundo virtual se projete através disso para o mundo real. Existem algumas exceções onde as informações são dispostas diretamente no mundo real sem o intermédio da interface gráfica, mas para isso usam-se alguns truques. Não podemos confundir RA com Realidade Virtual (RV), pois, apesar de semelhantes, a RV consiste em produzir um ambiente artificial onde o usuário está em imersão total, fazendo uso de alguns equipamentos como: Luvas, óculos e fones.
Funcionamento
A funcionalidade da tecnologia é bem simples. Para que a RA funcione é necessário que o objeto real tenha uma marca como referencia, assim, quando a câmera ou o dispositivo captar a imagem do objeto, o software especifico para essa finalidade vai interpretar a imagem transmitida e simular as informações em cima da dela. O resultado é uma sobreposição do objeto virtual no objeto real, como se as duas coisas fossem uma só.
Como dito antes no conceito, existem exceções. Uma imagem em 3D também pode ser projetada diretamente no mundo real. Para isso, são necessarios alguns conceitos básicos de física. Em 14 de Março de 2012, no show do Snopp Dogg e Dr. Dre no festival norte-americano Coachella, o cantor 2PAC - falecido em 1998 - aparece cantando no palco durante uma apresentação, de modo que foi como se ele estivesse realmente lá. O 2PAC morreu de verdade e o fantasma dele visto no palco foi na verdade um holograma. Usando um projetor fixado no teto, a imagem foi transmitida para um espelho laminado localizado embaixo do palco, que por sua vez refletia a imagem para uma fina camada de filme plastico transparente no palco numa posição de 45° graus em relação ao espelho. O resultado foi surpreendente e ninguém precisou fumar uma erva para ter o mesmo efeito.
Esse efeito também pode ser feito em casa. É necessário ter uma tv ou monitor que possua uma boa taxa de constrastes, um computador ou qualquer aparelho que reproduza imagens, um vidro com pelo menos o dobro do tamanho da tela e um video que possua a cor de fundo preta. Basta colocar a tela no chão ou sobre a mesa inclinada para cima, posicione o espelho numa posição de 45° em relação a tela, diminua a taxa do brilho para 0 e aumente a taxa de contraste para o máximo, a tela vai reproduzir o vídeo que será refletida no vidro. Pronto, você tem um holograma caseiro.
Características
E uma tecnologia relativamente barata, seu uso é prático, superior em interatividade e funciona em qualquer dispositivo que tenha uma câmera.
Dispositivos
Qualquer aparelho que tenha uma camera que possa transmitir o objeto real; um software especifico para receber a transmissão e sobrepor o objeto real com um objeto virtual e uma interface gráfica(Câmera, óculos, celular, tela, etc...)
Produtos práticos
Controle e manutenção de equipamentos em indústrias de forma mais segura e eficiente
É por meio de tecnologias de realidade aumentada que o Centro de Pesquisas da GE no Brasil consegue oferecer um trabalho de apoio e de sistemas operacionais para que várias empresas consigam tornar seus processos mais eficientes. Um exemplo são as indústrias nas quais o processo de controle e manutenção de equipamentos é feito manualmente, dependendo de quem opera a máquina para garantir a segurança e eficiência. Todo esse processo poderia ser feito de forma bem mais segura, menos custosa, rápida e com alta qualidade. Alinhando tecnologias de realidade aumentada, os pesquisadores do Centro de Pesquisas no Brasil estão desenvolvendo soluções customizadas às indústrias para facilitar e agilizar o processo de inspeção de manutenção de máquinas e equipamentos. Ou seja – cada dia mais teremos nas indústrias máquinas mais eficientes, trabalhadores tendo acesso a materiais de mais qualidade, tarefas feitas com bem mais agilidade e segurança, além de cartões-postais bem diferentes no futuro.
Bombeiros conseguirão salvar mais vidas com capacetes inteligentes
Os equipamentos utilizados hoje em dia em missões de resgate dos bombeiros ainda são bastante arcaicos. Por que, então, não utilizar os benefícios da realidade aumentada para auxiliar o trabalho desses heróis? O designer Omer Haciomeroglu projetou o C-Thru, um capacete tecnológico que tem quatro ferramentas principais para ajudar na hora do resgate: um visor com sensor térmico que mostra as zonas de calor do ambiente em tempo real; um sensor que consegue definir a forma do ambiente e do mobiliário, permitindo a movimentação do bombeiro mesmo num ambiente com fumaça; recurso de cancelamento de ruído seletivo que bloqueia o barulho das chamas e enfatiza gritos de socorro; e um sistema de comunicação simplificado entre os bombeiros da equipe.
Ajudar no dia-a-dia de deficientes
Para alguém que tem limitações físicas, tarefas cotidianas como atender o telefone, tirar fotos ou digitar podem ser um grande desafio. Gadgets como o Google Glass usam a realidade aumentada para ajudar essas pessoas a conseguir ser mais independentes e ter uma vida com muito mais qualidade. É o caso da californiana Tammie Van Sant, de 52 anos, que teve uma fratura que impediu seus movimentos do pescoço para baixo. Ela foi uma dos 8.000 candidatas que se inscreveram para conseguir o direito de comprar os primeiros óculos do Google pelo valor de U$1.500: e foi selecionada. Desde então, sua vida mudou: “Eu posso atender o telefone e realmente ouvir a pessoa do outro lado e ela pode me ouvir. Quando eu recebo uma mensagem, eu posso ler o que diz o texto e responder”, disse Tammie. Para alguém que teve que esperar pelo menos duas décadas desde o acidente para que pudesse fazer coisas simples, como tirar uma foto, essa inovação é realmente uma mudança na vida.
Outro nível de interação com arte e exposições em geral
Se você não estava presente na Alemanha durante a época da divisão feita pelo muro de Berlim, não se preocupe. Uma aplicação desenvolvida no país usa a realidade aumentada para aumentar a qualidade da informação em exposições históricas como na que foi feita no Muro de Berlim. Um sistema de geolocalização se une com um mapa que traça 11 pontos ao longo do muro. As pessoas podem então ver cenas históricas que aconteceram exatamente naqueles locais. Uma das cenas mais clássicas que a aplicação permite realizar é a incrível fuga de Frida Schulze, uma alemã que saltou pela janela do apartamento onde vivia.
HoloLens
Apesar do HoloLens ser uma tecnologia voltada para RV, ela também apresenta muitas características da RA.
A interação do usuário poderá ser consideravelmente realista também. O HoloLens dispensa cabos, portanto, não limita tanto os movimentos. Todos os seus recursos estão dentro do dispositivo, incluindo CPU, GPU e uma “HPU” (Holographic Proccesing Unit). A invenção consiste em óculos holográficos. Ou quase isso. Funciona assim, basicamente: você coloca o dispositivo em sua cabeça e o visor “projeta” conteúdo sobre o ambiente que você estiver vendo.
O HoloLens é muito legal, principalmente para quem gosta de jogar. Seria mais ou menos o Santo Grau dos Gamers. Imagine que você está jogando um jogo de tiro em primeira pessoa (FPS), então você pensa: Cara, e se eu tivesse dentro do jogo? Pois é. Em março você pode! Sim, os óculos de RV vão chegar no mercado e suas variações dependem da empresa. Já estão disponiveis 7 modelos de óculos:
Oculus Rift (Kickstarter *$> Facebook) US$599,00 (R$2,240);
HTC Vive (HTC e Valve) US$799,00 (RS2,989);
PlayStation VR (PlayStation) US$399 (R$1.459);
Microsoft HoloLens (Microsoft) US$ 3 mil (R$10.975);
LG 360 VR (LG) ???;
Samsung Gear VR (Samsung) R$ 799 (RS2,989);
Sulon Q (AMD) ???.
*Produto comprado
Curiosidade:
A empresa de entretenimento adulto Pink Visual mostrou em uma feira da área em Las Vegas seus testes com realidade aumentada. De acordo com a companhia, qualquer pessoa vai poder estar "dentro" do filme pornô e personagens do filme irão interagir com o espectador dentro da tela. Por enquanto, a coisa é bem rudimentar e a diversão não é garantida.
O canal Complex decidiu fazer uma experiência bem curiosa e colocou algumas pessoas para assistirem a vídeos pornográficos gravados em primeira pessoa. Mais do que isso, elas estavam visualizando esses conteúdos com os óculos de realidade virtual Samsung Gear VR. Exatamente: elas estavam praticamente vivenciando a experiência da pornografia em um modo muito mais imersivo do que o normal.
Referências bibliográficas
https://pt.wikipedia.org/wiki/Realidade_aumentada
http://realidademisturada.blogspot.com.br/2009/05/diferencas-ra-e-rv.html
http://www.tecmundo.com.br/realidade-aumentada/2124-como-funciona-a-realidade-aumentada.htm
https://tecnoblog.net/173041/microsoft-hololens/
http://musica.uol.com.br/ultnot/2012/04/16/mae-de-tupac-shakur-ficou-emocionada-com-holograma-do-filho-em-show-diz-site.jhtm
http://www.hypeness.com.br/2014/11/4-exemplos-de-como-a-realidade-aumentada-ja-esta-melhorando-a-nossa-vida/
====================================================================================================================================================
Sistema Embarcado
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese das pesquisas que fizer.
Conceito
Funcionamento
Tecnologia empregadas
Características dos softwares
Sistemas operacionais
Exemplos
Referências bibliográficas
====================================================================================================================================================
Sistema Operacional
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese das pesquisas que fizer.
Conceito
Sistema Operacional é uma coleção de programas que que tem como principais funções, inicializar o hardware do computador, fornece rotinas básicas para controle de dispositivos, fornece e gerencia escalonamento interações de tarefas e também mantem a integridade de sistema.
Estrutura
As principais funções do núcleo do sistema operacional é :
. Tratamento de interrupções ; . Criação e eliminação de processos; . Sincronização e comunicação entre processos e threads; . Sincronização e comunicação de processos e threads; . Gerencia de memória; . Gerenciamento do sistema de arquivos; . Gerenciamento dos dispositivos de E/E; . Suporte a redes locais e distribuídas; . Contabilização do uso do sistema; .Auditoria e segurança do sistema.
Tipos de SOs
Temos quatro tipos básicos de SOs entre eles :
Sistema operacional de tempo real ( RTOS- Real-time operating system.) especificamente utilizado para o controle instrumentos clínicos, maquinas e sistemas industriais. A função do RTOS é gerenciar os recursos do computador para que uma operação específica seja sempre executada durante um mesmo período de tempo.
Multiusuário , Um SOs multiusuário permite que diversos usuários utilizem ao mesmo tempos os recursos do computador deve se certificar de que as solicitações de vários usuários estejam balanceadas. Cada um dos programas utilizados deve dispor de recursos suficientes e separados, de forma que o problema de um usuário não afete toda a comunidade de usuários. E um exemplos de sistemas operacionais multiusuários são Unix, VMS e sistemas operacionais mainframe como o MVS.
Monousuário, multitarefa, esse é o tipo de sistemas operacional mais usado em computadores, umas das plataformas mais usadas Microsoft Windows e Apple MacOS, porque que é umas das que permitem que utilize diversas aplicações ao mesmo tempo.
Monousuário, monotarefa esse sistemas já foi criado para uma coisa de ada vez, um Palm é um exemplo de im sistema operacional monousuário monotarefas.
Uma breve tabela doas mais conhecidos :
MICROSOFT
MS-DOS
Windows 1.0
Windows 3.0
Windows 3.11
Windows 95
Windows 98
Windows 98 SE
Windows NT
Windows Millenium (Me)
Windows 2000
Windows XP
Windows 2003
Windows 64bits (Final de 2004)
Windows Vista (2005).
Windows Seven (2009)
MACINTOSH
MacOS MacOS 9 MacOS X
Tipo de processamento de SOs
Funcionalidades
.Ele permite a interação de projetos esternos, como a interação com um pen drive, câmeras monitores controles sem fio.
Permite o gerenciamento de todos os softwares efetuando modificações.
.Filtras os comandos dos dos programas para os hardwares.
.Libera o gerenciamento de arquivos diversos existentes e liberando a criação de arquivos.
.Pode adquirir a segurança dos arquivos criados.
.Faz com que todos os processos tenham acesso a memora RAM e serem executados
SO Multiprocesso
È um sistema integrado de computação que envolve mais de um processador físico , onde os processadores utilizam do mesmo endereçamento de memoria, o hardware é gerenciado apenas um sistema operacional. Consequentemente o sistema Multiprocessamento é multe tarefas, podendo manter vários processos especifica para cada processador.
Referências bibliográficas
www.oficinadanet.com.br
www.itnerante.com.br
www.youtube.com
http://www.techtube.com.br/o-que-e-sistema-operacional/
http://www.coladaweb.com/informatica/sistema-operacional
https://www.youtube.com/watch?v=Zl9w2HbUecU
----------------------------------------------------------------------------------------------------
CLP
Conceito
- O que é?
- CLP,controlador lógico programável,é uma espécie de computador industrial utilizado geralmente para a automatização e controle de processos. Os primeiros CLPs começaram a aparecer na década de 1960 para substituir os relés eletromagnéticos, que além de ocupar muito espaço estavam se tornando um sistema muito complexo e não tão eficiente para o controle lógico de alguns processos.
- O CPL consiste num sistema de entradas e saídas,as entradas captam os dados que vem do processo a partir de instrumentos de medição e informam por meio de uma rede de comunicação ao controlador que processa esses dados e por meio das saídas atuam no processo,controlando então a velocidade por exemplo de um motor, a abertura de uma válvula, com o fim de atuar na variável que foi medida anteriormente.
- Porque é interessante?
- Atualmente quase não é possível imaginar um processo industrial de proporções médias,ou grandes sem o uso de CPLs, eles possibilitaram uma evolução muito grande ,pois com uma maior capacidade de controle puderam aumentar eficiência,velocidade e capacidade das indústrias.
- Quais as características marcantes?
- O sistema de CLPs é extremamente confiável,facil de se programar, facil de se expandir e capacidade de processamento.
- Como está o Brasil neste segmento?
- Existem pouquíssimas empresas brasileiras que desenvolvem CLPs no que se refere a Hardwere, a maior parte das CLPs utilizados no Brasil são de origem alemã ou norte americana,entretanto no que tange aos softweres que gerem os sistemas controlados por CLPs tempos os SCADAbr q é brasileiro e open source.
Software
- Qual o papel do software?
- O softwere controla praticamente tudo no CLP,como deve ser tratada a informação que vem dos sensores,e o como deve ser o sinal de saída que vai para os atuadores,
- Como funciona?
- A programação de um CLP é feita geralmente em linguagem Ladder,que é uma espécie de diagrama composto por bobinas,contatos e blocos funcionais, com o intuito de facilitar o usuário a programar. Nesse diagrama ele configura o que está em cada entrada e saída,e como o controlador deve atuar no processo de acordo com a informação recebida por cada um de seus dispositivos entrada.
Aplicação
- Cite as situações onde podemos usar esta tecnologia?
- Os CLPs podem ser utilizados em qualquer tipo de sistema de controle ,porém devido ao seu alto custo eles são aplicados em processos industriais com proporções relativamente grandes.
Tecnologias
- Quais tecnologias são usadas?
- Diversas tecnologias são utilizadas em CLPs por se tratar de uma estrutura muito complexa,no entanto uma área que se destaca no que tange esse assunto são os sistemas embarcados, tais controladores lógicos programáveis agregam tecnologias que são referências nessa área.
- Exemplos de interface?
- Os CLPs em muitas partes do processo atuam autonomamente,entretanto em algumas precisa-se que exista a interação homem máquina para isto é utilizado os sistemas chamados de supervisórios,ou SCADA,nessa interface são mostrados os dados que são coletados pelo CLPs a partir dos sensores,e se o operador necessitar ele poderá atuar no processo.Fora isso as entradas e saídas dos CLPs são compostas por diversos tipos de sensores,e atuadores respectivamente.
Estado da Arte
- Atualmente se trabalha com o termo Controlador de Automação Programável como a evolução dos CLPs,estes são considerados a junção dos controladores lógicos com computadores industriais,pois apresentam uma maior capacidade de*processamento,podendo implementar algorítimos mais complexos.
- Com a evolução da telefonia móvel e da capacidade dos smartphones existe uma tendência a se explorar um modo de levar o sistema supervisório para o celular,dando a a capacidade ao operador de visualizar via WI-FI todas as informações relacionadas a um processo industrial específico.
Referências
- www.mecatronicaatual.com.br/
- www.automacaoindustrial.info/
- www.lee.eng.uerj.br/
- www.weg.net
- www.automationdirect.com
- www.amci.com
----------------------------------------------------------------------------------------------------
ETL
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese das pesquisas que fizer.
Conceito
ETL é uma sigla em inglês que significa Extract Transform Load, que traduzida para o português significa Extração, Transformação e Carga. O trabalho do ETL está ligado a extração de dados de fontes externas, transformação para atender às necessidades de negócios e carga dos dados dentro do Data Warehouse. O ETL pode ser realizado de uma ou mais bases de dados de origem para uma ou mais bases de dados de destino (Data Warehouse).
A extração e carga são obrigatórias para o processo, sendo a transformação/limpeza opcional.
Funcionamento
Antes de iniciar um Projeto de ETL é necessário definir claramente quais dados vão alimentar o Data Warehouse, a estrutura deve ser desenhada fazendo uma relação dos dados que serão extraídos de vários sistemas e as informações que devem ser geradas a partir deste repositório. Analisar a viabilidade dos dados. Deve-se verificar os requisitos do negocio e as Políticas de Compliance e Segurança. O funcionamento do sistema ETL: 1º) Extração: Coletar os dados dos sistemas de origem (também chamados Data Sources ou sistemas operacionais), extraindo-os e transferindo-os para o ambiente de Data Warehouse, onde o sistema de ETL pode operar independente dos sistemas operacionais. 2º) Limpeza, Ajustes e Consolidação (chamado transformação): É nesta etapa que realizamos os devidos ajustes, podendo assim melhorar a qualidade dos dados e consolidar dados de duas ou mais fontes. O estágio de transformação aplica um série de regras ou funções aos dados extraídos para ajustar os dados a serem carregados. Algumas fontes de dados necessitarão de muito pouca manipulação de dados. Em outros casos, podem ser necessários trabalhar algumas transformações, como por exemplo, Junção de dados provenientes de diversas fontes, seleção de apenas determinadas colunas e Tradução de valores codificados (se o sistema de origem armazena 1 para sexo masculino e 2 para feminino, mas o data warehouse armazena M para masculino e F para feminino, por exemplo). 3º) Entrega ou Carga dos dados: Consiste em fisicamente estruturar e carregar os dados para dentro da camada de apresentação seguindo o modelo dimensional. Dependendo das necessidades da organização, este processo varia amplamente. Alguns data warehouses podem substituir as informações existentes semanalmente, com dados cumulativos e atualizados, ao passo que outro DW (ou até mesmo outras partes do mesmo DW) podem adicionar dados a cada hora. A latência e o alcance de reposição ou acréscimo constituem opções de projeto estratégicas que dependem do tempo disponível e das necessidades de negócios. 4º) A parte de Gerenciamento é composta por serviços para auxiliar no gerenciamento do DataWarehouse. Aqui nós temos tasks específicas para gerenciamento de jobs, planos de backup, verificação de itens de segurança e compliance.
O Ciclo de vida do Data Warehouse é composto por uma série de etapas. Inicia-se pelo planejamento do Programa ou Projeto, passamos pelo levantamento e definição dos requisitos de negócios e aí nos dividimos em 3 caminhos… Um seguindo a parte de Arquitetura e Design Técnico, Outro trabalhando a definição da Modelagem Dimensional, o Desenho físico e a parte de ETL, e um terceiro caminho que trata do planejamento e desenvolvimento da aplicação de BI, o front end propriamente dito.
Vantagens
Desenvolvimento das cargas: Desenvolver uma rotina de carga em uma ferramenta de ETL é muito mais fácil e rápido que codificá-la. Dependendo da facilidade da ferramenta é possível inclusive que usuários não técnicos a utilizem para cargas mais simples.
Manutenção das cargas: As tarefas de manutenção de uma rotina de carga são mais fáceis de realizar em relação à manutenção de código.
Desempenho: As ferramentas de ETL utilizam métodos mais performáticos para trabalhar com grandes volumes e normalmente conseguem extrair, transformar e carregar dados com mais velocidade e menos utilização de recursos. Isso inclui operações não logadas, gravações em bloco, etc.
Execução em paralelo: Ferramentas de ETL possuem recursos de paralelização nativos e facilmente implementáveis.
Escalabilidade: Ferramentas de ETL podem ser transferidas de servidor mais facilmente e até eventualemente distribuir sua carga entre vários servidores.
Diversidade de conectores: A conexão de uma ferramenta de ETL com múltiplas fontes de dados é transparente. Caso apareça alguma fonte não trivial como o SAP, Mainframe, VSAM, etc é possível adquirir o conector sem a necessidade de codificar um.
Separação entre funcionalidade e manipulação de dados: Uma ferramenta de ETL já possui suas funcionalidades disponíveis (Lookup, Merge, Split, Expressões calculadas, etc). Só é necessário concentrar-se em como fluir os dados dentro da carga e não codificar cada tarefa da carga.
Reusabilidade: Uma carga normalmente pode ser reaproveitada dentro de outras cargas ou sobre a forma de um template
Reinicialização: Ferramentas de ETL possuem a capacidade de reiniciar a carga de onde pararam sem a necessidade de codificar essa inteligência
Manutenção de Metadados: Os metadados são gerados e mantidos automaticamente com a ferramenta evitando que problemas de conversão gerem dados não íntegros ao final do processo. A manutenção de metadados também evita ou alerta para alterações de esquema que invalidem a carga.
Documentação: As ferramentas de ETL possuem mecanismos de documentação (quando não são autoexplicativas). Isso pode ser um diferencial significativo principalmente para equipes de alta rotatividade.
Maior garantia da qualidade dos dados: Ferramentas de ETL podem disponibilizar meios para trabalhar a qualidade dos dados através de algoritmos complexos (lógica fuzzy, IA, etc).
Auditoria & Tracking: É possível implementar recursos de auditoria e tracking para conhecer de onde veio o registro, que transformações sofreu e como foi carregado.
Segurança: É possível tornar a segurança mais modular dividindo-se os papéis (criação de cargas, execução de cargas, agendamento, etc).
Motivos para utilização
Performace: mais rápido e eficiente que as tradicionais soluções de BI de base OLAP.
Fluxo visual: Fluxo visual das cargas e dos processos de forma estruturada e lógica.
Controle de cargas: Capacidade não apenas de fornecer o monitoramento do sucesso ou não das cargas, mas uns níveis de detalhe de quais problemas ocorreram, em que tabelas, quais registros duplicados ou rejeitados. Algumas delas fornecem modelos prontos para relatórios de operação de cargas.
Tratamento de Flat Files: Possibilidade de mapear arquivos csv"s, txt"s, dbf"s etc...sem grandes esforços também é característico das ferramentas de ETL.
Exemplos de software
Microsoft SQL Server Integration Services.
Talend Open Studio.
CloverETL.
GeoKettle ETL.
Jaspersoft ETL.
HPCC Systems.
Relação com BI
O ETL é uma ferramenta utilizada para extração, transformação e carga de dados que serão utilizados no BI.
Referências bibliográficas
http://www.devmedia.com.br/extract-transformation-and-load-etl-ferramentas-bi/24408
http://www.linhadecodigo.com.br/artigo/2204/devo-utilizar-uma-ferramenta-de-etl.aspx
http://corporate.canaltech.com.br/noticia/business-intelligence/entendendo-o-processo-de-etl-22850/
http://www.fsma.edu.br/si/Artigos/V2_Artigo1.pdf
https://vivianeribeiro1.wordpress.com/2011/06/28/o-que-e-etl-2/
http://www.predictiveanalyticstoday.com/top-free-extract-transform-load-etl-software/
https://gustavomaiaaguiar.wordpress.com/2010/05/10/por-que-utilizar-uma-ferramenta-de-etl/
https://www.oficinadanet.com.br/post/13153-o-que-e-business-intelligence
----------------------------------------------------------------------------------------------------
Fibras Ópticas
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese das pesquisas que fizer.
Conceito
Fibras ópticas, simplificadamente, são fios que conduzem a potência luminosa injetada pelo emissor de luz, até o fotodetector. São estruturas transparentes, flexíveis, geralmente compostas por dois materiais dielétricos, tendo dimensões próximas a de um fio de cabelo humano.
Há uma região central na fibra óptica, por onde a luz passa, que é chamada de núcleo. O núcleo pode ser composto por um fio de vidro especial ou polímero que pode ter apenas 125 micrômetros de diâmetro nas fibras mais comuns e dimensões ainda menores em fibras mais sofisticadas.
Fibra Óptica ou Ótica, como também é conhecida, é o meio pelo qual a potência luminosa injetada pelo Emissor de Luz, é transmitida até o Fotodetector. Formada por um Núcleo de material dielétrico, geralmente Óxido de Silício (SiO2), dopado com Germânio, Fósforo e Alumínio para aumentar seu índice de refração, e por uma Casca de material dielétrico, podendo ser Sílica pura, com índice de refração ligeiramente inferior ao do Núcleo, o Cabo Ótico é protegido mecanicamente e ambientalmente por encapsulamentos (geralmente plásticos), conforme sua aplicação, podendo conter uma ou mais Fibras.
Arquivo:Fibra detalhamento.jpg
Exposição da Fibra Óptica em Camadas
Para confinar a luz dentro do Núcleo (fenômeno denominado Reflexão Total), a densidade ou índice de refração deve ser maior no Núcleo do que na Casca, variação que permite a reflexão da luz.
A Fibra Ótica transmite luz introduzida numa extremidade para a outra com pequena perda, devido a sequência de reflexões ao longo do caminho. Para exemplificar, imagine um tubo plástico de pequeno diâmetro, flexível e internamente espelhado. Em uma das pontas se injeta um Raio Laser, que é refletido ao longo de todo percurso pela superfície espelhada, mesmo nas curvas. Na outra ponta, o Raio Laser é detectado.
A luz, nos sistemas de Fibra óptica, é transmitida por variação de amplitude, existindo processos analógicos e digitais.
Com capacidade de transmissão 1 milhão de vezes maior do que a do Cabo Metálico, a Fibra Óptica é o principal meio de comunicação mundial.
Mantendo somente Cabos Metálicos como condutores de informações, em certos casos seria mais rápido enviar uma pessoa para entregar a correspondência, do que transmitir tais dados.
Para transmitir um pacote de informações com 72Gb- que corresponde ao conteúdo de um disco rígido de 9Gb- a uma distância de 10Km, utilizando Cabo Metálico, seriam necessárias dez horas. Por Fibra Ótica seriam gastos apenas 7,2 segundos.
Analogamente, se num estádio de futebol lotado houvesse apenas uma pequena porta de saída, o tempo para esvaziá-lo seria muito maior do que utilizando diversos portões.
Funcionamento
O funcionamento desses cabos ocorre de forma bem simples. Cada filamento que constitui o cabo de fibra óptica é basicamente formado por um núcleo central de vidro, por onde ocorre a transmissão da luz, que possui alto índice de refração e de uma casca envolvente, também feita de vidro, porém com índice de refração menor em relação ao núcleo. A transmissão da luz pela fibra óptica segue o princípio da reflexão. Em uma das extremidades do cabo óptico é lançado um feixe de luz que, pelas características ópticas da fibra, percorre todo o cabo por meio de sucessivas reflexões até chegar ao seu destino final.
Reflexão é quando a luz, propagando-se em um determinado meio, atinge uma superfície e retorna para o meio que estava se propagando.
PRINCÍPIOS DE TRANSMISSÃO
Para que os raios de luz sofram reflexão total na fronteira entre núcleo e casca e permaneçam confinados no interior do núcleo da fibra, eles devem ser injetados num determinado ângulo que seja inferior ao ângulo do cone de captação, conforme ilustra a figura a seguir. Qualquer raio de luz que entre na fibra com um ângulo maior que o ângulo do cone de captação será refratado e consequentemente perdido.
Arquivo:Figura-2.jpg
PROPAGAÇÃO DA LUZ
Raios de luz entram na fibra em diferentes ângulos e não seguem os mesmos caminhos. Os raios que entram no centro do núcleo da fibra com ângulo bem pequeno (praticamente horizontal) seguirão por um caminho relativamente direto pelo centro da fibra. Raios de luz que entram na fibra com elevado ângulo de incidência, seguirão por um caminho diferente, mais longo, e levarão mais tempo para atravessar a fibra. Cada caminho, resultante de um diferente ângulo de incidência, dará origem a um modo. Diferentes modos sofrerão diferentes atenuações enquanto trafegam ao longo da fibra.
VELOCIDADE
A velocidade da luz em um determinado meio depende do índice de refração daquele meio, que por sua vez é definido como:
h = c/v
Onde:
h – índice de refração do meio de transmissão
c – velocidade da luz no vácuo (3 x 108 m/s)
v – velocidade da luz no meio de transmissão
Valores típicos de h para o vidro (ou para a fibra óptica) estão na faixa de 1,45 a 1,55. Note que quanto maior o índice de refração, menor é a velocidade da luz no meio de transmissão.
Tipos
As fibras ópticas são classificadas em fibras multimodo ou monomodo, baseado na forma que a luz as percorre. O tipo de fibra está relacionado ao diâmetro do núcleo e da casca.
Arquivo:Figura-3.jpg
FIBRA MONOMODO
As fibras monomodo possuem vantagens em relação às fibras multimodo, principalmente em relação à atenuação e a largura de banda. O principal motivo é o seu núcleo, bem menor, que limita os modos de propagação da luz a apenas um, eliminando completamente o fenômeno da dispersão modal. Tipicamente uma fibra monomodo pode transportar sinais ópticos na faixa de 10 a 40 Gbps. Esse tráfego pode ser ainda maior caso se utilizem técnicas de modulação WDM (wavelenght division multiplexing).
Como principais desvantagens, as fibras monomodo exigem fontes de luz e sistemas de alinhamento mais precisos, portanto mais caros, para um acoplamento eficiente ao longo do link óptico. Além disso, técnicas de fusão e conectorização também se tornam mais complicadas e caras no universo das fibras monomodo. No entanto, para sistemas de comunicação de alto desempenho ou muito extensos, sem dúvida as fibras monomodo são a melhor escolha. As dimensões típicas de uma fibra monomodo variam de um núcleo de 8 a 12 um e uma casca de 125 um. O valor típico do índice de refração da fibra monomodo é de 1.465.
Arquivo:Figura-7.jpg
FIBRA MULTIMODO
As fibras multimodo, devido ao seu núcleo largo, permitem a transmissão da luz em diferentes caminhos (múltiplos modos) ao longo do link, tornando-a particularmente sensível à dispersão modal.
Dentre as vantagens das fibras multimodo estão sua facilidade de acoplamento às fontes de luz e às outras fibras (devido ao seu núcleo largo), a possibilidade de utilizar fontes de luz de baixo custo e a simplicidade dos processos de fusão e conectorização. Entretanto, possuem atenuação alta e largura de banda estreita, fatores que limitam sua utilização às curtas distâncias.
Arquivo:Figura-4.jpg
FIBRAS MULTIMODO ÍNDICE DEGRAU
Fibras multimodo índice degrau possuem um índice de refração constante no interior do núcleo da fibra. A consequência desse fato é que os raios de luz sofrem reflexão total na fronteira entre o núcleo e a casca, percorrendo uma trajetória formada por segmentos de reta, conforme mostrado na figura abaixo:
Arquivo:Figura-5.jpg
FIBRAS MULTIMODO ÍNDICE GRADUAL
Fibras multimodo índice gradual possuem um índice de refração não-uniforme, que diminui de valor gradualmente do centro do núcleo em direção à casca. A consequência dessa variação é que os raios de luz percorrem o interior da fibra seguindo uma trajetória senoidal, conforme mostrado na figura abaixo:
Arquivo:Figura-6.jpg
Benefícios
Dimensões Reduzidas;
Capacidade para transportar grandes quantidades de informação (Um par de fibras ópticas, cujo diâmetro pode ser comparado com o de um fio de cabelo, pode transmitir 2.5 milhões ou mais de chamadas telefônicas ao mesmo tempo. Um cabo de cobre com a mesma capacidade teria um diâmetro da ordem de 6 m!);
Quantidade de dados passados potencialmente enormes, devido à menor dispersão de dados;
Perdas de transmissão muito baixas;
Imunidade às interferências eletromagnéticas e ao ruído;
Isolação eléctrica;
Pequeno tamanho e peso;
Matéria-prima muito abundante;
Segurança no sinal;
Facilidade na instalação;
Menos deterioração com o tempo comparando com os fios de cobre.
Alta resistência a agentes químicos e variações de temperatura.
Comparação com par trançado
Há diversos tipos de cabos que podem atender às várias necessidades e tamanhos de redes, de pequenas a grandes.
Cabeamento pode ser um assunto complexo. A Belden, importante fabricante de cabos, publica um catálogo que lista mais de 2.200 tipos. Felizmente, apenas três principais grupos de cabos são usados nas conexões da maioria das redes:
Coaxial (fino e grosso);
Par trançado (blindado e não blindado);
Fibra óptica (mono e multi-modo).
Bom no caso vamos falar um pouco sobre fibra optica e os cabos de par trançado.
Com o passar do tempo, surgiu o cabeamento de par trançado. Esse tipo de cabo tornou-se muito usado devido à falta de flexibilidade de outros cabos e por causa da necessidade de se ter um meio físico que conseguisse uma taxa de transmissão alta e mais rápida. Os cabos de par trançado possuem dois ou mais fios entrelaçados em forma de espiral e, por isso, reduzem o ruído e mantém constantes as propriedades elétricas do meio, em todo o seu comprimento.
A desvantagem deste tipo de cabo, que pode ter transmissão tanto analógica quanto digital, é sua suscetibilidade às interferências a ruídos (eletromagnéticos e radio freqüência). Esses efeitos podem, entretanto, ser minimizados com blindagem adequada. Vale destacar que várias empresas já perceberam que, em sistemas de baixa freqüência, a imunidade a ruídos é tão boa quanto a do cabo coaxial.
O cabo de par trançado é o meio de transmissão de menor custo por comprimento no mercado. A ligação de nós ao cabo é também extremamente simples e de baixo custo. Esse cabo se adapta muito bem às redes com topologia em estrela, onde as taxas de dados mais elevadas permitidas por ele e pela fibra óptica ultrapassam, e muito, a capacidade das chaves disponíveis com a tecnologia atual. Hoje em dia, o par trançado também está sendo usado com sucesso em conjunto com sistemas ATM para viabilizar o tráfego de dados a uma velocidade extremamente alta: 155 megabits/seg.
Este cabeamento é de fácil instalação, tem uma boa relação custo/benefício, porém exige um curto alcance (em média 90 metros), além de oferecer, em alguns casos, interferência eletromagnética.
Como Já vimos acima como funciona os cabos de fibra optica, podemos notas que eles são mais eficientes em velocidade e quantidade de dados transmitidos, mas os cabos de par trançado são basicamente mais baratos dependendo do caso e em conexão direta a computadores comum uma boa opção, aliás a quantidade de informação que é mandada pelos cabos de fibra optica seria muito grande para eles.
Desvantagens
Custo elevado;
Fragilidade das fibras óticas sem encapsulamento;
Dificuldade para ramificações (Uma rede ponto a ponto seria mais viável, caso contrário as conexões tipo “T” sofrem com perdas muito elevadas de dados);
Impossibilidade de alimentação remota dos repetidores;
Falta de padronização dos componentes ópticos.
Referências bibliográficas
http://www.gta.ufrj.br/grad/08_1/wdm1/Fibraspticas-ConceitoseComposio.html
http://www.protecnos.com.br/artigos/conceitos-de-fibra-otica/
http://brasilescola.uol.com.br/fisica/fibra-optica.htm
http://www.tecmundo.com.br/web/1976-o-que-e-fibra-otica-.htm
https://telteq.wordpress.com/2014/12/23/principio-de-funcionamento-e-tipos-de-fibra-optica/
https://www.oficinadanet.com.br/artigo/redes/o-que-e-fibra-otica-e-como-funciona
http://tvdigitaltecno.blogspot.com.br/2010/03/vantagens-e-desvantagens-da-fibra.html
http://www.icei.pucminas.br/professores/marco/cabeamento-de-rede/
http://www.teleco.com.br/tutoriais/tutorialrcompam/pagina_3.asp
----------------------------------------------------------------------------------------------------
IoS
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese das pesquisas que fizer.
Conceito
sistema produzido por Apple Inc. lançado em 29 de junho de 2007, de código fechado com interface multi touch, suas atualizações são feitas por meio da Itunes ou por OTA (over-the-air) que a partir desta data sofreu alterações ate mesmo no nome passando de Iphone OS para IOS.O iOS consiste em quatro camadas de abstração: a camada Core Services, a camada Cocoa Touch, a camada mídia e a camada Core OS . Os aparelhos que recebem esse sistema são: Iphone, Ipod, Ipad, Ipod Touch e Apple TV , a Apple proíbe a execução desse sistema em hardwares de terceiros.
Funcionalidades
A tela inicial do sistema IOS exibe aplicações de celular e um dock com seus aplicativos mais usados, nesta tela há uma barra de notificações que mostra a hora, intensidade do sinal, nível de bateria entre outras coisas,na primeira fase do sistema o Iphone OS 1 foi apresentado coo um sistema multitoque para dispositivos moveis, no Iphone OS 2 a grande inovação foi poder instalar aplicativos de terceiros no sistema, a partir do Iphone OS 3 uma função de pesquisa de lembrete entre outras coisas existentes no aparelho esta disponível, além da função de copiar e colar, a partir do IOS 4 esta disponível as pastas, basta arrastara um aplicativo pra cima de outro e já e criada uma pasta com esses dois aplicativos, e o usuário poderia trocar a imagem de fundo da tela principal, e a inclusão da função multitarefa, na atualização do IOS 5 as notificações aparecem na barra de notificações e você pode acessar elas clicando em cima da notificação, nessa atualização também foi anunciado um serviço baseado na nuvem, o Icloud, na versão do IOS 6 foram disponibilizados diversas funções, tais como mapas e a opção não perturbe que silencia um determinado aparelho por um determinado tempo, no IOS 7 foi preparada uma grande mudança na interface gráfica, uma nova ferramenta de acesso aos aplicativos mais usados além de voz masculina para o Siri, na versão 8 do IOS atualizaram a função OTA, adicionaram ferramentas pra edição de fotografias, muitas mudanças no aplicativo saúde, nessa edição ele e compatível com o Apple Watch, além da atualização do Siri em varias outras línguas incluindo pt-BR, na versão mais recente ate o momento, o IOS 9 ganhou a função de otimizar bateria, modo de baixo consumo de bateria, além de atualizações que ocupam menos espaço e os recursos avançados de segurança que vão manter seu dispositivo mais seguro.
Widgets
São componentes que permitem a fácil utilização dos recursos do aparelho, para simplificar o uso de outros sistemas ou programas geralmente tem botões, ícones janelas e menus, tudo para auxiliar o uso. Alguns desses widgets são: O Evernote que te permite criar notas e lembretes e fixar na tela inicial; O Itranslate que te permite tradução com muitos idiomas; O Vidgets que te permite gerenciar outros widgets além de poder gerenciar previsão do tempo, tempo de bateria entre outros. Além desses widgets existem vários outros que podem auxiliar no uso do sistema.
Vantagens
->Agilidade: O usuário que esta acostumado a esperar muito ou com o sistema travar demais, não terá esse problema com o IOS;
->Intuitividade: Mesmo pessoas que acabaram de comprar o aparelho com o sistema conseguem dominar o aparelho por ter uma interface bastante intuitiva;
->Padrão: A Apple é rigorosa quanto aos aplicativos disponíveis em sua loja, permitindo apenas aplicativos que sigam o padrão definido por ela, garantindo uma interface e um padrão de aplicativos original;
->Novidades: A grande maioria dos aplicativos e atualizações chegam antes ao IOS e só depois vem a ser disponibilizadas em outros sistemas;
->Icloud: Permite que o usuário sincronize facilmente os documentos de Mac para o laptop por exemplo, sem ter que fazer isso manualmente;
SDKs
SDK significa Software Development Kit (ou Software Developers Kit – pacote de desenvolvimento de software)kit de desenvolvimento de software lançado para desenvolver aplicativos nativos para o IOS, não havia esse recurso quando o sistema foi lançado, pois a Apple alegava que era pra proteção de vírus ou programas maliciosos, porem em outubro de 2007 Steve Jobs anunciou que no final de fevereiro liberaria este recurso parra os usuários. com isso você poderá produzir seus próprios aplicativos e rodar eles em seu aparelho com sistema IOS.
App Store
A App Store e um recurso exclusivo do sistema IOS ou Iphone OS, na App Store e possível fazer o download dos mais diversos tipos de aplicativo que você desejar em seu smartphone sugestões, reviews e notícias sobre os melhores aplicativos e lançamentos para iOS.
Referências bibliográficas
https://pt.wikipedia.org/wiki/IOS
https://support.apple.com/pt-br/HT204266
http://canaltech.com.br/tag/App-Store/
https://pt.wikipedia.org/wiki/IPhone_SDKs
http://www.tudocelular.com/samsung/noticias/n33868/nove-vantagens-do-iOS-sobre-android.html
----------------------------------------------------------------------------------------------------
Protocolo IP
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese das pesquisas que fizer.
Conceito
- Protocolo de Internet (ou o acrónimo IP) é um protocolo de comunicação usado entre todas as máquinas em rede para encaminhamento dos dados. Tanto no Modelo TCP/IP, quanto no Modelo OSI, protocolo da internet IP está na camada intitulada camada de rede. Abaixo temos um resumo de seu papel nos modelos citados.
- O protocolo IP faz parte da camada Internet da sequência de protocolos TCP/IP. Permite a elaboração e o transporte dos datagramas IP (hoje em dia, os pacotes de dados), sem contudo assegurar a “entrega”. Na realidade, o protocolo IP trata os datagramas IP independentemente uns dos outros, definindo a sua representação, o seu encaminhamento e a sua expedição.
- Escutamos muito sobre sua funcionalidade, até mesmo para georreferencia, localização e rastreamento. Vamos explicar de forma simples como o protocolo IP consegue organizar e gerenciar os pacotes de dados, e como o mesmo permite visualizar sua localização.
(PARA UM MELHOR ENTENDIMENTO DO CONTEÚDO, AS PALAVRAS MAIÚSCULAS EM ITALICO POSSUEM SEU SIGNIFICADO E CONCEITO NO FIM DESTE ARTIGO)
Funcionamento
- Numa rede IP, os dados são enviados em blocos de ficheiros. Em particular, no IP nenhuma definição é necessária antes do nó tentar enviar ficheiros para um nó com o qual não comunicou previamente. O IP oferece um serviço de DATAGRAMASnão confiável ou seja, o pacote vem quase sem garantias. O pacote pode chegar desordenado, também podem chegar duplicados, ou podem ser perdidos por inteiro. Se a aplicação requer maior confiabilidade, esta é adicionada na CAMADA DE TRANSPORTE.
- Os ''ROTEADORES'' são usados para reencaminhar datagramas IP através das redes interconectadas na segunda camada. A falta de qualquer garantia de entrega significa que o desenho da troca de pacotes é feito de forma mais simplificada. O IP é o elemento comum encontrado na Internet pública dos dias de hoje. É descrito no RFC 791 da IETF,. Este documento descreve o protocolo da camada de rede mais popular e atualmente em uso. Esta versão do protocolo é designada de versão 4, ou IPv4. O IPv6 tem endereçamento de origem e destino de 128 bits, oferecendo mais endereçamentos que os 32 bits do IPv4.
Formato do Cabeçalho
(Formatos focados em IPV4).
- Versão – Este é o primeiro campo do cabeçalho de um datagrama IPv4 com quatro bits.
- Tamanho do cabeçalho (IHL) - o segundo campo, de quatro bits, é o IHL (Internet Header Length), com o número de palavras de 32 bits no cabeçalho IPv4. Como o cabeçalho IPv4 pode conter um número variável de opções, este campo essencialmente especifica o OFFSET para a porção de dados de um datagrama IPv4. Um cabeçalho mínimo tem vinte bytes de comprimento, logo o valor mínimo em decimal no campo IHL seria cinco.
- Tipo de serviço (ToS) - Trata-se de um campo no cabeçalho IPv4 originalmente e tem sido definida de diferentes maneiras pelas normas RFC 791,RFC 1122, RFC 1349, RFC 2474 e RFC 3168, hoje definido pelas normas RFC 2474 como DiffServ combinando o IPv6, é utilizando para diferenciar o tipo do pacote a ser transportado, classificando-o para que possa ter prioridade em sua transmissão. Seu campo contém 8 bits sendo utilizado 6 bits para os serviços diferenciados, e 2 bits para o controle de alertas para congestionamento (ECN). Mesmo com as mudanças que o ToS vem passando ao longo do tempo hoje se tornado o DiffServ algumas de suas peculiaridades ainda são mantidas devido a compatibilidade de versões anteriores.
- Comprimento (pacote) - o campo de 16 bits seguinte do IPv4 define todo o tamanho do datagrama, incluindo cabeçalho e dados, em 8 bits. O datagrama de tamanho mínimo é de 20 bytes e o máximo é 64 Kb. O tamanho máximo do datagrama que qualquer nó requer para estar apto para manusear são 576 bytes, mas os nós mais modernos manuseiam pacotes bem maiores. Por vezes, as subredes impõem restrições no tamanho, em cada caso os datagramas têm que ser "fragmentados". A fragmentação é manuseada quer no nó quer no comutador de pacotes no IPv4, e apenas no nó, no caso do IPv6.
- Identificador - o campo seguinte de 16 bits é um campo de identificação. Este campo é usado principalmente para identificar fragmentos do datagrama IP original. Alguns trabalhos experimentais sugerem usar o campo IP para outros propósitos, tais como adicionar pacotes para levar a informação para o datagrama, de forma que ajude a pesquisar datagramas para trás com endereços fonte falsificados.
- Flags - o campo de 3 bits é usado para controlar ou identificar fragmentos.
- Offset - o campo offset do fragmento tem 13 bits, e permite que um receptor determine o local de um fragmento em particular no datagrama IP original.
- Tempo de vida (TTL) - um campo de oito bits, o TTL ajuda a prevenir que os datagramas persistam numa rede. Historicamente, o campo TTL limita a vida de um datagrama em segundos, mas tornou-se num campo de contagem de nós caminhados. Cada comutador de pacotes que um datagrama atravessa decrementa o campo TTL em um valor. Quando o campo TTL chega a zero, o pacote não é seguido por um comutador de pacotes e é descartado.
- Protocolo - um campo de protocolo de 8 bits, definindo o protocolo seguinte usado numa porção de dados de um datagrama IP. A Internet Assigned Numbers Authority mantém uma lista de números de protocolos. Os protocolos comuns e os seus valores decimais incluem o ICMP (1), o TCP (6).
- Checksum - Campo de verificação para o cabeçalho do datagrama IPv4. Um pacote em trânsito é alterado por cada comutador que atravesse. Um desses comutadores pode comprometer o pacote, e a verificação é uma forma simples de detectar a consistência do cabeçalho. Este valor é ajustado ao longo do caminho e verificado a cada novo nó.
- Endereço de origem/Endereço de destino - Campo de verificação de endereço de origem e de destino, de 32 bits cada um. Os endereços IPv6 de origem e destino são de 128 bits cada.
- Opções - Campos do cabeçalho adicionais podem seguir o campo do endereço de destino, mas estes não são normalmente usados. Os campos de opção podem ser seguidos de um campo de caminho que assegura que os dados do utilizador são alinhados numa fronteira de palavras de 32 bits. Veja três exemplos de opções que são implementadas e aceitas na maioria dos roteadores:
• Security : especifica o nível de segurança do datagrama, usado em aplicações militares. • Timestamp: Faz com que cada roteador anexe seu endereço e sua marca temporal (32 bits), que serve para depuração de algoritmos de roteamento. • Record route : faz com que cada roteador anexe seu endereço.
Comutação
1. Basicamente, comutação significa troca, permuta, substituição, transformação, transmutação, metamorfose, alteração.
A comutação refere-se à alocação dos recursos da rede para a transmissão pelos diversos dispositivos conectados.
Tipos de Comutação: Comutação de Circuitos, Comutação de Mensagens, Comutação de Pacotes.
- Comutação de Circuitos: antes de ser enviada qualquer informação, procede-se ao estabelecimento duma ligação "física" ponta a ponta entre os terminais que pretendem comunicar. Estabelece-se um "caminho físico " dedicado.
> Vantagens: – Garantia de recursos; – Disputa pelo acesso somente na fase de conexão; – Não há processamento nos nós intermediários (menor tempo de transferência); – Controle nas extremidades. > Desvantagens: – Desperdício de banda durante períodos de silêncio (problema para transmissão de dados) – Sem correção de erros – Probabilidade de bloqueio (Circuitos ocupados em um instante).
- Comutação de Mensagens: Não é estabelecido nenhum caminho físico dedicado entre o emissor e o receptor; As mensagens são armazenadas nos nós para posterior reenvio. As mensagens só seguem para o nó seguinte após terem sido integralmente recebidas do nó anterior.
> Vantagens: – Maior aproveitamento das linhas de comunicação – Uso otimizado do meio. > Desvantagens: – Aumento do tempo de transferência das mensagens.
- Comutação de Pacotes: Não há estabelecimento de nenhum caminho físico dedicado entre o emissor e o receptor; Assemelha-se a comutação de mensagens, contudo as informações a serem enviadas são quebradas em pacotes; Cada pacote contém um cabeçalho com informação que permite o seu encaminhamento pela rede;
Os pacotes são comutados individualmente e enviados de nó para nó entre a origem e o destino. Pacotes pertencentes a mesma mensagem podem seguir caminhos diferentes até chegar ao destino. O enlace de ligação entre dois nós consecutivos é agora compartilhado por pacotes de outras proveniências e com outros destinos. > Vantagens: – Uso otimizado do meio – Ideal para dados – Erros recuperados no enlace onde ocorreram – Dividir uma mensagem em pacotes e transmiti -los simultaneamente reduz o atraso de transmissão total da mensagem. > Desvantagens: – Sem garantias de banda, atraso e variação do atraso (jitter) - Por poder usar diferentes caminhos, atrasos podem ser diferentes. Ruim para algumas aplicações tipo voz e vídeo – Overhead de cabeçalho – Disputa nó-a-nó – Atrasos de enfileiramento e de processamento a cada nó.
> Pode ainda ser efetuada de duas formas distintas: CIRCUITO VIRTUAL e DATAGRAMA;
DATAGRAMAS: Cada pacote tem um tratamento independente, sem qualquer ligação com o tratamento dado nos nós aos pacotes anteriores. Assim os pacotes , devidamente numerados com número de sequência pelo emissor, transportam sempre consigo informação relativa ao endereço do destinatário e do remetente da mensagem.
CIRCUITO VIRTUAL: É definida uma rota ou caminho (Circuito Virtual) para os pacotes, através dos vários nós intermédios até ao destino final.
Limitações
Endereçamento
Referências bibliográficas
----------------------------------------------------------------------------------------------------
Proxy
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese das pesquisas que fizer.
Conceito
Proxy é o termo utilizado para definir os intermediários entre o usuário e seu servidor. E por isso desempenha a função de conexão do computador (local) à rede externa (Internet). Como os endereços locais do computador não são válidos para acessos externos, cabe ao proxy enviar a solicitação do endereço local para o servidor, traduzindo e repassando-a para o seu computador.
Vantagens
O proxy permite o compartilhamento da conexão com a Internet quando existe apenas um IP disponível (o proxy é o único realmente conectado à Web, os outros PCs acessam através dele); melhora o desempenho do acesso através de um cache de páginas, pois armazena as páginas e arquivos mais acessados, quando alguém solicitar uma das páginas já armazenadas do cache, esta será automaticamente transmitida, sem necessidade de baixa-la novamente; ajuda a melhorar a segurança porque filtra alguns tipos de conteúdo da Web e softwares mal-intencionados e protege o IP do computador.
Exemplos de proxy
Além do já citado, existem outros tipos de proxies, como os web proxies, que são uma versão que esconde o seu IP real e lhe permite navegar anonimamente. Muitos deles são utilizados em redes fechadas como universidades e ambientes de trabalho para burlar uma determinação de bloqueio a alguns sites da internet;
As redes proxy, que são baseadas em códigos criptados que permitem a comunicação anônima entre os usuários. Exemplo deste tipo de rede são as conexões P2P (peer to peer) em que um usuário se conecta ao outro sem saber sua identidade e trocam arquivos entre si;
E as s conexões abertas de proxy (open proxy), que são o tipo mais perigoso e convidativo aos crackers e usuários mal intencionados. Quando um destes usuários consegue acessar um computador, instala um servidor proxy nele para que possa entrar quando quiser na máquina e promover diversos tipos de ilegalidade como scripts que roubam senhas de bancos, fraudes envolvendo cartões de crédito e uma grande variedade de atos ilegais.
Cache
Cache é o termo utilizado para uma área de armazenamento onde dados ou processos freqüentemente utilizados são guardados para um acesso futuro mais rápido, poupando tempo e uso desnecessário do seu hardware.
Proxy HTTP
Um proxy HTTP permite por exemplo que o cliente requisite um documento na World Wide Web e o proxy procura pelo documento na sua caixa (cache). Se encontrado, a requisição é atendida e o documento é retornado imediatamente. Caso contrário, o proxy busca o documento no servidor remoto, entrega-o ao cliente e salva uma cópia em seu cache. Isto permite uma diminuição na latência, já que o servidor proxy, e não o servidor original, é requisitado, proporcionando ainda uma redução do uso da banda.
Proxy reverso
O Proxy Reverso, como o próprio nome diz, atua ao contrário do Proxy. Enquanto um Proxy, no modelo convencional, intercepta requisições originadas na rede local (LAN – Local Área Network) com destino à Internet, um Proxy Reverso intercepta requisições originadas na Internet com destino à rede local.
Referências bibliográficas
http://alfredosabo.blogspot.com.br/
wikipedia
http://windows.microsoft.com/
http://www.diegomacedo.com.br/
----------------------------------------------------------------------------------------------------
API
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese das pesquisas que fizer.
Conceito
Antes de tudo, deve-se ter em mente que uma interface lógica é uma "interface" que permite que haja uma comunicação entre dois sistemas. Uma API é um recurso de um sistema que permite que esse se comunique com outro sistema. É possível citar vários exemplos de api's, visto que atualmente a grande maioria dos sistemas "conversam" com outros sistemas. Por exemplo, quando um aplicativo permite que o usuário se autentique nele através do facebook, isso ocorre graças à uma api que permite que o aplicativo solicite as informações necessárias para o sistema do facebook e o facebook as envia, possibilitando o usuário autenticar-se no sistema sem necessariamente se cadastrar nele em si. Outro bom exemplo é quando o usuário está em um site de turismo ou em alguma outra aplicação que disponibiliza mapas. Esses mapas, quase sempre, são fornecidos pelo Google Maps, através de um api entre os sistemas.
Concluindo, API's são padrões feitos pelos programadores dos respectivos softwares para que outros softwares possam utilizar alguns serviços, sem precisar implantar tal funcionalidade no próprio software. É como se um software pedisse uma aplicação "emprestada" para outro software.
Funcionamento
O funcionamento de uma api web é basicamente um conjunto de requisições e respostas HTTP, que geralmente estão no formato XML ou JSON. O modelo de arquitetura mais adotado hoje é o chamado REST(Representational State Transfer).
A aplicação que deseja utilizar um serviço de outra, estabelece uma comunicação com tal aplicação e realiza uma requisição(escrita em XML ou JSON), que vai ser analizada pela outra aplicação, que vai dar uma resposta para a aplicação inicial, enviando dados ou informações requisitadas ou negando a requisição.
Protocolos
Protocolo é uma convenção que possibilita e governa a comunicação entre dois sistemas. Ele pode ser implementado por hardware, software ou pelos dois.
Alguns Exemplos de protocolos são TCP/IP, DHCP, TCP, entre outros. Porém, o protocolo mais importante quando se fala em API web é o protocolo HTTP(Hypertext Transfer Protocol), pois esse é o fator mais importante para a comunicação de dados na World Wide Web(WWW).
Vantagens
As API's levam vantagem quando comparadas a outros tipos de comunicação. Por exemplo, quando comparada à web services, pode-se até mesmo considerar que todo web service é uma api, porém não é toda api que é um web service. Primeiro pois web services servem apenas para comunicação web, enquanto os api's podem ser utilizados para comunicação local e até mesmo apenas dentro de um sistema operacional. E também as web services usam apenas 3 meios de comunicação: SOAP, REST e XML-RPC, enquanto as api's podem utilizar qualquer meio.
XML e JSON
XML(ou extensible markup language) e JSON são formatos para representar dados em uma web api, onde XML é um formato mais trabalhoso e bem estruturado e, por isso, leva vantagem em cima do JSON quando se trata de transportar grande carga. Porém, se a carga for pequena, o JSON se torna mais eficaz por ser um formato mais simples e menos.
Exemplo de "código" em XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<receita nome="pão" tempo_de_preparo="5 minutos" tempo_de_cozimento="1 hora">
<titulo>Pão simples</titulo> <ingredientes> <ingrediente quantidade="3" unidade="xícaras">Farinha</ingrediente> <ingrediente quantidade="7" unidade="gramas">Fermento</ingrediente> <ingrediente quantidade="1.5" unidade="xícaras" estado="morna">Água</ingrediente> <ingrediente quantidade="1" unidade="colheres de chá">Sal</ingrediente> </ingredientes> <instrucoes> <passo>Misture todos os ingredientes, e dissolva bem.</passo> <passo>Cubra com um pano e deixe por uma hora em um local morno.</passo> <passo>Misture novamente, coloque numa bandeja e asse num forno.</passo> </instrucoes>
</receita>
Exemplo de "código" em JSON:
{ "Alunos" : [
{ "nome": "João", "notas": [ 8, 9, 7 ] },
{ "nome": "Maria", "notas": [ 8, 10, 7 ] },
{ "nome": "Pedro", "notas": [ 10, 10, 9 ] }
]
}
Exemplos de código
Modelo de código para logar no app com o facebook(em PHP):
<?php session_start(); if($_SERVER['REQUEST_METHOD'] == 'GET' && isset($_GET['code'])){
// Informe o seu App ID abaixo
$appId = '29048572934875';
// Digite o App Secret do seu aplicativo abaixo:
$appSecret = '123456789';
// Url informada no campo "Site URL"
$redirectUri = urlencode('http://fb.matheusafonso.com/');
// Obtém o código da query string
$code = $_GET['code'];
// Monta a url para obter o token de acesso e assim obter os dados do usuário
$token_url = "https://graph.facebook.com/oauth/access_token?"
. "client_id=" . $appId . "&redirect_uri=" . $redirectUri
. "&client_secret=" . $appSecret . "&code=" . $code;
//pega os dados
$response = @file_get_contents($token_url);
if($response){
$params = null;
parse_str($response, $params);
if(isset($params['access_token']) && $params['access_token']){
$graph_url = "https://graph.facebook.com/me?access_token="
. $params['access_token'];
$user = json_decode(file_get_contents($graph_url));
// nesse IF verificamos se veio os dados corretamente
if(isset($user->email) && $user->email){
/*
*Apartir daqui, você já tem acesso aos dados usuario, podendo armazená-los
*em sessão, cookie ou já pode inserir em seu banco de dados para efetuar
*autenticação.
*No meu caso, solicitei todos os dados abaixo e guardei em sessões.
*/
$_SESSION['email'] = $user->email;
$_SESSION['nome'] = $user->name;
$_SESSION['localizacao'] = $user->location->name;
$_SESSION['uid_facebook'] = $user->id;
$_SESSION['user_facebook'] = $user->username;
$_SESSION['link_facebook'] = $user->link;
}
}else{
echo "Erro de conexão com Facebook";
exit(0);
}
}else{
echo "Erro de conexão com Facebook";
exit(0);
}
}else if($_SERVER['REQUEST_METHOD'] == 'GET' && isset($_GET['error'])){
echo 'Permissão não concedida';
}
?>
Referências bibliográficas
http://canaltech.com.br/o-que-e/software/o-que-e-api/
http://www.tecmundo.com.br/programacao/1807-o-que-e-api-.htm
https://pt.wikipedia.org/wiki/Interface_de_programa%C3%A7%C3%A3o_de_aplica%C3%A7%C3%B5es
http://www.devmedia.com.br/application-programming-interface-desenvolvendo-apis-de-software/30548
https://en.wikipedia.org/wiki/Application_programming_interface
https://pt.wikipedia.org/wiki/Protocolo_(ci%C3%AAncia_da_computa%C3%A7%C3%A3o)
https://pt.wikipedia.org/wiki/World_Wide_Web
https://pt.wikipedia.org/wiki/Hypertext_Transfer_Protocol
http://sensedia.com/blog/apis/o-que-sao-apis-parte-2-como-uma-api-funciona/
https://fxcosta.wordpress.com/2015/05/31/diferenca-entre-api-e-web-service-de-maneira-simples/
http://phpsp.org.br/web-apis-xml-ou-json/
https://pt.wikipedia.org/wiki/XML
https://pt.wikipedia.org/wiki/JSON
----------------------------------------------------------------------------------------------------
SO Android
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese das pesquisas que fizer.
Conceito
O intenso aumento do uso de celulares e smartphones em todo o mundo, juntamente com a necessidade de encontrar nesses dispositivos mecanismos que facilitassem o dia a dia do usuário tornaram possível o desenvolvimento de Sistemas Operacionais, como o Android. Plataforma móvel mais popular no mundo é gerida pelo Google juntamente com a Open Handset Alliance (OHA), aliança formada por desenvolvedores, fabricantes e operadores de dispositivos móveis. O Android é open source, ou seja, possui um código aberto baseado no sistema Linux, que permite uma ampla possibilidade de interação e personificações. Atualmente essa plataforma se expandiu também para outros dispositivos, além da versão do sistema para smartphones, há outras para tablets, televisores, automóveis e até smartwatches.
Características
- - O Sistema Operacional Android tem como código fonte um código aberto.
- - Seu Kernel (ou núcleo) é o Linux. Uma versão modificada, voltada para dispositivos móveis.
- - O sistema já vem com aplicações previamente instaladas, desenvolvidas pelo Google, como o Google Maps, Gmail, Google+, Youtube, Google Play Store, Google Drive, dentre outras, além dos aplicativos desenvolvidos pelo fabricante do dispositivo.
- - Disponibiliza um Kit de desenvolvimento Java, denominado Android SDK, que permite a criação de diversos aplicativos e a implementação destes no Google Play Store.
- - No quesito Mensagens, está disponível nas formas SMS e MMS.
- - Suporte para a integração com hardwares como câmeras e GPS.
- - Seu armazenamento é em SQLite (uma espécie de banco de dados).
- - Possui suporte a gráficos 2D e bibliotecas gráficas 3D baseada em OpenGLES, recurso de diminui a incompatibilidade entre as versões.
- - Na camada da arquitetura denominada Framework, se encontra os programas responsáveis por rodar as funções básicas do telefone. Onde há a integração de uma aplicação com outras, trocando informações. Camada responsável por determinar o início de término da execução de uma aplicação. Encontra-se nela outras funções como o gerenciamento do WIFI, Bluetooth, USB, Sensor e Location.
Developer
Famoso por suas diversas fragmentações, as quais de forma inusitada foram denominadas com nomes de sobremesas, desde sua criação já foram desenvolvidas muitas versões do Android, que trouxeram consigo muitas inovações tecnológicas, a modernização da interface e da operação. Entretanto a rápida atualização de versões do sistema acarretam em uma obsolescência dos dispositivos, os quais vão se tornando cada vez mais ultrapassados. Além de que com a inovação de aplicações e a expansão de recursos resultam na precisão de novos aparelhos com hardwares mais tecnológicos.
- Dentre estas fragmentações, estão:
- Android 1.5 (Cupcake): Lançada em 2009, a versão mais ultrapassada do Android já não é usada em nenhum dispositivo atualmente. Em sua versão, trouxe consigo a aplicação de widgets na tela inicial e a visualização de vídeos no Youtube.
- Android 1.6 (Donut):Também lançada em 2009, a versão 1.6 trouxe suporte a uma melhor resolução em telas de diferentes resoluções.
- Android 2.0 (Eclair): Primeira versão com o GPS do aplicativo GoogleMaps.
- Android 2.2 (Froyo): Versão com a operação consideravelmente mais rápida e com o ponto de aceso WIFI a parte do uso de dados 3G.
- Android 2.3 (Gingerbread): Lançado com o aparelho móvel Googlephone, o Nexus S, com uma interface mais bem acabada e interação a novos sensores.
- Android 3.0 (Honeycomb): Versão ultilizada em tablets, aparelhos que possuem especificações diferentes dos smarthphones, trouxe um design diferenciado, próprio para tablets.
- Android 4.0 (Ice Cream Sandwich): Versão utilizada tanto em smathphones, quanto em tablets, possibilitou o destravamento de tela por reconhecimento facial.
- Android 4.1 (Jelly Bean):Lançado com o Nexus 4, trouxe novas funcionalidade como a possibilidade de gerenciar e executar aplicativos direto pela tela de bloqueio.
- Android 4.4 (Kitkat):Lançado em 2013, com um desenvolvimento mais flexível e um maior reforço na segurança.
- Android 5.0 (Lollipop): Lançada em 2014 com integração com o usuário baseado em gestos, com a facilidade de se ver notificações sem executar o desbloqueio de tela do aparelho, além de que essa versão permite a integração com a versão do sistema para automóveis, o AndroidAuto.
- Android 6.0 (Marshmallow): Lançado em 2015, a última versão lançada, com o recurso de melhor otimização e economia da bateria, além de uma maior segurança e privacidade em aplicativos.
Exemplo de código
- O código do Sistema Operacional Android é open source, que por ser baseado na versão 2.6 do Linux, e traz em código diversas características da plataforma Linux, parte importante dessa unificação é o de controle de processos, gerenciamento de memória e a segurança de arquivos.
- As bibliotecas do SI Android trazem consigo um conjunto que são desenvolvidos em C/C++, usadas em diversos níveis e funções do sistema.
- Já para de desenvolvimento de aplicações é utilizado o código na linguagem Java.
SDKs
O Kit de desenvolvimento conhecido também como SDK, permite que qualquer usuário possa desenvolver de forma gratuita e personificar aplicativos para a plataforma. Para o desenvolvimento, em linguagem Java, o Kit já possui todas as ferramentas necessárias, como o emulator, além de ser possível desenvolvê-los em outros sistemas operacionais de computadores (Windows XP, Vista, Windows 7, Mac OS X, e o Linux) e em diversos ambientes de desenvolvimento (Eclipse, JDK 6), opções que ficam a escolha do desenvolvedor.
Após instalar o Kit de desenvolvimento, o usuário possuirá um emulator que fará uma simulação do aparelho móvel. O SDK permite também a interação com outras aplicações por meio da instalação conjunta com o Eclipse (ambiente de desenvolvimento) e o plugin ADT.
* Para a montagem do ambiente: - é necessário fazer o download e descompactar o SDK;
- instalar o plugin ADT e adicionar o software Eclipse;
- instalar os pacotes; e
- criar uma máquina virtual;
Para que uma nova aplicação criada seja executável ela deve passar pelo programa de compatibilidade que garantirá a possibilidade de serem usados em dispositivos com diferentes versões do Android. Pois somente as aplicações compatíveis poderão ser implementadas na loja Google Play.
Dispositivos onde é usado
O Sistema Operacional Android é usado principalmente em dispositivos móveis, como os smarthphones. Mas além desses o sistema possui outras versões, as quais abrangem outros tipos de dispositivos, como tablets, televisores, Smartwatches e automóveis.
- São essas versões:
- -Android Wear: Versão desenhada para atender dispositivos Smartwatches, que são relógios de pulso computadorizados, com funções semelhantes a dos smarthphones, possuem a capacidade de rodar aplicativos dos mais variados, além de possuir funcionalidades como o acompanhamento do controle físico em atividades físicas.
- -Android Auto: Versão criada para carros, ao conectar um smathphone Android na versão 5.0 Lollipop (ou superior) ao carro, o painel roda todas as aplicações que lhe são compatíveis, como o Google Maps que instruirá diferentes rotas ao motorista, o Google Play Music, além de ser possível realizar chamadas, possuir comando de voz e executar muitos outros aplicativos, escolhidos como favoritos pelo motorista.
- -Android TV: Desenvolvido para smart TVs que já contenham o Android TV integrado, o sistema disponibiliza acesso a diversos aplicativos de áudio, vídeo e games, como o Youtube, Netflix, Google Play Movies & TV.
Referências bibliográficas
- Google Acadêmico:
- https://books.google.com.br/books?hl=pt-BR&lr=&id=NrVUAwAAQBAJ&oi=fnd&pg=PA21&dq=sistema+operacional+android+codigo&ots=QaRyCgTh2x&sig=8C1XekxRp7mbV6UhUle5lAkgvCw#v=onepage&q=sistema%20operacional%20android%20codigo&f=false (Acesso em: 13/04/2016).
- https://books.google.com.br/books?hl=pt-BR&lr=&id=8u9wJowXfdUC&oi=fnd&pg=PA1&dq=sistema+operacional+android&ots=LTig-80rs1&sig=RSiPbWn3BQwbr2uuBWxrohoJvsE#v=onepage&q=sistema%20operacional%20android&f=false (Acesso em: 13/04/2016).
- http://www.inf.unioeste.br/~tcc/2012/TCC_Andre.pdf (Acesso em: 16/04/2016)
- https://www.android.com/intl/pt-BR_br/ (Acesso em: 13/04/2016).
- https://www.android.com/intl/pt-BR_br/wear/ (Acesso em: 13/04/2016).
- https://www.android.com/intl/pt-BR_br/tv/ (Acesso em: 13/04/2016).
- https://www.android.com/intl/pt-BR_br/auto/ (Acesso em: 13/04/2016).
- https://www.android.com/intl/pt-BR_br/phones/ (Acesso em: 13/04/2016).
- http://www.techtudo.com.br/noticias/noticia/2015/10/a-evolucao-do-android-do-cupcake-ao-marshmallow-conheca-todas-as-versoes.html (Acesso em: 16/04/2016).
----------------------------------------------------------------------------------------------------
Cloud Computing
Cloud Computing
- Parte do artigo "A COMPUTAÇÃO AGORA É NAS NUVENS"
O termo “Cloud computing” tem se tornado popular e está associado à utilização da rede mundial de computadores com uso massivo de servidores físicos ou virtuais – uma nuvem – para a alocação de um ambiente de computação (HAYES, 2009; SEGALIN, 2009).
Segundo Mcafee (2006), em termos gerais, a Web 2.0 tem, nos últimos anos,fortalecido a idéia da utilização de serviços por meio de um conjunto transparente de plataformas computacionais.
A alta velocidade de transmissão de dados possibilita que uma empresa possa acessar os necessários recursos computacionais, em tempo real, via uma rede integrada de aplicações, serviços e dispositivos, pela Internet e Web,independentemente de onde os recursos estejam e de quem os tem e mantém.
Pode-se dizer que a computação em nuvem, assim chamada, incorpora o paradigmad e Arquitetura Orientada a Serviço (Service Oriented Architecture – SOA), onde, segundo Mackenzie (2006), todas as funções de um sistema são vistas como serviços de software,independentes e autocontidos.
Giusti, et al (2008) destacam que SOA é um meio de desenvolvimento de sistemas distribuídos onde os componentes são serviços dedicados,utilizados a partir de provedores de serviços, com uso de protocolos padronizados.
Contudo, o conceito de Cloud vai mais além, está associado a outros conceitos como Software as a Service (SAAS), Plataform as a Service (PAAS) e Infrastructure as a Service(IAAS).
Introdução à Virtualização
Virtualização é uma estrutura ou metodologia de divisão dos recursos de um computador em múltiplos ambientes de execução.
As técnicas de virtualização criam múltiplas partições isoladas
- Máquinas Virtuais (Virtual Machines - VMs)
- Ambientes Virtuais (Virtual Environments - VEs)
- em um único servidor
Aprendendo um pouco mais ...
Software como Serviço (SAAS)
Um mesmo software pode ser utilizado por múltiplos usuários, sejam pessoas ou empresas.
Esse tipo de serviço é executado e disponibilizado por servidores em Data Centers de responsabilidade de uma empresa desenvolvedora, ou seja, o software é desenvolvido por uma empresa que ao invés de vendê-lo ou usá-lo para beneficio exclusivo, disponibiliza-o a um custo baixo a uma grande quantidade de usuários (AULBACH, 2009).
Plataforma como Serviço (PAAS)
Consiste na disponibilização de plataformas de desenvolvimento que facilitam a implantação de aplicações e o gerenciamento do hardware subjacente e das camadas de software.
Fornece todas as facilidades necessárias para suportar o ciclo de vida completo de construção e entrega de aplicações web, sem a necessidade de downloads e instalações de aplicativos para desenvolvedores, gerentes de TI e usuários finais.
Infraestrutura como Serviço (IAAS)
O termo original foi criado em março de 2006 pelo economista Nicholas Carr e chamava-se Hardware as a Service (HAAS), mas no final de 2006 ele começou a ser tratado pelas empresas como (IAAS) e hoje é como ele é mais conhecido.
Trata-se do fornecimento de infra-estrutura de informática, geralmente na forma de virtualização.
Este conceito, assim como os demais, faz parte de uma tendência onde recursos - neste caso a infraestrutura - são compartilhados. Segundo Cancian (2009), o cliente em vez de comprar servidores de alto desempenho, softwares complexos e equipamentos de rede pode adquirir esses recursos como um serviço totalmente terceirizado.
O serviço é taxado levando em consideração a utilidade computacional utilizada, ou seja o custo irá refletir o consumo específico de cada usuário, como os tradicionais serviços deágua, luz e telefone.
A indústria da computação é conhecida por criar jargões de curta vida útil, mas também por sofrer transformações profundas. Barros (2008) destaca que o conceito de Cloud, por englobar tanto serviços de hardware quanto software, ganha formas mais complexas do que vem se disseminando até aqui e impõe um desafio aos que se propõem a utilizá-lo: fazer com que todos estes recursos trabalhem de forma integrada.
Miller (2008) destaca que, por se tratar de um novo paradigma, existem muitas contradições. Entretanto, a maioria dos pesquisadores considera que essa nova abordagem deva proporcionar economia de escala, uma vez que possibilitará que usuários domésticos, a partir de um computador com capacidades reduzidas ou até mesmo um televisor de alta definição, possa utilizar serviços especializados, oferecidos por companhias.
Considerações
Os computadores pessoais convencionais, incluindo os notebooks, veem tendo uma acentuada queda nos últimos anos, pois o mercado caminha para o lado oposto das poderosas estações de trabalho, mas sim para o uso disseminado de dispositivos móveis e televisões digitais de alta definição conectadas a Internet.
Essa reviravolta no modelo tradicional de computação pode ser comparada com o advento das redes públicas de eletricidade. Durante um breve período da Revolução Industrial, as grandes companhias tinham de gerar sua própria energia elétrica, mesmo que essa não fosse sua atividade-fim.
Graças a um conjunto de inovações no final do século 19, porém, tudo mudou de forma radical. Linhas de transmissão permitiram separar a geração e o uso da eletricidade. "O que aconteceu com a geração de energia há um século agora acontece com o processamento de informações" (REESE, 2009).
Os sistemas privados, montados e operados individualmente por empresas, estãosendo suplantados por serviços fornecidos sobre uma rede comum. A computação está virando um serviço e as equações econômicas que determinam a maneira como a sociedade vive estão sendo reescritas.
A Google tomou a dianteira na revolucao dos notebooks agora criando o que para muitos é conhecido como o PC da era pós-PC. Trata-se do Cr-48, que não é nada mais nada menos do que um notebook que possui apenas abas do navegador da google o Chrome e dotado também de uma conexão 3G imbutida além do modem wi-fi. A proposta é simples, o sistema do notebook se baseia totalmente no conceito da Cloud Computing, uma vez que para operar o aparelho o usuário precisa se identificar com um nome de usuário e uma senha de sua conta Google, podendo navegar livremente pela Internet através do Chrome e acessar todos os sites assim como baixar aplicativos que ficam visíveis quando se abre uma nova aba no navegador. O notebook é uma opcao para computadores compartilhados por várias pessoas porque os arquivos não são instalados nas máquinas. Ficam online vinculados as contas Google.
Segue abaixo o link oficial do produto: http://www.google.com/chromeos/pilot-program-cr48.html
Autor
- NOGUEIRA, Matheus Cadori1; PEZZI, Daniel da Cunha2 mcadori@unicruz.edu.br; dpezzi@unicruz.edu.br
----------------------------------------------------------------------------------------------------
Técnica de Criptografia
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese das pesquisas que fizer.
Conceito
Técnicas ou tipos
Algoritmos
Chaves
Autenticação
Esteganografia
Referências bibliográficas
----------------------------------------------------------------------------------------------------
Tecnologia IoT
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese das pesquisas que fizer.
Conceito
A Internet das Coisas (do inglês, Internet of Things – IoT) é um paradigma que preconiza um mundo de objetos físicos embarcados com sensores e atuadores, conectados por redes sem fio e que se comunicam usando a Internet, moldando uma rede de objetos inteligentes capazes de realizar variados processamentos, registrar variáveis ambientais e reagir a estímulos externos. Esses objetos interconectam-se entre si e com outros recursos (físicos ou virtuais) e podem ser controlados através da internet.
Funcionamento
Em breve, nossos carros, nossas casas, nossos principais aparelhos domésticos e até mesmo as ruas de nossa cidade estarão conectados à internet. Composta por milhões de sensores e dispositivos que geram fluxos incessantes de dados, a IoT pode ser usada para melhorar nossas vidas e as vidas de nossas empresas em muitos aspectos, mas como ela funciona?
A internet das coisas é composta por três componentes principais:
- As coisas ou recursos embarcados com sensores;
- As redes de comunicação que as conectam;
- Os sistemas de computação, que usam dados que fluem da internet para nossas coisas.
Para ligar os objetos e aparelhos do dia-a-dia a grandes bases de dados e à Internet, é necessário um sistema eficiente de identificação, só dessa forma se torna possível colher e registrar os dados sobre cada uma das coisas. A identificação por radiofrequência oferece essa funcionalidade. O registro de dados beneficiará da capacidade de detectar mudanças na qualidade física das coisas usando a tecnologia dos sensores. A inteligência própria de cada objeto aumenta o poder da rede de devolver a informação processada para diferentes pontos. Finalmente, os avanços ao nível da miniaturização e da nanotecnologia significam que cada vez mais pequenos objetos terão a capacidade de interagir e se conectar. A combinação destes passos criará uma Internet das Coisas, que conecta os objetos do mundo de um modo sensorial e inteligente.
OBS:
- Identificação por radiofrequência é um método de identificação automática através de sinais de rádio, que recupera e armazena dados remotamente por meio de dispositivos denominados etiquetas RFID.
Tecnologias
Já é possível encontrar no mercado empresas que estão trabalhando em seus próprios sistemas de internet das coisas, utilizando esses sistemas para melhorar suas operações internas, ou desenvolvendo e testando produtos com sistemas de IoT.
- A Samsung, por exemplo, já lançou geladeiras inteligentes com tela LCD capazes de reproduzir a tela do smartphone do usuário no refrigerador. Com isso, o usuário pode reproduzir vídeos e músicas, consultar a previsão do tempo e até mesmo fazer compras online enquanto verifica na geladeira os itens que precisam ser comprados.
- A Nike e a Apple desenvolveram um sensor para ser colocado embaixo da palmilha do tênis. Usando o smartphone ou iPod, o corredor pode definir a distância que pretende correr, quantas calorias deseja perder, o seu trajeto e até mesmo uma lista de músicas para ouvir durante o seu exercício. Ao finalizar esta atividade, todas as informações são enviadas automaticamente para um site, onde é possível acompanhar o histórico de corridas, a evolução e até dividir resultados com outros corredores conectados.
- Com o Windows 10 IoT, a Microsoft também vem investindo na Internet das coisas. O Windows 10 IoT será capaz de alimentar uma variada gama de objetos inteligentes e conectados, desde pequenos dispositivos, como gateways, até pontos de venda móveis e dispositivos poderosos da indústria, como robôs e dispositivos médicos de especialidade.
Aplicações
A IoT pode ser aplicada nos seguintes itens:
- Serviços
Controles de estoques via RFID (etiqueta de identificação por radiofrequência), acionamento de lâmpadas públicas, lata de lixo pública que compacta o lixo conforme necessário e emite alertas aos funcionários da prefeitura quando estiver cheia. Sistema que controle a temperatura dentro de sua casa, com base em suas preferências e nas condições meteorológicas existentes.
- Segurança
Sensores para automóveis, automação residencial, em objetos de uso pessoal como carteiras e relógios, dentre outros. Sistema de segurança para casas, que permite controlar remotamente suas portas e janelas.
- Saúde
Implantes de monitoramento cardíaco comunicam-se com a rede e podem ser controlados e verificados através de um aplicativo que recebe os dados. Monitoramento das atividades realizadas diariamente, através de pulseiras e/ou relógios inteligentes, equipados com sensores capazes de recolher dados do usuário (como batimentos cardíacos) e enviar diretamente para um aplicativo móvel, e se for da preferência do usuário, até para seu médico.
Estado da Arte
Atualmente, relógios inteligentes, estão ficando ainda mais inteligentes, com exteriores mais luxuosos e o lançamento, pela Casio, de uma versão para entusiasta de caminhadas e bicicletas. Carros, TVs e máquinas de lavar também evoluíram. Mas são os novos produtos que realmente estão dando o fôlego ao movimento da Internet das Coisas em 2016: testes de gravidez com bluetooth, TVs dobráveis, "fridge cams" (sim, uma câmera na geladeira para você poder ver o que tem lá pelo smartphone e comprar o que precisa antes de voltar para casa), robôs com projetores e um dispositivo para escanear a comida e analisar o valor nutritivo. Tudo isso e mais o fato de acrescentar o sobrenome "smart" a praticamente tudo, rondam o mundo em expansão da tecnologia IoT.
Vantagens
São vários os benefícios oferecidos pela Internet das Coisas, dentre eles podemos citar:
- Eficiências operacionais novas.
- Mais rapidez e assertividade na tomada de decisões.
- Inteligência de controle mais distribuída.
- Melhor utilização do tempo.
- Menor perda de tempo com tarefas cotidianas.
- Sensores de monitoramento de máquinas diagnosticam, e preveem problemas pendentes da manutenção.
- Sensores em residências e aeroportos, ou mesmo sapatos e portas, melhoram a segurança enviando sinais quando estão fora de uso por um período de tempo determinado, ou se eles forem usados na hora errada
Referências bibliográficas
- UFES – Paulo F. Pires, Flavia C. Delicato, Thais Batista, Thomaz Barros, Everton Cavalcante e Marcelo Pitanga – Capítulo 3 – Plataformas para Internet das Coisas – Introdução.
- MJV Blog - http://blog.mjv.com.br/ideias/como-a-internet-das-coisas-pode-evoluir-sua-empresa
- ABEMD - http://abemd.org.br/noticias/ces-preve-boom-da-internet-das-coisas-em-2016
- Plantec Distribuidora - http://www.plantecdistribuidora.com.br/entenda-a-internet-das-coisas/
- SAS - http://www.sas.com/pt_br/insights/big-data/internet-das-coisas.html
- Endeavor - https://endeavor.org.br/internet-das-coisas/
- Microsoft - https://news.microsoft.com/pt-br/windows-10-iot-impulsionando-a-internet-das-coisas/#sm.0001cux8hq19qex4ut527qcfv6gi2
- Wikipedia - Referências (The MIT Press - https://mitpress.mit.edu/books/internet-things e SAS)
----------------------------------------------------------------------------------------------------
Tecncologia M2M
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese das pesquisas que fizer.
Conceito
Machine-to-Machine (M2M) (em português máquina a máquina) refere-se a tecnologias que permitem tanto sistemas com fio quanto sem fio a se comunicarem com outros dispositivos que possuam a mesma habilidade. M2M usa um dispositivo (como um sensor ou medidor) para capturar um evento (como temperatura, nível de estoque, etc), que é enviado através de uma rede (sem fio, com fio ou híbrida) para uma aplicação (programa), que transforma o evento capturado em informação útil (por exemplo, itens que precisam ser rearmazenados ). Isto é obtido com o uso da telemetria, a linguagem que as máquinas usam para comunicar entre si. Tal comunicação foi originalmente obtida com uma rede remota de equipamentos transmitindo informação de volta para um centralizador a fim de ser analisada, podendo ser posteriormente roteada para um sistema computacional, por exemplo um computador pessoal.
Tecnologias
Além do uso da telemetria como princípio básico, a M2M se expandiu em termos de conexão, além da convencional conexão ponto-a-ponto ,mudaram para sistemas de rede que transmitem dados para equipamentos pessoais. A expansão das redes sem fio em todo o mundo tornou mais fácil o estabelecimento da comunicação M2M e reduziu a quantidade de energia e tempo necessários para transmitir informação entre equipamentos. Essas redes também abrem um leque de novas oportunidade de negócios e conectam os consumidores aos fabricantes em termos de disponibilidade de novos produtos.
Como já dito no conceito, nesse processo será necessário o uso de softwares específicos que analisem a informação obtida através do sensor, informação essa que será transmitida para equipamentos(móveis ou não).
Interfaces utilizadas
-->Interfaces com o software:
Todos os dados deverão ser "tratados" por um software, como a informação fornecida pelo é bastante específica, construir um software para cada tipo de informação é necessário.
Já existem hoje no mercado softwares de alta qualidade para algumas fenômenos:
CYBERFLEET(Software de monitoramento de pneus).
Site: http://www.autotrac.com.br/produtos/cyberfleet-telemetria-de-pneus. Que informações monitora: Pressão de enchimento; Temperatura de trabalho; Identificação de presença do pneu;
Benefícios:
Redução do consumo de combustível (a calibragem correta reduz a resistência ao rolamento, o que promove menor esforço para o motor); Aumento da vida útil do pneu (operando na pressão correta, os pneus apresentam melhor desempenho e consumo mais uniforme, sem desgaste exagerado concentrado em uma ou outra região); Otimização do tempo de manutenção do pneu, liberando sua frota para produzir (o monitoramento eletrônico dispensa o uso de medições manuais); Garantia de segurança patrimonial (ao monitorar a posição dos pneus, sua empresa é alertada de eventuais trocas ou remoções indevidas); Garantia de segurança operacional (sabendo o tempo todo das condições dos pneus, sua empresa pode evitar falhas e prevenir acidentes).
-->Interfaces Lógicas:
Como a comunicação é feita diretamente entre máquinas, atualmente alguns monitoramentos podem ser feitos em tempo real, os dados de um evento são transmitidos diretamente para o software de interpretação e assim imprimido em um dispositivo como um smartphone ou PC, que será usado como interface gráfica para manipulação dos dados.
Aplicações
A grande inovação dessa tecnologia, e também o principal motivo de tamanha popularidade atualmente é a sua versatilidade, através de um monitoramento quase instantâneo de eventos que acontecem a quilômetros de distância temos como aplicações:
--> Na conhecida Fórmula 1 todos os carros são monitorados segundo por segundo de uma corrida. Temperatura do motor, desgaste dos pneus, eficiência das asas, são algumas de várias informações recebidas pelos computadores dos engenheiros que ficam no pit stop e tomam decisões a fim de melhorar a performance do corredor.
--> Carretas que carregam cargas importantes são monitoradas via satélite e também possuem sensores de temperatura tanto do motor quanto do container de carga. além de outros sensores. Nas centrais de comando são analisadas as melhores rotas para os caminhoneiros, quando o caminhoneiro deve parar para revisão do veículo, evitando acidentes e atrasos na entrega.
Vantagens
As vantagens dessa tecnologia são inúmeras, mas como principais podemos citar:
- Maior velocidade na transmissão de informações importantes ;
- Na indústria automobilística : Maior acompanhamento das empresas na detecção e aperfeiçoamento de problemas em partes de automóveis;
- No Sistema de Tráfego : Diminuição do número de acidentes causados por falta de informações ao condutor;
- Diminuição do número de problemas que ocorrem em locais onde há uma grande concentração de pessoas.
Estado da Arte
Referências bibliográficas
"Machine-to-Machine (M2M) Communication Challenges Established (U)SIM Card Technology" - GD
"Machine to Machine (M2M) Technology in Demand Responsive Commercial Buildings"
"M2M: The Internet of 50 Billion Devices", WinWin Magazine, January 2010.
"Machine-to-Machine (M2M) Communications", MobileIN.
"How Machine-to-Machine Communication Works", HowStuffWorks.com
"When Machines Speak", InfoWorld.
"Cyberfleet" http://www.autotrac.com.br/produtos/cyberfleet-telemetria-de-pneus/
----------------------------------------------------------------------------------------------------
Android Developer
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese das pesquisas que fizer.
Conceito de Developer
Um developer no sentido de programação é, na tradução literal, um desenvolvedor de determinado sistema, linguagem ou código. Um developer tem como função gerenciar e criar todo o projeto ao qual ele é responsável. Normalmente esse desenvolvedor é especialista em determinada linguagem ou determinado tipo de sistema.
Android
O Android é um SO (Sistema Operacional) com funcionalidades voltadas para os dispositivos mobile. Atualmente se encontra entre os Sistemas operacionais mais utilizados em todo mundo, concorrendo com sistemas de grandes desenvolvedoras como a Microsoft (Windows Phone) e a Apple (IOS). Entre suas principais características se encontram:
-Handset Layouts -Conectividade -Mensagens -Browser -Suporte Java -Suporte Media -Suporte de Hardware -Market -Mensagens suporta tal como os outros dispositivos, SMS e MMS. -Browser o browser do Android é baseado num sistema open source Webkit. -Market é uma loja de aplicações que podem ser descarregadas directamente para o dispositivo e instaladas, sem ser preciso a utilização de um computador. Existem aplicações pagas, mas também gratuitas, maioritariamente. -Handset Layouts: esta plataforma adapta-se “ao grande”, VGA, bibliotecas de gráficos 2D e 3D, e layouts de smartphones tradicionais. -Conectividade o Android suporta tecnologias Bluetooth, GSM/EDGE, IDEN, CDMA, etc.. -Suporte Java as aplicações desta plataforma são feitos em Java. -Suporte Media
o Android suporta MPEG-4, MP3, MIDI, WAV, JPG, PNG, etc..
API
API (Application Programming Interface), são ferramentas utilizadas para estabelecer a comunicação entre diferentes softwares afim de que outros programas possam obter informações remotamente de um outro sistema. APIs são muito utilizados em redes sociais como Facebook, Twitter, etc, para que os visitantes de determinado site possam ter um link direto para a página do mesmo nessas redes sociais, facilitando assim o compartilhamento de informações e promoções do especificado site.
Requisitos de um App
Versão do Android
Hoje o Google está desenvolvendo a 20ª edição de sua API para Android, ainda é beta, para a próxima versão do Android 5.0, e ao meu ver esta tem com o principal foco os novos recursos de wearable (Tecnologia para Vestir) tanto é que é a primeira API dividida em duas partes: 20W e 20L, mas tudo isso ainda é apenas algo beta!
Quando se desenvolve aplicativos para Android, é necessário especificar o nível de compatibilidade, que hoje são 19 versões de API disponível, portanto criar aplicativos compatível com com as 19 versões é bem mais difícil pois há muita coisa que foi descontinuada entre as versões, e muito mais ainda novos recursos que surgiram, e para ajudar existem bibliotecas auxiliares de compatibilidade, mas que complicam também o desenvolvimento.
Na pratica desenvolver a partir da versão JELLY_BEAN (4.1) é mais fácil pois trata-se dos dispositivos Androids mais modernos e atuais lançados a partir de junho/2012, portanto qualquer projeto quanto mais específico for mais simples é de fazer.
Tamanho de tela
Outra variável muito importante é o tamanho da tela, pois a mesma versão de android pode rodar em um tablet, ou celular de tela grande ou pequeno, e ainda há o Google TV, ChromeCast, e ChromeBook, que também são outros tipos de dispositivos compatível, e nem sempre a proporção de tela é 4:3 ou 16:9, e o DPI muda muito.
Também durante a execução de um aplicativo, com a opção de rotacionar tela automaticamente, basta mudar a posição do aplicativo que tudo já muda, e criar layouts compatível com as duas formas de tela também não é fácil, por outro lado posição fixas de tela pode inviabilizar ou limitar o uso.
Em Tablets cabe muito mais informação em tela, mas em dispositivos menores não adianta só reduzir, se não nada ficará legível seja por causa do DPI, ou porque fica impossível de enxergar, ou fica difícil de tocar no item correto.
Um tela com 300 DPI significa 300 pixel a cada polegada, ou seja: (1/300)*25,4 milímetros = 0,0846 milímetros, isso é menor que a decima parte de 1 milímetro, não da quase par enxergar!
Há celulares com telas de 5” que tem a mesma resolução Full HD de TVs de 42”, ou seja, 1080 pixel de altura (varredura vertical), que fazendo as contastrigonometricamente em uma tela de de 5” com proporção de 16:9 temos
co=9, ca=16, tg=co/ca, tg=9/16=0,5625 arctang(0,5625) => a=0,5123 radianos portanto 5”*sen(a)=2,45” matemágica! use a calculadora virtual!
Ou o aplicativo Android Super Screen Specs Checker disponível no Google Play
Mas para simplificar o Google fez algo interessante, criou uma unidade de medidas especial chamada de “DP”, use a calculadora de conversão para entender melhor o funcionamento, e também padronizou tamanhos de tela de acordo com a densidade: small, normal, large, xlarge
Método de Entrada
Em geral, o mais simples e comum é aplicativo touch simples, com único toque. Mas para andoroid possível ter multi-toque, usando vários dedos em tela, ou usar caneta de precisa, teclado virtual ou físico, mouse… Cada tipo de possível suporte de interface tem suas particularidades
Interconectividade
O Básico hoje em dia é o acesso a internet para se conectar a banco de dados, webservices, consumir serviços em json, mas cada tipo de conexão tem seus protocolos e formatos próprios e necessitam de um bom conhecimento de rede.
Mas o aplicativo Android nunca pode fazer chamadas a internet pelo programa principal (MainThread), tem que sempre fazer de forma assíncrona, criando uma tarefa secundaria que irá executar em background, e ai começa a complicar, pois nada mais é síncrono, sequencial, e é necessário orquestrar várias tarefas, renderizar a tela, tudo de forma que uma tarefa não trave a outra, mas saiba esperar a outra acabar, sem contar os eventos do sistema operacional, além os outros aplicativos rodando em paralelo, e tudo sempre respeitando o ciclo de vida das Activity (Cada tela é chamada de uma Atividade) que pode parar, ou continuar a qualquer momento.
Há ainda outas forma de se conectar como o Bluetooth, USB, Serial, NFC, e cada um tem suas características únicas
Recursos de Hardware
Usar os sensores de posição, acelerômetro, Magnético, GPS, Temperatura, umidade no Ar, Barômetro, e por ai vai… de acordo com o modelo tem muita coisa que pode se usada.
Ler a câmera, trabalhar com vídeo, interagir com o hardware sempre requer muita experiência para não travar tudo pois são ações bem pesadas.
Emitir um sinal usando o infravermelho, sintonizar uma radio, ou sinal de TV analógica ou digital, em fim cada coisa tem suas várias particularidades.
Persistência a Dados
Há várias formas e persistir(gravar) e ler dados no Android, a mais simples são os arquivos XML de preferencias de controle interno do Android, tem o acesso a arquivos no dispositivo (FileSystem), e também o sqLite, que é um versão reduzida do MySQL.
Cada forma requer todo um conhecimento as classes de acesso específicas.
Como funciona o Google Play?
A loja virtual de aplicativos Android conhecida como Google Play funciona de modo semelhante a outras lojas do mesmo seguimento porem de empresas diferentes. O usuário se cadastra com um e mail criado pelo provedor da Google (gmail), e a partir daí todas os aplicativos da Google Play estão liberados para serem baixados pelo usuário. Dentro do ambiente virtual o método de compra e de obtenção dos apps é simples e rápido, tendo diversas categorias para pesquisa e apps desde gratuitos até os pagos, com bastante variedade de preços. O ambiente conta também com um histórico de apps baixados e uma lista de sugestões baseadas nesse histórico de navegação pelo ambiente.
XML
A plataforma Android é uma plataforma de desenvolvimento em software livre para celulares. Ele lhe dá acesso a todos os aspectos do celular em que é executado, de gráficos de baixo nível a hardware como a câmera do telefone. Com tantas possibilidades de uso do Android, talvez você se pergunte porque precisa se preocupar com XML. Não é que trabalhar com XML seja tão interessante; o interessante é trabalhar com as coisas que ele possibilita. XML é usado normalmente como formato de dados na Internet. Se quiser acessar dados na Internet, é bem possível que eles estejam em formato XML. Se você envia dados a um serviço da Web, talvez você também precise enviar em XML. Em resumo, se seu aplicativo Android quiser aproveitar a Internet, você provavelmente vai precisar trabalhar com XML. Felizmente, há várias opções disponíveis para trabalhar com XML em Android.
Referências bibliográficas
https://www.android.com/intl/pt-BR_br/
https://prezi.com/7nylkcz473kt/principais-caracteristicas-do-sistema-android/
http://canaltech.com.br/o-que-e/software/o-que-e-api/
https://www.ibm.com/developerworks/br/opensource/library/x-android/
----------------------------------------------------------------------------------------------------
Normalização
- 1FN - 1ª Forma Normal: todos os atributos de uma tabela devem ser atômicos, ou seja, a tabela não deve conter grupos repetidos e nem atributos com mais de um valor. Os grupos repetidos devem ser postos em tabelas separadas, conectados por uma chave primária ou estrangeira.
Exemplo:
PESSOAS = {Id+ Nome + Endereço + Telefones}
Ela contém a chave primária “Id” e o atributo “Telefones” é um atributo multivalorado e, portanto, a tabela não está na 1FN. Para deixá-la na 1FN, cria-se uma nova tabela chamada TELEFONES que conterá “IdPessoa” como chave estrangeira de PESSOAS e “Telefone” como o valor multivalorado que será armazenado.
PESSOAS = { Id + Nome + Endereço }
TELEFONES = { IdPessoa + Telefone }
- 2FN - 2ª Forma Normal: todos os atributos não chaves da tabela devem depender unicamente da chave primária. Para tanto, é preciso identificar as colunas que não são funcionalmente dependentes da chave primária da tabela e, em seguida, remover essa coluna da tabela principal e criar uma nova tabela com esses dados.
Exemplo:
ALUNOS_CURSOS = { IdAluno + IdCurso + Nota + DescriçãoCurso }
Nessa tabela, o atributo “DescriçãoCurso” depende apenas da chave primária IdCurso. Dessa forma, a tabela não está na 2FN. Para tanto, cria-se uma nova tabela chamada CURSOS que tem como chave primária IdCurso e atributo “Descrição” retirando, assim, o atributo “DescriçãoCurso” da tabela ALUNOS_CURSOS.
ALUNOS_CURSOS = { IdAluno + IdCurso + Nota }
CURSOS = {IdCurso + Descrição}
- 3FN - 3ª Forma Normal: os atributos não chave de uma tabela devem ser mutuamente independentes e dependentes unicamente e exclusivamente da chave primária (um atributo B é funcionalmente dependente de A se, e somente se, para cada valor de A só existe um valor de B). Para atingir essa forma normal, é preciso identificar as colunas que são funcionalmente dependentes das outras colunas não chave e extraí-las para outra tabela.
Exemplo:
FUNCIONARIOS = { Id + Nome + IdCargo + DescriçãoCargo }
O atributo “DescriçãoCargo” depende exclusivamente de “IdCargo” (atributo não chave) e, portanto, deve-se criar uma nova tabela com esses atributos. Assim:
FUNCIONARIOS = { Id + Nome + IdCargo }
CARGOS = { IdCargo + Descrição }
- Exemplo:
- Caso discutido em sala de aula:
----------------------------------------------------------------------------------------------------
Desenvolvimento Web
Definição
- Desenvolvimento Web, de forma bem ampla, é o termo utilizado para definir tudo que é criado no ambiente virtual especifico de websites. De modo mais simples, o desenvolvimento web, é a criação de todo conteúdo de um site, fórum, rede social, etc . Este termo contempla todo o processo de construção e testes de aplicações web e de websites e os recursos utilizados para sua realização.
Linguagens
- Para a criação de páginas web e aplicativos web, algumas linguagens são extremamente importantes, sendo elas :
- - HTML, XHTML : Essas linguagens geralmente são utilizadas para desenvolver o corpo de uma página web.
- - CSS : Linguagem utilizada em geral, para o desenvolvimento gráfico de páginas e aplicativos web.
- - .NET: Possui função equiparada á linguagem HTML, entretanto é utilizada proritariamente para desenvolvimento e execução de sistemas web.
- - JAVA, JAVASCRIPT, FLASH, PHP, : Possuem funções de desenvolvimento de aplicações web, como slides e jogos. Essas linguagens são predominantes no desenvolvimento de interfaces dinâmicas, entretanto, podem ser utilizadas para o desenvolvimento gráfico.
- - MYSQL, POSTGRESQL, SQLITE, APACHE, FIREBIRD, ORACLE : São linguagens de banco de dados utilizadas para armazenar tudo que é necessário do contato cliente-servidor na web.
Processos do desenvolvimento web
- Os processos que estão envolvidos no desenvolvimento web são extremamente amplos e podem ser divididos da seguinte maneira :
Desenvolvimento do Front-end
- O termo "Front-end" é utilizado para definir a codificação dos dados inseridos pelo cliente. Essa etapa é extremamente importante no desenvolvimento web, pois é a partir do front-end que podemos criar uma interface dinâmica entre cliente-servidor em um website.
- Nessa etapa algumas linguagens computacionais são extremamente importantes, sendo elas :
- - HTML
- - PHP
- - CSS
- - XHTML
- - JAVASCRIPT
- - FLASH
Desenvolvimento do Back-end
- O termo "Back-end" é utilizado com sentido oposto ao "Front-end", ou seja, enquanto o "front-end" é o desenvolvimento de métodos computacionais para a codificação dos dados insertos pelos usuário, o "back-end" é responsável por desenvolver os processos à serem realizados após a interação do cliente-servidor. Em geral, os processos são realizados pelo servidor, o que é de responsabilidade de "back-end".
- Nessa etapa algumas linguagens computacionais são extremamente importantes, sendo elas :
- - HTML
- - PHP
- - .NET
- - ASP
- - JAVA
- - PHYTON
- - JAVASCRIPT
Desenvolvimento do banco de dados
- Neste etapa, após o fluxo de dados entre cliente-servidor , o programador desenvolve um banco de dados para armazenar tudo que necessário para sua aplicação web.
- Nessa etapa algumas linguagens computacionais são extremamente importantes, sendo elas :
- - MYSQL
- - POSTGRESQL
- - ORACLE
- - APACHE
Desenvolvimento do design gráfico
- Sabemos que no âmbito do desenvolvimento web, uma das partes mais significativas do trabalho é o desenvolvimento do design, afinal no ambiente web o design de uma página ou aplicativo web é o que mais chama atenção do usuário. Nessa etapa é necessário um conhecimento amplo para a utilização de softwares, como o "Photoshop CS" , para criar a aparência do "produto final".
- Nessa etapa algumas linguagens computacionais são extremamente importantes, sendo elas :
- - PHP
- - CSS
- - HTML
- - JAVASCRIPT
- - FLASH
Aplicação no dia a dia
- O desenvolvimento web é extremamente aplicado no dia a dia de todos. Um bom exemplo é a rede web. Todos os websites que são criados, passam pelos processos de desenvolvimento web, desde sites comuns como blogs e páginas de noticias até páginas pouco mais complexas como as redes sociais. No dia a dia do usuário da tecnologia, as aplicações web também são utilizadas. Em um jogo, por exemplo, que realiza cadastro de seus usuários pelo seu website, os processos de desenvolvimento web também estão envolvidos, já que é preciso uma interface para realizar o contato entre o cliente, o servidor, o banco de dados e o própio aplicativo do jogo . Um banco que realiza transações bancárias e outras funções online, também utiliza dos processos de desenvolvimento web, assim como vários outros processos virtuais necessitam do desenvolvimento web.
Exemplos
- Existem diversos exemplos de desenvolvimento web :
- Exemplo de uma página web desenvolvida em HTML
- Exemplo de uma aplicação web desenvolvida dinamicamente (Linguagens Java, JavaScript, Flash, etc)
- Exemplo de um banco de dados de uma página web
Fontes bibliográficas
- - Conhecimentos gerais
- - https://scholar.google.com.br/scholar?q=o+que+%C3%A9+desenvolvimento+web&btnG=&hl=pt-BR&as_sdt=0%2C5
- - http://www.devmedia.com.br/introducao-ao-desenvolvimento-de-aplicacoes-web/29798
- - http://www.tecmundo.com.br/2862-profissao-programador-web.htm
- - https://www.oficinadanet.com.br/post/13541-afinal-o-que-e-frontend-e-o-que-e-backend-
- - https://www.researchgate.net/profile/Guilherme_Travassos/publication/228647730_Processos_de_Desenvolvimento_para_Aplicaes_Web_Uma_Reviso_Sistemtica/links/00b7d51475c7f69e0b000000.pdf
----------------------------------------------------------------------------------------------------
Processo de Software
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese das pesquisas que fizer.
Conceito
Quando se deseja projetar um sistema, é de suma importância que o desenvolvedor siga um roteiro, uma série de passos que permitam que seu projeto seja o mais dinâmico possível. Por dinâmico, entende-se a capacidade de projetar e incorporar de forma mais clara possível, utilizar recursos de forma inteligente, e tentar tornar seu sistema atemporal para que ele seja reaproveitado tantas vezes quanto for possível.
O Processo de Software diz respeito ao gerenciamento da criação do software desde seu planejamento a ideia inicial até a sua distribuição comercial.
Contém geralmente as seguintes etapas:
- Análise - Design - Desenvolvimento do código / algoritmo - Testes e Manutenção
Modelo Cascata
O Modelo Cascata também conhecido como Paradigma Clássico de Vida Útil (The Classic life-cycle paradigm) se originou nos anos 60 (sendo o mais antigo) pela demanda das indústrias de defesa, aeroespaciais nos Estados Unidos e também para aplicações comerciais, por softwares de larga escala. A formalização do termo é atribuída ao Cientista da Computação Winston W. Royce que escreveu um artigo em 1970 sobre o modelo. (Que no caso era uma crítica à essa forma de desenvolvimento, pois Royce era adepto da abordagem iterativa.) Tal processo de desenvolvimento idealiza as etapas de forma linear ou sistemáticas fases sequenciais colocando os desenvolvedores inicialmente no patamar de requisitos de alto nível, passando pelos testes, chegando assim na fase final que é a distribuição, e a manutenção contínua do mesmo. Nas últimas três décadas, o modelo tem sido amplamente criticado, inclusive até seus maiores defensores levantavam questionamentos sobre a eficácia pois embora teoricamente o modelo siga uma linha de raciocínio bem elaborada e permita um desenvolvimento bem sólido e planejado, sua aplicação prática não funciona bem assim pois projetos reais muito dificilmente vão seguir à risca as etapas que o modelo propôs, o modelo em cascata embora tenha a iteração, ela acontece de forma indireta e qualquer mudança que ocorra no desenrolar do processo pode acabar gerando confusões. De início também é difícil para o cliente explicitar claramente todas suas necessidades, que é um requisito do modelo, além disso a versão operacional do projeto não estará disponível até as últimas etapas do processo, o que pode tornar pequenos erros se não detectados, um desastre total e comprometer todo o projeto. Portanto, para se utilizar o Modelo Cascata de forma inteligente, seria interessante que tivéssemos todos os requisitos bem definidos e estáveis.
Modelo Prototipação
Pode ocorrer muitas vezes do cliente requisitar objetivos do software mas não detalhar especificamente os requisitos ou até mesmo do desenvolvedor apresentar uma certa insegurança quanto a compatibilidade e (ou) adaptação em um sistema e também da sua interface. Nesses casos é altamente recomendado o uso do Modelo de Prototipação. Pode ser usada tanto isoladamente tanto em conjunto com qualquer outro modelo de desenvolvimento. O objetivo principal do Protótipo é simplesmente ser uma forma de identificar os requisitos de software. o Processo de Prototipação inicia-se com a etapa de Comunicação onde se reúne com a equipe para explicitar a abrangência do software, relatar os requisitos já conhecidos e identificar as áreas onde que precisam de maior atenção quanto à definição; seguidamente ocorre a etapa de Modelação onde se cria um "Projeto Rápido" que pode ser descrito como as características do Software tangíveis ao usuário final, a partir do Projeto Rápido é finalmente criado o Protótipo que será aprimorado quantas vezes for necessário a partir das conclusões e necessidade dos desenvolvedores
Modelo Espiral
O Modelo Espiral foi introzido pelo Cientista da Computação Barry Boehm em seu artigo A Spiral Model of Software Development and Enhancement (1988), sua ideia é a fusão da iteratividade da prototipação e a a sistemática do Modelo Cascata. Basicamente, no Modelo Espiral nós começamos desenvolvendo o Software e a cada iteração ele se torna mais completo até se aproximar da versão final, isso significa que não teremos o software sendo desenvolvido em um única etapa, e sim como o resultado de várias micro checagens (resultante de cada iteração). É tido como o modelo mais viável para desenvolvimento de sistemas e softwares de larga escala pois permite um consenso mais claro entre desenvolvedor e cliente sobre os riscos. Se divide em quatro etapas cíclicas, sendo respectivamente:
Planejamento: Determinação dos Objetivos, cronograma, requisitos iniciais, finalidade do projeto com base na demanda. Análise de Riscos: Resolução de riscos e estudo de alternativas. Construção ou Execução: Desenvolvimento e checagem. Verificação: Avaliação do usuário, e em caso de finalização do projeto, distribuição e suporte
A cada iteração existe uma verificação ente a Análise de Riscos e a Construção denominada go, non-go, é um ponto onde se analisa a viabilidade de dar continuidade ao projeto com base nos esforços necessários para tal.
Modelo em Componentes
O Modelo em Componentes ou Componentes de Software Comercial de Prateleira (COTS - Commercial off-the-shelf) é um formato de desenvolvimento de software terceirizado em larga escala onde vende-se funcionalidades pré desenvolvidas para serem acopladas em outros softwares, ou seja, não é exclusivo, isso implica que ele provavelmente será mais barato, de maior qualidade pois a concorrência é maior e mais complexos pela experiência dos que desenvolvem nesse modelo, rápida implementação. Incorpora elementos do Modelo Espiral. Exemplos de Softwares são Pacotes Office e Antivírus.
Comparação entre os modelos
Nós já sabemos que o Modelo em Cascata é o mais velho, e também o mais difícil de ser implementado e menos usado, como explicado anteriormente, ele é baseado em certezas e linearidade, o que um projeto Real dificilmente vai apresentar principalmente por causa de prazos e a falta de um dinamismo pleno por parte da equipe que eventualmente terá problemas. Já o Modelo em Espiral é um dos mais usados até hoje que pode ser aproveitado de várias formas, não ficando somente preso à descrição clássica (podemos usá-lo em conjunto com o COTS por exemplo), é muito mais dinâmico que o Modelo em Cascata pelo fato de ser um modelo iterativo, parte da premissa que todo projeto é suscetível a falhas por isso necessita de constantes verificações e adaptações, diferentemente do inflexível Modelo em Cascata.
O COTS pode ser mais entendido como um modelo de gerenciamento e administração do projeto do que do seu desenvolvimento propriamente dito, isso significa que a maior parte do tempo o empreendedor não se preocupará com o desenvolvimento do software propriamente dito e sim com os riscos de mercado tal como a implantação do mesmo, como explicitado anteriormente, é derivado do Modelo em Espiral.
O Modelo em Prototipagem é uma ferramenta, embora possa ser usado separadamente, é geralmente implantado em conjunto, também com o Espiral, sua vantagem é o levantamento de requisitos e consequentemente um dinamismo na totalidade do projeto e esclarecimento do mesmo.
Referências bibliográficas
Michael A. Cusumano and Stanley Smith - MIT Sloan School of Management (1995). Beyond the Waterfall: Software Development at Microsoft Roger S. Pressman and Bruce Maxim - Software Engineering: A Practitioner's Approach.
----------------------------------------------------------------------------------------------------
UML
Conceito
Unified Modeling Language (UML) é uma linguagem de modelagem voltada para a área de Engenharia de Software e Sistemas de Informação, com função de especificar, visualizar, construir e documentar modelos de software orientados a objetos. A UML foi criada por Ivar Jacobson, Grady Booch e James Rumbaugh, cientistas da computação e engenheiros de software, criadores das mais conceituadas metodologias de modelagem da área até então, procurando desenvolver uma linguagem unificada padrão.
UML não é, portanto, uma linguagem ou metodologia de programação visual, mas sim uma linguagem de modelagem visual. Pelo auxílio no levantamento dos requisitos de construção do sistema e, pelo fato de ser fortemente integrada aos conceitos de Orientação a Objetos, o UML tornou-se um padrão de grande aceitação. Sendo, assim, adotada pela OMG, Object Management Group, grupo responsável por aprovar padrões para aplicações em tecnologia orientada a objetos.
Diagramas
Na modelagem UML, diferentes elementos gráficos se combinam para compor um diagrama, seguindo regras de combinação. Cada diagrama é apresentado separadamente no projeto, com o objetivo de fornecer diversas visões do sistema a ser modelado. Os diagramas utilizados pela UML são compostos de 13 tipos, divididos em 3 categorias: 3 tipos Funcionais, 6 tipos Estruturais e 4 tipos de Interação.
Diagramas Funcionais
Os Diagramas Funcionais, ou comportamentais, representam os aspectos dinâmicos do sistema. São classificados em:
Diagrama de Caso de Uso
Os Diagramas de Caso de Uso são utilizados para representar as funcionalidades do sistema. Descrevendo os relacionamentos e dependências entre um grupo de Caso de Uso, são as sequências de ações executadas, e os Atores, que são os usuários.
Exemplo: Diagrama de Caso de Uso
Diagrama de Atividade
Os Diagramas de Atividades são utilizados para descrever o fluxo de controle de uma atividade para outra, ou seja, descrever sequências de atividades de um processo. Pode ser confundido com um fluxograma, porém suporta diversos outros recursos.
Exemplo: Diagrama de Atividade
Diagrama de Máquina de Estado
O Diagrama de Estado representa os diferentes estados de um objeto pode assumir, e os estímulos que causam essas alterações.
Exemplo: Diagrama de Estado
Diagramas Estruturais
Os Diagramas Estruturais representam os aspectos estáticos, ou seja, representação da estrutura de um sistema. São classificados em:
Diagrama de Classes
O Diagrama de Classe é o principal do modelo estrutural. Basicamente representa uma perspectiva do sistema de um ponto de vista externo. Demonstra uma visão do modelo estrutural estático, onde mostra as classes de um sistema, seus métodos (operações), atributos e a relação entre as classes.
Exemplo: Diagrama de Classes
Diagrama de Objetos
O Diagrama de Objeto pode ser considerado como uma variação do diagrama de classes, diferenciado pelo seu uso. São utilizados, de uma perspectiva prática, para mostrar exemplos de estruturas de dados pontos do sistema, útil no processo de construção do protótipo.
Exemplo: Diagrama de Objetos
Diagrama de Pacotes
O Diagrama de Pacotes demonstra o agrupamento das classes e/ou interfaces e a relação de dependência entre eles. Pode ser utilizado em qualquer fase do processo de modelagem e tem como objetivo organizar os modelos.
Diagrama de Estrutura Composta
O Diagrama de Estrutura Composta é utilizado para modelar um conjunto de elementos que cooperam para fim de executar uma função específica.
Exemplo: Diagrama de Estrutura Composta
Diagrama de Componentes
O Diagrama de Componentes representa os conjuntos dos componentes, que é formado por um conjunto de classes que são implementadas nele, suas interfaces e relações. Mostra como as classes são organizadas em determinados grupos, baseando-se nas relações entre elas, destaca a função de cada componente, facilitando a sua reutilização em outros sistemas.
Exemplo: Diagrama de Componentes
Diagrama de Implantação
O Diagrama de Implantação, ou de instalação, modela a relação das entidades físicas de infraestrutura do sistema. É normalmente utilizado em projetos onde há muita interdependência entre partes de hardware e software.
Exemplo: Diagrama de Implantação
Diagramas de Interação
Os Diagramas de Interação, que derivam do Diagrama Comportamental, mostram como os objetos interagem uns com os outros. São classificados em:
Diagrama de Sequência
O Diagrama de Sequência é utilizado para representar uma sequência de processos, de troca de mensagens, entre os objetos do sistema.
Exemplo: Diagrama de Sequência
Diagrama de Comunicação
Os Diagramas de Comunicação, ou Colaboração, são semelhantes aos de Sequência, mostrando as interações entre os objetos, porém agora apresentam os objetos com seus relacionamentos.
Exemplo: Diagrama de Comunicação
Diagrama de Visão Geral de Interação
O Diagrama de Visão Geral é uma variação do diagrama de atividade, mostra visão geral do controle do fluxo de diferentes atividades. Quando as sequências de iterações mostram-se complexas, o uso do diagrama de visão geral torna-se necessário para um resumo da situação.
Exemplo: Diagrama de Visão Geral
Diagrama de Tempo
O Diagrama de Tempo assemelha-se ao diagrama de sequência, porém tem o foco na modelagem de restrições temporais.
Exemplo: Diagrama de Tempo
Referências
- SILVA, Alberto M. R.; VIDEIRA, Carlos A. E. UML, Metodologias e Ferramentas Case, Vol. 1
Homepages:
- Unified Modeling Language (UML). Disponível em: <http://www.uml.org/>. Acesso em: 29 abr. 2015.
- Understanding the Unified Modeling Language (UML). Disponível em:<http://www.methodsandtools.com/archive/archive.php?id=76>. Acesso em: 29 abr. 2015.
- UML - Standard Diagrams. <http://www.tutorialspoint.com/uml/uml_standard_diagrams.htm>. Acesso em: 29 abr. 2015
- Unified Modeling Language. <http://commons.wikimedia.org/w/index.php?title=Unified+Modeling+Language&uselang=pt>. Acesso em: 29 abr. 2015.
----------------------------------------------------------------------------------------------------
Banco de Dados
Introdução
- Um software de Banco de Dados é utilizado para armazenar, organizar, selecionar e processar dados de forma a facilitar consulta e a manipulação desses dados
- Um banco de dados é usualmente mantido e acessado por meio de um software conhecido como Sistema Gerenciador de Banco de Dados (SGBD).
- Modelos:
- plano
- em rede
- relacional
Exemplos:
- Microsoft Visual FoxPro
- Microsoft Access
- dBASE
- FileMaker
- (em certa medida) HyperCard
- MySQL
- Intpro
- PostgreSQL
- Firebird
- Microsoft SQL Server
- Oracle
- Informix
- DB2
- Caché
- Sybase.
Oracle
- Foi a primeira empresa a desenvolver softwares pra organizar arquivos de empresas
- Ainda é a mais influente nesse setor
- Está sempre lançando novos versões, para melhor atender as necessidades do mercado
Funcionalidades
- Criar tabelas
- Relacionar tabelas
- Otimizar acesso ao banco de dados
- Suportar alto número de registros
Em Setembro de 2007, a Oracle disponibilizou no mercado sua mais nova versão do Banco de Dados. Trata-se a versão Oracle 11g que vem com mais de 400 novas funcionalidades. Destacam-se abaixo algumas delas:
- PL/SQL Function Result Cache:
Esta funcionalidade permite que o Oracle armazene em memória o resultado da execução de uma Função. Caso esta função seja re-executada, com os mesmos parâmentros, o resultado é buscado diretamente da memória sem processar o código novamente.
- Oracle Flashback Data Archive:
Antes da versão 11g, as operações de "flashback" dependem da área de Undo e de como está configurado o tempo de retenção desta área. A partir da versão 11g, todas as alterações numa tabela, por exemplo, podem ser armazenadas numa área denominada "Flashback Recovery Area". Sendo que o tempo de retenção pode ser configurado de acordo com a necessidade.
- Oracle Real Application Testing (Database Replay):
Antes de realizar substituições de hardware ou atualizações de softwares, normalmente as empresas elaboram diversos testes com o objetivo de validar o novo ambiente antes da migração. Porém, muitas vezes não consegue-se simular um ambiente de produção real. O Database Replay se dispõe como uma ferramenta capaz de capturar todo o processamento do banco de dados de produção, num determinado momento, e repetí-lo num ambiente de testes, por exemplo.
Benefícios
- Ágil gestão da política de segurança
- Redução do risco de fraudes online
- Integração com parceiros de negócios seguros
- Melhor experiência do usuário final
- Aplicativo para dispositivos móveis
- Economia da estrutura de rede.
- Reduz indisponibilidade do ambiente.
- Aumento de performance das aplicações.
- Disponibilidade e condição de simular ambiente de produção em outro ambiente.
- Controle detalhado e rápido de recover de tabelas, sem precisar recorrer a backup externo
Interface gráfica
Custos
- O maior pacote oferecido pela Oracle é o Oracle Access Management Suite Plus, e este tem o custo de R$391,104.00 com licença perpétua
- Porém há outros pacotes com menos funções, adaptando-se ao perfil do usuário, que são mais acessíveis
Fornecedor
- Oracle Corporation
Sistema Operacional
- Windows (Versões)
- Linux (Versões)
- Solaris
- SUSE ES
Referências
- https://shop.oracle.com/pls/ostore/f?p=dstore:product:1349950105474367::NO:RP,3:P3_LPI,P3_PROD_HIER_ID:30914933132890119987055,4509956172801805720011

- http://pt.wikipedia.org/wiki/Banco_de_dados
- http://pt.wikipedia.org/wiki/Oracle_(banco_de_dados)
- http://www.teiko.com.br/?novidades-do-oracle-11g&ctd=68
----------------------------------------------------------------------------------------------------
WebService
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese das pesquisas que fizer.
Conceito
Web service é uma solução utilizada na integração de sistemas e na comunicação entre aplicações diferentes, com esta tecnologia é possível que novas aplicações possam interagir com aquelas que já existem e que sistemas desenvolvidos em plataformas diferentes sejam compatíveis, isto é possível pois os web services são componentes que permitem às aplicações enviar e receber dados em formato XML, mesmo que cada aplicação tenha sua própria "linguagem" ela é traduzida para a "linguagem universal" o formato XML.
Os web services podem ser acessados usando os protocolos padrão da Web, como por exemplo http, https, etc. web Services podem ser aplicados a qualquer tipo de plataforma de integração e suportam tanto aplicações ponto-a-ponto quanto aplicações distribuídas.
Os web services são formados por aplicativos que usam codificações e protocolos padronizados para troca de informações. Assim, são amplamente utilizados em aplicações de cunho comercial permitindo que sistemas de computação interajam através de diferentes ambientes.
Os web services dispõem, alem de facilidades nas transações distribuídas, de bom nível de segurança e de serviços de mensagens confiáveis. Portanto, alguns problemas como distribuição, transporte, segurança, autenticação e controle de transações são amenizados através dessa tecnologia.
Alguns dos conceitos principais de Web Services são:
- Ele é acessível pela Internet pois os serviços se comunicam utilizando protocolos que são independentes de plataforma facilitando a integração em plataformas heterogêneas.
- Web Services define um protocolo de comunicação e uma interface que pode ser requerida por um cliente ou fornecida pelo servidor de aplicação
- WSDL (Web Services Description Language) adiciona uma camada de abstração entre a interface do serviço com o cliente e sua implementação.
Funcionamento
SOA
Uma SOA é um modelo de projeto com um conceito profundamente amarrado à questão do encapsulamento de aplicação. A arquitetura resultante estabelece essencialmente um paradigma de projeto, no qual web services são os blocos de construção chave. Isto quer dizer que ao migrar a arquitetura da sua aplicação para uma SOA, estabelece-se um compromisso com os princípios de projeto de web services e a tecnologia correspondente, como partes fundamentais do seu ambiente técnico.
Uma SOA baseada em XML web service é construída sobre camadas de tecnologia XML estabelecidas, focada em expor a lógica de aplicação existente como um serviço fracamente acoplado. Para apoiar este modelo, uma SOA promove o uso de um mecanismo de discovery por serviços via um service broker ou discovery agent.
Os três papeis básicos presentes em uma plataforma para Web Services são:
- "Service Consumer"
O consumidor busca o serviço desejado na base de dados do Broker e utiliza o contrato para ligar a sua aplicação ao provedor.
- "Service Provider"
O provedor disponibiliza o serviço na Web e publica o contrato que descreve a sua interface.
- "Service Broker"
O Broker fornece para o cliente as direções necessárias sobre como encontrar o contrato que descreve a interface do serviço.
Funcionalmente, pode-se dividir uma plataforma SOA em três componentes básicos:
- Transporte - SOAP+XML
O componente de transporte representa os formatos e os protocolos usados para conectar com o serviço. O formato especifica os tipos de dados transmitido e as seqüências de bits para representar os dados nas mensagens. É o protocolo de transporte que faz transferência da mensagem de um ponto a outro.
- Descrição - WSDL
Este componente representa a linguagem utilizada para descrever um serviço. É a descrição a responsável por juntar o serviço com a aplicação do cliente. Ela descreve o contrato de serviço que contém informações como as operações e os parâmetros que o serviço necessita para se comunicar.
- Busca - UDDI
O componente de busca implementa o mecanismo responsável por encontrar um serviço e sua descrição na web. esses mecanismos podem ser utilizados também em tempo de execução, tornando a aplicação mais dinâmica.
Tecnologias
Hoje em dia, a maioria dos serviços integrados à Web são feitos a partir de um grupo de tecnologias incluindo:
- XML - que fornece uma representação de dados independente de plataforma;
- SOAP - que descreve o protocolo de comunicação e troca de dados;
- WSDL - que descreve o serviço;
- UDDI - que fornece uma maneira de encontrar serviços na Web.
Vantagens
as vantagens são varias dentre elas estão:
- XML é uma linguagem para representação de dados que é extensível e naturalmente independente de plataforma, além de ser amplamente utilizada pela indústria. Em web services, tando a descrição de um serviço quanto a comunicação entre serviços é feita usando XML.
- Web services têm recebido grande apoio da indústria, particularmente por parte da IBM e da Microsoft. Recentemente, web services se tornatam parte das plataformas J2EE (Java Enterprise Edition, da Sun) e .NET (Microsoft). É possível, por exemplo, que um web service implantado num servidor de aplicações J2EE acesse outro web service implantado numa plataforma .NET.
- Baseado em padrões abertos: web services são baseados em uma série de padrões abertos e amplamente difundidos, tais como XML, HTTP, SOAP, WSDL e UDDI. Isso assegura que implementações compatíveis com as especificações sejam interoperáveis.
- As mensagens trocadas entre web services tipicamente usam HTTP como protocolo de transporte, o que em boa parte dos casos evita problemas com firewalls.
- Os web services são identificados por uma URI (que tipicamente é uma URL), um formato muito utilizado devido à popularização da web e de fácil assimilação pelas pessoas.
Exemplos de código
código para consulta ao banco de dados e retornar dados
<WebMethod(Description:="Consulta
banco de dados e retorna DataSet")> _
Function RetornaDataSet(ByVal strQuery As String) As DataSet
Dim conn As New SqlConnection
Dim cmd As New SqlCommand
Dim da As New SqlDataAdapter
Dim ds As New DataSet
conn.ConnectionString = "Data Source=localHost; User ID=sa;
Password=;Initial Catalog= Northwind;"
cmd.Connection = conn
cmd.CommandText = strQuery
da.SelectCommand = cmd
da.Fill(ds)
conn.Dispose()
cmd.Dispose()
da.Dispose()
Return ds
End Function
End Class
Referências bibliográficas
http://www.devmedia.com.br/introducao-as-tecnologias-web-services-soa-soap-wsdl-e-uddi-parte1/2873
https://www.oficinadanet.com.br/artigo/447/o_que_e_web_service
http://www.gta.ufrj.br/grad/05_1/webservices/definicao.htm
http://www.ime.usp.br/~reverbel/SOD-06/trabalhos/fachada-ws/node2.html
----------------------------------------------------------------------------------------------------
Desenvolvimento Ágil
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese das pesquisas que fizer.
Conceito
O desenvolvimento de software tradicional é uma tarefa difícil, laboriosa e possui riscos. Riscos estes que envolvem orçamento, tempo para levantamento de requisitos e planejamento que não atendem ao cronograma estipulado e que tornará o projeto ainda mais caro, etc e que ao final de um período tudo pode estar perdido devido a não solução do problema do cliente.
Pensando nisso, no início do ano de 2001, um grupo de consultores veteranos da área de engenharia de software se reuniu em Snowbird, Utah, EUA. Apesar de cada um ter aprendido segundo a cartilha tradicional, ter suas próprias práticas e teorias preferidas, concordaram que os riscos inerentes ao desenvolvimento de software tradicional só poderiam ser atenuados se houvesse uma forma diferente do existia até então para desenvolvimento. Apesar de seus métodos serem diferentes, houve consenso de que os projetos tinham em comum um pequeno conjunto de princípios e com base nisso criaram o Manifesto para Desenvolvimento Ágil de software.
Principais métodos
Mesmo antes da reunião dos consultores da área de engenharia de software em Snowbird, Utah, EUA no início do ano de 2001, já haviam definições de desenvolvimento de software ágil que evoluíram a partir de meados dos anos de 1990 como parte de uma reação contra métodos “pesados”, caracterizados por regulamentação pesada, regimentação e micro gerenciamento usando o modelo em cascata para desenvolvimento.
Inicialmente, métodos ágeis eram conhecidos como métodos “leves”. Após a reunião em Snowbird foi adotado o nome métodos ágeis, tendo publicado o Manifesto ágil, documento que reúne os princípios e práticas desta metodologia de desenvolvimento.
Os métodos ágeis iniciais – criado a priore em 2000 – incluíam:
- XP (Extreme Programming) (1996)
- SCRUM (1986)
- Feature Driven Development (FDD)
- Dynamic Systems Development Method (DSDM) (1995)
- Lean Development
- Crystal Clear
- Adaptive Software Development
Princípios do Manifesto Ágil
Principais conceitos do Manifesto Ágil:
- Indivíduos e interações mais que processos e ferramentas
- Software em funcionamento mais que documentação abrangente
- Colaboração com o cliente mais que negociação de contratos
- Responder a mudanças mais que seguir um plano
"mesmo havendo valor nos itens à direita, são mais valorizados mais os itens à esquerda."
De acordo com estes conceitos, são 12 os princípios do Manifesto Ágil:
- Garantir a satisfação do consumidor entregando rapidamente e continuamente softwares funcionais;
- Softwares funcionais são entregues frequentemente (semanas, ao invés de meses);
- Softwares funcionais são a principal medida de progresso do projeto;
- Até mesmo mudanças tardias de escopo no projeto são bem-vindas. Processos ágeis tiram vantagem das mudanças visando vantagem competitiva para o cliente;
- Pessoas de negócio e desenvolvedores devem trabalhar diariamente em conjunto por todo o projeto;
- Projetos surgem através de indivíduos motivados, entre os quais existe relação de confiança. Dê a eles o ambiente e o suporte necessário e confie neles para fazer o trabalho;
- Design do software deve prezar pela excelência técnica;
- Simplicidade;
- O método mais eficiente e eficaz de transmitir informações para e entre uma equipe de desenvolvimento é através de conversa face a face;
- Os processos ágeis promovem desenvolvimento sustentável. Os patrocinadores, desenvolvedores e usuários devem ser capazes de manter um ritmo constante indefinidamente;
- As melhores arquiteturas, requisitos e designs emergem de equipes auto-organizáveis;
- Em intervalos regulares, a equipe reflete sobre como se tornar mais eficaz e então refina e ajusta seu comportamento de acordo.
Vantagens
Vantagens:
- Redução do tempo de entrega da primeira versão do software pedido;
- Métodos ágeis seguem processo iterativo de desenvolvimento e de sucessivas entregas ao cliente, o qual vai constatando e evolução e participando na avaliação e definição das novas funcionalidades a serem acrescentadas;
- Aumento de controle por parte dos gestores, uma vez que se baseia no que realmente está sendo produzido e no que vai ser feito a curto prazo. Como tal, há menos especulação, há mais visibilidade e adequação das medições e avaliações do estado das funcionalidades e tarefas realizadas;
- Por haver maior comunicação neste método, há maior aproximação entre desenvolvedores e gestores, havendo assim um ambiente propício a maior produtividade dos envolvidos. É especialmente adequado a projetos onde requisitos vão evoluindo constantemente e não se exigem muitas pessoas. A maioria dos relatórios de documentação são produzidos pelas ferramentas de trabalho, o que alivia as equipes de trabalho.
Desvantagens:
- Uma desvantagem apontada aos Métodos Ágeis é o fato de estes não serem escaláveis. Na realidade, estes não foram desenhados para projetos muito longos existindo, contudo abordagens mais escaláveis, como o Scrum;
- “O desenvolvimento ágil é mais difícil com equipes maiores . O projeto médio tem apenas nove pessoas , bem ao alcance dos processos ágeis mais básicas. No entanto, é interessante encontrar ocasionalmente projetos ágeis de sucesso com 120 ou até 250 pessoas”[1];
- Menor controle de custos. Tipicamente, nesta metodologia, o projeto termina quando o cliente não levantar mais funcionalidades relevantes que deseje ver concretizadas, em oposição a ser acordado um preço e um plano. Daqui tira-se que os custos e durações podem variar e podem ser de difícil gestão para a organização;
- Documentação do projeto tipicamente mais pobre com relação aos métodos tradicionais.
Scrum
Scrum é uma metodologia ágil para gestão e planejamento de projetos de software. Scrum permite criar produtos melhor adaptados à realidade do cliente de forma ágil. Além do mais, praticar Scrum nos projetos traz grandes benefícios para a equipe como comprometimento, motivação, colaboração, integração e compartilhamento de conhecimento, o que facilita em muito o gerenciamento e sucesso dos projetos.
Segundo o seu autor SCHWABER (2004), o Scrum não é um processo previsível, ele não define o que fazer em toda circunstância. Ele é usado em trabalhos complexos nos quais não é possível prever tudo o que irá ocorrer e oferece um framework e um conjunto de práticas que torna tudo visível. Isso permite aos praticantes do Scrum saber exatamente o que está acontecendo ao longo do projeto e fazer os devidos ajustes para manter o projeto se movendo ao longo do tempo visando alcançar os seus objetivos.
Logo, o Scrum não vai dizer exatamente o que fazer, não irá resolver todos os seus problemas, mas com certeza os problemas serão mais facilmente identificados. Por ser um framework, irá servir como um guia de boas práticas para atingir o sucesso. Entretanto, as decisões de quando e como usá-lo, quais táticas e estratégias seguir para obter produtividade e realizar as entregas ficam por conta de quem estiver aplicando. O conhecimento das suas práticas permite a aplicação das mesmas de forma variada e este é um dos aspectos positivos do Scrum, a adaptabilidade.
Vale ressaltar que as práticas do Scrum podem ser aplicadas em qualquer contexto onde pessoas precisem trabalhar juntas para atingir um objetivo comum. Scrum é recomendado para projetos de outras áreas além de software e principalmente para projetos de pesquisa e inovação.
No Scrum, os projetos são divididos em ciclos (tipicamente mensais) chamados de Sprints. O Sprint representa um Time Box dentro do qual um conjunto de atividades deve ser executado. Metodologias ágeis de desenvolvimento de software são iterativas, ou seja, o trabalho é dividido em iterações, que são chamadas de Sprints no caso do Scrum.
As funcionalidades a serem implementadas em um projeto são mantidas em uma lista que é conhecida como Product Backlog[2]. No início de cada Sprint, faz-se um Sprint Planning Meeting[4], ou seja, uma reunião de planejamento na qual o Product Owner[3] prioriza os itens do Product Backlog[2] e a equipe seleciona as atividades que ela será capaz de implementar durante o Sprint que se inicia. As tarefas alocadas em um Sprint são transferidas do Product Backlog[2] para o Sprint Backlog[5].
A cada dia de uma Sprint, a equipe faz uma breve reunião (normalmente de manhã), chamada Daily Scrum[6]. O objetivo é disseminar conhecimento sobre o que foi feito no dia anterior, identificar impedimentos e priorizar o trabalho do dia que se inicia.
Ao final de um Sprint, a equipe apresenta as funcionalidades implementadas em uma Sprint Review Meeting[7]. Finalmente, faz-se uma Sprint Retrospective[8] e a equipe parte para o planejamento do próximo Sprint.
- [2] Product Backlog: O Product Backlog é uma lista contendo todas as funcionalidades desejadas para um produto. O conteúdo desta lista é definido pelo Product Owner[3]. O Product Backlog não precisa estar completo no início de um projeto. Pode-se começar com tudo aquilo que é mais óbvio em um primeiro momento. Com o tempo, o Product Backlog cresce e muda à medida que se aprende mais sobre o produto e seus usuários
- [3] Product Owner: O Product Owner é a pessoa que define os itens que compõem o Product Backlog e os prioriza nas Sprint Planning Meetings.
- [4] Sprint Planning Meeting: O Sprint Planning Meeting é uma reunião na qual estão presentes o Product Owner, o Scrum Master e todo o Scrum Team, bem como qualquer pessoa interessada que esteja representando a gerência ou o cliente.
- [5] Sprint Backlog: - O Sprint Backlog é uma lista de tarefas que o Scrum Team se compromete a fazer em um Sprint. Os itens do Sprint Backlog são extraídos do Product Backlog, pela equipe, com base nas prioridades definidas pelo Product Owner e a percepção da equipe sobre o tempo que será necessário para completar as várias funcionalidades.
- [6] Daily Scrum: - A cada dia do Sprint a equipe faz uma reunião diária, chamada Daily Scrum. Ela tem como objetivo disseminar conhecimento sobre o que foi feito no dia anterior, identificar impedimentos e priorizar o trabalho a ser realizado no dia que se inicia.
- [7] Sprint Review Meeting: - Ao final de cada Sprint é feito um Sprint Review Meeting. Durante esta reunião, o Scrum Team mostra o que foi alcançado durante o Sprint. Tipicamente, isso tem o formato de um demo das novas funcionalidades.
- [8] Sprint Retrospective: - O Sprint Retrospective ocorre ao final de um Sprint e serve para identificar o que funcionou bem, o que pode ser melhorado e que ações serão tomadas para melhorar.
XP eXtreme Programming
Extreme Programming (XP)
Criada na década de 90, nos Estados Unidos, é uma Metodologia Ágil de desenvolvimento de software para equipes pequenas e médias que utilizam requisitos básicos e vagos e que se modificam com rapidez. É uma metodologia que tem feito sucesso em vários países por ajudar no desenvolvimento de sistemas com maior qualidade, produzidos em tempos menores e de forma mais econômica que o habitual.
Como o principal objetivo da XP é dar agilidade ao desenvolvimento de projetos e buscar a garantia de satisfação do cliente, as práticas, regras, e os valores da XP garantem um agradável ambiente de desenvolvimento de software para os seus seguidores, que são conduzidos por quatro princípios básicos:
- Princípio da Comunicação - busca manter o melhor relacionamento possível entre clientes e desenvolvedores, preferindo conversas pessoais a outros meios de comunicação.
- Princípio da Simplicidade - entende-se como simplicidade, a busca do objetivo de implementar o software com o menor número possível de classes e métodos. Outra ideia importante deste princípio é procurar implementar apenas requisitos atuais, evitando assim adicionar funcionalidades que podem ser importantes apenas no futuro. A aposta da XP é que é melhor fazer algo simples hoje do que implementar algo complicado hoje que talvez não venha a ser usado.
- Princípio do Feedback - A prática do feedback constante significa que o desenvolvedor terá informações constantes do código e do cliente. A informação do código é dada pelos testes constantes, que indicam os erros tanto individuais quanto do software integrado.
- Princípio da Coragem - Sabe-se que não são todas as pessoas que possuem facilidade de comunicação e têm bom relacionamento interpessoal, este princípio também dá suporte à simplicidade, pois assim que a oportunidade de simplificar o software é percebida, a equipe pode experimentar e buscar novas soluções, além disso, é preciso coragem para obter e cobrar constantemente um feedback do cliente.
Principais práticas da Extreme Programming (XP)
- Planejamento - Define o que é ou não necessário ser feito no projeto. A XP baseia-se em requisitos atuais para desenvolvimento de software, não em requisitos futuros.
- Entregas Frequentes - Baseiam-se no desenvolvimento de um software simples, e conforme os requisitos aparecem, há a atualização da versão do software. Cada versão entregue deve ter o menor tamanho possível, contendo os requisitos de maior valor para o negócio. É recomendado que as versões devem ser entregues a cada mês, ou no máximo a cada dois meses, aumentando a possibilidade de feedback rápido do cliente.
- Metáfora - São as descrições de um software sem a utilização de termos técnicos com o objetivo de guiar o desenvolvimento do software com a maior transparência possível para o cliente.
- Projeto simples - O software desenvolvido de acordo com a metodologia XP deve ser o mais simples possível e satisfazer os requisitos atuais, sem a preocupação de requisitos futuros. Eventuais requisitos futuros devem ser adicionados assim que eles realmente existirem.
- Testes - A Extreme Programming (XP) prioriza a validação do projeto durante todo o processo de desenvolvimento. Os desenvolvedores implementam o software criando primeiramente os testes.
- Programação em pares - A implementação do código é feita em dupla, ou seja, dois desenvolvedores trabalham em um único computador. Procurando identificar erros sintáticos e semânticos, pensando estrategicamente em como melhorar o código que está sendo implementado. Esses papéis podem e devem ser alterados sempre que possível.
- Refatoração - Focaliza a lapidação do projeto do software e está presente em todas as etapas do desenvolvimento. A refatoração deve ser feita sempre que possível, buscando principalmente simplificar o código atual sem perder nenhuma funcionalidade.
- Propriedade coletiva - O código do projeto pertence a todos os membros da equipe. Isto significa que qualquer pessoa que percebe que pode adicionar valor a um código, mesmo que ele próprio não o tenha desenvolvido, pode fazê-lo, desde que faça os testes necessários e não prejudique as funcionalidades atuais. Isto é possível porque na XP todos são responsáveis pelo software. Uma grande vantagem desta prática é que, caso um membro da equipe deixe o projeto antes do fim, a equipe consegue continuar o projeto sem grandes dificuldades, pois todos conhecem todas as partes do software, mesmo que não seja de forma detalhada.
- Integração contínua - É a prática de interagir e construir o sistema de software várias vezes por dia, mantendo os programadores em sintonia, além de possibilitar processos rápidos. Integrar apenas um conjunto de modificações de cada vez é uma prática que funciona bem porque fica óbvio quem deve fazer as correções quando os testes falham. Esta prática é facilitada com o uso de apenas uma máquina de integração, que deve ter livre acesso a todos os membros da equipe.
- 40 horas de trabalho semanal - a XP assume que não se deve fazer horas extras constantemente. Caso seja necessário trabalhar mais de 40 horas pela segunda semana consecutiva, existe um problema sério no projeto que deve ser resolvido não com aumento de horas trabalhadas, mas com melhor planejamento.
- Cliente presente - É fundamental a participação do cliente durante todo o desenvolvimento do projeto. O cliente deve estar sempre disponível para sanar todas as dúvidas de requisitos, evitando atrasos e até mesmo construções erradas. Uma idéia interessante é manter o cliente como parte integrante da equipe de desenvolvimento (Tester).
- Código padrão - Baseia-se na padronização da arquitetura do código, para que este possa ser compartilhado entre todos os programadores e até mesmo entre outros softwares.
Referências bibliográficas
- http://www.desenvolvimentoagil.com.br/
- https://pt.wikipedia.org/wiki/Desenvolvimento_%C3%A1gil_de_software
- http://agilemanifesto.org/iso/ptbr/
- https://fernandofranzini.wordpress.com/2014/06/05/desenvolvimento-agil-de-software/
- http://www.teses.usp.br/teses/disponiveis/45/45134/tde-06072008-203515/en.php
- http://www.devmedia.com.br/introducao-ao-desenvolvimento-agil/5916
- http://www.dcc.ufla.br/infocomp/index.php/INFOCOMP/article/view/68/53
- http://www.devmedia.com.br/conceitos-basicos-sobre-metodologias-ageis-para-desenvolvimento-de-software-metodologias-classicas-x-extreme-programming/10596
- http://www.siq.com.br/DOCS/EntendendoScrumparaGerenciarProjetosdeFormaAgil.pdf
- [1] Cockburn, A. e Highsmith, “Agile Software Development: The People Factor”, IEEE Computer, v.34, n.11, nov. 2001, p. 131-33
----------------------------------------------------------------------------------------------------
SGBDs
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese das pesquisas que fizer.
Conceito
Um Sistema de Gerenciamento de Banco de Dados (SGBD) – do inglês Data Base Management System (DBMS) – é o conjunto de programas de computador (softwares) responsáveis pelo gerenciamento de uma base de dados. Seu principal objetivo é retirar da aplicação cliente a responsabilidade de gerenciar o acesso, a manipulação e a organização dos dados. O SGBD disponibiliza uma interface para que seus clientes possam incluir, alterar ou consultar dados previamente armazenados. Em bancos de dados relacionais a interface é constituída pelas APIs (Application Programming Interface) ou drivers do SGBD, que executam comandos na linguagem SQL (Structured Query Language).”
Funcionalidades
Tem como funções básicas:
– Métodos de acesso :
– Integridade Semântica :garantia de dados sempre corretos com relação ao domínio de aplicação
– Segurança : -evitar violação de consistência dos dados
-segurança de acesso (usuários e aplicações)
-matrizes de autorização
-visões
-segurança contra falhas (recovery)
– Concorrência: evitar conflitos de acesso simultâneo a dados por transações (scheduler)
– principais técnicas : bloqueio (lock) e timestamp
– Independência : transparência da organização dos dados.
• Independência física
– transparência de organização (esquema) física dos dados
– exemplos: organização dos arquivos, indexação, distribuição, agrupamento
• Independência lógica
– transparência do esquema lógico do BD
– exemplo: visões (vários esquemas externos)
Benefícios
Maior disponibilidade: Uma das principais vantagens de um SGBD é que a mesma informação pode ser disponibilizada a utilizadores diferentes, ou seja, compartilhamento de dados.
Redundância minimizada: Os dados de um SGBD são mais concisos, porque, como regra geral, a informação nela aparece apenas uma vez. Isto reduz a redundância de dados, ou em outras palavras, a necessidade de repetir os mesmos dados uma e outra vez. Minimizando a redundância pode, portanto, reduzir significativamente o custo de armazenamento de informações em discos rígidos e outros dispositivos de armazenamento
Precisão: dados precisos, consistentes são um sinal de integridade dos dados.
Programa e arquivo de consistência: Usando um sistema de gerenciamento de banco de dados, formatos de tabelas e programas do sistema são padronizados.
User-friendly: Os dados são é mais fáceis de acessar e manipular com um SGBD do que sem ele.
Maior segurança: Como afirmado anteriormente, SGBDs permitem que múltiplos usuários acessem os recursos dos mesmos dados. Esta capacidade é geralmente vista como um benefício, mas há riscos potenciais para a organização
Serviços
São softwares que permitem a definição de estruturas para armazenamento de informações e fornecimento de mecanismos para manipula-las.
Softwares disponíveis
MySQL , PGadminIII, Oracle,
Estado da arte
Referências bibliográficas
http://www.dicasdeprogramacao.com.br/
http://www.inf.ufsc.br/
https://pt.wikipedia.org/wiki/Sistema_de_gerenciamento_de_banco_de_dados
----------------------------------------------------------------------------------------------------
Browsers
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese das pesquisas que fizer.
Conceito
Funcionamento
Protocolos
Exemplos do estilo CSS
Exemplos de código XML
Exemplos de browsers
Referências bibliográficas
----------------------------------------------------------------------------------------------------
Interface Lógica
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese das pesquisas que fizer.
Conceito
Interface: significado: possibilita uma ligação física ou lógica entre dois sistemas. Interface lógica é basicamente a comunicação entre dois sistemas, na qual ocorre de forma lógica (abstrata). Este tipo de interface está presente na maioria dos dispositivos tecnológicos que encontramos no mercado atualmente.
GUIs
GUI : ( Graphical User Interfac).Mais conhecida como a interface do usuário.É ela que é a interface que permite que o usuário manipule e se interage tecnologicamente com algum dispositivo. Essa interação é feita por meio de elementos gráficos(visuais).
Obs: A GUI foi criada pela Xerox mas somente se tornou um produto com a Apple.
imagem
exemplo de interface gráfica:
API :
Protocolo de internet(API):
Portas
Porta: por onde é feita a comunicação, ou seja, onde os dados são transferidos entre o dispositivo de entrada(input), o processador e o dispositivo de saída(output).Uma porta serve como um canal de um dispositivo que dá suporte a uma conexão ponto a ponto.
as PORTAS são usadas para armazenar de forma temporária os dados o processo de transferência entre o dispositivo e outro dispositivo. Quando um byte vai ser transferido do micro para a impressora, seu valor é escrito em uma destas posições e só então o comando de transferência é emitido. Quando a impressora está pronta para receber o dado, ele é lido daquela posição de memória e transferido através do cabo.
Uma "porta" é constituída por um trecho de memória composto por uma ou mais posições de armazenamento temporário e identificada pelo seu endereço de base, ou do byte de endereço mais baixo. Foram padronizados três endereços de base para serem usados como portas paralelas:
- 03BC
- 0378
- 0278.
Os nomes das portas são: LPT1, LPT2 e LPT3 (LPT deriva de Line PrinTer, ou impressora de linhas).
API e Webservices
API: ( Application Programming Interface) , funcionalidade que permite a comunicação entre dois sistemas.É atravéz no API que é formado um código que consequentemente gera um protocolo, no qual irá estabelecer a comunicação entre os sistemas.
Web service: é utilizada para a integração de sistemas e na comunicação entre diferentes aplicações, é esta tecnologia que permite que certas aplicações se interagem.São responsáveis que permitem às aplicações enviar e receber dados em formato XML. Cada aplicação pode ter a sua própria "linguagem", que é traduzida para uma linguagem universa(formato)
- XML
- Json
- CSV
O objetivo do web service não é apenas de realizar a comunicação entre sistemas(aplicações) via internet, mas também de facilitar essas comunicações e tornar as mesmas mais eficientes.
Sockets
Soquete de rede: Ponto de um fluxo de comunicação entre processos através de uma rede de computadores.
Uma API de soquetes é uma interface de programação de aplicativos , normalmente fornecida pelo sistema operacional, que permite que os programas de aplicação controlem e usem soquetes de rede.
Um endereço de soquete (socket address) é a combinação de um endereço de IP e um número da porta, muito parecido com o final de uma conexão telefônica que é a combinação de um número de telefone e uma determinada extensão. Com base nesse endereço, soquetes de internet entregam pacotes de dados de entrada para o processo ou thread de aplicação apropriado.
Um soquete de rede em um computador é definido como a união entre um endereço de IP e o número de uma porta do protocolo de transporte acessado por um programa que utiliza este protocolo.
Exemplos
1)sistemas de vendas de produtos e o sistema de Correios.
2)sistemas que exigem que o usuário se autentifique por meio do Facebook. (Ou seja, é uma comunicação entre o sistema e o facebook).
3)facebook e o outlook (para o usuário entrar no Facebook é necessário que ele informe o e mail para que o Facebook possa comunicar com o outlook para ver se o usuário é cadastrado (Ou seja, se tem e mail).
4)sistema de vendas: no qual se comunica com o seres a para conferir e autenticar o CPf do usuário.
5)youtube e facebook: pois para o usuário compartilhar,curtir ou descurtir algum vídeo é necessário que o usuário se autentifique por meio do login no Facebook.Ou seja, o youtube se comunica com o Facebook.
Referências bibliográficas
- Wikipedia
- clube do hardware
- youtube (vídeos referente ao assunto)*
- wikilivros
- technet
- http://www.ime.uerj.br/~alexszt/cursos/pc2/13-java-sockets.pdf
----------------------------------------------------------------------------------------------------


















