Pesquisar

sexta-feira, 25 de fevereiro de 2011

Modelagem de Processo (Business Process Management - BPM), Desenvolvimento de Sistemas e Arquitetura Orientada a Serviços (Service Oriented Architecture - SOA)

O que é o processo de desenvolvimento de sistemas?
É um conjunto de fases e atividades, com o objetivo de desenvolver e manter o sistema com seus respectivos componentes (abstratos ou concretos), que trabalham em conjunto, visando um objetivo comum.
Os principais componentes de um sistema são: os interessados; as informações; os processos; todo hardware e software necessários na operação do sistema, conforme figura 1.

Figura 1 – Elementos Sistêmicos
O processo de desenvolvimento de sistemas se preocupa com o processo produtivo das diversas dimensões (componentes) de um sistema, ou seja, identificar os processos, as pessoas envolvidas nesses processos (stakehoders), as informações a serem coletadas, processadas, transmitidas e disseminadas por meio do uso de tecnologia (softwares e hardwares).
Na visão tradicional, os sistemas são desenvolvidos aplicando-se processos verticais, ou seja, os processos são embutidos na codificação do sistema por meio de fluxos de controle, conforme apresentado na Figura 2.
É importante destacar que já existem modelos de processos disponíveis no mercado possíveis de serem adotados no processo de desenvolvimento de um sistema, os mais conhecidos e utilizados são: cascata; espiral; incremental e iterativo; prototipação.
Também é necessário destacar as principais metodologias utilizadas no mercado, que são baseadas nesses modelos: RUP (IBM Rational Unified Process), Scrum (http://www.scrum.org/), XP (http://www.extremeprogramming.org/), entre outras.

Figura 2 – Processo Vertical – Acoplado ao código da função

O que é a técnica de modelagem do processo (BPM)?
Segundo Vitor Bizinoto, a técnica de Modelagem de Processo (Business Process Management - BPM) consiste em construir uma representação de um processo real refletindo suas características com o nível ideal de detalhamento desejado (TORRES, 2002). Ela permite que sejam conhecidas com detalhes e profundidade todas as operações que ocorrem durante a fabricação de um produto ou a produção de um serviço, ou seja, as operações de um processo (ROTONDARO, 2006).
A modelagem de processo também pode ser definida como uma técnica de modelagem para especificar, visualizar, construir, documentar e aperfeiçoar processos de negócio por meio de soluções BPMS (Business Process Management Suite). O principal padrão atual de notação gráfica para representação de processos é o OMG BPMN (Business Process Model and Notation) 2.0 (http://www.omg.org/spec/BPMN/2.0/), de acordo com alguns exemplos demonstrados na figura 3.

Figura 3 – Exemplos de Notação OMG BPMN

Os softwares que suportam a técnica de modelagem de processo são conhecidos normalmente como BPMS (Business Process Management Suite).
A técnica de modelagem de processo da forma tradicional aborda uma visão horizontal, ou seja, os processos são modelados de forma independente sem integração, conforme figura 4.

Figura 4 – Processos Horizontais
Baseadas nas duas visões tradicionais (vertical e horizontal) você pode estar perguntando como melhorar essas duas técnicas? Respondo, integrando-as com a aplicação das técnicas de modelagem de processos (BPM), processo de desenvolvimento de sistemas e arquitetura orientada a serviços.
Arquitetura Orientada a Serviços (Service Oriented Architecture - SOA) e a técnica de Modelagem de Processo (Business Process Management - BPM)
A Arquitetura Orientada a Serviços (Service Oriented Architecture - SOA) é uma estratégia para organização desenvolver sistemas interoperáveis (troca de informações), independente de tecnologia, aplicando as melhores práticas de tecnologia da informação.
Na visão moderna, a arquitetura SOA e a técnica de modelagem de processo são aplicadas de forma integrada. A maioria das principais soluções BPMS de mercado possui suporte tanto para modelagem de processos quanto arquitetura SOA.
Os principais padrões suportados por essas ferramentas são: OMG BPMN (Business Process Model and Notation) e OASIS BPEL (Web Services Business Process Execution Language – notação padrão para modelar o comportamento de processos de negócio baseados em serviços) (http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsbpel).
Os softwares que suportam a arquitetura SOA são conhecidos normalmente como SOA Suite. Neste contexto, é importante destacar a importância do Barramento de Serviços, conhecido do ESB (Enterprise Service Bus), responsável por gerenciar e disponibilizar os serviços e para o controle de identidades dos usuários (controle de acesso).
O serviço, no ponto de vista da arquitetura SOA, é uma função de um sistema computacional que é disponibilizado para outro sistema na forma de um serviço, normalmente implementado como um Web Service.
Segundo o relatório do Gartner “The Evolving Market for BPM Technology”, conforme apresentado na figuras 5, as principais funções necessárias para uma solução de BPM são:
  • Integração entre Servidores de Portais (Portals), Servidores de Aplicação (App. Servers) e Servidores de Barramento de Serviços (ESB);
  • Fluxo de Trabalho (Workflow);
  • Regras de Negócio (Business Rules Engines);
  • Ferramentas de Análise e Modelagem (Modeling and Analisys Tools);
  • Gerenciador de Conteúdo e Documentos (Document/Content Management);
  • Inteligência de Negócio e Monitoramento de Atividade de Negócio (BI and Business Activity Monitoring).

           

Figura 5 – Núcleo da Funções BPM segundo Gartner

As figuras 6 e 7 mostram a visão moderna na integração de modelagem de processos e arquitetura SOA.

Figura 6 – Visão de Processos Integrados

Figura 7 – Visão Processos e SOA
Referência Bibliográfica
[1] Gartner Group. The Evolving Market for BPM Technology. Abril de 2009.
[2] ROTANDARO, R. G. Identificação, análise e melhoria dos processos críticos. São Paulo: Gestão integrada de processos e da tecnologia da informação, Atlas, cap. 3, 2006.
[3] SANTOS ANJO, V. B. Modelagem de processos: GAP conceitual quanto ao nível ideal de detalhamento de processo. Brasilia: Universidade de Brasilia, 2009.
 [4] TORRES, J. B. Um modelo dinâmico de apoio a gestão organizacional baseado na modelagem de processos utilizando componentes de software. Florianópolis: Universidade Federal de Santa Catarina, 2002.

sábado, 18 de dezembro de 2010

Qual a sua visão sobre a Oracle?

Se você conhece a Oracle apenas como uma empresa fornecedora do sistema gerenciador de banco de dados (SGDB) conhecido como Oracle Database está na hora de uma reciclagem.

A história da Oracle começou em 1977 (ano de meu nascimento) com Larry Ellison, Bob Miner e Ed Oates, por meio do software precursor do Oracle Database. O nome inicial da empresa foi Software Development Laboratories, alterado em 1978 para Relational Software Inc. (RSI) e  em 1982 ganhou o nome Oracle Systems.

Nessas três décadas de existência, a Oracle se consolidou como uma empresa  fornecedora do SGDB Oracle. Mas, ao longo dos últimos anos, tem ampliado bastante seu mercado mundial, tornando uma das maiores empresas provedora de produtos e serviços de Tecnologia da Informação (TI).

A Oracle vem expandindo seu mercado, principalmente desde 2005, com a estratégia de aquisição de empresas com objetivo de acelerar e expandir as oportunidades e inovações aos seus parceiros e clientes.
Podemos perceber esta tendência com as aquisições de algumas empresas como a BEA Systems, Inc – especializada em soluções para aplicações enterprise; a Sun Microsystems – especializada tanto em soluções de software quanto hardware; entre outras.
O panorama dessas aquisições pode ser visualizado no site da Oracle: Estratégia de Aquisições

Alguém poderia imaginar alguns anos atrás que a Oracle seria dona do Java? Alguém poderia imaginar que a Oracle iria produzir sistemas completos (hardware e software)?

Para maioria, talvez não, mas é bem provável que seus dirigentes entenderam que isso é era possível. Afinal, ao longo desses anos transformaram a Oracle numa empresa de produtos e serviços de TI tais como Oracle Database, Oracle Fusion Middleware, Oracle Applications, Oracle Industry Application, Oracle Support, Oracle On Demand, Oracle Consulting, entre outros. Tais produtos podem ser encontrados no site da Oracle: Produtos e Serviços

Também podemos destacar que muitos desses produtos e serviços foram divulgados aqui no Brasil, em São Paulo, na Oracle OpenWorld Latin America 2010, no período de 07/12/2010 a 09/12/2010.

Espero que as informações tenham sido úteis para conhecer um pouco mais sobre um grande fornecedor de software e hardware do mercado mundial.

quinta-feira, 18 de novembro de 2010

Qual a tendência de mercado? SOA? BPM? Web N.0? Cloud Computing?

Você já parou para pensar como as tendências tecnológicas de mercado evoluem?      Nesta onda de evoluções, conceitos e técnicas como Computação nas Nuvens (Cloud Computing), Arquitetura Orientada a Serviços (Service Oriented Architecture - SOA), Modelagem de Processo (Business Process Management - BPM) e Web N.0 (Publicação Web N.O) estão ficando mais evidentes e se tornando realidade dentro das corporações.
A forma tradicional de desenvolvimento de sistemas é baseada no paradigma Orientado a Objetos (OO), normalmente estruturado em camadas, que é uma evolução do paradigma Estruturado.
A tendência atual em curso é o desenvolvimento de sistemas baseados no paradigma SOA com BPM, bem diferente da abordagem tradicional.
Entretanto, na visão deste autor, outra tendência de mercado que está por vir, é a aplicação integrada de todos esses conceitos e técnicas supracitados no desenvolvimento de sistemas interoperáveis (SOA), disponíveis nas nuvens (Cloud Computing), com interfaces focadas na colaboração e na usabilidade (Web N.0) e com processos de negócio bem definidos (BPM).
Com essas possibilidades, você certamente já está pensando como implementar todas essas técnicas? Como fazê-las tornar realidade dentro de sua corporação? Primeiramente, será necessário convencer todos que essas evoluções são realmente importantes, o que chamamos de mudança de paradigma.
O próximo passo será elaborar um planejamento para estas mudanças. Este planejamento requer investimentos em prospecções e capacitação para absorver o que há de melhor em cada uma dessas técnicas. Certamente, tais prospecções apontarão para boas práticas recomendadas pela Engenharia de Sistemas/Software tais como adoção de metodologias, padrões, frameworks, especificações e tecnologias.
As principais preocupações relacionadas a boas práticas da engenharia de software a serem resolvidas são:
  • Definir um ciclo de vida de processo baseado em planejamento estratégico de TI, processos de engenharia de sistemas/software, processos de Governança de TI, processos de Modelagem de Processos e processos de Gerenciamento de Projetos;
  • O ciclo de vida deve seguir uma metodologia. Existem metodologias disponíveis no mercado para cada tipo de conceito e técnica. Buscar metodologias eficientes e adequadas para que o processo não se torne burocrático;
  • O planejamento estratégico deve ser baseado no nível de maturidade em que a organização pretende alcançar. Desenvolver sistemas com tais técnicas exige um bom nível de maturidade.
  • Dividir o sistema por partes (pedaços - subsistemas ou módulos) pode ser uma boa técnica para minimizar riscos e reaproveitar as partes;
  • Definir uma arquitetura (padrões, tecnologias e especificações) adequada ao projeto;
  • Documentar o sistema adequadamente;
  • Preocupar com a capacitação de todos os interessados;
  • Manter uma estrutura organizacional adequada para operação contínua (suporte) do sistema;
  • Dimensionar a infraestrutura computacional adequadamente.
Complementando, o que todas essas evoluções têm em comum? A padronização, cada vez mais fica evidente que a tendência de mercado é convergir para adoção de padrões de organismos mundiais tais como:

Essa abordagem de padronização, inclusive a questão da interoperabilidade, é amplamente apoiada pelo Governo Federal, com destaque para o Governo Eletrônico (Gov.br), e para as ações de interoperabilidade.
Espero que as informações estejam claras e que as contribuições possam apoiá-los no uso de Tecnologia da Informação.
Postei uma publicação neste blog sobre Web N.0 (Publicação Web N.O) e apresentações sobre sistemas, aproveitem e consultem tais informações.
Em oportunidades futuras, estarei falando sobre computação nas nuvens, SOA, BPM e outros tópicos que vocês considerarem importante. Veja a figura abaixo sobre esta tendência:





quarta-feira, 17 de novembro de 2010

Processo de Modelagem de Informações Geográficas e Metadados


Por que realizar uma modelagem? 
Para compreender melhor o sistema ou a base de dados que estamos desenvolvendo.
Os modelos são construídos para representar uma simplificação da realidade sobre determinada área a ser desenvolvida.
Por meio dos modelos, podemos especificar e visualizar a estrutura ou o comportamento do sistema ou da base de dados; documentar as decisões tomadas; e usá-lo como referência para construção do sistema ou da base de dados.

Já participou de um processo de modelagem e carga de informações geográficas? Qual sua opinião sobre as principais atividades de modelagem de dados? Como proceder?
Na minha visão, existem três situações responsáveis pela estruturação de bases de dados e conseqüentemente de metadados dentro de uma corporação:

1) A necessidade de se estruturar um sistema que manipule informações geográficas (Sistema de Informações Geográficas - SIG). 
Nesta situação, são levantadas as necessidades dos interessados e durante as fases de análise e projeto, por meio dessas necessidades, a base de dados é estruturada, podendo conter tanto informações geográficas quanto informações alfanuméricas. 
Esta técnica de estruturação de base dados é conhecida como Top Down, ou seja, é preciso conhecer o todo para chegar ao detalhe.

2) A necessidade de estruturação de uma base de dados geográfica, sem estruturação de sistemas. 
Neste caso, emprega-se a técnica Button Up, onde se parte de detalhes para chegar numa estruturação que visa atender ao todo. Neste tipo de levantamento, são consideradas as bases de dados existentes, servindo como referência para se estruturar uma nova base de dados.
Normalmente não existe um sistema propriamente dito, mas existe a necessidade de consulta de informações existentes por meio de alguma ferramenta como por exemplo: softwares de geoprocessamento.

