Miniatura do blog sobre a copa...

terça-feira, 6 de julho de 2010

Relatório desenvolvimento software social Tarefa H

Descrição Geral da Aplicação:

Requisitos funcionais:

- Habilidade de trabalho com páginas fbml no facebook;
- Conhecimentos básicos da API do Google para trabalhar com o Google Maps,
inserido num blog;
- Pesquisa e familiarização com a forma de construção de widgets, vide sites:
www.widgetbox.com (widget viral no link ) e
widget de notícias vide site grazr;
- Ambiente do facebook;
- Ambiente do blogspot.


Requisitos não funcionais:

- Interação com o usuário;
- Promover a condição de o usuário ser autor;

Plano de negócio da aplicação:

Visite o link.

Ferramentas e ambientes de desenvolvimento utilizados:

Ambientes do facebook;

Construção de widgets;

Blogspot;

Relatório;

Apresentação.


segunda-feira, 21 de junho de 2010

Curso de HTML básico

Benvindos ao curso de HTML

Aqui iremos ensinar essa chamada linguagem de marcação (mark up), que dá visibilidade a todas as páginas web que vemos.
Serão apresentados vários tópicos em diversos níveis. Também haverá uma parte demonstrativa e prática em que o aluno poderá experimentar o conhecimento adquirido.

Conhecendo html
As cores no html
Tabelas e frames
Verifique como utilizar o editor de html on-line

Acessando o editor html on-line
Conhecendo html avançado
Áudio, vídeo, imagens, javascript...
Dicas
Indo além



quarta-feira, 9 de junho de 2010

Interação empresa-clientes

TAREFA C









Etapa na cadeia de valoresProdutor / intermediárioComunidade virtual
Idéia do produtoCriação de nova pizza, de forma que seja um produto que atenda aos anseios de seu exigente público-alvo. Opinar e sugerir melhorias, buscando a satisfação de seu ego.
ProduçãoFabricação de acordo com as demandas e preferências dos clientes.Acompanhamento do estágio de produção da pizza.
ContribuiçãoProcesso de fatiar a pizza caso o cliente assim o deseje, empacotamento e entrega.Crítica e sugestão de cardápio e de potenciais novos serviços para a pizzaria.
OfertaPromoções e pacotes gastronômicos, insumos de qualidade para confecção das pizzas.Compra conjunta, redução no preço através de sugestões de melhores fornecedores para a pizzaria.
MarketingDivulgação do cardápio, sempre citando que foi confeccionado em parceria com seus clientes, e do ambiente da pizzaria.Discussão sobre a qualidade do produto e sugestões de encontros gastronômicos, envio de novos cardápios por e-mail e estimulação da fidelização e divulgação através de políticas de descontos.
CoordenaçãoBusca e patrocínio de eventos regados a pizza e massas.Reunião de pessoas interessadas em participar enviando sugestões para otimização do processo produtivo.
Aceite de ofertaInscrições para o evento pelo site da comunidade, no estilo clique aqui e inscreva-se. Estudo sobre o comportamento do consumidor de forma a influenciá-lo a adiquir acompanhamentos no momento do fechamento da compra, aumentando assim o tíquete médio do estabelecimento.Mobilização de interessados nos eventos.
EntregaDespacho da mercadoria.Acompanhamento da chegada da pizza via GPS por um widget inserido na comunidade, mapa animado.

segunda-feira, 31 de maio de 2010

Uso de software social nas Organizações

TAREFA A



Pizzaria Boa Pizza 0.0
Centro de Custo
O dono da pizzaria envolvido diretamente com sua administração, com uma grande quantidade de funcionários.

A hierarquia baseada na estrutura: proprietário, gerente de vendas, funcionários de vendas, gerente de operações, pizzaiolos, garçons, gerente de pessoal, depto pessoal.

O nível hierárquico nunca é quebrado.

O poder flui do topo para baixo.

Não existe otimização na produção, todos cumprem sua jornada sem se importar com produtividade.

