Arquitetura do Project Server 2010

 

Aplica-se a: Project Server 2010

Tópico modificado em: 2016-11-30

O Microsoft Project Server 2010 é um verdadeiro sistema de várias camadas que estende a arquitetura introduzida no Microsoft Office Project Server 2007. A arquitetura do Project Server inclui clientes do Microsoft Project Professional 2010 e do Microsoft Project Web App na camada de front-end. Os aplicativos front-end só se comunicam com a camada intermediária por meio de Serviços Web PSI (Interface do Project Server) que, por sua vez, se comunicam com a camada de objetos comerciais. Os objetos comerciais usam os bancos de dados por meio da DAL (camada de acesso a dados). Os aplicativos clientes não acessam diretamente os bancos de dados principais; o Project Server oculta os objetos comerciais e a DAL dos clientes.

Este artigo contém as seguintes seções:

  • Arquitetura geral

  • Servidores Web

  • Interface do Project Server (PSI)

  • Objetos comerciais

  • A Camada de Acesso a Dados e os bancos de dados

  • Publicação e agendamento do lado servidor

Arquitetura geral

As principais diferenças na arquitetura geral entre o Project Server 2010 e o Office Project Server 2007 são as seguintes:

  • O Project Server 2010 exige o Microsoft SharePoint Server 2010 Enterprise como um requisito de instalação. Como na implantação de farm do Microsoft Office Project Server 2007, quando você está implantando o Project Server 2010 em um farm, o Project Server 2010 precisa ser instalado em todos os servidores de aplicativos e em todos os servidores Web do farm.

  • A PSI inclui a interface WCF (Windows Communication Foundation) e a interface ASMX para serviços Web.

  • A plataforma de fluxo de trabalho do Project Server é integrada à PSI, à camada de objetos comerciais e à DAL, e criada sobre o WF (Windows Workflow Foundation) na plataforma do SharePoint.

  • Os dados de tarefa, atribuição e status da atribuição do Project Server estão integrados ao Microsoft Exchange Server, em vez de a um suplemento do Microsoft Outlook.

A figura a seguir mostra uma exibição generalizada da arquitetura do Project Server 2010. Inclui um servidor Web e uma instância do Project Web App no Project Server. Como no Office Project Server 2007, pode haver várias instâncias do Project Web App em execução em um servidor.

Arquitetura do Project Server 2010

Observação

  • No Project Server 2010, você pode usar a interface WCF ou a ASMX da PSI. Os clientes do Project Web App e do Project Professional 2010 usam a interface WCF.

  • O Encaminhador da PSI na arquitetura gráfica consiste em dois componentes, um Encaminhador do WCF e um Encaminhador do Serviço Web. Os clientes que usam a interface ASMX chamam a PSI por meio do Encaminhador do Serviço Web. Os clientes que usam a interface WCF chamam o PSI por meio do Encaminhador do WCF.

  • A arquitetura gráfica não mostra que o servidor Web pode ser isolado por um firewall adicional em uma rede de perímetro (também conhecida como uma "zona desmilitarizada", ou DMZ).

  • O site dos serviços Web do SharePoint faz parte do SharePoint Server 2010 (não mostrado na arquitetura gráfica). O site dos serviços Web do SharePoint inclui o Aplicativo de Serviço Project com o diretório virtual do PSI para os serviços ASMX e WCF. O Aplicativo de Serviço Project do Project Server 2010 substitui o Aplicativo de Serviços Compartilhados do Office Project Server 2007.

A camada de front-end inclui aplicativos de terceiros, o Microsoft Project Professional e o Project Web App. O Project Web App usa o Internet Explorer para exibir páginas do Microsoft ASP.NET 3.5. As páginas do Project Web App usam Web Parts do Project Server que se comunicam com a PSI e também usam Web Parts padrão do SharePoint Server 2010.

Aplicativos cliente em computadores separados chama a PSI por meio de proxies de serviço. Os clientes externos que usam a interface WCF acessam a PSI por meio do site http://NomeDoServidor/NomeDoProjectServer/_vti_bin/psi/ProjectServer.svc. Os clientes que usam a interface do serviço Web ASMX usam uma das URLs do Project Web App, como http://servidor1/pwa/_vti_bin/psi/project.asmx. Se os aplicativos não tiverem acesso de intranet ao Project Server, poderão usar um servidor Project Web App em uma rede de perímetro (não mostrado na arquitetura gráfica).

