OPA!
Já desenvolvi módulos da forma como está sendo especificado aqui para aplicação web. Tratava-se de módulos de gestão de RH onde o cliente poderia (e pode até hoje) adquirir apenas um ou alguns módulos e com isso, era disponibilizado para ele apenas os módulos licenciados - com setup e tudo mais.
Entretanto, não tive dificuldades nenhuma para fazer essa suite de produtos só que a tecnologia que utilizava era MICROSOFT .NET.
Agora estou trabalhando com JAVA e tenho dificuldades para conseguir o mesmo resultado devido à arquitetura web dessa plataforma.
Já verifiquei tecnologias mencionadas mas está difícil chegar perto do que eu tinha…
Realmente não temos muita liberdade para trabalhar e aí fica difícil.
Basicamente a solução criada foi:
1 - Criação do Portal + sistema de autorização compatível com a Lei Sarbanes Oxley (SOX). Esse aplicativo possibilitava a publicação de novos módulos como plugins e o sistema de autorização já reconhecia os módulos instalados para que fossem concedidas as devidas permissões de acesso e de visibilidade de domínio bem como de auditoria;
2 - Criação de um framework para possibilitar a distribuição dos módulos em servidores diferentes de forma transparente para o portal, possibilitando o load balance e tudo mais;
3 - Criação dos módulos, começamos pelos módulos de auto-atendimento onde disponibilizavam serviços como emissão de contra-cheque, declarações, solicitações de férias, etc…
4 - Criação do serviço BPMN que possibilitou a publicação dos fluxos de processos - workflow - como se fossem serviços comuns no portal (muito bacana essa parte já que o cliente podia criar seus fluxos de processos na ferramenta de desenho de processos e publicar os processos como se estivessem instalando um novo plugin no portal);
5 - Criação do módulo de configuração que permitia ao cliente determinar o layout das páginas que ele desejava que sua empresa visse. O bacana disso tudo era que ele poderia criar vários layouts e definir para qual grupo de usuários aquele layout deveria aparecer, se o usuário teria liberdade para editar o layout, se poderia mudar a posição dos objetos (pagelets)…
Enfim, antes de mais nada foi preciso definir uma arquitetura que possibilitasse tudo isso. Essa arquitetura foi até homologada pela Microsoft mas hoje, na empresa que trabalho atualmente adotamos java e até agora estou tendo dificuldades de viabilizar algo dessa grandeza já que tudo é baseado em ferramentas já prontas que fazem muita coisa por um lado e deixam a desejar por outro.
Além disso, existem inúmeras possibilidades, o que nos leva a dedicar um tempo grande para pesquisar, encontrar, aprender e avaliar cada opção para ver qual é a mais indicada, porém, a empresa não quer gastar muito tempo com pesquisa, ela quer “resultados” rápidos porque afinal, a cultura dela é que as coisas já estão prontas e basta pegar e agregar para utilizar…só que não é bem isso né?!
Enfim, também estou nessa mano e se eu souber de algo mais concreto eu te falo.
Estou para decidir fazer o básico utilizando GWT porque tudo será feito apenas em JAVA, sem a necessidade de ferramentas adicionais. Isso tornará o processo de gestão mais fácil já que teremos diversas equipes por módulos e elas poderão trabalhar com uma única tecnologia, um único padrão e uma única arquitetura de referência, sem precisar estudar complementos.