Project Server 2010 아키텍처

 

적용 대상: Project Server 2010

마지막으로 수정된 항목: 2016-11-30

Microsoft Project Server 2010은 Microsoft Office Project Server 2007에 도입된 아키텍처를 확장하는 뛰어난 다중 계층 시스템입니다. Project Server 아키텍처는 프런트 엔드 계층에 Microsoft Project Professional 2010 및 Microsoft Project Web App 클라이언트가 포함되어 있습니다. 프런트 엔드 응용 프로그램은 PSI(Project Server Interface) 웹 서비스를 통해서만 중간 계층과 통신하며, 이 웹 서비스는 다시 비즈니스 개체 계층과 통신합니다. 비즈니스 개체는 DAL(데이터 액세스 계층)을 통해 데이터베이스를 사용합니다. 클라이언트 응용 프로그램은 기본 데이터베이스에 직접 액세스하지 않으므로 Project Server에서는 클라이언트로부터 비즈니스 개체 및 DAL을 숨깁니다.

이 문서에는 다음 섹션이 포함되어 있습니다.

  • 일반적인 아키텍처

  • 웹 서버

  • Project Server Interface

  • 비즈니스 개체

  • 데이터 액세스 계층 및 데이터베이스

  • 게시 및 서버 쪽 일정

일반적인 아키텍처

Project Server 2010과 Office Project Server 2007의 일반적인 아키텍처에서 확인되는 주된 차이점은 다음과 같습니다.

  • Project Server 2010을 실행하려면 Microsoft SharePoint Server 2010 Enterprise를 설치해야 합니다. Microsoft Office Project Server 2007 팜 배포와 마찬가지로 Project Server 2010을 팜에 배포하는 경우 팜의 모든 응용 프로그램 서버 및 웹 서버에 Project Server 2010을 설치해야 합니다.

  • PSI에는 WCF(Windows Communication Foundation) 인터페이스와 웹 서비스를 위한 ASMX 인터페이스가 모두 포함되어 있습니다.

  • Project Server 워크플로 플랫폼은 PSI, 비즈니스 개체 계층 및 DAL에 통합되어 있으며 SharePoint 플랫폼의 Windows WF(Workflow Foundation)를 기반으로 합니다.

  • Project Server 작업, 배정 및 배정 상태 데이터는 Microsoft Outlook 추가 기능이 아닌 Microsoft Exchange Server에 통합됩니다.

다음 그림에서는 Project Server 2010 아키텍처를 일반화한 형태를 보여 줍니다. 여기에는 웹 서버와 Project Server의 Project Web App 인스턴스가 포함되어 있습니다. Office Project Server 2007에서와 마찬가지로 하나의 서버에서 여러 Project Web App 인스턴스를 실행할 수 있습니다.

Project Server 2010 아키텍처

참고

  • Project Server 2010에서는 PSI의 WCF 또는 ASMX 인터페이스를 사용할 수 있습니다. Project Web App 및 Project Professional 2010 클라이언트에서는 모두 WCF 인터페이스를 사용합니다.

  • 아키텍처 그림에 나와 있는 PSI Forwarder는 두 개의 구성 요소, 즉 WCF Forwarder와 Web Service Forwarder로 구성되어 있습니다. ASMX 인터페이스를 사용하는 클라이언트는 Web Service Forwarder를 통해 PSI를 호출하며, WCF 인터페이스를 사용하는 클라이언트에서는 WCF Forwarder를 통해 PSI를 호출합니다.

  • 아키텍처 그림에서는 경계 네트워크에서 DMZ(Demilitarized Zone)라고도 하는 추가 방화벽을 통해 웹 서버를 격리시킬 수 있는지 여부는 확인되지 않습니다.

  • SharePoint Web Services 사이트는 SharePoint Server 2010의 일부입니다(아키텍처 그림에는 나와 있지 않음). SharePoint Web Services 사이트에는 ASMX 및 WCF 서비스를 위한 PSI 가상 디렉터리가 있는 프로젝트 서비스 응용 프로그램이 포함되어 있습니다. Project Server 2010의 프로젝트 서비스 응용 프로그램은 Office Project Server 2007의 공유 서비스 응용 프로그램을 대체합니다.