Se eles puderem acessar diretamente o computador do Project Server, os aplicativos cliente e os componentes de back-end de aplicativos Web de LOB (linha de negócios) podem usar proxies PSI que utilizam a URL de serviço compartilhado do SharePoint para os serviços Web PSI, como http://servidor1:32843/ProjectServiceApplication/project.asmx. A porta 32843 é a padrão para o aplicativo de serviços Web do SharePoint no SharePoint Server 2010. O acesso direto ao diretório virtual do Aplicativo de Serviço do Project só deverá ser usado quando um aplicativo tiver representação de uso ou quando for executado com permissões elevadas.

A camada intermediária inclui o PSI e a camada de lógica de negócios, que consiste em objetos comerciais lógicos que representam entidades comerciais do Project Server. Os objetos comerciais incluem Projeto, Tarefa, Recurso, Atribuição e assim por diante. O PSI e a camada lógica de negócios têm uma relação estreita e estão localizados no mesmo servidor. Um aplicativo cliente chama os serviços Web PSI e o PSI chama objetos comerciais na camada de lógica de negócios.

A DAL oferece comunicação entre a camada intermediária e o banco de dados. Todos os dados do Project Server armazenados em bancos de dados do Microsoft SQL Server. Os bancos de dados do Project Server são fatorados nos seguintes repositórios: Rascunho, Publicado, Arquivo Morto e Relatório. Os aplicativos cliente podem ler o banco de dados Relatório para obter dados do projeto. Os clientes só deverão usar a PSI para acessar os bancos de dados Rascunho, Publicado ou Arquivo Morto. O Report Data Service (RDS, que não é mostrado na Figura 1) atualiza o banco de dados Relatório a partir de dados publicados quase que em tempo real. No Project Server 2010, todos os bancos de dados do Project Server podem ser colocados em servidores separados.

Os componentes do Project Web App do Project Server também usam o banco de dados de configuração do Microsoft SharePoint Foundation 2010 para configuração de site do projeto e o banco de dados de conteúdo para conteúdo do site do projeto como páginas personalizadas, fluxos de trabalho, configurações de gerenciamento, documentos e listas de problemas, riscos e comprometimentos. A configuração do SharePoint e os bancos de dados de conteúdo dão suporte a recursos adicionais para o gerenciamento de projetos, como modelos e espaços de trabalho de projeto, listas personalizadas para colaboração de equipe e relatórios.

Servidores Web

Você pode instalar um ou mais servidores Web em uma intranet corporativa para permitir a distribuição de carga para clientes de intranet. Quando um aplicativo cliente usa um servidor Web separado, as chamadas ao PSI são roteadas por meio de um Encaminhador da PSI para os serviços Web PSI no computador do Project Server. O Encaminhador da PSI (o Encaminhador do WCF ou o Encaminhador do Serviço Web) executa as seguintes funções:

  • Otimiza chamadas para o PSI feitas por clientes remotos

  • Inclui um cache baseado em servidor que funciona com o cache ativo do lado cliente no Microsoft Project Professional para reduzir chamadas de viagem de ida e volta para o Project Server

Depois que um usuário recebe um cookie de autenticação do Project Server, o Encaminhador PSI envia, de forma transparente, solicitações para os serviços Web PSI no computador do Project Server. O Encaminhador da PSI aprimora o desempenho e a confiabilidade na LAN e em uma WAN.

O Project Web App foi desenvolvido com ASP.NET 3.5. Os elementos visuais dos arquivos .aspx (HTML, controles de servidor e texto estático) estão separados da lógica de programação em classes codificadas que são assemblies compilados (arquivos .dll). As páginas do site no Project Web App, como a página de nível superior, a Central de Projetos e a Central de Relatórios, podem ser personalizadas usando Web Parts. As páginas de aplicativo que não têm uma opção Editar Página no menu Ações do Site não podem ser editadas, como a página Configurações do Servidor e a página Revisar Detalhes do Quadro de Horários.

Interface do Project Server (PSI)

A PSI é a API do Project Server. O modelo de objeto da PSI expõe funcionalidade do Project Server para todos os aplicativos externos. O Project Professional 2010, Project Web App, LOB e outros aplicativos de terceiros usam a PSI para acessar dados do Project Server nos bancos de dados Rascunho, Publicado e Arquivo Morto. A PSI está disponível por meio de serviços WCF e por meio de chamadas de serviço WEb ASMX feitas por aplicativos LOB de back-end ou por meio de um proxy PSI.

Os métodos da Web da PSI normalmente produzem ou consomem objetos DataSet tipados como a forma de trocar informações com os objetos comerciais. A referência da PSI inclui uma documentação sobre DataSet.

Objetos comerciais

O modelo de objeto interno do Project Server inclui os objetos comerciais. Os aplicativos cliente só acessam objetos comerciais por meio da PSI e somente os objetos comerciais podem chamar a DAL.