3) A terceira situação ocorre quando uma base de dados é elaborada por meio do emprego das duas técnicas supracitadas. 
Nesta situação, uma parte da base de dados a ser construída surge pela técnica Button Up e a outra pela técnica Top Down.

Independente das técnicas supracitadas, para se criar uma estrutura de metadados, será necessário planejar e executar as seguintes atividades:

- Definir a melhor técnica para a elaboração da base de dados: Top Down ou Button Up ou Ambas.

- Elaborar a modelagem de dados (conceitual, lógica e física): Normalmente, emprega-se apenas a modelagem lógica e a modelagem física. Nesta etapa, são aplicadas as técnicas tradicionais de banco de dados de normalização e normatização, com o apoio de ferramentas cases, que permitem gerar a base de dados automaticamente. 
Esta atividade é comum, pois, dificilmente uma base de dados é composta apenas de dados geográficos (geoespaciais), habitulamente há tanto dados alfanuméricos quanto dados geográficos. Sugiro que esta atividade esteja aderente as especificações da INDE.

- Elaborar a modelagem topológica: necessária ao processo de modelagem de dados geográficos, complementando o processo de modelagem tradicional. Assim, objetos geográficos são definidos e representados, inclusive seus relacionamentos topológicos tais como intersect, contain, disjoint, dentre outros.
Neste caso, a técnica de modelagem mais empregada é a OMT-G, mas, também pode ser empregada a UML, para a modelagem conceitual. Desconheço ferramenta case que realmente suporte tanto a modelagem lógica quanto física para modelagem topológica. Desta forma, a implementação física da modelagem topológica ocorre manualmente e diretamente na base de dados, em alguns casos, com apoio de ferramentas nativas da solução adotada.
A INDE nomeou esta técnica de modelagem conceitual de “Especificação Técnica para a Representação de Dados Geoespaciais Vetoriais (ET-RDGV)”. Sugiro que esta atividade esteja aderente as especificações da INDE.