O controle do negócio de pizzas é interno e tudo se decide dentro da empresa, o mercado externo é pouco avaliado.

Pouca variedade de pizzas. Muitas vezes adotam-se receitas de família. Modus operandus tradicional.

Existe um pequeno controle informatizado: o computador que fica na sala do proprietário. Sistema único e isolado.






Pizzaria Boa Pizza 1.0
Cadeia de Valores de Negócios
O dono delega a função de fiscalização da loja ao gerente geral.

Organograma agora tem o seguinte formato: gerente geral, sub-gerente de operações, pizzaolos, vendedores, garçons.

As entregas agora são feitas utilizando-se motoboys e existe um atendimento telefônico para anotar os pedidos remotos.

O clientes agora podem interferir no cardápio da pizzaria, sugerindo novas pizzas e até postando receitas.

A cozinha agora tem pizzaolos especialistas em alguns tipos especiais de pizzas, também cozinheiros especializados em outros tipos de massa italiana.

Redução de custo com a utilização de estrutura hierárquica menor, bem como com otimização no uso de insumos.

O pessoal operacional agora se integra mais; são feitas reuniões conjuntas onde os objetivos da empresa são expostos e opiniões são colhidas dos empregados.

Serviços de depto pessoal terceirizados.

Foi montada uma rede de computadores na empresa onde existe interligação entre os computadores do setor de vendas, com a gerência e até da cozinha os cozinheiros podem ver a lista de pedidos mostrada num monitor devidamente instalado. Os garçons acompanham o fluxo desta lista de pedidos direcionados às mesas e dão as baixas.

Já existe um site da pizzaria para divulgá-la e o proprietário, de casa, acompanha o faturamento a partir de uma área restrita desse site.





Pizzaria Boa Pizza 2.0
Novos Modelos de Negócio
Agora a Pizzaria Boa Pizza tem uma comunidade no Orkut, onde seus pizzaolos dão sugestões de pizzas e acompanhamentos, os clientes se encontram para trocar experiências gastronômicas e sugerirem até mesmo novos pratos.

Novos serviços são propostos e votados por enquete pelos clientes e funcionários. Em seguida são simulados na própria comunidade de forma virtual e, depois de serem aprovados, implementados como plano piloto na pizzaria. Encontros são marcados entre vários clientes para degustarem as novas iguarias e experienciarem os novos serviços sugeridos.

Na própria comunidade existem espaços jogos on-line do tipo, seja um pizzaolo, não deixe a pizza ficar fora de controle e demais sugestões feitas pela comunidade.

Existe um blog especial onde cada cliente cadastrado na comunidade pode escrever a respeito de pizzas, pratos italianos, acompanhamentos, cobrindo desde receitas a história de origem.

Existe também, dentro da filosofia de descubra seu talento culinário, a escolha da receita do mês, degustada por clientes em vários encontros na pizzaria ou entregues em suas casas.

Webservices foram implementados ou contratados, bem como vários widgets idealizados que trazem aos sites dos parceiros e clientes informações históricas e gastronômicas, que podem ser colocadas utilizando-se mashup em seus blogs e sites particulares.

O proprietário de onde estiver controla com flexibilidade o gerenciamento do negócio e se comunica com seus clientes pela comunidade e através de seu blog.

Vários eventos são organizados como rallyes, jogos, acampamentos, etc promovidos e patrocinados pela Pizzaria Boa Pizza.


TAREFA B

quinta-feira, 20 de maio de 2010

Ferramentas para o Twitter - TweetEffect















Este site possui uma ferramenta para o Twitter que serve para medir ao nível de sua popularidade baseada nas mensagens que você envia pelo Twitter. Conta quantos seguidores você perdeu ou ganhou ao longo de sua utilização desse mini-blog.
Para isso acesse http://tweeteffect.com/index.php insira seu ID do Twitter e pressione Tell me about effects!. Logo surgirá um quadro abaixo apresentando as estatísticas observadas desde suas últimas mensagens.
A ferramenta é gratuita e está em sua versão beta atualmente.

