KR101665152B1 - 컴퓨팅 장치, 비즈니스 데이터의 획득 방법 및 컴퓨터 판독 가능 저장 매체 - Google Patents

컴퓨팅 장치, 비즈니스 데이터의 획득 방법 및 컴퓨터 판독 가능 저장 매체 Download PDF

Info

Publication number
KR101665152B1
KR101665152B1 KR1020117022942A KR20117022942A KR101665152B1 KR 101665152 B1 KR101665152 B1 KR 101665152B1 KR 1020117022942 A KR1020117022942 A KR 1020117022942A KR 20117022942 A KR20117022942 A KR 20117022942A KR 101665152 B1 KR101665152 B1 KR 101665152B1
Authority
KR
South Korea
Prior art keywords
data
external data
external
data store
computing device
Prior art date
Application number
KR1020117022942A
Other languages
English (en)
Other versions
KR20120002579A (ko
Inventor
조나단 캠프벨
이레이 초우
하워드 엠 3세 크로우
피터 케이 하우드
토드 하우젠
크리스토퍼 포스터 존슨
모하메드 나지루딘
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 KR20120002579A publication Critical patent/KR20120002579A/ko
Application granted granted Critical
Publication of KR101665152B1 publication Critical patent/KR101665152B1/ko

Links

Images

Classifications

    • 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/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/087Inventory or stock management, e.g. order filling, procurement or balancing against orders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Economics (AREA)
  • General Engineering & Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Quality & Reliability (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Human Resources & Organizations (AREA)
  • General Business, Economics & Management (AREA)
  • Operations Research (AREA)
  • Development Economics (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

컴퓨팅 장치는 명령어를 포함하고, 이 명령어는 처리 장치에 의해서 실행될 때, 처리 장치가 내부 데이터 저장부 및 외부 데이터 저장부에 상주하는 데이터를 액세스 및 조작하게 하는 비즈니스 데이터 카탈로그 모듈을 생성-여기에서 비즈니스 데이터 카탈로그 모듈은 데이터에 대한 요청을 수신하고, 데이터가 내부 데이터 저장부 또는 외부 데이터 저장부 내에 상주하는지 여부를 결정하고, 외부 데이터 저장부에 상주하는 데이터를 액세스함-하게 하고, 외부 데이터 저장부로부터 액세스되는 데이터를 제공하는 외부 데이터 제공 모듈을 생성하게 하는데, 여기에서 외부 데이터 제공 모듈은 클라이언트 컴퓨팅 장치에 표시하기 위해 외부 데이터 저장부로부터 외부 데이터를 매핑한다. 사용자는 내부 데이터 저장부로부터의 데이터를 액세스 및 조작하는 것과 동일한 방식으로 외부 데이터 저장부로부터의 데이터를 액세스 및 조작할 수 있다.

Description

컴퓨팅 장치, 비즈니스 데이터의 획득 방법 및 컴퓨터 판독 가능 저장 매체{EXTENDING COLLABORATION CAPABILITIES TO EXTERNAL DATA}
본 발명은 하나 이상의 외부 데이터 저장부 내에 수용된 데이터를 선호되는 비즈니스 소프트웨어 플랫폼으로 일체화하는 시스템 및 방법에 관한 것이다.
현대의 기업형 컴퓨팅 시스템 구현에서, 비즈니스 데이터는 다수의 데이터 저장부에 분산될 수 있다. 예를 들면, 사용자는 고객 관련 정보 및 다른 사업 관련 데이터 등과 같은 사업 활동에 관한 지식을 획득하기 위해서 다수의 "비즈니스 라인(Line-of-business)" 데이터 저장부에 액세스하고자 할 수 있다. 이러한 비즈니스 라인 데이터 저장부는 시스템에 걸쳐 분산될 수 있고, 또한 시스템 외부에 위치될 수도 있다.
데이터 시스템 및 다른 비즈니스 프로세스에 영향력이 있는 사용자는 매일의 작동 과정에 걸쳐 다수의 외부 비즈니스 시스템에 대해 자주 순회 검사할 필요가 있을 것이다. 외부 비즈니스 시스템 사이의 조정 및 외부 데이터 저장부로부터 컨텐츠의 인출은 경영면에서나 사용자 관점 모두에서 복잡하고 많은 비용이 드는 일일 것이다.
일측면에서, 컴퓨팅 장치는 처리 장치와, 처리 장치에 접속된 시스템 메모리를 포함하고, 이 시스템 메모리는 명령어를 포함하고, 이 명령어는 처리 장치에 의해서 실행될 때, 처리 장치가 내부 데이터 저장부 및 외부 데이터 저장부에 상주하는 데이터를 액세스 및 조작하게 하는 비즈니스 데이터 카탈로그 모듈을 생성-여기에서 비즈니스 데이터 카탈로그 모듈은 데이터에 대한 요청을 수신하고, 데이터가 내부 데이터 저장부 또는 외부 데이터 저장부 내에 상주하는지 여부를 결정하고, 외부 데이터 저장부에 상주하는 데이터를 액세스함-하게 하고, 외부 데이터 저장부로부터 액세스되는 데이터를 제공하는 외부 데이터 제공 모듈을 생성하게 하는데, 여기에서 외부 데이터 제공 모듈은 클라이언트 컴퓨팅 장치에 표시하기 위해 외부 데이터 저장부로부터 외부 데이터를 매핑한다. 사용자는 내부 데이터 저장부로부터의 데이터를 액세스 및 조작하는 것과 동일한 방식으로 외부 데이터 저장부로부터의 데이터를 액세스 및 조작할 수 있다.
다른 측면에서, 비즈니스 데이터를 획득하는 방법은, 데이터 저장부로부터 데이터에 대한 요청을 수신하는 단계와, 데이터가 내부 데이터 저장부 또는 외부 데이터 저장부에 상주하는지 여부를 결정하는 단계와, 데이터가 외부 데이터 저장부에 상주할 때 외부 데이터 저장부에 있는 외부 데이터를 액세스하는 단계와, 외부 데이터 저장부로부터의 외부 데이터를 매핑하는 단계와, 내부 데이터 저장부로부터의 내부 데이터와 동일한 방식으로 외부 데이터 저장부로부터의 외부 데이터를 사용자에게 표시하는 단계를 포함한다.
또 다른 측면에서, 컴퓨터 실행 가능 명령어를 구비하는 컴퓨터 판독 가능 저장 매체에 관한 것으로서, 이 컴퓨터 실행 가능 명령어는 컴퓨팅 장치에 의해 실행될 때, 컴퓨팅 장치가 다음의 단계를 실행하게 하는데, 이 단계는 비즈니스 객체에 관련되는 정의된 속성의 집합을 포괄하는 비즈니스 객체의 정의를 생성하는 단계와, 엔티티의 정의를 액세스하고 거기에 정의된 속성의 인벤토리를 실행하는 단계와, 데이터 저장부로부터 데이터에 대한 요청을 수신하는 단계와, 내부 데이터 저장부 또는 외부 데이터 저장부에 데이터가 상주하는지 여부를 결정하는 단계와, 데이터가 외부 데이터 저장부에 상주할 때 외부 데이터 저장부에 지정된 하나 이상의 API 호출을 이용하여 외부 데이터 저장부에 있는 외부 데이터를 액세스하는 단계와, 외부 데이터 저장부로부터 외부 데이터를 매핑하는 단계와, 클라이언트 컴퓨팅 장치의 사용자에게 표시할 형식 및 뷰를 생성- 여기에서 뷰 및 형식은 외부 데이터 저장부와 연관된 외부 비즈니스 시스템의 API 내에 포함된 허용 가능한 동작과 부합하는 컨텐츠를 포함함-하는 단계와, 내부 데이터 저장부로부터의 내부 데이터와 동일한 방식으로 뷰 또는 형식 중 어느 하나로 외부 데이터 저장부로부터의 외부 데이터를 사용자에게 표시하는 단계와, 내부 데이터 저장부로부터의 내부 데이터를 조작하는 것과 동일한 방식으로 사용자가 외부 데이터 저장부를 조작하도록 허용하는 단계를 포함한다.
이 요약은 개념의 선택에 관해 단순화된 형태로 제공하고자 하는 것으로 이 개념은 이하의 상세한 설명에서 추가적으로 설명되어 있다. 이 요약은 청구 대상의 주요 또는 필수 특징부를 식별하도록 의도된 것이 아니고, 어떠한 방식으로도 청구 대상의 범주를 한정하는데 사용되도록 의도된 것도 아니다.
첨부된 도면과 관련하여 여러 실시예에 대한 이하의 상세한 설명을 고려함으로써 본 발명의 측면은 보다 완전하게 이해될 수 있을 것이다.
본 발명은 하나 이상의 외부 데이터 저장부 내에 수용된 데이터를 선호되는 비즈니스 소프트웨어 플랫폼으로 일체화하는 시스템 및 방법을 제공하여 사용자가 하나 이상의 사전 정의된 제한 사항에 따라서 외부에 수용된 데이터를 원래의 비즈니스 소프트웨어 플랫폼 고유의 것인 것처럼 사용할 수 있게 한다.
도 1은 예시적인 네트워크형 컴퓨팅 시스템을 도시하는 도면.
도 2는 도 1의 시스템에서 나온 예시적인 서버 컴퓨팅 장치를 도시하는 도면.
도 3은 도 2의 서버 컴퓨팅 장치의 예시적인 로직 모듈을 도시하는 도면.
도 4는 도 3의 예시적인 비즈니스 데이터 카탈로그 모듈의 예시적인 로직 모듈을 도시하는 도면.
도 5는 도 3의 예시적인 외부 데이터 리스트 제공 모듈의 예시적인 로직 모듈을 도시하는 도면.
도 6은 외부 데이터 리스트를 생성하는 예시적인 방법에 대한 흐름도를 도시하는 도면.
도 7은 외부 데이터 리스트 뷰를 렌더링하는 예시적인 방법에 대한 흐름도를 도시하는 도면.
도 8은 새로운 형태 제출을 위한 예시적인 방법에 대한 흐름도를 도시하는 도면.
도 9는 엔티티의 특정 예시를 삭제하는 예시적인 방법에 대한 흐름도를 도시하는 도면.
본 발명의 애플리케이션은 하나 이상의 외부 데이터 저장부 내에 수용된 데이터를 선호되는 비즈니스 소프트웨어 플랫폼으로 일체화하는 시스템 및 방법에 관한 것이다. 데이터가 원래 선호되는 비즈니스 소프트웨어 플랫폼 고유의 것처럼 외부에 수용된 데이터를 사용자에게 표시한다. 사용자는 하나 이상의 사전 정의된 제한 사항에 따라서 데이터에 대하여 동작을 실행할 수 있다.
본 명세서에 설명된 예시는 "내부"에 있는 데이터 저장부 및 "외부"에 있는 데이터 저장부를 포함한다. "내부"에 있는 데이터 저장부는 시스템 또는 기업 내에 위치된 저장부이고, 예를 들면, 방화벽 등과 같은 보안 수단에 기인하여 시스템 또는 기업 내에서만 액세스 가능하다. "외부"에 있는 데이터 저장부는 예를 들면, 인터넷 등과 같은 네트워크를 통해 시스템 또는 기업 외부에서 액세스 가능한 저장부이다.
이하의 예시적인 실시예는 미국 워싱턴주 레드몬드에 위치한 마이크로소프트 코포레이션에서 제작된 쉐어포인트(SHAREPOINT)® 팀 서비스 포털 서버 서비스 플랫폼과 관련하여 본 명세서에 설명되어 있다. 그러나 본 발명의 개시 내용의 개념은 외부에 위치된 데이터를 소프트웨어 플랫폼으로 일체화하는 것이 바람직한 다른 시스템에도 또한 적용 가능하다.
도 1은 비즈니스 소프트웨어 플랫폼에 의해 액세스되는 내부 및 외부 데이터 저장부 모두에 수용된 데이터를 포함하는 예시적인 네트워크형 컴퓨팅 시스템(100)을 도시한다. "시스템" 및 "플랫폼"이라는 용어는 일반적으로 네트워크형 환경 내에서 상호 접속될 수 있는 하나 이상의 컴퓨팅 장치에서 컴퓨터 소프트웨어가 프로그램 모듈, 알고리즘, 동작 및 작업을 실행할 수 있게 하는 임의의 하드웨어 아키텍처 및/또는 소프트웨어 프레임워크를 지칭한다.
예시적인 네트워크형 컴퓨팅 시스템(100)은 클라이언트 컴퓨팅 장치(105), 서버 컴퓨팅 장치(110), 지역(local) 비즈니스 시스템(115), 지역 데이터 저장부(120), 복수의 외부 비즈니스 시스템(125a-c)(통칭하여 외부 비즈니스 시스템(125)), 및 외부 데이터 저장부(130a-c)(통칭하여 외부 데이터 저장부(130))를 포함한다. 추가하여, 제 1 통신 네트워크(135a) 및 제 2 통신 네트워크(135b)(통칭하여 통신 네트워크(135))가 도시되어 있다. 예시적인 네트워크형 컴퓨팅 환경(100)의 다른 실시예도 또한 가능하다.
통신 네트워크(135)는 하나 이상의 컴퓨팅 장치들 사이에 데이터 송신을 위한 양방향 데이터 통신이다. 예시적인 실시예에서, 제 1 통신 네트워크(135a)는 클라이언트 컴퓨팅 장치(105)와 서버 컴퓨팅 장치(110) 사이에 데이터 송신을 위한 내부 통신 경로를 형성한다. 제 2 통신 네트워크(135b)는 서버 컴퓨팅 장치(110)와 외부 비즈니스 시스템(125) 사이에 데이터 송신을 위한 외부 통신 경로를 형성한다.
일반적으로, 통신 네트워크(135)는 임의의 개수의 무선 또는 고정 배선(hardwired) WAN, LAN, 인터넷 또는 다른 패킷 기반의 통신 네트워크를 가지는 것에 의해 데이터가 예시적인 환경(100)의 구성 요소들 사이에 송신될 수 있게 한다. 통신 네트워크(135)의 다른 실시예도 또한 가능하다.
도시된 예시에서, 네트워크(135a)는 비즈니스 데이터 플랫폼(140)에 대하여 내부에 위치된 네트워크이다. 네트워크(135a)가 장치(105, 110)에게만 액세스 가능한 LAN 또는 WAN이기 때문에 네트워크(135a)는 "내부"이고, 방화벽 등과 같은 보안 규정 하에 위치된 다른 장치는 비즈니스 데이터 플랫폼(140)과 연관된다.
네트워크(135b)는 비즈니스 데이터 플랫폼(140) 외부의 복수의 컴퓨팅 장치에 의해 액세스 가능한 네트워크이다. 예를 들면, 네트워크(135b)는 비즈니스 데이터 플랫폼(140) 외부에서 액세스 가능한 인터넷 또는 다른 네트워크일 수 있다.
컴퓨팅 장치(105, 110)는 이하에 설명되는 바와 같이 범용 컴퓨팅 장치일 수 있다. 도시된 예시에서, 서버 컴퓨팅 장치(110)는 비즈니스 프로세스를 구현할 수 있는 비즈니스 서버이다. 예시적인 비즈니스 프로세스는 데이터 협업(collaboration) 프로세스, 데이터 관리 프로세스 등을 포함한다. 서버 컴퓨팅 장치(110)는 비즈니스 프로세스를 구현하기 위해 함께 동작하는 복수의 상호 접속된 서버 컴퓨팅 장치를 포함할 수 있다.
지역 비즈니스 시스템(115)은 비즈니스 애플리케이션을 제공하는 하나 이상의 비즈니스 시스템을 포함하는 컴퓨팅 장치이다. 지역 비즈니스 시스템(115)은 전형적으로 지역 데이터 저장부(120) 등과 같은 하나 이상의 데이터 저장부 내에 위치된 데이터에 동작하는 비즈니스 로직을 포함하고, 이에 대해서는 이하에 보다 상세하게 설명된다. 하나의 예시적인 지역 비즈니스 시스템으로는 마이크로소프트 코포레이션에 의해 생산된 윈도우즈 쉐어포인트 서비스 3.0이 있다. 지역 비즈니스 시스템(115)의 다른 실시예도 또한 가능하다.
로컬 데이터 저장부(120)는 관계형 데이터 저장부 또는 임의의 다른 종류의 지속적인 데이터 저장 장치 등과 같은 데이터 저장 매체이다. 지역 데이터 저장부(120)는 서버 컴퓨팅 장치(110)가 그곳에 저장된 데이터를 질의, 수정 및 관리할 수 있도록 사전 정의된 포맷으로 데이터를 저장한다. 예를 들면, 지역 데이터 저장부(120)는 SQL(structured query language) 데이터베이스 등과 같은 XML-가능형 데이터베이스일 수 있다. 소정의 실시예에서, 지역 데이터 저장부(120)는 함께 논리적으로 그룹화되어 상호 접속된 "팜(Farm)" 구성을 형성하는 복수의 데이터 저장 장치를 포함할 수 있다. 지역 데이터 저장부(120)의 다른 실시예도 또한 가능하다.
도 1에 도시된 바와 같이, 클라이언트 컴퓨팅 장치(105), 서버 컴퓨팅 장치(110), 지역 비즈니스 시스템(115) 및 지역 데이터 저장부(120)는 비즈니스 데이터 플랫폼(140) 내에서 함께 논리적으로 그룹화되어 비즈니스 소프트웨어 플랫폼으로 기능하도록 동작한다. 예를 들면, 사용자는 클라이언트 컴퓨팅 장치(105) 상의 웹 브라우저 애플리케이션과 대화하여 비즈니스 데이터 관리 및 비즈니스 데이터 플랫폼(140) 내에서 동작하는 하나 이상의 다른 사용자와의 협업을 위한 도구로서 각각의 장치(110, 115) 및 지역 데이터 저장부(120)의 기능에 영향력을 가질 수 있다.
이러한 비즈니스 데이터 플랫폼의 하나의 예시적인 실시예는 마이크로소프트 코포레이션에서 제조된 쉐어포인트(SHAREPOINT)® 팀 서비스 포털 서버 서비스 플랫폼이 있다. 예시적인 실시예에서, 각각 플랫폼 성분은 오피스 쉐어포인트 서버(Office SharePoint Server) 2007로서 구현될 수 있고, 서비스 성분은 윈도우즈 쉐어포인트 서비스(Windows SharePoint Services) 3.0으로서 구현될 수 있다. 비즈니스 데이터 플랫폼(140)의 다른 실시예도 가능하다.
외부 비즈니스 시스템(125)은 상술된 바와 같이, 비즈니스 데이터 플랫폼(140) 외부에서 동작한다는 점을 제외하고는 지역 비즈니스 시스템(115)과 동일하다. 각각의 외부 비즈니스 시스템(125a-c)은 비즈니스 애플리케이션을 제공하는 하나 이상의 비즈니스 시스템을 포함할 수 있다.
예를 들면, 하나 이상의 외부 비즈니스 시스템(125a-c)은 미합중국 펜실베니아주 뉴타운 스퀘어에 소재한 SAP 아메리카 사에서 제조된 ERP(enterprise resource planning) 시스템 또는 다른 일반 고객 관계 관리 시스템일 수 있다. 일반적으로, 각각의 외부 비즈니스 시스템(125a-c)은 제각기 관계형 데이터 저장부 또는 임의의 다른 종류의 지속형 데이터 저장 장치 내에 위치된 데이터에 대해 동작하는 비즈니스 로직을 갖는 외부 서비스 또는 소프트웨어 시스템을 포함한 임의의 종류의 비즈니스 라인 시스템일 수 있다.
예시적인 실시예에서, 각각의 외부 비즈니스 시스템(125a-c)은 제각기 각각의 외부 데이터 저장부(130a-c)에 통신 가능하게 접속된다. 외부 데이터 저장부(130)는 상술된 바와 같이, 지역 데이터 저장부(120)와 동일한 방식으로 구성될 수 있고, 여기에서 각각의 외부 데이터 저장부(130a-c)는 제각기 대응하는 외부 비즈니스 시스템(125a-c)이 그곳에 저장된 데이터에 동작할 수 있게 하는 방식으로 형식화된다. 외부 데이터 저장부(130)의 다른 실시예도 가능하다.
상술된 바와 같이 비즈니스 데이터 플랫폼(140)의 구성 요소와 관련된 것과 동일한 방식으로, 사용자는 클라이언트 컴퓨팅 장치(105) 상의 웹 브라우저 애플리케이션과 대화하여 비즈니스 데이터 관리 및 비즈니스 데이터 플랫폼(140)의 문맥 내에서 동작하는 하나 이상의 다른 사용자와의 협업을 위한 도구로서 서버 컴퓨팅 장치(110), 외부 비즈니스 시스템(125) 및 외부 데이터 저장부(130)의 기능에 영향력을 가질 수 있다.
외부 비즈니스 시스템(125) 및 외부 데이터 저장부(130)가 비즈니스 데이터 플랫폼(140)의 외부에 위치되어 있으나, 본 발명의 서버 컴퓨팅 장치(110)는 외부 비즈니스 시스템(125)의 기능을 비즈니스 데이터 플랫폼(140)에 일체화하도록 구성된다.
예를 들면, 이하에 보다 상세하게 설명되는 바와 같이, 서버 컴퓨팅 장치(110)는 외부 비즈니스 데이터가 비즈니스 데이터 플랫폼(140)의 문맥 내에 나타나게 하는 매핑 동작을 실행하도록 구성될 수 있다. 이 예시에서, 서버 컴퓨팅 장치(110)는 비즈니스 데이터 플랫폼(140) 내부에 수용된 비즈니스 데이터에 대한 표시 및 동작 메소드와 동일하게, 각각의 외부 비즈니스 데이터에 대한 표시 및 동작을 위한 복수의 메소드를 실행한다. 이러한 방식에서, 외부 비즈니스 데이터는 비즈니스 데이터 플랫폼(140) 고유의 것처럼(즉, 내부에 있는 것처럼) 사용자에게 표시되고 작동된다.
도 2는 도 1의 서버 컴퓨팅 장치(110)의 세부적인 도면을 도시한다. 상술된 바와 같이, 도시된 예시에서 서버 컴퓨팅 장치(110)는 적어도 하나의 처리 장치(205) 및 시스템 메모리(210)를 포함하는 컴퓨팅 장치이다.
예를 들면, 서버 컴퓨팅 장치(110)는 데스크탑 컴퓨터, 랩탑 컴퓨터, 또는 PDA(personal data assistant)일 수 있다. 서버 컴퓨팅 장치(110)는 임의의 개수의 입/출력 장치, 중앙 처리 장치(CPU), 데이터 저장 장치, 네트워크 장치 및 다르게 데이터를 처리 및 송신하는 임의의 다른 기능 장치를 포함할 수 있다.
컴퓨팅 장치의 구성 및 종류에 따라서, 시스템 메모리(210)는 휘발성(예를 들면, RAM), 비휘발성(예를 들면, ROM, 플래시 메모리 등) 또는 그 임의의 조합일 수 있다. 시스템 메모리(210)는 컴퓨팅 장치의 동작을 제어하는 운영 시스템(215)을 저장할 수 있다. 하나의 예시적인 운영 시스템(215)으로는 마이크로소프트 코포레이션에서 제조된 윈도우즈(WINDOWS)® 운영 시스템 또는 또한 마이크로소프트 코포레이션에서 제조된 마이크로소프트 오피스 쉐어포인트 서버 2007 등과 같은 서버가 있다.
시스템 메모리(210)는 또한 하나 이상의 소프트웨어 애플리케이션(220)을 포함할 수 있고, 프로그램 데이터를 포함할 수 있다. 소프트웨어 애플리케이션(220)은 전자 우편 프로그램, 달력(calendaring) 프로그램, 인터넷 브라우징 프로그램, 스프레드시트 프로그램, 정보의 트래킹 및 보고 프로그램, 워드 프로세싱 프로그램 및 많은 다른 프로그램 등의 많은 서로 다른 종류의 단일 및 다중 기능성 프로그램을 포함할 수 있다. 하나의 예시적인 프로그램으로는 마이크로소프트 코포레이션에서 제조된 애플리케이션의 오피스 제품군(Office suite)이 있다.
서버 컴퓨팅 장치(110)는 추가적인 특징 또는 기능성을 가질 수 있다. 예를 들면, 서버 컴퓨팅 장치(110)는 또한 예를 들면, 자기 디스크, 광학 디스크 또는 테이프 등과 같은 추가적인 데이터 저장 장치(탈착 가능 및/또는 탈착 불가능)를 포함할 수 있다. 이러한 추가적인 저장부는 탈착 가능 저장부(225) 및 탈착 불가능 저장부(230)로서 도 2에 도시되어 있다. 컴퓨터 판독 가능 저장 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈, 또는 다른 데이터 등과 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 물리적 휘발성 및 비휘발성, 탈착 가능 및 탈착 불가능 매체를 포함할 수 있다. 시스템 메모리(210), 탈착 가능 저장부(225) 및 탈착 불가능 저장부(230)는 모두 컴퓨터 판독 가능 저장 매체의 예시이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD(digital versatile disks) 또는 다른 광학 저장부, 자기 카세트, 자기 테이프, 자기 디스크 저장부 또는 다른 자기 저장 장치, 또는 원하는 정보를 저장하는 데 사용될 수 있고 서버 컴퓨팅 장치(110)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만 이것으로 제한되지는 않는다. 임의의 이러한 컴퓨터 저장 매체는 서버 컴퓨팅 장치(110)의 부분일 수 있다.
서버 컴퓨팅 장치(110)는 또한 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등과 같은 입력 장치(235)를 구비할 수 있다. 디스플레이, 스피커, 프린터 등과 같은 출력 장치(240)도 포함될 수 있다.
서버 컴퓨팅 장치(110)는 또한 네트워크형이고 분산형인 컴퓨팅 환경 내에서 네트워크(예를 들면, 도 1의 통신 네트워크(135))를 거쳐 외부 비즈니스 시스템(125) 등과 같은 다른 컴퓨팅 장치(예를 들면, 클라이언트, 서버, 데이터베이스)와 통신할 수 있는 통신 접속부(245)를 포함할 수 있다. 통신 접속부(245)는 통신 매체의 하나의 예시이다. 통신 매체는 전형적으로 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파(carrier wave) 또는 다른 전송 메커니즘 등과 같은 변조된 데이터 신호 내의 다른 데이터에 의해 구현될 수 있고, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 내의 정보를 인코딩하는 방식으로 설정 또는 변경된 그 특성 중 하나 이상을 갖는 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속 등과 같은 유선 매체 및 음향, RF, 적외선 및 다른 무선 매체 등과 같은 무선 매체를 포함한다.
예시적인 실시예에서, 도 1의 클라이언트 컴퓨팅 장치(105)는 상술된 바와 같이 서버 컴퓨팅 장치(110)와 동일한 방식으로 구성될 수 있다. 클라이언트 컴퓨팅 장치(105)는 또한 그래픽 사용자 인터페이스를 렌더링하는 웹 브라우저 애플리케이션을 포함할 수 있다. 이러한 방식으로, 사용자는 웹 페이지를 통해 온라인 컨텐츠와 대화할 수 있다. 예시적인 실시예에서, 웹 브라우저 애플리케이션은 온라인 컨텐츠에 대한 웹 서버의 요청을 형성하는 데 있어 HTTP(Hypertext Transfer Protocol)를 사용하는 클라이언트 프로그램이다. 이러한 웹 브라우저 애플리케이션의 하나의 예시로는 마이크로소프트 코포레이션에서 제조된 인터넷 익스플로러(INTERNET EXPLORER)® 인터넷 브라우저가 있다.
일반적으로, 예시적인 시스템(100)은 복수의 클라이언트 컴퓨터 장치(105) 및 서버 컴퓨팅 장치(110)를 포함한다. 클라이언트 컴퓨팅 장치(105) 및 서버 컴퓨터 장치(110)의 다른 실시예도 가능하다.
도 3은 도 2의 서버 컴퓨팅 장치(110)의 예시적인 로직 모듈을 도시한다. 서버 컴퓨팅 장치(110)는 예시적인 비즈니스 데이터 카탈로그(BDC) 모듈(305) 및 예시적인 외부 데이터 리스트 제공(EDL) 모듈(310)을 포함한다.
BDC 모듈(305) 및 EDL 모듈(310)은 비즈니스 데이터 플랫폼(140)의 문맥 내에서 외부 데이터 저장부(130)에 상주하는 비즈니스 데이터를 함께 일체화하도록 동작한다. 예를 들면, 일실시예에서 BDC 모듈(305) 및 EDL 모듈(310)은 함께 클라이언트 컴퓨팅 장치(105)에서 실행되는 웹 브라우저 애플리케이션의 그래픽 사용자 인터페이스 상의 외부 데이터 저장부(130a)로부터 수집된 비즈니스 데이터의 "외부 데이터 리스트"를 생성하고 렌더링한다. 사용자가 비즈니스 데이터 플랫폼(140) 내부에 상주하는 데이터를 액세스하고 조작할 수 있는 것과 동일한 방식으로, 클라이언트 컴퓨터 장치(105)의 사용자는 이 외부 비즈니스 데이터를 액세스 및/또는 조작할 수 있다.
예시적인 BDC 모듈(305)은 BDC 모듈(305)이 외부 데이터 저장부(130)에 상주하는 데이터를 액세스 및/또는 조작할 수 있도록 서버 컴퓨팅 장치(110)에서 실행되는 소프트웨어의 로직 모듈을 포함한다. 일반적으로, 클라이언트 컴퓨팅 장치(105)를 통해 웹 브라우저 애플리케이션과 대화하는 사용자가 데이터를 요청할 때, BDC 모듈(305)은 요청을 수신하고, 요청된 데이터가 비즈니스 데이터 플랫폼(140)과 관련하여 내부 또는 외부에 상주하는지 여부에 관한 결정을 내린다. 요청된 데이터의 상태를 평가한 후, BDC 모듈(305)은 데이터 요청을 처리한다.
예시적인 실시예에서, 데이터 요청이 비즈니스 데이터 플랫폼(140)의 외부에 상주하는 비즈니스 데이터와 연관될 때, BDC 모듈(305)은 외부 비즈니스 시스템(125)의 비즈니스 로직이 API의 겉면을 통해서 표현되는 것과 같이 각각의 외부 비즈니스 시스템(125)에 의해 지원되는 애플리케이션 프로그래밍 인터페이스(API) 호출을 이용하는 것에 의해, 외부 데이터 저장부(130)로부터 다양한 데이터 종류의 비즈니스 데이터를 인출한다. 예시적인 실시예에서, 각각의 외부 비즈니스 시스템(125a-c)의 각각의 API는 각각의 외부 데이터 저장부(130a-c) 내에 상주하는 비즈니스 데이터에 대한 다른 경우의 렌더링 및 동작에 대한 하나 이상의 사전 정의된 제한 사항에 따른 허용 가능한 동작을 정의한다.
일 측면에서, 각각의 외부 비즈니스 시스템(125a-c)과 연관된 API에 대한 정보는 BDC 모듈(305)에 의해 액세스될 수 있는 지역 데이터 저장부(120) 내에 저장된 데이터에 포함된다. 추가하여, 각각의 외부 비즈니스 시스템(125a-c)과 제각기 연관된 다른 데이터는 또한 BDC 모듈(305)이 외부 데이터 저장부(130)로부터 데이터를 액세스하고 획득하는 데 영향력을 행사하는 데 있어 구성에 관한 여러 파라미터 및 정의를 포함하는 지역 데이터 저장부(120) 내에 저장될 수 있다.
예를 들면, 이 데이터는 엔티티, 메소드, 각각의 메소드와 연관된 파라미터 및 파라미터 기술자, 보안 인증 정보, 필터링 정보, 및 각각의 외부 비즈니스 시스템(125) 및 외부 데이터 저장부(130) 각각과 연관된 파라미터에 관련된 데이터를 포함할 수 있다. 추가하여, 지역 데이터 저장부(120)는 각각의 외부 데이터 저장부(130)에 각각 저장된 데이터의 종류를 기술하는 데이터를 포함할 수 있다.
예시적인 EDL 모듈(310)은 EDL 모듈(310)이 비즈니스 데이터 플랫폼(140)의 문맥 내에서 외부 데이터 저장부(130) 내에 수용된 비즈니스 데이터를 제공할 수 있도록 서버 컴퓨팅 장치(110) 상에 실행되는 소프트웨어의 로직 모듈을 포함한다. 예를 들면, EDL 모듈(310)은 웹 브라우저 애플리케이션을 통해 클라이언트 컴퓨팅 장치(105)에 표시할 "뷰" 및 "형식"으로 외부 비즈니스 데이터를 매핑하는 알고리즘을 포함한다. 일측면에서, 외부 비즈니스 데이터의 제공은 제품에 변경을 유발하는 구성을 만드는 프로세스를 지칭한다.
예시적인 실시예에서, "뷰"는 상술된 바와 같이 지역 데이터 저장부(120) 내에 저장된 데이터에 따라서, 각각의 외부 비즈니스 시스템(125) 및 대응하는 외부 데이터 저장부(130)의 구성에 기초하여 외부 비즈니스 데이터를 디스플레이하는 방법에 대응한다. "형식"은 각각의 외부 데이터 저장부(130) 내에 저장된 외부 비즈니스 데이터를 업데이트하는 데이터를 위한 메소드에 대응한다. 이러한 방식으로, 이하에서 보다 세부적으로 설명되는 바와 같이 제공된 뷰 및 형식은 각각의 외부 비즈니스 시스템(125)의 API 내에 구현된 허용 가능 동작과 부합되고, 외부 비즈니스 데이터가 허용 가능한 CRUDQ 동작(생성, 판독, 업데이트, 소거 및 질의 동작)을 통해 액세스 및 수정될 수 있게 하는 컨텐츠를 포함한다.
도 4는 도 3의 BDC 모듈(305)에 대한 예시적인 로직 모듈을 세부적으로 도시하는 도면이다. 예시적인 실시예에서, BDC 모듈(305)은 예시적인 파라미터 모듈(405) 및 예시적인 엔티티 모듈(410)을 포함한다.
파라미터 모듈(405)은 BDC 모듈(305)이 비즈니스 데이터 및 비즈니스 로직의 소스로서 모델링하고 액세스할 수 있는 복수의 비즈니스 시스템의 접속 파라미터 및 정의를 액세스하는 소프트웨어를 포함한다. 예시적인 실시예에서, 각각의 비즈니스 시스템 지정 접속 파라미터 및 정의는 파라미터 모듈(405)에 의해 액세스될 수 있는 지역 데이터 저장부(120) 내에 저장된 데이터 내에 포함된다.
일반적으로, 비즈니스 시스템은 비즈니스 데이터 플랫폼(140)의 문맥 내부 및 외부에 모두 존재하도록 정의될 수 있다. 예를 들면, 지역 비즈니스 시스템(115) 및 각각의 외부 비즈니스 시스템(125a-c)을 위한 접속 파라미터 및 정의가 정의될 수 있다. 더욱이 새로운 비즈니스 시스템은 각각의 파라미터 및 정의를 가지고 어느 때라도 정의될 수 있기 때문에 BDC 모듈(305)은 확장 가능하다.
엔티티 모듈(410)은 엔티티로 지칭되는 비즈니스 객체에 관련된 정의된 속성의 집합을 포괄하는 비즈니스 객체의 정의를 생성하는 소프트웨어를 포함한다. 예시적인 실시예에서, 엔티티 및 연관된 속성은 엔티티 모듈(410)에 의해 액세스될 수 있는 지역 데이터 저장부(120) 내에 저장된 데이터 내에 포함된다.
일반적으로, 엔티티의 인스턴스는 정수 및 문자열(strings) 등과 같은 스칼라 타입을 나타내는 단순한 유형이거나, 어드레스 등과 같이 구조화된 필드를 나타내는 복잡한 유형일 수 있는 데이터 멤버(data members)를 포함한다. 예를 들면, "고객" 또는 "직원" 등과 같은 엔티티 인스턴스는 표로 이루어진 리스트 데이터를 포함할 수 있다. 예시적인 실시예에서, "고객" 엔티티 인스턴스는 고객 이름, 주문 내역, 제품명 및 주소 등과 같은 필드를 포함하는 열을 갖는 데이터의 표 리스트를 포함할 수 있고, 여기에서 표 리스트는 각각의 열 및 행에 제각기 할당된 데이터 멤버를 포함할 것이다.
일측면에서, 엔티티 속성은 특정 엔티티에 관련된 필드 및 각각의 데이터 멤버가 액세스, 수정 및 렌더링되는 방식을 지정하는 복수의 정의로 이루어질 수 있다. 예를 들면, CRUDQ 동작에 할당된 메소드에 관한 엔티티 속성은 허용 가능한 CRUDQ 동작 및 관련된 기능을 지정할 수 있다. 예를 들어, "생성자(Creator)" 유형의 메소드가 엔티티의 속성 내에 정의된다면, 엔티티의 새로운 인스턴스의 생성이 허용된다. 더욱이 이하에서 보다 상세하게 설명되는 바와 같이, CRUDQ 동작은 엔티티와 연관된 각각의 뷰 및 형식을 제각기 제공할 수 있는 뷰 그룹(View Group)으로 논리적으로 그룹화될 수 있다.
제공된 뷰 및 형식은 예를 들면, 뷰 그룹 내의 CRUDQ 동작에 할당된 정의된 메소드와 연관된 관련 기능을 가질 것이다. 예를 들어, "생성자" 메소드가 엔티티의 뷰 그룹 내에 정의되었다면, 사용자가 새로운 엔티티 인스턴스를 생성하도록 선택할 수 있게 하는 "신규(New)" 메뉴 항목이 웹 페이지 상에 제공될 수 있다. 다른 예시적인 메소드는 뷰에 대응하는 "발견자(Finder)" 또는 "특정 발견자" 유형의 메소드, 특정 엔티티 인스턴스의 하나 이상의 특성의 업데이터를 허용하는 "업데이터" 유형의 메소드 및 특정 엔티티 인스턴스의 삭제를 허용하는 “삭제자(Deleter)" 유형의 메소드를 포함한다.
상술된 바와 같이, 소정의 실시예에서 각각의 뷰 및 형식에 대하여 CRUDQ 동작에 할당된 메소드는 함께 뷰 그룹으로 논리적으로 그룹화될 수 있다. 일반적으로, 엔티티는 다수의 뷰 그룹을 포함할 수 있다. 예를 들면, "고객" 엔티티 인스턴스의 하나의 특정 뷰는 "이름" 및 "성" 및 "회사명"을 포함할 수 있는 열의 집합에 대응할 수 있다. 소정의 실시예에서, 이 특정 뷰는 이하에 더 상세하게 설명되는 바와 같이 연관된 뷰 그룹이 오로지 "발견자" 또는 "특정 발견자" 유형의 메소드만을 포함할 수 있는 시각화(viewing) 동작만을 지원할 수 있다.
예시적인 실시예에서, 다른 종류의 정의된 엔티티 속성도 가능하다. 예를 들면, "식별자(Identifier)" 속성은 기본 키(primary key) 등과 같은 특정 엔티티의 지속적인 식별 정보를 나타내도록 정의되어 각각의 엔티티가 식별될 수 있게 한다. 또한 "필터 기술자(FilterDescriptor)" 속성은 각각의 CRUDQ 동작에 할당된 메소드의 호출(invocation) 이후에 리턴되는 데이터 멤버를 필터링하기 위한 기준을 포함하도록 정의될 수 있다. 몇몇 예시적인 필터링 기준은 "페이지 번호(PageNumber)" 기준, "와일드카드(Wildcard)" 기준, "비교(Comparison)" 기준 및 다른 기준을 포함한다. 추가하여, "액션(Actions)" 속성은 엔티티에 관련될 수 있는 URL에 대한 참조인 동작을 포함하도록 정의될 수 있다.
또한 "관계(Relationships)" 속성은 연관 관계가 정의되어 있는 하나 이상의 엔티티에 대한 참조를 포함하도록 정의될 수 있다. 예시적인 실시예에서, 연관 관계는 하나 이상의 엔티티들 사이의 관계를 나타낸다. 추가하여, "액세스" 속성은 관리자가 액세스 권리(즉, CRUDQ 동작)를 설정하는데 영향력을 가질 수 있는 메소드를 포함하도록 정의될 수 있다. 엔티티 속성의 많은 다른 메소드 또는 종류도 또한 정의될 수 있다.
도 5는 도 3의 예시적인 EDL 모듈(310)의 로직 모듈에 대한 상세도를 도시한다. 예시적인 실시예에서, EDL 모듈(310)은 예시적인 스키마 생성 모듈(505) 및 예시적인 형식 및 뷰 생성 및 렌더링(FVGR : forms and views generation and rendering) 모듈(510)을 포함한다.
일측면에서, 예시적인 스키마 생성 모듈(505) 및 FVGR 모듈(510)은, 클라이언트 컴퓨팅 장치(105) 상의 웹 브라우저 애플리케이션에 의해 인스턴스가 생성된 그래픽 사용자 인터페이스를 통해 사용자에게 표시될 뷰 및 형식으로 각각의 비즈니스 데이터를 매핑하는 것에 의해, EDL 모듈(310)이 외부 데이터 저장부(130) 내에 수용된 비즈니스 데이터를 비즈니스 데이터 플랫폼(140)의 문맥으로 일체화할 수 있게 한다. 본 발명의 원리에 따르면, 제공된 뷰 및 형식은 BDC 모듈(305)에 의해 획득되면 각각의 외부 비즈니스 시스템(125)의 API 내에 구현되는 허용 가능 동작에 부합되는 컨텐츠를 포함한다.
일측면에서, 스키마 생성 모듈(505)은 상술된 바와 같이 엔티티 모듈(410) 내에 정의된 것과 같은 엔티티의 정의를 액세스하는 소프트웨어를 포함한다. 일반적으로, 스키마 생성 모듈(505)은 지역 데이터 저장부(120) 내에 저장된 데이터 내에 포함된 것과 같은 각각의 엔티티 및 모든 연관 속성을 액세스한다. 예를 들면, 스키마 생성 모듈(505)은 "고객" 엔티티를 액세스하려는 요청을 수신하고, 그곳에 정의된 속성의 인벤토리를 실행할 수 있다. 예시적인 실시예에서, "고객" 엔티티는 비즈니스 데이터 플랫폼(140)의 문맥 내에 정의될 수 있고, 그에 따라 디폴트(default)로서 "생성자" 메소드, "특정 발견자" 메소드, "업데이터" 메소드 및 "삭제자" 메소드를 포함하는 표준 CRUDQ 동작과 관련된 모든 메소드를 포함할 수 있다. 따라서 요청될 때, 스키마 생성 모듈(505)은 "고객" 엔티티의 언급된 CRUDQ 메소드의 존재를 반영할 수 있는 인벤토리를 실행할 것이다.
다른 예로서, 스키마 생성 모듈(505)은 "직원" 엔티티를 액세스하려는 요청을 수신하고, 그곳에 정의된 속성의 인벤토리를 실행할 수 있다. 예시적인 실시예에서, "직원" 엔티티는 비즈니스 데이터 플랫폼(140)의 문맥 외부에 정의될 수 있고, 그에 따라 CRUDQ 메소드 모두를 포함하지는 않을 수 있다. 예를 들면, "직원" 엔티티는 "생성자" 메소드를 포함하지 않을 수 있고, 그에 따라 요청이 이루어지면, 스키마 생성 모듈(505)은 "특정 발견자" 메소드, "업데이터" 메소드 및 "삭제자" 메소드만을 갖는 "직원" 엔티티가 되도록 인벤토리를 작성할 것이다.
FVGR 모듈(510)은 각각의 엔티티 내에 정의된 속성의 인벤토리를 요청하기 위해 스키마 생성 모듈(505)을 액세스하는 소프트웨어를 포함한다. 그 후에 확인된 인벤토리에 기초하여, FVGR 모듈(510)은 웹 브라우저 애플리케이션에 의해 인스턴스가 생성된 그래픽 사용자 인터페이스를 통해 클라이언트 컴퓨팅 장치(105)의 사용자에게 나중에 표시할 형식 및 뷰를 생성한다. 이러한 방식으로, 제공된 뷰 및 형식은 각각의 외부 데이터 저장부(130)에 상주하는 외부 비즈니스 데이터 및 BDC 모듈(305)에 의해 획득된 것과 같이 각각의 외부 비즈니스 시스템(125)의 API 내에 구현된 비즈니스 허용 가능 동작의 데이터 종류와 부합되는 컨텐츠를 포함한다.
예를 들면, 상술된 바와 같은 "고객" 엔티티와 관련하여, FVGR 모듈(510)은 스키마 생성 모듈(505)을 액세스하여 "고객" 엔티티의 속성에 대한 인벤토리를 요청한다. 예시적인 실시예에서, 스키마 생성 모듈(505)은 인벤토리를 실행하고, "생성자" 메소드, "특정 발견자" 메소드, "업데이터" 메소드 및 "삭제자" 메소드를 포함하는 정의된 속성을 리턴할 것이다.
그 후에 FVGR 모듈(510)은 "고객" 엔티티의 인스턴스로부터 관련 데이터에 대한 클라이언트 컴퓨팅 장치(105)의 요청에 응답하여 형식 및 뷰를 생성한다. 이는 "생성자" 메소드가 발견될 때 예를 들면, 신규 메뉴 항목의 생성 및 "Newltem.aspx" 웹 페이지의 생성을 포함할 수 있다. "업데이터" 메소드가 발견될 때, "편집(Edit)" 메뉴 항목의 생성 및 "Editltem.aspx" 웹 페이지의 생성을 포함할 수 있다. "삭제자" 메소드가 발견될 때 이는 "삭제" 메뉴 항목의 생성을 포함할 수 있다. 추가하여, 이하에서 더 상세하게 설명되는 바와 같이, "특정 발견자"가 발견될 때 이것은 "뷰" 메뉴 항목의 생성을 포함할 수 있고, 외부 데이터 리스트의 생성 동안에, "Displtem.aspx"의 새로운 디스플레이 형태의 생성을 포함할 수 있는데, 여기에서 "특정 발견자"는 그것에 의해 리턴되는 필드에 대한 문의를 받을 것이고, "Displtem.aspx" 디스플레이 형태에 필드로서 추가될 것이다.
마찬가지로, 상술된 바와 같은 "직원" 엔티티와 관련하여, FVGR 모듈(510)은 스키마 생성 모듈(505)을 액세스하여 "직원" 엔티티의 속성의 인벤토리를 요청한다. 예시적인 실시예에서, 스키마 생성 모듈(505)은 인벤토리를 실행하고, "특정 발견자" 메소드, "업데이터" 메소드 및 "삭제자" 메소드를 포함하여 획득되는 정의된 속성을 리턴한다.
그 후에 FVGR 모듈(510)은 클라이언트 컴퓨팅 장치(105)에 의한 외부 비즈니스 데이터의 요청에 응답하여 형식 및 뷰를 제공한다. 예시적인 실시예에서, 이는 "고객" 엔티티와 관련하여 상술된 것과 유사한 방식으로 "특정 발견자" 메소드, "업데이터" 메소드 및 "삭제자" 메소드에 대한 뷰 및 형식의 생성을 포함할 수 있다. 그러나 예시적인 실시예에서, "생성자" 메소드는 "직원" 엔티티 내에서 발견되지 않고, 그에 따라 임의의 연관된 링크를 따라서 어떠한 연관된 형태도 디스플레이되지 않을 것이다.
본 명세서에 설명된 예시는 웹 브라우저 애플리케이션에서 비즈니스 데이터의 렌더링을 포함한다. 그러나 본 발명의 시스템 및 방법은 예를 들면, WPF(Windows Presentation Foundation)를 위한 XAML(Extensible Application Markup Language)의 렌더링 등과 같은 임의의 클라이언트 렌더링 프로세스에 적용 가능하다.
상술된 바와 같이, 플랫폼(140)은 내부 및 외부 데이터 저장부 모두에 상주하는 데이터를 사용자가 액세스, 시각화 및 조작할 수 있게 한다. 이러한 동작의 예시는 도 6 내지 도 8을 참조하여 이하에 설명되어 있다.
도 6은 외부 데이터 리스트의 생성을 위한 예시적인 방법(600)에 대한 흐름도를 도시한다. 동작(605)에서, 비즈니스 애플리케이션이 서버 컴퓨팅 장치 상에 인스턴스화된다. 그 후에 동작(607)에서, 서버 컴퓨팅 장치는 지역 데이터 저장부를 액세스하고, 지역 데이터 저장부 내에 저장된 모든 엔티티의 정의 내에 정의된 속성의 인벤토리를 실행한다.
동작(610)에서, 서버 컴퓨팅 장치는 동작(605)에서 획득된 속성의 인벤토리를 분석하여, 예를 들면, 외부 데이터 리스트의 생성에 사용될 비즈니스 데이터를 수용하는 각각의 외부 데이터 저장부의 하나 이상의 파라미터를 식별한다.
동작(615)에서, 서버 컴퓨팅 장치는 매핑 절차를 수행하는데, 여기에서 외부 데이터 소스의 데이터 멤버의 데이터 종류는 선호되는 비즈니스 데이터 플랫폼 고유의 데이터 종류 필드에 대해 매핑된다. 예를 들면, "고객" 엔티티 인스턴스는 "문자열(string)" 종류의 데이터 멤버를 갖는 "이름" 및 "성"을 가질 수 있다. 서버 컴퓨팅 장치는 비즈니스 데이터 플랫폼 고유의 "문자열" 종류를 갖는 데이터 종류 필드에 대해 "이름" 및 "성" 데이터 멤버를 매핑할 수 있을 것이다. 선호되는 비즈니스 데이터 플랫폼이 예를 들면, 쉐어포인트(SharePoint)인 실시예에서, 동작(615)은 "고객" 엔티티 종류의 "이름" 및 "성" 데이터 멤버를 "SPList" 필드로 매핑할 수 있고, 여기에서 "SPList" 필드는 쉐어포인트의 문맥 내에서 뷰 및 형식으로 외부 비즈니스 데이터의 렌더링을 가능하게 하는 "문자열" 데이터 종류 필드이다. 이러한 방식으로, 동작(615)의 매핑 절차는 외부 비즈니스 데이터의 표면에서 비즈니스 데이터 플랫폼 내부로 마치 그 고유의 데이터인 것처럼 동작한다.
다음에 동작(620)에서, 서버 컴퓨팅 장치는 외부 데이터 리스트를 생성한다. 예시적인 실시예에서, 외부 데이터 리스트는 임의의 각각의 뷰 또는 형식없이 구성된다. 일측면에서, 생성된 외부 데이터 리스트는 비즈니스 데이터 플랫폼이 시간 상의 임의의 시점에서 서버 컴퓨팅 장치를 통해 각각의 외부 데이터 소스에 접속될 수 있게 허용하는 것으로 한계가 설정된다.
동작(625)에서, 서버 컴퓨팅 장치는 동작(605)에서 획득된 속성의 인벤토리를 분석하여 CRUDQ 동작과 연관된 어느 메소드가 지역 데이터 저장부 내에 저장된 엔티티 내에 정의되었는지 결정한다. 소정의 실시예에서, 메소드는 특정 엔티티를 위한 각각의 뷰 및 형식에 대하여 제각기 할당되는 뷰 그룹 내에 논리적으로 그룹화된다.
동작(630)에서, 서버 컴퓨팅 장치는 동작(625)에서 뷰 그룹 내에 발견된 각각의 "발견자" 메소드에 대한 뷰를 생성한다. 예시적인 실시예에서, 서버 컴퓨팅 장치는 "발견자" 메소드를 포함하는 각각의 뷰 그룹에 대한 웹 페이지를 생성하고, 웹 페이지에서 렌더링될 뷰 웹 부분(view Web Part)을 구성한다. 일측면에서, 웹 부분은 "발견자" 메소드로부터 생성된 CAML(Collaborative Application Markup Language) 뷰 XML에 영향력을 갖고, 뷰 내에서 리턴될 모든 데이터 종류 필드를 열거한다. 일측면에서, 웹 페이지는 사용자가 웹 페이지를 브라우징(browse)할 때, "발견자"가 실행되고, 외부 비즈니스 데이터는 외부 데이터 저장부로부터 인출되고 서버 컴퓨팅 장치에 의해 비즈니스 데이터 플랫폼 내에서 기대할 수 있는 것과 부합되는 형식으로 형상화되는 방식으로 구성된다.
동작(635)에서, 서버 컴퓨팅 장치는 동작(625)에서의 뷰 그룹 내에 발견된 각각의 "업데이트" 메소드에 대한 형식을 생성한다. 예를 들면, "형식 편집(EditForm)"은 각각의 뷰 그룹이 "업데이트" 메소드를 지원할 때 생성된다. 예시적인 실시예에서, 서버 컴퓨팅 장치는 "업데이트" 메소드를 포함하는 각각의 뷰 그룹에 대한 웹 페이지를 생성하고, 형식 웹 부분이 웹 페이지 상에 렌더링되도록 구성된다. 동작(640)에서, 서버 컴퓨팅 장치는 각각의 외부 비즈니스 데이터와 연관된 동작을 매핑하여 비즈니스 데이터 플랫폼의 동작을 맞춤화한다. 예를 들면, 엔티티에 관련될 수 있는 URL에 대한 참조가 생성된다.
도 7은 외부 데이터 리스트 뷰를 렌더링하는 예시적인 방법(700)에 대한 흐름도를 도시한다. 동작(705)에서, 서버 컴퓨팅 장치는 지역 데이터 저장부를 액세스하고, 지역 데이터 저장부 내에 저장된 모든 엔티티의 정의 내에 정의된 속성의 인벤토리를 실행한다. 서버 컴퓨팅 장치는 예를 들면, 서버 컴퓨팅 장치 외부 비즈니스 데이터가 인출될 수 있게 하는 외부 비즈니스 시스템 API를 호출할 수 있게 함으로써 속성의 인벤토리를 분석한다. 예시적인 실시예에서, 인벤토리화된 속성은 예를 들면, "LobSystemlnstance", "EntityNamespace", "Entity Name" 및 "SpecificFinder" 이름을 포함하고, 이들은 각각의 엔티티에 대한 뷰 그룹을 완전히 정의한다.
동작(710)에서, 동작(705)에서 인벤토리 내에서 식별된 각각의 "발견자" 메소드에 있어서, 예를 들면, 상술된 바와 같이 예시적인 방법(600)의 동작(630)과 유사하게 "발견자" 메소드 이름을 뷰 CAML 내에 저장한다. 동작(715)에서, 서버 컴퓨팅 장치는 "발견자"에 대한 필터의 집합을 결정하고, 뷰 CAML 내에 저장된 값에 기초하여 필터 값을 구성하기 위해서 외부 비즈니스 데이터 시스템 API를 호출한다.
동작(720)에서, 서버 컴퓨팅 장치는 외부 데이터 소스로부터 외부 비즈니스 데이터를 검색하기 위해 "발견자" 메소드를 실행한다. 동작(725)에서, 검색된 데이터는 뷰 CAML에 따라서 재순차화(reordered)되고, 하나 이상의 분류, 필터링 및 페이징(paging)이 검색된 데이터에 적용된다. 일반적으로, 검색된 데이터는 데이터 테이블로서 메모리에 로딩되고, 인덱스 기법이 사용되어 테이블 내에 데이터를 여러 번 복사해야만 하는 것을 방지한다. 동작(730)에서, HTML은 동작(725)과 부합되는 방식으로 이루어진다는 조건 하에서 검색된 데이터에 대한 웹 페이지로 렌더링된다. 예시적인 실시예에서, 검색된 데이터는 비즈니스 데이터 플랫폼 고유의 데이터 종류 필드에 기초하여 렌더링된다.
도 8은 새로운 형식 제안을 위한 예시적인 방법(800)에 대한 흐름도를 도시한다. 동작(805)에서, 서버 컴퓨팅 장치는 지역 데이터 저장부로부터 형식 필드 값을 수집한다. 예시적인 실시예에서, 동작(805)은 HTML 형식 필드 값을 수집하기 위해 렌더링된 웹 페이지 편집 형식에서 사용자가 "OK"를 선택하는 것에 의해 실행된다.
동작(810)에서, 서버 컴퓨팅 장치는 지역 데이터 저장부를 액세스하고, 지역 데이터 저장부 내에 저장된 모든 엔티티의 정의 내에 정의된 속성의 인벤토리를 수행한다. 이러한 방식으로, 서버 컴퓨팅 장치는 외부 비즈니스 데이터가 인출될 수 있도록 허용할 외부 비즈니스 데이터 시스템 API를 호출할 수 있게 된다. 예시적인 실시예에서, 인벤토리화된 속성은 예를 들면, 각각의 엔티티에 대한 뷰 그룹을 완전히 정의하는 "LobSystemlnstance", "EntityNamespace", "Entity Name" 및 "SpecificFinder" 이름을 포함한다.
동작(815)에서, 서버 컴퓨팅 장치는 예를 들면, 지역 데이터 저장부 내에 저장된 모든 엔티티의 정의 내에 정의된 "업데이터" 메소드 파라미터를 결정하기 위해 속성의 인벤토리를 분석한다. 예시적인 실시예에서, 형식 내의 각각의 필드 값인 연관된 "업데이터" 파라미터가 설정된다. 동작(825)에서, 서버 컴퓨팅 장치는 각각의 외부 데이터 저장부 내의 외부 비즈니스 데이터를 업데이트하기 위해 "업데이터" 메소드를 실행한다.
도 9는 엔티티의 특정 인스턴스를 삭제하는 예시적인 방법(900)에 대한 흐름도를 도시한다. 동작(910)에서, 서버 컴퓨팅 장치는 지역 데이터 저장부를 액세스하고, 지역 데이터 저장부 내에 저장된 모든 엔티티의 정의 내에 정의된 속성의 인벤토리를 수행한다. 서버 컴퓨팅 장치는 예를 들면, 기본 키 등과 같은 특정 엔티티의 식별 정보를 나타내어 각각의 엔티티가 식별될 수 있게 하는 엔티티 "식별자" 속성 등에서 획득된 속성의 인벤토리를 분석한다.
동작(915)에서, 서버 컴퓨팅 장치는 예를 들면, 서버 컴퓨팅 장치가 외부 비즈니스 데이터가 인출될 수 있도록 허용하는 외부 비즈니스 데이터 시스템 API를 호출할 수 있게 되는 방식으로 동작(910)에서 획득된 속성의 인벤토리를 분석한다. 예시적인 실시예에서, 인벤토리화된 속성은 각각의 엔티티의 뷰 그룹을 완전히 정의하는 예를 들면, "LobSystemlnstance", "EntityNamespace", "Entity Name" 및 "SpecificFinder" 이름을 포함한다. 동작(920)에서, 서버 컴퓨팅 장치는 "삭제자" 메소드를 실행한다.
본 명세서에 설명된 예시적인 실시예는 네트워크형 컴퓨팅 시스템 환경 내의 컴퓨팅 장치에서의 로직 동작으로 구현될 수 있다. 로직 동작은 (i) 컴퓨팅 장치에서 실행되는 컴퓨터 구현 명령어, 단계 또는 프로그램 모듈의 시퀀스 및 (ii) 컴퓨팅 장치 내에서 실행되는 상호 접속된 로직 또는 하드웨어 모듈로서 구현될 수 있다.
예를 들면, 로직 동작은 본 발명의 범주에서 벗어나지 않으면서 소프트웨어, 펌웨어, 아날로그/디지털 회로 및/또는 그 임의의 조합으로 이루어진 알고리즘으로 구현될 수 있다. 소프트웨어, 펌웨어 또는 그와 유사한 컴퓨터 명령어의 시퀀스는 컴퓨터 판독 가능 저장 매체에 인코딩되고 저장될 수 있으며, 컴퓨팅 장치들 사이의 전송을 위해 반송파 신호 내에 인코딩될 수 있다.
본 발명의 청구 대상은 구조 특징부 및/또는 방법론적 동작을 지정한 문맥으로 설명되어 있으나, 첨부된 청구항에 정의된 청구 대상은 상술된 특정 특징부 또는 동작으로 반드시 한정되는 것은 아님을 이해할 것이다. 오히려, 상술된 특정 특징부 및 동작은 청구항을 구현하기 위한 예시적인 형태로서 설명되어 있다.

Claims (20)

  1. 컴퓨팅 장치로서,
    처리 장치와,
    상기 처리 장치에 접속된 시스템 메모리를 포함하되,
    상기 시스템 메모리는 상기 처리 장치에 의해 실행될 때 상기 처리 장치로 하여금 단계들을 수행하게 하는 명령어들을 포함하고,
    상기 단계들은
    내부 데이터 저장부 및 외부 데이터 저장부에 상주하는 데이터를 액세스 및 조작하는 비즈니스 데이터 카탈로그 모듈을 생성하는 단계- 상기 비즈니스 데이터 카탈로그 모듈은 데이터에 대한 요청을 수신하고, 상기 데이터가 상기 내부 데이터 저장부에 상주하는지 또는 상기 외부 데이터 저장부에 상주하는지를 결정하고, 상기 외부 데이터 저장부에 특정한 하나 이상의 애플리케이션 프로그래밍 인터페이스(API) 호출을 사용하여 상기 외부 데이터 저장부에 상주하는 상기 데이터를 액세스하고, 상기 외부 데이터 저장부와 연관된 API에 대한 정보는 상기 내부 데이터 저장부에 포함되고, 상기 정보는 외부 데이터를 렌더링하고 조작하기 위한 허용가능 동작(permissible operations) 및 하나 이상의 사전정의된 제약(constraints)을 포함하고, 상기 비즈니스 데이터 카탈로그 모듈은 또한 비즈니스 객체에 관련된 정의된 속성의 집합을 캡슐화하는(encapsulate) 상기 비즈니스 객체의 정의를 생성하고, 상기 정의된 속성의 집합은 특정 엔티티의 지속적인 식별정보(persistent identity)를 나타내는 식별자 속성, 상기 외부 데이터 저장부로부터 리턴되는 데이터 멤버를 필터링하기 위한 기준을 포함하는 필터 속성, 특정 엔티티에 관련된 URL(uniform resource locator)의 참조를 포함하는 액션 속성(actions attribute), 연관 관계가 정의되어 있는 적어도 하나의 엔티티에 대한 참조를 포함하는 관계 속성, 및 액세스 권리를 설정하는 메소드(method)를 포함하는 액세스 속성을 포함함 -와,
    상기 외부 데이터 저장부로부터 액세스된 데이터를 제공하고, 클라이언트 컴퓨팅 장치상에 표현되도록 상기 외부 데이터 저장부로부터의 외부 데이터를 매핑하며, 상기 클라이언트 컴퓨팅 장치상에서 그래픽 사용자 인터페이스를 통해 사용자에게 표현되고 액세스되도록 하기 위한 형식 및 뷰(forms and views)를 생성하는 외부 데이터 제공 모듈을 생성하는 단계- 상기 형식 및 뷰는 상기 외부 데이터 저장부와 연관된 외부 비즈니스 시스템의 애플리케이션 프로그래밍 인터페이스에서 구현되는 상기 허용가능 동작과 연관된 콘텐츠를 포함하고, 상기 허용가능 동작은 상기 사용자가 상기 외부 데이터 저장부에 저장할 데이터를 포함하는 새로운 엔티티 인스턴스를 생성할 수 있게 해주는 제1 선택가능 메뉴 항목을 생성하는 생성자 메소드(creator method), 상기 사용자가 엔티티 인스턴스와 연관된 데이터를 볼 수 있게 해주는 제2 선택가능 메뉴 항목을 생성하는 특정 발견자 메소드(specific finder method), 상기 사용자가 엔티티 인스턴스의 적어도 하나의 특성(property)을 수정할 수 있게 해주는 제3 선택가능 메뉴 항목을 생성하는 업데이터 메소드, 및 상기 사용자가 엔티티 인스턴스를 삭제할 수 있게 해주는 제4 선택가능 메뉴 항목을 생성하는 삭제자 메소드를 포함함 -를 포함하고,
    사용자는 상기 내부 데이터 저장부로부터의 데이터를 액세스 및 조작하는 방식과 동일한 방식으로 상기 외부 데이터 저장부로부터의 데이터를 액세스 및 조작할 수 있는
    컴퓨팅 장치.
  2. 제1항에 있어서,
    상기 컴퓨팅 장치는 상기 외부 데이터를 포함하는 상기 외부 데이터 저장부를 더 포함하고, 상기 외부 데이터는 비즈니스 시스템의 엔티티, 상기 비즈니스 시스템의 상기 엔티티와 연관된 메소드들 및 상기 메소드들에 의해 사용되는 파라미터를 포함하는
    컴퓨팅 장치.
  3. 제1항에 있어서,
    상기 비즈니스 데이터 카탈로그 모듈은 복수의 서로 다른 외부 데이터 저장부에 대한 접속 파라미터 및 정의를 포함하는 파라미터 모듈을 더 포함하는
    컴퓨팅 장치.
  4. 제3항에 있어서,
    상기 접속 파라미터는 상기 내부 데이터 저장부 및 상기 외부 데이터 저장부 모두에 대한 정의를 포함하는
    컴퓨팅 장치.
  5. 제1항에 있어서,
    상기 비즈니스 데이터 카탈로그 모듈에 포함된 엔티티 모듈이 스칼라(scalar) 타입을 나타내는 데이터 멤버를 포함하는
    컴퓨팅 장치.
  6. 제1항에 있어서,
    상기 외부 데이터 제공 모듈은 엔티티의 정의를 액세스하고 그 정의 내에 정의된 속성들의 인벤토리를 실행하는 스키마 생성 모듈(schema generation module)을 더 포함하는
    컴퓨팅 장치.
  7. 제1항에 있어서,
    상기 외부 데이터 제공 모듈은 상기 외부 데이터 저장부의 데이터 멤버의 데이터 타입을 상기 컴퓨팅 장치에 고유한 데이터 타입 필드에 맵핑시킴으로써, 클라이언트 컴퓨팅 장치상에 표현되도록 상기 외부 데이터 저장부로부터의 외부 데이터를 맵핑하는
    컴퓨팅 장치.
  8. 제1항에 있어서,
    상기 내부 데이터 저장부로부터의 내부 데이터와 동일한 방식으로 상기 외부 데이터 저장부로부터의 상기 외부 데이터를 상기 사용자에게 제시하는 스키마 생성 모듈
    을 포함하는 컴퓨팅 장치.
  9. 비즈니스 데이터를 획득하는 방법으로서,
    비즈니스 객체에 관련된 정의된 속성의 집합을 캡슐화하는 상기 비즈니스 객체의 정의를 생성하는 단계- 상기 정의된 속성의 집합은 특정 엔티티의 지속적인 식별정보(persistent identity)를 나타내는 식별자 속성, 외부 데이터 저장부로부터 리턴되는 데이터 멤버를 필터링하기 위한 기준을 포함하는 필터 속성, 특정 엔티티에 관련된 URL(uniform resource locator)의 참조를 포함하는 액션 속성(actions attribute), 연관 관계가 정의되어 있는 적어도 하나의 엔티티에 대한 참조를 포함하는 관계 속성, 및 액세스 권리를 설정하는 메소드를 포함하는 액세스 속성을 포함함 -와,
    엔티티의 정의에 액세스하고 그 정의 내에 정의된 속성들의 인벤토리를 수행하는 단계와,
    데이터 저장부로부터의 데이터에 대한 요청을 수신하는 단계와,
    상기 데이터가 내부 데이터 저장부에 상주하는지 외부 데이터 저장부에 상주하는지를 판정하는 단계와,
    상기 데이터가 상기 외부 데이터 저장부에 상주하는 경우, 상기 외부 데이터 저장부에 특정한 하나 이상의 API 호출을 사용하여 상기 외부 데이터 저장부 상의 외부 데이터에 액세스하는 단계- 상기 외부 데이터 저장부와 연관된 API에 대한 정보는 상기 내부 데이터 저장부에 포함되어 있고, 상기 정보는 상기 외부 데이터를 렌더링하고 조작하는 것에 관한 허용가능 동작 및 하나 이상의 사전정의된 제약을 포함함 -와,
    상기 외부 데이터 저장부로부터의 상기 외부 데이터를 맵핑하는 단계와,
    상기 외부 데이터 저장부와 연관된 외부 비즈니스 시스템의 애플리케이션 프로그래밍 인터페이스에서 구현된 상기 허용가능 동작과 연관된 콘텐츠를 포함하는, 사용자에게 제시할 형식 및 뷰를 생성하는 단계- 상기 허용가능 동작은 상기 사용자가 상기 외부 데이터 저장부에 저장할 데이터를 포함하는 새로운 엔티티 인스턴스를 생성할 수 있게 해주는 제1 선택가능 메뉴 항목을 생성하는 생성자 메소드, 상기 사용자가 엔티티 인스턴스와 연관된 데이터를 볼 수 있게 해주는 제2 선택가능 메뉴 항목을 생성하는 특정 발견자 메소드, 상기 사용자가 엔티티 인스턴스의 적어도 하나의 특성을 수정할 수 있게 해주는 제3 선택가능 메뉴 항목을 생성하는 업데이터 메소드, 및 상기 사용자가 엔티티 인스턴스를 삭제할 수 있게 해주는 제4 선택가능 메뉴 항목을 생성하는 삭제자 메소드를 포함함 -와,
    상기 내부 데이터 저장부로부터의 내부 데이터와 동일한 방식으로 상기 외부 데이터 저장부로부터의 상기 외부 데이터를 상기 사용자에게 제시하는 단계와,
    상기 사용자로 하여금 상기 내부 데이터 저장부로부터의 상기 내부 데이터를 조작하는 방식과 동일한 방식으로 상기 외부 데이터 저장부를 조작할 수 있게 허용하는 단계
    를 포함하는 비즈니스 데이터의 획득 방법.
  10. 제9항에 있어서,
    스칼라 타입을 나타내는 데이터 멤버를 정의하는 단계
    를 더 포함하는 비즈니스 데이터의 획득 방법.
  11. 제9항에 있어서,
    상기 외부 데이터 저장부로부터의 상기 외부 데이터를 맵핑하는 단계는 상기 외부 데이터 저장부의 데이터 멤버의 데이터 타입을 컴퓨팅 장치에 고유한 데이터 타입 필드에 맵핑하는 단계를 포함하는
    비즈니스 데이터의 획득 방법.
  12. 제9항에 있어서,
    상기 엔티티의 정의에 액세스하고 그 정의 내에 정의된 속성들의 인벤토리를 수행하는 단계는 복수의 상이한 외부 데이터 저장부에 대한 접속 파라미터에 액세스하는 단계를 더 포함하는
    비즈니스 데이터의 획득 방법.
  13. 제12항에 있어서,
    상기 접속 파라미터는 상기 내부 데이터 저장부와 상기 외부 데이터 저장부 모두에 대한 정의를 포함하는
    비즈니스 데이터의 획득 방법.
  14. 제9항에 있어서,
    상기 뷰 또는 형식으로 상기 외부 데이터 저장부로부터의 상기 외부 데이터를 상기 사용자에게 제시하는 것은 웹 브라우저 애플리케이션에 의해 인스턴스화된 그래픽 사용자 인터페이스를 통해 제시되는
    비즈니스 데이터의 획득 방법.
  15. 컴퓨팅 장치에 의해 실행되는 경우 상기 컴퓨팅 장치로 하여금 방법을 실행하게 하는 컴퓨터 실행가능 명령어들을 구비하는 컴퓨터 판독가능 저장 매체로서,
    상기 방법은
    비즈니스 객체에 관련된 정의된 속성의 집합을 캡슐화하는 상기 비즈니스 객체의 정의를 생성하는 단계- 상기 정의된 속성의 집합은 특정 엔티티의 지속적인 식별정보(persistent identity)를 나타내는 식별자 속성, 외부 데이터 저장부로부터 리턴되는 데이터 멤버를 필터링하기 위한 기준을 포함하는 필터 속성, 특정 엔티티에 관련된 URL(uniform resource locator)의 참조를 포함하는 액션 속성(actions attribute), 연관 관계가 정의되어 있는 적어도 하나의 엔티티에 대한 참조를 포함하는 관계 속성, 및 액세스 권리를 설정하는 메소드를 포함하는 액세스 속성을 포함함 -와,
    엔티티의 정의에 액세스하고 그 정의 내에 정의된 속성들의 인벤토리를 수행하는 단계와,
    데이터 저장부로부터의 데이터에 대한 요청을 수신하는 단계와,
    상기 데이터가 내부 데이터 저장부에 상주하는지 외부 데이터 저장부에 상주하는지를 판정하는 단계와,
    상기 데이터가 상기 외부 데이터 저장부에 상주하는 경우, 상기 외부 데이터 저장부에 특정한 하나 이상의 API 호출을 사용하여 상기 외부 데이터 저장부 상의 외부 데이터에 액세스하는 단계와,
    상기 외부 데이터 저장부로부터의 상기 외부 데이터를 맵핑하는 단계와,
    상기 컴퓨팅 장치의 사용자에게 제시할 형식 및 뷰를 생성하는 단계- 상기 뷰 및 형식은 상기 외부 데이터 저장부와 연관된 외부 비즈니스 시스템의 API에서 구현되는 허용가능 동작에 부합되는 콘텐츠를 포함하고, 상기 외부 데이터 저장부와 연관된 상기 API에 대한 정보는 상기 내부 데이터 저장부에 포함되고, 상기 정보는 파라미터, 보안 인증 정보 및 필터링 정보를 비롯하여, 상기 외부 데이터를 렌더링하고 조작하는 것에 관한 허용가능 동작 및 하나 이상의 사전정의된 제약을 포함하고, 상기 허용가능 동작은 상기 사용자가 상기 외부 데이터 저장부에 저장할 데이터를 포함하는 새로운 엔티티 인스턴스를 생성할 수 있게 해주는 제1 선택가능 메뉴 항목을 생성하는 생성자 메소드(creator method), 상기 사용자가 엔티티 인스턴스와 연관된 데이터를 볼 수 있게 해주는 제2 선택가능 메뉴 항목을 생성하는 특정 발견자 메소드, 상기 사용자가 엔티티 인스턴스의 적어도 하나의 특성을 수정할 수 있게 해주는 제3 선택가능 메뉴 항목을 생성하는 업데이터 메소드, 및 상기 사용자가 엔티티 인스턴스를 삭제할 수 있게 해주는 제4 선택가능 메뉴 항목을 생성하는 삭제자 메소드를 포함함 -와,
    상기 내부 데이터 저장부로부터의 내부 데이터와 동일한 방식으로 상기 외부 데이터 저장부로부터의 상기 외부 데이터를 상기 뷰 또는 형식으로 상기 사용자에게 제시하는 단계와,
    상기 사용자로 하여금 상기 내부 데이터 저장부로부터의 상기 내부 데이터를 조작하는 방식과 동일한 방식으로 상기 외부 데이터 저장부를 조작할 수 있게 허용하는 단계
    를 포함하는
    컴퓨터 판독가능 저장 매체.
  16. 제15항에 있어서,
    상기 방법은 스칼라 타입을 나타내는 데이터 멤버를 정의하는 단계를 더 포함하는
    컴퓨터 판독가능 저장 매체.
  17. 제15항에 있어서,
    상기 외부 데이터 저장부로부터의 상기 외부 데이터를 맵핑하는 단계는 상기 외부 데이터 저장부의 데이터 멤버의 데이터 타입을 상기 컴퓨팅 장치에 고유한 데이터 타입 필드에 맵핑하는 단계를 포함하는
    컴퓨터 판독가능 저장 매체.
  18. 제15항에 있어서,
    상기 엔티티의 정의에 액세스하고 그 정의 내에 정의된 속성들의 인벤토리를 수행하는 단계는 복수의 상이한 외부 데이터 저장부에 대한 접속 파라미터에 액세스하는 단계를 더 포함하는
    컴퓨터 판독가능 저장 매체.
  19. 제18항에 있어서,
    상기 접속 파라미터는 상기 내부 데이터 저장부와 상기 외부 데이터 저장부 모두에 대한 정의를 포함하는
    컴퓨터 판독가능 저장 매체.
  20. 제15항에 있어서,
    상기 외부 데이터 저장부로부터의 상기 외부 데이터를 상기 뷰 또는 형식으로 상기 사용자에게 제시하는 단계는 웹 브라우저 애플리케이션에 의해 인스턴스화된 그래픽 사용자 인터페이스를 통해 제시되는
    컴퓨터 판독가능 저장 매체.
KR1020117022942A 2009-03-31 2010-03-26 컴퓨팅 장치, 비즈니스 데이터의 획득 방법 및 컴퓨터 판독 가능 저장 매체 KR101665152B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/415,499 2009-03-31
US12/415,499 US8341189B2 (en) 2009-03-31 2009-03-31 Extending collaboration capabilities to external data
PCT/US2010/028937 WO2010117690A2 (en) 2009-03-31 2010-03-26 Extending collaboration capabilities to external data

Publications (2)

Publication Number Publication Date
KR20120002579A KR20120002579A (ko) 2012-01-06
KR101665152B1 true KR101665152B1 (ko) 2016-10-11

Family

ID=42785549

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117022942A KR101665152B1 (ko) 2009-03-31 2010-03-26 컴퓨팅 장치, 비즈니스 데이터의 획득 방법 및 컴퓨터 판독 가능 저장 매체

Country Status (10)

Country Link
US (1) US8341189B2 (ko)
EP (1) EP2414955B1 (ko)
JP (1) JP5536190B2 (ko)
KR (1) KR101665152B1 (ko)
CN (1) CN102378975B (ko)
BR (1) BRPI1009487A2 (ko)
CA (1) CA2753706C (ko)
RU (1) RU2546322C2 (ko)
SG (1) SG174147A1 (ko)
WO (1) WO2010117690A2 (ko)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9298841B2 (en) * 2009-11-23 2016-03-29 Ims Health Incorporated Method and system for adding combination fields to sharepoint (TM)
US10810222B2 (en) 2014-11-24 2020-10-20 Asana, Inc. Continuously scrollable calendar user interface
US10776796B2 (en) * 2017-05-25 2020-09-15 Walmart Apollo, Llc Systems and methods for matching data from an external catalog with data in an internal catalog
EP3642775A4 (en) 2017-06-22 2021-03-24 JPMorgan Chase Bank, N.A. SYSTEM AND PROCEDURE FOR IMPLEMENTING AN INTERBANK INFORMATION NETWORK
US10977434B2 (en) 2017-07-11 2021-04-13 Asana, Inc. Database model which provides management of custom fields and methods and apparatus therfor
US10623359B1 (en) 2018-02-28 2020-04-14 Asana, Inc. Systems and methods for generating tasks based on chat sessions between users of a collaboration environment
US11138021B1 (en) 2018-04-02 2021-10-05 Asana, Inc. Systems and methods to facilitate task-specific workspaces for a collaboration work management platform
US10613735B1 (en) 2018-04-04 2020-04-07 Asana, Inc. Systems and methods for preloading an amount of content based on user scrolling
WO2019217649A2 (en) 2018-05-11 2019-11-14 Cigent Technology, Inc. Method and system for improved data control and access
US10785046B1 (en) 2018-06-08 2020-09-22 Asana, Inc. Systems and methods for providing a collaboration work management platform that facilitates differentiation between users in an overarching group and one or more subsets of individual users
US10616151B1 (en) 2018-10-17 2020-04-07 Asana, Inc. Systems and methods for generating and presenting graphical user interfaces
US10956845B1 (en) 2018-12-06 2021-03-23 Asana, Inc. Systems and methods for generating prioritization models and predicting workflow prioritizations
US11113667B1 (en) 2018-12-18 2021-09-07 Asana, Inc. Systems and methods for providing a dashboard for a collaboration work management platform
US11568366B1 (en) 2018-12-18 2023-01-31 Asana, Inc. Systems and methods for generating status requests for units of work
US11782737B2 (en) 2019-01-08 2023-10-10 Asana, Inc. Systems and methods for determining and presenting a graphical user interface including template metrics
US10684870B1 (en) 2019-01-08 2020-06-16 Asana, Inc. Systems and methods for determining and presenting a graphical user interface including template metrics
US11204683B1 (en) 2019-01-09 2021-12-21 Asana, Inc. Systems and methods for generating and tracking hardcoded communications in a collaboration management platform
US11341445B1 (en) 2019-11-14 2022-05-24 Asana, Inc. Systems and methods to measure and visualize threshold of user workload
US11783253B1 (en) 2020-02-11 2023-10-10 Asana, Inc. Systems and methods to effectuate sets of automated actions outside and/or within a collaboration environment based on trigger events occurring outside and/or within the collaboration environment
US11599855B1 (en) * 2020-02-14 2023-03-07 Asana, Inc. Systems and methods to attribute automated actions within a collaboration environment
US11763259B1 (en) 2020-02-20 2023-09-19 Asana, Inc. Systems and methods to generate units of work in a collaboration environment
US11900323B1 (en) 2020-06-29 2024-02-13 Asana, Inc. Systems and methods to generate units of work within a collaboration environment based on video dictation
US11455601B1 (en) 2020-06-29 2022-09-27 Asana, Inc. Systems and methods to measure and visualize workload for completing individual units of work
US11449836B1 (en) 2020-07-21 2022-09-20 Asana, Inc. Systems and methods to facilitate user engagement with units of work assigned within a collaboration environment
US11568339B2 (en) 2020-08-18 2023-01-31 Asana, Inc. Systems and methods to characterize units of work based on business objectives
US11769115B1 (en) 2020-11-23 2023-09-26 Asana, Inc. Systems and methods to provide measures of user workload when generating units of work based on chat sessions between users of a collaboration environment
US11405435B1 (en) 2020-12-02 2022-08-02 Asana, Inc. Systems and methods to present views of records in chat sessions between users of a collaboration environment
US11694162B1 (en) 2021-04-01 2023-07-04 Asana, Inc. Systems and methods to recommend templates for project-level graphical user interfaces within a collaboration environment
US11676107B1 (en) 2021-04-14 2023-06-13 Asana, Inc. Systems and methods to facilitate interaction with a collaboration environment based on assignment of project-level roles
US11553045B1 (en) 2021-04-29 2023-01-10 Asana, Inc. Systems and methods to automatically update status of projects within a collaboration environment
US11803814B1 (en) 2021-05-07 2023-10-31 Asana, Inc. Systems and methods to facilitate nesting of portfolios within a collaboration environment
US11792028B1 (en) 2021-05-13 2023-10-17 Asana, Inc. Systems and methods to link meetings with units of work of a collaboration environment
US11809222B1 (en) 2021-05-24 2023-11-07 Asana, Inc. Systems and methods to generate units of work within a collaboration environment based on selection of text
US11756000B2 (en) 2021-09-08 2023-09-12 Asana, Inc. Systems and methods to effectuate sets of automated actions within a collaboration environment including embedded third-party content based on trigger events
US11635884B1 (en) 2021-10-11 2023-04-25 Asana, Inc. Systems and methods to provide personalized graphical user interfaces within a collaboration environment
US11836681B1 (en) 2022-02-17 2023-12-05 Asana, Inc. Systems and methods to generate records within a collaboration environment
US11997425B1 (en) 2022-02-17 2024-05-28 Asana, Inc. Systems and methods to generate correspondences between portions of recorded audio content and records of a collaboration environment
US11863601B1 (en) 2022-11-18 2024-01-02 Asana, Inc. Systems and methods to execute branching automation schemes in a collaboration environment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030004829A1 (en) 2001-04-09 2003-01-02 Forethought Financial Services, Inc. Multi-provider funeral plan web site and administration thereof
US20080071642A1 (en) 2006-09-15 2008-03-20 Leiba Lior System and method for connecting external product catalog data to business applications

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7020880B2 (en) 1997-01-08 2006-03-28 International Business Machines Corporation Modular application collaborator for providing inter-operability between applications and monitoring errors to trigger execution of required compensating actions to undo interrupted transaction
US7039597B1 (en) 1998-06-05 2006-05-02 I2 Technologies Us, Inc. Method and system for managing collaboration within and between enterprises
US7536697B2 (en) * 2001-06-19 2009-05-19 Accenture Global Services Gmbh Integrating enterprise support systems
US7139798B2 (en) * 2002-05-17 2006-11-21 Groove Networks, Inc. Method and apparatus for connecting a secure peer-to-peer collaboration system to an external system
US20030225778A1 (en) * 2002-05-28 2003-12-04 Craig Fisher System and methods for generating a customer specific catalog from a base catalog
US20040128347A1 (en) 2002-12-31 2004-07-01 Jeffrey Mason System and method for providing content access at remote portal environments
US20060036954A1 (en) 2004-05-25 2006-02-16 International Business Machines Corporation Web services based portlet catalog
US20060036998A1 (en) 2004-08-11 2006-02-16 Analytic Solutions.Com, Inc. System and methods for rapid buildout of applications
RU47116U1 (ru) * 2005-04-06 2005-08-10 Оао Акб "Автобанк-Никойл" Система поддержки распределенного документооборота
US20070100845A1 (en) * 2005-10-31 2007-05-03 Juergen Sattler Customer relationship management integration system and method
US20070250784A1 (en) * 2006-03-14 2007-10-25 Workstone Llc Methods and apparatus to combine data from multiple computer systems for display in a computerized organizer
CN101127108B (zh) * 2006-08-15 2014-11-05 阿里巴巴集团控股有限公司 一种经一个计算机系统访问一个信息源的方法
US8019632B2 (en) 2006-10-16 2011-09-13 Accenture Global Services Limited System and method of integrating enterprise applications
US7676755B2 (en) * 2007-04-06 2010-03-09 Business Objects Software Ltd. Apparatus and method for linking objects created in a rapid application development environment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030004829A1 (en) 2001-04-09 2003-01-02 Forethought Financial Services, Inc. Multi-provider funeral plan web site and administration thereof
US20080071642A1 (en) 2006-09-15 2008-03-20 Leiba Lior System and method for connecting external product catalog data to business applications

Also Published As

Publication number Publication date
BRPI1009487A2 (pt) 2018-02-14
JP5536190B2 (ja) 2014-07-02
US8341189B2 (en) 2012-12-25
EP2414955A2 (en) 2012-02-08
CN102378975B (zh) 2015-05-13
EP2414955B1 (en) 2020-07-01
RU2011139716A (ru) 2013-04-20
WO2010117690A2 (en) 2010-10-14
CN102378975A (zh) 2012-03-14
WO2010117690A3 (en) 2011-01-13
RU2546322C2 (ru) 2015-04-10
CA2753706A1 (en) 2010-10-14
EP2414955A4 (en) 2014-05-21
US20100250609A1 (en) 2010-09-30
JP2012522319A (ja) 2012-09-20
SG174147A1 (en) 2011-10-28
KR20120002579A (ko) 2012-01-06
CA2753706C (en) 2016-08-30

Similar Documents

Publication Publication Date Title
KR101665152B1 (ko) 컴퓨팅 장치, 비즈니스 데이터의 획득 방법 및 컴퓨터 판독 가능 저장 매체
US8296311B2 (en) Solution search for software support
US9292822B2 (en) Supplemental system for business intelligence systems
US8140545B2 (en) Data organization and evaluation using a two-topology configuration
US8880461B2 (en) Method and system for managing enterprise content
JP5065056B2 (ja) ワークフローを処理するための方法、コンピュータ・プログラム、およびシステム(ワークフロー・システムへのデータ管理動作の統合)
US7315853B2 (en) Service-oriented architecture for accessing reports in legacy systems
US8495510B2 (en) System and method for managing browser extensions
US9137206B2 (en) Service registry for saving and restoring a faceted selection
US7676589B2 (en) Automatic generation of portlets for visualizing data by exploiting object relationships
US10445675B2 (en) Confirming enforcement of business rules specified in a data access tier of a multi-tier application
CN101454779A (zh) 基于搜索的应用开发框架
US20150127688A1 (en) Facilitating discovery and re-use of information constructs
US11468229B2 (en) Describing changes in a workflow based on changes in structured documents containing workflow metadata
AU2020298056B2 (en) Autolayout of visualizations based on graph data
US7818328B2 (en) API for obtaining unambiguous representation of objects in a relational database
US20170185612A1 (en) Dynamically designing web pages
US8707171B2 (en) Service registry policy editing user interface
US8489561B1 (en) Learning enterprise portal content meta-model
US20130304767A1 (en) Filling attribute values of business objects
WO2008057947A1 (en) Apparatus and method for creating business process workflows within business intelligence systems

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190917

Year of fee payment: 4