- Elaborar o dicionário de dados: elaborado automaticamente por meio de ferramenta case de modelagem de dados. Durante a etapa de modelagem de dados, é preciso catalogar informações sobre as tabelas e seus atributos. Considero o dicionário de dados, uma versão simplificada de metadados.

- Implementação física da base de dados: boa parte desta etapa é feita automaticamente por meio de ferramenta case de modelagem de dados. Mas, é bem comum a necessidade de ajustes manuais na base de dados com ou sem auxílio de outras ferramentas.

- Carga das informações da base de dados: normalmente emprega-se as ferramentas nativas de banco de dados e as ferramentas de geoprocessamento para carregar as informações modeladas.

- Elaboração de Mapas estáticos (PDF, imagens, etc) ou dinâmicos (sistemas ou serviços): esta atividade deve ser prevista sempre que houver a necessidade de divulgar mapas estáticos ou dinâmicos;

- Carga e publicação dos metadados: infelizmente, as principais ferramentas cases para modelagem de dados, disponíveis no mercado, não suportam esta atividade. Assim, a maioria das organizações duplicam esforços para elaborar dicionários de dados e catálogo de metadados.
Nesse contexto, é importante definir um um padrão de metadados, preferencialmente o padrão ISO 19115:2003, e um software que suporte tanto a carga quanto a publicação de informações sobre os metadados. Para o catálogo de metadados, uma das principais ferramentas de mercado é o geonetwork.
O cadastro de metadados será composto por uma base de dados de metadados, além das bases de dados existentes na organização a serem catalogadas, ocasionando duplicidade.