quinta-feira, 13 de maio de 2010

Plataforma J2ME

J2ME - JAVA 2 MICRO EDITION é a versão Java voltada para processadores de celulares e PDA's. Essa plataforma é dividida em 3 camadas: máquina virtual, perfis e configurações.

Configuração é um conjunto de bibliotecas básicas disponíveis para o programador. Ela também define qual o nível de serviços e funcionalidades oferecidos pela máquina virtual.

Perfil define um conjunto de bibliotecas específicas para classes de dispositivos. Um perfil é sempre especificado para uma determinada configuração, mas uma configuração pode dar suporte a vários perfis.

A máquina virtual fica diretamente acima do sistema operacional do dispositivo. É ela quem define quais as limitações dos programas que executarão no dispositivo.

MIDlet é um aplicativo Java para executar em um dispositivo móvel (MUCHOW, 2004).

Uma dada aplicação utiliza três métodos abstratos que são chamados pelo gerenciador de aplicações fornecidos pela classe MIDlet. São eles: startApp(), pauseApp() e destroyApp().

Pausa: Depois da entrada do construtor, ocorre a liberação de recursos de modo que a MIDlet fique em um estado de espera.

Ativa: Ocorre no início da execução da MIDlet, através do método startApp() , devido a liberação de recursos.

Destruída: Neste momento, houve a liberação total dos recursos pela MIDlet através do método destroyApp().
Por fim, a MIDlet é desligada pelo gerenciador de aplicativos.

Fomte: http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=6484

Criando Web Services

Está sendo bastante falado sobre Web Services, ou seja, os serviços estarão disponíveis na Web e a tarefa de programar será a de integrar esses serviços. Essas "peças soltas" demonstrarão apenas suas interfaces, ou seja, os formatos de entradas e saídas, ficando a parte do processamento completamente encapsulada. O funcionamento básico de um Web Service pode ser visto na seguinte figura:


Fonte: http://imasters.uol.com.br

A figura muito bem explicita a troca de mensagens que é feita entre servidor e cliente. Tudo é feito na base de requisições e respostas. Uma explicação plausível no momento é a seguinte:

WSDL: Sigla para "Web Services Description Language". É uma interface que define os métodos pertencentes ao serviço. Não é necessária na programação, é apenas para especificar o "contrato" que o cliente deverá cumprir para utilizar o serviço.

Existem aplicações como o AXIS para servidores Tomcat que permitem criar Web Services de maneira bem simples. Acesse http://imasters.uol.com.br/artigo/1863/java/web_services_in_java/ e veja um exemplo bastante simples porém altamente didático de criação de um Web Service.

sintese 3 Anderson

A Amazon ataca com um marketing interessante no ambiente web, ela
disponibilizou um toolkit para desenvolvedores com muitas facilidades
para gerenciamento de serviços da Amazon como banco de dados.
AWS-JDK

sintese 2 Anderson

Quais serão os planos da Oracle para a Sun? Dúvidas pairam no ar pois
recentemente o inventor de java, James Gosling, saiu da empresa após anos
de documentação e desenvolvimento da linguagem mais popular dos últimos anos

sintese 1 Anderson

A plataforma java 6 EE já oferece uma API para o desenvolvimento
Restfull. O JAX-RS fornece classes java que podem ser utilizadas
e são diretamente traduzidas para métodos HTTP.

quarta-feira, 12 de maio de 2010

Produção de Anderson java & web

