Mostrando postagens com marcador Informática. Mostrar todas as postagens
Mostrando postagens com marcador Informática. Mostrar todas as postagens

segunda-feira, 31 de agosto de 2009

Introdução ao REST




A Transferência de Estado Representacional (Representational State Transfer) ou somente (REST) é uma técnica de engenharia de software para sistemas hipermídia distribuídos como a World Wide Web. O termo se originou no ano de 2000, em uma tese de doutorado[1] (PHD) sobre a web escrita por Roy Fielding, um dos principais autores as especificação doprotocolo HTTP que é utilizado por sites da internet.

" A REST (Transferência do Estado Representacional) é pretendida como uma imagem do design da aplicação se comportará: uma rede de websites (um estado virtual), onde o usuário progride com uma aplicação selecionando as ligações (transições do estado), tendo como resultado a página seguinte (que representa o estado seguinte da aplicação) que está sendo transferida ao usuário e apresentada para seu uso."
—Dr.Roy Fielding

O termo REST se referia, originalmente, a um conjunto de princípios de arquitetura, na atualidade se usa no sentido mais amplo para descrever qualquer interface web simples que utiliza XML e HTTP (ou YAML, JSON, ou texto puro), sem as abstrações adicionais dos protocolos baseados em padrões de trocas de mensagem como o protocolo de serviços web SOAP. 

É possível desenhar sistemas de serviços web de acordo com o estilo arquitetural REST descrito por Fielding, e também é possível desenhar interfaces XML HTTP de acordo com o estilo de RPC mas sem utilizar SOAP. Estes usos diferentes do termo REST causam certa confusão em discussões técnicas, onde RPC não é um exemplo de REST.

Os sistemas que seguem os princípios REST são freqüentemente chamados de RESTful; os defensores mais ferrenhos do REST são chamados pelos mesmos de RESTafarianos.

Princípios

REST afirma que a web já desfrutou de escalabilidade como resultado de uma série de desenhos fundamentais chaves:

Um protocolo cliente/servidor sem estado: cada mensagem HTTP contém toda a informação necessária para compreender o pedido. Como resultado, nem o cliente e nem o servidor necessitam gravar nenhum estado das comunicações entre mensagens. Na prática, muitas aplicações baseadas em HTTP utilizam cookies e outros mecanismos para manter o estado da sessão (algumas destas práticas, como a reescrita de URLs, não são permitidas pela regra do REST).

Um conjunto de operações bem definidas que se aplicam a todos os recursos de informação: HTTP em si define um pequeno conjunto de operações, as mais importantes são POST, GET, PUT e DELETE. Com freqüência estas operações são combinadas com operações CRUD para a persistência de dados, onde POST não se encaixa exatamente neste esquema.

Uma sintaxe universal para identificar os recursos. No sistema REST, cada recurso é unicamente direcionado através da sua URI.

O uso de hipermídia, tanto para a informação da aplicação como para as transições de estado da aplicação: a representação deste estado em um sistema REST são tipicamente HTML ou XML. Como resultado disto, é possível navegar com um recurso REST a muitos outros, simplesmente seguindo ligações sem requerer o uso de registros ou outra infraestrutura adicional.


segunda-feira, 17 de agosto de 2009

15/08 - dia da informática

No dia 15 de agosto, comemora-se o Dia da Informática, tecnologia que, desde seu surgimento, vem revolucionando o mundo. Neste dia do ano de 1946, surgiu a Eniac, o primeiro equipamento que mereceu ser chamado de computador. Apesar de operar com válvulas, o Eniac era totalmente eletrônico e processava dados com eficiência.

Aqui vai um retrospectiva da evolução desta maquina que é o computador:

Em 1946 surgia o primeiro computador da história nos EUA, o ENIAC, abreviação para Electronic Numerical Integrator and Computer.

Já em 1957 surge o Univac, foi a vez de o Brasil ter seu primeiro grande computador. O governo de São Paulo comprou um mainframe Univac, da empresa que viria a ser a Unisys.