프런트 엔드 계층에는 타사 응용 프로그램, Microsoft Project Professional 및 Project Web App가 포함됩니다. Project Web App에서는 Internet Explorer를 사용하여 Microsoft ASP.NET 3.5 페이지를 표시합니다. Project Web App 페이지에는 PSI와 통신하는 Project Server 웹 파트는 물론 표준 SharePoint Server 2010 웹 파트도 사용됩니다.

개별 컴퓨터의 클라이언트 응용 프로그램에서는 서비스 프록시를 통해 PSI를 호출합니다. WCF 인터페이스를 사용하는 외부 클라이언트는 https://ServerName/ProjectServerName/_vti_bin/psi/ProjectServer.svc를 통해 PSI에 액세스합니다. ASMX 웹 서비스 인터페이스를 사용하는 클라이언트는 http://server1/pwa/_vti_bin/psi/project.asmx 같은 Project Web App URL 중 하나를 사용합니다. Project Server에 인트라넷을 통해 액세스할 수 없는 응용 프로그램에서는 경계 네트워크의 Project Web App 서버를 사용하면 됩니다(아키텍처 그림에는 나와 있지 않음).

Project Server 컴퓨터에 직접 액세스할 수 있는 클라이언트 응용 프로그램 및 LOB(기간 업무) 웹 응용 프로그램의 백 엔드 구성 요소에서는 http://server1:32843/ProjectServiceApplication/project.asmx 같은 PSI 웹 서비스에 대한 SharePoint 공유 서비스 URL을 사용하는 PSI 프록시를 사용할 수 있습니다. 포트 32843은 SharePoint Server 2010의 SharePoint 웹 서비스 응용 프로그램에 대한 기본 포트입니다. 프로젝트 서비스 응용 프로그램 가상 디렉터리에 대한 직접 액세스 기능은 응용 프로그램에서 가장을 사용하거나 응용 프로그램을 높은 권한으로 실행해야 하는 경우에만 사용해야 합니다.

중간 계층에는 PSI와 비즈니스 논리 계층이 포함되며, 비즈니스 논리 계층은 Project Server 비즈니스 엔터티를 나타내는 논리 비즈니스 개체로 구성되어 있습니다. 비즈니스 개체에는 프로젝트, 작업, 자원, 배정 등이 포함됩니다. PSI와 비즈니스 논리 계층은 밀접하게 결합되어 있으며 같은 서버에 배치되어 있습니다. 클라이언트 응용 프로그램에서는 PSI 웹 서비스를 호출하고 PSI는 비즈니스 논리 계층의 비즈니스 개체를 호출합니다.

DAL은 중간 계층과 데이터베이스 간에 통신이 이루어지도록 합니다. 모든 Project Server 데이터는 Microsoft SQL Server 데이터베이스에 저장됩니다. Project Server 데이터베이스는 임시, 게시된, 보관 및 보고 같은 저장소의 하나로 고려됩니다. 클라이언트 응용 프로그램에서는 보고 데이터베이스에서 프로젝트 데이터를 읽을 수 있습니다. 클라이언트에서 임시, 게시된 또는 보관 데이터베이스에 액세스하려면 반드시 PSI를 사용해야 합니다. 그림 1에는 나와 있지 않지만 RDS(보고 데이터 서비스)는 게시된 데이터에서 거의 실시간으로 보고 데이터베이스를 업데이트합니다. Project Server 2010에서는 모든 Project Server 데이터베이스를 별도의 서버에 배치할 수 있습니다.

또한 Project Server의 Project Web App 구성 요소에서는 프로젝트 사이트 설정에 대해서는 Microsoft SharePoint Foundation 2010 구성 데이터베이스를 사용하고 프로젝트 사이트 콘텐츠에 대해서는 콘텐츠 데이터베이스를 사용합니다. 프로젝트 사이트 콘텐츠에는 사용자 지정 페이지, 워크플로, 관리 설정, 문서를 비롯하여 문제, 위험 및 약속 목록이 포함됩니다. SharePoint 구성 데이터베이스와 콘텐츠 데이터베이스에서는 프로젝트 서식 파일 및 작업 환경, 팀 공동 작업을 위한 사용자 지정 목록, 보고서 등의 프로젝트 관리를 위한 추가 기능을 지원합니다.

웹 서버

