segunda-feira, 21 de fevereiro de 2011

Aula 03 - Princípios Fundamentais da Computação Ubíqua

Para quem nunca antes tinha ouvido muito de computação ubíqua nossas duas primeiras aulas foram, digamos, de deixar qualquer um de queixo caído. Seja por viajar muito nas ideias dessa coisa toda chamada ubiquidade apresentada nessas aulas ou mesmo por desacreditar que países como Brasil, Rússia China e Índia (BRICs), nunca consigam chegar, de fato, a usufruir de tal paradigma (seria isso apenas um paradigma?)


Mais especificamente na terceira aula, eu pensei que seria mais viagem por parte do professor, mas me enganei totalmente, foi nessa aula que colocamos os pés no chão e nos demos conta do quanto há a ser vencido e do quanto há a ser trabalhado para se colocar em prática tudo aquilo visto nas aulas 1 e 2.

Mais especificamente esta 3ª aula falou dos Princípios Fundamentais da Computação Ubíqua, dos quais posso citar: Descentralização; Diversificação; Conectividade e Simplicidade. Lembrando que todos foram apresentados formalmente e logo em seguida foram feitos questionamentos a respeito de cada um.Aprofundado-se um pouco mais em cada um desses princípios temos que na computação ubíqua cada dispositivo fica encarregado de executar uma tarefa específica, dado isso podemos dizer que os computadores deixam de centralizar as tarefas, ou seja, deixa "de mão" toda a responsabilidade computacional para torná-la distribuída entre os vários dispositivos existentes na computação Ubíqua. Esse é o princípio da Descentralização.

Dado o princípio da Descentralização temos que vários dispositivos, cada um com sua função específica, irão interagir em um ambiente comum. Ficando a cargo dos sistemas computacionais definir qual o mais adequado para executar determinado serviço. Isto nos dá um aspecto geral do segundo princípio, que trata da Diversificação dos vários dispositivos que interagem entre si na computação ubíqua. É claro que fica a cargo dos próprios sistemas identificar qual destes é mais apropriado para executar determinada tarefa de acordo com seu formato, capacidade, tamanho, etc.


Vimos que um princípio leva a outro e não seria diferente com o princípio da Conectividade. Pois aqui (na computação ubíqua) a ideia de um mundo sem fronteiras é possível. Tudo isso sobre uma grande rede Heterogênea e com padrões suficientemente robustos para englobar os mais diversos tipos de dispositivos apresentados no princípio anterior.

Por fim, mas não menos importante temos o princípio da Simplicidade. Ele prega que tudo isso deve ser executado da forma mais simples possível. É aqui que entra a ideia dos dispositivos invisíveis visto na segunda aula e aquela famosa frase, em uma tradução livre, de Mark Weiser "(...) as tecnologias mais profundas e duradouras são aquelas que desaparecem". Acho que esse desaparecer é tornar o processo tão simples a ponto de deixá-lo habitual, como o ato de escovar os dentes ou almoçar usando talheres (para as culturas ocidentais).

Paralelamente falamos de "Ecossistema de Software", segundo a Wikipédia Ecossistema nada mais é que "(...) o conjunto formado por todas as comunidades que vivem e interagem em determinada região e pelos fatores abióticos que atuam sobre essas comunidades." Mas como não estamos falando de biologia e sim de Computação Ecossistema de Software ao meu ver é o conjunto formado por todas as soluções, tecnologias, hardware, etc que interagem em torno de um determinado Software desenvolvido com um fim específico, formando assim um ecossistema em torno daquele Software. O Adroid, bem como os últimos produtos desenvolvidos pela Apple são um bom exemplo disso.

Nessa aula também tivemos a participação de termos como "Possíveis Estratégias" e " Desenvolvimento de Padrões" dentro do ambiente de computação ubíqua.

Concluo esse pequeno resumo de aula concordando em parte com o professor Licoln quando este fala que tecnologia suficiente para se criar um ambiente ubíquo nós temos, mas acho que dado as barreiras tecnológicas das quais nosso povo (brasileiro) é obrigado a suportar e nossa cultura do conformismo, ainda temos que vencer muito obstáculos (sem contar os questionamento feito em sala de aula) para trazermos para a minha ou para a sua casa ou mesmo para nossa cidade ou estado aquilo apresentado até o momento (vejam que não estou falando de um grupo específico e sim da aplicação das ideias aqui apresentadas no dia a dia de cada um).