Para organizações que já possuem seus sistemas e base de dados, somente esta e as duas etapas seguintes são necessárias.

- Divulgação dos serviços de metadados por meio da especificação OGC CSW.

- Homologação (processo de testes e validação), Capacitação (treinamento) e Divulgação dos dados oficiais. 

Ufa (rss) é só....

Como podem perceber, não é difícil, mas é trabalhoso, principalmente garantir que todas as etapas sejam executadas de forma eficiente e com qualidade.

As evoluções da Web N.0

Introdução 

O ser humano vem evoluindo constantemente em diversas áreas desde o surgimento da humanidade. Os historiadores, ao longo dos séculos, relatam muito melhor e de forma mais clara muitas dessas evoluções, nos diversos segmentos das várias ciências (disciplinas), conhecidas pela humanidade atual.
É evidente que algumas dessas evoluções podem ocasionar mais ou menos impactos para as gerações futuras e da época de seu descobrimento. Algumas dessas evoluções afetaram e continuam afetando diretamente a Computação, como o caso do descobrimento do Alfabeto, das formas de se contar (Numeração), da primeira calculadora capaz de executar operações básicas, do surgimento e evolução da Computação, inclusive das tecnologias.
Quando comentamos de tecnologia, já temos ciência da rapidez com que as coisas mudam, numa gíria popular “voa”, novos conceitos são empregados, novas tecnologias surgem, alguns conceitos antigos são remodelados, ganhando novo contexto, novas tendências aparecem e de repente nos deparamos com novas palavras ou mesmo siglas.
Nos dias atuais, mesmo para quem não é da área de Tecnologia da Informação, certamente já ouviu falar na Internet e web. Talvez nem todos saibam qual a diferença entre esses dois conceitos, mas para a maioria tem o mesmo significado.
Entretanto, a internet é um conjunto de redes interligadas, conhecida como rede mundial de computadores. Já a web, é uma das formas de uso (aplicação) da Internet, e certamente a forma mais utilizada. Outros nomes  para web são World Wide Web e www. Por este motivo, é comum se referir a web como Internet.
Dentro desse contexto da web, surgiram alguns conceitos como web 2.0 e mais recente web 3.0. Já se fala em web N.0, mas o que é este conceito? Será que a web que conhecemos tem passado por reformulações? A resposta é não e sim, este termo não se refere especificamente a plataforma web em si, mas sim, a forma como as aplicações (sistemas) para plataforma web são desenvolvidas.
Então, quando nos referimos à web 1.0, web 2.0, e assim por diante, estamos nos referindo às aplicações para plataforma web.

