KR101219875B1 - 메타데이터 구동 비즈니스 로직 프로세싱을 위한 방법 및장치 - Google Patents
메타데이터 구동 비즈니스 로직 프로세싱을 위한 방법 및장치 Download PDFInfo
- Publication number
- KR101219875B1 KR101219875B1 KR1020050110276A KR20050110276A KR101219875B1 KR 101219875 B1 KR101219875 B1 KR 101219875B1 KR 1020050110276 A KR1020050110276 A KR 1020050110276A KR 20050110276 A KR20050110276 A KR 20050110276A KR 101219875 B1 KR101219875 B1 KR 101219875B1
- Authority
- KR
- South Korea
- Prior art keywords
- entity
- metadata
- metadata module
- module
- business
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Operations Research (AREA)
- Tourism & Hospitality (AREA)
- Quality & Reliability (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
LOB(line of business) 어플리케이션의 중간 계층(middle tier)에서 요구되는 비즈니스 어플리케이션 소프트웨어를 지원하기 위한 메타데이터 구동 시스템(metadata driven system)은 프로세스를 메타데이터 형식으로 저장하도록 되어 있는 프로세스 메타데이터 모듈(process metadata module)을 포함하되, 상기 프로세스 오브젝트는 상기 어플리케이션 소프트웨어의 엔티티에 관련된 로직(logic)을 포함한다. 상기 시스템은 어카운트(account), 사건(incident) 등과 같은 각종 엔티티의 지속성을 고려하며, 비즈니스 어플리케이션 소프트웨어의 최종 사용자가 새로운 형태의 엔티티를 생성하도록 할 수 있다. 본 시스템은 또한, 비즈니스 어플리케이션의 배치(deployment) 후에는, 비즈니스 어플리케이션 소프트웨어를 재컴파일(recompilation)할 필요없이 심지어 최종 사용자에 의해 정의된 새로운 엔티티에 대해서도 중요한 비즈니스 로직 동작을 수행할 수 있도록 허용한다. 메타데이터 구동 접근법은 비즈니스 어플리케이션을 쉽게 변경할 수 있도록 하고, 그 비즈니스 어플리케이션의 상부에 구축된 오브젝트의 품질 보증을 자동화할 수 있도록 한다.
LOB, CRM, ERP, MRP, 비즈니스 어플리케이션
Description
도 1은 복수의 컴퓨팅 자원들을 상호접속하는 네트워크의 블록도.
도 2는 도 1의 네트워크에 접속될 수 있는 컴퓨터의 블록도.
도 3은 도 1의 네트워크 상의 어플리케이션을 관리하는데 사용될 수 있는 메타데이터 구동 시스템의 블록도.
도 4는 도 3의 메타데이터 구동 시스템에 의해 사용될 수 있는 엔티티 메타데이터 모듈의 블록도.
도 5는 도 3의 메타데이터 구동 시스템에 의해 사용될 메타데이터 모듈을 생성하기 위한 흐름도.
도 6은 도 3의 메타데이터 구동 시스템을 사용하기 위한 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
10: 네트워크 12: 퍼스널 컴퓨터
14: 컴퓨터 단말기 16: 이더넷
18: 라우터 20: 지상 통신선
22: 랩탑 컴퓨터 24: PDA
26: 무선 통신국 28: 무선 링크
30: 서버 32: 통신 링크
34: 메인프레임 36: 기타 통신 링크
본 발명은 전체적으로 컴퓨터 소프트웨어에 관한 것이며, 보다 구체적으로는 인터넷을 이용한 비즈니스 어플리케이션 소프트웨어에 관한 것이다.
오늘날의 비즈니스는 최신 기술을 사용하지 않고서는 효율적으로 기능할 수 없다. 특히, 컴퓨터 및 소프트웨어는 고도로 발달한 경제 분야에서 대부분의 비즈니스의 거의 필수적인 부분이다. 통상적으로 비즈니스는, 특정 비즈니스의 특성에 대해 특수하게 설계된 많은 고객 어플리케이션 뿐만 아니라 Excel(등록상표)과 같은 많은 재고품 비즈니스 어플리케이션를 사용한다. 소프트웨어 회사가 개발한 금융 서비스, 의학 서비스 등과 같은 특정 비즈니스 형태에 사용될 많은 특수 산업 소프트웨어 어플리케이션이 있다.
그러한 특수 산업 소프트웨어 어플리케이션은 일반적으로 특정 형태의 비즈니스의 특정 성격에 유념하여 설계되지만, 이들은 아직도 최종 사용자가 사용하기에 보다 적절하도록 변경될 필요가 있다. 고객 관계 관리(CRM) 소프트웨어는 이러한 비즈니스 어플리케이션의 일례이며, 이러한 특정 형태의 소프트웨어를 전문적으로 다루는 최종 사용자 또는 ISV(independent software vendor)에 의해 종종 변경된다.
인터넷의 발달로 인해, 비즈니스는 통상적으로 웹 기반의 어플리케이션을 사용하여 인터넷 상에 비즈니스 솔루션을 보급한다. 통상적인 웹 기반 어플리케이션에서는, 3-계층 플랫폼(three-tier platform)을 비즈니스 어플리케이션을 구현하는데 사용하며, 웹 브라우저는 클라이언트 계층이고, 어플리케이션에 의해 사용되는 각종 비즈니스 데이터를 포함하는 데이터베이스는 백-엔드(back-end) 계층이며, 웹 서버 및 그 확장은 중간 계층이 된다. 미들웨어(middleware)로 알려져 있는 중간 계층은 데이터 판독, 데이터 기록, 데이터 억세스 권한, 관계 확인 등을 포함하지만 이에 제한되는 것은 아닌 많은 기능을 책임지고 있다.
비즈니스 어플리케이션에 사용되는 미들웨어는 비즈니스 데이터를 관리하기 위한 고도로 맞춤가능한(customizable) 솔루션을 요구한다. 그러한 어플리케이션의 통상적인 프로세스는 데이터 보전 유지, 비즈니스 규칙 적용 등의 권한에 대한 각종 프로세스를 포함한다. 비즈니스 어플리케이션은 또한 보안을 위해 각종 캐스케이딩(cascading) 동작 동안 비즈니스 엔티티들 간의 여러 관계 제약, 비즈니스 분할의 재편성, 이종의 오브젝트 계층 등의 업데이트/삭제를 강요한다. 본 명세서에 언급되는 바와 같이, 엔티티(entity)는 고객 또는 상품과 같은 실세계 개념의 메타데이터를 설명하는 것이다. 엔티티라는 용어 및 클래스(class)라는 용어는 그러한 실세계 개념의 정의 또는 설명을 의미하도록 서로 교환가능하게 사용될 수 있다. 단지 일례로서, 엔티티 인스턴스(entity instance)는 그러한 엔티티 세트의 특정 부재를 설명하는 물리적 데이터이다. 마찬가지로, 관계 제약은 두 엔티티 간의 특정 관계가 비즈니스 로직을 수행하면서 편집되는 방법을 제어하는 한 세트의 규칙이다. 다른 한편, 캐스케이딩 동작은 각종 엔티티 관계 제약을 자동으로 편집하는 비즈니스 로직에 관련된 동작이다.
모든 캐스케이딩 동작은 접속된 클라이언트 및 접속되지 않은 클라이언트 둘 모두에 발생할 수 있다. 그러나, 데이터를 교환하는 캐스케이딩 동작의 서브세트(subset)는 그들이 중앙 어플리케이션 서버에서 발생할 때에만 신뢰된다. 따라서, 비즈니스 프로세스와 엔티티 스킴의 맞춤화(customization)를 허용하는 것은 캐스케이딩 동작에 대해서 몇가지 문제를 제기한다. 그러므로, 비즈니스 데이터를 관리하기 위한 맞춤가능 비즈니스 솔루션을 제공하기 위해 보다 나은 중간 계층 플랫폼을 제공하는 것이 필요하다.
LOB 어플리케이션의 중간 계층에 요구되는 비즈니스 어플리케이션 소프트웨어를 지원하기 위한 메타데이터 구동 시스템은 프로세스를 메타데이터 형식으로 저장하도록 되어 있는 프로세스 메타데이터 모듈을 구비하되, 그 프로세스 오브젝트는 어플리케이션 소프트웨어의 엔티티에 관련된 로직을 포함한다. 본 시스템은 어카운트, 사고 등과 같은 각종 엔티티의 지속성을 고려하며, 비즈니스 어플리케이션 소프트웨어의 최종 사용자가 새로운 형태의 엔티티를 생성하도록 허용한다. 본 시스템은 또한, 비즈니스 어플리케이션의 배치 후에는, 비즈니스 어플리케이션 소프트웨어의 재컴파일(recompilation)을 요청하지 않고도 심지어 최종 사용자에 의해 정의된 새로운 엔티티로도 중요한 비즈니스 로직 동작을 수행할 수 있도록 허용한 다. 메타데이터 구동 접근법은 비즈니스 어플리케이션을 쉽게 변경할 수 있도록 하고, 그 비즈니스 어플리케이션의 상부에 구축된 오브젝트의 품질 보증을 자동화할 수 있도록 한다.
메타데이터 구동 시스템의 구현은 비즈니스 엔티티를 메타데이터 형식으로 정의하는 데이터베이스 스킴을 갖는, 비즈니스 어카운트, 계약 등과 같은 비즈니스 엔티티를 나타낼 수 있도록 한다. 본 시스템은 메타데이터 형식의 복수의 비즈니스 엔티티 속성을 엔티티 메타데이터 모듈로서 정의하고, 그 어플리케이션 플랫폼에 엔티티 메타데이터 모듈을 시리얼라이징하고(serialize), 시리얼라이징된 엔티티 메타데이터 모듈을 디시리얼라이징하고(de-serialize), 그 디시리얼라이징된 엔티티 메타데이터 모듈을 어플리케이션 플랫폼 상에 저장하도록 될 수 있다. 본 시스템은 메타데이터 형식의 프로세스 오브젝트를 프로세스 메타데이터 모듈로서 정의하도록 될 수 있으며, 그 프로세스 오브젝트는 비즈니스 엔티티에 대한 로직을 포함한다. 본 시스템은 또한 어플리케이션 플랫폼에 프로세스 메타데이터 모듈을 시리얼라이징하기 위한 시리얼라이제이션 모듈(serialization module), 그 시리얼라이징된 프로세스 메타데이터 모듈을 디시리얼라이징하기 위한 디시리얼라이제이션 모듈(de-serialization module), 및 디시리얼라이징된 프로세스 메타데이터 모듈을 어플리케이션 플랫폼 상에 저장하기 위한 저장소 모듈을 포함할 수 있다.
본 시스템의 대안의 구현은 또한 엔티티에 대해서 수행된 메타데이터 형식의 동작을 동작 메타데이터 모듈로서 정의하고, 그 어플리케이션 플랫폼에 프로세스 메타데이터 모듈을 시리얼라이징하고, 그 시리얼라이징된 프로세스 메타데이터 모 듈을 디시리얼라이징하고, 그 디시리얼라이징된 프로세스 메타데이터 모듈을 어플리케이션 플랫폼 상에 저장하도록 될 수 있다.
상세한 설명
이하의 기재가 여러가지 다른 실시예들을 상세하게 설명한다해도, 이 설명의 법적 범위는 본 특허 명세서의 마지막 부분에 첨부된 청구범위에 의해 한정됨을 이해해야 한다. 상세한 설명은 단지 예시적인 것으로 해석되어야 하며, 모든 가능한 실시예를 기술하는 것은 실용적이지 않기 때문에 불가능하지는 않을지라도 모든 가능한 실시예를 기술한 것은 아니다. 많은 대안의 실시예들이 현재의 기술 또는 본 특허 명세서의 출원일 후에 개발된 기술을 이용하여 구현될 수 있으나, 이들은 여전히 본 발명을 한정하고 있는 청구범위의 범위 내에 있을 것이다.
또한, "본 명세서에 사용된 바와 같이, ' '라는 용어는 본 명세서에서 ...를 의미하도록 정의된다" 또는 이와 유사한 문장을 사용하여 용어를 본 특허 명세서에 표현적으로 정의하지 않았다고 해도, 그 용어의 의미를 평이하거나 평범한 의미를 넘어서서 표현적으로 또는 함축적으로 제한하도록 의도된 것은 아니며, 그러한 용어가 본 특허 명세서의 (청구범위 이외의) 임의의 부분에 기재된 임의의 설명에 기초한 범위에 제한되는 것으로 해석되어서는 안된다. 본 특허 명세서의 마지막 부분에 첨부된 청구범위에 인용되어 있는 임의의 용어는 한가지 의미로 일관된 방식으로 이 특허 명세서에 언급되며, 즉, 읽는 사람이 혼동하지 않도록 명료하게 행해진 것이며, 그러한 용어가 함축적이거나 단일의 의미로 제한되는 것으로 의도된 것이 아니다. 마지막으로, 청구범위의 요소는 어떠한 구조적 인용도 없이 " 수단" 및 기능이라는 용어를 정의하는 것이며 35 U.S.C.§112의 출원의 여섯번째 단락에 기초하여 임의의 청구범위 요소의 범위가 해석되도록 의도된 것은 아니다.
<실시예>
네트워크
도 1은 본 명세서에 기술된 XML 버전 관리 시스템을 구현하는데 사용될 수 있는 네트워크(10)를 도시한다. 네트워크(10)는 인터넷, 가상 사설 네트워크(VPN), 또는 하나 이상의 컴퓨터, 통신 디바이스, 데이터베이스 등이 서로간에 통신 접속이 될 수 있도록 할 수 있는 임의의 다른 네트워크가 될 수 있다. 네트워크(10)는 이더넷(16), 라우터(18) 및 지상 통신선(20)을 통해 퍼스널 컴퓨터(12) 및 컴퓨터 단말기(14)에 접속될 수 있다. 한편, 네트워크(10)는 무선 통신국(26) 및 무선 링크(28)를 통해 랩탑 컴퓨터(22) 및 PDA(personal data assistant)(24)에 무선으로 접속될 수 있다. 마찬가지로, 서버(30)가 통신 링크(32)를 이용하여 네트워크(10)에 접속될 수 있으며, 메인프레임(34)이 다른 통신 링크(36)를 이용하여 네트워크(10)에 접속될 수 있다. 이하에 보다 상세하게 기술되는 바와 같이, 동적 소프트웨어 권한설정 시스템의 하나 이상의 구성요소가 네트워크(10)에 접속된 각종 디바이스들 중 임의의 디바이스에 저장 및 동작될 수 있다.
도 2는 네트워크(10)에 접속되어 동적 소프트웨어 권한설정 시스템의 하나 이상의 구성요소를 구현하는데 사용될 수 있는 컴퓨터(110) 형태의 컴퓨팅 디바이스를 도시한다. 컴퓨터(110)의 구성요소는 프로세스 유닛(120), 시스템 메모리(130) 및 그 시스템 메모리를 포함하는 각종 시스템 구성요소들을 프로세스 유닛 (120)에 결합하는 시스템 버스(121)를 구비할 수 있지만 이에 제한되는 것은 아니다. 시스템 버스(121)는 각종 버스 아키텍쳐들 중 임의의 아키텍쳐를 사용하는 로컬 버스, 주변 버스 및 메모리 버스 또는 메모리 콘트롤러를 포함하는 버스 구조의 몇가지 형태 중 임의의 형태가 될 수 있다. 예일뿐 제한은 아닌 것으로서, 그러한 아키텍쳐는 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standards Association) 로컬 버스 및 메자닌(Mezzanine) 버스로도 알려져 있는 PCI(Peripheral Component Interconnect) 버스를 포함한다.
컴퓨터(110)는 통상적으로 각종 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터(110)에 의해 억세스될 수 있는 임의의 이용가능한 매체가 될 수 있으며, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체 둘 모두를 포함한다. 예일뿐 제한은 아닌 것으로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령문, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위해 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래쉬 메모리 또는 다른 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광디스크 저장소, 자기 카세트, 자기 테이프, 자기 디스크 저장소 또는 기타 자기 저장소 디바이스 또는 원하는 정보를 저장하는데 사용될 수 있으며, 컴퓨터(110)로 억세스될 수 있는 임의의 다른 매체를 포함하지만 이에 제한되는 것은 아니다. 통신 매체는 통상적으로 컴 퓨터 판독가능 명령문, 데이터 구조, 프로그램 모듈 또는 반송파 또는 기타 전송 메카니즘과 같은 변조된 데이터 신호 내의 기타 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 내의 정보를 인코딩하는 것과 같은 방식으로 설정 또는 변경된 하나 이상의 특징을 갖는 신호를 의미한다. 예일뿐 제한은 아닌 것으로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속과 같은 유선 매체 및 음향, 무선 주파수, 적외선 및 기타 무선 매체와 같은 무선 매체를 포함한다. 상술된 것의 임의의 조합 역시 컴퓨터 판독가능 매체의 범위에 포함되어야 한다.
시스템 메모리(130)는 ROM(read only memory; 131) 및 RAM(random access memory; 132)과 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동 중에 컴퓨터(110) 내의 소자들 간의 정보 전달을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(133)(BIOS)은 통상적으로 ROM(131)에 저장된다. RAM(132)은 통상적으로 프로세스 유닛(120)에 즉시 억세스가능하거나 및/또는 프로세스 유닛(120)에 의해 현재 동작되고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 예일뿐 제한은 아닌 것으로서, 도 1은 운영체제(134), 응용 프로그램(135), 기타 프로그램 모듈(136) 및 프로그램 데이터(137)를 도시한다.
컴퓨터(110)는 또한 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체를 구비할 수 있다. 단지 예로서, 도 1은 비분리형 비휘발성 자기 매체로부터 판독하거나 이에 기록하는 하드 디스크 드라이브(140), 분리형 비휘발성 자기 디스크(152)로부터 판독하거나 이에 기록하는 자기 디스크 드라이브(151) 및 CD ROM과 같은 분리형 비휘발성 광디스크(156)로부터 판독하거나 이에 기록하는 광디스크 드라이브(155) 또는 기타 광 매체를 도시하고 있다. 예시적인 동작 환경에 사용될 수 있는 기타 분리형/비분리형 휘발성/비휘발성 컴퓨터 저장 매체는 자기 테이프 카세트, 플래쉬 메모리 카드, 디지털 다용도 디스크, 디지털 비디오 테이프, 반도체 RAM, 반도체 ROM 등을 포함하지만 이에 제한되는 것은 아니다. 하드 디스크 드라이브(141)는 통상적으로 인터페이스(140)와 같은 비분리형 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광디스크 드라이브(155)는 통상적으로 인터페이스(150)와 같은 분리형 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
상술되고 도 1에 도시된 드라이브들 및 이 드라이브들에 연관된 컴퓨터 저장 매체는 컴퓨터 판독가능 명령문, 데이터 구조, 프로그램 모듈 및 기타 컴퓨터(110)용 데이터를 저장한다. 예를 들어, 도 1에서는, 하드 디스크 드라이브(141)가 운영체제(144), 응용 프로그램(145), 기타 프로그램 모듈(146) 및 프로그램 데이터(147)를 저장하는 것으로 도시되어 있다. 이 구성요소들은 운영체제(134), 응용 프로그램(135), 기타 프로그램 모듈(136) 및 프로그램 데이터(137)와 동일할 수도 있고 다를 수도 있다. 운영체제(144), 응용 프로그램(145), 기타 프로그램 모듈(146) 및 프로그램 데이터(147)는 최소한 그들이 다른 복제임을 설명하기 위해서 여기서 다른 번호가 주어졌다. 사용자는 키보드(162) 및 보통 마우스, 트랙볼 또는 터치 패드로 참조되는 포인팅 디바이스(161)와 같은 입력 디바이스를 통해 컴퓨터(20)에 명령 및 정보를 입력할 수 있다. 기타 입력 디바이스들(도시되지 않음) 은 마이크로폰, 조이스틱, 게임패드, 위성 접시, 스캐너 등을 포함할 수 있다. 이들 및 다른 입력 디바이스들은 종종 시스템 버스에 결합된 사용자 입력 인터페이스(160)를 통해 프로세스 유닛(120)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus)와 같은 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다. 모니터(191) 또는 다른 형태의 디스플레이 디바이스가 또한 비디오 인터페이스(190)와 같은 인터페이스를 통해 시스템 버스(121)에 접속된다. 모니터에 부가하여, 컴퓨터들은 또한 스피커(197) 및 프린터(196)와 같은 다른 주변 출력 디바이스를 구비할 수 있으며, 이들은 출력 주변 인터페이스(190)를 통해 접속될 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 논리 접속을 이용한 네트워크 환경에서 동작할 수 있다. 도 1에는 메모리 저장 디바이스(181)만이 도시되었지만, 원격 컴퓨터(180)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 디바이스 또는 다른 공통 네트워크 노드가 될 수 있으며, 통상적으로 컴퓨터(110)에 관하여 상술된 많은 또는 모든 소자들을 포함할 수 있다. 도 1에 도시된 논리 접속은 근거리 네트워크(LAN)(171) 및 원거리 네트워크(WAN)(173)를 포함하지만, 다른 네트워크들을 포함할 수도 있다. 이러한 네트워킹 환경은 사무실에서 흔히 볼 수 있는 것으로서, 기업-광역 컴퓨터 네트워크, 인트라넷 및 인터넷이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴 퓨터(110)는 통상적으로 인터넷과 같은 WAN(173)을 통해 통신을 설정하기 위해, 모뎀(172) 또는 다른 수단을 포함한다. 내부 또는 외부에 존재할 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 다른 적절한 메카니즘을 통해 시스템 버스(121)에 접속될 수 있다. 네트워킹 환경에서, 컴퓨터(110)에 대해 설명된 프로그램 모듈 또는 그 부분들은 원격 메모리 저장 디바이스에 저장될 수 있다. 예일뿐 제한은 아닌 것으로서, 도 1은 메모리 디바이스(181)에 상주하는 원격 어플리케이션 프로그램(185)을 도시한다. 도시된 네트워크 접속은 예시적인 것이며, 컴퓨터들 간의 통신 링크를 설정하는 다른 수단들이 이용될 수 있음을 이해해야 한다.
메타데이터 구동 비즈니스 로직 프로세스
도 3은 도 1의 네트워크(10) 상에서 각종 어플리케이션들을 관리하는데 사용될 수 있는 메타데이터 구동 시스템(200)의 블록도를 도시한다. 그 시스템(200)은 엔티티 메타데이터 모듈(202), 프로세스 메타데이터 모듈(204), 기본 프로세스 메타데이터 모듈(206), 시리얼라이제이션 모듈(208) 및 디시리얼라이제이션 모듈(210)을 포함할 수 있다. 시스템(200)은 서버 데이터베이스(212), 원격 데이터베이스(214), GUI(graphical user interface)(216) 및 브라우저(218)와 통신할 수 있다. 시스템(200)의 각종 모듈은 네트워크(10)의 서버(30), 데스크탑 컴퓨터(12) 등과 같은 각종 컴퓨팅 디바이스 중 임의의 디바이스 상에서 구현될 수 있다. 컴퓨터(110) 상에서 구현될 때, 본 시스템(200)은 ROM(131), RAM(132) 또는 임의의 다른 유사 위치에 저장될 수 있다.
시스템(200)은 서버 데이터베이스(212) 및 원격 데이터베이스(214) 상의 각 종 데이터를 억세스하는 CRM(고객 관계 관리) 어플리케이션과 같은 어플리케이션용의 미들웨어를 구현하는데 사용될 수 있다. 본 명세서에서 CRM 어플리케이션을 구현하기 위해 시스템(200)이 도시되었지만, 임의의 수의 대안의 어플리케이션이 시스템(200)을 사용하여 구현될 수 있다. 예를 들어, 대안의 구현에서, 시스템(200)은 네트워크(10)와 같은 네트워크 상에서 인적 자원 관리 어플리케이션(human resource management application)을 구현하는데 사용될 수 있다. 시스템(200)을 이용하여 구현될 수 있는 다른 어플리케이션 예들은 ERP(enterprise resource planning) 시스템, 분산 어카운팅 시스템, MRP(material requirement planning) 시스템, 프로젝트 관리 시스템 등과 같은 각종 비즈니스 어플리케이션을 포함한다.
시스템(200)은 GUI(216) 및 브라우저(218)를 사용하여 시스템(200)의 사용자와 통신할 수 있다. 게다가, 컴퓨터(110)에 저장된 어플리케이션 프로그램(135)과 같은 하나 이상의 어플리케이션 프로그램이 시스템(200)과 상호작용할 수 있다. 시스템(200)은 본 기술분야의 당업자에게 잘 공지되어 있는 시스템 버스(121) 또는 임의의 다른 방식을 이용하여 컴퓨터(110) 상의 각종 디바이스와 통신할 수 있다. 마찬가지로, 시스템(200)은 근거리 네트워크(171), 원거리 네트워크(173) 등을 이용하여 네트워크 상의 각종 디바이스들과 통신할 수 있다.
이제 시스템(200)의 특정 구성요소들을 참조하면, 엔티티 메타데이터 모듈(202)은 어플리케이션에 의해 사용되는 엔티티의 각종 속성들을 정의할 수 있다. 그러한 엔티티는 예를 들어, CRM 어플리케이션의 고객 어카운트 데이터를 위한 어카운트 테이블, 재고품 관리 어플리케이션의 판매 데이터를 위한 판매 테이블 등이 될 수 있다. 본 기술분야의 당업자들에게 잘 공지되어 있는 바와 같이, 일반적으로 메타데이터는 엔티티들과 이들간의 관계에 대한 정보를 나타낸다. 엔티티 메타데이터 모듈(202)은 최종 사용자 또는 ISV(independent software vendor)에 의해 생성된 각종 엔티티들의 속성을 포함하는 각종 엔티티 속성을 포함할 수 있다. 엔티티 메타데이터 모듈(202)로 표시될 수 있는 속성들의 몇가지 예는 엔티티의 데이터 형태, 엔티티의 크기, 엔티티에 관한 보안 정보, 다른 엔티티들과의 관계 등이 될 수 있다. 도 3의 블록도는 엔티티 메타데이터 모듈(202)에 대해 단지 하나의 블록만을 도시한 반면, 시스템(200) 구현시에는, 엔티티 메타데이터 모듈(202)의 구조는 다른 엔티티에 대한 다른 엔티티 메타데이터 모듈을 포함하여 매우 복잡해질 수 있으며, 그러한 복수의 엔티티 메타데이터 모듈 중 하나 이상이 상호관련될 수 있음을 이해해야 한다.
프로세스 메타데이터 모듈(204)은 엔티티에 관련된 각종 프로세스를 나타낼 수 있다. 예를 들어, 엔티티가 판매 계약에 관한 정보를 제공하는 계약을 표시할 때, 그 계약 엔티티에 관한 프로세스는 계약 갱신 프로세스가 될 수 있으며, 이는 비즈니스 로직을 포함할 수 있고, ContractProceeObject.Review() 방법에 의해 구현될 수 있다. 이 경우, 프로세스 메타데이터 모듈(204)은 ContractProceeObject.Review() 방법을 표현할 수 있다. 프로세스 메타데이터 모듈(204)에 의해 표시된 프로세스가 하나 이상의 서브-프로세스(sub-process)를 필요로 하는 경우, 그 서브-프로세스는 또한 프로세스 메타데이터 모듈(204)에 제공될 수 있다.
프로세스 메타데이터 모듈(204)은 엔티티를 사용하여 어플리케이션의 최초 개발자에 의해 개발되어 그 어플리케이션의 초기 구현이 제공된 각종 프로세스를 포함할 수 있다. 그러나, 사용자, ISV 등은 또한 프로세스 메타데이터 모듈(204)에 추가될 수 있는 추가의 프로세스를 개발하여 제공할 수 있다. 이러한 상황에서, 프로세스 메타데이터 모듈(204)은 추가의 프로세스에 대한 정보 및 그러한 추가의 비즈니스 프로세스의 경우를 생성 및/또는 야기할 필요가 있을 지도 모르는 다른 정보를 나타내는 메타데이터를 포함할 수 있다.
제3자 벤더(third party vendor)가 프로세스 메타데이터 모듈(204)을 이용하여 하나 이상의 프로세스를 개발하고, 제공하도록 하는 것은 다른 기능들을 컴파일할 필요없이 어플리케이션에 추가하여, 그러한 추가의 기능을 어플리케이션에 배치하는 것을 허용한다. 또한, ISV가 엔티티를 어플리케이션에 추가한다면, 그러한 추가된 엔티티의 속성은 엔티티 메타데이터 모듈(202)에 저장되지만, 그러한 추가된 엔티티에 대해 수행될 각종 프로세스는 프로세스 메타데이터 모듈(204)에 저장될 수 있다.
기본 프로세스 메타데이터 모듈(206)은 프로세스 메타데이터 모듈(204)에 저장된 프로세스를 포함하는 어플리케이션의 각종 프로세스에 의해 사용될 수 있는 각종 기본 프로세스들을 저장한다. 예를 들어, 기본 프로세스 메타데이터 모듈(206)은 생성 프로세스, 판독 프로세스, 업데이트 프로세스 및 삭제 프로세스를 포함하도록 도 3에 도시되었다. 그러나, 보안, 데이터 지속성 등에 관한 보다 많은 기본 프로세스가 기본 프로세스 메타데이터 모듈(206)에 저장될 수 있다. 따라서, 예를 들어, 프로세스 메타데이터 모듈(204)에 저장된 ContractProceeObject.Review() 방법이 계약 엔티티를 업데이트하기 위해 기본 프로세스 메타데이터 모듈(206)로부터 업데이트 프로세스를 호출할 수 있으며, 이러한 계약 엔티티의 속성 및 관계는 엔티티 메타데이터 모듈(204)에 저장될 수 있다.
시리얼라이제이션 모듈(208)은 엔티티의 인-메모리(in-memory) 오브젝트 표시를 네트워크를 통해 전송되거나 디스크 또는 다른 저장 매체에 저장될 수 있는 형식으로 변환하기 위한 프로세스를 포함한다. 마찬가지로, 디시리얼라이제이션 모듈(210)은 메모리로부터의 데이터 또는 네트워크로부터 수신된 데이터를 인-메모리 오브젝트 표시로 변환하기 위한 디시리얼라이제이션 프로세스를 포함할 수 있으며, 이는 프로세스 메타데이터 모듈(204)과 기본 프로세스 메타데이터 모듈(206) 중 하나에 저장된 하나 이상의 프로세스에 의해 사용될 수 있다.
도 4는 도 3의 엔티티 메타데이터 모듈(202)에 저장될 수 있는 각종 구성요소들의 상세 블록도를 도시한다. 상술된 바와 같이, 엔티티 메타데이터 모듈은 어플리케이션의 ISV 또는 사용자에 의해 추가될 수 있는 각종 엔티티들에 대한 정보 뿐만 아니라 그 어플리케이션의 최초 설계 동안 생성된 각종 엔티티들에 대한 정보를 저장하는데 사용될 수 있다. 도 4에서는 엔티티 메타데이터 모듈에 저장된 각종 정보를 다른 블록들에 도시하였지만, 본 기술분야의 당업자라면, 이 블록들 중 하나 이상을 함께 통합할 수 있거나 이 블록들 중 하나 이상을 여러개의 서브 블록으로 분할할 수 있음을 이해할 것이다. 또한, 이 블록들 각각은 컴퓨터(110)의 시스템 버스(121)와 같은 공통 통신 버스를 이용하여 다른 블록들로부터의 정보를 억 세스할 수도 있다.
보다 구체적으로는, 엔티티 메타데이터 모듈(202)은 물리적 모양 블록(232), 각종 엔티티의 속성을 포함하는 속성 블록(234), 각종 엔티티에 결합된 각종 프로세스들을 포함하는 결합 프로세스 블록(236), 각종 엔티티들의 - 엔티티들 간의 - 관계를 포함하는 관계 블록(238), 각종 엔티티들에 대한 엔티티 맵을 포함하는 맵 블록(240), 각종 엔티티들이 사용된 사용자 인터페이스를 포함하는 사용자 인터페이스 블록(242) 및 각종 엔티티들 중 하나 이상의 엔티티에 관한 규칙을 포함하는 규칙 블록(244)을 포함할 수 있다.
물리적 모양 블록(232)은 테이블 정의, 보기(view) 정의 등과 같은 각종 엔티티의 물리적 데이터베이스 모양의 정의를 메타데이터 형식으로 저장할 수 있다. 예를 들어, 고객 엔티티가 CRM 어플리케이션과 관련된 경우, 물리적 모양 블록(232)은 고객 테이블 내의 열 수, 고객 테이블에 대한 메모리 어드레스 등에 관한 정보를 저장할 수 있다.
속성 블록(234)은 엔티티들의 속성에 관한 각종 정보를 메타데이터 형식으로 저장할 수 있다. 예를 들어, 엔티티의 보안 속성은 사용자 또는 프로세스가 그 엔티티에 대한 정보를 보거나 변경할 보안 특권을 갖는지를 지정할 수 있다. 엔티티의 하나 이상의 속성은 어플리케이션의 최초 설계자 및/또는 ISV에 의해 지정될 수 있다. 또한, 어떤 엔티티에 대해서는 속성이 사용자에 의해 변경될 수 있으나, 다른 엔티티에 대해서는 속성이 사용자에 의해 변경될 수 없다.
결합 프로세스 블록(236)은 각종 엔티티에 결합된 프로세스를 메타데이터 형 식으로 지정할 수 있으며, 그 프로세스는 프로세스 메타데이터 모듈(204), 기본 프로세스 메타데이터 모듈(206)에 몇가지 다른 형식으로 저장될 수 있다. 고객 엔티티에 결합된 프로세스의 일례로서 어플리케이션이 매 고정 주기마다 이메일을 생성하도록 할 수 있는 "이메일 생성" 프로세스를 들 수 있다. 판매자 엔티티에 결합된 프로세스의 또 다른 예로서는 어플리케이션이 판매자에 관한 이동 정보를 수신할 때마다 판매자의 로컬 전화 번호를 업데이트하는 "위치 업데이트" 프로세스를 들 수 있다.
관계 블록(238)은 어플리케이션에 관한 각종 엔티티들 간의 관계를 메타데이터 형식으로 지정할 수 있다. 예를 들어, 시스템(200)에 의해 구현된 인적 자원 어플리케이션에서, 관계 블록(238)은 관리자와 종업원간의 관계는 일-대-다(one-to-many)이지만, 관리자와 비서간의 관계는 일-대-일(one-to-one)임을 지정할 수 있다. 관계 블록(238)은 또한 ISV 또는 사용자에 의해 추가된 엔티티들에 대한 관계를 지정할 수 있다.
맵 블록(240)은 어플리케이션에 존재하는 각종 엔티티들에 기초하여 다른 엔티티들을 구성하기 위한 각종 규칙을 메타데이터 형식으로 지정할 수 있다. 예를 들어, 어카운팅 시스템의 맵 블록(240)은 고객 엔티티, 제품 엔티티, 판매세 엔티티 등에 기초하여 송장 엔티티를 생성하기 위한 규칙을 지정할 수 있다.
사용자 인터페이스 블록(242)은 어플리케이션에 관한 엔티티들에 대해 각종 레이아웃, 보기, 선택-목록 등을 지정할 수 있다. 예를 들어, MRP 어플리케이션 내의 특정 원재료 엔티티에 관한 사용자 인터페이스 블록(242)은, 특정 원재료에 대한 선택-목록은 가장 흔히 사용되는 재료를 선택-목록의 가장 위에 기입하거나 가장 비용 효과적인 선적 방안을 선택-목록의 가장 위에 기입하는 등을 지정할 수 있다.
규칙 블록(244)은 확인(validate) 규칙, 카디낼러티(cardinality) 규칙 등과 같은 어플리케이션 내의 하나 이상의 엔티티에 관한 규칙들을 메타데이터 형식으로 지정할 수 있다. 예를 들어, CRM 어플리케이션의 규칙 블록(244)은 첫번째 양보다 더 많은 고객 환불 엔티티에 대한 임의의 업데이트가 관리자 엔티티에 의해 확인되어야 함을 지정할 수 있다. 또 다른 예로서, 인적 자원 어플리케이션에 대해 규칙 블록(244)에 메타데이터 형식으로 저장된 확인 규칙은 종업원 보너스 엔티티에 대한 임의의 업데이트가 두 관리자 엔티티에 의해 확인되어야 함을 지정할 수 있다.
더구나, 엔티티 메타데이터 모듈(202)은 또한 타겟 어플리케이션의 엔티티에 관한 각종 동작을 설명하는 동작 블록(246)을 포함할 수 있다. 예를 들어, 동작 블록(246)은 오프라인 재생 지원, 오프라인 트랜잭션 지원 등을 위한 요구조건을 포함하는 생성 동작을 저장할 수 있다. 마찬가지로, 동작 블록(246)은 또한 검색 동작이 오프라인 재생 지원, 오프라인 트랜잭션 지원 등을 필요로 하지 않는 정보를 포함하는 검색 동작을 저장할 수 있다.
이제, 도 5를 참조하면, 프로그램(250)이 도 3의 메타데이터 구동 시스템에 의해 사용될 각종 메타데이터 모듈들을 생성하는 방법을 도시한다. 구체적으로, 프로그램(250)은 기존의 어플리케이션에 새로운 엔티티를 추가하고 그 새로이 추가된 엔티티에 관한 프로세스를 추가하는 것을 도시한다. 블록(252)에서, 프로그램 (250)은 어플리케이션에 추가될 필요가 있는 엔티티를 수신할 수 있다. 예를 들어, 기존의 어플리케이션이 CRM 어플리케이션이라면, ISV는 고객의 주택 정보, 즉 고객이 소유주인지 세입자인지를 나타내는 주택 정보 엔티티 등을 추가하는 것에 관심을 가질 수 있다.
블록(254)에서, 프로그램(250)은 메모리 상에 저장될 수 있도록 그 새로이 수신된 오브젝트/엔티티를 시리얼라이징한다. 블록(256)에서, 프로그램(250)은 새로이 수신된 엔티티를 엔티티 메타데이터 모듈(204)에 저장한다. 프로그램(250)은 또한 새로이 생성된 주택 상태 엔티티를 정의하는 각종 속성 및 관계를 엔티티 메타데이터 모듈(204)에 저장할 수 있다. 예를 들어, 그러한 속성 중 하나는 주택 상태가 (소유주, 세입자, 세대원, 기타:와 같은) 4가지 다른 상태들 중 단지 하나만을 취할 수 있다는 것이다. 마찬가지로, 새로이 추가된 엔티티의 또 다른 속성은 새로이 생성된 엔티티의 관계 키(relation key)가 될 수 있다.
다음으로, 블록(258)에서, 프로그램(250)은 새로이 생성된 주택 상태 엔티티에 관한 각종 프로세스를 수신하여 시리얼라이징한다. 예를 들어, 그러한 하나의 프로세스가 주택 상태를 업데이트할 수 있다. 그러나, 상태를 업데이트하는 것은, 세입자에서 소유주로의 주택 상태 변경시, 신용 상태의 재조사를 시작하고, 제1 세트의 마케팅 재료를 생성하는 등과 같은, 많은 다른 규칙에 기초하여 많은 다른 프로세스에 관련될 수 있다. 엔티티 메타데이터 모듈(202)이 이러한 프로세스에 의해 영향을 받은 다른 엔티티들의 관계 및 속성에 관한 정보를 이미 가지고 있기 때문에, 전체 어플리케이션을 컴파일할 필요없이 새로운 프로세스를 구현하기가 쉬워 진다. 또한, 새로이 추가된 주택 상태 엔티티의 속성들이 엔티티 메타데이터 모듈(202)에 추가되므로, 그 새로이 추가된 엔티티는 또한 다른 프로세스에 의해서도 억세스가능하다.
다음으로, 블록(260)에서, 프로그램(250)은 그 새로이 생성된 엔티티에 관한 프로세스들 중 임의의 프로세스가 생성, 판독, 업데이트, 삭제 등과 같은 기본 프로세스들 중 어떤 프로세스를 요구하는지를 판정한다. 그러한 기본 프로세스 중 하나 이상이 필요하다고 판정되면, 블록(260)에서 프로그램(250)은 그러한 모든 기본 프로세스들이 기본 프로세스 메타데이터 모듈(206)에서 이용가능함을 보장한다. 하나 이상의 기본 프로세스들이 기본 프로세스 메타데이터 모듈(206)에서 이용가능하지 않다고 판정되면, 블록(262)에서 프로그램은 그러한 기본 프로세스들을 요청, 수신하여, 기본 프로세스 메타데이터 모듈(206)에 저장한다.
이제 도 6을 참조하면, 프로그램(300)은 메타데이터 구동 시스템(200)을 이용하는 방법을 도시한다. 설명을 위해, 프로그램(300)은 단지 삽입 요청만을 실행하기 위해 메타데이터 구동 시스템(200)을 이용하는 것으로 도시하고 있지만, 다른 요청 또는 복잡한 프로세스들이 또한 메타데이터 구동 시스템(200)을 이용하여 구현될 수 있다. 그러한 요청은 프로세스 메타데이터 모듈(204)을 이용하여 정의된 비즈니스 프로세스에 의해 수행될 수 있으며, 그 비즈니스 프로세스는 비즈니스 엔티티 상에 쿼리를 생성하기 위해 엔티티 메타데이터 모듈(202)에 저장된 비즈니스 엔티티에 대해 수행될 생성 동작을 요청한다. 프로그램(300)은 비즈니스 프로세스를 수행하기 위해 기본 프로세스 메타데이터 모듈(206)에 저장된 각종 기본 프로세 스들을 이용한다. 프로그램(300)은 삽입 요청이 실행되는 엔티티의 각종 확장을 이용할 수 있으며, 그러한 확장은 또한 엔티티에 관한 엔티티 메타데이터 모듈(202)에 저장될 수 있다. 일반적으로, 엔티티의 확장은 어플리케이션의 설계 동안 또는 어플리케이션의 ISV 또는 사용자에 의해 구현될 수 있다.
블록(302)에서, 프로그램(300)은 생성 프로세스가 수행되어야 하는 엔티티 인스턴스의 각종 속성을 확인하기 위해 기본 프로세스 메타데이터 모듈(206)에 저장된 Validate 기본 프로세스에 PreCreate 요청을 보낼 수 있다.
다음으로, 블록(304)에서, 프로그램(300)은 엔티티 인스턴스의 각종 속성에 대한 고객 정의 값을 설정하도록 기본 프로세스 메타데이터 모듈(206)에 저장되는 InjectDefaults에 또 다른 PreCreate 요청을 보낼 수 있다. 예를 들어, 집(home) 상태의 디폴트 값은 "임대"가 될 수 있고, 어떤 값도 엔티티 인스턴스에 할당되지 않았다면, InjectDefaults 기본 프로세스가 그러한 디폴트 값을 엔티티 인스턴스에 추가할 수 있다.
다음으로, 블록(306)에서, 프로그램(300)은 생성 프로세스가 수행되어야 하는 엔티티에 대해 보안 허가를 얻기 위해서 기본 프로세스 메타데이터 모듈(206)에 저장된 Security 기본 프로세스에 PreCreate 요청을 보낼 수 있다. 프로그램(300)은 사용자가 생성 프로세스를 수행할 적절한 허가를 받았는지를 확인하기 위해 그 엔티티의 보안 확장을 이용할 수 있다.
생성 프로세스를 위한 본 경우에서, 프로그램(300)은 단일 레벨의 보안 점검만을 수행하지만, 대안의 경우에서는, 먼저 프로그램(300)이 엔티티에 의해 정의된 경우의 클래스에 대해 요청된 프로세스를 수행할 허가를 받았는지를 점검할 수 있고, 다음으로 프로그램(300)은 특정 엔티티 인스턴스에 대해 요청된 프로세스를 수행할 허가를 받았는지를 보증하기 위해 엔티티 인스턴스의 특정 점검을 수행할 수 있는, 두 레벨의 보안 점검이 수행될 수 있다. 생성 프로세스의 경우에는, 어떠한 존재하는 엔티티 인스턴스도 없으므로, 한가지 레벨의 보안 점검만으로 충분할 수 있다.
블록(308)에서, 프로그램(300)은 엔티티 인스턴스를 생성하기 위해 프로세스 메타데이터 모듈(204)에 저장된 QueryBuilder 프로세스에 BuildCreate 요청을 보낼 수 있다.
다음으로, 블록(310)에서, 프로그램(300)은 생성 프로세스가 수행되어야 하는 엔티티에 대한 보안 허가를 저장하기 위해 기본 프로세스 메타데이터 모듈(206)에 저장된 Security 기본 프로세스에 PostCreate 요청을 보낼 수 있다.
블록(312)에서, 프로그램(300)은 각종 고객 정의 비즈니스 프로세스가 현재 동작의 범위 밖에서 실행되도록 하기 위해 기본 프로세스 메타데이터 모듈(206)에 저장된 Workflow 기본 프로세스에 PostCreate 요청을 보낼 수 있다. Workflow 기본 프로세스는 ISV 또는 어플리케이션의 사용자가 비즈니스 규칙/동작을 개발하도록 허용하여, 그 엔티티를 포함하는 시스템에 관한 임의의 사건에 응답하여 취해지도록 하는 프로세스의 예이다. 예를 들어, 판매 관리 시스템의 사용자는 새로운 판매 기회 또는 판매 지침이 판매 관리 시스템에 입력될 때마다 이메일을 전송하도록 트리거하는 워크플로우 프로세스를 생성할 수 있다.
다음으로, 블록(314)에서, 프로그램(300)은, Create 프로세스 실행에 동의한 다른 시스템이 임의의 존재하거나 새로운 비즈니스 로직을 실행하도록 함을 통지하기 위해, 기본 프로세스 메타데이터 모듈(206) 상에 저장된 Callout 기본 프로세스에 PostCreate 요청을 보낼 수 있다.
블록(316)에서, 프로그램(300)은 요청을 시스템의 현재 접속 상태에 의해 요청될 경우에는, 저장하기 위해 기본 프로세스 메타데이터 모듈(206)에 저장된 Offline 기본 프로세스에 PostCreate 요청을 보낼 수 있으며, 신뢰성있는 접속이 재설정될 경우에는 중앙 서버에 후속 재생을 보낼 수 있다. 단계 316에서는 생성 동작이 비접속 클라이언트에 대해 수행될 경우 그 요청의 저장을 허용하고, 중앙 어플리케이션 서버로의 접속이 설정될 경우 후속 재생의 저장을 허용하며, 이러한 저장은 동작이 중앙 어플리케이션 서버에서 수행될 경우에는 필요하지 않을 수 있다.
본 기술분야의 당업자라면 빈번한 업데이트 및 고객 개발 능력을 필요로 할 수 있는 비즈니스 어플리케이션을 위한 상술된 메타데이터 구동 시스템(200)의 이점을 이해할 것이다. 비즈니스 어플리케이션 메타데이터를 구동하는 것은 각 맞춤화 후에 비즈니스 어플리케이션의 컴파일을 수행할 필요없이, 맞춤화 허용 및 맞춤화 지원에 의해 거대한 값을 제공한다. 구체적으로, 확인, 자동화, 지속성 등의 각종 프로세스를 메타데이터 구동함으로써, 본 명세서에 기술된 메타데이터 구동 시스템(200)은 비즈니스 어플리케이션을 매우 쉽게 맞춤화할 수 있으므로, 비즈니스 어플리케이션의 개발 및 유지 비용을 줄일 수 있다.
또한 메타데이터 구동 시스템(200)은 비즈니스 로직으로 새로운 엔티티의 내부 개발을 더 쉽게 한다. 몇가지 도구를 통해 메타데이터를 업데이트하는 것은 비즈니스 어플리케이션용 코드를 업데이트하고 컴파일하여 서버 및 클라이언트의 클러스터 상에 그 업데이트된 코드를 배치하는 것보다 훨씬 더 쉽기 때문에, 메타데이터 구동 시스템(200)은 비즈니스 어플리케이션으로의 설계 변화를 더 쉽게 할 수 있다. 마찬가지로, 테스트를 자동화하여 그 테스트의 결과치를 소망의 결과치와 비교하는 데에는 메타데이터를 사용하는 것이 더 쉽기 때문에, 비즈니스 어플리케이션의 품질 보증을 위한 자동화된 테스트 프로세스는 메타데이터 모듈(204)에 쉽게 추가될 수 있다.
앞서 기재된 것이 본 발명의 많은 다른 실시예들을 설명하고 있지만, 본 발명의 범위는 본 특허 명세서의 마지막 부분에 기재된 청구범위에 의해 한정됨을 이해해야 한다. 상세한 설명은 단지 예시적인 것으로 해석되어야 하며, 모든 가능한 실시예를 기술하는 것은 실용적이지 않기 때문에, 불가능하지는 않을지라도 본 발명의 모든 가능한 실시예를 설명한 것은 아니다. 많은 대안의 실시예들이 현재의 기술 또는 본 특허 명세서의 출원일 후에 개발된 기술을 이용하여 구현될 수 있지만, 이들은 여전히 본 발명을 한정하고 있는 청구항의 범위 내에 있을 것이다.
그러므로, 본 발명의 사상 및 범위로부터 벗어나지 않고 본 명세서에 기재되고 설명된 기술 및 구조에 많은 변경들 및 변동들이 행해질 수 있다. 따라서, 본 발명에 기술된 방법 및 장치는 단지 예시일 뿐 본 발명의 범위를 제한하는 것이 아니다.
본 발명의 메타데이터 구동 접근법은 비즈니스 어플리케이션을 쉽게 변경할 수 있도록 하고, 그 비즈니스 어플리케이션의 상부에 구축된 오브젝트 보증을 자동화할 수 있도록 한다.
Claims (20)
- 비즈니스 프로그램의 맞춤화를 위한 메타데이터 구동 시스템을 구현하는 방법으로서 - 상기 시스템은 메모리에 연결된 프로세서, 복수의 엔티티 메타데이터 모듈, 및 프로세스 메타데이터 모듈들을 포함함 -,상기 메모리에 제1 엔티티 메타데이터 모듈로서 제1 엔티티의 설명(description)을 메타데이터 형태로 저장하는 단계 - 상기 제1 엔티티 메타데이터 모듈은 상기 제1 엔티티를 정의하는 복수의 속성, 상기 제1 엔티티와 제2 엔티티 간의 관계를 정의하는 관계 정보, 및 상기 제2 엔티티에 관하여 상기 제1 엔티티를 변경하거나 상기 제1 엔티티에 관하여 제3 엔티티를 구성하기 위한 규칙을 포함함 -;상기 메모리에 제1 프로세스 메타데이터 모듈로서 상기 제1 엔티티의 인스턴스를 수반하는 제1 프로세스의 메타데이터 설명을 저장하는 단계 - 상기 제1 프로세스 메타데이터 모듈은 상기 제1 엔티티의 인스턴스 상에서 동작하는 로직을 포함함 -;상기 메모리에 제2 프로세스 메타데이터 모듈로서 상기 제2 엔티티의 인스턴스를 수반하는 제2 프로세스의 메타데이터 설명을 저장하는 단계 - 상기 제2 프로세스 메타데이터 모듈은 상기 제2 엔티티 인스턴스 상에서 동작하는 로직을 포함함 -;상기 제1 프로세스 메타데이터 모듈 내의 제1 프로세스 실행가능파일(executive)을 저장하는 단계 - 상기 제1 프로세스 실행가능파일은 상기 제1 엔티티 인스턴스에 관련된 상기 로직을 해석하기 위한 루틴을 제공함 -;상기 제2 프로세스 메타데이터 모듈 내의 제2 프로세스 실행가능파일을 저장하는 단계 - 상기 제2 프로세스 실행가능파일은 상기 제2 엔티티 인스턴스에 관련된 상기 로직을 해석하는 루틴을 제공함 -;상기 제1 프로세스 메타데이터 모듈 및 상기 제2 프로세스 메타데이터 모듈을 상기 프로그램에 추가하는 단계 - 상기 프로그램은 상기 제1 엔티티 인스턴스 상에서 상기 제1 프로세스 메타데이터 모듈을 실행하고 상기 제2 엔티티 인스턴스 상에서 상기 제2 프로세스 메타데이터 모듈을 실행하며, 이 실행은 상기 제1 프로세스 메타데이터 모듈 및 상기 제2 프로세스 메타데이터 모듈을 컴파일링할 것을 요구하지 않음 -; 및상기 메모리에 실행된 프로세스들의 결과를 저장하는 단계를 포함하는 방법.
- 제1항에 있어서,동작 메타데이터 모듈로서, 상기 제1 엔티티 상에서 수행될 동작을 메타데이터 형태로 정의하는 단계를 더 포함하는 방법.
- 제2항에 있어서,(a) (1)상기 프로세스 메타데이터 모듈, (2)상기 제1 엔티티 메타데이터 모듈 및 (3)상기 동작 메타데이터 모듈 중 적어도 하나를 시리얼라이징하는 단계(serializing);(b) (1)상기 시리얼라이징된 프로세스 메타데이터 모듈, (2)상기 시리얼라이징된 제1 엔티티 메타데이터 모듈 및 (3)상기 시리얼라이징된 동작 메타데이터 모듈 중 적어도 하나를 어플리케이션 플랫폼에 전송하는 단계(communicating);(c) (1)상기 시리얼라이징된 프로세스 메타데이터 모듈, (2)상기 시리얼라이징된 제1 엔티티 메타데이터 모듈 및 (3)상기 시리얼라이징된 동작 메타데이터 모듈 중 적어도 하나를 상기 어플리케이션 플랫폼에서 디시리얼라이징(de-serializing)하는 단계; 및(d) (1)상기 디시리얼라이징된 프로세스 메타데이터 모듈, (2)상기 디시리얼라이징된 제1 엔티티 메타데이터 모듈 및 (3)상기 디시리얼라이징된 동작 메타데이터 모듈 중 적어도 하나를 상기 어플리케이션 플랫폼 상에 저장하는 단계를 더 포함하는 방법.
- 제3항에 있어서,상기 제1 엔티티 상에서 수행되는 동작은 (1)생성, (2)업데이트 및 (3)삭제 중 하나인 방법.
- 제4항에 있어서,상기 동작 메타데이터는 상기 제1 엔티티 상에서 수행되는 동작에 관한 정보를 포함하고, 상기 정보는,(a) 상기 동작이 오프라인 프로세싱을 위한 지원을 필요로 하는지의 여부;(b) 상기 동작이 원자성 트랜잭션(atomic transaction) 내에서 수행될 필요가 있는지의 여부; 및(c) 상기 동작이 1-단계의 보안 허가를 요구하는지 아니면 2-단계의 보안 허가를 요구하는지의 여부를 포함하는 방법.
- 제1항에 있어서,상기 제1 엔티티 상에서 수행되는 동작은 어플리케이션 플랫폼으로부터 분리되어 있는 원격 컴퓨팅 디바이스 상에서 수행되는 방법.
- 제2항에 있어서,상기 제1 엔티티 상에서 수행되는 동작은 캐스케이딩(cascading) 동작인 방법.
- 제1항에 있어서,상기 프로세스 메타데이터 모듈은, (1)상기 제1 엔티티에 대한 기존의 로직 및 (2)새로이 추가된 엔티티에 대한 새로운 로직 중 적어도 하나를 포함하는 방법.
- 제1항에 있어서,(1)유효성검사 확장자(validate extension), (2)삽입 디폴트(inject defaults) 확장자, (3)보안 확장자, (4)작업흐름(workflow) 확장자, (5)콜아웃(callout) 확장자, 및 (6)오프라인 확장자 중 적어도 하나를 포함하는 상기 제1 엔티티에 대한 복수의 메타데이터 구동 확장자를 생성하는 단계를 더 포함하는 방법.
- 제9항에 있어서,상기 프로세스 메타데이터 모듈은 상기 복수의 메타데이터 구동 확장자 중 적어도 하나와 통신하도록 더 구성 되어 있는 방법.
- 비즈니스 프로그램의 맞춤화를 위한 메타데이터 구동 컴퓨터 시스템으로서,비디오 이미지들을 생성할 수 있는 디스플레이 유닛;입력 디바이스;상기 디스플레이 유닛 및 상기 입력 디바이스에 동작가능하게 연결된 프로세싱 장치 - 상기 프로세싱 장치는 프로세서 및 상기 프로세서에 동작 가능하게 연결된 메모리를 포함함 -;네트워크와 상기 프로세싱 장치에 연결된 네트워크 인터페이스를 포함하고,상기 프로세싱 장치는,제1 엔티티 메타데이터 모듈로서 제1 엔티티의 표현 설명을 메타데이터 형태로 저장하고 - 상기 제1 엔티티 메타데이터 모듈은 메타데이터 형태의 상기 제1 엔티티의 복수의 속성, 상기 제1 엔티티와 제2 엔티티 간의 관계를 정의하는 관계 정보, 및 상기 제2 엔티티에 관하여 상기 제1 엔티티를 변경하거나 상기 제1 엔티티에 관하여 제3 엔티티를 구성하기 위한 규칙들을 포함함 -;제1 프로세스 메타데이터 모듈로서 제1 프로세스를 메타데이터 형태로 저장하고 - 상기 제1 프로세스 메타데이터 모듈은 상기 제1 엔티티의 인스턴스 상에서 동작하는 로직을 포함함 -;제2 프로세스 메타데이터 모듈로서 제2 프로세스를 메타데이터 형태로 저장하고 - 상기 제2 프로세스 메타데이터 모듈은 상기 제2 엔티티의 인스턴스 상에서 동작하는 로직을 포함함 -;복수의 기본 데이터 프로세스를 저장하도록 되어 있는 기본 프로세스 메타데이터 모듈을 저장하고;상기 제1 및 제2 엔티티 메타데이터 모듈, 상기 제1 및 제2 프로세스 메타데이터 모듈 및 상기 기본 프로세스 메타데이터 모듈을 시리얼라이징하도록 되어 있는 시리얼라이제이션 모듈을 저장하고;상기 제1 및 제2 엔티티 메타데이터 모듈, 상기 제1 및 제2 프로세스 메타데이터 모듈 및 상기 기본 프로세스 메타데이터 모듈을 디시리얼라이징하도록 되어 있는 디시리얼라이제이션 모듈을 저장하고;상기 제1 프로세스 메타데이터 모듈 및 상기 제2 프로세스 메타데이터 모듈을 상기 프로그램에 추가하고 - 상기 프로그램은 상기 제1 엔티티 인스턴스 상에서 상기 제1 프로세스 메타데이터 모듈을 실행하고 상기 제2 엔티티 인스턴스 상에서 상기 제2 프로세스 메타데이터 모듈을 실행하며, 이 실행은 상기 제1 프로세스 메타데이터 모듈 및 상기 제2 프로세스 메타데이터 모듈을 컴파일링할 것을 요구하지 않음 -;상기 메모리에 실행된 프로세스들의 결과를 저장하도록 프로그래밍되어 있는, 메타데이터 구동 컴퓨터 시스템.
- 제11항에 있어서,상기 복수의 기본 데이터 프로세스는 (1)생성 프로세스, (2)업데이트 프로세스 및 (3)삭제 프로세스 중 적어도 하나를 포함하는 메타데이터 구동 컴퓨터 시스템.
- 제12항에 있어서,상기 프로세스는 (1)상기 제1 엔티티에 대한 기존의 로직 및 (2)새로이 추가된 엔티티에 대한 새로운 로직 중 적어도 하나를 포함하는 메타데이터 구동 컴퓨터 시스템.
- 제12항에 있어서,상기 시리얼라이제이션 모듈은 (a) 엔티티 데이터베이스 및 그래픽 사용자 인터페이스와 통신하고, (b) 상기 제1 엔티티 메타데이터 및 상기 프로세스 메타데이터 모듈을 XML 문자열들로 시리얼라이징하도록 더 구성 되어 있고,상기 디시리얼라이제이션 모듈은 그래픽 사용자 인터페이스를 호스팅하는 원격 클라이언트 및 엔티티 데이터베이스를 갖는 서버와 통신하도록 더 구성 되어 있는메타데이터 구동 컴퓨터 시스템.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/025,323 | 2004-12-29 | ||
US11/025,323 US7433887B2 (en) | 2004-12-29 | 2004-12-29 | Method and apparatus for metadata driven business logic processing |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060076184A KR20060076184A (ko) | 2006-07-04 |
KR101219875B1 true KR101219875B1 (ko) | 2013-01-08 |
Family
ID=36337583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050110276A KR101219875B1 (ko) | 2004-12-29 | 2005-11-17 | 메타데이터 구동 비즈니스 로직 프로세싱을 위한 방법 및장치 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7433887B2 (ko) |
EP (1) | EP1677243A1 (ko) |
JP (1) | JP5162094B2 (ko) |
KR (1) | KR101219875B1 (ko) |
CN (1) | CN1797449B (ko) |
AU (1) | AU2005229697B2 (ko) |
CA (1) | CA2527803A1 (ko) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8170901B2 (en) * | 2004-10-01 | 2012-05-01 | Microsoft Corporation | Extensible framework for designing workflows |
US7464366B2 (en) * | 2004-10-01 | 2008-12-09 | Microsoft Corporation | Programming interface for a componentized and extensible workflow model |
US7565640B2 (en) * | 2004-10-01 | 2009-07-21 | Microsoft Corporation | Framework for seamlessly authoring and editing workflows at design and runtime |
US7805324B2 (en) * | 2004-10-01 | 2010-09-28 | Microsoft Corporation | Unified model for authoring and executing flow-based and constraint-based workflows |
US7451432B2 (en) * | 2004-10-01 | 2008-11-11 | Microsoft Corporation | Transformation of componentized and extensible workflow to a declarative format |
US20060074714A1 (en) * | 2004-10-01 | 2006-04-06 | Microsoft Corporation | Workflow tracking based on profiles |
US7631291B2 (en) * | 2004-10-01 | 2009-12-08 | Microsoft Corporation | Declarative representation for an extensible workflow model |
US20060074735A1 (en) * | 2004-10-01 | 2006-04-06 | Microsoft Corporation | Ink-enabled workflow authoring |
US20060074704A1 (en) * | 2004-10-01 | 2006-04-06 | Microsoft Corporation | Framework to model cross-cutting behavioral concerns in the workflow domain |
US7693861B2 (en) * | 2005-06-28 | 2010-04-06 | Microsoft Corporation | Schematization of establishing relationships between applications |
US8069439B2 (en) * | 2006-03-30 | 2011-11-29 | Microsoft Corporation | Framework for modeling continuations in workflows |
US7739135B2 (en) | 2006-03-30 | 2010-06-15 | Microsoft Corporation | Asynchronous fault handling in process-centric programs |
US20070244910A1 (en) * | 2006-04-12 | 2007-10-18 | Microsoft Corporation | Business process meta-model |
US7945891B2 (en) * | 2006-04-12 | 2011-05-17 | Microsoft Corporation | Time business process validations within data context |
KR100922526B1 (ko) * | 2006-12-04 | 2009-10-20 | 한국전자통신연구원 | 비즈니스 프로세스 수행시 메타데이터 규정을 통한 데이터품질관리 방법 및 시스템 |
US20080172400A1 (en) * | 2007-01-11 | 2008-07-17 | Microsoft Corporation | Techniques to manage an entity model |
US9792563B1 (en) * | 2007-03-22 | 2017-10-17 | Workday, Inc. | Human resources system development |
US7739690B2 (en) * | 2007-04-26 | 2010-06-15 | Microsoft Corporation | Meta-container for model-based distributed applications |
US8020144B2 (en) | 2007-06-29 | 2011-09-13 | Microsoft Corporation | Metadata-based application deployment |
US8200604B2 (en) | 2007-06-29 | 2012-06-12 | Microsoft Corporation | Multi-platform business calculation rule language and execution environment |
US7908610B2 (en) * | 2007-07-31 | 2011-03-15 | Microsoft Corporation | Multi-threaded business programming library |
US9075863B2 (en) * | 2008-05-29 | 2015-07-07 | Honeywell International Inc. | Systems and methods for managing business objects |
US9037546B2 (en) * | 2010-03-25 | 2015-05-19 | Salesforce.Com, Inc. | System, method and computer program product for automatic code generation for database object deletion |
EP2616970A1 (en) | 2010-09-17 | 2013-07-24 | Oracle International Corporation | Method and apparatus for binding mobile device functionality to an application definition |
WO2012037572A1 (en) * | 2010-09-17 | 2012-03-22 | Oracle International Corporation | Recursive navigation in mobile customer relations management |
US9275165B2 (en) | 2010-09-17 | 2016-03-01 | Oracle International Corporation | Method and apparatus for defining an application to allow polymorphic serialization |
US8539006B2 (en) | 2010-11-01 | 2013-09-17 | Microsoft Corporation | Logical chart of accounts with hashing |
CN102662773B (zh) * | 2012-03-13 | 2014-05-07 | 中冶南方工程技术有限公司 | 多进程间结构化文档通信系统 |
US9679264B2 (en) * | 2012-11-06 | 2017-06-13 | Oracle International Corporation | Role discovery using privilege cluster analysis |
US11940999B2 (en) | 2013-02-08 | 2024-03-26 | Douglas T. Migliori | Metadata-driven computing system |
WO2014124243A2 (en) * | 2013-02-08 | 2014-08-14 | Automatic Data Capture Technologies Group, Inc. | Systems and methods for metadata-driven command processor and structured program transfer protocol |
US9336013B2 (en) | 2013-02-08 | 2016-05-10 | Automatic Data Capture Technologies Group, Inc. | Systems and methods for metadata-driven command processor and structured program transfer protocol |
US9514244B2 (en) | 2013-04-29 | 2016-12-06 | International Business Machines Corporation | Dynamic assignment of business logic based on schema mapping metadata |
US20150051957A1 (en) * | 2013-08-15 | 2015-02-19 | Oracle International Corporation | Measuring customer experience value |
US8930274B1 (en) | 2013-10-30 | 2015-01-06 | Google Inc. | Securing payment transactions with rotating application transaction counters |
US11416459B2 (en) | 2014-04-11 | 2022-08-16 | Douglas T. Migliori | No-code, event-driven edge computing platform |
CN104461621B (zh) * | 2014-11-28 | 2018-01-02 | 青岛海信宽带多媒体技术有限公司 | 一种更新属性信息的方法及装置 |
CN112559867B (zh) * | 2020-12-16 | 2023-11-03 | 北京百度网讯科技有限公司 | 业务内容输出方法、装置、设备、存储介质和程序产品 |
US20240289097A1 (en) * | 2023-02-23 | 2024-08-29 | Bank Of America Corporation | Hierarchical software processing using federated nodes |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6085198A (en) * | 1998-06-05 | 2000-07-04 | Sun Microsystems, Inc. | Integrated three-tier application framework with automated class and table generation |
US6621505B1 (en) * | 1997-09-30 | 2003-09-16 | Journee Software Corp. | Dynamic process-based enterprise computing system and method |
KR20040035674A (ko) * | 2001-07-06 | 2004-04-29 | 컴퓨터 어소시에이츠 싱크, 인코포레이티드 | 비즈니스 프로세스 정책 객체 |
KR20040040429A (ko) * | 2001-07-05 | 2004-05-12 | 컴퓨터 어소시에이트스 인터내쇼날 인코포레이티드 | 비즈니스 프로세스 폴리시 데이터의 변환 시스템 및 방법 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001027947A (ja) * | 1999-07-15 | 2001-01-30 | Sumitomo Metal Ind Ltd | ソフトウェア設計支援装置及び記録媒体 |
US7080089B2 (en) * | 2003-03-12 | 2006-07-18 | Microsoft Corporation | Customization of process logic in a software system |
US7730446B2 (en) * | 2003-03-12 | 2010-06-01 | Microsoft Corporation | Software business process model |
-
2004
- 2004-12-29 US US11/025,323 patent/US7433887B2/en not_active Expired - Fee Related
-
2005
- 2005-11-03 AU AU2005229697A patent/AU2005229697B2/en not_active Ceased
- 2005-11-17 KR KR1020050110276A patent/KR101219875B1/ko not_active IP Right Cessation
- 2005-11-24 CA CA002527803A patent/CA2527803A1/en not_active Withdrawn
- 2005-11-29 CN CN2005101287298A patent/CN1797449B/zh not_active Expired - Fee Related
- 2005-12-14 EP EP05112135A patent/EP1677243A1/en not_active Withdrawn
- 2005-12-21 JP JP2005368840A patent/JP5162094B2/ja not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6621505B1 (en) * | 1997-09-30 | 2003-09-16 | Journee Software Corp. | Dynamic process-based enterprise computing system and method |
US6085198A (en) * | 1998-06-05 | 2000-07-04 | Sun Microsystems, Inc. | Integrated three-tier application framework with automated class and table generation |
KR20040040429A (ko) * | 2001-07-05 | 2004-05-12 | 컴퓨터 어소시에이트스 인터내쇼날 인코포레이티드 | 비즈니스 프로세스 폴리시 데이터의 변환 시스템 및 방법 |
KR20040035674A (ko) * | 2001-07-06 | 2004-04-29 | 컴퓨터 어소시에이츠 싱크, 인코포레이티드 | 비즈니스 프로세스 정책 객체 |
Also Published As
Publication number | Publication date |
---|---|
EP1677243A1 (en) | 2006-07-05 |
AU2005229697A1 (en) | 2006-07-13 |
KR20060076184A (ko) | 2006-07-04 |
CN1797449B (zh) | 2011-03-23 |
JP2006190279A (ja) | 2006-07-20 |
JP5162094B2 (ja) | 2013-03-13 |
CA2527803A1 (en) | 2006-06-29 |
US20060143193A1 (en) | 2006-06-29 |
AU2005229697B2 (en) | 2010-09-30 |
US7433887B2 (en) | 2008-10-07 |
CN1797449A (zh) | 2006-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101219875B1 (ko) | 메타데이터 구동 비즈니스 로직 프로세싱을 위한 방법 및장치 | |
US7321894B2 (en) | Method and apparatus for building metadata driven software development kit | |
US10606576B1 (en) | Developer experience for live applications in a cloud collaboration platform | |
US7730446B2 (en) | Software business process model | |
CN100580667C (zh) | 利用表单类型生成表单的方法和装置 | |
US7577934B2 (en) | Framework for modeling and providing runtime behavior for business software applications | |
Johnson | Expert one-on-one J2EE design and development | |
Bouman et al. | Pentaho solutions | |
US8219919B2 (en) | Method for automating construction of the flow of data driven applications in an entity model | |
CN102656557B (zh) | 自动化企业软件开发 | |
US7739691B2 (en) | Framework for declarative expression of data processing | |
US7984115B2 (en) | Extensible application platform | |
US8396846B2 (en) | Database trigger modification system and method | |
US20100312592A1 (en) | Confirming enforcement of business rules specified in a data access tier of a multi-tier application | |
CN116450107B (zh) | 低代码平台二次开发软件的方法、装置、电子设备 | |
Lhotka et al. | Expert VB 2005 business objects | |
EP1498813A2 (en) | Design time validation of systems | |
US20140025439A1 (en) | Regression free business process management | |
Ouellette | Development with the Force. com platform: building business applications in the cloud | |
Popa et al. | Describing and Applying the Entity Framework from Simple Applications to Complex Scenarios. Case Study | |
CN115469847A (zh) | 微架构平台的构建方法、存储介质及电子设备 | |
Yadav | Windows presentation foundation application development for a movie theater | |
Malik et al. | Business Connectivity Services | |
Al Kiswani | Smart-EIS Towards an End-to-End Enterprise System Framework | |
Rossberg et al. | The Enterprise Application Architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |