quinta-feira, 29 de maio de 2014

Armazém de Dados

Too Much Information
Um problema comum em muitas empresas hoje em dia é a quantidade de dados que se acumulam todos os dias em seus diversos setores e divisões, o que dificulta muito a filtragem dos mesmos e sua exposição de modo a apoiar as tomadas de decisão a nível estratégico e gerencial. Para isso, muitas plataformas e aplicações têm sido desenvolvidas, e hoje vamos falar de uma delas: o Armazém de Dados.

Data Warehouse
Os Armazéns de Dados, também conhecidos como Data Warehouses, são grandes coleções de dados, oriundos de diversas fontes, relacionados e estruturados de forma a permitir pesquisas e manipulação de dados relevantes de forma rápida e centralizada, obtendo relatórios, gráficos e tabelas consolidados, para permitir melhor análise dos dados possuídos.

Como funcionam?
Há duas vertentes principais de funcionamento de Armazéns de Dados:

Extract - Transform - Load
Esse modelo opera extraindo os dados de seus diversos bancos afiliados e fontes externas e carregando em 'Staging Databases', e são concatenados na chamada camada de integração, para depois serem postos no Armazém propriamente dito, onde são agrupados e podem ser acessados para obter as informações necessárias.

Fontes de Dados Integradas
Os Armazéns que se utilizam deste paradigma integram seus sistemas e bancos de dados diretamente ao Armazém, não havendo transformação alguma nos dados para integração, nem nada parecido. Os sistemas são apenas indexados e consolidados nos bancos de dados do Armazém de Dados.

Armazéns no Mercado
Algumas das principais empresas do mercado nessa área oferecem soluções de Data Warehousing, como por exemplo:
- Oracle Exadata: Solução da empresa Oracle,composta do software já integrado com hardware para funcionamento do Banco de Dados;

Outras empresas oferecem plataformas de operação de Armazéns de Dados, cada uma com seu público alvo, e suas peculiaridades. A oferta é grande.

Armazenando...
Com todas as facilidades trazidas pelos Data Warehouses, eles irão cada vez mais fazer parte das organizações que trabalham com qualquer tipo de sistema de informação e que necessite de informações para tomadas de decisão. Por isso, são uma ferramenta intimamente ligada à nossa profissão, e que devemos aprender a utilizar. 

Bancos de Dados

Bancos de Dados
Com a recente popularidade dos bancos de dados, muito se fala deles, muita gente procura quem saiba mexer neles, mas, afinal, quem são eles?

Grosso modo, um banco de dados é uma coleção organizada de dados. Para serem úteis no processo de obtenção de informações relevantes a partir destes dados, eles tem de ser modelados, de forma que representem aspectos da realidade, facilitando a utilização destes dados para o fim a que se destinam.

Os SGBDs, ou Sistemas de Gerenciamento de Banco de Dados, são softwares utilizados para intermediar a interação de usuários e de outras aplicações com o banco de dados, permitindo a criação, administração, definição e diversas outras operações com bancos de dados.

Modelagem 

Para permitir a estruturação lógica do armazenamento do banco de dados, é necessário criar um modelo, que nada mais é do que a forma como esses dados serão armazenados, organizados e manipulados. Alguns tipos comuns de modelagem lógica de Bancos de Dados incluem os modelos relacional, hierárquico, e modelo de relação de entidades. Vamos falar um pouco do modelo relacional, que é o modelo mais em voga atualmente.

O Modelo Relacional
Este modelo trabalha basicamente com dados estruturados em algo semelhante a tabelas. Essas tabelas são chamadas de relações, que, por sua vez, são compostas de 'tuples', que são sequências de pares ordenados de domínios e valores. O sucesso deste modelo se deve principalmente à simplicidade de sua implementação e sua eficiência.

Apesar de não haver relação direta entre elas, a maioria dos SGBDs relacionais se utilizam do SQL (Structured Query Language), por ser uma plataforma amplamente difundida e consolidada para manipulação e criação de bancos de dados.

Salvando
Os bancos de dados vieram mudar a forma como nos utilizamos da informática nos sistemas de informação, tornando muito mais fácil manipular os dados e consultá-los de forma eficiente. Por isso, são excelentes auxiliares em qualquer organização, e são considerados um conhecimento fundamental para qualquer profissional da área de Sistemas de Informação.

Computação nas Nuvens

O que é Computação nas Nuvens?
Computação nas Nuvens é a utilização de um recurso computacional remoto para execução de programas, armazenamento de dados ou outras tarefas computacionais através de uma conexão de rede de forma transparente, ou seja, sem que seja necessário se preocupar com a estrutura de rede, ou os canais de comunicação. Ela é utilizado principalmente quando os recursos computacionais locais são escassos ou não é conveniente, seguro ou eficiente mantê-los localmente.

Muitas empresas oferecem esse tipo de serviço hoje em dia, comercializando poder computacional ou capacidade de armazenamento, ou mesmo uma solução própria para determinada aplicação, sem que o cliente tenha que pensar em fatores como infraestrutura, suporte, localização, etc.

Modelos de Computação nas Nuvens
Os atuais modelos de computação nas nuvens são:
- Software as a Service (Software como um Serviço):  uma solução completa como um serviço, de modo que o cliente a utiliza para suas atividades sem necessitar nem da infraestrutura, nem da aquisição de softwares. Exemplos: e-mails, CRM, jogos.
-Platform as a Service (Plataforma como Serviço): uma plataforma de computação completa, com todos os recursos necessários para sua utilização embutidos na mesma, para a execução de um software utilizado pelo cliente remotamente, de modo que ele apenas trabalha no desenvolvimento da solução propriamente dita, e não dos recursos necessários para seu funcionamento. Exemplos: bancos de dados, servidores web, ferramentas de desenvolvimento, etc.
- Infrastructure as a Service (Infraestrutura como um Serviço): é a oferta de recursos computacionais brutos remotamente, provendo armazenamento de dados ou máquinas virtuais gerenciadas pelo provedor do serviço para a distribuição do poder de processamento de seu datacenter entre os diversos clientes. Exemplos: máquinas virtuais, servidores de dados, etc.