A tecnologia java larga na frente na corrida de padronização de serviços voltados para web.
A Sun-Oracle vem trabalhando fortemente sobre suas APIs web-services.
Ela oferece a implementação de JAX-RS (RESTfull web services) incluída em java EE 6.
Esta API oferece várias anotações que podem ser utilizadas traformando métodos de classes
java em operações definidas em HTTP mime. A implementação de referência é o projeto open source
jersey que oferece a versão 1.1 de JAX-RS
A API JAX-RS é focada nas URI´s e em métodos HTTP.
Existem outras implementações da especificação JAX-RS como o RESteasy da JBoss.
Também voltado para web apresenta alguns toolkits como o do AWS que permite uma programação
rápida para desenvolvedores que utilizam Amazom Web Services.O AWS é um plug-in
que pode ser instalado nma plataforma de desenvolvimento Eclipse oferecendo facilidades como gerenciamento
de banco de dados Amazon. È possível encontrar livros e material de consulta como o livro em português
"web servicers SOAP em java" de Daniel Adorno Gomes que apresenta implementações sobre as anotações
java @WebService, @WebMethod e @WebParam sobre o Apache Axis2. O desenvolvimento destas aplicações
pode ser feito nas IDES Eclipse ou Netbeans.

segunda-feira, 10 de maio de 2010

A origem da linguagem Java

A origem da linguagem Java: linguagem de programação originalmente desenvolvida por James Gosling da Sun Microsystems (atualmente subsidiária da Oracle Corporation) e lançada em 1995. A linguagem deriva a sintaxe de C e C++ mas com um modelo de objetos mais simples e poucas facilidades de baixo nível. As aplicações Java são tipicamente compiladas em bytecode (arquivo de classe) que pode rodar em qualquer Máquina Virtual Java (JVM) independente da arquitetura do computador. Java é uma linguagem de propósito geral, concorrente, baseada em classes, orientada a objetos e especialmente projetada para ter o menor número de dependências de implementação possível. Permite que os desenvolvedores escrevam apenas uma vez seus programas e o rode em qualquer plataforma de computação, desde que ela possua uma máquina virtual implementada. É considerada por muitos como a linguagem mais influente do século XX e é grandemente utilizada em aplicações web.

A implementação original dos compiladores Java, máquinas virtuais e bibliotecas de classe foram desenvolvidas pela Sun em 1995. Em maio de 2007 a Sun licenciou muito de sua tecnologia sob a licença GNU. Outras pessoas chegaram a desenvolver ferramentas alternativas como compilador java GNU e o GNU Classpath.
James Gosling iniciou o projeto da linguagem Java em junho de 1991 para uso em alguns de seus projetos na Sun. A linguagem, inicialmente chamada de Oak, depois oak tree, tornou-se depois Green e terminou por ser conhecida por Java. Gosling teve por objetivo implementar uma máquina virtual e uma linguagem que tivesse um estilo de notação semelhante ao C/C++.A linguagem foi lançada comercialmente pela Sun em 1995 e veio com a promessa de Write Once, Run Anywhere (WORA), com máquina virtual e biblioteca Java gratuitas.

Princípios da linguagem:

Existem cinco princípios básicos focados na criação da linguagem Java:

Deve ser simples, orientada a objetos e familiar;
Deve ser robusta e segura;
Deve ser portável e rodar sob qualquer arquitetura;
Deve provê execução dos programas com alta performance;
Deve ser interpretada, voltada para threads e dinâmica.

O que a tecnologia Java pode fazer


Java é uma linguagem de alto nível estruturada em cima de uma poderosa plataforma. Cada implementação Java tem as seguintes características:

  • Ferramentas de desenvolvimento: existem ferramentas com tudo o que é necessário. Você pode compilar, rodar, monitorar, debugar e documentar seu programa. Como desenvolvedor iniciante você tenderá a usar javac compiler, java launcher e javadoc como ferramenta de documentação.
  • API (Interface de Programação da Aplicação): provê as funcionalidades da linguagem. Oferece uma variedade de classes úteis prontas para uso em sua própria aplicação. A aplicabilidade vai desde objetos básicos, passando por rede e segurança, geração de xml, acesso a banco de dados, etc. O núcleo da API é muito extenso e você poderá consultar as funcionalidades no endereço Java SE Development Kit 6 (JDKTM 6) documentation.

  • Tecnologias de deploy: O software JDK provê mecanismos padrão tais como Java Web Start e Java Plug-In software para publicar suas aplicações para os usuários finais.

  • Kit de ferramentas de interface com usuário: através do Swing e Java 2D toolkits é possível criar interfaces gráficas para o usuário (GUIs).

  • Integração de bibliotecas: a integração de bibliotecas tais como Java IDL API, JDBCTM API, Java Naming and Directory InterfaceTM ("J.N.D.I.") API, Java RMI e Java Remote Method Invocation em cima de Internet Inter-ORB Protocol Technology (Java RMI-IIOP Technology) permite acesso ao banco de dados e manipulação de objetos remotos.