회사 인트라넷에 웹 서버를 하나 이상 설치하여 인트라넷 클라이언트에 대한 부하를 분산시킬 수 있습니다. 클라이언트 응용 프로그램에서 별도의 웹 서버를 사용하는 경우에는 PSI 호출이 PSI Forwarder를 통해 Project Server 컴퓨터의 PSI 웹 서비스로 라우팅됩니다. PSI Forwarder(WCF Forwarder 또는 Web Service Forwarder)는 다음과 같은 기능을 수행합니다.

  • 원격 클라이언트의 PSI에 대한 호출 최적화

  • Project Server에 대한 왕복 호출을 줄이도록 Microsoft Project Professional에서 클라이언트 쪽 활성 캐시와 연동되는 서버 기반 캐시 포함

사용자가 Project Server로부터 인증 쿠키를 수신하고 나면 PSI Forwarder에서는 Project Server 컴퓨터에 PSI 웹 서비스에 대한 요청을 투명한 방식으로 전송합니다. PSI Forwarder는 LAN 및 WAN 모두에서 성능과 안정성을 개선합니다.

Project Web App는 .NET 3.5를 사용하여 개발됩니다. .aspx 파일의 시각적 요소(HTML, 서버 컨트롤 및 정적 텍스트)는 컴파일된 어셈블리(.dll 파일)에 있는 코드 숨김 클래스의 프로그래밍 논리와 구분되어 있습니다. 최상위 페이지, 프로젝트 센터 및 보고서 센터 같은 Project Web App의 사이트 페이지는 웹 파트를 사용하여 사용자 지정할 수 있습니다. 서버 설정 페이지 및 작업표 검토 페이지 같이 사이트 작업 메뉴에 페이지 편집 옵션이 없는 응용 프로그램 페이지는 편집할 수 없습니다.

Project Server Interface

PSI는 Project Server의 API입니다. PSI 개체 모델은 모든 외부 응용 프로그램에 Project Server 기능을 노출합니다. Project Professional 2010, Project Web App, LOB 및 다른 타사 응용 프로그램에서는 PSI를 사용하여 임시, 게시된 및 보관 데이터베이스의 Project Server 데이터에 액세스합니다. PSI는 WCF 서비스 및 백 엔드 LOB 응용 프로그램의 ASMX 웹 서비스 호출을 통해 사용하거나 PSI 프록시를 통해 사용할 수 있습니다.

PSI의 웹 메서드는 대개 비즈니스 개체와 정보를 교환하기 위한 방법으로 형식 있는 DataSet 개체를 생성하거나 사용합니다. PSI 참조에는 DataSet 설명서가 포함되어 있습니다.

비즈니스 개체

Project Server의 내부 개체 모델에는 비즈니스 개체가 포함됩니다. 클라이언트 응용 프로그램은 PSI를 통해서만 비즈니스 개체에 액세스할 수 있으며, 비즈니스 개체에서만 DAL을 호출할 수 있습니다.

비즈니스 개체는 다음과 같은 세 가지 유형으로 분류할 수 있는 논리 엔터티입니다.

  • 핵심 엔터티 - 프로젝트, 작업, 배정, 자원 및 일정 같은 개체입니다. 핵심 엔터티에는 사용 권한 및 명명 규칙 같은 기본 비즈니스 논리가 포함됩니다.

  • 비즈니스 엔터티 - 작업표, 포트폴리오 및 모델 같은 개체입니다. 비즈니스 엔터티에는 추가 비즈니스 논리가 포함되며 대개 핵심 엔터티를 조합하여 만들어집니다.

  • 지원 엔터티 - 보안 및 유효성 검사 같은 개체입니다.

PSI는 비즈니스 개체에 대한 API의 매핑을 처리합니다.

데이터 액세스 계층 및 데이터베이스

DAL은 Project Server 내에 있으며 외부 응용 프로그램으로 노출되지 않습니다. DAL은 데이터의 논리 비즈니스 엔터티 표현과 물리적 데이터베이스 테이블 간을 변환합니다. 각 논리 엔터티는 서로 다른 여러 테이블에 저장됩니다. DAL은 연결 관리, 쿼리 실행, 트랜잭션 시작, 커밋 및 롤백에 필요한 작업을 캡슐화합니다.

