Reuso de software é praticado desde que se começou a programar, usando, por exemplo, bibliotecas, engenharia de domínio, padrões de projeto, componentização, etc. Um método popular de reuso é o uso de frameworks de software (ex.: Hibernate) ou arquiteturas completas oferecidas por certas plataformas de desenvolvimento (ex.: Java Enterprise Edition, agora rebatizada de Jakarta EE), que são middlewares sobre/com os quais aplicações podem ser desenvolvidas. O uso de tais frameworks (ou arquiteturas) auxilia a evitar a contínua redescoberta e reinvenção de padrões e componentes arquiteturais básicos, reduzindo custos e aumentando a qualidade do código, pelo uso de arquiteturas e designs já bastante experimentados.
Isso é particularmente evidente no contexto do desenvolvimento de sistemas de informação baseados na Web (Web-based Information Systems ou WISs). WISs são aplicações centradas em dados e disponíveis para acesso via Internet ou por uma intranet, nas quais funcionalidade e dados possuem mais importância do que apresentação de conteúdo. Tais sistemas são geralmente desenvolvidos sobre uma infraestrutura Web sólida, que comumente inclui um Controlador Frontal (framework Web), um mecanismo de Injeção de Dependências, uma solução de Mapeamento Objeto/Relacional para comunicação com o banco de dados, um framework de Segurança para controle de acesso baseado em papeis, e assim por diante.
FrameWeb, ou Framework-based Design Method for Web Engineering, é um método para o desenvolvimento de WISs que incorpora conceitos de categorias de frameworks bem estabelecidas (como as mencionadas acima) num conjunto de modelos de projeto arquitetural de software, melhorando a comunicação entre desenvolvedores e a documentação do projeto.
Num contexto diferente, porém relacionado, um número cada vez maior de pessoas e organizações vem escolhendo compartilhar seus dados na Web, contribuindo para uma inundação de dados. Este fenômeno cria alguns problemas, por exemplo: como prover acesso aos dados de modo que eles sejam mais facilmente reutilizados? Como permitir descoberta de dados relevantes? Como integrar dados de fontes de dados diferentes e até mesmo desconhecidas até o momento? Uma solução que tem ganhado visibilidade nos últimos anos é a publicação de dados interligados, ou linked data, um conjunto de tecnologias que estabelece a fundação para o que pesquisadores vem denominando Web Semântica (Semantic Web) nas duas últimas décadas.
De acordo com a visão da Web Semântica, disponibilizar dados na Web em um formato processável por máquina permitiria a criação de agentes de software que poderiam nos ajudar a navegar pela inundação de dados, executando tarefas que são repetitivas, impraticáveis ou até mesmo impossíveis de se executar atualmente. Uma das principais questões relacionadas a esta visão é que o nível atual de envolvimento de publicadores de dados e de desenvolvedores de aplicações que consumam estes dados não é o suficiente para que possamos colher os benefícios desta nova Web de Dados.
Neste contexto, FrameWeb provê um método sistemático baseado em modelos conceituais bem fundamentados, acompanhado de ferramentas que automatizam certas partes do processo, facilitando a tarefa de integrar um WIS na Web de Dados e, portanto, promovendo a adoção de dados interligados. Ainda que seja uma contribuição pequena em relação ao problema maior de se efetivar a visão da Web Semântica, podemos ainda assim colher os benefícios do uso de dados interligados, mesmo que tal visão ainda não tenha sido (ou nunca seja) alcançada.
Desde sua proposta inicial, FrameWeb evoluiu em um número de formas de modo a lidar com limitações do método. Por exemplo, sua proposta inicial era direcionada a um conjunto específico de frameworks e não trazia uma especificação precisa de sua linguagem de modelagem. Portanto, esforços como a definição do metamodelo e a aplicação do método em outras plataformas e com diferentes frameworks contribuíram para diminuir tais limitações. No entanto, para entender de maneira adequada cada categoria de framework que o método suporta, um estudo mais sistemático dos diferentes frameworks de cada categoria se faz necessário.
Começamos, portanto, a construir ontologias para cada categoria de framework que o método provê suporte (Controlador Frontal, Injeção de Dependências, Mapeamento Objeto/Relacional, de Segurança), usando uma abordagem de engenharia de ontologias de modo a assegurar que tais modelos de referência representam um consenso entre os frameworks mais utilizados de cada categoria. Então, o metamodelo FrameWeb pode ser revisado e ajustado baseado nestas ontologias, possivelmente levando a modificações em sua linguagem de modelagem. Tais ontologias estão sendo organizadas em uma rede de ontologias chamada SFWON – Software Frameworks Ontology Network – e o seu impacto na linguagem FrameWeb está em andamento.
Mais detalhes podem ser vistos na página da SFWON.
Para mais informações sobre FrameWeb, entre em contato com o prof. Vítor E. Silva Souza, que coordena os atuais esforços neste projeto de pesquisa.