terça-feira, 20 de abril de 2010

SOA - WOA - REST

SOA



O que é SOA?

Service-Oriented Architecture (SOA) – ou, em português, Arquitetura Orientada a Serviços – é um termo que descreve duas coisas muito diferentes. As duas primeiras palavras expressam uma metodologia para desenvolvimento de software. A terceira palavra é um panorama de todos os ativos de software de uma empresa, assim como uma planta arquitetônica é uma representação de todas as peças que, juntas, formam uma construção. Portanto, “service-oriented architecture” é uma estratégia que proclama a criação de todos os ativos de software de uma empresa via metodologia de programação orientada a serviços.

O conceito de serviço.

Serviços são porções -- ou componentes -- de software construídas de tal modo que possam ser facilmente vinculadas a outros componentes de software. A idéia por trás destes serviços é simples: a tecnologia expressa de forma que o pessoal de negócio possa entender, e não como um aplicativo enigmático.
No centro do conceito de serviços está a idéia de que é possível definir partes dos códigos de software em porções significativas o suficiente para serem compartilhadas e reutilizadas em diversas áreas da empresa. Com isso, algumas tarefas passam a ser automatizadas – por exemplo, enviar uma query para um website de relatório de crédito para descobrir se um cliente se qualifica para um empréstimo. Se os programadores em um banco puderem abstrair
todo este código em um nível mais alto (isto é, pegar todo o código que foi escrito para realizar a verificação de classificação de crédito e reuni-lo em uma única unidade chamada “obter classificação de crédito”), eles poderão reutilizar esta porção da próxima vez que o banco decidir lançar um novo produto de empréstimo que requeira a mesma informação, ao invés de ter que escrever o código a partir do zero.
Para chegar a isto, os desenvolvedores criam um invólucro complexo em torno do código empacotado. Este invólucro é uma interface que descreve o que a porção faz e como conectar a ele. É um conceito antigo, que data dos anos 80, quando a programação orientada a objetos surgiu. A única diferença é a demanda atual por objetos de software muito maiores e mais sofisticados.
Na operadora norte-americana Verizon, por exemplo, o serviço “get CSR” (get customer service record, obter registro de serviço ao cliente) é uma miscelânea complexa de ações de software e extrações de dados que emprega infra-estrutura de integração da empresa para acessar mais de 25 sistemas em quatro data centers ao redor do país. Antes de criar o serviço “get CSR”, desenvolvedores da Verizon que precisavam desta porção crítica de dados tinham que criar links para todos os 25 sistemas — acrescentar seus próprios links sobre a teia complexa de links que já pendiam dos sistemas populares. Porém, com o serviço “get CSR” situado em um repositório central na intranet da Verizon, estes desenvolvedores agora podem usar o simple object access protocol (SOAP) para criar um único link para a interface cuidadosamente elaborada ao redor do serviço.
Estes 25 sistemas entram em fila e marcham imediatamente, enviando informação do cliente para o novo aplicativo e poupando meses, ou mesmo anos, de tempo de desenvolvimento dos desenvolvedores cada vez que eles usam o serviço. Existem muitas maneiras diferentes de conectar serviços, como links de programação customizados ou software de integração de fornecedores, mas, desde 2001, um conjunto de mecanismos de comunicação de software conhecido como web services, criados sobre a onipresente World Wide Web, tornou-se um método cada vez mais popular para integrar componentes de software.