As notas de aula referentes a esta aula, ministrada em 21/02/2011, podem ser baixadas aqui.


Todos as Imagens utilizadas nesta postagem são oriundas da própria Internet, todos os direitos reservados a seus respectivos autores. Imagens usadas com a finalidade de resenha.

Aula 2 - Introdução a Computação Ubíqua

A história da computação pode ser dividida em três grandes fases que são caracterizadas pela forma como os usuários interagiam com os computadores. Na primeira fase , temos a era dos mainframes, que eram grandes computadores que serviam a vários usuários de uma organização. Na segunda fase, temos a era dos micro computadores, que se caracterizou pela utilização de um computador por usuário e possibilitou a disseminação de aplicativos comerciais e de escritórios. A terceira fase, pode-se dizer que é a fase que estamos agora, em que há uma variedade enorme de dispositivos eletrônicos com poder computacional, que fornecem conjuntamente serviços para o usuário.

Não obstante, termo computação ubíqua não é tão recente assim, ele foi cunhado por Mark Weiser, um cientista do laboratório de pesquisa da Xerox, que na época também definiu os termos Calm Technology e Disappear Computing, e criou uma escala de dispositivos para classificar produtos eletrônicos.

A computação ubíqua possui várias características fundamentais, como a proatividade das aplicações e a execução de tarefas de foma imperceptível para o usuário. Mas esta também apresenta características da computação móvel e da pervasiva, estando na interseção dessas grandes áreas, pois apresenta um grande grau de mobilidade e embarcamento.

A computação ubíqua, embora seja mais conhecida no meio acadêmico, já apareceu bastante em filmes, como minority report, que mostravam cenários futuristas, que hoje já não são tão futuristas assim, pois algumas dessas tecnologias apresentadas como futuristas nos filmes já se encontram disponíveis para usuários domésticos.

Os fatores que têm contribuído para a disseminação da computação ubíqua estão relacionados com sua aplicação em diferentes domínios, todos com o intuito de auxiliar as pessoas na execução de tarefas rotineiras, como por exemplo, ir ao médico, viajar, fazer negócios, dentre outros.

Contudo, a computação ubíqua enfrenta vários desafios, pois conta com uma gama de dispositivos heterogêneos que precisam se comunicar uns com os outros através de diferentes redes. O que se torna ainda mais difícil quando soma-se a complexidade das aplicações terem que acompanhar o usuário, proverem serviços personalizados, responderem a estímulos do ambiente e fazerem isso tudo de forma autônoma.

Os desafios nos levam a algumas questões fundamentais sobre a forma pela qual as aplicações devem ser desenvolvidas. O que nos leva a pensar em como navegar entre diferentes redes de forma imperceptível, como descobrir serviços e como projetar uma aplicação para ser executada em diferentes dispositivos.

As notas de aula referentes a esta aula, ministrada  em 15/02/2011, podem ser baixadas aqui.

Aula 1 - Introdução ao Curso

A computação ubíqua tem como finalidade tornar o uso dos computadores mais amigáveis e agradáveis. Para tanto, a computação tem se tornado onipresente auxiliando as pessoas na execução de suas tarefas de uma maneira quase imperceptível. No entanto, para atingir estes objetivos, tem-se a criação de novos cenários, em que emergem novos paradigmas e desafios no desenvolvimento de software. Diante disso, o estudo de técnicas de desenvolvimento de software para computação ubíqua, observando as boas práticas de engenharia de software, tem se tornado extremamente importante.

Neste contexto, a disciplina de Tópicos IV tem como objetivos apresentar aos alunos os principais conceitos envolvidos no processo de desenvolvimento de aplicações para computação ubíqua e mostrar as principais tecnologias envolvidas nesse processo.

A disciplina é ministrada professor Lincoln Souza Rocha (email: lincolnrocha [at] ufc [dot] br - twitter: @lincolnsrocha) e possui encontros presenciais às segundas e terças-feiras em sala de aula.

Vejam alguns vídeos ilustrativos/motivadores sobre Computação Ubíqua apresentados na primeira aula da disciplina em ordem cronológica mostrando as visões futuristas ao longo do tempo:

HP CoolTown Video

Microsoft Future Vision: Healthcare

Microsoft Sustainability: Productivity, Future Vision

A Day made of Glass

As notas de aula referentes a esta aula, ministrada em 14/02/2011, podem ser baixadas aqui.