Arquitectura

Na versão base da arquitectura WebComfort são evidenciados os seguintes conceitos: plataforma, interface de programação API, e mecanismos de extensão.

  • Plataforma. Plataforma aplicacional que providencia as principais funcionalidades enunciadas na Secção 2. A plataforma WebComfort é uma aplicação Web que corre no contexto de um servidor ASP.NET (e.g., Microsoft IIS, Cassini, Mono) e é responsável por manter os seus recursos num servidor de bases de dados (e.g., Microsoft SQL Server). Os recursos geridos pela plataforma são naturalmente páginas, utilizadores, papéis, definição de módulos, módulos, temas visuais, etc.
  • API (Application Programming Interface). Camada de interface de programação, constituída por um modelo de objectos correspondente aos recursos geridos e a uma hierarquia de objectos que facilita e orienta o desenvolvimento de módulos [8]. O responsável pela criação de módulos e ou de aplicações utiliza esta API para acesso e gestão desses recursos. É fortemente recomendado a manipulação da WebComfort-API no desenvolvimento de aplicações e módulos específicos.
  • Mecanismos de extensão da plataforma. A plataforma WebComfort é estendida através da definição de quatro aspectos complementares: módulos, temas visuais, workflows, e linguagens. Os módulos encontram-se estruturados em torno de bibliotecas designadas por toolkits. Na versão base da plataforma WebComfort são distribuídos pelo menos os seguintes componentes: (1) Toolkit de módulos de administração (Admin Toolkit) e de módulos standard (Standard Toolkit), que conjuntamente providenciam as funcionalidades essenciais na gestão e operação de aplicações Web; (2) Tema visual por omissão (DefaultTheme); (3) Workflow por omissão (Default workflow); e (4) Língua ou linguagem por omissão (DefaultLanguage).
Todavia, atendendo às propriedades de extensão e modularidade da plataforma, é expectável que uma aplicação WebComfort possa tirar partido de outros toolkits de módulos, e de outras definições de temas visuais, workflows e línguas.
    Suporte Multilíngua

    Um dos requisitos típicos de aplicações Web é a capacidade de disponibilização de conteúdos em várias línguas, e.g. Português, Inglês, Espanhol, Mandarim.

    Uma solução tradicional é o suporte multilíngua recorrendo ao desenvolvimento de múltiplas aplicações/sites, uma por cada língua. Esta solução é usualmente designada por “falso suporte multilíngua”, não é escalável, não oferece uma visão integrada dos conteúdos, e apresenta inúmeros problemas de gestão e manutenção de conteúdos. O WebComfort ultrapassa essas limitações, ao providenciar uma plataforma com suporte multilíngua integrado, o qual se concretiza através de dois aspectos complementares:

    • Suporte multilíngua estático refere-se à possibilidade do developer dos módulos providenciar ao nível das definições textuais dos seus controlos (e.g., labels de caixas de texto, de links ou de botões) versões em várias línguas. Essas definições são estruturadas em ficheiros XML designados por “WebComfort Language Packs” (Consultar Manual do Programador para mais detalhes).
    • Suporte multilíngua dinâmico refere-se à possibilidade dos produtores/gestores de conteúdos poderem registar textos em diferentes línguas e, por outro lado, a integração e visualização desses conteúdos textuais ser realizada sobre a mesma aplicação Web, de modo integrado.

    Por conseguinte, na perspectiva de variabilidade da plataforma, apenas é requerido ao developer que providencie para cada módulo ou conjunto de módulos os Language Packs relativos às linguagens que sejam requeridas. Caso não exista, a extensão para uma nova linguagem não é complexa, envolvendo apenas a tarefa de tradução das labels dos vários controlos, e a produção de novo ficheiro XML, no formato WebComfort Pack Language com esses novos textos

    Suporte Workflows

    Actualmente em desenvolvimento, o mecanismo de Workflow para o WebComfort, constitui uma funcionalidade opcional, a qual é todavia relevante nos sistemas de gestão de conteúdos visto que confere a estes sistemas o princípio de automação de tarefas. Em geral apenas um número diminuto de CMS, mais avançados e versáteis, oferecem este requisito. Entre as operações suportadas destacam-se a criação, gestão e monitorização de workflows, e a sua associação a objectos e comunicação com aplicações externas. No WebComfort os workflows podem ser aplicados e executados sobre os seguintes tipos de objectos: módulo e respectivo conteúdo (a situação mais usual), página e mesmo ao nível da própria aplicação Web.

    Um workflow é definido de forma genérica, através os seguintes conceitos: (1) conjunto de estados-actividade; (2) conjunto de eventos (e.g., notificação de utilizador a autorizar qualidade do conteúdo) que provocam transições entre estados; (3) condições (e.g., condições lógicas ou condições temporais); (4) operações (e.g., envio de mensagem para um grupo de utilizadores, invocação de um método de um Web Service remoto); e (5) papéis dos participantes do workflow (e.g., autor, revisor, moderador).

    A mesma definição de workflow pode ser associada a um ou mais objectos, independentemente do seu tipo. A plataforma, providencia na versão base três definições de workflows que são atribuídas por omissão, respectivamente a módulos (ModuleDefaultWF), páginas (PageDefaultWF) e aplicações Web (WebAppDefaultWF). Contudo, podem-se definir novos workflows através de duas formas alternativas: (1) através de formulários Web, providenciados de forma integrada na plataforma WebComfort; ou (1) definidos em XML, através de um editor de texto comum, e depois importados para o sistema.

    É dado especial importância à intervenção dos utilizadores na evolução dos objectos de um dado Workflow, visto que uma das principais aplicações desta funcionalidade é no suporte à autorização de conteúdos, no âmbito do seu processo de edição e publicação. Os utilizadores podem aprovar ou rejeitar conteúdos de acordo com um mecanismo de edição, revisão e publicação previamente definido. As principais funcionalidades providenciadas são: (1) configuração, gestão e monitorização de Workflows; (2) sistema de revisão de conteúdos; (3) mecanismo de notificação de intervenientes sobre o estado dessa revisão; e (4) interface de comunicação com outros sistemas de informação.