A diferença entre SOA e Webservice.

SOA é a arquitetura abrangente para criar aplicações dentro de uma empresa — pense em um projeto arquitetônico — mas, neste caso, a arquitetura demanda que todos os programas sejam criados com uma metodologia de desenvolvimento de software específica, conhecida como programação orientada a serviço. Web services são um conjunto de mecanismos-padrão de comunicação criados sobre a World Wide Web. Ou seja, os web services são uma metodologia para conectar e comunicar, enquanto SOA é uma estratégia de TI.

Vantagens do SOA

Reutilização do Software
Aumento da produtividade: Com módulos prontos, a equipe de desenvolvimento pode ser concentrar em outras tarefas do sistema
Maior agilidade: O fato de não precisar recriar nada Interoperabilidade: Consiste em trocar informações entre sistemas escritos em linguagens distintas.
Escalabilidade

Desvantagens do SOA

Performance
Segurança: Como os dados trafegam pela rede, eles podem ser interceptados.
Robustez
Disponibilidade
Testabilidade: Os arquivos de logs podem não estar acessíveis, ou o serviço externo não estar disponível.
Usabilidade: Como webservices não funcionam como threads, fica complicado fornecer feedbacks do processo ou cancelar a solicitação.

WOA



WOA - Conceitos

Web Oriented Architecture (Arquitetura Orientada para Web) é um estilo de arquitetura de software que extende SOA para aplicações baseadas na Web. Muitas vezes é considerada uma versão mais leve de SOA.
Também conhecida como RESTfull programing. WOA também é destinada a potencializar o browser e o servidor com interações pelo uso de tecnologias como POX e REST. WOA tem o propósito de fundir SOA e Web 2.0. Os recursos são identificados por uma URI(Universal Resource Identifieer).

Pilares do WOA

Continuidade dos negócios.
Infra-estrutura mais robusta.
Maior integração de sistemas.
Mais inteligência no tratamento das informações para melhor tomada de decisão.

REST




Representational State Transfer (Transferência de Estado Representacional) a REST é 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.

Permite a comunicação entre duas aplicações quaisquer, idependentemente de plataforma.
Usa protocolo HTTP para troca de mensagens. REST não é um padrão, é um modelo de arquitetura. URI identifica seus serviços.

Recursos

Um conceito importante em REST é a existência de recursos (elementos de informação), que podem ser usados utilizando um identificador global (um Identificador Uniforme de Recurso) para manipular estes recursos, os componentes da rede (clientes e servidores) se comunicam através de uma interface padrão (HTTP) e trocam representações de recursos (os arquivos ou ficheiros são recebidos e enviados).
Uma aplicação pode interagir com um recurso conhecendo o identificador do recurso e a ação requerida, não necessitando conhecer se existem caches, proxys ou qualquer outra coisa entre ela e o servidor que guarda a informação. A aplicação deve compreender o formato da informação de volta (a representação), que é geralmente um documento em formato HTML ou XML, onde também pode ser uma imagem ou qualquer outro conteúdo.

Princípios

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.
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 Uma sintaxe universal para identificar os recursos.
O uso de hipermídia , tanto para a informação da aplicação como para as transições de estado
da aplicação.

Vantagens

Uso do padrão Web (HTTP) para troca de dados.
Melhor performance devido ao fato dos request/response serem muito menores.
Fácil de usar.
Permite fazer CACHE das requisições / respostas.
Possibilita a utilização de camadas intermediárias (como proxysn e gateways) para aumento de performance e segurança.
Possibilidade de REST sobre HTTPS.
Pode ser utilizada em aplicativos móveis.
Melhor manutenabilidade.

Desvantagens

Não possuir contrato descrevendo as interfaces de seus serviços.
Falta de ferramentas de apoio ao desenvolvimento.
Não perimitir requisições assíncronas.




quinta-feira, 1 de abril de 2010

Plataformas de Remixagem e Redistribuição Direta de Dados