O que é Web 1.0, Web 2.0, Web 3.0 e Web N.0?

O termo Web 2.0 foi lançado pela empresa O'Reilly Media, em 2004, para categorizar a segunda geração de serviços disponíveis nas aplicações web. Desde então, a forma tradicional como as aplicações eram desenvolvidas foram definidas como web 1.0 – primeira geração de serviços para aplicações web. Além desses dois conceitos, já podemos observar também o termo Web 3.0 sendo empregado para categorizar a terceira geração de serviços para aplicações web.      
Como podemos entender melhor esses conceitos, como qualificá-los de forma resumida? Os itens demonstrados a seguir apresentam um pouco o entendimento supracitado:
  • Web 1.0
    • Primeira geração de aplicações para web;
    • Caracterizada por focar apenas na publicação, e ter pouca interatividade com o usuário;
  • Web 2.0
    • Segunda geração de serviços disponíveis nas aplicações web, conceito criado pela empresa O'Reilly Media;
    • Aborda a web como plataforma para o desenvolvimento de clientes ricos com foco na usabilidade;
    • Amplia os espaços para a interação entre os participantes do processo;
    • Caracteriza-se por potencializar as formas de publicação, compartilhamento e organização de informações;
    • Refere-se a uma combinação de tecnologias, estratégias mercadológicas e processos de comunicação;
    • Segundo O’Reilly, não há como demarcar precisamente as fronteiras da Web 2.0.  Trata-se de um conjunto de princípios e recursos aplicados para uma determinada aplicação na web;
  • Web 3.0
    • Terceira geração de serviços disponíveis nas aplicações web, com foco na semântica.
  • Web N.0
    • Pelo menos atualmente, é uma tendência de mercado relacionar os principais recursos e princípios no desenvolvimento de aplicações para web com versões, assim como ocorre em softwares. Qual a sua opinião? O que será a Web 4.0?