Quem está oferecendo esse serviço?
IBM, Dell, Oracle, Embratel, LocaWeb são algumas das empresas que oferecem esse serviço. Muitas outras empresas de grande porte tem trabalhado com alguma solução no âmbito de Computação nas Nuvens, tendo em vista a procura crescente por esse tipo de estrutura.

Quais as vantagens e desvantagens?
Dentre as vantagens, destacam-se: o baixo custo do recurso para o cliente final, a relativa facilidade de escalonamento dos recursos para as novas necessidades, e a desnecessidade de preocupação com fatores como infraestrutura e suporte técnico.

Como desvantagens, vêm logo à mente: segurança, devido à terceirização do serviço, indisponibilidade por problemas de rede, incerteza sobre redundância, entre outras preocupações relativas à entrega de dados e sistemas críticos da empresa para terceiros.

To Cloud or not to Cloud?
A Computação em Nuvem tem se mostrado uma ótima solução para algumas empresas, principalmente as pequenas empresas, que, muitas vezes, não dispõem de pessoal, recursos e infra-estrutura para ter seus próprios data-centers e servidores, preferindo, portanto, deixar essa tarefa para empresas com mais experiência e capacidade para isso.

No âmbito das grandes empresas, porém, por questões de segurança, disponibilidade e integridade, a maioria prefere ter suas próprias soluções, com clusters e servidores privados, em alguns casos, até disponibilizando suas 'sobras' de recursos como IaaS para empresas menores ou usuários comuns.

O futuro da Computação em Nuvem certamente ainda guarda muitas surpresas, e só o futuro dirá que novos rumos ela irá tomar.

Novas Tecnologias - Uma visão geral

Novidades na área!
As novas tecnologias surgem todos os dias em diversas áreas, criando, aperfeiçoando e modificando paradigmas, e mudando as formas com que desempenhamos tarefas cotidianas. Nessas ondas de lançamentos, o que nós temos visto de realmente inovador? Quais as tendências? O que será que podemos aplicar de fato? Seguem algumas áreas da tecnologia, e uma breve análise das mesmas.

Interação com o Ambiente
A Google está pesquisando uma tecnologia de interação para smartphones e tablets, sob o codinome de 'Project Tango'. O projeto tenta, a partir de diversas câmeras e sensores, permitir que o aparelho 'perceba' o ambiente de forma parecida com a percepção dos sentidos de um ser humano. Isso segue uma tendência geral em direção à maior imersão e facilidade de uso das tecnologias. A novidade pode ser utilizada para análises tridimensionais, navegação em ambientes, e até mesmo em jogos.

Reconhecimento de Voz
A Microsoft está prestes a lançar uma função do Skype que permite a tradução simultânea de conversas entre dois idiomas. A versão inicial do serviço daria suporte a 40 idiomas, e tem previsão de lançamento para o final do ano. As tecnologias que envolvem a voz humana tem evoluido muito nos últimos anos, com vemos nos aparelhos comandados por voz, e a área da comunicação entre as pessoas tem muito a ganhar com isso.

Armazenamento de Dados
Os HDs formados por discos magnéticos têm perdido espaço no mercado para as memórias de estado sólido, devido à seu reduzido tamanho e leveza, que os tornam mais adequados para dispositivos portáteis, por exemplo. Porém, a Western Digital tenta reverter esse quadro lançando um novo disco encapsulado com gás hélio, em vez de ar. As características do gás reduzem a turbulência gerada pela rotação do disco, permitindo que os discos fiquem mais próximos e sejam mais econômicos, aumentando a densidade dos mesmos. Com isso, é possível aumentar a capacidade dos HDs magnéticos e recuperar um pouco da competitividade para com o seu novo nemesis.

Pra onde vamos?
As novas tecnologias têm caminhado cada vez mais no sentido de serem mais acessíveis, mais fáceis de manipular, e mais agradáveis aos sentidos humanos. A 'humanização' da informática, tornando as interações mais transparentes, e os meandros intricados da tecnologia necessária para que tudo funcione cada vez mais escondido atrás de interfaces, telas de alta definição e sensores de movimento, entre outros. Ao que parece, de tanto evoluir, descobrimos que o mais importante nisso tudo é o ser humano.

(Post criado em 28/05/2014. A data de publicação foi alterada para melhor visualização do blog.)

Fundamentos de SI

Fundamentos de Sistemas de Informação
Nada melhor do que começar os estudos com uma definição do que se está estudando: o que são Sistemas de Informação?

Sistemas de Informação são sistemas, automatizados ou não, compostos por pessoas, máquinas ou métodos, integrados com a finalidade de manipular dados e gerar informação útil para o seu usuário.

Epa! Cadê os computadores?
A partir da definição, vemos que a parte aplicada à informática é apenas uma pequena fração do que são os Sistemas de Informação como um todo. Nossa formação acadêmica deve nos tornar capazes de administrar não somente o aspecto tecnológico, mas deve abranger também a análise de requisitos, os estudos da necessidade da organização em que atuamos, entre outras tarefas 'braçais'.

Este blog ao longo do tempo.
Neste blog, com o correr do período, postarei atualizações com conteúdo de acordo com os temas solicitados pelo professor, de modo a aprender um pouco do que são os Sistemas de Informação, e como nosso curso vai trabalhar com eles.

(Post criado em 28/05/2014. A data de publicação foi alterada para melhor visualização do conteúdo do blog.)