Histórico:

Até alguns anos atrás, utilizávamos o desktop como plataforma hospedeira para nossas aplicações, desde um programa de agenda, calculadora, controle de finanças, editores de documentos,etc. O avanço de tecnologias utilizadas na web tais como Ajax, melhores recursos CSS, Adobe Flash, o aprimoramento dos browsers, etc, possibilitou a construção de aplicações poderosas. Muitas delas são apresentadas nos navegadores em formato de tela cheia (full screen), utilizando a tecnologia Ajax de transações assíncronas e interfaces mais bem trabalhadas, criando a ilusão e também funcionalidades anteriormente só presentes em aplicações desktop.
Todos os modernos recursos disponibilizados fomentou o surgimento de dispositivos agregadores de conteúdo de forma remixada e provendo distribuição direta de dados: os mashups. O termo, que basicamente significa mistura e foi emprestado do ramo musical, indica a categoria das aplicações que permitem integrar em único ambiente um leitor de feeds de seus blogs favoritos e os mais diversos widgets.

O mashup

O mashup é um dos pilares da web 2.0 e se vale de um dos novos comportamentos adotados pelas empresas nesta nova era: a disponibilização de suas API para disponibilização dos serviços de seus produtos e tornar possível a criação de widgets. Várias empresas disponibilizaram ferramentas ou blibliotecas de APIs como, por exemplo, o Google Maps, que permite a criação de um widget que exibe um mapa na
página do Mashup. Em dados coletados pelo site Programmable Web em 2007, 48% dos 1930 mashups rastreados na pesquisa utilizavam um widget de mapa para indicar a localização geográfica de informações que iam de consoles Wii a vagas em pensão.

Vantagens dos mashups

Os mashups funcionam são para as aplicações web e widgets, aquilo que os agregadores RSS/Atom são para as postagens de um blog: um aplicativo único que reúne dados de um grande número de outros locais.

Com o mashup, o usuário encontra em um único lugar, seus widegts preferidos e portanto não precisa mais de acessar uma página para consultar sua agenda, outra para conferir o tempo, uma para ver seu agregador de feeds e seus bookmarks sociais. Tudo isto fica no ambiente do mashup o que o torna um dos motores da chamada web 2.0.

Arquitetura de um mashup

Em seu artigo An introduction to mashups , Duane Merril apresenta a arquitetura de um mashup, que é formada por 3 componentes que estão fisicamente separados ( seja por estarem em diferentes empresas ou redes):

- APIs e provedores de conteúdo: são bibliotecas que podem ser utilizadas na construção de widgets ou ferramentas de provimento de conteúdo.:
- Site do mashup: é o local em que o mashup fica hospedado. O mashup pode ser hospedado em ambientes que suportam diferentes tecnologias - Java, PHP, CGI, .net, etc.

- O browser do usuário é o ambiente onde todo o conteúdo pode ser visualizado. Há vários deles atualmente e cada um provê um recurso diferenciado, sem deixar de oferecer os recursos básicos necessários.



















Características tecnológicas

Os mashups são suportados por uma grande gama de tecnologias, sendo que dentre estas se destacam:


  • REST e protocolo SOAP: Estes protocolos estão intimamente ligados com a publicação da lógica de negócio de uma aplicação em um formato que facilite sua distribuição em meios hipermídia.


  • AJAX: Uma importante tecnologia que auxilia fortemente na criação de aplicações ricas para o usuário. Por se comunicar de forma assíncrona com o servidor, ela garante um alto grau de responsividade para as aplicações, o que aumenta dramaticamente a experiência de interação dos usuários.


  • Web Services: construídos sobre REST e protocolos SOAP estão os web services, que são os responsáveis pela obtenção dos dados nas mais diversas fontes, sem a necessidade de toda a infraestrutura da aplicação que executa as regras. Basta a aplicação de interesse publicar seus dados por meio de web services. O acesso e intercambio de dados é feito através de métodos especificados através dos padrões da linguagem wsdl.