Princípios da Web 2.0

Os principais princípios são relatados abaixo:
  • Trabalhar a Web como uma plataforma;
  • Foco na interatividade social (rede social) e na “usabilidade” com o desenvolvimento de clientes ricos;
    • Redes sociais: principal característica da Web 2.0 que permite colaboração online dos usuários.
  • Ênfase na participação do usuário e não apenas na publicação;
  • Foco na coletividade. Os serviços tornam-se melhores quanto mais pessoas o usarem;
  • Foco na transparência para permitir acesso aos recursos disponíveis;
  • Integração de recursos (agregar e embutir) com foco no desenvolvimento de clientes ricos;
    • Adoção de padrões é essencial para permitir a integração.
  • Descentralização de alguns recursos como web services;
  • Modularidade (componentes) das aplicações, controle de usuários e identidade.
Principais Recursos da Web 2.0

Os principais recursos são relatados abaixo:
  • Blogs: apresenta interface amigável fácil de publicar, compartilhar e organizar conteúdo.
  • Publicação, compartilhamento e organização  de Fotos e Vídeos (Conteúdo de forma geral)
    • Exemplos: YouTube, Flickr, Blogspot, MySpace, FaceBook
  • Feed: fontes de notícias e comentários na internet (sites ou blogs).
    • Assinatura RSS 2.0 (Really Simple Syndication): é um subconjunto de "dialetos" XML, usado principalmente em sites de notícias e blogs;
    • Web Syndication: é a forma como é publicado o conteúdo possível de ser agregado;
    • Outros nomes para Feed: RSS, RSS Feed, Webfeed, Atom e canal RSS.
  • Enciclopédias Online: forma de colaboração online que permite ao usuário informar seu conhecimento sobre determinado assunto.
    • Exemplo: Wikipédia.
  • Tag Cloud (Etiqueta): representação visual para mostrar a localização de uma informação em relação ao site.
  • Download de arquivos por meio de uma rede P2P (Peer to Peer) ou PodCast.
    • Exemplo: BitTorrent (P2P), Rádio Online (Podcast);
  • Mashups ou Portlets ou Widget: pedaços de programas interativos que podem ser usados para formar um novo. Os principais recursos associados a estes elementos são:
    • Integração recursos de interatividade
    • Agregration (Agregar) e Embedding (Embutir)
    • Adoção de scripts para desenvolver clientes ricos;
      • Uso de AJAX (Asynchronous Javascript And XML);
        • Uso forte de Javascript e XML, para tornar páginas Web mais interativas com o usuário;
      • Uso de JSON (Java Script Object Notation)
    • Uso de API (Application Programming Interface) e Web Services. Permitir o acesso a aplicações ou bases de dados;
  • Adoção de padrões, principalmente para troca de informações:
    • XML: intercâmbio de dados alfanuméricos
    • GML ou WFS: intercâmbio de informações geográficas
    • WMS: intercâmbio de mapas
    • CSW: intercâmbio e manutenção de metadados de informações geográficas
  • Remixing
    • Combinação e extração de conteúdo para formar uma nova saída.  Normalmente ocorre pela junção de serviços (web services).
Outro dia recebi um quesitonamento sobre o que caracteriza uma aplicação ser Web 2.0. 

Na minha visão, as aplicações (sistemas) que possuem a maioria dos recursos supracitados com foco na interatividade, não necessariamente coloboração (blog, publicação de conteúdo, feed, enciclopédia e etiqueta), podem ser consideradas aplicações web 2.0.
Entretanto, considero desejável que alguns recursos de colaboração sejam implementados em partes específicas das aplicações, onde faça sentido o usuário colaborar.

Agora você deve imaginar por que não aplicar os recursos de colaboração, essência da web 2.0, juntamente com a interatividade nas aplicações?
Na minha percepção, os recursos de colaboração estão mais associados a estruturação de portais, que devem ser implementados com recursos de colaboração e interatividade para serem considerados como Web 2.0.



Mais detalhes, ver a apresentação: Apresentação Web N.0