Surge então o microprocessador (1971) , a Intel desenvolve o primeiro microprocessador de uso geral que executava 60 mil instruções por segundo.

A Apple introduz em 1977 o primeiro PC pessoal. Quatro anos depois veio o 5150, da IBM, seguido pelo Macintosh, também da Apple, em 1984.

O Brasil se conecta à internet em outubro de 1988, estabeleceu o primeiro contato do país com a internet graças à conexão feita com a universidade americana de Maryland.

Finalmente em 1991 acontece a primeira conexão à internet no Brasil. Em 1995 começa a internet comercial, entidade responsável pela rede mundial de computadores no Brasil.

1995 é lançado o Windows 95, da Microsoft. A interface mais amigável do aplicativo é usada até hoje.

Em 2008 com 11 anos de internet comercial, o Brasil é o líder mundial em tempo navegado. Essa tecnologia evoluiu de forma realmente espantosa quando comparada à outros tipos de evoluções.

É certo que devemos estar sempre atualizados, digo em todas as áreas atuantes, mas na informática o ritmo é intenso, tudo muda o tempo todo.


quinta-feira, 23 de julho de 2009

Sopa de Letrinhas ...

Meu artigo Sopa de Letrinhas publicado novamente.

Desta vez no site da revista Active Delphi

Para ler o artigo é preciso estar "logado" no site da revista.

Aqui vai o link :

http://www.activedelphi.com.br/modules.php?op=modload&name=News&file=article&sid=848

Mais artigos "no forno" .... aguardem !.

Abraços.

sexta-feira, 5 de junho de 2009

Sopa de letrinhas















SOA, RIA, SAAS, WEB 2.0, CLOUD ....


Até parece uma sopa de letrinhas tantas siglas juntas, mas estas são as 5 tendências do momento quando se fala de tecnologia da informação, portanto é melhor ir se acostumando.

Para ajudar aqui vai um pouco mais sobre o assunto:


1. SOA - Service-oriented architecture - pode ser traduzido como arquitetura orientada a serviços, e é um estilo de arquitetura de software cujo princípio fundamental preconiza que as funcionalidades implementadas pelas aplicações devem ser disponibilizadas na forma de serviços.

2. WEB 2.0 - termo criado em 2004 pela empresa estadunidense O'Reilly Media para designar uma segunda geração de comunidades e serviços, tendo como conceito a "Web como plataforma", envolvendo wikis, aplicações baseadas em folksonomia, redes sociais e Tecnologia da Informação. Embora o termo tenha uma conotação de uma nova versão para a Web, ele não se refere à atualização nas suas especificações técnicas, mas a uma mudança na forma como ela é encarada por usuários e desenvolvedores, ou seja, o ambiente de interação que hoje engloba inúmeras linguagens e motivações.

3. RIA - Aplicações de Internet Rica - da sigla em inglês RIA - Rich Internet Application são Aplicações Web que tem características e funcionalidades de softwares tradicionais do tipo aplicativo. RIA típicos transferem todo o processamento da interface para o navegador da internet, porém mantém a maior parte dos dados (como por exemplo, o estado do programa, dados do banco) no servidor de aplicação.

4. SAAS - Software como serviço - do inglês Software as a service, é um instrumento mercadológico para fornecer software, parecido com o Serviço web.É uma forma de software que é usada como serviço, ou seja, é executado diretamente na internet, não sendo necessário instalar seus códigos no computador do usuário, bastando acessá-lo por meio do navegador de internet disponível no sistema operacional. São os chamados SaaS (software-as-a-service). Como exemplo, tem-se o Google-Docs que oferece um pacote de programas similares aos dos Office.

5. CLOUD COMPUTING - A nuvem computacional ou cloud computing é um modelo de computação em que dados, arquivos e aplicações residem em servidores físicos ou virtuais, acessíveis por meio de uma rede em qualquer dispositivo compatível. Basicamente, consiste em compartilhar ferramentas computacionais pela interligação dos sistemas, semelhantes as nuvens no céu, ao invés de ter essas ferramentas localmente (mesmo nos servidores internos). O uso desse modelo (ambiente) é mais viável do que o uso de unidades físicas