Project Server 데이터는 SQL Server에서 네 개의 데이터베이스로 분할됩니다.

  • 임시 데이터베이스에는 Microsoft Project Professional 및 다른 응용 프로그램의 게시되지 않은 프로젝트를 저장하기 위한 테이블이 포함됩니다. Project Web App에서는 임시 데이터베이스의 프로젝트 데이터는 표시하지 않습니다.

  • 게시된 데이터베이스에는 모든 게시된 프로젝트 및 Enterprise 자원, Enterprise Global 서식 파일, 다른 프로젝트 서식 파일이 포함됩니다. 게시된 프로젝트는 Project Web App에 표시됩니다. 게시된 데이터베이스에는 Project Web App와 관련된 테이블(작업표, 모델, 보기 등)과 전역 데이터 테이블(사용자 지정 필드, 조회 테이블, 보안 및 메타데이터)도 포함됩니다.

  • 보관 데이터베이스에서는 프로젝트 및 다른 데이터의 백업 버전을 저장합니다.

  • RDB(보고 데이터베이스)는 보고서 및 OLAP 큐브를 생성하기 위한 준비 영역입니다. 보고 데이터베이스의 데이터는 포괄적이며 거의 실시간으로 업데이트됩니다. 테이블 및 보기는 읽기 전용 보고서를 생성하도록 최적화되어 있습니다. 예를 들어 RDB 테이블은 중복 데이터를 제공하고 관계형 테이블의 수를 줄이도록 정규화 해제되어 있습니다.

자원 또는 프로젝트 등의 엔터티는 여러 테이블에 걸쳐 있을 수 있으며 특정 엔터티에 대한 모든 테이블은 기본 키가 동일합니다. 기본 키는 특정 엔터티의 한 인스턴스를 고유하게 식별하는 단일 열입니다. 고유한 식별자는 GUID입니다.

보고 데이터베이스 스키마만이 문서화됩니다. 임시, 게시된 및 보관 데이터베이스에는 PSI를 통해서만 액세스해야 합니다. 보고 데이터베이스에는 Project Server 2010 데이터베이스 스키마에 정의되어 있지 않은 데이터 테이블, 필드(속성) 및 엔터티를 추가할 수 있습니다. 코어 데이터베이스에 테이블을 추가하는 경우에는 사용자 지정 어셈블리, 웹 서비스, 비즈니스 개체 및 데이터 액세스의 전체 스택을 제공해야 합니다. 보고 데이터베이스는 간단히 수정할 수 있지만 코어 Project Server 데이터베이스는 수정하지 않는 것이 좋습니다.

게시 및 서버 쪽 일정

Project Server 2010에서는 수동 및 자동 프로젝트 일정 업데이트를 모두 지원합니다. 기본 프로세스는 프로젝트를 수동으로 업데이트하는 것입니다. 즉, 프로젝트 관리자가 Microsoft Project Professional에서 프로젝트를 열고 변경 사항을 적용한 다음 프로젝트를 저장하고 모든 인원이 사용할 수 있도록 게시합니다. Microsoft Project Professional의 일정 엔진에서는 수동 업데이트를 위한 일정 변경을 계산합니다.

Project Server의 일정 엔진은 PSI를 사용하여 프로젝트를 자동으로 업데이트할 수 있도록 합니다. Project Server에서는 다음과 같은 단계를 통해 프로젝트 관리자가 초안 버전을 사용하는 동안 프로젝트의 게시된 버전이 업데이트되도록 합니다.

  1. Project Server에서 업데이트를 적용하고 게시된 버전의 일정을 자동으로 다시 예약합니다.

  2. Project Server에서 다음 이벤트 발생 시 초안 버전에 적용할 업데이트를 저장합니다.

    1. Microsoft Project Professional에서 프로젝트를 여는 경우

    2. Microsoft Project Professional에서 프로젝트를 게시하려고 하는 경우

  3. 충돌이 발생하는 경우 프로젝트 관리자는 초안 버전을 게시하기 전에 이를 해결해야 합니다.

경고

Project Server 일정 엔진과 Microsoft Project Professional 일정 엔진은 몇 가지 차이점과 제한 사항이 있습니다. 예를 들어 Project Server에서는 하위 프로젝트 또는 다른 프로젝트 링크에 대해서는 일정을 예약하지 않으며 진척 상황 필드를 계산하지 않습니다. 자세한 내용은 MSDN Library Online에서 Project Server의 프로그래밍 기능(영문일 수 있음)(https://go.microsoft.com/fwlink/?linkid=191606&clcid=0x412)(영문일 수 있음)의 서버의 프로젝트 일정 섹션을 참조하십시오.