KR20080035615A - 서버 측 프로젝트 관리자 - Google Patents

서버 측 프로젝트 관리자 Download PDF

Info

Publication number
KR20080035615A
KR20080035615A KR1020087003224A KR20087003224A KR20080035615A KR 20080035615 A KR20080035615 A KR 20080035615A KR 1020087003224 A KR1020087003224 A KR 1020087003224A KR 20087003224 A KR20087003224 A KR 20087003224A KR 20080035615 A KR20080035615 A KR 20080035615A
Authority
KR
South Korea
Prior art keywords
project
data
update
application program
program interface
Prior art date
Application number
KR1020087003224A
Other languages
English (en)
Other versions
KR101255396B1 (ko
Inventor
로이 카야하라
에드워드 제이. 슐츠
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20080035615A publication Critical patent/KR20080035615A/ko
Application granted granted Critical
Publication of KR101255396B1 publication Critical patent/KR101255396B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06312Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06313Resource planning in a project environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/02CAD in a network environment, e.g. collaborative CAD or distributed simulation

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • General Physics & Mathematics (AREA)
  • Game Theory and Decision Science (AREA)
  • Quality & Reliability (AREA)
  • Educational Administration (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

서버 측 프로젝트 관리자가 서버 상에서 프로젝트를 생성, 업데이트, 스케줄링 및 관리하기 위해 웹 서비스 API 호출 세트를 활용한다. 사용자는 자신이 새로운 프로젝트를 생성하거나 프로젝트 애플리케이션으로부터 기존의 프로젝트를 수정하는 경우 프로젝트 업데이트 요구를 보낸다. 프로젝트 업데이트 요구는 웹 서버를 호출하여 웹 서비스를 통해 프로젝트를 업데이트하는 API와 연관된다. API 예는 데이터 검색 호출, 관리 호출 또는 데이터 업데이트 호출을 포함한다. 프로세서는 업데이트 값을 식별하기 위해 프로젝트 업데이트 요구를 임의의 기존 프로젝트 정의와 비교한다. 계산 세트가 업데이트 값 및 임의의 기존 프로젝트 정의를 이용하여 수행된다. 프로젝트는 계산 결과에 기초하여 업데이트되고 데이터 저장소에 저장된다.
프로젝트 업데이트 요구(project update request), 프로젝트 관리자, API(application program interface)

Description

서버 측 프로젝트 관리자{SERVER-SIDE PROJECT MANAGER}
프로젝트 관리 애플리케이션은 프로젝트와 연관된 작업들(tasks)을 관리한다. 프로젝트 관리 애플리케이션 프로그램은 사용자로 하여금 프로젝트 목적을 정의하고, 작업 및 자원을 계획하고, 목적을 달성하기 위해 완성 작업을 스케줄링하고, 프로젝트 계획을 디스플레이하며, 프로젝트를 실행 및 관리하도록 한다. 프로젝트 관리 애플리케이션 프로그램은, 프로젝트 스케줄 자동 계산, 작업 정보가 변경된 경우 프로젝트 스케줄 자동 업데이트, 자원을 스케줄링하고 대안을 평가하기 위한 프로젝트 스케줄 분석, 모든 프로젝트에 대해 일정한 표준 형식의 스케줄 출력 제공, 및 미래의 프로젝트에 사용하기 위한 스케줄 데이터 저장 등과 같은 여러 이점을 제공한다. 프로젝트 관리 스케줄은 작업들로 구성된다. 스케줄은 작업들이 일어나는 순서, 작업을 완성하는데 필요한 자원, 및 작업들과 연관된 달력 정보를 정의한다. 각 작업은 날짜 및 시간의 시작 및 끝, 완료된 업무 퍼센트, 필요한 자원, 프로젝트 실제 비용 등과 연관된 정보를 포함하도록 정의된다.
서버 측 프로젝트 관리자가 서버 상에서 프로젝트를 생성, 업데이트, 스케줄링 및 관리하기 위해 웹 서비스 애플리케이션 프로그램 인터페이스(application program interface: API) 호출 세트를 활용한다. 사용자는 자신이 새로운 프로젝트를 생성하거나 프로젝트 애플리케이션으로부터 기존의 프로젝트를 수정하는 경우 프로젝트 업데이트 요구를 보냄으로써 프로젝트 업데이트 프로세스 호출을 개시한다. 프로젝트 업데이트 요구는 웹 브라우저 인터페이스를 통해 웹 서비스로 보내진다. 프로젝트 업데이트 요구는 웹 서버를 호출하여 웹 서비스를 통해 프로젝트를 업데이트하는 API와 연관된다. API 예는 데이터 검색 호출, 관리 호출 및 데이터 업데이트 호출을 포함한다. 프로세서는 업데이트 값을 식별하기 위해 프로젝트 업데이트 요구를 임의의 기존 프로젝트 정의(definition)와 비교한다. 계산 세트가 업데이트 값 및 임의의 기존 프로젝트 정의를 이용하여 수행된다. 프로젝트는 계산 결과에 기초하여 업데이트되고 데이터 저장소에 저장된다.
본 발명의 다른 실시예는 이러한 방법을 수행하기 위한 시스템 및 컴퓨터 판독가능 매체를 포함한다. 상기 본 발명의 설명은 본 발명의 모든 구현을 설명하는 것이 아니다. 이하의 도면 및 실시예는 본 발명의 구현들을 좀 더 구체적으로 예시한다.
도 1은 본 발명의 일 실시예에 따라 사용될 수 있는 컴퓨팅 장치의 예를 도시한 기능 블록도.
도 2는 서버 측 프로젝트 API 호출을 이용하여 업데이트될 수 있는 데이터 필드를 정의하는 프로젝트 데이터세트의 블록도.
도 3은 서버 상에서 프로젝트를 관리하기 위한 시스템의 기능 블록도.
도 4는 서버 상에서 프로젝트를 관리하기 위한 프로세스를 도시하는 동작 순 서도.
서버 측 프로젝트 관리자는 서버 상에서 프로젝트를 생성, 업데이트, 스케줄링 및 관리하기 위해 웹 서비스 API 세트를 활용한다. 사용자는 자신이 신규 프로젝트를 만들거나 기존의 프로젝트를 수정하는 경우 프로젝트 업데이트 요구를 보낸다. 이 프로젝트 업데이트 요구는 서버를 호출하여 웹 서비스를 통해 프로젝트를 업데이트하는 API와 연관된다. API 예는 데이터 검색 호출, 관리 호출 또는 데이터 업데이트 호출을 포함한다. 프로세서는 업데이트 값을 식별하기 위해 프로젝트 업데이트 요구를 임의의 기존 프로젝트 정의와 비교한다. 업데이트 값 및 임의의 기존 프로젝트 정의를 이용하여 일련의 계산이 수행된다. 이 계산 결과에 따라 프로젝트가 업데이트되고 데이터 저장소에 저장된다.
본 발명의 실시예는 도면을 참조하여 자세하게 설명되는데, 도면에서 동일한 참조번호는 여러 시각에서의 동일한 부분 및 부품을 나타낸다. 다양한 실시예의 언급은 본 발명의 범위를 제한하는 것이 아니며, 발명의 범위는 첨부된 청구항에 의해서만 제한된다. 명세서에서 설명되는 예들은 제한적인 것이 아니고 다만 가능한 여러 실시예들 중 일부를 설명할 뿐이다. 다음의 실시예는 따라서 제한적인 의미로 받아들여서는 안된다.
오퍼레이팅 환경 예
도 1과 관련하여, 본 발명을 구현하기 위한 시스템 예는 컴퓨팅 장치(100)와 같은 컴퓨팅 장치를 포함한다. 기본적인 구성에서, 컴퓨팅 장치(100)는 일반적으 로 적어도 하나의 프로세싱 유닛(102) 및 시스템 메모리(104)를 포함한다. 컴퓨팅 장치의 정확한 구성 및 유형에 따라, 시스템 메모리(104)는 휘발성(예컨대, RAM), 비휘발성(예컨대 ROM, 플레시 메모리 등) 또는 이 둘의 조합이 될 수 있다. 시스템 메모리(104)는 일반적으로 오퍼레이팅 시스템(105), 하나 이상의 애플리케이션(106) 및 프로그램 데이터(107)를 포함할 수 있다. 일 실시예에서, 애플리케이션(106)은 아래에서 자세히 설명되는 프로젝트 관리자(108)를 더 포함한다.
컴퓨팅 장치(100)는 추가적인 특징 또는 기능을 가질 수 있다. 예를 들어, 컴퓨팅 장치(100)는 예컨대, 자기 디스크, 광 디스크, 또는 테이프와 같은 추가적인 데이터 저장 장치(착탈식 및/또는 비착탈식)를 또한 포함할 수 있다. 이러한 추가적인 저장소는 도 1에 착탈식 저장 장치(109) 및 비착탈식 저장 장치(110)로 도시되어 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 착탈식 및 비착탈식 매체를 포함할 수 있다. 시스템 메모리(104), 착탈식 저장 장치(109) 및 비착탈식 저장 장치(110)는 모두 컴퓨터 저장 매체의 예이다. 컴퓨터 저장 매체는 이하 한정되지는 않지만, RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 다른 광 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 원하는 정보를 저장하는데 사용될 수 있고 컴퓨팅 장치(100)에 의해 액세스될 수 있는 임의의 기타 매체를 포함한다. 임의의 이러한 컴퓨터 저장 매체는 장치(100)의 부분이 될 수 있다. 컴퓨팅 장치(100)는 또한 키 보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등과 같은 입력 장치(112)를 가질 수 있다. 디스플레이, 스피커, 프린터 등과 같은 출력 장치(114)가 또한 포함될 수 있다. 이러한 장치는 공지되어 있고 본 명세서에서 자세히 설명하지 않는다.
컴퓨팅 장치(100)는 또한 이 장치가 이를테면 네트워크 또는 무선 메시 네트워크를 통해 다른 컴퓨팅 장치들(118)과 통신하도록 하는 통신 접속부(116)를 포함한다. 통신 접속부(116)는 통신 매체의 한 예이다. 통신 매체는 일반적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파(carrier wave)나 다른 전송 메커니즘과 같은 변조된 데이터 신호 내의 다른 데이터로 구체화될 수 있고, 임의의 정보 전달 매체를 포함할 수 있다. "변조된 데이터 신호(modulated data signal)"는 신호에 정보를 인코딩하는 방식으로 설정되거나 변경되는 하나 이상의 특성을 갖는 신호를 의미한다. 제한적이지 않은 예로서, 통신 매체는 유선 네트워크 또는 직접 연결된(direct-wired) 접속과 같은 유선 네트워크 및 음파, RF, 적외선 및 기타 무선 매체와 같은 무선 매체를 포함한다. 본 명세서에서 사용되는 용어인 컴퓨터 판독가능 매체는 저장 매체 및 통신 매체 모두를 포함한다.
서버 측 프로젝트 관리자
본 명세서는 컴퓨팅 장치 상에 실행되는, 프로그램 모듈과 같은, 컴퓨터 실행가능 명령어 또는 구성요소의 일반적인 컨텍스트(context)로 설명된다. 일반적으로, 소프트웨어 모듈은 특정 작업을 수행하거나 특정 추상적 데이터 유형(abstract data type)을 구현하는 루틴, 프로그램, 객체, 구성요소, 데이터 구조 등을 포함한다. 본 명세서에서는 컴퓨팅 실행가능 명령어 또는 구성요소로 설명되지만, 본 발명은 소프트웨어가 아닌 프로그램 메커니즘 이를 테면, 펌웨어 또는 특수 목적 논리 회로를 이용하여 동일하게 구현될 수 있다.
도 2는 서버 측 프로젝트 API 호출을 이용하여 업데이트될 수 있는 데이터 필드를 정의하는 프로젝트 데이터세트 블록도를 도시한다. 프로젝트 데이터세트는 프로젝트 데이터 테이블(200), 작업 데이터 테이블(210), 자원 데이터 테이블(220) 및 할당 데이터 테이블(230)을 포함한다. 프로젝트 데이터 테이블(200)은 프로젝트 헤더 정보를 포함한다. 작업 데이터 테이블(210)은 테스크 정보를 포함하는데, 작업은 프로젝트 상에서 수행되는 액션이다. 작업들은 서로 종속적일 수 있다. 자원 데이터 테이블(220)은 프로젝트에 참여하고 있는 사람 또는 사람들에 관한 정보를 포함한다. 자원은 로컬 또는 기업전체에 걸친 것이 될 수 있다. 할당 데이터 테이블(230)은 자원 및 작업들 간의 관계를 정의한다. 즉, 할당은 해당 작업을 완료하도록 스케줄링된 자원을 식별한다.
프로젝트(200)는 또한 특정 프로젝트 구현에 맞는 보조 데이터 구조를 포함할 수 있다. 예를 들어, 프로젝트 데이터 테이블(200)은 프로젝트 커스텀(custom) 필드 데이터 테이블(240)과 연관될 수 있다. 프로젝트 커스텀 필드 데이터 테이블(240)은 프로젝트를 위한 사용자 정의 데이터를 포함한다. 작업 데이터 테이블(210)은 작업 커스텀 필드 데이터 테이블(250)과 연관될 수 있다. 작업 커스텀 필드 데이터 테이블(250)은 작업을 위한 사용자 정의 데이터를 포함한다. 자원 데이터 테이블(220)은 자원 커스텀 필드 데이터 테이블(260)과 연관될 수 있다. 자 원 커스텀 필드 데이터 테이블(260)은 자원을 위한 사용자 정의 데이터를 포함한다. 할당 데이터 테이블(230)은 할당 커스텀 필드 데이터 테이블(270)과 연관될 수 있다. 할당 커스텀 필드 데이터 테이블(260)은 할당을 위한 사용자 정의 데이터를 포함한다. 커스텀 필드 데이터 테이블(240, 250, 260, 270)은 이들이 사용자로 하여금 이들의 작업, 할당, 자원 및 프로젝트를 입력하도록 하기 때문에 시스템 확장성을 향상시킨다.
도 3은 서버 상에서 프로젝트를 관리하는 시스템의 기능 블록도이다. 시스템은 클라이언트(300), 웹 서비스(310), 서버(320) 및 데이터 저장소(390)를 포함한다. 서버(320)는 큐 관리자(330), 트랜잭션 큐(340), 디스패쳐(dispatcher; 350) 및 프로세서(360, 370, 380)를 포함한다. 사용자는 프로젝트 업데이트 요구를 클라이언트(300)에서 보냄으로써 프로젝트 업데이트 프로세스 호출을 개시한다. 사용자가 클라이언트(300)에서 로딩된 프로젝트 애플리케이션 상에서 신규 프로젝트를 만들거나 기존의 프로젝트를 수정하는 경우 프로젝트 업데이트 요구가 보내진다. 프로젝트 업데이트 요구는 프로젝트와 연관된 스케줄링 정보를 변경하는 요구를 포함할 수 있다. 프로젝트 업데이트 요구는 또한 데이터 저장소(390)에 저장된 정보를 수정하는 요구를 포함할 수 있다. 프로젝트 업데이트 요구는 웹 브라우저 인터페이스를 통해 웹 서비스(310)로 보내진다. 소정의 예비 입력 데이터 확인(validation)이 수행될 수 있다. 프로젝트 업데이트 요구는 서버(320)를 호출하여 웹 서비스(310)를 통해 프로젝트를 업데이트하고 계산을 수행하는 애플리케이션 프로그램 인터페이스(application program interface; API)와 연관된다. API 예들 은 아래에서 자세히 설명된다.
프로젝트 업데이트 요청은 큐 관리자(330)로 보내진다. 큐 관리자(330)는 들어오는 요구들을 모니터링하고 이 요구들을 트랜잭션 큐(340)에 저장한다. 디스패쳐(350)는 프로젝트 업데이트 요구를 이용가능한 프로세서(360, 370 또는 380)로 전달한다. 복수의 프로세서는 로드 균형 및 수급 완화를 보조한다.
프로세서는 프로젝트 업데이트 요구 및 임의의 기존 프로젝트 정의로부터 업데이트 값을 결정한다. 만약 프로젝트 업데이트 요구가 새롭게 생성된 프로젝트와 연관된다면, 프로세서는 기존의 프로젝트 정의를 참조하지 않는다. 업데이트 값은 프로젝트 업데이트 요구로부터 직접 결정되거나 프로젝트 업데이트 요구 및 기존의 프로젝트 정의 간의 차이로부터 결정될 수 있다. 업데이트 값 및 임의의 기존 프로젝트 정의를 이용하여 일련의 계산이 수행된다. 계산 예는 노드 일치 계산(node consistency calculations), 스케줄링 동작, 롤업(roll-up) 계산 및 커스텀 필드 계산을 포함한다. 이 프로젝트는 계산 결과에 기초하여 데이터 저장소(390) 상에 업데이트된다.
사용자가 특정 프로젝트 데이터 요소 또는 필드(예컨대, 작업 또는 할당)를 수정하는 경우, 관련 데이터 요소 및 필드가 일관성을 유지하면서 업데이트되도록 노드 일치 계산이 수행된다. 예컨대, 작업은 시작일을 월요일로 설정하고 종료일을 수요일로 설정할 수 있다. 작업 기간은 3일이다. 사용자는 종료일을 목요일로 연장할 수 있다. 이제 작업 기간이 4일이 되기 때문에 이 수정은 데이터 불일치를 가져온다. 기간 데이터 필드가 자동으로 업데이트되어 수정을 반영하도록 노드 일 치 계산이 수행되어 데이터 불일치를 해결한다. 따라서, 작업 기간은 4일로 업데이트된다.
스케줄링 동작은 임계 경로(critical path) 스케줄링을 수행하고 시간 제약으로 인해 발생할 수 있는 임의의 스케줄링 충돌을 판단한다. 스케줄링 동작은 서버 상의 스케줄링 엔진에 의해 수행될 수 있다. 일 실시예에서, 스케줄 동작은 달력 상의 어느 날이 공식 근무일인지를 결정하여 근무일이 아닌 날에 작업이 수행되지 않도록 스케줄링한다.
롤업 계산이 프로젝트 정보를 컴파일하고 컴파일된 정보의 요약(summary)을 생성하는데 수행된다. 일 실시예에서, 복수의 작업들은 요약 작업와 연관될 수 있다. 롤업 계산은 요약 작업에 포함되며 복수의 작업들 사이에 공유되는 정보를 컴파일한다. 예를 들어, 하나의 작업은 월요일부터 수요일까지 수행되도록 스케줄링될 수 있다. 다른 작업은 목요일 및 금요일 수행되도록 스케줄링될 수 있다. 두 작업 모두는 하나의 요약 작업 아래에서 하나의 그룹핑될 수 있다. 요약 작업은 5일의 기간을 갖는다.
사용자는 프로젝트, 작업, 자원 및 할당에 대한 커스텀 필드를 구축할 수 있다. 커스텀 필드는 프로젝트에 대한 메트릭(metric)을 나타내는 계산을 수행하는 것으로 정의될 수 있다. 예를 들어, "지연 일자(days late)"로 명명된 커스텀 필드는 작업의 실제 최종일에서 스케줄링된 최종일을 빼는 것을 계산하는 것으로 정의될 수 있다.
웹 서비스 API 세트는 공유 서버 상의 프로젝트를 생성, 업데이트, 스케줄링 및 관리하기 위해 호출된다. API들은 데이터 검색 호출, 관리 호출 및 데이터 업데이트 호출을 포함한다. 데이터 검색 호출은 ReadProject 및 ReadProjectTeam을 포함한다. 관리 호출을 CheckOutProject 및 CheckInProject를 포함한다. 데이터 업데이트 호출은 CreateProject, CreateProjectFromTemplate, UpdateProject, AddToProject, DeleteFromProject, UpdateProjectTeam, 및 Calculate 을 포함한다. 이 호출들 각각은 아래에서 자세히 설명된다.
ReadProject는 단일 프로젝트에 대한 데이터를 읽기 위해 호출된다. 예를 들어,
projectDS = project.ReadProject(projectID) 에서,
"projectDS" 는 데이터베이스로부터 프로젝트 데이터와 함께 반환되는 프로젝트 데이터세트이다.
"project"는 서버 측 프로젝트 웹 서비스 프록시를 말한다.
"projectID"는 작업, 종속물(dependencies), 자원 또는 할당이 삭제되는 프로젝트의 GUID이다.
CheckOutProject는 편집 또는 삭제를 위한 프로젝트를 확보하기 위해 호출된다. 만약 프로젝트가 편집동안 이용가능하지 않다면, 예외(exception)가 발생한다. 프로젝트는 클라이언트 애플리케이션이나 서버 API에 대해 임의의 변경이 이루어지기 전에 로킹되어야(locked) 한다. 록(lock)은 애플리케이션 레벨 논리 록이다. 서버 측 프로젝트 API와 함께 사용되는 경우, 체크 아웃(check-out) 동작은 클라이언트 애플리케이션에서 프로젝트 읽기-쓰기 동작을 시작하는 것과 논리적으 로 동등하다. 체크 아웃 동작은 동시에 일어나고 즉각 처리된다. 예컨대,
project.CheckOutProject(projectID, sessionID, sessionDesc) 에서,
"project"는 서버 측 프로젝트 웹 서비스 프록시를 말한다.
"projectID"는 체크 아웃될 프로젝트의 GUID이다.
"sessionID"는 호출자에 의해 공급되는 고유 식별자이다. 프로젝트 상의 논리 록은 sessionID GUID 및 체크 아웃 호출을 하는 사용자와 연관된다. 체크 아웃된 프로젝트에 대한 추후의 동작들은, 사용자가 프로젝트를 체크아웃한 사람과 동일하고 sessionID GUID가 호출과 함께 공급되는 경우에만 받아들여진다.
"sessionDesc"는 프로젝트가 체크 아웃된 프로젝트와 연관된 사용자를 표시하도록 체크 아웃되는 동안 프로젝트의 부분으로서 저장되는 선택적인 사용자 공급 스트링이다. 일 실시예에서, 스트링은 프로젝트가 체크 아웃된 클라이언트 이름이다. 서버 측 프로젝트 호출들에 대하여, 사용자는 이들에 맞는 모든 스트링을 공급할 수 있다. 일반적으로, 스트링은 체크 아웃(예컨대, "타임시트 업데이트(Timesheet updates)")을 수행한 프로세스의 이름이다.
CheckInProject는 프로젝트 록을 푼다. 만약 변경들이 프로젝트에 대해 보류 중이면(예컨대, 큐 안에 보류), 체크 인 동작이 큐잉되었다가 변경들의 완료시에 개시된다. 만약 보류중인 변경들이 없다면, 체크 인 동작은 즉각 발생한다. 프로젝트는 체크 아웃을 수행한 사용자나 관리자 특권을 갖는 사용자에 의해 "강제 체크 인(forced check-in)" 옵션을 이용하여 체크인된다. 체크 인 동작은 데이터베이스 내의 임의의 데이터를 재계산하도록 한다. 예를 들어,
CheckInProject(projectID, checkinOption, sessionID, sessionDesc) 에서
"project"는 서버 측 프로젝트 웹 서비스 프록시를 말한다.
"projectID"는 체크 아웃될 프로젝트의 GUID이다.
"checkinOption"은 체크 인 동작과 연관된 임의의 옵션들을 정의한다. 옵션 예는 일반 및 강제를 포함한다. 일반 체크 인 동작은 프로젝트를 언로킹(unlocking)한다. 추후의 "프로젝트 애플리케이션에서의 오픈 읽기-쓰기" 또는 "업데이트를 위한 읽기" 서버 측 프로젝트 호출은 데이터베이스로부터 프로젝트의 발행되지 않은 사본을 수신한다. 모든 기타 프로젝트 읽기 API 및 프로젝트 웹 액세스는 계속해서 프로젝트의 발행된 버전을 찾는다. 강제 체크 인 동작은 관리자 특권을 필요로 하고 sessionID GUID는 무시된다. 프로젝트 애플리케이션의 임의의 저장되지 않은 변경들은 사라진다.
"sessionID"는 프로젝트가 체크 아웃되는 때에 사용되는 세션 식별자이다. 만약 호출 사용자 또는 sessionID가 체크 아웃 호출에 사용되는 것과 다르다면, (관리 체크 인을 제외하고는) 체크 인 동작은 실패한다.
"sessionDesc"는 선택적인 사용자 공급 스트링이다. 스트링은 서버에 의해 무시되지만 진단 목적으로 사용될 수 있는데, 즉 스트링이 체크 아웃 호출로 공급된 스트링과 일치하지 않는 경우에 그러하다.
CreateProject가 신규 프로젝트를 생성하는데 사용된다. 예를 들어,
project.CreateProject(projectDS, validateOnly) 에서
"project"는 서버 측 프로젝트 웹 서비스 프록시를 말한다.
"projectDS"는 프로젝트에 부가되는 프로젝트 헤더, 작업, 종속물, 자원 및 할당 정보가 들어있는 프로젝트 데이터세트이다.
"validateOnly"는 호출이 프로젝트를 생성해야되는지 또는 데이터 확인을 수행해야 하는지를 나타내는 Boolean 값이다. 만약 "참(True)" 값이 생성되면, 데이터베이스를 업데이트 하지 않고 데이터 확인만이 수행된다. 만약 "거짓(False)"값이 생성되면, 데이터 확인이 수행되고 오류가 발견되지 않은 경우 프로젝트가 생성된다. 프로젝트 데이터세트는 작업, 할당 및 자원 뿐만 아니라 프로젝트 헤더 정보를 포함할 수 있다. 하나의 프로젝트만이 매 호출당 생성될 수 있다. 만약 복수의 프로젝트들이 데이터세트에 기재되어 있다면, 제1 프로젝트만이 고려되고 다른 모든 프로젝트에 대한 데이터는 무시된다.
CreateProjectFromTemplate 는 기존 프로젝트 템플릿에 기초하여 신규 프로젝트를 생성한다. 예를 들어,
newProjectID = project.CreateProjectFromTemplate(templateID, newProj ectName, newProjectVersionID) 에서,
"newProjectID"는 새롭게 생성된 프로젝트를 식별하는 시스템 할당 GUID이다.
"project"는 서버 측 프로젝트 웹 서비스 프록시를 말한다.
"templateID"는 신규 프로젝트에 대해 기초로 사용되는 템플릿의 GUID이다.
"newProjectName"은 신규로 생성된 프로젝트에 부여되는 이름이다.
"newProjectVersionID"는 신규 프로젝트와 연관된 버전의 GUID 이다.
UpdataProject는 기존의 프로젝트 및/또는 기존의 작업, 자원 및 할당을 업데이트 한다. 예컨대,
project.CreateProjec(sessionlD, projectDS, validateOnly) 에서,
"project"는 서버 측 프로젝트 웹 서비스 프록시를 말한다.
"sessionID"는 프로젝트가 체크 아웃되는 때에 사용되는 세션 식별자이다. 만약 호출 사용자 식별자 또는 세션 식별자가 체크 아웃 호출에 사용되는 것과 다르다면, 업데이트 동작은 실패한다.
"projectDS"는 프로젝트 헤더 또는 기존의 작업, 종속물, 자원 및 할당에 대한 변경을 포함하는 프로젝트 데이터세트이다.
"validataOnly" 는 호출이 프로젝트를 생성해야 하는지 또는 데이터 확인을 수행해야 하는지를 나타내는 Boolean 값이다. 만약 "참(True)" 값이 생성되면, 데이터베이스를 업데이트 하지 않고 데이터 확인만이 수행된다. 만약 "거짓(False)"값이 생성되면, 데이터 확인이 수행되고 오류가 발견되지 않은 경우 프로젝트가 생성된다. 프로젝트 데이터세트는 작업, 할당 및 자원 뿐만 아니라 프로젝트 헤더 정보를 포함할 수 있다. 데이터세트의 모든 열은 기존의 개체들을 의미한다. 하나의 프로젝트가 매 호출당 생성된다. 만약 복수의 프로젝트들이 데이터세트에 기재되어 있다면, 제1 프로젝트만이 고려되고 다른 모든 프로젝트에 대한 데이터는 무시된다.
AddToProject는 신규 작업, 종속물, 자원 및 할당을 기존의 프로젝트에 부가한다. 예를 들어,
project.AddToProject(sessionID, projectDS, validateOnly) 에서
"project"는 서버 측 프로젝트 웹 서비스 프록시를 말한다.
"sessionID"는 프로젝트가 체크 아웃되는 때에 사용되는 세션 식별자이다. 만약 호출 사용자 식별자 또는 세션 식별자가 체크 아웃 호출에 사용되는 것과 다르다면, 호출은 실패한다.
"projectDS"는 내용이 찬 프로젝트 데이터세트이다. 작업, 종속물, 자원 및 할당을 위한 데이터 테이블이 사용된다. 프로젝트 데이터 테이블은 무시된다.
"validataOnly" 는 호출이 프로젝트를 생성해야 하는지 또는 데이터 확인을 수행해야 하는지를 나타내는 Boolean 값이다. 만약 "참(True)" 값이 생성되면, 데이터베이스를 업데이트 하지 않고 데이터 확인만이 수행된다. 만약 "거짓(False)" 값이 생성되면, 데이터 확인이 수행되고 오류가 발견되지 않은 경우 프로젝트가 생성된다. 프로젝트 데이터세트는 작업, 할당 및 자원 뿐만 아니라 프로젝트 헤더 정보를 포함할 수 있다. 데이터세트의 모든 열은 기존의 개체들을 의미한다. 하나의 프로젝트가 매 호출당 생성된다. 만약 복수의 프로젝트들이 데이터세트에 기재되어 있다면, 제1 프로젝트만이 고려되고 다른 모든 프로젝트에 대한 데이터는 무시된다.
DeleteFromProject는 기존의 프로젝트에서 작업, 종속물, 자원 및 할당을 삭제한다. 예를 들어,
project.DeleteFromProject(sessionID, projectED, deleteGUIDs[]) 에서,
"project"는 서버 측 프로젝트 웹 서비스 프록시를 말한다.
"sessionID"는 프로젝트가 체크 아웃되는 때에 사용되는 세션 식별자이다. 만약 호출 사용자 식별자 또는 세션 식별자가 체크 아웃 호출에 사용되는 것과 다르다면, 호출은 실패한다.
"projectID"는 작업, 종속물, 자원 또는 할당이 삭제되는 프로젝트의 GUID이다.
"deleteGUIDs" 어레이는 삭제될 작업, 종속물, 자원 또는 할당의 GUID를 포함한다.
하나의 프로젝트만이 매 호출마다 삭제될 수 있다. 만약 삭제 GUID가 특정된 프로젝트 내에 있지 않은 개체를 지칭하면, 예외가 발생하고 삭제 동작은 실패한다. 프로젝트 상의 실제 업무로 배정된 할당 및 자원은 "보호된 실제(protected actuals)" 옵션이 프로젝트에 대해 선택된 경우 삭제될 수 없다.
ReadProjectTeam 은 프로젝트 상에 자원 리스트를 반환한다. 이 호출은 주로 프로젝트 웹 액세스의 팀 빌더 페이지(team builder page)에 의한 사용을 위한 것이다. 예를 들어,
projectTeamDS = project.ReadProjectTeam(projectID) 에서
"projectTeamDS" 는 Project Team 데이터 테이블을 포함하는 데이터세트이다.
"project" 는 서버 측 프로젝트 웹 서비스 프록시를 말한다.
"projectID" 는 자원을 부가하는 프로젝트의 GUID이다.
호출 사용자는 추가되는 기업 자원에 대한 할당 허가(assign permission)를 갖는데, 그렇지 않으면 보안 예외(security exception)가 발생하고 호출이 실패한다. 만약 특정 기업 자원이 이미 프로젝트 팀에 존재한다면, 기업 자원은 최근의 기업 자원 데이터로 업데이트된다.
UpdateProjectTeam 은 프로젝트에 할당된 자원을 변경한다. 변경은 신규 기업 자원을 프로젝트 팀에 추가하는 것, 프로젝트 팀으로부터 자원을 제거하는 것, 기존의 자원을 다른 기업 자원으로 교체하는 것 (및 영향받은 할당들을 업데이트 하는 것) 및 기존의 자원의 예약 타입(booking type)을 변경하는 것을 포함할 수 있다. 예를 들어,
project.ReplaceResources(sessionID, projectID, projectTeamDS) 에서,
"project" 는 서버 측 프로젝트 웹 서비스 프록시를 말한다.
"sessionID"는 프로젝트가 체크 아웃되는 때에 사용되는 세션 식별자이다. 만약 호출 사용자 식별자 또는 세션 식별자가 체크 아웃 호출에 사용되는 것과 다르다면, 호출은 실패한다.
"projectID" 는 자원을 교체할 프로젝트의 GUID이다.
"projectTeamDS" 는 Project Team 데이터 테이블을 포함하는 데이터세트이다. 이 호출은 기업 또는 로컬 자원의 예약 타입을 변경하는데 사용될 수 있다. 로컬 자원은 프로젝트들 간에 고유되는 요약 자원 할당을 갖지 않기 때문에, 로컬 자원에 대한 예약 타입은 로컬 프로젝트 내에서만 볼 수 있다. 로컬 자원을 위한 예약 타입은 프로젝트의 밖에서는 아무 의미가 없다.
계산(Calculate)은 프로젝트 정의에 대해 일련의 업데이트가 이루어진 후 프 로젝트를 다시 스케줄링하고 커스텀 방식 필드를 다시 계산한다. 예를 들어,
project.Calculate(sessionID, projectID) 에서,
"project" 는 서버 측 프로젝트 웹 서비스 프록시를 말한다.
"sessionID"는 프로젝트가 체크 아웃되는 때에 사용되는 세션 식별자이다. 만약 호출 사용자 식별자 또는 세션 식별자가 체크 아웃 호출에 사용되는 것과 다르다면, 호출은 실패한다.
"projectID" 는 자원을 교체할 프로젝트의 GUID이다.
상기 설명된 바와 같이, API 호출에 의해 제공되는 성능들은 신규 프로젝트 생성; 작업, 작업들 간의 종속물, 프로젝트 팀 자원 및 작업 자원 할당을 추가, 삭제 및 업데이트하는 것을 비롯한 기존의 프로젝트 업데이트; 프로젝트 데이터 상의 데이터 경합 관리; 및 프로젝트 웹 액세스 애플리케이션에서 사용하기 위한 계산된 스케줄 결과 및 업무 할당의 스케줄링 및 발행을 포함한다.
도 4는 서버 상의 프로젝트를 관리하는 프로세스를 도시한 동작 흐름도이다. 프로세싱은 프로젝트 애플리케이션이 클라이언트 상에서 로딩되는 시작 단계에서 시작한다. 사용자는 클라이언트에서 프로젝트 업데이트 요구를 보냄으로써 프로젝트 업데이트 호출을 개시한다. 프로젝트 업데이트 요구는 사용자가 신규 프로젝트를 생성하거나 기존의 프로젝트를 수정하는 경우 보내진다. 프로젝트 업데이트 요구는 API 호출과 연관된다. 클라이언트 상의 웹 브라우저 인터페이스는 프로젝트 업데이트 요구를 입력 데이터 확인이 수행될 수 있는 웹 서비스로 보낸다. 웹 서비스는 프로젝트 업데이트 요구를 단계(400)에서 수신한다.
단계(410)로 넘어가서, 프로젝트 업데이트 요구와 연관된 API가 웹 서비스에 의해 식별되고 호출된다. API는 데이터 검색 호출, 관리 호출 또는 데이터 업데이트 호출이 될 수 있다. API는 서버 상에 프로젝트를 생성, 업데이트, 스케줄링 및 관리하기 위해 호출된다. 예를 들어, 만약 프로젝트 업데이트 요구가 신규 프로젝트를 생성하기 위한 것이면, CreateProject API가 식별되고 호출된다. 마찬가지로, 만약 프로젝트 업데이트 요구가 프로젝트로부터 작업을 삭제하기 위한 것이면, DeleteFromProject API가 식별되고 호출된다.
단계(420)로 넘어가서, 프로젝트 업데이트 요구는 큐 매니저로 보내지고 서버의 트랜잭션 뷰에 저장된다. 단계(430) 전에, 프로젝트 업데이트 요구는 트랜잭션 큐로부터 서버의 프로세서로 발송된다. 프로젝트 업데이트 요구는 프로세서 그룹들 중 하나의 프로세서로 발송될 수 있다. 프로젝트 업데이트 요구가 발송된 프로세서는 프로세서 그룹들의 로드가 균형잡히고 프로세서 수급을 원활하게 하도록 하는 방식에 따라 선택될 수 있다.
단계(440)로 넘어가서, 사용자에 의해 보내진 프로젝트 변경은 프로세서가 프로젝트 업데이트 요구로부터 업데이트 값을 식별하는 때에 결정된다. 프로세서는 프로젝트 업데이트 요구가 새롭게 생성된 프로젝트와 연관되지 않는다면 기존 프로젝트 정의를 식별할 수 있다. 업데이트 값은 프로젝트 업데이트 요구를 임의의 기존 프로젝트 정의와 비교하여 결정될 수 있다.
단계(450)로 진행하여, 업데이트 값 및 임의의 기존 프로젝트 정의를 이용하여 계산이 수행된다. 계산 결과는 프로젝트에 대한 신규 프로젝트 데이터 값을 제 공한다. 계산 예는 노드 일치 계산, 스케줄링 동작, 롤업 계산 및 커스텀 필드 계산을 포함한다. 노드 일치 계산은 프로젝트 전반에 걸쳐 일치가 유지되도록 프로젝트 업데이트 요구에 의해 직접 수정되는 데이터와 연관된 프로젝트 데이터를 업데이트 하는데 사용된다. 스케줄링 동작은 임계 경로 스케줄링을 수행하고 시간 제약으로 인해 발생할 수 있는 임의의 스케줄링 충돌을 판단한다. 롤업 계산은 공유 정보를 컴파일링함으로써 요약을 제공한다. 커스텀 필드 계산은 사용자 정의 데이터 필드 상에서 수행되는 계산이다. 단계(460)로 넘어가서, 신규 프로젝트 데이터 값을 함께 이용하여 업데이트되고 데이터 저장소에 저장된다. 그 다음 프로세싱은 종료 단계에서 종료한다.
상기 설명된 다양한 실시예는 예시를 통해서만 제공되는 것이고 발명을 제한하는 것으로 해석되어서는 안된다. 당업자라면 본 발명의 진정한 사상 및 범위로부터 벗어나지 않고, 본 명세서에 설명되고 예시된 실시예 및 애플리케이션들을 따르지 않고도, 본 발명에 다양한 수정 및 변경을 가할 수 있음을 알 수 있다. 청구항이 이하 설명된다.

Claims (20)

  1. 서버 상에서 프로젝트를 관리하는 컴퓨터 구현 방법으로서,
    프로젝트 애플리케이션으로부터 프로젝트 업데이트 요구를 수신하는 단계;
    상기 프로젝트 업데이트 요구와 연관된 애플리케이션 프로그램 인터페이스를 식별하는 단계;
    상기 식별된 애플리케이션 프로그램 인터페이스를 호출하는 단계 - 상기 애플리케이션 프로그램 인터페이스는 상기 프로젝트 업데이트 요구에서 식별되는 업데이트 값을 결정하고 상기 업데이트 값을 이용하여 계산(calculation)을 실행하도록 구성되며, 신규 프로젝트 데이터 값이 상기 실행된 계산으로부터 생성됨 -; 및
    신규 프로젝트 데이터 값을 이용하여 상기 서버 상에 상기 프로젝트를 업데이트하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    프로젝트 업데이트 요구를 수신하는 상기 단계는 신규 프로젝트의 생성이 요구되는 경우 프로젝트 업데이트 요구를 수신하는 단계를 더 포함하는 방법.
  3. 제1항에 있어서,
    프로젝트 업데이트 요구를 수신하는 상기 단계는 기존 프로젝트의 수정이 요 구되는 경우 프로젝트 업데이트 요구를 수신하는 단계를 더 포함하는 방법.
  4. 제1항에 있어서,
    상기 애플리케이션 프로그램 인터페이스는 상기 업데이트 값을 이용하여 기존 프로젝트 정의(definition) 상에서 계산을 실행하도록 더 구성되는 방법.
  5. 제1항에 있어서,
    상기 애플리케이션 프로그램 인터페이스는 프로젝트 데이터를 검색하기 위해 호출되는 방법.
  6. 제1항에 있어서,
    상기 애플리케이션 프로그램 인터페이스는 프로젝트 데이터를 업데이트하기 위해 호출되는 방법.
  7. 제1항에 있어서,
    상기 애플리케이션 프로그램 인터페이스는 프로젝트 데이터 상에서 관리 액션들(administrative actions)을 수행하기 위해 호출되는 방법.
  8. 제1항에 있어서,
    상기 애플리케이션 프로그램 인터페이스는 상기 프로젝트 업데이트 요구를 기존 프로젝트 정의와 비교함으로써 업데이트 값을 결정하도록 더 구성되는 방법.
  9. 제1항에 있어서,
    데이터 저장소에 상기 업데이트된 프로젝트를 저장하는 단계를 더 포함하는 방법.
  10. 제1항에 있어서,
    상기 애플리케이션 프로그램 인터페이스는 노드 일치 계산(node consistency calculation)을 실행함으로써 계산을 실행하도록 더 구성되어 있고, 상기 노드 일치 계산은 상기 프로젝트 데이터가 상기 신규 프로젝트 데이터 값과 일치하도록 상기 신규 프로젝트 데이터와 연관된 프로젝트 데이터를 업데이트하는 방법.
  11. 제1항에 있어서,
    상기 애플리케이션 프로그램 인터페이스는 스케줄링 동작을 실행함으로써 계산을 실행하도록 더 구성되어 있고, 상기 스케줄링 동작은 상기 신규 프로젝트 데이터 값에 의해 생성된 상기 프로젝트 내의 스케줄 충돌(conflict)을 판단하는 방법.
  12. 제1항에 있어서,
    상기 애플리케이션 프로그램 인터페이스는 롤업(roll-up) 계산을 실행함으로 써 계산을 실행하도록 더 구성되어 있고, 상기 롤업 계산은 프로젝트 요약(summary)을 생성하기 위해 프로젝트 데이터를 컴파일하는 방법.
  13. 제1항에 있어서,
    상기 애플리케이션 프로그램 인터페이스는 커스텀 필드 계산을 실행함으로써 계산을 실행하도록 더 구성되어 있고, 상기 커스텀 필드 계산은 상기 프로젝트와 관련된 사용자 정의 계산들을 수행하는 방법.
  14. 프로젝트를 관리하는 시스템으로서,
    메모리에 저장된 프로젝트 애플리케이션을 포함하고, 상기 프로젝트 애플리케이션으로부터 프로젝트 업데이트 요구를 수신하도록 구성되는 클라이언트;
    상기 클라이언트에 결합되고, 상기 프로젝트 업데이트 요구와 연관된 애플리케이션 프로그램 인터페이스를 식별하며, 상기 식별된 애플리케이션 프로그램 인터페이스를 호출하도록 구성되는 웹 서비스; 및
    상기 클라이언트에 결합되어 있고, 호출되고 있는 상기 식별된 애플리케이션 프로그램 인터페이스에 응답하여 상기 프로젝트 업데이트 요구에 식별된 업데이트 값을 결정하며, 상기 업데이트 값을 이용하여 계산을 실행하고, 상기 실행된 계산으로부터 생성되는 신규 프로젝트 데이터 값을 이용하여 상기 프로젝트를 업데이트하는 서버
    를 포함하는 프로젝트 관리 시스템.
  15. 제14항에 있어서,
    상기 서버에 결합된 데이터 저장소를 더 포함하고, 상기 업데이트된 프로젝트는 상기 데이터 저장소에 저장된 프로젝트 관리 시스템.
  16. 제14항에 있어서,
    상기 클라이언트는 신규 프로젝트의 생성이 요구되는 경우 상기 프로젝트 업데이트 요구를 수신하는 프로젝트 관리 시스템.
  17. 제14항에 있어서,
    상기 클라이언트는 기존 프로젝트의 수정이 요구되는 경우 상기 프로젝트 업데이트 요구를 수신하는 프로젝트 관리 시스템.
  18. 제14항에 있어서,
    상기 애플리케이션 프로그램 인터페이스는 프로젝트 데이터 검색, 프로젝트 데이터 업데이트 및 프로젝트 데이터 상의 관리 액션들 수행 중 적어도 하나를 수행하기 위해 호츨되는 프로젝트 관리 시스템.
  19. 서버 상에서 프로젝트를 관리하기 위한 컴퓨터 실행가능 명령어를 갖는 컴퓨터 판독가능 매체로서,
    상기 명령어는,
    프로젝트 애플리케이션으로부터 프로젝트 업데이트 요구를 수신하는 단계;
    상기 프로젝트 업데이트 요구와 연관된 애플리케이션 프로그램 인터페이스를 식별하는 단계;
    상기 식별된 애플리케이션 프로그램 인터페이스를 호출하는 단계로서,
    상기 애플리케이션 프로그램 인터페이스는 상기 프로젝트 업데이트 요구에서 식별되는 업데이트 값을 결정하고 상기 업데이트 값을 이용하여 계산을 실행하도록 구성되며, 신규 프로젝트 데이터 값이 상기 실행된 계산으로부터 생성되는 단계;
    신규 프로젝트 데이터 값을 이용하여 상기 서버 상에 상기 프로젝트를 업데이트하는 단계; 및
    상기 업데이트된 프로젝트를 데이터 저장소에 저장하는 단계
    를 수행하는 컴퓨터 판독가능 매체.
  20. 제19항에 있어서,
    상기 식별된 애플리케이션 프로그램 인터페이스를 호출하는 상기 단계는 프로젝트 데이터 검색, 프로젝트 데이터 업데이트 및 프로젝트 데이터 상의 관리 액션 수행 중 적어도 하나를 수행하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
KR1020087003224A 2005-08-09 2006-08-01 서버 측 프로젝트 관리자 KR101255396B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/199,757 US7657454B2 (en) 2005-08-09 2005-08-09 Server-side project manager
US11/199,757 2005-08-09
PCT/US2006/030087 WO2007021547A2 (en) 2005-08-09 2006-08-01 Server-side project manager

Publications (2)

Publication Number Publication Date
KR20080035615A true KR20080035615A (ko) 2008-04-23
KR101255396B1 KR101255396B1 (ko) 2013-04-17

Family

ID=37743664

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087003224A KR101255396B1 (ko) 2005-08-09 2006-08-01 서버 측 프로젝트 관리자

Country Status (7)

Country Link
US (1) US7657454B2 (ko)
EP (1) EP1913451B1 (ko)
JP (1) JP5006324B2 (ko)
KR (1) KR101255396B1 (ko)
CN (1) CN101243365B (ko)
AT (1) ATE545896T1 (ko)
WO (1) WO2007021547A2 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5025116B2 (ja) * 2005-10-25 2012-09-12 キヤノン株式会社 情報処理装置及びその制御方法ならびにプログラム
JP4144890B2 (ja) * 2006-06-08 2008-09-03 インターナショナル・ビジネス・マシーンズ・コーポレーション 開発プロジェクトの日程表作成を支援するシステムおよびその方法
US8370849B2 (en) * 2006-10-02 2013-02-05 Salesforce.Com, Inc. API method and system for providing access to an external service via an application services platform
US8370848B2 (en) * 2006-10-02 2013-02-05 Salesforce.Com, Inc. Method and system for providing a client access to an external service via an application services platform
US8601467B2 (en) 2006-10-03 2013-12-03 Salesforce.Com, Inc. Methods and systems for upgrading and installing application packages to an application platform
US9230068B2 (en) * 2006-10-03 2016-01-05 Salesforce.Com, Inc. Method and system for managing license objects to applications in an application platform
US20090043621A1 (en) * 2007-08-09 2009-02-12 David Kershaw System and Method of Team Performance Management Software
CN101686247B (zh) * 2008-09-26 2013-01-09 华为技术有限公司 信息处理方法和系统
WO2013003271A2 (en) 2011-06-27 2013-01-03 Deltek, Inc. System and method for managing projects
US9766906B2 (en) 2011-12-29 2017-09-19 International Business Machines Corporation Efficient sharing of artifacts between collaboration applications
WO2015065377A1 (en) * 2013-10-30 2015-05-07 Hewlett-Packard Development Company, L.P. Assigning resource permissions
CN104598834A (zh) * 2014-12-30 2015-05-06 小米科技有限责任公司 一种项目信息的显示方法及装置
US10912626B2 (en) * 2015-02-18 2021-02-09 James R. Glidewell Dental Ceramics, Inc. Integrated digital workflow for providing dental restoration
CN112115153A (zh) * 2020-09-21 2020-12-22 北京字跳网络技术有限公司 数据处理方法、装置、设备及存储介质

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2281644A (en) * 1993-09-02 1995-03-08 Ibm Fault tolerant transaction-oriented data processing.
JP3108984B2 (ja) * 1994-12-26 2000-11-13 カシオ計算機株式会社 データ処理装置
US5765140A (en) * 1995-11-17 1998-06-09 Mci Corporation Dynamic project management system
US7069511B2 (en) * 1996-12-19 2006-06-27 Sun Microsystems, Inc. Platform independent on-line project management tool
JPH1173459A (ja) * 1997-08-29 1999-03-16 Toshiba Corp ワークフロー管理システムおよびドキュメント管理操作方法
US6519763B1 (en) * 1998-03-30 2003-02-11 Compuware Corporation Time management and task completion and prediction software
US6369840B1 (en) * 1999-03-10 2002-04-09 America Online, Inc. Multi-layered online calendaring and purchasing
US6591300B1 (en) * 1999-06-30 2003-07-08 Lucent Technologies Inc. Integrated management application
AU2000249446A1 (en) 2000-05-12 2001-11-20 Ubs Ag Project management tool
US20030061330A1 (en) * 2000-09-29 2003-03-27 Frisco Lynn A. Web-based collaborative project and process management solution
US20020165723A1 (en) * 2000-12-23 2002-11-07 Atub, Inc. System, method and article of manufacture for managing a construction process
US20040015821A1 (en) 2001-05-01 2004-01-22 Tonbu, Inc. System and method for interactive collaborative process management and project management
US7191141B2 (en) * 2001-06-13 2007-03-13 Ricoh Company, Ltd. Automated management of development project files over a network
US20030028393A1 (en) * 2001-06-18 2003-02-06 Coulston Robert Michael Method and computer program for estimating project costs and time factors and facilitating management of remodeling and construction projects
KR100414406B1 (ko) * 2001-08-09 2004-01-14 주식회사 핸디소프트 문서 버전 관리가 가능한 워크플로우 시스템 및 이를이용한 문서 버전 관리 방법
US20030046134A1 (en) * 2001-08-28 2003-03-06 Frolick Harry A. Web-based project management system
JP2003223486A (ja) * 2002-01-30 2003-08-08 Fujitsu Ltd 工程管理システム
US8688596B2 (en) * 2002-05-30 2014-04-01 Sap Ag Project activity reporting
US20040030590A1 (en) * 2002-08-05 2004-02-12 Swan Coalen L. Total integrated performance system and method
US20040030992A1 (en) * 2002-08-06 2004-02-12 Trandafir Moisa System and method for management of a virtual enterprise
JP4150566B2 (ja) * 2002-09-26 2008-09-17 株式会社東芝 ワークフロー実行方法とシステム、およびそのためのプログラム
US7506302B2 (en) * 2002-10-22 2009-03-17 The Boeing Company System and methods for business process modeling
US20050027386A1 (en) * 2003-07-30 2005-02-03 Michele Weigand Decentralized project management system
JP2005092544A (ja) * 2003-09-18 2005-04-07 Nippon Telegr & Teleph Corp <Ntt> ワークフロー世代管理処理方法,ワークフロー処理システムおよびワークフロー制御プログラム
US20050086248A1 (en) * 2003-10-16 2005-04-21 Charles Atchison Issue tracking
US7669179B2 (en) * 2003-11-04 2010-02-23 Realization Technologies, Inc. Facilitation of multi-project management using critical chain methodology

Also Published As

Publication number Publication date
KR101255396B1 (ko) 2013-04-17
EP1913451A2 (en) 2008-04-23
US7657454B2 (en) 2010-02-02
JP2009505226A (ja) 2009-02-05
CN101243365A (zh) 2008-08-13
CN101243365B (zh) 2010-10-27
EP1913451B1 (en) 2012-02-15
JP5006324B2 (ja) 2012-08-22
ATE545896T1 (de) 2012-03-15
EP1913451A4 (en) 2008-07-16
WO2007021547A2 (en) 2007-02-22
US20070038489A1 (en) 2007-02-15
WO2007021547A3 (en) 2007-10-11

Similar Documents

Publication Publication Date Title
KR101255396B1 (ko) 서버 측 프로젝트 관리자
US7599901B2 (en) Processing data-centric business models
US6078982A (en) Pre-locking scheme for allowing consistent and concurrent workflow process execution in a workflow management system
US7761538B2 (en) Dynamically configuring, allocating and deploying computing systems
US9852382B2 (en) Dynamic human workflow task assignment using business rules
KR102375129B1 (ko) 멀티테넌트 어플리케이션 서버 환경에서 작업 관리자를 제공하는 시스템 및 방법
US20030195789A1 (en) Method for incorporating human-based activities in business process models
US7693861B2 (en) Schematization of establishing relationships between applications
US11783254B2 (en) Method and system for implementing an adaptive data governance system
AU5803598A (en) Computer executable workflow control system
US20200209823A1 (en) Flow engine for building automated flows within a cloud based developmental platform
US20120030223A1 (en) Extensibility of business process and application logic
US9063995B2 (en) Access control list (ACL) generation for replicated data
US20050261914A1 (en) Method and system for managing long running transactions
US20080086353A1 (en) Server level summary information of resource utilization
US9946885B2 (en) Process-oriented modeling and flow to restrict access to objects
US6507844B1 (en) Method and system for minimizing network traffic
US8943034B2 (en) Data change management through use of a change control manager
US20010049712A1 (en) Archiving in workflow management systems
US8819055B2 (en) System and method for logical people groups
US20200356362A1 (en) Device and system for model based version management of entity instances
Hung et al. Least privilege security in CapBasED-AMS
US9792563B1 (en) Human resources system development
Adams The resource service
Heng et al. A Novel Method of Dynamic Cloud Workflow Processing Based on 3D_DWFN

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160318

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170317

Year of fee payment: 5