quinta-feira, 26 de julho de 2007

Grid Computing


O que é Grid Computing?
O termo Grid foi usado inicialmente nos anos 90, no meio acadêmico. Foi originalmente proposto para denotar um sistema de computação distribuída que deveria prover serviços computacionais
sob demanda, da mesma forma que as grades de energia elétrica e de água fazem.

Características
Recursos coordenados que não se sujeitam a um controle centralizado (sistemas em Grid podem englobar recursos entre os mais variados tipos, desde o desktop de um usuário até um supercomputador. Pode haver um controle local em uma empresa, mas não existe um controle central para todo o grid)
Utilizar padrões abertos, interfaces e protocolos de propósito geral. (a utilização de protocolos e padrões abertos é essencial para que os sistemas em Grid possam realizar funções fundamentais como autenticação, autorização, descobrimento de recursos e acesso a eles, sem perder a capacidade de escalar e interagir com diferentes plataformas de hardware e software)

Prover o mínimo em qualidade de serviços (como segurança, tempo de resposta e disponibilidade)


Benefícios
Explorar recursos subutilizados e recursos adicionais (Recursos que podem ser utilizados: ciclos de CPU, espaço em disco, conexões de rede, equipamentos científicos)

Capacidade de processamento paralelo (Uma aplicação escrita utilizando-se de algoritmos e técnicas de programação paralela pode ser dividida em partes menores e estes podem ser separados e processados independentemente. Cada uma destas partes de código podem ser executadas em uma máquina distinta no Grid, melhorando a performance)

Dispositivos e organizações virtuais (Recursos e máquinas podem ser agrupados e trabalharem juntos formando o que pode ser chamado de uma Organização Virtual )

Confiabilidade (Utilizando-se uma abordagem baseada em Grids, com máquinas
espalhadas em diversos lugares diferentes, quando uma falha atinge uma parte do Grid as
demais podem continuar sua operação normalmente)


Tipos de Grid
Ciclos de processamento são os recursos compartilhados neste tipo.
Existem três formas de explorar os recursos computacionais em um grid:
- Executar uma aplicação em qualquer máquina disponível do grid, independentemente de onde esteja localizada;
- Quebrar o aplicativo em partes menores para que estas possam ser executadas paralelamente através do grid;
- Executar uma tarefa que precisa rodar várias vezes em diferentes máquinas do grid.


Grids de dados
O espaço de armazenamento disponível em cada máquina é compartilhado pelo grid. Desta forma aumenta a capacidade de armazenamento como um todo, além de aumentar a performance, compartilhamento e confiabilidade dos dados. Utilizando todo o espaço como se fosse um sistema de arquivos só para todo o grid facilita a localização de determinado arquivo, sendo que este pode estar dividido em partes menores e espalhado pelas máquinas participantes. Sistemas de gerenciamento podem duplicar dados sensíveis em várias máquinas provendo uma redundância.


Grids de rede
Este tipo de grid tem como principal funcionalidade prover serviços de comunicação tolerantes a falhas e com alta performance. Máquinas com conexões ociosas podem ser utilizadas para enviar porções de dados ou prover redundância nas transmissões.

Padrões
A utilização de padrões é um requisito para os Grids. Os padrões estão sendo desenvolvidos pelo Global Grid Forum, uma entidade que possui centenas de membros, representando mais de 400 organizações e empresas em mais de 50 países. Os padrões desenvolvidos:

Open Grid Services Architecture (OGSA): define o que são os serviços e toda a estrutura que pode ser provida em um ambiente grid . É baseada nos padrões já definidos para os Web Services e considera um serviço em um grid como um Web Service com algumas particularidades

Open Grid Services Infrastructure (OGSI): OGSI é a especificação concreta da infraestrutura da OGSA. Baseado nas tecnologias de Grids e Web Services, é o middleware para os chamados grid services, ou serviços do Grid, definindo como construir, gerenciar e expandir um serviço.

Globus Toolkit: implementação das especificações OGSA/OGSI. Bindings para C e Java. Usando os Commodity Grid Toolkits é possível trabalhar em outras linguagens como Python, Perl, entre outras.

IBM Grid Toolbox: versão comercial do Globus. C e Java . Legion
Ourgrid : projeto brasileiro desenvolvido pela Universidade Federal de Campina Grande.
JavaFerramentas comerciais: Platform LSF, Avaki Grid Server, . Diversas ferramentas para portais de Grids: Grid Portal Development Kit. Legion Grid Portal. GridPort. Sun Techical Computing Portal. GridSphere.

Fonte

Minix


Para fonte de pesquisas e novas tecnologias, muito bom o Minix...