Os objetos comerciais são entidades lógicas que podem ser classificadas em três tipos:

  • As entidades principais são objetos como projetos, tarefas, atribuições, recursos e calendários. As entidades principais incluem lógica de negócios básica, como permissões e regras de nomenclatura.

  • As entidades comerciais são objetos como quadros de horários, portfólios e modelos. As entidades comerciais incluem lógica de negócios adicional e normalmente são criadas a partir de uma combinação de entidades principais.

  • As entidades de suporte são objetos como segurança e validação.

A PSI manipula o mapeamento da API para objetos comerciais.

A Camada de Acesso a Dados e os bancos de dados

A DAL é interna ao Project Server e não é exposta a aplicativos externos. A DAL é traduzida entre a representação da entidade comercial lógica dos dados e as tabelas de bancos de dados físicos. Cada entidade lógica é armazenada em diversas tabelas diferentes. A DAL encapsula o trabalho necessário para gerenciar conexões, executar consultas e iniciar/confirmar/reverter transações.

Os dados do Project Server são particionadas em quatro bancos de dados no SQL Server.

  • O banco de dados de Rascunho contém tabelas para salvar projetos não publicados do Microsoft Project Professional. e em outros aplicativos. Os dados do Project Web App não mostra dados do projeto no banco de dados Rascunho.

  • O banco de dados Publicado contém todos os projetos publicados e os recursos empresariais, o modelo empresarial global e outros modelos do projeto. Os projetos publicados ficam visíveis no Project Web App. O banco de dados Publicado também contém tabelas específicas do Project Web App (quadros de horários, modelos, exibições etc.) e tabelas de dados globais (campos personalizados, tabelas de pesquisa, segurança e metadados).

  • O banco de dados Arquivo Morto salva versões de backup de projetos e de outros dados.

  • O banco de dados Relatório (RDB) é a área de preparação para a geração de relatórios e cubos OLAP. Os dados do banco de dados Relatório são abrangentes e são atualizados quase que em tempo real. As tabelas e exibições são otimizadas para geração de relatórios somente leitura; por exemplo, as tabelas do RDB são desordenados para oferecer dados redundantes e reduzir o número de tabelas relacionais.

Entidades como Recurso ou Projeto podem se dividir em diversas tabelas, e todas as tabelas de uma entidade em particular têm a mesma chave primária. A chave primária é uma coluna única que identifica exclusivamente uma instância de uma determinada entidade. Os identificadores exclusivos são GUIDs.

Somente o esquema do banco de dados Relatório é documentado. Você só deve acessar os bancos de dados Rascunho, Publicado e Arquivo Morto por meio da PSI. É possível adicionar tabelas de dados, campos (propriedades) e entidades que não estejam definidas no esquema de banco de dados do Project Server 2010 ao banco de dados Relatório. Se você adicionar tabelas aos bancos de dados principais, também deverá fornecer a pilha completa de um assembly personalizado, serviço Web, objetos comerciais e acesso a dados. Você pode modificar com facilidade o banco de dados Relatório; recomendamos que você não modifique os bancos de dados principais do Project Server.

Publicação e agendamento do lado servidor

O Project Server 2010 dá suporte a atualizações de agenda do projeto manuais e automatizadas. O processo padrão é atualizar projetos manualmente. Ou seja, o gerente de projeto abre o projeto no Microsoft Project Professional, aplica as alterações e salva e publica o projeto para disponibilizar as alterações para todos. O mecanismo de agendamento no Microsoft Project Professional calcula alterações de agendamento para atualizações manuais.

O mecanismo de agendamento do Project Server permite atualizações de projeto automatizadas usando a PSI. O Project Server permite que a versão publicada de um projeto seja atualizada enquanto um gerente de projeto estiver usando a versão de rascunho com as seguintes etapas:

  1. O Project Server aplica atualizações e reagenda a versão publicada automaticamente.

  2. O Project Server salva a atualização para aplicá-la à versão de rascunho quando um dos seguintes eventos ocorrer:

    1. O Microsoft Project Professional abre o projeto.

    2. O Microsoft Project Professional tenta publicar o projeto.

  3. Se houver um conflito, o gerente de projeto deverá resolvê-lo antes que a versão de rascunho seja publicada.

Aviso

Existem algumas limitações e diferenças entre o mecanismo de agendamento do Project Server e o mecanismo de agendamento do Microsoft Project Professional. Por exemplo, o Project Server não agenda subprojetos ou links para outros projetos, além de não calcular campos de valor agregado. Para obter mais informações, consulte o Agendamento de Projetos na seção Servidor do artigo sobre a programação no Project Server (https://go.microsoft.com/fwlink/?linkid=191606&clcid=0x416) na Biblioteca MSDN Online.