É isso ai pessoal .... um abraço e até o próximo post.



quinta-feira, 4 de junho de 2009

Eco Developers 2009


Olha a gente ai ... conhecendo as novidades da Microsoft ...

SharePoint , Windows 7, Windows Azure, IIS 7.0 ... e um time de profissionais de excelencia.



sexta-feira, 22 de maio de 2009

Introdução ao TDD

Introdução ao Desenvolvimento Orientado a Testes (TDD)

Test-Driven Development (TDD) ou Desenvolvimento Orientado a Testes é uma maneira diferente de escrever software. A diferença entre esta abordagem e a que você provavelmente está acostumado é que com TDD você vai evoluindo seu código aos poucos, conforme vai explorando o problema com o uso de testes automatizados escritos antes da solução sequer existir.

Algumas vantagens desta abordagem são:

  • * Incentiva a simplicidade: como a solução vai surgindo pouco a pouco, a tendência é que não se perca tempo com aquilo que não tem certeza que será usado em seguida. Expressões como “You Ain’t Gonna Need It (YAGNI)” e “Keep It Simple, Stupid (KISS)” são recorrentes quando se está programando orientado a testes.

  • * Aumenta a confiança no código: o sistema funciona de uma determinada maneira porque existem testes que foram utilizados durante sua criação e validam o que foi criado. E se ainda assim algum erro surgir, um novo teste é criado para reproduzí-lo e garantir que depois de solucionado ele não irá se repetir.

  • Ajuda como documentação: os testes quando bem definidos são mais simples de ler que o código e, embora nem sempre sirvam como uma especificação para o usuário final, eles são uma fonte eficiente para entender o que o software faz. Além disso, esta documentação sempre estará atualizada com a aplicação.

  • Facilita refactorings: quanto mais testes existem no sistema, maior é a segurança para fazer refactorings. Um erro causado por algum refactoring dificilmente vai passar desapercebido quando um ou mais testes falharem após a mudança.

Em TDD, um teste é um pedaço de software. A diferença entre teste e o código que está sendo produzido é que os testes têm 2 funções principais:

  • De especificação, ou seja, definir uma regra que seu software deve obedecer
  • De validação, ou seja, verificar que a regra é obedecida pelo software

Geralmente os testes são criados com algum framework do tipo xUnit (jUnit, nUnit Test::Unit etc) , mas também podem ser feitos num nível de funcionalidades (através de softwares como o FitNesse e Selenium) . Estas ferramentas servem basicamente para organizar os testes e facilitar na criação das verificações.

O processo de criação de programação orientado a testes é simples:


1. Escreva um teste que falhe. Pense no que o código deve fazer, descreva o contexto e defina quais são as verificações que precisam ser feitas. Não há um limite no número de testes, então quanto menos coisa cada teste descrever/verificar, melhor. No início também não é preciso se preocupar se a classe/método ainda não existe. Pense primeiro no teste e só depois que este estiver pronto crie o esqueleto de código necessário para que ele compile e falhe ao rodar.

2. Faça o teste passar. Agora chegou o ponto crucial: escreva o mínimo de código para que o teste passe. Controle o instinto natural do programador de tentar prever tudo que o código vai fazer e apenas faça o teste passar. Mesmo que tenha certeza que o código deve fazer mais coisas, fazer os testes passarem deve ser a única preocupação agora.

3. Refatore. Uma vez que o teste passou, verifique o que no código pode ser melhorado. Geralmente para um teste passar é preciso inserir duplicação através de constantes (técnica conhecida como Fake It). Agora é a hora de melhorar o código e remover as duplicações, lembrando que os testes devem continuar passando.

Estes 3 passos são repetidos até que não se consiga pensar em novos testes, o que indica que a funcionalidade está pronta.

Fonte: http://dojofloripa.wordpress.com/2006/11/07/introducao-ao-desenvolvimento-orientado-a-testes/