O Minix é um sistema operacional Unix-like (semelhante ao UNIX), gratuito e com o código fonte disponível.
Multiprogramação por completo (múltiplos programas podem correr ao mesmo tempo ).
Roda em 286, 386, 486, Pentium.
Suporta memória extendida (16MB no 286 e 4GB no 386, 486 e Pentium ou superior).
RS-232 serial line suporte com terminal emulation, kermit, zmodem, etc.
Máximo de três usuários simultaneamente na mesma máquina.
Sistema de chamada compatível com POSIX.
Inteiramente escrito em C (SO, utilitários, bibliotecas etc.).
Compilador ANSI C.
Shell funcionalmente idêntico ao Bourne shell.
Rede TCP/IP.
5 editores (emacs subset, vi clone, ex, ed, and simple screen editor).
Mais de 200 utilitários (cat, cp, ed, grep, kermit, ls, make, sort, etc.).
Mais de 300 bibliotecas (atoi, fork, malloc, read, stdio, etc.).


A idéia inicial do Minix era ser um clone do Unix. Desta forma, os comando básicos do Minix são os mesmos disponíveis em sistemas Unix como, por exemplo, no Linux. Os dois principais editores de arquivos do Minix são vi e elle (ELLE Looks Like Emacs). Um manual de referencia para o vi pode ser obtido em http://drumlin.thehutt.org/vi/.
A seguir são mostrados alguns comandos Minix/UNIX necessários para começar a utilizar o sistema.
Criar um diretório: $ mkdir directory name
Acessar um diretório: $ cd directory name
Listar o conteúdo do diretório corrente. $ ls -l
Apagar um arquivo: $ rm filename
Compilar um programa: $ cc hello.c
$ ./a.out

# ou
$ cc -o hello hello.c
$ ./hello
Mudar as permissões de um arquivo: # neste caso, adicionar permissão de execução a um arquivo
$ chmod +x filename
Executar um programa: # em background
$ ./filename&

# em foreground
$ ./filename
Executar um shell script: $ sh filename
Exibe estado e PID dos processos em execução: $ ps -x
Matar um processo: $ kill pid
Para mais informações:
Lista completa dos comando disponíveis no Minix 2.0.4 (Minix Manual Pages): http://minix1.woodhull.com/current/2.0.4/wwwman/

terça-feira, 24 de julho de 2007


Uma IDE para auxiliar na administração (Cliente SubVersion) dos sources do SubVersion. Muito boa!!!!
Download


Subversion


Fantástica ferramenta para controle de versão de suas aplicações. Acho bem melhor que o CVS.

domingo, 22 de julho de 2007

Detalhes do meu Curriculo

Detalhes

NetBeans

Fabulosa IDE de desenvolvimento Java.
Segue abaixo o link da melhor IDE de desenvolvimento Java. Agora com suporte para C++. Uso diariamente o NetBenas e não deixa a desejar a nenhuma IDE. Já programei com JBuilder, VisualStudio 2005, Eclisse e sem sombras de duvidas o NetBeans está 100%. Parabéns para equipe da Sun. A versão traduzida também está muito boa, mas ainda prefiro a versão em inglês.


O que você ganha quando baixa o NetBeans



Mobility 5.5.1 ML Installer

Desenvolver aplicações para seu celular. Existe uma ferramenta chamada NetBeans Mobility 5.5.1 ML Installer, em segundos já é possível gerar seu Midlet e já transferir para seu celular. Ferramenta realmente é simples de usar, com desenhos gráficos e links de telas vc consegue fazer uma aplicação e já deixar as rotinas de navegação 100% construídas. Infelizmente ou felizmente quase não é necessário saber Java para fazer a aplicação. Vale dar uma olhada.




NetBeans C/C++ Pack 5.5.1 Installer.
Para as pessoas que adoram C/C++, o NetBenas suporta este tipo de desenvolvimento, ainda não usei, mas segundo as pessoas que necessitaram deste recurso não falaram maus.



NetBeans Visual Web Pack 5.5.1 Installer
Não poderia faltar, com esta onda de website, de agilidade no desenvolvimento de aplicações web o NetBeans também não deixa a desejar. Existe uma ferramenta que vem agregada a ferramenta que facilita o desenvolvimento das paginas utilizando o conceito “drag and drop”. Olha, não sou muito fan de aplicações Web (HTML, JavaScript, CSS etc), mas com o NetBeans Visual Web ficou tudo muito fácil, realmente o pessoa está de parabéns. Mais uma vez tenho que ressaltar, nem é necessário ser desenvolvedor Java para fazer uma linda página Web....



JUDE



Engenharia de Software
Para quem não quer gastar dinheiro, segue uma fantástica ferramenta para modelagem de Software. Uso muito nas consultorias que faço e ajuda muito. Antes de começar a desenvolver faço um desenho da aplicação para ver como vai ficar a arquitetura. Simples e fácil de usar.