KR102490422B1 - 멀티테넌트 애플리케이션 서버 환경에서 파티션들을 지원하는 시스템 및 방법 - Google Patents

멀티테넌트 애플리케이션 서버 환경에서 파티션들을 지원하는 시스템 및 방법 Download PDF

Info

Publication number
KR102490422B1
KR102490422B1 KR1020177002201A KR20177002201A KR102490422B1 KR 102490422 B1 KR102490422 B1 KR 102490422B1 KR 1020177002201 A KR1020177002201 A KR 1020177002201A KR 20177002201 A KR20177002201 A KR 20177002201A KR 102490422 B1 KR102490422 B1 KR 102490422B1
Authority
KR
South Korea
Prior art keywords
partition
resource group
partitions
applications
resources
Prior art date
Application number
KR1020177002201A
Other languages
English (en)
Other versions
KR20170021874A (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 KR20170021874A publication Critical patent/KR20170021874A/ko
Application granted granted Critical
Publication of KR102490422B1 publication Critical patent/KR102490422B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/783Distributed allocation of resources, e.g. bandwidth brokers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1025Dynamic adaptation of the criteria on which the server selection is based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Abstract

일 실시예에 따라, 멀티테넌트 애플리케이션 서버 환경에서 파티션들을 지원하는 시스템 및 방법이 서술된다. 일 실시예에 따라, 애플리케이션 서버 관리자(예를 들어, WLS 관리자)는 파티션들을 생성 또는 삭제할 수 있다; 반면에, 파티션 관리자는 파티션의 여러 양상들을 관리할 수 있다. 예를 들어, 파티션 관리자는 리소스 그룹들을 생성하고, 특정 파티션에 애플리케이션들을 배치하며, 그리고 파티션에 대한 특정 영역들을 참조할 수 있다. 리소스 그룹들은 상기 도메인에서 전체적으로 정의될 수 있거나 또는 파티션에 특정될 수 있다. 애플리케이션들은, 상기 도메인 레벨에서 리소스 그룹 템플릿에 배치될 수 있거나 또는 파티션에 스코프되거나 상기 도메인에 스코프되는 리소스 그룹에 배치될 수 있다. 상기 시스템은, 테넌트에 의한 사용을 위해, 하나 이상의 파티션들을 상기 테넌트와 선택적으로 관련시킬 수 있다.

Description

멀티테넌트 애플리케이션 서버 환경에서 파티션들을 지원하는 시스템 및 방법{SYSTEM AND METHOD FOR SUPPORTING PARTITIONS IN A MULTITENANT APPLICATION SERVER ENVIRONMENT}
저작권 공지
본 특허 문서의 개시 내용 중 일부는 저작권 보호를 받는 내용을 포함한다. 저작권 소유자는 미국 특허및 상표청의 특허 파일 혹은 레코드들에 표시되는 바와 같은, 특허 문헌 또는 특허 개시내용에 대한 팩시밀리 재생산을 반대하지 않지만, 이와 다른 경우에는 저작권의 모든 권리를 보유한다.
기술분야
본 발명의 실시예들은, 일반적으로, 애플리케이션 서버들 및 클라우드 환경들에 관한 것으로, 특히, 멀티테넌트 애플리케이션 서버 환경에서 파티션들을 지원하는 시스템 및 방법에 관한 것이다.
애플리케이션 서버들은, 일반적으로, 소프트웨어 애플리케이션들이 배치되고 구현될 수 있는 관리되는 환경을 제공한다. 클라우드-기반 환경들은, 애플리케이션이 구현되도록 하고 그리고 클라우드에 의해 제공되는 분산된 리소스들의 이점을 갖는다. 그와 같은 환경들은 다수의 사용자들 또는 테넌트들을 지원할 수 있고, 그러한 환경들 중 일부는, 상기 사용자 또는 테넌트에 특별한 특정 요건들을 가질 수 있다. 이러한 것들은, 본 발명의 실시예들이 사용될 수 있는 환경들의 타입들의 일부 예들이다.
일 실시예에 따라, 멀티테넌트 애플리케이션 서버 환경에서 파티션들을 지원하는 시스템 및 방법이 서술된다. 일 실시예에 따라, 애플리케이션 서버 관리자(예를 들어, WLS 관리자)는 파티션들을 생성 또는 삭제할 수 있다; 반면에, 파티션 관리자는 파티션의 여러 양상들을 관리할 수 있다. 예를 들어, 파티션 관리자는 리소스 그룹들을 생성하고, 특정 파티션에 애플리케이션들을 배치하며, 그리고 파티션에 대한 특정 영역들을 참조할 수 있다. 리소스 그룹들은 상기 도메인에서 전체적으로 정의될 수 있거나 또는 파티션에 특정될 수 있다. 애플리케이션들은, 상기 도메인 레벨에서 리소스 그룹 템플릿에 배치될 수 있거나 또는 파티션에 스코프되거나 상기 도메인에 스코프되는 리소스 그룹에 배치될 수 있다. 상기 시스템은, 테넌트에 의한 사용을 위해, 하나 이상의 파티션들을 상기 테넌트와 선택적으로 관련시킬 수 있다.
도 1은 일 실시예에 따른 애플리케이션 서버, 클라우드, 또는 다른 환경에서의 멀티-테넌시(multi-tenancy)를 지원하는 시스템을 도시한다.
도 2는 일 실시예에 따른 애플리케이션 서버, 클라우드, 또는 다른 환경에서의 멀티-테넌시를 지원하는 시스템을 추가로 도시한다.
도 3은 일 실시예에 따른 애플리케이션 서버, 클라우드, 또는 다른 환경에서의 멀티-테넌시를 지원하는 시스템을 추가로 도시한다.
도 4는 일 실시예에 따른 예시적인 멀티-테넌트 환경에서 사용되는 도메인 구성을 도시한다.
도 5는 일 실시예에 따른 예시적인 멀티-테넌트 환경을 추가로 도시한다.
도 6은 일 실시예에 따른 애플리케이션 서버, 클라우드, 또는 다른 환경에서의 파티션들의 사용을 도시한다.
도 7은 일 실시예에 따른 애플리케이션 서버, 클라우드, 또는 다른 환경에서의 파티션들의 사용을 추가로 도시한다.
도 8은 일 실시예에 따른 애플리케이션 서버, 클라우드, 또는 다른 환경에서의 파티션들을 사용하는 방법을 도시한다.
일 실시예에 따른, 멀티-테넌트 애플리케이션 서버 환경에서 파티션들을 지원하는 시스템 및 방법이 여기에 개시된다. 일 실시예에 따라, 애플리케이션 서버 관리자(예를 들어, WLS 관리자)는 파티션들을 생성하거나 또는 제거할 수 있다; 반면에, 파티션 관리자는 다양한 양상들의 파티션을 관리할 수 있다. 예를 들어, 리소스 그룹들을 생성하고, 특정 파티션에서 애플리케이션들을 배치하고, 파티션에 대해 특정 영역들을 레퍼런스한다. 리소스 그룹들은 도메인에서 전체적으로 정의될 수 있거나 또는 하나의 파티션에 특정될 수 있다. 애플리케이션들은, 상기 도메인 레벨에서 리소스 그룹 템플릿에 배치될 수 있거나, 또는 하나의 파티션에 스코프(scope)되거나 상기 도메인에 스코프되는 리소스 그룹에 배치될 수 있다. 상기 시스템은, 테넌트에 의한 사용을 위해, 하나 이상의 파티션들을 하나의 테넌트와 선택적으로 관련시킬 수 있다.
애플리케이션 서버(예를 들어, 멀티- 테넌트 , MT) 환경
도 1은 일 실시예에 따른 애플리케이션 서버, 클라우드, 또는 다른 환경에서의 멀티-테넌시를 지원하는 시스템을 도시한다.
도 1에 도시된 것처럼, 일 실시예에 따라, 애플리케이션 서버(예를 들어, 멀티-테넌트, MT) 환경(100) 또는 소프트웨어 애플리케이션들의 배치 및 실행을 가능하는 다른 컴퓨팅 환경은, 애플리케이션 서버 도메인을 정의하기 위해 실행시간(runtime)에서 사용되는 도메인(102) 구성을 포함하고 그리고 상기 도메인(102) 구성에 따라 동작도록 구성될 수 있다.
일 실시예에 따라, 애플리케이션 서버는 실행시간에서 사용을 위해 정의되는 하나 이상의 파티션들(104)을 포함할 수 있다. 각 파티션은, 전체적으로 고유한 파티션 식별자(ID) 및 파티션 구성과 관련될 수 있고, 그리고 리소스 그룹 템플릿에 대한 레퍼런스(126) 및/또는 파티션-특정 애플리케이션들 또는 리소스들(128)과 함께, 하나 이상의 리소스 그룹들(124)을 더 포함할 수 있다. 도메인-레벨 리소스 그룹들, 애플리케이션들 및/또는 리소스들(140)은, 선택적으로 리소스 그룹 템플릿에 대한 레퍼런스를 가지고, 도메인 레벨에서 또한 정의될 수 있다.
각 리소스 그룹 템플릿(160)은, 하나 이상의 애플리케이션들 A(162), B(164), 리소스들 A(166), B(168) 및/또는 다른 배치가능한 애플리케이션들 또는 리소스들(170)을 정의할 수 있고, 그리고 리소스 그룹에 의해 레퍼런스될 수 있다. 예를 들어, 도 1에 도시된 것처럼, 파티션(104) 내의 리소스 그룹(124)은 리소스 그룹 템플릿(160)을 레퍼런스(190)할 수 있다.
일반적으로, 시스템 관리자는, 파티션들, 도메인-레벨 리소스 그룹들 및 리소스 그룹 템플릿들 및 보안 영역들을 정의할 수 있다. 반면에, 파티션 관리자는, 예를 들어, 파티션-레벨 리소스 그룹들을 생성하고, 상기 파티션에 애플리케이션들을 배치하거나 또는 상기 파티션에 대한 특정 영역들을 레퍼런스함으로써, 그것들 자체의 양상들을 정의할 수 있다.
도 2는, 일 실시예에 따른, 애플리케이션 서버, 클라우드 또는 다른 환경에서의 멀티-테넌시를 지원하는 시스템을 추가로 도시한다.
도 2에 도시된 것처럼, 일 실시예에 따라, 파티션(202)은, 예를 들어, 리소스 그룹 템플릿(210)에 대한 레퍼런스(206)를 포함하는 리소스 그룹(205), 가상 타겟(예를 들어, 가상 호스트) 정보(207) 및 PDB(pluggable databse) 정보(208)를 포함할 수 있다. 리소스 그룹 템플릿(예를 들어, 210)은, 예를 들어, 복수의 애플리케이션들 A(211) 및 B(212)과 함께, 자바 메시지 서버(JMS) 서버(213), 저장 전달(store-and-forward; SAF) 에이전트(215), 메일 세션 컴포넌트(216), 또는 자바 데이터베이스 연결(JDBC) 리소스(217)와 같은 리소스들을 정의할 수 있다.
도 2에 도시된 리소스 그룹 템플릿은 일 예로 제공된다. 다른 실시예들에 따라, 서로 다른 타입들의 리소스 그룹 템플릿들 및 요소들이 제공될 수 있다.
일 예에 따라, 파티션(예를 들어, 202) 내의 리소스 그룹이 특정 리소스 그룹 템플릿(예를 들어, 210)을 레퍼런스(220)할 때, 특정 파티션과 관련되는 정보는, 파티션-특정 정보(230), 예를 들어, 파티션-특정 PDB 정보를 나타내도록 레퍼런싱된 리소스 그룹 템플릿과 조합하여 사용될 수 있다. 파티션-특정 정보는, 이후, 파티션에 의한 사용을 위해, 리소스들, 예를 들어, PDB 리소스를 구성하기 위해 애플리케이션 서버에 의해 사용될 수 있다. 예를 들어, 파티션(202)과 관련되는 파티션-특정 PDB 정보는, 그러한 파티션에 의한 사용을 위해, 적절한 PDB(238)을 갖는 컨테이너 데이터베이스(CDB)(236)를 구성(232)하도록 애플리케이션 서버에 의해 사용될 수 있다.
유사하게, 일 실시예에 따라, 특정 파티션과 관련되는 가상 타겟 정보는, 상기 파티션에 의한 사용을 위해, 파티션-특정 가상 타겟, 예를 들어, baylandurgentcare.com를 정의(239)하기 위해 사용될 수 있고, 이후, 이 aylandurgentcare.com는 URL(uniform resource locator), 예를 들어, http://baylandurgentcare.com을 통해 액세스가능 할 수 있다.
도 3은, 일 실시예에 따른, 애플리케이션 서버, 클라우드 또는 다른 환경에서의 멀티-테넌시를 지원하는 시스템을 추가로 도시한다.
일 실시예에 따라, config.xml 구성 파일과 같은 시스템 구성은, 그러한 파티션과 관련된 리소스 그룹들에 대한 그룹 요소들 및/또는 다른 파티션 특성들을 포함하는 파티션을 정의하기 위해 사용된다. 값들은 속성 명칭(property name)/값 쌍들을 사용하여 파티션-마다 특정될 수 있다.
일 실시예에 따라, 복수의 파티션들은, 관리된 서버/클러스터(242) 내에서, 또는 CDB(243)에 액세스를 제공할 수 있고 그리고 웹 티어(web tier)(244)를 통해 액세스할 수 있는 유사한 환경 내에서 실행될 수 있다. 이는, 예들 들어, 도메인 또는 파티션이 (CDB의) 하나 이상의 PDB들에 관련되게 한다.
일 실시예에 따라, 복수의 파티션들 각각, 이 예에서는, 파티션 A(250) 및 파티션 B(260)이 그러한 파티션과 관련된 복수의 리소스들을 포함하도록 구성될 수 있다. 예를 들어, 파티션 A는 리소스 그룹(251)을 포함하도록 구성될 수 있고, 이 리소스 그룹(251)은, 애플리케이션 A1(252), 애플리케이션 A2(254) 및 JMS A(256)과 함께, PDB A(259)와 관련되는 데이터소스 A(257)를 포함하며, 상기 파티션은 가상 타겟 A(258)을 통해 액세스가능하다. 유사하게, 파티션 B는 리소스 그룹(261)을 포함하도록 구성될 수 있고, 이 리소스 그룹(261)은, 애플리케이션 B1(262), 애플리케이션 B2(264) 및 JMS B(266)과 함께, PDB B(269)와 관련되는 데이터소스 B(267)를 포함하며, 상기 파티션은 가상 타겟 B(268)을 통해 액세스가능하다.
다수의 상기 예들이 CDB들 및 PDB들의 사용을 나타내는 반면, 다른 실시예들에 따라, 다른 타입들의 멀티-테넌트 또는 비(non)-멀티-테넌트 데이터베이스들이 지원될 수 있으며, 특정 구성이, 예를 들어, 스키마들의 사용 또는 서로 다른 데이터베이스들의 사용을 통해, 각 파티션에 대해 제공될 수 있다.
리소스들
일 실시예에 따라, 리소스는, 리스템 리소스, 애플리케이션, 또는 환경의 도메인에 배치될 수 있는 다른 리소스 또는 객체이다. 예를 들어, 일 실시예에 따라, 리소스는, 애플리케이션, JMS, JDBC, 자바메일, WLDF, 데이터 소스, 또는 서버, 클러스터 또는 다른 애플리케이션 서버 타겟에 배치될 수 있는 다른 시스템 리소스 또는 다른 타입의 객체일 수 있다.
파티션들
일 실시예에 따라, 파티션은, 실행시간 및 관리적인 세분 또는 파티션 식별자(ID) 및 구성과 관련될 수 있는 도메인의 슬라이스이고, 그리고 애플리케이션들을 포함할 수 있고 그리고/또는 리소스 그룹들 및 리소스 그룹 템플릿들의 사용을 통한 도메인-와이드 리소스들을 나타낼 수 있다.
일반적으로, 파티션은 자신을 애플리케이션들을 포함할 수 있고, 리소스 그룹 템플릿들을 통해 도메인 와이드 애플리케이션들을 나타낼 수 있으며, 그 자신의 구성을 가질 수 있다. 분할가능한 엔티티들은 리소스들, 예를 들어, JMS, JDBC, 자바메일, WLDF 리소스들 및 다른 컴포넌트들(예를 들어, JNDI 네임스페이스, 네트워크 트래픽, 네트워크 관리자들 및 보안 정책들 및 영역들)을 포함할 수 있다. 멀티-테넌트 환경의 콘텍스트에서, 시스템은, 테넌트와 관련되는 관리적인 그리고 실행시간 양상들에 테넌트 액세스를 제공하도록 구성될 수 있다.
일 실시예에 따라, 파티션 내의 각 리소스 그룹은 선택적으로 리소스 그룹 템플릿을 레퍼런스할 수 있다. 파티션은 다수의 리소스 그룹들을 가질 수 있고, 그리고 리소스 그룹들 각각은 리소스 그룹 템플릿을 레퍼런스할 수 있다. 각 파티션은 구성 데이터에 대한 속성들을 정의할 수 있고, 상기 구성 데이터는 파티션들의 리소스 그룹들이 나타내는 리소스 그룹 템플릿들에 특정되지 않는다. 이것은, 파티션으로 하여금, 상기 파티션에서 사용을 위한 특정 값들에 대해, 리소스 그룹 템플릿에서 정의된 배치가능한 리소스들의 바인딩(binding)으로서 동작하게 한다. 일부 경우들에서, 파티션은 리소스 그룹 템플릿에 의해 특정되는 구성 정보를 오버라이드(override)할 수 있다.
일 실시예에 따라, 예를 들어, config.xml 구성 파일에 의해 정의되는 파티션 구성은 복수의 구성 요소들, 예를 들어, 상기 파티션들 정의하는 속성들 및 자 요소들(child elements)을 포함하는 "파티션(partition)"; 상기 파티션에 배치되는 애플리케이션들 및 리소스들을 포함하는 "리소스-그룹(resource-group)"; 상기 템플릿에 의해 정의되는 애플리케이션들 및 리소스들을 포함하는 "리소스-그룹-템플릿(resource-group-template)"; 데이터베이스-특정 서비스 명칭, 사용자 명칭 및 패스워드를 포함하는 "jdbc-시스템-리소스-오버라이드(jdbc-system-resource-override)"; 및 리소스 그룹 템플릿들에서 매크로 교체에 위해 사용될 수 있는 속성 키 값들을 포함하는 "파티션-속성들(partition-properties)"을 포함할 수 있다.
스타트업(startup) 때, 상기 시스템은, 리소스 그룹 템플릿으로부터, 각 리소스에 대한 파티션-특정 구성 요소들을 발생시키기 위해 구성 파일에 의해 제공되는 정보를 사용할 수 있다.
리소스 그룹들
일 실시예에 따라, 리소스 그룹은, 도메인 또는 파티션 레벨 중 하나에서 정의될 수 있고 그리고 리소스 그룹 템플릿을 레퍼런스할 수 있는 배치가능한 리소스들의 지명되고 충분히 자격(fully-qualified)이 있는 수집이다. 리소스 그룹 내의 리소스들은, 관리자가 시작하거나 그러한 리소스들에 접속할 필요가 있는 정보, 예를 들어, 데이터 소스에 접속하기 위한 크리덴셜들 또는 애플리케이션에 대한 타겟팅 정보 모두를 제공한다는 점에서 충분히 자격이 있는 것으로 고려된다.
시스템 관리자는 도메인 레벨에서 또는 파티션 레벨에서 리소스 그룹들을 선언할 수 있다. 도메인 레벨에서, 리소스 그룹은 리소스들에 관련된 그룹에 편리한 길을 제공한다. 시스템은, 그룹화되지 않은 리소스들과 동일한 도메인-레벨 리소스 그룹에서 선언된 리소스들을 관리할 수 있어, 상기 리소스들은 시스템 스타트-업동안 시작될 수 있고 그리고 시스템 셧-다운 동안 정지될 수 있다. 관리자는, 또한 그룹 내의 리소스를 개별적으로 정지, 시작 또는 제거할 수 있고 그리고 그룹을 작동시킴으로써 암시적으로 그룹 내의 모든 리소스들을 작동시킬 수 있다. 예를 들어, 리소스 그룹을 정지시키는 것은 아직 정지되지 않은 그룹 내의 모든 리소스들을 정지시키고; 상기 리소스 그룹을 시작하는 것은 아직 시작하지 않은 그룹 내의 어떤 리소스들을 시작하고; 그리고 상기 리소스 그룹을 제거하는 것은 그룹 내의 포함된 모든 리소스들을 제거한다.
파티션 레벨에서, 시스템 또는 파티션 관리자는, 어떤 보안 제한들의 대상인 파티션 내의 0 또는 그 이상의 리소스 그룹들을 구성할 수 있다. 예를 들어, SaaS 사용의 경우에, 다양한 파티션-레벨 리소스 그룹들은 도메인-레벨 리소스 그룹 템플릿들을 인용할 수 있다; 반면에, PaaS 사용의 경우에, 리소스 그룹 템플릿들을 인용하지 않는 파티션-레벨 리소스 그룹들이 생성될 수 있지만, 대신, 애플리케이션들 및 단지 파티션 내에서만 이용가능하게 만들어진 애플리케이션에 관련된 리소스들을 나타낸다.
일 실시예에 따라, 리소스 그룹화는, 애플리케이션들 및 도메인 내에서 별개의 관리 유닛으로서 애플리케이션들이 사용하는 리소스들을 함께 그룹화하기 위해 사용될 수 있다. 예를 들어, 아래에서 서술된 의료 기록들(MedRec) 애플리케이션에서, 리소스 그룹화는 의료 기록 애플리케이션 및 의료 기록 애플리케이션 리소스들을 정의한다. 다수의 파티션들은 동일한 의료 기록 리소스 그룹을 실행할 수 있고 그리고 각 파티션은 파티션-특정 구성 정보를 사용하여, 각 의료 기록 인스턴스의 일부인 애플리케이션들은 각 파티션에 특정된다.
리소스 그룹 템플릿들
일 실시예에 따라, 리소스 그룹 템플릿은, 도메인 레벨에서 정의되고, 리소스 그룹으로부터 레퍼런싱될 수 있는 배치가능한 리소스들의 수집이며, 그리고 이러한 리소스들을 활성화시키는데 요구되는 정보의 일부는 템플릿 자체의 일부로서 저장될 수 없어, 파티션 레벨 구성의 사양을 지원한다. 도메인은 리소스 그룹 템플릿들의 일부를 포함할 수 있고, 리소스 그룹 템플릿들 각각은, 예를 들어, 하나 이상의 관련된 자바 애플리케이션들 및 이러한 애플리케이션들이 의존하는 리소스들을 포함할 수 있다. 그와 같은 리소스들에 대한 정보의 일부는 모들 파티션들에 걸쳐 동일할 수 있는 반면에, 다른 정보는 파티션마다 달라질 수 있다. 모든 구성이 도메인 레벨에서 특정될 필요는 없다 - 대신, 파티션 레벨 구성은, 매크로들의 사용 또는 속성 명칭/값 쌍들을 통해 리소스 그룹 템플릿에서 특정될 수 있다.
일 실시예에 따라, 특별한 리소스 그룹 템플릿은 하나 이상의 리소스 그룹들에 의해 레퍼런스될 수 있다. 일반적으로, 어떤 특정 파티션내에서, 리소스 그룹 템플릿은 한번에 하나의 리소스 그룹에 의해 레퍼런스될 수 있다. 즉, 리소스 그룹 템플릿은 동일한 파티션내에서 다수의 리소스 그룹들에 의해 동시에 레퍼런스될 수 없다; 하지만, 리소스 그룹 템플릿은 서로 다른 파티션에서 다른 리소스 그룹에 의해 동일한 시간에서 레퍼런스될 수 있다. 리소스 그룹을 포함하는 객체, 예를 들어, 도메인 또는 파티션은, 리소스 그룹 템플릿에서의 어떤 토큰들의 값을 설정하기 위해 속성 명칭/값 할당들을 사용할 수 있다. 상기 시스템이 레퍼런싱 리소스 그룹을 사용하여 리소스 그룹 템플릿을 활성화시킬 때, 상기 시스템이 상기 토큰들을 객체를 포함하는 리소스 그룹에서 설정된 값들로 대체할 수 있다. 일부 경우들에서, 상기 시스템은, 또한, 각 파티션/템플릿 조합에 대한 실행시간 구성을 발생시키기 위해 정적으로 구성되는 리소스 그룹 템플릿들 및 파티션들을 사용할 수 있다.
예를 들어, SaaS 사용의 경우에, 상기 시스템은, 동일한 애플리케이션들 및 리소스들을 사용하는 각 파티션에 대해 한번을 활성화시키는 것을 포함하여, 동일한 애플리케이션들 및 리소스들을 여러번 활성화시킬 수 있다. 관리자가 리소스 그룹 템플릿을 정의할 때, 다른 곳에서 공급될 정보를 나타내기 위해 토큰들을 사용할 수 있다. 예를 들어, CRM-관련 데이터 리소스에 접속하기 위해 사용하는 사용자명칭은,
Figure 112017008450391-pct00001
으로서 리소스 그룹 템플릿에 표시될 수 있다.
테넌트들
일 실시예에 따라, 멀티-테넌트(MT) 애플리케이션 서버 환경과 같은 멀티-테넌트 환경에서, 테넌트는, 하나 이상의 파티션들 및/또는 하나 이상의 테넌트-인식 애플리케이션들에 의해 또는 하나 이상의 파티션들 및/또는 하나 이상의 테넌트-인식 애플리케이션들에 관련된 다른 것에 의해 표시될 수 있는 엔티티이다.
예를 들어, 테넌트들은 서로 다른 외부 회사들, 또는 특정한 기업 내의 서로 다른 부서들(예를 들어, HR 및 회계 부서)과 같은 개별 사용자 조직들을 나타낼 수 있고, 상기 개별 사용자 조직들 각각은 서로 다른 파티션과 관련될 수 있다. 전체적으로 고유한 테넌트 신원(테넌트 ID)은, 특정 시점에서, 특정 테넌트와 특정 사용자의 관련이다. 상기 시스템은, 예를 들어, 사용자 신원 저장소를 참조함으로써 특정 사용자가 사용자 신원을 소유하는 어떤 테넌트를 도출할 수 있다. 사용자 신원은, 상기 시스템으로 하여금, 사용자가 수행하도록 인가받은 어떤 행동들을 하게끔 강제할 수 있다; 예를 들어, 상기 인가받은 행동들은 사용사가 어떤 테넌트를 소유할 수 있는 것을 포함하지만, 이에 한정되지는 않는다.
일 실시예에 따라, 상기 시스템은 각자로부터 상이한 테넌트들의 관리 및 실행시간의 격리(isolation)을 가능하게 한다. 예를 들어, 테넌트들은 애플리케이션들의 일부 행위들 및 테넌트들이 액세스하는 리소스들을 구성할 수 있다. 상기 시스템은 다른 테넌트에 속한 아티펙트들을 관리할 수 없고; 그리고 실행시간에, 특정 테넌트 측에서 작동하는 애플리케이션들은 상기 테넌트와 관련된 리소스들만을 참조하고 다른 테넌트들과 관련된 리소스들은 참조하지 않는 것을 명확하게 한다.
일 실시예에 따라, 테넌트-비인식 애플리케이션은, 테넌트들을 처리하는 어떤 로직도 명시적으로 포함하지 않는 것이므로, 애플리케이션이 사용하는 어떤 리소스들은, 애플리케이션이 응답하고 있는 요청을 제공받는 사용자가 어떤 사용자인지 관계없이 액세스가능할 수 있다. 대조적으로, 테넌트-인식 애플리케이션은 테넌트들을 명시적으로 다루는 로직을 포함한다. 예를 들어, 사용자의 신원에 기초하여, 상기 애플리케이션은, 테넌트-특정 리소스들에 액세스하기 위해 상기 정보를 소유하고 이용하는 테넌트를 도출할 수 있다.
일 실시예에 따라, 상기 시스템은, 사용자들로 하여금, 테넌트-인식되도록 명시적으로 기재된 애플리케이션들을 배치가능하게 하여, 애플리케이션 개발자들이 현재 테넌트의 테넌트 ID를 획득할 수 있다. 테넌트-인식 애플리케이션은, 이후, 애플리케이션의 단일 인스턴스를 사용하는 다수의 테넌트들을 다루기 위해 테넌트 ID를 사용할 수 있다.
예를 들어, 한 명의 의사의 사무실 또는 병원을 지원하는 의료 기록 애플리케이션은 2개의 서로 다른 파티션들 또는 테넌트들, 예를 들어, 베이랜드 응급실 테넌트 및 벨리 헬스 테넌트에 노출될 수 있고, 개의 서로 다른 파티션들 또는 테넌트들 각각은, 기본 애플리케이션 코드를 변경시키지 않으면서 개별 PDB들과 같은 개별 테넌트-특정 리소스들에 액세스할 수 있다.
예시적인 도메인 구성 및 멀티- 테넌트 환경
일 실시예에 따라, 애플리케이션들은 도메인 레벨에서 리소스 그룹 템플릿에 배치될 수 있거나, 또는 파티션 또는 도메인에 스코프되는 리소스 그룹에 배치될 수 있다. 애플리케이션 구성은, 애플리케이션 또는 파티션마다 특정된 배치 계획들을 사용하여 오버라이드될 수 있다. 배치 계획들은 또한 리소스 그룹의 일부로서 특정될 수 있다.
도 4는 일 실시예에 따른 예시적인 멀티-테넌트 환경에서 사용되는 도메인 구성을 도시한다.
일 실시예에 따라, 상기 시스템이 파티션을 시작할 때, 제공된 구성에 따라 각각의 데이터베이스 인스턴스들에, 각 파티션에 대해 하나씩 포함하는 가상 타겟들(예를 들어, 가상 호스트들) 및 연결 풀들을 상기 시스템이 생성한다.
통상적으로, 각 리소스 그룹 템플릿은, 하나 이상의 관련된 애플리케이션들 및 그러한 애플리케이션들이 의존하는 리소스들을 포함할 수 있다. 각 파티션은, 리소스 그룹 템플릿들에서 배치가능한 리소스들의 바인딩을 상기 파티션과 관련되는 특정 값들에 제공함으로써, 각 파티션이 참조하는 리소스 그룹 템플릿들에서 특정되지 않는 구성 데이터를 제공할 수 있다; 일부 경우들에서는, 상기 파티션은 리소스 그룹 템플릿에 의해 특정되는 특정 구성 정보를 오버라이드한다. 이러한 것은, 시스템으로 하여금, 각 파티션이 정의하는 속성값들을 사용하여 각 파티션에 대해 리소스 그룹 템플릿에 의해 표시되는 애플리케이션을 상이하게 활성화시킬 수 있다.
일부 인스턴스들에서, 리소스 그룹 템플릿들을 참조하지 않는 리소스 그룹들을 참조하지 않거나 또는 그 자신의 파티션-스코프된 배치가능한 리소스들을 직접 정의하는 리소스 그룹들을 포함할 수 있다. 하나의 파티션 내에서 정의되는 애플리케이션들 및 데이터 소스들은 일반적으로 오직 그 하나의 파티션에서만 이용가능하다. 리소스들은, 리소스들이 파티션:<파티션 명칭(partitionName)>/<리소스 JNID 명칭(resource JNDI name)>, 또는 도메인:<리소스 JNDI 명칭(resource JNDI name)>을 사용하여 파티션들로부터 액세스될 수 있도록 배치될 수 있다.
예를 들어, 의료 기록 애플리케이션은, 복수의 자바 애플리케이션들, 데이터 소스, JMS 서버 및 메일 세션을 포함할 수 있다. 다수의 테넌트들에 대한 의료 기록 애플리케이션을 구동하기 위해, 상기 시스템은, 상기 템플릿에서 그러한 배치가능한 리소스들을 선언하여, 단일 의료 기록 리소스 그룹 템플릿(286)을 정의할 수 있다.
도메인-레벨 배치가능한 리소스들과 대조적으로, 리소스 그룹 템플릿에서 선언되는 배치가능한 리소스들은, 템플릿에서 충분히 구성될 수 없거나 또는 있는 그대로 활성화될 수 없는 바, 이는 배치가능한 리소스들은 일부 구성 정보가 결핍되어 있기 때문이다.
예를 들어, 의료 기록은 애플리케이션들에 의해 사용되는 데이터 소스를 선언할 수 있지만, 데이터베이스에 접속을 위한 URL을 특정할 수 없다. 서로 다른 테넌트들과 관련된 파티션들, 예를 들어, 파티션 BUC-A(290)(베이랜드 응급실, BUC) 및 파티션 VH-A(290)(벨리 헬스, VH)는, 의료 기록 리소스 그룹 템플릿을 레퍼런스하는(296, 297) 의료 기록 리소스 그룹(293, 294)을 각 리소스 그룹 템플릿이 포함함으로써, 하나 이상의 리소스 그룹 템플릿들을 레퍼런스할 수 있다. 이후 상기 레퍼런스는 이후, 베이랜드 응급실 테넌트에 의한 사용을 위해 BUC-A 파티션과 관련되는 가상 호스트 baylandurgentcare.com(304) 및 벨리 헬스 테넌트에 의한 사용을 위해 VH-A 파티션과 관련되는 가상 호스트 valleyhealth.com(380)을 포함하는, 각 테넌트에 대한 가상 타겟들/가상 호스트들을 생성(302, 306)하기 위해 사용될 수 있다.
도 5는 일 실시예에 따른 예시적인 멀티-테넌트 환경을 추가로 도시한다. 도 5에 도시된 것처럼, 2개의 파티션들이 일 실시예에 따라 의료 기록 그룹 템플릿을 레퍼런스하는 상기의 예에 계속하여, 서블릿 엔진(310)은, 복수의 테넌트 환경들, 이 예에서, 베이랜드 응급실 의사 테넌트 환경(320) 및 벨리 헬스 의사 테넌트 환경(330)을 지원하기 위해 사용될 수 있다.
일 실시예에 따라, 각 파티션(321, 331)은, 그러한 테넌트 환경에 대한 인입하는 트래픽을 수용하기 위한 서로 다른 가상의 타겟을 정의할 수 있고, 그리고 상기 파티션 및 그것의 리소스들(324, 334)(이 예에서는, 베이랜드 응급실 데이터베이스 또는 밸리 헬스 데이터 각각을 포함)에 접속하기 위한 서로 다른 URL(322, 332)을 정의할 수 있다. 상기 데이터베이스 인스턴스는 호환가능한 스키마들을 사용할 수 있고, 이는 동일한 애플리케이션 코드가 두 개의 데이터베이스들에 대해 실행될 것이기 때문이다. 시스템이 파티션들을 시작할 때, 상기 시스템은, 각 데이터베이스 인스턴스들에 대한 가상 타겟들 및 접속 풀들을 생성할 수 있다.
파티션 -관련 피처들
일 실시예에 따라, 애플리케이션 서버 관리자(예를 들어, WLS 관리자)는 파티션들을 생성 또는 제거할 수 있다; 반면에 파티션 관리자는 파티션의 여러 양상들을 관리할 수 있다, 예를 들어, 리소스 그룹들을 생성하고, 특정 파티션에 대한 애플리케이션들을 배치하며, 그리고 파티션에 대한 특정 영역들을 레퍼런스할 수 있다. 리소스 그룹들은 도메인에서 전체적으로 정의될 수 있거나, 또는 파티션에 특정될 수 있다. 애플리케이션들은 도메인 레벨에서 리소스 그룹 템플릿에 배치될 수 있거나, 또는 파티션에 스코프되거나 또는 도메인에 스코프되는 리소스 그룹에 배치될 수 있다. 상기 시스템은, 상기 테넌트에 의한 사용을 위해, 하나 이상의 파티션들을 테넌트와 선택적으로 관련시킬 수 있다.
도 6은 일 실시예에 따른 애플리케이션 서버, 클라우드, 또는 다른 환경에서의 파티션들의 사용을 도시한다. 도 6에 도시된 것처럼, 일 실시예에 따라, 제1 또는 특정 파티션 A(400)는, 파티션 ID(402), 선택적인 리소스 그룹 템플릿 레퍼런스(406)을 갖는 리소스 그룹(404), 및/또는 하나 이상의 파티션-특정 리소스 그룹들, 애플리케이션들 또는 리소스들(410)과 관련될 수 있다. 특정 리소스 그룹 템플릿 A(420)은, 하나 이상의 애플리케이션들(422), 리소스들(424) 또는 리소스 구성 토큰들(426)을 정의할 수 있어, 파티션(예를 들어, 파티션 A)의 리소스 그룹이 레퍼런스(430)할 때, 그러한 리소스 그룹 템플릿, 애플리케이션들, 리소스들 및 리소스 구성 토큰들은, 가상 타겟 정보(412)을 정의하는 것 및 가상 타겟(438)(예를 들어, baylandurgentcare.com)과 상기 리소스 그룹을 관련시키는 것을 포함하는, 리소스 그룹을 구성시키는 것(420)을 위해 사용될 수 있고, 결국, 타겟 시스템(440)(예를 들어, 컴퓨터 서버 또는 클러스터)과 관련된다.
도 7은 일 실시예에 따른 애플리케이션 서버, 클라우드, 또는 다른 환경에서의 파티션들의 사용을 추가로 도시한다. 도 7에 도시된 것처럼, 일 실시예에 따라, 제2 파티션 B(450)은, 유사하게, 파티션 ID(452), 선택적인 리소스 그룹 템플릿 레퍼런스(456)을 갖는 리소스 그룹(454) 및/또는 하나 이상의 파티션-특정 리소스 그룹들, 애플리케이션들 또는 리소스들(460)과 관련될 수 있다. 제2 리소스 그룹 템플릿 B(470)은, 하나 이상의 애플리케이션들(472), 리소스들(474) 또는 리소스 구성 토큰들(476)을 유사하게 정의할 수 있다. 파티션의 리소스 그룹(예를 들어, 파티션 B)는 리소스 그룹 템플릿들 A 및 B 중 하나를 레퍼런스(480, 482)를 할 수 있어, 선택된 리소스 그룹 템플릿(이 예에서는, 리소스 그룹 템플릿 B)의 애플리케이션들, 리소스들 및 리소스 구성 토큰들은, 가상 타겟 정보(462)를 정의하는 것 및/또는 가상 타겟(488)(예를 들어, valleyhealth.com)을 리소스 그룹과 관련시키는 것을 포함하는, 리소스 그룹을 구성시키는 것(420)을 위해 사용될 수 있고, 결국, 타겟 시스템과 관련된다.
도 8은 일 실시예에 따른 애플리케이션 서버, 클라우드, 또는 다른 환경에서의 파티션들을 사용하는 방법을 도시한다. 도 8에서 도시된 것처럼, 단계 490에서, 소프트웨어 애플리케이션들의 실행을 위한 도메인 및 하나 이상의 파티션들과 리소스 그룹들을 포함하는 애플리케이션 서버 환경을 제공되고, 각 파티션은 도메인의 관리 및 실행시간 세분을 제공하고 하나 이상의 리소스 그룹들을 포함할 수 있으며, 그리고 각 리소스 그룹은 배치가능한 애플리케이션들 또는 리소스 그룹 템플릿을 레퍼런스할 수 있는 리소스들의 수집이다.
단계 492에서, 각 파티션은 구성 정보와 관련되어, 스타트업일 때, 시스템은 각 리소스 그룹에 대한 파티션-특정 구성 요소들 및 어떤 레퍼런스된 리소스 그룹 템플릿을 포함하는 리소스를 발생시키기 위해 상기 파티션과 관련되는 구성 정보를 사용할 수 있다.
단계 494에서, 각 리소스 그룹 또는 리소스 그룹을 포함하는 파티션은, 리소스 그룹 또는 파티션이 타겟되어야 하고 배치되어야 하는 가상 타겟을 정의하는 가상 타겟(예를 들어, 가상 호스트) 정보와 관련될 수 있다.
단계 496에서, 각 파티션은, 상기 테넌트에 의해 사용을 위해, 멀티테넌트 환경에서 테넌트와 선택적으로 관련될 수 있다.
파티션 관리
일 실시예에 따라, 시스템 관리자는 파티션들을 생성, 삭제 및 이동시킬 수 있고; 그리고 또한 타겟들을 생성 및 할당할 수 있다. 파티션 관리자는 파티션 레벨에서 파티션의 여러 양상들을 관리하는 것, 예를 들어, 리소스 그룹들을 생성하는 것 또는 파티션 내의 리소스 그룹에 애플리케이션들을 배치하는 것을 할 수 있다. 시스템 관리자는 파티션의 보안 특성들(예를 들어, 보안 영역)을 설정 또는 변경할 수 있거나 또는 공유된 (도메인-레벨) 리소스 그룹 또는 리소스 그룹 템플릿을 레퍼런스할 수 있다.
파티션 명칭 및 파티션 ID
일 실시예에 따라, 각 파티션은 2개의 식별자들: 파티션 명칭 및 파티션 ID를 갖는다. 상기 파티션 명칭은, 파티션 생성 시간에서 특정되는 인간이 판독가능한 명칭이고 그리고 상기 파티션을 관리하기 위해 사람들에 의해 사용되고, 인간 친화적인 식별자를 선호하는 코드에 의해 사용되는 식별자이다; 그리고 상기 파티션 ID는, 예를 들어, UUID로서 파티션에 대해 발생되는 덜 판독가능한 명칭이고, 그 결과, 시간 및 공간에 대해 고유하며 그리고 파티션들 사이에서 구분하기 위해 전체적으로 고유한 ID를 필요로하는 코드에 의해 사용된다. 파티션의 명칭 및 ID는, 파티션 config 빈(partition config bean) 및 호출 콘텍스트(ComponentInvocationContext) 둘 모두로부터 검색될 수 있다.
파티션 구성
일 실시예에 따라, 파티션 구성은 config.xml에 포함되고 그리고 다음의 구성 요소들을 포함한다.
파티션 - 이것은 최상위 레벨 구성 요소이고 그리고 속성들을 포함하고 파티션을 정의하는 자 요소(child element)들을 포함한다. 파티션 요소는 도메인 레벨에서 정의될 것이다. 파티션은 리소스 그룹들, 시스템 리소스 오버라이드 요소들 및 속성들을 포함할 수 있고, 상기 속성들은, 영역, 파티션에 맵핑하는 네트워크, SSL info 및 다른 파티션 정보를 정의한다.
리소스-그룹 - 이 요소는 애플리케이션들을 포함하고 그리고 상기 파티션에 배치되는 리소스들을 포함한다. 리소스 그룹은 리소스 그룹 템플릿을 연장할 수 있어 공통의 애플리케이션들 또는 리소스들은 하나의 장소에서 정의될 수 있고 그리고 파티션들 사이에서 공유될 수 있다. 리소스 그룹 내의 명칭들은 파티션에 대해 고유해야만 한다 - 동일한 명칭이 서로 다른 리소스 그룹 템플릿 또는 리소스 그룹들 내에서 정의되면 검증 오류가 발생할 것이다.
리소스-그룹-템플릿들 - 이러한 요소가 도메인 레벨에서 정의되고 그리고 애플리케이션들 및 리소스들을 포함할지라도, 파티션 내로부터 레퍼런스 그룹 템플릿을 레퍼런스하는 모든 리소스 그룹들이 모든 리소스들 및 애플리케이션들을 가지기때문에, 리소스 그룹 템플릿들은 논리적으로 파티션에 대해 특정된 구성을 포함한다.
구성-특성들 - 이 요소는 특성 키 값들을 포함한다. 이 구성 특성들은, 도메인 레벨에서 리소스 그룹들과 함께 파티션 레벨 모두에서 특정될 수 있다. 파티션-특성 오버라이드들에 대한 모델은, 파티션-특정에 요구되는 가장 공통인 속성들이 파티션의 자(child) 구성 요소에 포함되어야 하는 것으로, 이는 소비자들이 특정 구성 요소들을 통해 공통적으로 사용되는 파티션-특정 구성을 구별하는 것을 용이하게 한다.
파티션 이식성
일 실시예에 따라, 파티션은 하나의 도메인(예를 들어, 소스 도메인)으로부터 보내질 수 있고(export) 그리고 다른 도메인(예를 들어, 타겟 도메인)에 들여올 수 있다(import). 파티션을 보내는 것은, 다른 도메인의 셧다운 또는 재시작을 요구하지 않으면서, 다른 시스템에 카피될 수 있고 그리고 타겟 도메인에 들여올 수 있는 파티션 아카이브를 생성한다.
파티션 리소스 그룹 이동
일 실시예에 따라, 파티션 내의 리소스 그룹은 하나의 가상 타겟에서 다른 가상 타겟으로 이동될 수 있고, 그 결과 서비스 가용성을 증가시킨다.
테넌트 파티션 관계
일 실시예에 따라, 테넌트는, 애플리케이션 서버 환경, 예를 들어, 퓨젼 애플리케이션(FA) 또는 퓨젼 미들웨어(FMW) 환경 외부에서 정의될 수 있다.
호스트들 및 URL들을 파티션들에 맵핑
일 실시예에 따라, 각 컨테이너/요청 핸들러는 파티션 콘텍스트를 설립하고 그리고 후속적인 사용을 위해, 파티션 콘텍스트를 호출 콘텍스터 관리자(ComponentInvocationContext Manager)에 푸시(push)한다. 파티션 테이블은, 호스트네임/포트/URL로부터 파티션 명칭으로의 맵핑을 제공함으로써 콘테이너들이 이러한 것을 하는 것을 돕기 위해 사용될 수 있다. 파티션으로의 맵핑은 다음의 것: 호스트네임(종종 가상 호스트네임); 포트 번호; URL 경로 접두부 중 하나 이상을 매칭함으로써 달성될 수 있다. 파티션은 (파티션의 이용가능한 타겟들 리스트를 통해) 파티션과 관련된 하나 이상의 가상 타겟들을 가질 수 있다. 가상 호스트와 유사하게, 가상 타겟은, 하나 이상의 호스트네임들, 선택적인 URL 경로 접두부 및 선택적인 포트 넘버를 특정하기 위한 기능을 제공한다. 인입하는 요청이 파티션과 관련되는 가상 타겟들 중 일부 상의 이러한 정보와 매칭하면, 이후, 상기 요청은 그러한 파티션 내의 애플리케이션들에 대해 의도되는 것으로 추정된다.
파티션 리소스들의 타겟팅
일 실시예에 따라, 가상 타겟의 사용은 리소스 그룹에 대한 타겟을 가상화하고, 이는 물리적인 리소스들의 어떤 속성들도 갖지 않는 리소그 그룹 구성을 만들며, 그 결과 시스템 관리자로 하여금 파티션의 클라이언트들에 영향을 미치지 않고 시스템의 물리적인 토폴로지(topology)를 변화시키도록 한다. 타겟팅은 리소스 그룹 레벨에서 특정되고 그리고 리소스 그룹에 포함되는 모든 리소스들에 적용한다. 이용가능한 타겟들의 세트 및 디폴트 타겟은 파티션 레벨에서 특정될 수 있다. 가상 타겟은 관리되는 서버 또는 클러스터에 타겟가능하거나 또는 다수의 서버들 또는 클러스터들에 타겟가능하며, 그리고 동일한 파티션 내의 하나보다 많은 리소스 그룹에 의해 공유될 수 있다.
리소스 그룹이 특정된 타겟들을 가지면, 이후 상기 특정된 타겟들은 상기 리소스 그룹 내에 포함된 리소스들에 대한 타겟들로 사용될 것이다. 상기 리소스 그룹이 특정된 타겟들을 가지지 않고, 파티션 레벨에서의 디폴트 타겟이 설정되면, 이후, 상기 디폴트 타겟이 상기 리소스 그룹 내에 포함되는 모든 리소스들에 대한 타겟으로 사용될 것이다. 상기 리소스 그룹이 특정된 타겟들을 가지지 않고 그리고 상기 파티션 레벨에서의 디폴트 타겟이 설정되지 않으면, 이후 상기 리소스 그룹에서의 리소스들은 타겟으로 되지 않을 것이다.
단순한 경우에서, 하나의 타겟이 존재하거나 또는 모든 리소스 그룹들이 하나의 클러스터 또는 관리되는 서버로 타겟팅될 경우, 클러스터 또는 관리되는 서버는 가상 타겟으로 특정될 수 있고 그리고 동일한 가상 타겟은 파티션에 대해 디폴트 타겟이 될 수 있다. 그 같은 경우, 리소스 그룹들은 가상 타겟으로 구체적으로 타겟팅되도록 요구되지 않는다.
애플리케이션 배치 및 구성
일 실시예에 따라, 애플리케이션들 및 공유된 라이브러리들은 하나의 파티션 내의 리소스 그룹으로 배치될 수 있다. 애플리케이션 그룹은 애플리케이션 서버에 의해 제공되는 배치 계획 메커니즘들을 사용하여 오버라이드될 수 있다. 배치 계획들은 파티션마다 애플리케이션마다 특정될 수 있거나 또는 리소스 그룹의 일부로서 특정될 수 있다.
네트워킹 층
일 실시예에 따라, 상기 시스템은, 인입하는 요청들을 파티션 ID와 관련시키는 네트워킹 층을 포함할 수 있다. 상기 관련은, http/https 트래픽, RM/T3, RMI/IIOP를 포함하는 모든 네트워크 프로토콜들 및 다른 프로토콜들에 대해 행해질 수 있다. 예를 들어, 요청 URL(예를 들어, 가상 타겟/가상 포스트에 선택적인 경로를 더한 것)에 기초하여, 네트워킹 층은 상기 요청에 대한 타겟 파티션을 결정할 수 있고 그리고 상기 결정된 파티션 ID를 상기 요청의 실행 콘텍스트에 부가한다. 각 파티션이 고유한 가상 타겟과 네트워크 액세스 포인트(NAP) 조합을 사용하여 구성되면, 이후 상기 시스템은 특정 가상 타겟상의 모든 요청들을 대응한하는 파티션에 맵핑할 수 있다. 파티션들이 대신 가상의 타겟들 내의 동일한 호스트 명칭을 공유하도록 구성되면, 이후, URI 접두어는 가상 타겟에 대한 정의될 수 있고, 상기 시스템은 가상 타겟과 구성된 URI 접두어를 더한 것에 기초하여 적합한 파티션을 결정할 수 있다.
작업 관리자
일 실시예에 따라, 상기 시스템은 파티션-인식 관리자들을 포함할 수 있다. 각 작업 관리자는, 교착상태(deadlock)을 피하기 위해 작업 요청들을 처리하기 위해 스레드가 항상 이용가능하는 것을 명확하게 하기 위한 최소 스레드들 제한 및 요청들을 실행하는 병행 스레드들의 수를 제한하기 위한 최대 스레드들 제한과 함께, 작업부하의 상대적 우선순위로 구성될 수 있다. 각 파티션 내의 애플리케이션들이 그러한 파티션에 대한 스레드 리소스 사용의 정당한 공유를 초과하지 못하도록, 파티션-특정 작업 관리자는 각 파티션에 대해 생성될 수 있다.
보안 영역들
일 실시예에 따라, 각 파티션은 보안 영역을 레퍼런스할 수 있다. 영역들은 또한 다수의 파티션들에 의해 레퍼런스될 수 있다. 시스템에 요청이 들어올 때, 상기 시스템은 가상 타겟으로부터 적합한 파티션을 결정할 수 있고 그리고 요청의 실행 콘텍스트에 파티션 ID를 저장할 수 있다. 이후, 인증 또는 인가가 요구될 때, 상기 시스템은 사용할 적절한 영역을 결정하기 위해 파티션 ID를 이용할 수 있다.
JNDI
일 실시예에 따라, 파티션-인식 JNDI 프레임워크는, 애플리케이션들이, 지명된 객체들을 결부(bind)시키고 그리고 파티션 단위 기반으로 상기 지명된 객체들을 검색하는 것을 가능하게 한다. 스타트업 및 배치 시간 동안, 애플리케이션 서버는 각 파티션-특정 애플리케이션과 대응하는 파티션 ID를 관련시킬 수 있다. JNDI 프레임네트워크는 이후 지명된 객체의 결부 또는 룩업동안 파티션 ID를 이용할 수 있다. 파티션-특정 객체들은 다른 파티션들로부터 격리될 수 있고, 이는 동일한 애플리케이션의 서로 다른 인스턴스들이 동일한 JNDI 명칭을 갖는 파티션-특정 객체들을 등록하는 것을 가능하게한다.
명칭공간 및 스코핑
일 실시예에 따라, 파티션의 지명된 컴포넌트들, 예를 들어, 리소스 그룹들, 애플리케이션들은 파티션에 스코프될 수 있다. 파티션은 도메인으로 스코프된다. 리소스 그룹 템플릿들은 정의되고 그리고 상기 도메인에서 스코프되며, 도메인 전체에서 고유하다. 리소스 그룹 템플릿에서 정의되는 리소스들 및 애프리케이션들은 리소스 그룹 템플릿에 스코프된다. 파티션이 하나 보다 많은 리소스 그룹 템플릿을 참조하면, 참조되는 리소스 그룹 템플릿들에서 정의된 리소스들의 명칭은 리소스 그룹 템플릿들 전체에서 정의된다.
실행시간 엠빈스(Runtime MBeans )
일 실시예에 따라, SeverRuntimeMBean은, 실행시간 MBean 트리의 루트 노드로서 동작한다. 이러한 계층은, 클러스터들, 서버 채널들, JTA 및 애플리케이션 리소스들을 포함하는 애플리케이션 서버에 대한 모든 실행시간 엠빈스(Runtime MBeans)를 포함한다. 시스템은, SeverRuntimeMBean으로의 각 파티션에 대한 파티션-특정 브랜치를 포함할 수 있고, PartitionRuntimeMBean은 JMS, JDBC, 배치(Deployment), WLDF, 간섭성(Coherence) 및 커넥터들을 포함하는 애플리케이션 서버 서브시스템들에 대한 컴포넌트 특정 엠빈스를 포함할 것이다. 파티션-특정 리소스들에 대한 실행시간 엠빈스는 파티션-특정 계층에 존재하고 그리고 SeverRuntimeMBean 레벨에서 전체 계층에 존재하지 않으며, SeverRuntimeMBean은 파티션-특정 모니터링 및 통계들을 가능하게 한다.
REST 관리 API들
일 실시예에 따라, REST 인터페이스는 제공될 수 있다. RESTful 리소스들은 미드웨어의 관리에 중요한 이익들을 제공한다: http/https 프로토콜들에 대한 의존은, 액세스가 인에이블될 수 있고 표준 방화벽들 및 프런트 엔드(front end) 호스트 구성들을 사용하여 제어될 수 있다. 이는, 특히 MT 환경에서 중요하고, 특정 파티션 관리자는 애플리케이션 서버 도메인에서 지원되는 포트들 및 채널들의 협소한 부분에만 엑세스하는 것이 허용될 수 있다.
다중-편집 세션들
일 실시예에 따라, 상기 시스템은 다중-편집 세션들을 지원할 수 있다. 파티션 관리자는 지명된 특정 편집 세션들에서의 파티션 관련 구성의 일부를 변경시킬 수 있다. ConfigurationManagerMBean과 관련되는 API들은 파티션-특정 편집 세션들의 시작/저장/활성화를 가능하게 한다.
단-대-단 수명 관리(End-to-End Lifecycle Management)
일 실시예에 따라, 제공자들은, 특정 애플리케이션, 예를 들어, 오라클 트래픽 디렉터(OTD), 데이터베이스, 간섭성 또는 JMS 컴포넌트들을 구동하기 위해 필요한 유선 인프라 컴포턴트들(wire infrastructure components)에 사용될 수 있다. 예를 들어, 일부 실시예들에서, 특정 애플리케이션의 파티션-특정 인스턴스들은 동일한 데이터베이스 인스턴스를 공유할 수 있다. 리소스 그룹 템플릿은 단일 데이터베이스 인스턴스에 대한 도메인-레벨 JDBC 시스템 리소스를 참조할 수 있고, 그리고 리소스 그룹 템플릿은 이후 동일한 데이터베이스 인스턴스를 사용할 수 있음을 레퍼런스하는 모든 파티션들을 참조할 수 있다. 일 실시예에 따라, 애플리케이션의 여러 파티션-특정 인스턴스들은, 공통의 또는 호환가능한 스키마들로 서로 다른 데이터베이스 인스턴스들에 접속할 수 있다. 리소스 그룹 템플릿은, 상기 구성의 일부가 구성 파일(예를 들어, config.xml)의 각 파티션 섹션들에서 특정되도록 두면서, JDBC 시스템 리소스를 선언할 수 있다. 데이터 소스들의 그와 같은 각 파티션 섹션들의 예들은, 접속할 URL을 포함할 수 있고 그리고/또는 인증 및 인가하기 위한 사용자 크리덴셜들은 레퍼런스된 데이터베이스 인스턴스에 액세스한다.
일 실시예에 따라, 상기 데이터 소스 구현은, 컨테이너 데이터베이스 내에서 할당된 PDB에 각 파티션에 대한 개별적인 물리적 접속을 생성할 수 있고(이는 상기 PDB들이 개별 데이터베이스들로서 애플리케이션 서버에 나타나는 것을 가능하게 함), 그리고 상기 파티션의 풀 내의 파티션에 대해 하나 이상의 접속들을 설립하기 위해 사용되는 각 파티션의 특정 크리덴셜들을 생성할 수 있다. 대안으로, 상기 시스템은, PDB들 전반의 접속-스위칭을 지원할 수 있고, 이는 개별 PDB가 각 파티션에 대해 제공될 수 있지만, 데이터 소스 구현은 PDB를 소유하는 컨테이너 데이터베이스로의 단일 접속 풀을 공유한다. 애플리케이션이 데이터 요청들을 제공할 때, 파티션의 콘텍스트에서 제공한다. 이후, 상기 시스템은, 그러한 접속에 대한 요청을 실행하기 전에, 정확한 파티션 콘텍스트로 공유된 접속을 스위칭하도록 파티션 ID를 사용할 수 있다.
본 발명은, 하나 이상의 종래의 범용 또는 특수용 디지털 컴퓨터, 컴퓨팅 디바이스, 머신 또는 마이크로 프로세서(하나 이상의 프로세서들, 메모리, 및/또는 본 발명의 교시들에 따라 프로그래밍되는 컴퓨터 판독가능한 저장 매체을 포함)를 사용하여 적절하게 구현될 수 있다. 적절한 소프트웨어 코딩은, 소프트웨어 기술의 통상의 기술자에게 명확한 것으로, 본 발명의 교시들에 기초하여 통상의 프로그래머들에 의해 쉽게 준비될 수 있다.
일부 실시예들에서, 본 발명은, 컴퓨터 프로그램 제품을 포함하고, 이러한 컴퓨터 제품은, 본 발명의 어떤 프로세스들을 수행하도록 컴퓨터를 프로그램하기 위해 사용될 수 있는 명령어들이 저장된 비-일시적인 저장 매체 또는 컴퓨터 판독가능한 매체(미디어)이다. 저장 매체는, 플로피 디스크들, 광 디스크들, DVD, CD-ROMS, 마이크로드라이브 및 자기-광 디스크들, ROM들, RAM들, EPROM들, EEPROM들, DRAM들, VRAM들, 플래시 메모리 디바이스들, 자기 또는 광 카드들, 나노시스템들(분자 메모리 IC들을 포함)을 포함하는 어떤 타입의 디스크들, 또는 명령어들 및/또는 데이터를 저장하기에 적합한 어떤 타입의 미디어 또는 디바이스를 포함할 수 있지만, 이에 제한되지 않는다.
본 발명의 이전의 서술은 설명 및 서술의 목적들로 제공된다. 개시된 정확한 형태들로 발명을 다루거나 제한하도록 의도되지 않는다. 많은 수정들 및 변형들이 통상의 기술자에게 명확할 것이다. 실시예들이, 본 발명의 원리들 및 그러한 원리들의 실제적인 적용을 가장 잘 적용하기 위해 선택되고 서술되며, 그 결과, 통상의 기술자는 본 발명에 대한 여러 실시예들 및 고려되는 특정한 사용에 적합한 여러 변형들을 이해한다. 본 발명의 범위는 하기의 청구 범위들 및 그의 균등범위에 의해 정의되도록 의도된다.

Claims (21)

  1. 애플리케이션 서버 환경에서 파티션(partition)들을 지원하는 시스템으로서,
    하나 이상의 컴퓨터들을 포함하고,
    상기 하나 이상의 컴퓨터들은,
    제공되는 애플리케이션 서버 환경을 포함하고, 그리고
    소프트웨어 애플리케이션들의 실행을 위한 도메인 및 제1 파티션 및 제2 파티션을 포함하는 상기 도메인의 복수의 파티션들을 가지며,
    각 파티션은, 상기 도메인의 관리 및 실행시간(runtime)의 세분(subdivision)을 제공하고 그리고 하나 이상의 리소스 그룹들을 포함할 수 있으며, 그리고
    각 리소스 그룹은, 도메인 레벨에서 정의된 배치가능한(deployable) 리소스들의 수집(collection)을 제공하는 리소스 그룹 템플릿을 참조(reference)할 수 있는 배치가능한 애플리케이션들 또는 리소스들의 수집이며, 파티션 구성 데이터는 상기 리소스 그룹 템플릿에서 배치가능한 리소스들의 바인딩을 파티션과 관련되는 특정 값들에 제공하고,
    시작 시(upon startup), 파티션과 관련된 구성 정보는 각 리소스 그룹 및 리소스 그룹 안의 리소스에 대한 파티션별 구성 요소들을 생성하는 데 사용되고,
    리소스 그룹을 포함하는 객체는 리소스 그룹 템플릿의 토큰들의 값들을 설정하도록 작동하고,
    참조하는 리소스 그룹을 사용하여 리소스 그룹 템플릿을 활성화시킬 때, 리소스 그룹 템플릿과 연관된 토큰들은 객체를 포함하는 리소스 그룹에서 설정된 값들로 대체되며,
    하나 이상의 파티션-레벨 리소스 그룹을 포함하는 각 파티션은, 인입하는 트래픽을 수용할 상이한 가상 타겟을 정의할 수 있고,
    상기 도메인의 제1 파티션은, 상기 제1 파티션과 함께 사용할 애플리케이션들을 포함하고 제1 가상 타겟을 통해 액세스할 수 있는 제1 파티션-레벨 리소스 그룹을 포함하고, 그리고
    상기 도메인의 제2 파티션은, 상기 제2 파티션과 함께 사용할 애플리케이션들을 포함하고 제2 가상 타겟을 통해 액세스할 수 있는 제2 파티션-레벨 리소스 그룹을 포함하며,
    상기 제1 파티션-레벨 리소스 그룹 및 제2 파티션-레벨 리소스 그룹과 관련되는 상기 제1 가상 타겟 및 제2 가상 타겟은, 상기 제1 파티션 및 제2 파티션에 대한 요청들을 보내는데 사용하기 위해 하나 이상의 서버들에 맵핑되고, 상기 제1 파티션 및 상기 제2 파티션은 각 파티션이 데이터베이스 환경 내의 데이터베이스 인스턴스와 연관되어 있고, 상기 데이터베이스 인스턴스에 대한 액세스를 인증 및 인가하기 위한 크리덴셜(credential)들을 포함하며,
    파티션에 배치된 애플리케이션들은 상기 파티션과 연관된 가상 타겟에서 실행되고, 상기 파티션의 크리덴셜들은 상기 파티션의 데이터베이스 환경에 대한 하나 이상의 접속들을 설정하는 데 사용되며, 애플리케이션이 상기 파티션의 컨텍스트에서 데이터 요청을 제공할 때 해당 접속에서 요청을 실행하기 전에 상기 파티션과 연관된 파티션 식별자는 해당 파티션 컨텍스트와의 접속을 설정하기 위해 사용되는 것을 특징으로 하는
    파티션들을 지원하는 시스템.
  2. 제1항에 있어서,
    상기 시스템은, 테넌트에 의한 사용을 위해, 하나 이상의 파티션들을 상기 테넌트와 선택적으로 관련시킬 수 있는 것을 특징으로 하는
    파티션들을 지원하는 시스템.
  3. 제1항 또는 제2항에 있어서,
    각 리소스 그룹 템플릿은, 하나 이상의 관련된 애플리케이션들 및 상기 하나 이상의 관련된 애플리케이션들이 의존하는 리소스들을 함께 포함하는 것을 특징으로 하는
    파티션들을 지원하는 시스템.
  4. 제1항에 있어서,
    복수의 상기 배치가능한 리소스들은 하나 이상의 파티션-인식(partition-aware) 리소스들을 포함하는 것을 특징으로 하는
    파티션들을 지원하는 시스템.
  5. 제1항에 있어서,
    각 파티션은 로컬 명칭공간(local namespace)과 관련될 수 있는 것을 특징으로 하는
    파티션들을 지원하는 시스템.
  6. 제1항에 있어서,
    각 파티션은 파티션 명칭 또는 식별자와 관련될 수 있고, 상기 파티션 명칭 또는 식별자는, 요청들이 적절한 파티션들과 통신될 수 있도록 상기 시스템이 파티션 콘텍스트를 결정하게 하는 것을 특징으로 하는
    파티션들을 지원하는 시스템.
  7. 제1항에 있어서,
    상기 시스템은, 클라우드 컴퓨팅 환경 내에서 동작하는 다수의 테넌트들을 지원하기 위해, 상기 클라우드 컴퓨팅 환경 내에 제공되는 것을 특징으로 하는
    파티션들을 지원하는 시스템.
  8. 제1항에 있어서,
    상기 시스템은 상기 파티션들의 다수의 편집 세션들(edit sessions)을 지원하는 것을 특징으로 하는
    파티션들을 지원하는 시스템.
  9. 제1항에 있어서,
    각 리소스 그룹, 또는 상기 리소스 그룹을 포함하는 상기 파티션은, 가상 타겟 정보와 관련될 수 있고, 상기 가상 타겟 정보는, 리소스 그룹 또는 파티션이 타겟팅되어야 하고 배치되어야 하는 타겟을 정의하며, 웹 티어 컴포넌트(web tier component)는 라우팅 정보를 포함하며, 상기 라우팅 정보는 특정 파티션에 대한 상기 가상 타겟을 대응하는 타겟으로 맵핑하여, 상기 특정 파티션에 대한 요청들을 적절한 타겟으로 향하게 하는 것을 특징으로 하는
    파티션들을 지원하는 시스템.
  10. 애플리케이션 서버 환경에서 파티션들을 지원하는 방법으로서,
    하나 이상의 컴퓨터들에 의해, 소프트웨어 애플리케이션들의 실행을 위한 도메인 및 제1 파티션 및 제2 파티션을 포함하는 상기 도메인의 복수의 파티션들을 갖는 애플리케이션 서버 환경을 제공하는 단계를 포함하고,
    각 파티션은, 상기 도메인의 관리 및 실행시간의 세분을 제공하고 그리고 리소스 그룹을 포함할 수 있으며, 그리고
    각 리소스 그룹은, 도메인 레벨에서 정의된 배치가능한 리소스들의 수집을 제공하는 리소스 그룹 템플릿을 참조할 수 있는 배치가능한 애플리케이션들 또는 리소스들의 수집이며, 파티션 구성 데이터는 상기 리소스 그룹 템플릿에서 배치가능한 리소스들의 바인딩을 파티션과 관련되는 특정 값들에 제공하고,
    시작 시, 파티션과 관련된 구성 정보는 각 리소스 그룹 및 리소스 그룹 안의 리소스에 대한 파티션별 구성 요소들을 생성하는 데 사용되고,
    리소스 그룹을 포함하는 객체는 리소스 그룹 템플릿의 토큰들의 값들을 설정하도록 작동하고,
    참조하는 리소스 그룹을 사용하여 리소스 그룹 템플릿을 활성화시킬 때, 리소스 그룹 템플릿과 연관된 토큰들은 객체를 포함하는 리소스 그룹에서 설정된 값들로 대체되며,
    하나 이상의 파티션-레벨 리소스 그룹을 포함하는 각 파티션은, 인입하는 트래픽을 수용할 상이한 가상 타겟을 정의할 수 있고,
    상기 도메인의 제1 파티션은, 상기 제1 파티션과 함께 사용할 애플리케이션들을 포함하고 제1 가상 타겟을 통해 액세스할 수 있는 제1 파티션-레벨 리소스 그룹을 포함하고, 그리고
    상기 도메인의 제2 파티션은, 상기 제2 파티션과 함께 사용할 애플리케이션들을 포함하고 제2 가상 타겟을 통해 액세스할 수 있는 제2 파티션-레벨 리소스 그룹을 포함하며,
    상기 제1 파티션-레벨 리소스 그룹 및 제2 파티션-레벨 리소스 그룹과 관련되는 상기 제1 가상 타겟 및 제2 가상 타겟은, 상기 제1 파티션 및 제2 파티션에 대한 요청들을 보내는데 사용하기 위해 하나 이상의 서버들에 맵핑되고, 상기 제1 파티션 및 상기 제2 파티션은 각 파티션이 데이터베이스 환경 내의 데이터베이스 인스턴스와 연관되어 있고, 상기 데이터베이스 인스턴스에 대한 액세스를 인증 및 인가하기 위한 크리덴셜들을 포함하며,
    파티션에 배치된 애플리케이션들은 상기 파티션과 연관된 가상 타겟에서 실행되고, 상기 파티션의 크리덴셜들은 상기 파티션의 데이터베이스 환경에 대한 하나 이상의 접속들을 설정하는 데 사용되며, 애플리케이션이 상기 파티션의 컨텍스트에서 데이터 요청을 제공할 때 해당 접속에서 요청을 실행하기 전에 상기 파티션과 연관된 파티션 식별자는 해당 파티션 컨텍스트와의 접속을 설정하기 위해 사용되는 것을 특징으로 하는
    파티션들을 지원하는 방법.
  11. 제10항에 있어서,
    테넌트에 의한 사용을 위해, 상기 하나 이상의 컴퓨터들에 의해, 하나 이상의 파티션들을 상기 테넌트와 선택적으로 관련시키는 단계를 더 포함하는 것을 특징으로 하는
    파티션들을 지원하는 방법.
  12. 제10항 또는 제11항에 있어서,
    각 리소스 그룹 템플릿은, 하나 이상의 관련된 애플리케이션들 및 상기 하나 이상의 관련된 애플리케이션들이 의존하는 리소스들을 함께 포함하는 것을 특징으로 하는
    파티션들을 지원하는 방법.
  13. 제10항에 있어서,
    복수의 상기 배치가능한 리소스들은 하나 이상의 파티션-인식 리소스들을 포함하는 것을 특징으로 하는
    파티션들을 지원하는 방법.
  14. 제10항에 있어서,
    각 파티션은 로컬 명칭공간과 관련될 수 있는 것을 특징으로 하는
    파티션들을 지원하는 방법.
  15. 제10항에 있어서,
    각 파티션은 파티션 명칭 또는 식별자와 관련될 수 있고, 상기 파티션 명칭 또는 식별자는, 요청들이 적절한 파티션들과 통신될 수 있도록 파티션 콘텍스트가 결정되게 하는 것을 특징으로 하는
    파티션들을 지원하는 방법.
  16. 제10항에 있어서,
    상기 방법은, 클라우드 컴퓨팅 환경 내에서 동작하는 다수의 테넌트들을 지원하기 위해, 상기 클라우드 컴퓨팅 환경 내에 수행되는 것을 특징으로 하는
    파티션들을 지원하는 방법.
  17. 제10항에 있어서,
    상기 하나 이상의 컴퓨터들에 의해, 상기 파티션들의 다수의 편집 세션들에 대한 지원을 제공하는 단계를 더 포함하는 것을 특징으로 하는
    파티션들을 지원하는 방법.
  18. 제10항에 있어서,
    각 리소스 그룹, 또는 상기 리소스 그룹을 포함하는 상기 파티션은, 가상 타겟 정보와 관련될 수 있고, 상기 가상 타겟 정보는, 리소스 그룹 또는 파티션이 타겟팅되어야 하고 배치되어야 하는 타겟을 정의하며, 웹 티어 컴포넌트는 라우팅 정보를 포함하며, 상기 라우팅 정보는 특정 파티션에 대한 상기 가상 타겟을 대응하는 타겟으로 맵핑하여, 상기 특정 파티션에 대한 요청들을 적절한 타겟으로 향하게 하는 것을 특징으로 하는
    파티션들을 지원하는 방법.
  19. 삭제
  20. 삭제
  21. 비-일시적인 컴퓨터 판독가능한 저장 매체로서,
    하나 이상의 컴퓨터들에 의해 판독 및 실행될 때, 상기 하나 이상의 컴퓨터들로 하여금, 소프트웨어 애플리케이션들의 실행을 위한 도메인 및 제1 파티션 및 제2 파티션을 포함하는 상기 도메인의 복수의 파티션들을 갖는 애플리케이션 서버 환경을 제공하는 것을 수행하도록 하는, 저장된 명령어들을 포함하고,
    각 파티션은, 상기 도메인의 관리 및 실행시간의 세분을 제공하고 그리고 리소스 그룹을 포함할 수 있으며, 그리고
    각 리소스 그룹은, 도메인 레벨에서 정의된 배치가능한 리소스들의 수집을 제공하는 리소스 그룹 템플릿을 참조할 수 있는 배치가능한 애플리케이션들 또는 리소스들의 수집이며, 파티션 구성 데이터는 상기 리소스 그룹 템플릿에서 배치가능한 리소스들의 바인딩을 파티션과 관련되는 특정 값들에 제공하고,
    시작 시, 파티션과 관련된 구성 정보는 각 리소스 그룹 및 리소스 그룹 안의 리소스에 대한 파티션별 구성 요소들을 생성하는 데 사용되고,
    리소스 그룹을 포함하는 객체는 리소스 그룹 템플릿의 토큰들의 값들을 설정하도록 작동하고,
    참조하는 리소스 그룹을 사용하여 리소스 그룹 템플릿을 활성화시킬 때, 리소스 그룹 템플릿과 연관된 토큰들은 객체를 포함하는 리소스 그룹에서 설정된 값들로 대체되며,
    하나 이상의 파티션-레벨 리소스 그룹을 포함하는 각 파티션은, 인입하는 트래픽을 수용할 상이한 가상 타겟을 정의할 수 있고,
    상기 도메인의 제1 파티션은, 상기 제1 파티션과 함께 사용할 애플리케이션들을 포함하고 제1 가상 타겟을 통해 액세스할 수 있는 제1 파티션-레벨 리소스 그룹을 포함하고, 그리고
    상기 도메인의 제2 파티션은, 상기 제2 파티션과 함께 사용할 애플리케이션들을 포함하고 제2 가상 타겟을 통해 액세스할 수 있는 제2 파티션-레벨 리소스 그룹을 포함하며,
    상기 제1 파티션-레벨 리소스 그룹 및 제2 파티션-레벨 리소스 그룹과 관련되는 상기 제1 가상 타겟 및 제2 가상 타겟은, 상기 제1 파티션 및 제2 파티션에 대한 요청들을 보내는데 사용하기 위해 하나 이상의 서버들에 맵핑되고, 상기 제1 파티션 및 상기 제2 파티션은 각 파티션이 데이터베이스 환경 내의 데이터베이스 인스턴스와 연관되어 있고, 상기 데이터베이스 인스턴스에 대한 액세스를 인증 및 인가하기 위한 크리덴셜들을 포함하며,
    파티션에 배치된 애플리케이션들은 상기 파티션과 연관된 가상 타겟에서 실행되고, 상기 파티션의 크리덴셜들은 상기 파티션의 데이터베이스 환경에 대한 하나 이상의 접속들을 설정하는 데 사용되며, 애플리케이션이 상기 파티션의 컨텍스트에서 데이터 요청을 제공할 때 해당 접속에서 요청을 실행하기 전에 상기 파티션과 연관된 파티션 식별자는 해당 파티션 컨텍스트와의 접속을 설정하기 위해 사용되는 것을 특징으로 하는
    비-일시적인 컴퓨터 판독가능한 저장 매체.
KR1020177002201A 2014-06-24 2015-06-24 멀티테넌트 애플리케이션 서버 환경에서 파티션들을 지원하는 시스템 및 방법 KR102490422B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201462016468P 2014-06-24 2014-06-24
US62/016,468 2014-06-24
US201462054900P 2014-09-24 2014-09-24
US62/054,900 2014-09-24
US14/748,094 2015-06-23
US14/748,094 US11477278B2 (en) 2014-06-24 2015-06-23 System and method for supporting partitions in a multitenant application server environment
PCT/US2015/037403 WO2015200474A1 (en) 2014-06-24 2015-06-24 System and method for supporting partitions in a multitenant application server environment

Publications (2)

Publication Number Publication Date
KR20170021874A KR20170021874A (ko) 2017-02-28
KR102490422B1 true KR102490422B1 (ko) 2023-01-19

Family

ID=54870758

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177002201A KR102490422B1 (ko) 2014-06-24 2015-06-24 멀티테넌트 애플리케이션 서버 환경에서 파티션들을 지원하는 시스템 및 방법

Country Status (6)

Country Link
US (2) US11477278B2 (ko)
EP (1) EP3161633A1 (ko)
JP (2) JP6681348B2 (ko)
KR (1) KR102490422B1 (ko)
CN (1) CN106471471B (ko)
WO (1) WO2015200474A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10187454B2 (en) 2014-01-21 2019-01-22 Oracle International Corporation System and method for dynamic clustered JMS in an application server environment
US10103946B2 (en) 2014-01-21 2018-10-16 Oracle International Corporation System and method for JMS integration in a multitenant application server environment
US10476938B2 (en) 2014-01-21 2019-11-12 Oracle International Corporation System and method for multitenancy store in a multitenant application server environment
US10474998B2 (en) 2014-01-21 2019-11-12 Oracle International Corporation System and method for messaging in a multitenant application server environment
WO2015112614A1 (en) 2014-01-21 2015-07-30 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
US20150304414A1 (en) * 2014-04-17 2015-10-22 Go Daddy Operating Company, LLC Allocating hosting server resources via migration paths
US9501211B2 (en) * 2014-04-17 2016-11-22 GoDaddy Operating Company, LLC User input processing for allocation of hosting server resources
US10873627B2 (en) 2014-06-23 2020-12-22 Oracle International Corporation System and method for supporting use of an in-memory data grid with a multitenant application server environment
US10027550B2 (en) 2014-06-23 2018-07-17 Oracle International Corporation System and method for multitenant-aware console for use in a multitenant application server environment
US10462068B2 (en) 2014-09-25 2019-10-29 Oracle International Corporation System and method for tenant onboarding in a multitenant application server environment
US10348565B2 (en) 2014-09-25 2019-07-09 Oracle International Corporation System and method for rule-based elasticity in a multitenant application server environment
US9747137B2 (en) 2014-09-25 2017-08-29 Oracle International Corporation System and method for providing a partition file system in a multitenant application server environment
US10382537B2 (en) 2014-09-25 2019-08-13 Oracle International Corporation System and method for use of a global runtime in a multitenant application server environment
US10050903B2 (en) 2014-09-26 2018-08-14 Oracle International Corporation System and method for multi-tenancy enablement of enterprise JAVA (TM) applications using resource proxies and application tenancy context
US10091135B2 (en) 2014-09-26 2018-10-02 Oracle International Corporation System and method for multi-tenancy enablement of enterprise java applications using resource proxies and application tenancy context
US11057272B2 (en) 2014-09-26 2021-07-06 Oracle International Corporation System and method for transactions in a multitenant application server environment
JP2016085641A (ja) * 2014-10-27 2016-05-19 キヤノン株式会社 権限移譲システム、権限移譲システムにて実行される方法、およびそのプログラム
US10250512B2 (en) 2015-01-21 2019-04-02 Oracle International Corporation System and method for traffic director support in a multitenant application server environment
US20180039628A1 (en) * 2016-08-03 2018-02-08 Oracle International Corporation System and method for providing dynamic relocation of tenants in a multi-tenant database environment
US11075799B2 (en) 2017-08-24 2021-07-27 Oracle International Corporation System and method for provisioning in a multi-tenant application server environment
US11416235B2 (en) 2017-09-28 2022-08-16 Oracle International Corporation System and method for managed server independence for deployment of software applications and libraries
US11102196B2 (en) 2019-04-06 2021-08-24 International Business Machines Corporation Authenticating API service invocations
US11200095B2 (en) * 2019-09-23 2021-12-14 Open Text Holdings, Inc. System and method for an efficient and scalable multitenant implementation for content management services platforms, including cloud deployed content management services platforms
US11695559B2 (en) * 2019-09-30 2023-07-04 Salesforce, Inc. Nested tenancy that permits a hierarchy having a plurality of levels
US11082487B1 (en) 2020-09-22 2021-08-03 Vignet Incorporated Data sharing across decentralized clinical trials using customized data access policies
US11315041B1 (en) 2020-09-22 2022-04-26 Vignet Incorporated Machine learning with data sharing for clinical research data across multiple studies and trials
US11790107B1 (en) 2022-11-03 2023-10-17 Vignet Incorporated Data sharing platform for researchers conducting clinical trials

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090276771A1 (en) * 2005-09-15 2009-11-05 3Tera, Inc. Globally Distributed Utility Computing Cloud
US20110213870A1 (en) 2010-02-26 2011-09-01 International Business Machines Corporation Providing services to multiple tenants of an application
US20130332577A1 (en) * 2012-06-06 2013-12-12 Juniper Networks, Inc. Multitenant server for virtual networks within datacenter
US20130339470A1 (en) * 2012-06-18 2013-12-19 International Business Machines Corporation Distributed Image Cache For Servicing Virtual Resource Requests in the Cloud
WO2014039866A1 (en) 2012-09-07 2014-03-13 Oracle International Corporation System and method for providing a service management engine for use with a cloud computing environment
US20140075032A1 (en) 2012-09-07 2014-03-13 Oracle International Corporation Declarative and extensible model for provisioning of cloud based services

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100260380B1 (ko) 1996-01-26 2000-07-01 윤종용 마이크로 프로세서칩의 냉각팬 제어장치 및 그 제어방법
US6725317B1 (en) 2000-04-29 2004-04-20 Hewlett-Packard Development Company, L.P. System and method for managing a computer system having a plurality of partitions
WO2002003220A2 (en) 2000-07-05 2002-01-10 Ernst & Young Llp Method and apparatus for providing computer services
JP2005209029A (ja) 2004-01-23 2005-08-04 Tm T & D Kk アプリケーション管理システム、アプリケーション管理方法およびその管理方法を実行させるためのプログラム
US7561520B2 (en) 2004-06-04 2009-07-14 Holloway J Michael Capacity limiting platform system and method
US20060036747A1 (en) 2004-07-28 2006-02-16 Galvin James P Jr System and method for resource handling of SIP messaging
US7519181B2 (en) 2004-12-16 2009-04-14 International Business Machines Corporation System and method for enforcing network cluster proximity requirements using a proxy
US8392564B1 (en) 2005-06-20 2013-03-05 Oracle America, Inc. Cluster-wide resource usage monitoring
US7941804B1 (en) 2005-10-31 2011-05-10 Hewlett-Packard Development Company, L.P. Allocating resources among tiered partitions of different types
US20070220302A1 (en) 2006-02-28 2007-09-20 Cline Brian G Session failover management in a high-availability server cluster environment
US8472929B2 (en) 2006-04-21 2013-06-25 Telecom Italia S.P.A. Method and system for providing presence information
US8261265B2 (en) * 2007-10-30 2012-09-04 Vmware, Inc. Transparent VMM-assisted user-mode execution control transfer
US10127059B2 (en) 2008-05-02 2018-11-13 Skytap Multitenant hosted virtual machine infrastructure
US8135921B2 (en) 2008-06-06 2012-03-13 International Business Machines Corporation Automated paging device management in a shared memory partition data processing system
CN101639835A (zh) 2008-07-30 2010-02-03 国际商业机器公司 多租户场景中应用数据库分区的方法和装置
WO2010127365A1 (en) 2009-05-01 2010-11-04 Citrix Systems, Inc. Systems and methods for establishing a cloud bridge between virtual storage resources
US8650299B1 (en) 2010-02-03 2014-02-11 Citrix Systems, Inc. Scalable cloud computing
US8250185B2 (en) 2010-03-26 2012-08-21 International Business Machines Corporation Semantic matching of federation intents and services capabilities in a planning system for automatic service federation
JP2011232840A (ja) 2010-04-26 2011-11-17 Hitachi Ltd アクセス制御情報管理方法、計算機システム及びプログラム
US8627426B2 (en) * 2010-04-26 2014-01-07 Vmware, Inc. Cloud platform architecture
US20110271005A1 (en) 2010-04-30 2011-11-03 Sonus Networks, Inc. Load balancing among voip server groups
CN102236762A (zh) 2010-04-30 2011-11-09 国际商业机器公司 用于处理对多租户应用的文件访问的方法和文件代理装置
CA2807972A1 (en) 2010-08-11 2012-02-16 Security First Corp. Systems and methods for secure multi-tenant data storage
US8775626B2 (en) 2010-09-17 2014-07-08 Microsoft Corporation Using templates to configure cloud resources
KR20120045586A (ko) 2010-10-29 2012-05-09 한국전자통신연구원 다중 테넌트용 SaaS 애플리케이션 설정 장치 및 방법
US8577885B2 (en) 2010-12-09 2013-11-05 International Business Machines Corporation Partitioning management of system resources across multiple users
US9460169B2 (en) 2011-01-12 2016-10-04 International Business Machines Corporation Multi-tenant audit awareness in support of cloud environments
EP2668600A4 (en) 2011-01-27 2014-08-06 Computenext Inc DYNAMIC RESOURCE ORGANIZATION OF CLOUD COMPUTING TO FACILITATE DISCOVERY
US8816240B2 (en) * 2011-08-04 2014-08-26 General Electric Company Cladding system and method for applying a cladding to a power generation system component
US9158590B2 (en) 2011-08-08 2015-10-13 International Business Machines Corporation Dynamically acquiring computing resources in a networked computing environment
CN102333115A (zh) 2011-09-01 2012-01-25 杭州湾云计算技术有限公司 一种将已有Web应用转化为SaaS多租户应用的方法和装置
US8589481B2 (en) 2011-09-14 2013-11-19 Microsoft Corporation Multi tenant access to applications
US8635152B2 (en) 2011-09-14 2014-01-21 Microsoft Corporation Multi tenancy for single tenancy applications
US20130081109A1 (en) 2011-09-23 2013-03-28 Corent Technology, Inc. Multi-Tenant Agile Database Connector
CN102571916B (zh) 2011-12-02 2015-11-04 曙光信息产业(北京)有限公司 一种云存储空间的租赁软件的架构与操作方法
US10860384B2 (en) 2012-02-03 2020-12-08 Microsoft Technology Licensing, Llc Managing partitions in a scalable environment
CN102609271B (zh) 2012-02-20 2014-09-10 山东大学 一种元数据驱动的SaaS应用的可视化定制方法及系统
CN102571821A (zh) 2012-02-22 2012-07-11 浪潮电子信息产业股份有限公司 一种云安全访问控制模型
US8904402B2 (en) * 2012-05-30 2014-12-02 Red Hat, Inc. Controlling capacity in a multi-tenant platform-as-a-service environment in a cloud computing system
CN103455512A (zh) 2012-05-31 2013-12-18 上海博腾信息科技有限公司 Saas平台多租户数据管理模型
CN110011869B (zh) 2012-06-06 2022-07-19 瞻博网络公司 控制器装置、方法及计算机可读存储介质
US9104453B2 (en) 2012-06-21 2015-08-11 International Business Machines Corporation Determining placement fitness for partitions under a hypervisor
US9959423B2 (en) * 2012-07-30 2018-05-01 Microsoft Technology Licensing, Llc Security and data isolation for tenants in a business data system
US9436626B2 (en) 2012-08-09 2016-09-06 Freescale Semiconductor, Inc. Processor interrupt interface with interrupt partitioning and virtualization enhancements
US9509553B2 (en) 2012-08-13 2016-11-29 Intigua, Inc. System and methods for management virtualization
US8954588B1 (en) 2012-08-25 2015-02-10 Sprint Communications Company L.P. Reservations in real-time brokering of digital content delivery
CN104050201B (zh) 2013-03-15 2018-04-13 伊姆西公司 用于多租户分布式环境中的数据管理的方法和设备
US9621668B2 (en) 2013-04-06 2017-04-11 Citrix Systems, Inc. Systems and methods for application-state, distributed replication table cache poisoning
EP2813945A1 (en) 2013-06-14 2014-12-17 Tocario GmbH Method and system for enabling access of a client device to a remote desktop
EP3015998B1 (en) 2013-06-29 2018-03-28 Huawei Technologies Co., Ltd. Zoning balance subtask delivering method, apparatus and system
US10216758B2 (en) 2013-10-24 2019-02-26 Vmware, Inc. Multi-tenant production and test deployments of Hadoop
US10642800B2 (en) 2013-10-25 2020-05-05 Vmware, Inc. Multi-tenant distributed computing and database
WO2015112614A1 (en) 2014-01-21 2015-07-30 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
US9420035B2 (en) * 2014-02-20 2016-08-16 International Business Machines Corporation Transaction isolation during multi-tenant transaction requests
CN104104513A (zh) 2014-07-22 2014-10-15 浪潮电子信息产业股份有限公司 一种云端多租户数据存储安全隔离方法
CN104598249B (zh) 2015-02-05 2017-09-01 浙江天正信息科技有限公司 多租户感知的软件个性化定制与部署方法
US10681012B2 (en) 2016-10-26 2020-06-09 Ping Identity Corporation Methods and systems for deep learning based API traffic security

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090276771A1 (en) * 2005-09-15 2009-11-05 3Tera, Inc. Globally Distributed Utility Computing Cloud
US20110213870A1 (en) 2010-02-26 2011-09-01 International Business Machines Corporation Providing services to multiple tenants of an application
US20130332577A1 (en) * 2012-06-06 2013-12-12 Juniper Networks, Inc. Multitenant server for virtual networks within datacenter
US20130339470A1 (en) * 2012-06-18 2013-12-19 International Business Machines Corporation Distributed Image Cache For Servicing Virtual Resource Requests in the Cloud
WO2014039866A1 (en) 2012-09-07 2014-03-13 Oracle International Corporation System and method for providing a service management engine for use with a cloud computing environment
US20140075032A1 (en) 2012-09-07 2014-03-13 Oracle International Corporation Declarative and extensible model for provisioning of cloud based services
US20140075019A1 (en) * 2012-09-07 2014-03-13 Oracle International Corporation System and method for providing a service management engine for use with a cloud computing environment

Also Published As

Publication number Publication date
US11477278B2 (en) 2022-10-18
KR20170021874A (ko) 2017-02-28
US20150373098A1 (en) 2015-12-24
CN106471471A (zh) 2017-03-01
EP3161633A1 (en) 2017-05-03
US20230032267A1 (en) 2023-02-02
JP2017519306A (ja) 2017-07-13
JP2020074148A (ja) 2020-05-14
JP6681348B2 (ja) 2020-04-15
WO2015200474A1 (en) 2015-12-30
CN106471471B (zh) 2021-01-05
JP6876836B2 (ja) 2021-05-26

Similar Documents

Publication Publication Date Title
US20230032267A1 (en) System and method for supporting partitions in a multitenant application server environment
US11683274B2 (en) System and method for supporting multi-tenancy in an application server, cloud, or other environment
US10027716B2 (en) System and method for supporting web services in a multitenant application server environment
US9967324B2 (en) System and method for providing data sources for use in a multitenant application server environment
US10873627B2 (en) System and method for supporting use of an in-memory data grid with a multitenant application server environment
US10951655B2 (en) System and method for dynamic reconfiguration in a multitenant application server environment
US10084843B2 (en) System and method for web container partitions in a multitenant application server environment
US10348822B2 (en) System and method for clustering in a multitenant application server environment
KR102449753B1 (ko) 멀티 테넌트 어플리케이션 서버 환경에서 네임스페이스들을 지원하기 위한 시스템 및 방법
US10009225B2 (en) System and method for supporting multiple partition edit sessions in a multitenant application server environment
US10051043B2 (en) System and method for JMX support in a multitenant application server environment
US20180081694A1 (en) System and method for partition administrative targeting in an application server environment

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant