JP6866307B2 - Systems and methods for multi-tenant execution of OS programs called from multi-tenant middleware applications - Google Patents

Systems and methods for multi-tenant execution of OS programs called from multi-tenant middleware applications Download PDF

Info

Publication number
JP6866307B2
JP6866307B2 JP2017561342A JP2017561342A JP6866307B2 JP 6866307 B2 JP6866307 B2 JP 6866307B2 JP 2017561342 A JP2017561342 A JP 2017561342A JP 2017561342 A JP2017561342 A JP 2017561342A JP 6866307 B2 JP6866307 B2 JP 6866307B2
Authority
JP
Japan
Prior art keywords
tenant
application
calling
unrecognized
partition
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2017561342A
Other languages
Japanese (ja)
Other versions
JP2018536206A5 (en
JP2018536206A (en
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
Priority claimed from US15/059,193 external-priority patent/US9811386B2/en
Priority claimed from US15/059,872 external-priority patent/US9819609B2/en
Application filed by オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2018536206A publication Critical patent/JP2018536206A/en
Publication of JP2018536206A5 publication Critical patent/JP2018536206A5/ja
Application granted granted Critical
Publication of JP6866307B2 publication Critical patent/JP6866307B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Description

著作権表示
この特許文献の開示の一部は、著作権保護の対象となる題材を含んでいる。著作権の所有者は、特許商標庁の包袋または記録に掲載されるように特許文献または特許情報開示を誰でも複製できることに対して異議はないが、その他の点ではすべての如何なる著作権をも保有する。
Copyright Notice Some of the disclosures in this patent document include material subject to copyright protection. The copyright owner has no objection to the fact that anyone can copy the patent document or disclosure of patent information as it appears in the packaging or record of the Patent and Trademark Office, but otherwise all copyrights. Also owns.

発明の分野:
本発明の実施形態は、概して、アプリケーションサーバおよびクラウド環境に関し、特に、マルチテナント・ミドルウェア・プラットフォームから呼出されたアプリケーションをサポートするためのシステムおよび方法に関する。
Field of Invention:
Embodiments of the invention generally relate to application servers and cloud environments, and in particular to systems and methods for supporting applications called from multitenant middleware platforms.

背景:
ソフトウェアアプリケーションサーバは、その例として、Oracle WebLogic Server(WLS)およびGlassfishを含んでおり、概して、エンタープライズソフトウェアアプリケーションを実行するための管理された環境を提供する。近年、クラウド環境において使用するための技術も開発されており、ユーザまたはテナントが、クラウド環境内でそれらのアプリケーションを開発して実行することが可能になり、かつ、環境によって提供される分散型リソースを活用することが可能になっている。
background:
Software application servers include, for example, Oracle WebLogic Server (WLS) and Glassfish, which generally provide a controlled environment for running enterprise software applications. In recent years, technologies for use in cloud environments have also been developed, allowing users or tenants to develop and run their applications in cloud environments, and distributed resources provided by the environment. It is possible to utilize.

概要:
一実施形態に従うと、マルチテナント・ミドルウェア・アプリケーションから呼出されたテナント非認識型プログラムのマルチテナント実行をサポートするためのシステムおよび方法がこの明細書中に記載される。例示的な方法は、複数のパーティションおよび複数のテナント認識型プログラムを提供することができる。複数のテナント認識型プログラムの各々はパーティションに関連付けられている。当該方法は、複数のパーティションおよび複数のテナント認識型プログラムの各々を複数のテナントのうちの1テナントと関連付けることができる。当該方法は、複数のパーティションのうちのコーリングパーティションからテナント非認識型プロセスを呼出すことができる。コーリングパーティションは、複数のテナントのうちのコーリングテナントに関連付けられている。当該方法は、コーリングテナントについてのテナンシ情報を収集することができる。さらに、収集されたテナンシ情報に基づいて、当該方法は、プロセス実行環境およびリソースを設定することにより、テナント非認識型プロセスの実行をコーリングテナントに範囲指定することができる。
Overview:
According to one embodiment, systems and methods for supporting multi-tenant execution of tenant-unaware programs called from multi-tenant middleware applications are described herein. An exemplary method can provide multiple partitions and multiple tenant-aware programs. Each of the multiple tenant-aware programs is associated with a partition. The method can associate each of a plurality of partitions and a plurality of tenant-aware programs with one of the plurality of tenants. This method can call a tenant-unrecognized process from a calling partition among a plurality of partitions. A calling partition is associated with a calling tenant among multiple tenants. The method can collect tenancy information about calling tenants. In addition, based on the collected tenancy information, the method can range the execution of tenant-unaware processes to calling tenants by setting the process execution environment and resources.

一実施形態に従うと、コンテナ化されたアプリケーションを用いた場合、範囲指定された実行により、マルチテナント・ミドルウェア環境における他のテナントからテナント非認識型プロセスの実行時間を分離することをサポートすることができ、結果として、OSアプリケーションプログラムのマルチテナント動作が行われることとなる。 According to one embodiment, when using a containerized application, it is possible to support the separation of the execution time of the tenant unrecognized process from other tenants in the multi-tenant middleware environment by the scoped execution. As a result, multi-tenant operation of the OS application program is performed.

一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムを示す図である。It is a figure which shows the system for supporting multi-tenancy in the application server, the cloud or other environment according to one Embodiment. 一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す図である。FIG. 5 further illustrates a system for supporting multi-tenancy in an application server, cloud or other environment according to one embodiment. 一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す図である。FIG. 5 further illustrates a system for supporting multi-tenancy in an application server, cloud or other environment according to one embodiment. 一実施形態に従った、例示的なマルチテナント環境で使用されるドメイン構成を示す図である。It is a figure which shows the domain structure used in the example multi-tenant environment according to one Embodiment. 一実施形態に従った例示的なマルチテナント環境をさらに示す図である。It is a figure further showing an exemplary multi-tenant environment according to one embodiment. 一実施形態に従った、テナント非認識型プロセスのテナント範囲指定された実行のためのシステムを示す図である。It is a figure which shows the system for execution which specified the tenant range of the tenant non-recognition type process according to one Embodiment. 一実施形態に従った、テナント非認識型プロセスのテナント範囲指定された実行のためのシステムを示す図である。It is a figure which shows the system for execution which specified the tenant range of the tenant non-recognition type process according to one Embodiment. 一実施形態に従った、テナント非認識型プロセスのテナント範囲指定された実行のためのシステムを示す図である。It is a figure which shows the system for execution which specified the tenant range of the tenant non-recognition type process according to one Embodiment. 一実施形態に従った、テナント非認識型プロセスのテナント範囲指定された実行のための環境およびリソースを作成するための例示的な方法を示すフローチャートである。It is a flowchart which shows the example method for creating the environment and the resource for the tenant range specified execution of the tenant unrecognized process according to one Embodiment. 一実施形態に従った、プロセス・ビルダを作成および構成するための例示的な方法を示すフローチャートである。FIG. 5 is a flow chart illustrating an exemplary method for creating and configuring a process builder according to an embodiment. 一実施形態に従った、MTミドルウェア・アプリケーション(たとえば、JEEアプリケーション)からのテナント非認識型OSアプリケーションのマルチテナント実行のための例示的な方法を示すフローチャートである。It is a flowchart which shows the exemplary method for multi-tenant execution of the tenant non-recognition type OS application from MT middleware application (for example, JEE application) according to one Embodiment. マルチテナント・ミドルウェア・アプリケーションから呼出されたテナント非認識型プロセスのテナント範囲指定された実行をサポートするための例示的な方法を示すフローチャートである。It is a flowchart which shows the example method for supporting the tenant range specified execution of the tenant unrecognized process called from the multitenant middleware application.

詳細な説明:
一実施形態に従うと、マルチテナント・ミドルウェア・アプリケーションから呼出されたテナント非認識型(この明細書中においては異なる呼び方で「テナント非認識の」とも称される)プロセスのテナント範囲指定された実行(この明細書中においては異なる呼び方で「マルチテナント実行」とも称される)をサポートするためのシステムおよび方法がこの明細書中に記載される。例示的な方法は、複数のパーティションおよび複数のテナント認識型(明細書中においては異なる呼び方で「テナント認識の」とも称される)プログラムを提供することができる。複数のテナント認識型プログラムの各々はパーティションに関連付けられている。当該方法は、複数のパーティションおよび複数のテナント認識型プログラムの各々を複数のテナントのうちの1テナントと関連付けることができる。当該方法は、複数のパーティションのうちのコーリングパーティションからテナント非認識型プロセスを呼出すことができる。コーリングパーティションは、複数のテナントのうちのコーリングテナントに関連付けられている。当該方法は、コーリングテナントについてのテナンシ情報を収集することができる。さらに、収集されたテナンシ情報に基づいて、当該方法は、プロセス実行環境およびリソースを設定することにより、テナント非認識型プロセスの実行をコーリングテナントに範囲指定することができる。
Detailed explanation:
According to one embodiment, a tenant-scoped execution of a tenant-unrecognized (also referred to as "tenant-unrecognized" in this specification) process called from a multi-tenant middleware application. Systems and methods for supporting (also referred to herein as "multi-tenant execution") are described herein. An exemplary method can provide multiple partitions and multiple tenant-aware programs (also referred to differently in the specification as "tenant-aware"). Each of the multiple tenant-aware programs is associated with a partition. The method can associate each of a plurality of partitions and a plurality of tenant-aware programs with one of the plurality of tenants. This method can call a tenant-unrecognized process from a calling partition among a plurality of partitions. A calling partition is associated with a calling tenant among multiple tenants. The method can collect tenancy information about calling tenants. In addition, based on the collected tenancy information, the method can range the execution of tenant-unaware processes to calling tenants by setting the process execution environment and resources.

この明細書中に記載されるシステムおよび方法を用いることにより、一実施形態に従って、オペレーティングシステム上で固有のプログラム/プロセスとして実行される非Java(登録商標)コンポーネントを含むテナント認識型JEEアプリケーション(たとえば、SaaSアプリケーション)は、テナントが範囲指定された態様で機能し得ることにより、完全なアプリケーション(エンド・ツー・エンド)マルチテナントを認識させ、分離させることができる。すなわち、マルチテナント・アプリケーション・サーバ環境内に提供されるマルチテナンシ・サポートは、固有のOS上におけるMTアプリケーションサーバ環境の外側でサポートされ得るが、MTアプリケーションサーバ環境(たとえば、WebLogic MT)内で実行されるコンポーネント/プログラムには限定され得ない。 By using the systems and methods described herein, a tenant-aware JEE application (eg, for example) that includes a non-Software as a Service component that runs as a unique program / process on an operating system according to one embodiment. , SaaS application) can recognize and separate a complete application (end-to-end) multi-tenant by allowing the tenant to function in a scoped manner. That is, multi-tenancy support provided within a multi-tenant application server environment can be supported outside the MT application server environment on a unique OS, but is performed within the MT application server environment (eg, WebLogic MT). It cannot be limited to the components / programs.

アプリケーションサーバ(たとえば、マルチテナント(MultiTenant:MT)環境
図1は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムを示す。
Application Server (For example, MultiTenant (MT) Environment) Figure 1 shows a system for supporting multi-tenancy in an application server, cloud or other environment according to one embodiment.

図1に示されるように、一実施形態に従うと、アプリケーションサーバ(たとえば、マルチテナント(MT))環境100または他のコンピューティング環境は、ソフトウェアアプリケーションのデプロイメントおよび実行を可能にするものであって、アプリケーションサーバドメインを定義するために実行時に用いられるドメイン102の構成を含み、当該ドメイン102の構成に従って動作するように構成することができる。 As shown in FIG. 1, according to one embodiment, an application server (eg, multi-tenant (MT)) environment 100 or other computing environment enables the deployment and execution of software applications. It includes the configuration of the domain 102 used at runtime to define the application server domain and can be configured to operate according to the configuration of the domain 102.

一実施形態に従うと、アプリケーションサーバは、実行時に使用されるよう定義される1つ以上のパーティション104を含み得る。各々のパーティションは、グローバルユニークパーティション識別子(identifier:ID)およびパーティション構成に関連付けることができ、さらに、リソースグループテンプレートの参照126および/またはパーティション特有のアプリケーションもしくはリソース128とともに、1つ以上のリソースグループ124を含み得る。ドメインレベルのリソースグループ、アプリケーションおよび/またはリソース140も、任意にはリソースグループテンプレートの参照とともに、ドメインレベルで定義することができる。 According to one embodiment, the application server may include one or more partitions 104 defined to be used at run time. Each partition can be associated with a global unique partition identifier (ID) and partition configuration, and one or more resource groups 124, along with resource group template references 126 and / or partition-specific applications or resources 128. May include. Domain-level resource groups, applications and / or resource 140 can also be defined at the domain level, optionally with reference to the resource group template.

各々のリソースグループテンプレート160は、1つ以上のアプリケーションA162、B164、リソースA166、B168および/または他のデプロイ可能なアプリケーションもしくはリソース170を定義することができ、リソースグループによって参照することができる。たとえば、図1に例示されるように、パーティション104におけるリソースグループ124は、リソースグループテンプレート160を参照する(190)ことができる。 Each resource group template 160 can define one or more applications A162, B164, resources A166, B168 and / or other deployable applications or resources 170 and can be referenced by resource groups. For example, as illustrated in FIG. 1, resource group 124 in partition 104 can refer to resource group template 160 (190).

概して、システムアドミニストレータは、パーティション、ドメインレベルのリソースグループおよびリソースグループテンプレート、ならびにセキュリティ領域を定義することができるとともに、パーティションアドミニストレータは、たとえば、パーティションレベルのリソースグループを作成するか、アプリケーションをパーティションにデプロイするかまたはパーティションについての特定の領域を参照することによって、それら自体のパーティションのアスペクトを定義することができる。 In general, system administrators can define partitions, domain-level resource groups and resource group templates, and areas of security, while partition administrators can, for example, create partition-level resource groups or deploy applications to partitions. You can define the aspect of their own partitions by doing so or by referencing specific areas about the partitions.

図2は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す。 FIG. 2 further shows a system for supporting multi-tenancy in an application server, cloud or other environment according to one embodiment.

図2に示されるように、一実施形態に従うと、パーティション202は、たとえば、リソースグループテンプレート210の参照206を含むリソースグループ205と、仮想ターゲット(たとえば仮想ホスト)情報207と、プラグ接続可能なデータベース(pluggable database:PDB)情報208とを含み得る。リソースグループテンプレート(たとえば210)は、たとえば、Java(登録商標)メッセージサーバ(Java Message Server:JMS)サーバ213、ストア・アンド・フォワード(store-and-forward:SAF)エージェント215、メールセッションコンポーネント216またはJavaデータベースコネクティビティ(Java Database Connectivity:JDBC)リソース217などのリソースとともに、複数のアプリケーションA211およびB212を定義することができる。 As shown in FIG. 2, according to one embodiment, the partition 202 is, for example, a resource group 205 including a reference 206 of the resource group template 210, virtual target (eg, virtual host) information 207, and a pluggable database. It may include (pluggable database: PDB) information 208. The resource group template (eg 210) may be, for example, a Java Message Server (JMS) server 213, a store-and-forward (SAF) agent 215, a mail session component 216 or Multiple applications A211 and B212 can be defined along with resources such as Java Database Connectivity (JDBC) resource 217.

図2に例示されるリソースグループテンプレートが一例として提供される。他の実施形態に従うと、さまざまなタイプのリソースグループテンプレートおよび要素を提供することができる。 The resource group template illustrated in FIG. 2 is provided as an example. According to other embodiments, different types of resource group templates and elements can be provided.

一実施形態に従うと、パーティション(たとえば202)内のリソースグループが、特定のリソースグループテンプレート(たとえば210)を参照する(220)と、パーティション特有の情報230(たとえば、パーティション特有のPDB情報)を示すために、特定のパーティションに関連付けられた情報を、参照されたリソースグループテンプレートと組合わせて用いることができる。次いで、パーティション特有の情報は、パーティションによって使用されるリソース(たとえば、PDBリソース)を構成するようにアプリケーションサーバによって使用可能である。たとえば、パーティション202に関連付けられたパーティション特有のPDB情報は、そのパーティションによって使用されるべき適切なPDB238を備えたコンテナデータベース(container database:CDB)236を構成する(232)ようにアプリケーションサーバによって使用可能である。 According to one embodiment, when a resource group within a partition (eg 202) references a particular resource group template (eg 210) (220), it indicates partition-specific information 230 (eg, partition-specific PDB information). Therefore, the information associated with a particular partition can be used in combination with the referenced resource group template. The partition-specific information is then available to the application server to configure the resources used by the partition (eg, PDB resources). For example, partition-specific PDB information associated with partition 202 can be used by an application server to configure container database (CDB) 236 with the appropriate PDB238 to be used by that partition (232). Is.

同様に、一実施形態に従うと、特定のパーティションに関連付けられた仮想ターゲット情報を用いて、そのパーティションによって使用されるべきパーティション特有の仮想ターゲット240(たとえば、ユニフォーム・リソース・ロケータ(uniform resource locator:URL)(たとえば、http://baylandurgentcare.com)によってアクセス可能にすることができるbaylandurgentcare.com)を定義する(239)ことができる。 Similarly, according to one embodiment, using the virtual target information associated with a particular partition, a partition-specific virtual target 240 (eg, a uniform resource locator: URL) that should be used by that partition. ) (For example, baylandurgentcare.com which can be made accessible by http://baylandurgentcare.com) can be defined (239).

図3は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す。 FIG. 3 further shows a system for supporting multi-tenancy in an application server, cloud or other environment according to one embodiment.

一実施形態に従うと、config.xml構成ファイルなどのシステム構成を用いて、パーティションを定義する。当該パーティションは、そのパーティションに関連付けられたリソースグループについての構成エレメントおよび/または他のパーティション・プロパティを含む。値は、プロパティ名/値の対を用いてパーティションごとに指定することができる。 According to one embodiment, a partition is defined using a system configuration such as a config.xml configuration file. The partition contains configuration elements and / or other partition properties for the resource group associated with that partition. The value can be specified for each partition using the property name / value pair.

一実施形態に従うと、複数のパーティションは、管理されたサーバ/クラスタ242内で、または、CDB243にアクセス可能でありかつウェブ層244を介してアクセス可能である同様の環境内で、実行することができる。これにより、たとえば、ドメインまたはパーティションを(CDBの)PDBのうち1つ以上のPDBに関連付けることが可能となる。 According to one embodiment, multiple partitions can be run within a managed server / cluster 242 or in a similar environment where the CDB243 is accessible and accessible through the web tier 244. it can. This allows, for example, a domain or partition to be associated with one or more PDBs (of a CDB).

一実施形態に従うと、複数のパーティションの各々、この例においてはパーティションA250およびパーティションB260は、そのパーティションに関連付けられた複数のリソースを含むように構成することができる。たとえば、パーティションAは、アプリケーションA1 252と、アプリケーションA2 254と、JMS A 256と、さらには、PDB A 259に関連付けられたデータソースA257とをともに含むリソースグループ251を含むように構成することができる。この場合、パーティションは仮想ターゲットA258を介してアクセス可能である。同様に、パーティションB260は、アプリケーションB1 262と、アプリケーションB2 264と、JMS B 266と、さらには、PDB B 269に関連付けられたデータソースB267とをともに含むリソースグループ261を含むように構成することができる。この場合、パーティションは仮想ターゲットB268を介してアクセス可能である。 According to one embodiment, each of the plurality of partitions, in this example partition A250 and partition B260, can be configured to include a plurality of resources associated with the partition. For example, partition A can be configured to include a resource group 251 that includes application A1 252, application A2 254, JMS A 256, and even data source A257 associated with PDB A 259. .. In this case, the partition is accessible via the virtual target A258. Similarly, partition B260 may be configured to include resource group 261 including application B1 262, application B2 264, JMS B 266, and further data source B 267 associated with PDB B 269. it can. In this case, the partition is accessible via virtual target B268.

上述の例のうちいくつかはCDBおよびPDBの使用を例示しているが、他の実施形態に従うと、他のタイプのマルチテナントのデータベースまたは非マルチテナントのデータベースをサポートすることができる。この場合、特定の構成は、たとえば、スキーマを使用するかまたはさまざまなデータベースを使用することによって、各パーティション毎に提供することができる。 Although some of the above examples illustrate the use of CDBs and PDBs, other embodiments may support other types of multi-tenant or non-multi-tenant databases. In this case, a particular configuration can be provided for each partition, for example by using a schema or by using different databases.

リソース
一実施形態に従うと、リソースは、環境のドメインにデプロイすることができるシステムリソース、アプリケーションまたは他のリソースもしくはオブジェクトである。たとえば、一実施形態に従うと、リソースは、アプリケーション、JMS、JDBC、JavaMail、WLDFもしくはデータソースであり得るか、または、サーバ、クラスタもしくは他のアプリケーションサーバターゲットにデプロイすることができる他のシステムリソースもしくは他のタイプのオブジェクトであり得る。
Resources According to one embodiment, a resource is a system resource, application, or other resource or object that can be deployed in the domain of the environment. For example, according to one embodiment, the resource can be an application, JMS, JDBC, JavaMail, WLDF or data source, or another system resource or other system resource that can be deployed to a server, cluster or other application server target. It can be another type of object.

パーティション
一実施形態に従うと、パーティションは、パーティション識別子(partition identifier:ID)および構成に関連付けられ得るドメインのうち実行時間および管理の下位区分またはスライスであるとともに、アプリケーションを含み得て、ならびに/または、リソースグループおよびリソースグループテンプレートを使用することによってドメイン全体に渡るリソースを参照し得る。
Partition According to one embodiment, a partition can include applications and / or, as well as a subdivision or slice of execution time and management of domains that can be associated with a partition identifier (ID) and configuration. Resources can be referenced throughout the domain by using resource groups and resource group templates.

概して、パーティションは、それ自体のアプリケーションを含み、リソースグループテンプレートを介してドメイン全体に渡るアプリケーションを参照し、それ自体の構成を有し得る。パーティション可能なエンティティは、リソース、たとえば、JMS、JDBC、JavaMail、およびWLDFリソースや、他のコンポーネント、たとえばJNDIネームスペース、ネットワークトラフィック、ワークマネージャ、セキュリティポリシーおよび領域などを含み得る。マルチテナント環境のコンテキストにおいては、システムは、テナントに関連付けられたパーティションの管理および実行時間のアスペクトへのアクセスをテナントに提供するように構成することができる。 In general, a partition may include its own application, reference the application across the domain through a resource group template, and have its own configuration. Partitionable entities can include resources such as JMS, JDBC, JavaMail, and WLDF resources and other components such as JNDI namespaces, network traffic, work managers, security policies and areas. In the context of a multi-tenant environment, the system can be configured to provide the tenant with access to the management and execution time aspects of the partitions associated with the tenant.

一実施形態に従うと、パーティション内の各々のリソースグループは、任意には、リソースグループテンプレートを参照することができる。パーティションは、複数のリソースグループを有し得るとともに、それらの各々はリソースグループテンプレートを参照し得る。各々のパーティションは、パーティションのリソースグループが参照するリソースグループテンプレートにおいて指定されていない構成データについてのプロパティを定義することができる。これにより、パーティションが、リソースグループテンプレートで定義されたデプロイ可能なリソースをそのパーティションで使用されるべき特定の値にバインドするものとして機能することが可能となる。場合によっては、パーティションは、リソースグループテンプレートによって指定される構成情報を無効にすることができる。 According to one embodiment, each resource group in the partition can optionally reference a resource group template. A partition can have multiple resource groups, each of which can reference a resource group template. Each partition can define properties for configuration data that are not specified in the resource group template referenced by the partition's resource group. This allows a partition to act as a bind to the deployable resources defined in the resource group template to specific values that should be used by that partition. In some cases, the partition can invalidate the configuration information specified by the resource group template.

一実施形態に従うと、パーティション構成は、たとえば、config.xml構成ファイルによって定義されるように、複数の構成エレメントを含み得る。複数の構成エレメントは、たとえば、「パーティション(partition)」(そのパーティションを定義する属性および子エレメントを含む);「リソース・グループ(resource-group)」(パーティションにデプロイされるアプリケーションおよびリソースを含む);「リソース・グループ・テンプレート(resource-group-template)」(そのテンプレートによって定義されるアプリケーションおよびリソースを含む);「jdbc・システム・リソース・無効化(jdbc-system-resource-override)」(データベース特有のサービス名、ユーザ名およびパスワードを含む);ならびに、「パーティション・プロパティ(partition-properties)」(リソースグループテンプレートにおいてマクロ置換のために使用可能なプロパティキー値を含む)を含む。 According to one embodiment, the partition configuration may include multiple configuration elements, for example, as defined by the config.xml configuration file. Multiple component elements are, for example, a "partition" (including the attributes and child elements that define that partition); a "resource-group" (including applications and resources deployed in the partition). "Resource-group-template" (including applications and resources defined by that template); "jdbc system resource-override" (database) Includes unique service name, username and password); and includes "partition-properties" (including property key values available for macro replacement in resource group templates).

始動後、システムは、構成ファイルによって提供される情報を用いて、リソースグループテンプレートから各々のリソースについてのパーティション特有の構成エレメントを生成することができる。 After startup, the system can use the information provided by the configuration file to generate partition-specific configuration elements for each resource from the resource group template.

リソースグループ
一実施形態に従うと、リソースグループは、名前付けされ完全に修飾されたデプロイ可能なリソースの集合であって、ドメインまたはパーティションのレベルで定義することができ、かつ、リソースグループテンプレートを参照することができる。リソースグループにおけるリソースは、完全に修飾されているものと見なされる。というのも、アドミニストレータが、それらのリソースを開始させるのに必要とされるかまたはそれらのリソースに接続するのに必要とされるすべての情報、たとえば、データソースに接続するためのクレデンシャル、またはアプリケーションについての目標情報、を提供しているからである。
Resource Group According to one embodiment, a resource group is a named, fully qualified set of deployable resources that can be defined at the domain or partition level and references a resource group template. be able to. Resources in a resource group are considered fully qualified. This is because the administrator has all the information needed to start or connect to those resources, such as the credentials or application to connect to the data source. This is because it provides target information about.

システムアドミニストレータは、ドメインレベルで、またはパーティションレベルでリソースグループを公開することができる。ドメインレベルでは、リソースグループは、関連するリソースをグループ化するのに好都合な方法を提供する。システムは、グループ化されていないリソースと同じドメインレベルのリソースグループにおいて公開されたリソースを管理することができる。このため、リソースは、システム起動中に開始させたり、システムのシャットダウン中に停止させたりすることができる。アドミニストレータはまた、グループ内のリソースを個々に停止させるか、開始させるかまたは削除することができ、グループ上で動作させることによって暗黙的にグループ内のすべてのリソースに対して機能することができる。たとえば、あるリソースグループを停止させることにより、まだ停止されていないグループにおけるすべてのリソースを停止させ;リソースグループを始動させることにより、まだ始動させていないグループにおけるいずれのリソースも始動させ、リソースグループを削除することにより、グループに含まれるすべてのリソースを削除する。 System administrators can publish resource groups at the domain level or at the partition level. At the domain level, resource groups provide a convenient way to group related resources. The system can manage exposed resources in the same domain-level resource groups as ungrouped resources. Therefore, the resource can be started during system startup or stopped during system shutdown. Administrators can also stop, start, or delete resources in a group individually, and by running on the group can implicitly work on all resources in the group. For example, stopping a resource group stops all resources in a group that has not yet been stopped; starting a resource group starts any resource in a group that has not yet started, causing the resource group to start. By deleting, all resources included in the group are deleted.

パーティションレベルでは、システムまたはパーティションアドミニストレータは、任意のセキュリティ制限下で、或るパーティションにおいて0個以上のリソースグループを構成することができる。たとえば、SaaS使用事例においては、さまざまなパーティションレベルのリソースグループは、ドメインレベルのリソースグループテンプレートを参照することができる。PaaS使用事例においては、リソースグループテンプレートを参照しないが代わりにそのパーティション内でのみ利用可能にされるべきアプリケーションおよびそれらの関連するリソースを表わすパーティションレベルのリソースグループを作成することができる。 At the partition level, the system or partition administrator can configure zero or more resource groups on a partition under any security restrictions. For example, in SaaS use cases, various partition-level resource groups can reference domain-level resource group templates. In a PaaS use case, you can create partition-level resource groups that do not refer to resource group templates but instead represent applications that should be made available only within that partition and their associated resources.

一実施形態に従うと、リソースグループ化を用いることで、アプリケーションと、それらアプリケーションがドメイン内で別個の管理ユニットとして使用するリソースとをともにグループ化することができる。たとえば、以下に記載される医療記録(MedRec)アプリケーションにおいては、リソースグループ化によりMedRecアプリケーションおよびそのリソースが定義される。複数のパーティションは、各々がパーティション特有の構成情報を用いて、同じMedRecリソースグループを実行することができ、このため、各々のMedRecインスタンスの一部であるアプリケーションが各々のパーティションにとって特有のものにされる。 According to one embodiment, resource grouping can be used to group both applications and the resources they use as separate management units within the domain. For example, in the medical record (MedRec) application described below, the MedRec application and its resources are defined by resource grouping. Multiple partitions can each run the same MedRec resource group with partition-specific configuration information, which makes the applications that are part of each MedRec instance unique to each partition. To.

リソースグループテンプレート
一実施形態に従うと、リソースグループテンプレートは、リソースグループから参照することができドメインレベルで定義されるデプロイ可能なリソースの集合であり、そのリソースを起動するのに必要な情報のうちいくらかは、パーティションレベル構成の仕様をサポートするように、テンプレート自体の一部として記憶されない可能性がある。ドメインは、リソースグループテンプレートをいくつ含んでもよく、それらの各々は、たとえば、1つ以上の関連するJavaアプリケーションと、それらのアプリケーションが依存するリソースとを含み得る。このようなリソースについての情報のうちのいくらかは、すべてのパーティションにわたって同じであってもよく、他の情報はパーティションごとに異なっていてもよい。すべての構成がドメインレベルで指定される必要はなく、代わりに、パーティションレベル構成が、マクロまたはプロパティ名/値の対を使用することによってリソースグループテンプレートで指定することができる。
Resource Group Template According to one embodiment, a resource group template is a set of deployable resources that can be referenced from a resource group and is defined at the domain level, and some of the information needed to launch that resource. May not be remembered as part of the template itself to support partition-level configuration specifications. A domain may include any number of resource group templates, each of which may include, for example, one or more related Java applications and the resources on which they depend. Some of the information about such resources may be the same across all partitions, and other information may be different from partition to partition. Not all configurations need to be specified at the domain level, instead partition-level configurations can be specified in the resource group template by using macros or property name / value pairs.

一実施形態に従うと、特定のリソースグループテンプレートは、1つ以上のリソースグループによって参照可能である。概して、任意の所与のパーティション内では、リソースグループテンプレートは一度に1つのリソースグループによってのみ参照することができる。すなわち、同じパーティション内で同時に複数のリソースグループによって参照することはできない。しかしながら、異なるパーティションにおける別のリソースグループによって同時に参照することができる。リソースグループを含むオブジェクト、たとえばドメインまたはパーティションは、プロパティ名/値の割当てを用いて、任意のトークンの値をリソースグループテンプレートで設定することができる。システムは、参照するリソースグループを用いてリソースグループテンプレートを起動させると、それらのトークンを、リソースグループが含むオブジェクトにおいて設定された値と置換えることができる。場合によっては、システムはまた、静的に構成されたリソースグループテンプレートおよびパーティションを用いて、パーティション/テンプレートの組合せごとに実行時間構成を生成することができる。 According to one embodiment, a particular resource group template can be referenced by one or more resource groups. In general, within any given partition, a resource group template can only be referenced by one resource group at a time. That is, it cannot be referenced by multiple resource groups at the same time within the same partition. However, it can be referenced simultaneously by different resource groups in different partitions. Objects containing resource groups, such as domains or partitions, can be set with the value of any token in the resource group template using property name / value assignments. When the system invokes a resource group template with a referenced resource group, it can replace those tokens with the values set in the objects it contains. In some cases, the system can also use statically configured resource group templates and partitions to generate a run-time configuration for each partition / template combination.

たとえば、SaaS使用事例においては、システムは、同じアプリケーションおよびリソースを複数回を起動することができるが、そのうちの1回は、それらを用いるであろう各パーティションごとに起動され得る。アドミニストレータがリソースグループテンプレートを定義すると、これらは、どこか他のところで提供されるであろう情報を表わすためにトークンを用いることができる。たとえば、CRM関連のデータリソースに接続する際に使用されるユーザ名は、リソースグループテンプレートにおいて\${CRMDataUsername}として示すことができる。 For example, in the SaaS use case, the system can launch the same applications and resources multiple times, one of which can be launched for each partition that will use them. Once the administrator has defined resource group templates, they can use tokens to represent information that may be provided elsewhere. For example, the username used to connect to a CRM-related data resource can be shown as \ $ {CRMdataUsername} in the resource group template.

テナント
一実施形態に従うと、マルチテナント(MT)アプリケーションサーバ環境などのマルチテナント環境においては、テナントは、1つ以上のパーティションおよび/もしくは1つ以上のテナント認識型アプリケーションによって表現可能であるエンティティ、または1つ以上のパーティションおよび/もしくは1つ以上のテナント認識型アプリケーションに関連付けることができるエンティティである。
Tenants According to one embodiment, in a multi-tenant environment such as a multi-tenant (MT) application server environment, a tenant is an entity that can be represented by one or more partitions and / or one or more tenant-aware applications, or An entity that can be associated with one or more partitions and / or one or more tenant-aware applications.

たとえば、テナントは、別個のユーザ組織、たとえばさまざまな外部会社、特定の企業内のさまざまな部門(たとえばHRおよび財務部)などを表わすことができ、それら各々は、異なるパーティションに関連付けることができる。テナントのグローバルユニークアイデンティティ(テナントID)は、特定の時点において特定のユーザを特定のテナントに関連付けるものである。システムは、たとえば、ユーザアイデンティティの記録を参照することによって、ユーザアイデンティティから、特定のユーザがどのテナントに属しているかを導き出すことができる。ユーザアイデンティティにより、ユーザが実行することを認可されているアクションをシステムが実施することが可能となる。ユーザアイデンティティは、ユーザがどのテナントに属し得るかを含むが、これに限定されない。 For example, a tenant can represent a separate user organization, such as different external companies, different departments within a particular company (eg, HR and Treasury), each of which can be associated with a different partition. A tenant's global unique identity (tenant ID) associates a particular user with a particular tenant at a particular point in time. The system can derive from which tenant a particular user belongs, for example, by referring to a record of user identities. User identity allows the system to perform actions that the user is authorized to perform. User identity includes, but is not limited to, which tenant the user may belong to.

一実施形態に従うと、システムは、互いに異なるテナントの管理および実行時間を分離することを可能にする。たとえば、テナントは、それらのアプリケーションのいくつかの挙動、およびそれらがアクセスできるリソースを構成することができる。システムは、特定のテナントが別のテナントに属するアーティファクトを確実に管理することができないようにし、かつ、実行時に、特定のテナントの代わりに機能するアプリケーションがそのテナントに関連付けられたリソースのみを参照するが他のテナントに関連付けられたリソースは参照しないことを確実にすることができる。 According to one embodiment, the system allows the management and execution times of different tenants to be separated. For example, tenants can configure some behavior of their applications and the resources they can access. The system ensures that a particular tenant cannot manage artifacts that belong to another tenant, and at run time, applications that act on behalf of that particular tenant only see resources associated with that tenant. Can ensure that does not reference resources associated with other tenants.

一実施形態に従うと、テナント非認識型アプリケーションは、アプリケーションが応答している要求をどんなユーザが提示したかにかかわらず、アプリケーションが用いる如何なるリソースにもアクセス可能となるように明示的にテナントに対処する論理を含まないものである。対照的に、テナント認識型アプリケーションは、テナントに明示的に対処する論理を含む。たとえば、ユーザのアイデンティティに基づいて、アプリケーションは、ユーザが属するテナントを導き出すことができ、テナント特有のリソースにアクセスするためにその情報を用いることができる。 According to one embodiment, the tenant-unaware application explicitly addresses the tenant so that it has access to any resource used by the application, regardless of which user presents the request the application is responding to. It does not include the logic to do. In contrast, tenant-aware applications include logic that explicitly addresses tenants. For example, based on the user's identity, the application can derive the tenant to which the user belongs and can use that information to access tenant-specific resources.

一実施形態に従うと、システムは、テナント認識型となるように明示的に書き込まれたアプリケーションをユーザがデプロイすることを可能にし、これにより、アプリケーション開発者は、現在のテナントのテナントIDを取得することができる。次いで、テナント認識型アプリケーションは、このテナントIDを用いて、アプリケーションの単一のインスタンスを用いている複数のテナントを処理することができる。 According to one embodiment, the system allows the user to deploy an application explicitly written to be tenant-aware, which allows the application developer to obtain the tenant ID of the current tenant. be able to. The tenant-aware application can then use this tenant ID to process multiple tenants using a single instance of the application.

たとえば、単一の診療室または病院をサポートするMedRecアプリケーションは、2つの異なるパーティションまたはテナント(たとえばBayland Urgent CareテナントおよびValley Healthテナント)に対して公開することができ、その各々は、基礎をなすアプリケーションコードを変更することなく、別個のPDBなどの別個のテナント特有のリソースにアクセスすることができる。 For example, a MedRec application that supports a single office or hospital can be exposed to two different partitions or tenants (eg Bayland Urgent Care tenant and Valley Health tenant), each of which is the underlying application. You can access separate tenant-specific resources such as separate PDBs without changing the code.

例示的なドメイン構成およびマルチテナント環境
一実施形態に従うと、アプリケーションは、ドメインレベルでリソースグループテンプレートにデプロイすることができるか、または、パーティションに範囲指定されているかもしくはドメインに範囲指定されているリソースグループにデプロイすることができる。アプリケーション構成は、アプリケーション毎またはパーティション毎に指定されたデプロイメントプランを用いて無効化することができる。
An exemplary domain configuration and multi-tenant environment According to one embodiment, an application can be deployed to a resource group template at the domain level, or is a partitioned or domain-scoped resource. Can be deployed in groups. Application configurations can be disabled using a deployment plan specified per application or per partition.

図4は、一実施形態に従った、例示的なマルチテナント環境で使用されるドメイン構成を示す。 FIG. 4 shows a domain configuration used in an exemplary multitenant environment according to one embodiment.

一実施形態に従うと、システムがパーティションを始動させると、当該システムは、提供された構成に従って、それぞれのデータベースインスタンスに対して、各パーティションごとに1つずつ、仮想ターゲット(たとえば仮想ホスト)および接続プールを作成する。 According to one embodiment, when a system starts a partition, the system will have one virtual target (eg, virtual host) and connection pool for each partition for each database instance, according to the configuration provided. To create.

典型的には、各々のリソースグループテンプレートは、1つ以上の関連するアプリケーションと、それらアプリケーションが依存するリソースとを含み得る。各々のパーティションは、それが参照するリソースグループテンプレートにおいて指定されていない構成データを提供することができるが、これは、場合によっては、リソースグループテンプレートによって指定されるいくつかの構成情報を無効にすることを含めて、パーティションに関連付けられた特定値に対するリソースグループテンプレートにおけるデプロイ可能なリソースのバインディングを行うことによって、実行可能である。これにより、システムは、各々のパーティションが定義したプロパティ値を用いて、パーティション毎にリソースグループテンプレートによってさまざまに表わされるアプリケーションを始動させることができる。 Typically, each resource group template may contain one or more related applications and the resources they depend on. Each partition can provide configuration data that is not specified in the resource group template it references, but this sometimes invalidates some of the configuration information specified by the resource group template. This can be done by binding the deployable resources in the resource group template to the specific values associated with the partition, including that. This allows the system to launch applications that are variously represented by resource group templates for each partition, using the property values defined by each partition.

いくつかのインスタンスにおいては、パーティションが含み得るリソースグループは、リソースグループテンプレートを参照しないか、または、それら自体のパーティション範囲指定されたデプロイ可能なリソースを直接定義する。パーティション内で定義されるアプリケーションおよびデータソースは、概して、そのパーティションにとってのみ利用可能である。リソースは、パーティション:<partitionName>/<resource JNDI name>、またはドメイン:<resource JNDI name>を用いて、パーティションの中からアクセスすることができるようにデプロイ可能である。 In some instances, the resource groups that a partition can contain either do not refer to the resource group template or directly define their own partition-ranged deployable resources. Applications and data sources defined within a partition are generally only available for that partition. Resources can be deployed to be accessible from within a partition using partition: <partitionName> / <resource JNDI name> or domain: <resource JNDI name>.

たとえば、MedRecアプリケーションは、複数のJavaアプリケーション、データソース、JMSサーバおよびメールセッションを含み得る。複数のテナントのためにMedRecアプリケーションを実行させるために、システムアドミニストレータは、テンプレートにおけるそれらのデプロイ可能なリソースを公開している単一のMedRecリソースグループテンプレート286を定義することができる。 For example, a MedRec application may include multiple Java applications, data sources, JMS servers and mail sessions. To run MedRec applications for multiple tenants, system administrators can define a single MedRec resource group template 286 that exposes their deployable resources in the template.

ドメインレベルのデプロイ可能なリソースとは対照的に、リソースグループテンプレートにおいて公開されたデプロイ可能なリソースは、テンプレートにおいて完全には構成されない可能性があるか、または、いくつかの構成情報が不足しているので、そのままでは起動させることができない。 In contrast to domain-level deployable resources, deployable resources exposed in a resource group template may not be fully configured in the template or lack some configuration information. Therefore, it cannot be started as it is.

たとえば、MedRecリソースグループテンプレートは、アプリケーションによって用いられるデータソースを公開し得るが、データベースに接続するためのURLを指定しない可能性がある。さまざまなテナントに関連付けられたパーティション、たとえば、パーティションBUC−A290(Bayland Urgent Care:BUC)およびパーティションVH−A292(Valley Health:VH)は、各々がMedRecリソースグループテンプレートを参照する(296,297)MedRecリソースグループ293,294を含むことによって、1つ以上のリソースグループテンプレートを参照することができる。次いで、当該参照を用いて、Bayland Urgent Careテナントによって使用されるBUC−Aパーティションに関連付けられた仮想ホストbaylandurgentcare.com304と、Valley Healthテナントによって使用されるVH−Aパーティションに関連付けられた仮想ホストvalleyhealth.com308とを含む各々のテナントのための仮想ターゲット/仮想ホストを作成する(302,306)ことができる。 For example, the MedRec resource group template may expose the data source used by the application, but may not specify a URL to connect to the database. Partitions associated with various tenants, such as partition BUC-A290 (Bayland Urgent Care: BUC) and partition VH-A292 (Valley Health: VH), each reference a MedRec resource group template (296,297) MedRec. By including resource groups 293 and 294, one or more resource group templates can be referenced. Then, using that reference, the virtual host baylandurgentcare.com 304 associated with the BUC-A partition used by the Bayland Urgent Care tenant and the virtual host valley health.com 304 associated with the VHA partition used by the Valley Health tenant. Virtual targets / virtual hosts can be created for each tenant, including com308 (302,306).

図5は、一実施形態に従った例示的なマルチテナント環境をさらに示す。図5に示されるように、2つのパーティションがMedRecリソースグループテンプレートを参照している上述の例から引続いて、一実施形態に従うと、サーブレットエンジン310は、この例においてはBayland Urgent Careの医師テナント環境320およびValley Healthの医師テナント環境330といった複数のテナント環境をサポートするために用いることができる。 FIG. 5 further shows an exemplary multi-tenant environment according to one embodiment. Continuing from the above example where the two partitions refer to the MedRec resource group template, as shown in FIG. 5, according to one embodiment, the Servlet Engine 310 in this example is the Bayland Urgent Care physician tenant. It can be used to support multiple tenant environments, such as Environment 320 and Valley Health's Physician Tenant Environment 330.

一実施形態に従うと、各々のパーティション321および331は、そのテナント環境についての入来トラフィックを受入れるための異なる仮想ターゲットと、異なるURL322,332とを定義することができる。異なるURL322,332は、パーティションと、この例ではBayland Urgent Careデータベースまたはvalley healthデータベースを含むそれぞれのリソース324、334とに接続するためのものである。同じアプリケーションコードが両方のデータベースに対して実行され得るので、データベースインスタンスは互換性のあるスキーマを用いることができる。システムがパーティションを始動させると、当該システムは、それぞれのデータベースインスタンスに対する接続プールおよび仮想ターゲットを作成することができる。 According to one embodiment, each partition 321 and 331 can define different virtual targets for accepting incoming traffic for its tenant environment and different URLs 322,332. The different URLs 322,332 are for connecting to the partition and its respective resources 324, 334, including the Bayland Urgent Care database or valley health database in this example. Database instances can use compatible schemas because the same application code can be executed against both databases. When a system starts a partition, it can create connection pools and virtual targets for each database instance.

OSプログラムのテナント範囲指定された実行
一実施形態に従うと、この明細書中に記載される方法およびシステムによれば、OS(すなわちテナント非認識型)プログラム、アプリケーションおよびプロセス(この明細書中において、以降、「OSプログラム」、「OSアプリケーション」、「OSプロセス」、「非テナント認識型プログラム」、「非テナント認識型アプリケーション」、および「非テナント認識型プロセス」とさまざまに称される)のテナント範囲指定された実行をサポートすることができる。
Tenant Scope of OS Programs According to a specified execution embodiment, according to the methods and systems described herein, OS (ie, tenant-unaware) programs, applications and processes (in this specification). Tenants of "OS program", "OS application", "OS process", "non-tenant recognition program", "non-tenant recognition application", and "non-tenant recognition process") Can support ranged execution.

典型的には、アプリケーションがMT環境内で実行されると、アプリケーションはテナント範囲指定される。これは、テナント認識型プログラムによってアクセスされるライブラリおよびリソースがたとえばMT環境内の他のテナントから分離されることを意味している。 Typically, when an application is run in an MT environment, the application is tenant ranged. This means that libraries and resources accessed by tenant-aware programs are isolated from, for example, other tenants in the MT environment.

しかしながら、MT環境において動作するテナント認識型プログラムが固有のOS上で動作するテナント非認識型アプリケーション(たとえば、C、C++、Perlなど)をコールすると、OS上で動作するこれらのプログラム間が、ほとんどまたはまったく分離されないという問題が生じる場合がある。すなわち、汎用オペレーティングシステムは、テナンシの概念を有さず、このため、MTアプリケーション(すなわちJEEアプリケーション)に関連付けられたテナンシ(すなわち、MTアプリケーションからの発信コールに関連付けられたテナンシ情報)を認識しない。これにより、共通の環境内で共有のOSリソース(たとえば、ファイル、プロセス、データベース)を用いてOSプログラムを実行することが可能となり、さらには、別個のテナントアプリケーションが外部のOSアプリケーション(たとえば、テナント非認識型アプリケーション)をコールしたときに、テナント文脈が失われたり、実行時間の切離し/分離がもたらされたりする可能性がある。 However, when a tenant-recognized program running in the MT environment calls a tenant-unrecognized application (for example, C, C ++, Perl, etc.) running on a unique OS, most of these programs running on the OS are separated from each other. Or there may be a problem that it is not separated at all. That is, the general-purpose operating system does not have the concept of tenancy and therefore does not recognize the tenancy associated with the MT application (ie, the JEE application) (ie, the tenancy information associated with the outgoing call from the MT application). This makes it possible to execute OS programs using shared OS resources (eg files, processes, databases) within a common environment, and further, separate tenant applications can be external OS applications (eg tenants). When calling an unrecognized application), the tenant context may be lost and execution time may be separated / separated.

図6は、一実施形態に従った、テナント非認識型プロセスのテナント範囲指定された実行のためのシステムを示す。図6に示されるように、マルチテナントアプリケーションサーバ環境600(たとえば、WebLogicマルチテナント)は、テナント1パーティション601およびテナント2パーティション605などのいくつかのテナント・パーティションを含み得る。テナント1パーティションおよびテナント2パーティションは、それぞれ、JEEアプリケーション602およびJEEアプリケーション606などのアプリケーションに関連付けることができ、JEEアプリケーション602およびJEEアプリケーション606は、それぞれ、データソース603およびデータソース607に関連付けられ、データソース603およびデータソース607は、各々のテナントのそれぞれのデータベース604およびデータベース608にアクセスすることを可能にする。 FIG. 6 shows a system for tenant-scoped execution of a tenant-unaware process according to one embodiment. As shown in FIG. 6, the multi-tenant application server environment 600 (eg, WebLogic multi-tenant) may include several tenant partitions such as tenant 1 partition 601 and tenant 2 partition 605. Tenant 1 and tenant 2 partitions can be associated with applications such as JEE application 602 and JEE application 606, respectively, and JEE application 602 and JEE application 606 are associated with data source 603 and data source 607, respectively. Source 603 and data source 607 allow access to the respective databases 604 and 608 of each tenant.

一実施形態に従うと、テナント2に関連付けられたJEEアプリケーションなどのアプリケーションは、たとえば、固有のOS610におけるマルチテナントアプリケーションサーバの外側に位置する(プロセスを呼出す)OSプログラムを呼出すことができる。これは、たとえば、MTアプリケーションサーバ(たとえば、Perlスクリプト、Cプログラムなど)に限定されないMTアプリケーションのコンポーネントが存在する場合に行われる可能性がある。このようなアプリケーション(すなわち、実行すべきMTアプリケーションサーバの外側で実行される外部OSコンポーネントにも依拠するMTアプリケーション)は、複合アプリケーションと称され得る。テナント2に関連付けられたJEEアプリケーションは、MT環境において実行され、実行時間に関連付けられたテナント文脈を有する。 According to one embodiment, an application such as a JEE application associated with tenant 2 can call, for example, an OS program located outside the multi-tenant application server in the unique OS 610 (calling a process). This may happen, for example, if there are components of the MT application that are not limited to the MT application server (eg Perl scripts, C programs, etc.). Such an application (ie, an MT application that also relies on an external OS component that runs outside the MT application server to be executed) can be referred to as a composite application. The JEE application associated with tenant 2 runs in the MT environment and has a tenant context associated with the execution time.

一実施形態に従うと、MTアプリケーション(たとえば、JEEアプリケーション)がOSプログラム/アプリケーション(すなわちプロセス620)を呼出すと、MTアプリケーションは、JEEアプリケーションが利用可能なテナント文脈を拡張/伝搬するために、いくつかの変数625(すなわち環境変数)を設定することができる。これらの変数はテナントID、テナント名、テナント・ファイルシステム(tenant filesystem:TFS)ルート;入出力サブディレクトリを備えた、TFS下のプロセス作業ディレクトリ;テナントDB接続文字列、およびテナント軽量ディレクトリアクセスプロトコル(lightweight directory access protocol:LDAP)ディレクトリURLを含み得る。 According to one embodiment, when an MT application (eg, a JEE application) calls an OS program / application (ie, process 620), the MT application has several to extend / propagate the tenant context available to the JEE application. Variable 625 (ie, environment variable) can be set. These variables are tenant ID, tenant name, tenant filesystem (TFS) root; process working directory under TFS with input / output subdirectories; tenant DB connection string, and tenant lightweight directory access protocol (TFS). lightweight directory access protocol: LDAP) may include a directory URL.

一実施形態に従うと、MTアプリケーションサーバは、MTアプリケーションサーバ環境600に実装されていた各テナント毎に仮想テナント・ファイルシステム630を管理することができる。この仮想テナント・ファイルシステムは、テナントが実装されると、アプリケーションサーバ管理の一部として作成/設定することができる。仮想テナント・ファイルシステムはOS610の一部であり、各テナント毎に1つの仮想テナント・ファイルシステムは、MTアプリケーションサーバ環境において一般にアクティブになっている。 According to one embodiment, the MT application server can manage the virtual tenant file system 630 for each tenant implemented in the MT application server environment 600. This virtual tenant file system can be created / configured as part of application server management once the tenant is implemented. The virtual tenant file system is part of the OS 610, and one virtual tenant file system for each tenant is generally active in the MT application server environment.

一実施形態に従うと、MTアプリケーション(たとえば、JEEアプリケーション)がOSプロセス(すなわちテナント非認識型プロセス)を呼出すと、MTアプリケーションは、付加的に、テナントの仮想ファイルシステム下において一時的プロセス作業ディレクトリを作成することができる。2つ以上のOSプロセスがMTアプリケーションによって呼出されると、MTアプリケーションは、呼出された各OSプロセス毎に1つの一時的作業ディレクトリを作成することができる。MTアプリケーションは、仮想ファイルシステム下に一時的作業ディレクトリを作成する際に、付加的に、入力ディレクトリ、出力ディレクトリ、エラーディレクトリおよびデータベースディレクトリ用の一時的作業ディレクトリの下に、(呼出された各OSプロセス毎に)サブディレクトリを作成することができる。これらのサブディレクトリは、呼出されたOSプロセスのうちリダイレクトされたstdin(入力ストリーム)、stdout(出力ストリーム)およびstderr(エラーストリーム)を受付けることができる。各々の入力サブディレクトリはプロセス入力ファイルで設定することができる。各々の出力サブディレクトリはプロセス出力ファイルを取込む役割を果たし得る。各々のエラーサブディレクトリはプロセスエラー(たとえば、stderr)メッセージを取込む役割を果たし得る。仮想テナント特有のファイルシステムは、OSストレージ640などの固有のストレージに関連付けることができる。 According to one embodiment, when an MT application (eg, a JEE application) calls an OS process (ie, a tenant-unaware process), the MT application additionally creates a temporary process working directory under the tenant's virtual file system. Can be created. When two or more OS processes are called by the MT application, the MT application can create one temporary working directory for each called OS process. When the MT application creates a temporary working directory under the virtual file system, it additionally under the temporary working directory for the input directory, output directory, error directory and database directory (each called OS). You can create subdirectories (for each process). These subdirectories can accept redirected stdin (input stream), stdout (output stream) and stderr (error stream) of the called OS processes. Each input subdirectory can be set in the process input file. Each output subdirectory can serve to populate process output files. Each error subdirectory can serve to capture process error (eg, stderr) messages. A file system specific to a virtual tenant can be associated with a unique storage such as OS storage 640.

一実施形態に従うと、プロセス・ビルダはAPI(たとえば、Java ProcessBuilder API)を含み得る。APIは、クライアントが、実行すべきOSプログラム/アプリケーションのためのコマンドラインを指定し、プロセス環境において設定するように環境変数を構成し、プロセス作業ディレクトリを構成し、プロセス入力、出力およびエラーストリームをファイルシステム上のファイルにリダイレクトすることを可能にする。プロセス・ビルダは、プロセス環境、プロセス作業ディレクトリおよびプロセス入力ストリーム/出力ストリーム/エラーストリームのリダイレクトなどのプロセス(すなわちOSプロセス)が開始される前に、特定のプロセス特徴が設定されるかまたは構成されることを可能にし得る。 According to one embodiment, the process builder may include an API (eg, Java Process Builder API). The API specifies the command line for the OS program / application to be executed by the client, configures environment variables to be set in the process environment, configures the process working directory, and processes process inputs, outputs and error streams. Allows you to redirect to a file on the file system. The process builder is configured or configured with specific process characteristics before processes (ie, OS processes) such as process environment, process work directory, and process input / output stream / error stream redirection are started. Can be made possible.

一実施形態に従うと、MTアプリケーションがOSプロセスを呼出すと、当該MTアプリケーションはプロセス・ビルダ(たとえば、プロセス・ビルダ・インスタンス)を作成して利用することができる。MTアプリケーションからのテナンシ文脈は、環境変数を設定すること、およびプロセス作業ディレクトリを作成して構成することを含め、プロセス・ビルダAPI呼出しの一部として伝搬させることができる。プロセス作業ディレクトリと共に環境変数を利用することにより、リソース(環境変数、プロセス作業ディレクトリ、リダイレクトされた入力/出力ファイル、データベース接続記述子、LDAPディレクトリ、ウォレット)を割当てるようにプロセス・ビルダを構成することができ、テナント非認識型プロセス(たとえば、OSプロセス)の実行がテナンシ文脈内に範囲指定/制限されることを可能にする。このようにして、テナント非認識型プロセス(たとえば、OSプロセス)は、テナント呼出しに特有の作業ディレクトリを得る。この作業ディレクトリは、テナントが指定されている仮想ファイルシステム下にあるとともに、MTアプリケーションサーバ環境600における他のテナントによって作成または所有されるファイルおよびリソースから分離されている。 According to one embodiment, when an MT application calls an OS process, the MT application can create and use a process builder (eg, a process builder instance). The tenancy context from the MT application can be propagated as part of the Process Builder API call, including setting environment variables and creating and configuring the process working directory. Configure the process builder to allocate resources (environment variables, process working directory, redirected input / output files, database connection descriptor, LEAP directory, wallet) by using environment variables with the process working directory. Allows the execution of tenant-unaware processes (eg OS processes) to be scoped / restricted within the tenancy context. In this way, the tenant unrecognized process (for example, the OS process) obtains a working directory specific to the tenant call. This working directory is under the virtual file system to which the tenant is designated and is isolated from the files and resources created or owned by other tenants in the MT application server environment 600.

一実施形態に従うと、テナント非認識型プロセスには、リダイレクトされたプロセス入出力ストリームのためにOSファイルシステム下にあるテナント特有のフォルダが割当てられており、当該テナント非認識型プロセスは、テナント特有のアクセスクレデンシャルを用いてテナントに関連付けられたデータベースに接続して、テナントLDAPディレクトリを用いる。テナント特有のデータベース接続文字列/記述子は、プログラムがテナントデータベースを用いて透過的に機能することを可能にし得る。テナント特有のクレデンシャルは、テナントの仮想ファイルシステムにおけるプロセス作業ディレクトリのデータベースサブディレクトリ下で設定されるウォレットにおいて構成することができる。 According to one embodiment, the tenant-unrecognized process is assigned a tenant-specific folder under the OS file system for the redirected process I / O stream, and the tenant-unrecognized process is tenant-specific. Use the tenant LDAP directory to connect to the database associated with the tenant using the access credentials of. Tenant-specific database connection strings / descriptors may allow the program to function transparently with the tenant database. Tenant-specific credentials can be configured in a wallet set under the database subdirectory of the process working directory in the tenant's virtual file system.

一実施形態に従うと、仮想テナント・ファイルシステムが(しばしば「コーリングテナント」と称され、テナントに関連付けられる)コーリングパーティションからコーリングMTアプリケーションのために作成された後、テナント非認識型プロセスに関連付けられたストリーム(たとえば、入力ストリーム、出力ストリーム、エラーストリーム)が、テナントの仮想ファイルシステムにおけるプロセス作業ディレクトリ下におけるそれぞれの入力サブディレクトリ、出力サブディレクトリおよびのエラーサブディレクトリにリダイレクトされ得る。 According to one embodiment, a virtual tenant file system (often referred to as a "calling tenant" and associated with a tenant) was created for a calling MT application from a calling partition and then associated with a tenant-unaware process. Streams (eg, input stream, output stream, error stream) can be redirected to their respective input subdirectories, output subdirectories, and error subdirectories under the process working directory in the tenant's virtual file system.

このようにして、OSプログラムを呼出す別個のテナントに関連付けられたテナンシ文脈、環境およびデータは、互いから離散的に分離された状態で維持することができ、これにより、MTコンテナ内部から(たとえば、MTコンテナ内のパーティションに代わりに実行されるJEEプログラムから)のコールに基づいて実行されるOSアプリケーション(テナント非認識型)を範囲指定して処理することが可能となり得る。 In this way, the tenancy context, environment and data associated with the separate tenants that call the OS program can be kept discretely separated from each other, thereby from within the MT container (eg, for example). It may be possible to specify a range and process an OS application (tenant unrecognized type) executed based on a call (from a JEE program executed instead of a partition in the MT container).

一実施形態に従うと、テナント非認識型プロセスが実行を完了すると、MTアプリケーションサーバ環境において実行されるMTアプリケーションは、プロセス出力を検索し、プロセス作業ディレクトリをクリーンアップすることができる。 According to one embodiment, when the tenant unrecognized process completes execution, the MT application executed in the MT application server environment can search the process output and clean up the process working directory.

一実施形態に従うと、MTアプリケーションは、プログラムの実行が成功したかどうかを知るために、(たとえば、javaプロセスオブジェクトexitValue()法から)プロセスexitValueステータスコードを得ることができる。MTアプリケーションはまた、プロセス実行が成功したかどうかを調べるために、出力サブフォルダおよびエラーサブフォルダ下において、リダイレクトされたstdoutファイルおよびstderrファイルを検索することができる。テナント非認識型プロセス実行が完了すると、テナントデータベースにおいて更新された結果が、パーティションにおいて実行されるMTアプリケーションによってデータベースから直接アクセスされ得る。 According to one embodiment, the MT application can obtain the process exitValue status code (eg, from the Java process object exitValue () method) to know if the program execution was successful. The MT application can also search the redirected stdout and stderr files under the output and error subfolders to see if the process execution was successful. When the tenant unaware process execution is complete, the updated results in the tenant database can be accessed directly from the database by the MT application running on the partition.

一実施形態に従うと、MTアプリケーションはまた、プロセス作業ディレクトリおよびそのサブフォルダを削除することができ、これにより、ウォレットなどの出力ファイルおよびdbファイルがクリーンアップされる。 According to one embodiment, the MT application can also delete the process working directory and its subfolders, which cleans up output files such as wallets and db files.

一実施形態に従うと、OSプログラムをコールするMTアプリケーションにおいて構成される環境変数は、テナントID、テナント名;テナント・ファイルシステム(TFS)ルート;TFS下における、入力サブディレクトリ、出力サブディレクトリおよびエラーサブディレクトリを備えたプロセス作業ディレクトリ;テナントDB接続文字列、およびテナントLDAP(軽量ディレクトリアクセスプロトコル)ディレクトリURL;を含み得る。 According to one embodiment, the environment variables configured in the MT application that calls the OS program are the tenant ID, tenant name; tenant file system (TFS) root; input subdirectory, output subdirectory, and error subdirectory under TFS. It may include a process working directory with a directory; a tenant DB connection string, and a tenant LDAC (lightweight directory access protocol) directory URL;

一実施形態に従うと、プロセス・ビルダ構成を用いれば、テナント非認識型OSプログラムに対して、テナント文脈内での実行が範囲指定/制限されているリソース(環境変数、プロセス作業ディレクトリ、リダイレクトされた入出力ファイル、DB接続記述子、LDAPディレクトリ、およびウォレット)が割当てられ得る。 According to one embodiment, using the process builder configuration, resources (environment variables, process working directory, redirected) whose execution in the tenant context is scoped / restricted for the tenant unrecognized OS program. Input / output files, DB connection descriptors, LEAP directories, and wallets) can be assigned.

OSプログラムのマルチテナント実行−コンテナ化されたアプリケーション
一実施形態に従うと、この明細書中に記載された方法およびシステムは、実行時にテナントを分離させるためにコンテナ化されたアプリケーションを用いることによって、テナント非認識型プロセス(すなわちOSプロセス)のマルチテナント実行をサポートすることができる。
Multi-tenant Execution of OS Programs-Contained Applications According to one embodiment, the methods and systems described herein are tenants by using containerized applications to separate tenants at run time. It can support multi-tenant execution of unrecognized processes (ie OS processes).

一実施形態に従うと、本開示は、コンテナ化されたアプリケーションを利用して、テナント非認識型プロセスの実行時間中にテナントを分離させることができる。 According to one embodiment, the present disclosure can utilize a containerized application to isolate tenants during the execution time of a tenant-unaware process.

一実施形態に従うと、コンテナ化されたアプリケーションまたはプロセスは、コンテナとしてパッケージ化されたアプリケーションであって、OSベース画像、アプリケーション実行ファイルおよびライブラリなどのアプリケーションを実行させるのに必要な情報を含む。コンテナ化されたアプリケーションは、Linux(登録商標)カーネル750などの同じLinuxカーネルを用いて、Linuxディストリビューション間で共有することができるポータブルアプリケーションであってもよい。コンテナ化されたアプリケーションは、開発者がポータブルアプリケーション/コンテナ化されたアプリケーションを作成し、画像を共有する場合に、同じlinuxカーネルであると想定して、コンテナ化されたアプリケーションが共有していたシステムが、コンテナ画像レジストリまたはリポジトリからコンテナ化されたアプリケーション画像をダウンロードして、コンテナ化されたアプリケーションを実行するためにコンテナを分離独立させることができるように、作成され得る。この点においては、当該アプリケーションは、他のコンテナおよびOSから分離された宛先ホスト上で利用可能になり得るとともに、依然として、必要なライブラリ(たとえば、アプリケーション/プロセスの開発者が意図したのと同じバージョンのライブラリ)を用いて利用可能になり得る。次いで、同じバージョンのライブラリを用いる別のコンテナ化されたアプリケーションインスタンスが存在し得るが、これは別個に実行されることとなる。ドッカー(Docker)はこのようなコンテナフレームワーク/インフラストラクチャの一例である。 According to one embodiment, a containerized application or process is an application packaged as a container and contains information necessary to execute an application such as an OS-based image, an application executable file, and a library. The containerized application may be a portable application that can be shared between Linux distributions using the same Linux kernel, such as the Linux® kernel 750. A containerized application is a system shared by a containerized application, assuming that the developer creates a portable application / containerized application and shares an image with the same Linux kernel. Can be created so that a containerized application image can be downloaded from the container image registry or repository and the container can be spun off to run the containerized application. In this regard, the application may be available on a destination host separate from other containers and OS, and still requires the required libraries (eg, the same version intended by the application / process developer). Can be made available using the library). There may then be another containerized application instance that uses the same version of the library, but this will be done separately. Docker is an example of such a container framework / infrastructure.

図7は、一実施形態に従った、テナント非認識型プロセスについてのマルチテナント実行のためのシステムを示す。図7は、ソフトウェアコンテナをサポートするOSにおいて実行されるコンテナ化されたOSアプリケーションを用いて、MTアプリケーションからコールされるOSプログラムのマルチテナント実行を示す。 FIG. 7 shows a system for multi-tenant execution for a tenant-unrecognized process according to one embodiment. FIG. 7 shows multi-tenant execution of an OS program called from an MT application using a containerized OS application that is executed in an OS that supports a software container.

図7に示されるように、MTアプリケーションサーバ環境600(たとえば、WebLogicマルチテナント)は、テナント1パーティション601およびテナント2パーティション605などのいくつかのテナント・パーティションを含み得る。テナント1パーティションおよびテナント2パーティションは、それぞれ、JEEアプリケーション602およびJEEアプリケーション606などのアプリケーションに関連付けることができ、JEEアプリケーション602およびJEEアプリケーション606は、それぞれデータソース603およびデータソース607に関連付けられ、これにより、各々テナントのそれぞれのデータベース604およびデータベース608にアクセスすることが可能となる。 As shown in FIG. 7, the MT application server environment 600 (eg, WebLogic multi-tenant) may include several tenant partitions such as tenant 1 partition 601 and tenant 2 partition 605. Tenant 1 and tenant 2 partitions can be associated with applications such as JEE application 602 and JEE application 606, respectively, and JEE application 602 and JEE application 606 are associated with data source 603 and data source 607, respectively. , Each tenant can access its own database 604 and database 608.

一実施形態に従うと、MTアプリケーション(たとえば、JEEアプリケーション)が(たとえば、コンテナ化されたアプリケーションとして)テナント非認識型アプリケーションを呼出すと、MTアプリケーションはJEEアプリケーションが利用可能なテナント文脈を拡張する/伝搬させるために、いくつかの変数(すなわち環境変数)を設定することができる。これらの変数はテナントID、テナント名;テナント・ファイルシステム(TFS)ルート;TFS下における、入力サブディレクトリ、出力サブディレクトリおよびエラーサブディレクトリを備えたプロセス作業ディレクトリ;テナントDB接続文字列、およびテナントLDAP(軽量ディレクトリアクセスプロトコル)ディレクトリURL;を含み得る。 According to one embodiment, when an MT application (eg, a JEE application) calls a tenant-unaware application (eg, as a containerized application), the MT application extends / propagates the tenant context available to the JEE application. Some variables (ie environment variables) can be set to make it work. These variables are tenant ID, tenant name; tenant file system (TFS) root; process working directory with input subdirectory, output subdirectory and error subdirectory under TFS; tenant DB connection string, and tenant LDAP. (Lightweight Directory Access Protocol) Directory URL; may be included.

一実施形態に従うと、MTアプリケーションサーバは、MTアプリケーションサーバ環境600に実装されていた各テナント毎に仮想テナント・ファイルシステム735を管理することができる。この仮想テナント・ファイルシステムは、テナントが実装されると、アプリケーションサーバアドミニストレーションの一部として作成/設定することができる。仮想テナント・ファイルシステムはOS610の一部であり、一般には、各テナント毎に1つの仮想テナント・ファイルシステムがMTアプリケーションサーバ環境においてアクティブになっている。 According to one embodiment, the MT application server can manage the virtual tenant file system 735 for each tenant implemented in the MT application server environment 600. This virtual tenant file system can be created / configured as part of application server administration once the tenant is implemented. The virtual tenant file system is a part of OS610, and generally one virtual tenant file system is active in the MT application server environment for each tenant.

一実施形態に従うと、MTアプリケーション(たとえば、JEEアプリケーション)がテナント非認識型アプリケーションを呼出すと、MTアプリケーションは、付加的に、テナントの仮想ファイルシステム下に(この明細書中において「プロセス作業ディレクトリ」とも称される)一時的プロセス作業ディレクトリを作成することができる。2つ以上のテナント非認識型アプリケーションがMTアプリケーションによって呼出されると、MTアプリケーションは、呼出された各テナント非認識型アプリケーション毎に1つのプロセス作業ディレクトリを作成することができる。MTアプリケーションは、仮想ファイルシステム下にプロセス作業ディレクトリを作成する際に、付加的に、入力ディレクトリ、出力ディレクトリ、エラーディレクトリおよびデータベースディレクトリ用のプロセス作業ディレクトリの下に、(呼出された各テナント非認識型アプリケーション毎に)サブディレクトリを作成することができる。これらのサブディレクトリは、呼出されたOSプロセスのうちリダイレクトされたstdin(入力ストリーム)、stdout(出力ストリーム)およびstderr(エラーストリーム)を受付けることができる。各々の入力サブディレクトリはプロセス入力ファイルで設定することができる。各々の出力サブディレクトリはプロセス出力ファイルを取込む役割を果たし得る。各々のエラーサブディレクトリはプロセスエラー(たとえば、stderr)メッセージを取込む役割を果たし得る。仮想テナント特有のファイルシステムは、OSストレージ736などの固有のストレージに関連付けることができる。 According to one embodiment, when an MT application (eg, a JEE application) calls a tenant unrecognized application, the MT application additionally under the tenant's virtual file system (in this specification, the "process working directory"). You can create a temporary process working directory (also known as). When two or more tenant-unrecognized applications are called by the MT application, the MT application can create one process working directory for each called tenant-unrecognized application. When the MT application creates a process working directory under the virtual file system, it additionally under the process working directory for the input directory, output directory, error directory and database directory (each called tenant is unrecognized). You can create subdirectories (for each type application). These subdirectories can accept redirected stdin (input stream), stdout (output stream) and stderr (error stream) of the called OS processes. Each input subdirectory can be set in the process input file. Each output subdirectory can serve to populate process output files. Each error subdirectory can serve to capture process error (eg, stderr) messages. A file system specific to a virtual tenant can be associated with a unique storage such as OS storage 736.

一実施形態に従うと、プロセス・ビルダは、MTアプリケーションによって利用可能であって、API(たとえば、Java ProcessBuilder API)を含み得る。APIは、クライアントが、実行すべきテナント非認識型アプリケーションのためのコマンドラインを指定し、プロセス環境において設定すべき環境変数を構成し、プロセス作業ディレクトリを構成し、プロセス入力、出力およびエラーストリームをファイルシステム上のファイルにリダイレクトすることを可能にする。プロセス・ビルダは、プロセス環境、プロセス作業ディレクトリおよびプロセス入力ストリーム/出力ストリーム/エラーストリームのリダイレクトなどのプロセス(すなわちテナント非認識型アプリケーション)が開始される前に、特定のプロセス特徴が設定または構成されることを可能にし得る。 According to one embodiment, the process builder is available by the MT application and may include APIs (eg, Java Process Builder API). The API specifies the command line for tenant-unaware applications that clients should run, configures environment variables to set in the process environment, configures the process working directory, and processes process inputs, outputs, and error streams. Allows you to redirect to a file on the file system. The process builder sets or configures certain process features before processes such as process environment, process working directory, and process input / output stream / error stream redirects (ie, tenant-unaware applications) are started. Can be made possible.

一実施形態に従うと、MTアプリケーションがテナント非認識型アプリケーションを呼出すと、当該MTアプリケーションは、プロセス・ビルダ(たとえば、プロセス・ビルダ・インスタンス)を作成して利用することができる。MTアプリケーションからのテナンシ文脈は、環境変数を設定すること、および一時的プロセス作業ディレクトリを作成することを含め、プロセス・ビルダAPI呼出しの一部として伝搬させることができる。一時的プロセス作業ディレクトリと共に環境変数を利用することにより、リソース(環境変数、プロセス作業ディレクトリ、リダイレクトされた入力/出力/エラーストリーム、データベース接続記述子、LDAPディレクトリ、ウォレット)を割当てるようにプロセス・ビルダを構成することができ、テナント非認識型アプリケーションの実行がテナンシ文脈内に範囲指定/制限されることを可能にする。このようにして、テナント非認識型アプリケーションは、テナント呼出しに特有の作業ディレクトリを得る。この作業ディレクトリは、テナントが指定された仮想ファイルシステム下にあるとともに、MTアプリケーションサーバ環境600における他のテナントによって作成または所有されるファイルから分離されている。 According to one embodiment, when an MT application calls a tenant-unaware application, the MT application can create and use a process builder (eg, a process builder instance). The tenancy context from the MT application can be propagated as part of the Process Builder API call, including setting environment variables and creating a temporary process working directory. The process builder to allocate resources (environment variables, process working directory, redirected input / output / error stream, database connection descriptor, LEAP directory, wallet) by using environment variables with the temporary process working directory. Can be configured to allow the execution of tenant-unaware applications to be scoped / restricted within the tenancy context. In this way, the tenant-unaware application gets a working directory specific to the tenant call. This working directory is under the virtual file system designated by the tenant and is separated from the files created or owned by other tenants in the MT application server environment 600.

一実施形態に従うと、テナント非認識型アプリケーションには、リダイレクトされたプロセスI/OストリームのためにOSファイルシステム下にあるテナント特有のフォルダが割当てられており、当該テナント非認識型アプリケーションは、テナント特有のアクセスクレデンシャルを用いて、テナントに関連付けられたデータベースに接続するとともに、テナント特有のLDAPディレクトリを用いる。テナント特有のデータベース接続文字列/記述子は、プログラムがテナントデータベースを用いて透過的に機能することを可能にし得る。テナント特有のクレデンシャルは、テナントの仮想ファイルシステムにおいてプロセス作業ディレクトリ下においてデータベースサブディレクトリ下で設定されたウォレットに構成することができる。 According to one embodiment, the tenant unrecognized application is assigned a tenant-specific folder under the OS file system for the redirected process I / O stream, and the tenant unrecognized application is a tenant. Use unique access credentials to connect to the database associated with the tenant and use the tenant-specific LDAP directory. Tenant-specific database connection strings / descriptors may allow the program to function transparently with the tenant database. Tenant-specific credentials can be configured in the wallet set under the database subdirectory under the process working directory in the tenant's virtual file system.

一実施形態に従うと、仮想テナント・ファイルシステムが、(テナントに関連付けられており、しばしば「コーリングテナント」と称される)コーリングパーティションからコーリングMTアプリケーションのために作成された後、テナント非認識型アプリケーション(たとえば、コンテナ化されたアプリケーション)に関連付けられたストリーム(たとえば、入力ストリーム、出力ストリーム、エラーストリーム)は、テナントの仮想ファイルシステムにおけるプロセス作業ディレクトリ下で、それぞれの入力サブディレクトリ、出力サブディレクトリおよびエラーサブディレクトリにリダイレクトすることができる。 According to one embodiment, a virtual tenant file system is created for a calling MT application from a calling partition (associated with a tenant and often referred to as a "calling tenant") and then a tenant-unaware application. Streams associated with (for example, containerized applications) (eg, input stream, output stream, error stream) are under the process working directory in the tenant's virtual file system, respectively, in the input subdirectory, output subdirectory, and You can redirect to the error subdirectory.

一実施形態に従うと、(テナント2のパーティションからのJEEアプリケーションコーリングといった、MTアプリケーションから呼出される)テナント非認識型アプリケーションは、コンテナ化されたアプリケーションとしてパッケージ化することができる。例示的なプロセスにおいては、MTアプリケーションはOSプログラムを呼出すことができる。このような場合、プロセス・ビルダ(たとえば、Java ProcessBuilder)はコンテナ化されたアプリケーションを呼出すことができる。コンテナフレームワークは軽量コンテナ仮想化技術を提供する。1つのこのようなコンテナフレームワークとしてドッカー(Docker)がある。 According to one embodiment, the tenant unrecognized application (called from the MT application, such as JEE application calling from the partition of tenant 2) can be packaged as a containerized application. In an exemplary process, the MT application can call an OS program. In such cases, the process builder (eg Java ProcessBuilder) can call the containerized application. The container framework provides lightweight container virtualization technology. One such container framework is Docker.

一実施形態に従うと、ドッカーなどのコンテナ実行時間は、アプリケーションをパッケージ化するためのフォーマットと、単一画像へのアプリケーションの依存性のすべてとを定義する。この画像はいずれのドッカー対応のマシンにも転送することができ、これは、アプリケーションにエクスポーズされた実行環境が同じになるだろうという保証付きで実行することができる。 According to one embodiment, the execution time of a container such as docker defines the format for packaging the application and all of the application's dependencies on a single image. This image can be transferred to any docker-enabled machine, which can be done with the guarantee that the execution environment exposed to the application will be the same.

ドッカーなどのコンテナフレームワークを備えたOSを用いれば、システムは、アプリケーション・バイナリと、所要のライブラリおよびコンポーネントとを含む階層化されたファイルシステムと共に、ベースOS(たとえば、Ubuntu)を含むアプリケーションコンテナ画像を作成することができる。画像は、自己完結型であり(self-contained)得るとともにポータブルであり得るので、コンテナ化されたアプリケーションが開始されたときにホストに依存することなくアプリケーションを実行させることができる。 Using an OS with a container framework such as a docker, the system will have an application container image containing the base OS (eg Ubuntu), along with a layered file system containing the application binaries and the required libraries and components. Can be created. Images can be self-contained as well as portable, allowing a host-independent application to run when a containerized application is started.

一実施形態に従うと、MTアプリケーション(すなわちJEEアプリケーション606)は、コンテナプロセス(たとえば、ドッカーまたはロケット)を開始することによってテナント非認識型アプリケーションを呼出すことができる。ドケットクライアントなどのコンテナクライアント720は、プロセス・ビルダ(たとえば、テナント2のパーティション605において実行されるJEEアプリケーション606)を用いてMTアプリケーションによって呼出されて、要求の発信者(すなわちJEEアプリケーション)からのテナンシ文脈を用いてOS(テナント非認識型)アプリケーションを開始し得る。コンテナクライアントは、ドッカー・デーモンなどのコンテナ・デーモン725を呼出すことができる。次いで、コンテナ・デーモンは、要求されたコンテナ化されたアプリケーションのアプリケーション画像740をJEEアプリケーションからダウンロードして開始することができる。アプリケーション画像740は、アプリケーション・バイナリと、所要のライブラリおよびコンポーネントとを含む階層化されたファイルシステムと共に、ベースOS(たとえば、Ubuntu)を含み得る。画像は、自己完結型であり得るとともにポータブルであり得るので、ホストに依存することなくアプリケーションを実行させることができる。加えて、コンテナ化されたアプリケーションは、分離されたインスタンスとして実行させることができる。コンテナ化されたアプリケーションは、同じOS上で動作するが、分離して実行される。これは、2つ以上のテナントが、別個のコンテナとして分離された状態で、同じアプリケーションのうち異なるインスタンスを実行させることができることを意味している。 According to one embodiment, the MT application (ie, JEE application 606) can call a tenant-unaware application by initiating a container process (eg, docker or rocket). A container client 720, such as a docket client, is called by an MT application using a process builder (eg, a JEE application 606 running on partition 605 of tenant 2) from the originator of the request (ie, the JEE application). OS (tenant unrecognized) applications can be started using the tenancy context. The container client can call the container daemon 725, such as the docker daemon. The container daemon can then download and start the application image 740 of the requested containerized application from the JEE application. The application image 740 may include a base OS (eg, Ubuntu), along with a layered file system containing application binaries and required libraries and components. Images can be both self-contained and portable, allowing the application to run independently of the host. In addition, containerized applications can be run as separate instances. Containerized applications run on the same OS, but are executed separately. This means that two or more tenants can run different instances of the same application, separated as separate containers.

一実施形態に従うと、コンテナが(コンテナ・デーモンによって)作成されて、アプリケーション画像がコンテナにロードされて、コンテナ化されたアプリケーション730が実行されると、当該アプリケーションはホストに依存することなく実行させることができる。 According to one embodiment, when a container is created (by a container daemon), an application image is loaded into the container, and the containerized application 730 is executed, the application is run independently of the host. be able to.

一実施形態に従うと、コンテナ化されたアプリケーション730は、(テナント文脈、たとえば、OSストレージ736と通信し得るテナント2のパーティションに基づいて)テナントの仮想テナント・ファイルシステム735と通信することができる(I/O)。 According to one embodiment, the containerized application 730 can communicate with the tenant's virtual tenant file system 735 (based on the tenant context, eg, the partition of tenant 2 that can communicate with the OS storage 736). I / O).

一実施形態に従うと、テナント(たとえば、テナント2)の代わりに動作するコンテナ化されたアプリケーションは、必要なクレデンシャルを用いてテナントのデータベース608にアクセスすることができる。 According to one embodiment, a containerized application acting on behalf of the tenant (eg, tenant 2) can access the tenant's database 608 with the required credentials.

一実施形態に従うと、MTアプリケーションは、プログラムの実行が成功したかどうかを知るために、(たとえば、javaプロセスオブジェクトexitValue()法から)プロセスexitValueステータスコードを得ることができる。MTアプリケーションはまた、プロセス実行が成功したかどうかを調べるために、出力サブフォルダおよびエラーサブフォルダ下にあるリダイレクトされたstdoutファイルおよびstderrファイルを検索することができる。テナント非認識型のコンテナ化されたアプリケーションの実行が完了すると、テナントデータベースにおいて更新された結果は、パーティションにおいて実行されるMTアプリケーションによってデータベースから直接アクセスすることができる。 According to one embodiment, the MT application can obtain the process exitValue status code (eg, from the Java process object exitValue () method) to know if the program execution was successful. The MT application can also search the redirected stdout and stderr files under the output and error subfolders to see if the process execution was successful. When the execution of the tenant-unaware containerized application is completed, the updated results in the tenant database can be accessed directly from the database by the MT application running in the partition.

一実施形態に従うと、MTアプリケーションはまた、プロセス作業ディレクトリおよびそのサブフォルダを削除することができ、これにより、ウォレットなどの出力ファイルおよびdbファイルがクリーンアップされる。 According to one embodiment, the MT application can also delete the process working directory and its subfolders, which cleans up output files such as wallets and db files.

図8は、一実施形態に従った、テナント非認識型プロセスについてのマルチテナント実行のためのシステムを示す。図8は、コンテナにおいて実行されるコンテナ化されたOSアプリケーションを用いて、MTアプリケーションからコールされるOSプログラムのマルチテナントの実行を示している。 FIG. 8 shows a system for multi-tenant execution for a tenant-unrecognized process according to one embodiment. FIG. 8 shows the multi-tenant execution of the OS program called from the MT application by using the containerized OS application executed in the container.

図8に示されるように、MTアプリケーションサーバ環境600(たとえば、WebLogicマルチテナント)は、テナント1パーティション601およびテナント2パーティション605などのいくつかのテナント・パーティションを含み得る。テナント1パーティションおよびテナント2パーティションは、それぞれ、JEEアプリケーション602およびJEEアプリケーション606などのアプリケーションに関連付けることができ、JEEアプリケーション602およびJEEアプリケーション606は、それぞれデータソース603およびデータソース607に関連付けられ、これにより、各々のテナントのそれぞれのデータベース604およびデータベース608にアクセスすることが可能となる。 As shown in FIG. 8, the MT application server environment 600 (eg, WebLogic multi-tenant) may include several tenant partitions such as tenant 1 partition 601 and tenant 2 partition 605. Tenant 1 and tenant 2 partitions can be associated with applications such as JEE application 602 and JEE application 606, respectively, and JEE application 602 and JEE application 606 are associated with data source 603 and data source 607, respectively. , It will be possible to access the respective databases 604 and 608 of each tenant.

一実施形態に従うと、MTアプリケーション(たとえば、JEEアプリケーション)が(たとえば、コンテナ化されたアプリケーションとして)テナント非認識型アプリケーションを呼出すと、MTアプリケーションは、JEEアプリケーションが利用可能なテナント文脈を拡張する/伝搬するために、いくつかの変数(すなわち環境変数)を設定することができる。これらの変数はテナントID、テナント名;テナント・ファイルシステム(TFS)ルート;TFS下における、入力サブディレクトリおよび出力サブディレクトリを備えたプロセス作業ディレクトリ;テナントDB接続文字列、およびテナントLDAP(軽量ディレクトリアクセスプロトコル)ディレクトリURL;を含み得る。 According to one embodiment, when an MT application (eg, a JEE application) calls a tenant-unaware application (eg, as a containerized application), the MT application extends the tenant context available to the JEE application / Several variables (ie environment variables) can be set for propagation. These variables are tenant ID, tenant name; tenant file system (TFS) root; process working directory with input and output subdirectories under TFS; tenant DB connection string, and tenant LDAP (lightweight directory access). Protocol) directory URL; may be included.

一実施形態に従うと、MTアプリケーションサーバは、MTアプリケーションサーバ環境600に実装されていた各テナント毎に仮想テナント・ファイルシステム735を管理することができる。この仮想テナント・ファイルシステムは、テナントが実装されると、アプリケーションサーバアドミニストレーションの一部として作成/設定することができる。仮想テナント・ファイルシステムはOS610の一部であり、一般には、各テナント毎に1つの仮想テナント・ファイルシステムがMTアプリケーションサーバ環境においてアクティブになっている。 According to one embodiment, the MT application server can manage the virtual tenant file system 735 for each tenant implemented in the MT application server environment 600. This virtual tenant file system can be created / configured as part of application server administration once the tenant is implemented. The virtual tenant file system is a part of OS610, and generally one virtual tenant file system is active in the MT application server environment for each tenant.

一実施形態に従うと、MTアプリケーション(たとえば、JEEアプリケーション)がテナント非認識型アプリケーションを呼出すと、MTアプリケーションは、付加的に、テナントの仮想ファイルシステム下に一時的プロセス作業ディレクトリを作成することができる。2つ以上のテナント非認識型アプリケーションがMTアプリケーションによって呼出されると、MTアプリケーションは、呼出された各テナント非認識型アプリケーション毎に1つのプロセス作業ディレクトリを作成することができる。MTアプリケーションは、仮想ファイルシステム下にプロセス作業ディレクトリを作成する際に、付加的に、入力ディレクトリ、出力ディレクトリ、エラーディレクトリおよびデータベースディレクトリ用のプロセス作業ディレクトリの下に、(呼出された各テナント非認識型アプリケーション毎に)サブディレクトリを作成することができる。これらのサブディレクトリは、リダイレクトされた(stdin)入力ストリーム、(stdout)出力ストリームおよび(stderr)エラーストリームを受付けることができる。各々の入力サブディレクトリはプロセス入力ファイルで設定する役割を果たし得る。各々の出力サブディレクトリはプロセス出力ファイルを取込む役割を果たし得る。各々のエラーサブディレクトリはプロセスエラー(たとえば、stderr)メッセージを取込む役割を果たし得る。仮想テナント特有のファイルシステムは、OSストレージ736などの固有のストレージに関連付けることができる。 According to one embodiment, when an MT application (eg, a JEE application) calls a tenant-unaware application, the MT application can additionally create a temporary process working directory under the tenant's virtual file system. .. When two or more tenant-unrecognized applications are called by the MT application, the MT application can create one process working directory for each called tenant-unrecognized application. When the MT application creates a process working directory under the virtual file system, it additionally under the process working directory for the input directory, output directory, error directory and database directory (each called tenant is unrecognized). You can create subdirectories (for each type application). These subdirectories can accept redirected (stdin) input stream, (stdout) output stream and (stderr) error stream. Each input subdirectory can serve as a setting in the process input file. Each output subdirectory can serve to populate process output files. Each error subdirectory can serve to capture process error (eg, stderr) messages. A file system specific to a virtual tenant can be associated with a unique storage such as OS storage 736.

一実施形態に従うと、プロセス・ビルダはAPI(たとえば、Java ProcessBuilder API)を含み得る。APIは、クライアントが、実行すべきテナント非認識型アプリケーションのためのコマンドラインを指定し、プロセス環境において設定すべき環境変数を構成し、プロセス作業ディレクトリを構成し、プロセス入力、出力およびエラーストリームをファイルシステム上のファイルにリダイレクトすることを可能にする。プロセス・ビルダは、プロセス環境、プロセス作業ディレクトリおよびプロセス入力ストリーム/出力ストリーム/エラーストリームのリダイレクトなどのプロセス(すなわちテナント非認識型アプリケーション)が開始される前に、特定のプロセス特徴が設定または構成されることを可能にし得る。 According to one embodiment, the process builder may include an API (eg, Java Process Builder API). The API specifies the command line for tenant-unaware applications that clients should run, configures environment variables to set in the process environment, configures the process working directory, and processes process inputs, outputs, and error streams. Allows you to redirect to a file on the file system. The process builder sets or configures certain process features before processes such as process environment, process working directory, and process input / output stream / error stream redirects (ie, tenant-unaware applications) are started. Can be made possible.

一実施形態に従うと、MTアプリケーションがテナント非認識型アプリケーションを呼出すと、当該MTアプリケーションは、プロセス・ビルダ(たとえば、プロセス・ビルダ・インスタンス)を作成して利用することができる。MTアプリケーションからのテナンシ文脈は、環境変数を設定することを含め、プロセス・ビルダAPI呼出しの一部として伝搬させることができる。MTアプリケーションは、VTFS(仮想テナント・ファイルシステム)下においてプロセス作業ディレクトリおよびサブディレクトリ(入力、出力、エラーおよびデータベース)を作成することができる。次いで、MTアプリケーションはプロセス・ビルダAPIを用いて、環境変数、一時的プロセス作業ディレクトリパスを備えたプロセス作業ディレクトリ、リダイレクトされたストリームを構成し得る。プロセス作業ディレクトリと共に環境変数を利用することにより、リソース(環境変数、プロセス作業ディレクトリ、リダイレクトされた入力/出力ファイル、データベース接続記述子、LDAPディレクトリ、ウォレット)を割当てるようにプロセス・ビルダを構成することができ、テナント非認識型アプリケーションの実行がテナンシ文脈内に範囲指定/制限されることを可能にする。このようにして、テナント非認識型アプリケーションは、テナント呼出しに特有の作業ディレクトリを得る。この作業ディレクトリは、テナントが指定された仮想ファイルシステム下にあるとともに、MTアプリケーションサーバ環境600における他のテナントによって作成または所有されるファイルから分離されている。 According to one embodiment, when an MT application calls a tenant-unaware application, the MT application can create and use a process builder (eg, a process builder instance). The tenancy context from the MT application can be propagated as part of the process builder API call, including setting environment variables. MT applications can create process working directories and subdirectories (inputs, outputs, errors and databases) under VTFS (Virtual Tenant File System). The MT application can then use the Process Builder API to configure a process working directory with environment variables, a temporary process working directory path, and a redirected stream. Configure the process builder to allocate resources (environment variables, process working directories, redirected input / output files, database connection descriptors, LEAP directories, wallets) by using environment variables with the process working directory. Allows the execution of tenant-unaware applications to be scoped / restricted within the tenancy context. In this way, the tenant-unaware application gets a working directory specific to the tenant call. This working directory is under the virtual file system designated by the tenant and is separated from the files created or owned by other tenants in the MT application server environment 600.

一実施形態に従うと、テナント非認識型アプリケーションは、I/O動作のためにOSファイルシステム下にあるテナント特有のフォルダを用い、テナント特有のアクセスクレデンシャルを用いてテナントに関連付けられたデータベースに接続し、さらに、テナントLDAPディレクトリを用いる。テナント特有のデータベース接続文字列/記述子は、プログラムがテナントデータベースを用いて透過的に機能することを可能にし得る。テナント特有のクレデンシャルは、テナントの仮想ファイルシステムにおいてプロセス作業ディレクトリ内においてデータベースサブディレクトリ下で設定されたウォレットに構成することができる。 According to one embodiment, the tenant-unrecognized application uses a tenant-specific folder under the OS file system for I / O operation and connects to the tenant-associated database using tenant-specific access credentials. In addition, the tenant LDAP directory is used. Tenant-specific database connection strings / descriptors may allow the program to function transparently with the tenant database. Tenant-specific credentials can be configured in the wallet set under the database subdirectory in the process working directory in the tenant's virtual file system.

一実施形態に従うと、仮想テナント・ファイルシステムが、(テナントに関連付けられており、しばしば「コーリングテナント」と称される)コーリングパーティションからコーリングMTアプリケーションのために作成された後、テナント非認識型アプリケーション(たとえば、コンテナ化されたアプリケーション)に関連付けられたストリーム(たとえば、入力ストリーム、出力ストリーム、エラーストリーム)は、テナントの仮想ファイルシステムにおけるプロセス作業ディレクトリ下で、それぞれのサブフォルダにリダイレクトすることができる。 According to one embodiment, a virtual tenant file system is created for a calling MT application from a calling partition (associated with a tenant and often referred to as a "calling tenant") and then a tenant-unaware application. Streams associated with (eg, containerized applications) (eg, input streams, output streams, error streams) can be redirected to their respective subfolders under the process work directory in the tenant's virtual file system.

一実施形態に従うと、(テナント2のパーティションからのJEEアプリケーションコーリングといった、MTアプリケーションからコールされる)テナント非認識型アプリケーションは、コンテナ化されたアプリケーションとしてパッケージ化することができる。例示的なプロセスにおいては、MTアプリケーションはOSプログラムを呼出すことができる。このような場合、プロセス・ビルダAPIは、コンテナプロセスを呼出すためにMTアプリケーションによって構成される。このようなコンテナフレームワーク/インフラストラクチャの1つとしてドッカーがある。 According to one embodiment, the tenant unrecognized application (called from the MT application, such as JEE application calling from the partition of tenant 2) can be packaged as a containerized application. In an exemplary process, the MT application can call an OS program. In such cases, the process builder API is configured by the MT application to call the container process. One such container framework / infrastructure is a docker.

一実施形態に従うと、ドッカーなどのコンテナフレームワーク/インフラストラクチャは、アプリケーションをパッケージ化するためのフォーマットと、単一の画像に対するそのすべての依存性とを定義することができる。この画像はドッカー・ハブ/リポジトリにアップロードすることができ、この画像は、アプリケーションにエクスポーズされた実行環境が同じになるという保証付きで、当該ドッカー・ハブ/リポジトリからダウンロードして実行することができる。 According to one embodiment, a container framework / infrastructure such as a docker can define a format for packaging an application and all its dependencies on a single image. This image can be uploaded to a docker hub / repository, and this image can be downloaded and run from the docker hub / repository with the guarantee that the execution environment exposed to the application will be the same. it can.

一実施形態に従うと、ドッカーなどのコンテナフレームワークを用いれば、システムは、予め作成されたコンテナ画像815をアプリケーション画像ライブラリ810からダウンロードすることができる。アプリケーション画像815は、アプリケーション・バイナリと、所要のライブラリおよびコンポーネントとを含む階層化されたファイルシステムと共に、ベースOS(たとえば、Ubuntu)を含み得る。画像は、自己完結型であり得るとともにポータブルであり得るので、コンテナが作成されてその内部でアプリケーションが開始されたときに、ホストに依存することなくアプリケーションを実行させることができる。 According to one embodiment, using a container framework such as a docker, the system can download a pre-created container image 815 from the application image library 810. The application image 815 may include a base OS (eg, Ubuntu), along with a layered file system containing application binaries and required libraries and components. Images can be both self-contained and portable, allowing a host-independent application to run when a container is created and the application is started inside it.

一実施形態に従うと、アプリケーション画像ライブラリ815は、ホストローカルファイルシステム上で設定することができるともに、MTアプリケーションサーバ内で実行されるアプリケーションから呼出すことができる所望のプログラムおよびアプリケーションのためにいくつかのコンテナ化されたアプリケーション画像(たとえば、.tarファイル)を含み得る。このようなアプリケーション画像は、たとえば、一般的に要求されているOSプログラムおよびアプリケーションを含み得る。 According to one embodiment, the application image library 815 can be configured on the host local file system and for some desired programs and applications that can be called from an application running within the MT application server. It can contain containerized application images (eg .tar files). Such application images may include, for example, commonly required OS programs and applications.

一実施形態に従うと、MTアプリケーション(すなわちJEEアプリケーション606)は、コンテナプロセス(たとえば、ドッカーまたはロケット)を開始することによりテナント非認識型アプリケーションを呼出すことができる。ドケットクライアントなどのコンテナクライアント720は、プロセス・ビルダ(たとえば、テナント2のパーティション605において実行されるJEEアプリケーション606)を用いてMTアプリケーションによって呼出されて、要求の発信者(すなわちJEEアプリケーション)からのテナンシ文脈を用いてOS(テナント非認識型)アプリケーションを開始することができる。コンテナクライアントは、ドッカー・デーモンなどのコンテナ・デーモン725を呼出すことができる。次いで、コンテナ・デーモンは、要求されたコンテナ化されたアプリケーションのアプリケーション画像740をJEEアプリケーションからダウンロードして開始することができる。アプリケーション画像740は、アプリケーション・バイナリと、所要のライブラリおよびコンポーネントとを含む階層化されたファイルシステムと共に、ベースOS(たとえば、Ubuntu)を含み得る。画像は、自己完結型であり得るとともにポータブルであり得るので、ホストに依存することなくアプリケーションを実行させることができる。加えて、コンテナ化されたアプリケーションは、分離されたインスタンスとして実行させることができる。コンテナ化されたアプリケーションは、同じOS上で動作するが、分離して実行される。これは、2つ以上のテナントが、別個のコンテナとして分離された状態で、同じアプリケーションのうち異なるインスタンスを実行させることができることを意味している。 According to one embodiment, the MT application (ie, JEE application 606) can call a tenant unrecognized application by initiating a container process (eg, docker or rocket). A container client 720, such as a docket client, is called by an MT application using a process builder (eg, a JEE application 606 running on partition 605 of tenant 2) from the originator of the request (ie, the JEE application). OS (tenant unrecognized) applications can be started using the tenancy context. The container client can call the container daemon 725, such as the docker daemon. The container daemon can then download and start the application image 740 of the requested containerized application from the JEE application. The application image 740 may include a base OS (eg, Ubuntu), along with a layered file system containing application binaries and required libraries and components. Images can be both self-contained and portable, allowing the application to run independently of the host. In addition, containerized applications can be run as separate instances. Containerized applications run on the same OS, but are executed separately. This means that two or more tenants can run different instances of the same application, separated as separate containers.

一実施形態に従うと、コンテナリポジトリ810にはいくつかのアプリケーション画像815がポピュレートされ得る。これらのアプリケーション画像はアプリケーション画像ライブラリに予めポピュレートされ得るか、または、図8のコンテナプロセスがアプリケーション画像を作成した後にアプリケーション画像ライブラリに保存され得る。 According to one embodiment, several application images 815 may be populated in the container repository 810. These application images can be prepopulated in the application image library or stored in the application image library after the container process of FIG. 8 creates the application images.

一実施形態に従うと、コンテナが(コンテナ・デーモンによって)作成されて、アプリケーション画像がコンテナにロードされてコンテナ化されたアプリケーション730が実行されると、当該アプリケーションはホストに依存することなく実行させることができる。 According to one embodiment, when a container is created (by a container daemon), an application image is loaded into the container, and the containerized application 730 is executed, the application is run independently of the host. Can be done.

一実施形態に従うと、コンテナ化されたアプリケーション730は、(テナント文脈、たとえば、OSストレージ736と通信し得るテナント2のパーティションに基づいて)テナントの仮想テナント・ファイルシステム735と通信することができる(I/O)。 According to one embodiment, the containerized application 730 can communicate with the tenant's virtual tenant file system 735 (based on the tenant context, eg, the partition of tenant 2 that can communicate with the OS storage 736). I / O).

一実施形態に従うと、テナント(たとえば、テナント2)の代わりに動作するコンテナ化されたアプリケーションは、必要なクレデンシャルを用いてテナントのデータベース608にアクセスすることができる。 According to one embodiment, a containerized application acting on behalf of the tenant (eg, tenant 2) can access the tenant's database 608 with the required credentials.

一実施形態に従うと、MTアプリケーションは、プログラムの実行が成功したかどうかを知るために、(たとえば、javaプロセスオブジェクトexitValue()法から)プロセスexitValueステータスコードを得ることができる。MTアプリケーションはまた、プロセス実行が成功したかどうかを調べるために、出力サブフォルダおよびエラーサブフォルダ下にあるリダイレクトされたstdoutファイルおよびstderrファイルを検索することができる。テナント非認識型のコンテナ化されたアプリケーションの実行が完了すると、テナントデータベースにおいて更新された結果は、パーティションにおいて実行されるMTアプリケーションによってデータベースから直接アクセスすることができる。 According to one embodiment, the MT application can obtain the process exitValue status code (eg, from the Java process object exitValue () method) to know if the program execution was successful. The MT application can also search the redirected stdout and stderr files under the output and error subfolders to see if the process execution was successful. When the execution of the tenant-unaware containerized application is completed, the updated results in the tenant database can be accessed directly from the database by the MT application running in the partition.

一実施形態に従うと、MTアプリケーションはまた、プロセス作業ディレクトリおよびそのサブフォルダを削除することができ、これにより、ウォレットなどの出力ファイルおよびdbファイルがクリーンアップされる。 According to one embodiment, the MT application can also delete the process working directory and its subfolders, which cleans up output files such as wallets and db files.

図9は、一実施形態に従った、テナント非認識型プロセスのテナント範囲指定された実行のための環境およびリソースを作成するための例示的な方法を示すフローチャートである。ステップ910において、プロセス作業ディレクトリはテナント・ファイルシステム(たとえば、仮想テナント・ファイルシステム)の下に作成することができる。ステップ920において、プロセス作業ディレクトリ下のサブディレクトリは、入力フォルダ、出力フォルダ、エラーフォルダおよびデータベースフォルダ用に作成することができる。ステップ930において、入力フォルダはデータファイルを用いて設定することができる。ステップ940において、データベースフォルダは、テナントデータベース構成ファイルおよびクレデンシャル(たとえば、ウォレット)を用いて設定することができる。ステップ950において、テナント文脈に基づいて実行するために、テナント非認識型アプリケーション(たとえば、OSアプリケーション/プロセス)のための環境を完成させることができる。 FIG. 9 is a flow chart illustrating an exemplary method for creating an environment and resources for tenant-scoped execution of a tenant-unaware process according to one embodiment. In step 910, the process working directory can be created under the tenant file system (eg, virtual tenant file system). In step 920, subdirectories under the process working directory can be created for input folders, output folders, error folders and database folders. In step 930, the input folder can be set using the data file. In step 940, the database folder can be set using the tenant database configuration file and credentials (eg, wallet). In step 950, an environment for tenant unrecognized applications (eg, OS applications / processes) can be completed for execution based on the tenant context.

図10は、一実施形態に従った、コンテナ化されたアプリケーションを開始させるためにプロセス・ビルダを作成および構成するための例示的な方法を示すフローチャートである。ステップ1010において、プロセス・ビルダ・インスタンス(たとえば、Java ProcessBuilder API)が作成され得る。ステップ1020において、プロセス環境は(たとえば、テナント文脈を用いて)構成され得る。ステップ1030において、プロセス作業ディレクトリが構成され得る。ステップ1040において、当該方法により、コンテナ化されたアプリケーションを開始するために実行可能なコマンドラインを構成することができる。ステップ1050において、入力ストリーム、出力ストリームおよびエラーストリームなどの、コンテナ化されたアプリケーションからのストリームは、プロセス作業ディレクトリの入力サブディレクトリ、出力サブディレクトリおよびエラーサブディレクトリにリダイレクトすることができる。 FIG. 10 is a flow chart illustrating an exemplary method for creating and configuring a process builder to launch a containerized application according to one embodiment. In step 1010, a process builder instance (eg, Java Process Builder API) can be created. In step 1020, the process environment can be configured (eg, using the tenant context). In step 1030, the process working directory may be configured. In step 1040, the method allows an executable command line to be configured to start a containerized application. At step 1050, streams from containerized applications, such as input streams, output streams, and error streams, can be redirected to the input, output, and error subdirectories of the process working directory.

図11は、一実施形態に従った、MTミドルウェア・アプリケーション(たとえば、JEEアプリケーション)からのテナント非認識型OSアプリケーションのマルチテナント実行のための例示的な方法を示すフローチャートである。この例示的な方法の前提条件として、OSアプリケーション(すなわちMTアプリケーションサーバ環境から呼出されるよう意図されたOSアプリケーション)は、コンテナ化されたアプリケーション(たとえば、コンテナ化されたアプリケーション画像)としてパッケージ化することができる。ステップ1110において、テナント範囲指定された実行のためのプロセス環境およびリソースは、図9におけるフローチャートによって識別されるように、作成することができる。ステップ1120において、プロセス・ビルダ(たとえば、Java ProcessBuilder APIインスタンス)は、図10におけるフローチャートによって識別されるように、作成および構成することができる。ステップ1130において、当該方法によれば、プロセス・ビルダ開始方法を用いて、コンテナ化されたOSアプリケーションプロセスを呼出すことができる。このステップにより、構成されたテナント特有の実行環境が作成され、コンテナプロセスが開始される。コンテナ化されたアプリケーションは、コンテナ実行時間によって実施される他のコンテナ&OSプロセスから実行時間を分離させた状態で、テナント特有の環境およびリソースで実行することができる。ステップ1140において、当該方法では、コンテナ化されたアプリケーションプロセス実行が完了するのを待機し得る。ステップ1150において、プロセス作業ディレクトリのstdoutファイルから出力されたプロセスと、テナントデータベースから出力されたプロセスとを検索し、いずれかの必要な後処理を実行し、結果を反映してテナント特有のデータベースを更新する。ステップ1160において、当該方法では、プロセス作業ディレクトリおよびそのコンテンツを削除しクリーンアップし得る。 FIG. 11 is a flowchart showing an exemplary method for multi-tenant execution of a tenant-unrecognized OS application from an MT middleware application (eg, a JEE application) according to one embodiment. As a prerequisite to this exemplary method, an OS application (ie, an OS application intended to be called from an MT application server environment) is packaged as a containerized application (eg, a containerized application image). be able to. In step 1110, the process environment and resources for tenant ranged execution can be created as identified by the flowchart in FIG. In step 1120, a process builder (eg, a Java Process Builder API instance) can be created and configured as identified by the flowchart in FIG. In step 1130, according to the method, the containerized OS application process can be called using the process builder start method. This step creates the configured tenant-specific execution environment and starts the container process. The containerized application can be executed in the tenant-specific environment and resources in a state where the execution time is separated from other container & OS processes executed by the container execution time. At step 1140, the method may wait for the containerized application process execution to complete. In step 1150, the process output from the stdout file in the process working directory and the process output from the tenant database are searched, one of the necessary post-processings is executed, and the result is reflected to create a tenant-specific database. Update. At step 1160, the method may delete and clean up the process working directory and its contents.

図12は、マルチテナント・ミドルウェア・アプリケーションから呼出されたテナント非認識型プロセスのテナント範囲指定された実行をサポートするための例示的な方法を示すフローチャートである。ステップ1210において、当該方法は、アプリケーションサーバ環境が実行されている1つ以上のコンピュータにおいて、各々がドメインの管理および実行時間下位区分を備える複数のパーティションと、複数のテナント認識型プログラムとを提供し、複数のテナント認識型プログラムの各々は、複数のパーティションのうちの1パーティションに関連付けられている。 FIG. 12 is a flow chart illustrating an exemplary method for supporting tenant-scoped execution of a tenant-unaware process called from a multi-tenant middleware application. In step 1210, the method provides a plurality of partitions and a plurality of tenant-aware programs, each of which has domain management and execution time subdivisions, on one or more computers running an application server environment. , Each of the plurality of tenant-aware programs is associated with one of the plurality of partitions.

ステップ1220において、当該方法は、複数のパーティションおよび複数のテナント認識型プログラムの各々を、複数のテナントのうちの1テナントによって使用されるように当該1テナントに関連付けることができる。 In step 1220, the method can associate each of the plurality of partitions and the plurality of tenant-aware programs with the one tenant for use by one of the plurality of tenants.

ステップ1230において、当該方法は、複数のパーティションのうちのコーリングパーティションからテナント非認識型プロセスを呼出すことができる。コーリングパーティションは、複数のテナントのうちのコーリングテナントに関連付けられている。 At step 1230, the method can call a tenant-unaware process from a calling partition out of a plurality of partitions. A calling partition is associated with a calling tenant among multiple tenants.

ステップ1240において、当該方法は、コーリングテナントについてのテナンシ情報を収集することができる。 At step 1240, the method can collect tenancy information about calling tenants.

ステップ1250において、当該方法は、収集されたテナンシ情報に基づいて、テナント非認識型プロセスの実行をコーリングテナントに範囲指定することができる。実行を範囲指定することにより、コーリングテナントに範囲指定されたテナント非認識型プロセスの実行をマルチテナント・ミドルウェア環境における他のテナントから分離することが可能になる。 At step 1250, the method can scope the execution of tenant-unaware processes to calling tenants based on the collected tenancy information. By specifying the execution range, it is possible to separate the execution of the tenant unrecognized process specified in the calling tenant from other tenants in the multi-tenant middleware environment.

この発明は、この開示の教示に従ってプログラミングされた1つ以上のプロセッサ、メモリおよび/またはコンピュータ読取り可能記憶媒体を含む、1つ以上の従来の汎用または特化型デジタルコンピュータ、コンピューティング装置、マシン、またはマイクロプロセッサを使用して都合よく実現されてもよい。ソフトウェア技術の当業者には明らかであるように、この開示の教示に基づいて、適切なソフトウェアコーディングが、熟練したプログラマによって容易に準備され得る。 The present invention comprises one or more conventional general purpose or specialized digital computers, computing devices, machines, including one or more processors, memories and / or computer readable storage media programmed according to the teachings of this disclosure. Alternatively, it may be conveniently implemented using a microprocessor. Appropriate software coding can be easily prepared by a skilled programmer based on the teachings of this disclosure, as will be apparent to those skilled in the art of software technology.

実施形態によっては、本発明は、本発明のプロセスのうちいずれかを実行するためにコンピュータをプログラムするのに使用できる命令が格納された非一時的な記録媒体または(1つまたは複数の)コンピュータ読取り可能な媒体であるコンピュータプログラムプロダクトを含む。この記録媒体は、フロッピー(登録商標)ディスク、光ディスク、DVD、CD−ROM、マイクロドライブ、および光磁気ディスクを含む、任意の種類のディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリデバイス、磁気もしくは光カード、ナノシステム(分子メモリICを含む)、または、命令および/もしくはデータを格納するのに適した任意の種類の媒体もしくはデバイスを含み得るものの、これらに限定されない。 In some embodiments, the invention is a non-temporary recording medium or computer (s) that contains instructions that can be used to program a computer to perform any of the processes of the invention. Includes computer program products that are readable media. This recording medium includes any type of disk, ROM, RAM, EPROM, EEPROM, DRAM, VRAM, flash memory, including floppy (registered trademark) disks, optical disks, DVDs, CD-ROMs, microdrives, and magneto-optical disks. It may include, but is not limited to, devices, magnetic or optical cards, nanosystems (including molecular memory ICs), or any type of medium or device suitable for storing instructions and / or data.

本発明のこれまでの記載は例示および説明を目的として提供されている。すべてを網羅すること、または本発明を開示された形態そのものに限定することは意図されていない。当業者には数多くの変更および変形が明らかであろう。変更例および変形例は開示された特徴の如何なる適切な組合わせをも含み得る。実施の形態は、本発明の原理およびその実際の応用を最もうまく説明することによって他の当業者がさまざまな実施の形態および意図している特定の用途に適したさまざまな変形を理解できるようにするために、選択され説明されている。本発明の範囲は添付の特許請求の範囲およびそれらの同等例によって規定されるものと意図されている。 Previous descriptions of the present invention are provided for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the disclosed form itself. Numerous changes and variations will be apparent to those skilled in the art. Modifications and modifications may include any suitable combination of disclosed features. The embodiments best explain the principles of the invention and its practical application so that other skilled arts can understand the various embodiments and the various variations suitable for the particular application intended. To be selected and described. The scope of the present invention is intended to be defined by the appended claims and their equivalents.

Claims (30)

マルチテナント・ミドルウェア・アプリケーションから呼出されたテナント非認識型プロセスの、テナント範囲指定された実行をサポートするための方法であって、
アプリケーションサーバ環境が実行されている1つ以上のコンピュータにおいて、
各々が、前記アプリケーションサーバ環境の実行時に使用されるリソースへの参照を提供する複数のパーティションと、
複数のテナント認識型プログラムとを提供するステップを含み、前記複数のテナント認識型プログラムの各々は、前記複数のパーティションのうちの1パーティションに関連付けられており、前記方法はさらに、
前記複数のパーティションの各々および前記複数のテナント認識型プログラムの各々を、複数のテナントのうち1テナントによって使用されるように、前記1テナントに関連付けるステップと、
前記複数のパーティションのうちのコーリングパーティションから前記テナント非認識型プロセスを呼出すステップとを含み、前記コーリングパーティションは、前記複数のテナントのうちのコーリングテナントに関連付けられており、前記方法はさらに、
前記コーリングテナントについてのテナンシ情報を収集するステップと、
前記コーリングテナントについての収集された前記テナンシ情報に基づいて、テナント特有の仮想ファイルシステムを作成するステップと、
収集された前記テナンシ情報に基づいて、プロセス実行環境およびリソースを設定することによって前記テナント非認識型プロセスの実行を前記コーリングテナントに範囲指定するステップとを含み、前記テナント非認識型プロセスの実行を前記コーリングテナントに範囲指定するステップは、
前記テナント非認識型プロセスのストリームを前記テナント特有の仮想ファイルシステムにリダイレクトするステップを含み、前記テナント非認識型プロセスのストリームは、入力ストリーム、出力ストリームおよびエラーストリームのうち少なくとも1つを含み、
実行を範囲指定するステップはマルチテナント・ミドルウェア環境における他のテナントから前記コーリングテナントに範囲指定された前記テナント非認識型プロセスの実行を分離することを可能にする、方法。
A method for supporting tenant-scoped execution of tenant-unaware processes called from multi-tenant middleware applications.
On one or more computers running the application server environment
Multiple partitions, each providing a reference to the resources used when running the application server environment,
Each of the plurality of tenant-aware programs includes a step of providing a plurality of tenant-aware programs, and each of the plurality of tenant-aware programs is associated with one of the plurality of partitions.
A step of associating each of the plurality of partitions and each of the plurality of tenant-aware programs with the one tenant so as to be used by one of the plurality of tenants.
The calling partition comprises a step of calling the tenant unrecognized process from the calling partition of the plurality of partitions, the calling partition is associated with the calling tenant of the plurality of tenants, and the method further comprises.
Steps to collect tenancy information about the calling tenant,
Steps to create a tenant-specific virtual file system based on the tenancy information collected for the calling tenant, and
The execution of the tenant unrecognized process includes the step of specifying the execution of the tenant unrecognized process to the calling tenant by setting the process execution environment and resources based on the collected tenancy information. The step of specifying the range to the calling tenant is
The tenant-unaware process stream includes a step of redirecting the tenant-unaware process stream to the tenant-specific virtual file system, and the tenant-unaware process stream includes at least one of an input stream, an output stream, and an error stream.
A method that allows the execution-scoped step to separate the execution of the tenant-unaware process scoped to the calling tenant from other tenants in a multi-tenant middleware environment.
前記マルチテナント・ミドルウェア・アプリケーションは、前記複数のパーティションのうち前記コーリングパーティションに関連付けられており、前記マルチテナント・ミドルウェア・アプリケーションは、前記テナント非認識型プロセスを呼出すことに関連付けて前記テナンシ情報を渡す、請求項1に記載の方法。 The multi-tenant middleware application is associated with the calling partition among the plurality of partitions, and the multi-tenant middleware application passes the tenancy information in association with calling the tenant-unaware process. , The method according to claim 1. 前記テナント特有の仮想ファイルシステム下にプロセス作業ディレクトリを作成するステップをさらに含み、前記プロセス作業ディレクトリは、入力サブディレクトリ、出力サブディレクトリ、データベースサブディレクトリおよびエラーサブディレクトリを含む、請求項1または2に記載の方法。 The step of creating a process working directory under the tenant-specific virtual file system is further included, and the process working directory includes an input subdirectory, an output subdirectory, a database subdirectory, and an error subdirectory, according to claim 1 or 2. The method described. 少なくとも1つのデータファイルで前記入力サブディレクトリを設定するステップと、
前記コーリングテナントに関連付けられた構成ファイルおよびクレデンシャルを含むウォレットを前記データベースサブディレクトリ下に設定するステップとを含む、請求項3に記載の方法。
Steps to set the input subdirectory with at least one data file,
The method according to the steps including, in claim 3 for setting the wallet containing the configuration files and credentials associated with the calling tenant under the database subdirectory.
前記テナント非認識型プロセスの完了後、前記テナント非認識型プロセスによってテナント特有のデータベースにアクセスするステップをさらに含み、アクセスは前記ウォレットを介して許可され、さらに、
前記テナント非認識型プロセスが完了し、前記テナント非認識型プロセスによってテナント特有のデータベースにアクセスするステップの後、前記テナント特有の仮想ファイルシステムをクリーンアップするステップを含み、前記テナント特有の仮想ファイルシステムをクリーンアップするステップは、前記プロセス作業ディレクトリを削除するステップを含む、請求項4に記載の方法。
After the completion of the tenant unaware process, the tenant unaware process further includes the step of accessing the tenant-specific database, the access being granted through the wallet, and further.
The tenant-specific virtual file system includes a step of cleaning up the tenant-specific virtual file system after the tenant-unrecognized process is completed and the tenant-unrecognized process accesses the tenant-specific database. 4. The method of claim 4, wherein the step of cleaning up includes the step of deleting the process working directory.
前記テナント非認識型プロセスの前記ストリームは、前記プロセス作業ディレクトリの前記入力サブディレクトリ、前記出力サブディレクトリおよび前記エラーサブディレクトリにそれぞれリダイレクトされる、請求項3から5のいずれか一項に記載の方法。 The method according to any one of claims 3 to 5, wherein the stream of the tenant-unaware process is redirected to the input subdirectory, the output subdirectory, and the error subdirectory of the process working directory, respectively. .. 前記複数のパーティションのうちの前記コーリングパーティションから呼出された前記テナント非認識型プロセスは複合アプリケーションの一部であり、前記複合アプリケーションはさらに、前記複数のパーティションのうちの前記コーリングパーティションの文脈において実行されるテナント認識型アプリケーションを含む、請求項1から6のいずれか一項に記載の方法。 The tenant-unaware process called from the calling partition of the plurality of partitions is part of a composite application, which further runs in the context of the calling partition of the plurality of partitions. The method according to any one of claims 1 to 6, which includes a tenant-aware application. マルチテナント・ミドルウェア・アプリケーションから呼出されたテナント非認識型プロセスのテナント範囲指定された実行をサポートするためのシステムであって、
アプリケーションサーバ環境が実行されている1つ以上のコンピュータとともに、
各々が、前記アプリケーションサーバ環境の実行時に使用されるリソースへの参照を提供する複数のパーティションと、
複数のテナント認識型プログラムとを含み、各々のテナント認識型プログラムは、前記複数のパーティションのうちの1つに関連付けられており、
前記複数のパーティションの各々および前記複数のテナント認識型プログラムの各々は、複数のテナントのうちの1テナントによって使用されるように、前記1テナントに関連付けられており、
前記複数のパーティションのうちのコーリングパーティションは前記テナント非認識型プロセスを呼出し、前記コーリングパーティションは、前記複数のテナントのうちのコーリングテナントに関連付けられており、
前記コーリングテナントについてのテナンシ情報が収集され、
テナント特有の仮想ファイルシステムは、前記コーリングテナントについての収集された前記テナンシ情報に基づいて作成され、
収集された前記テナンシ情報に基づいて、前記テナント非認識型プロセスの実行は、プロセス実行環境およびリソースを設定することによって前記1テナントに範囲指定され、前記テナント非認識型プロセスの実行を前記コーリングテナントに範囲指定するステップは、
前記テナント非認識型プロセスのストリームを前記テナント特有の仮想ファイルシステムにリダイレクトするステップを含み、前記テナント非認識型プロセスのストリームは、入力ストリーム、出力ストリームおよびエラーストリームのうち少なくとも1つを含み、
前記テナント非認識型プロセスの実行を範囲指定するステップは、前記コーリングテナントに範囲指定された前記テナント非認識型プロセスの実行マルチテナント・ミドルウェア環境における他のテナントから分離することを可能にする、システム。
Tenant range of unrecognized processes called from multi-tenant middleware applications A system to support specified execution.
With one or more computers running the application server environment
Multiple partitions, each providing a reference to the resources used when running the application server environment,
Each tenant-aware program includes a plurality of tenant-aware programs, and each tenant-aware program is associated with one of the plurality of partitions.
Each of the plurality of partitions and each of the plurality of tenant-aware programs are associated with the one tenant so as to be used by one of the plurality of tenants.
The calling partition among the plurality of partitions calls the tenant-unaware process, and the calling partition is associated with the calling tenant among the plurality of tenants.
Tenancy information about the calling tenant is collected
The tenant-specific virtual file system is created based on the tenancy information collected for the calling tenant.
Based on the collected tenancy information, the execution of the tenant unrecognized process is scoped to the one tenant by setting the process execution environment and resources, and the execution of the tenant unrecognized process is executed by the calling tenant. The step to specify the range is
The tenant-unaware process stream includes a step of redirecting the tenant-unaware process stream to the tenant-specific virtual file system, and the tenant-unaware process stream includes at least one of an input stream, an output stream, and an error stream.
The step of scoped execution of the tenant unrecognized process makes it possible to separate the execution of the tenant unrecognized process scoped to the calling tenant from other tenants in the multitenant middleware environment. system.
前記マルチテナント・ミドルウェア・アプリケーションは、前記複数のパーティションのうち前記コーリングパーティションに関連付けられており、前記マルチテナント・ミドルウェア・アプリケーションは、前記テナント非認識型プロセスを呼出すことに関連付けて前記テナンシ情報を渡す、請求項8に記載のシステム。 The multi-tenant middleware application is associated with the calling partition among the plurality of partitions, and the multi-tenant middleware application passes the tenancy information in association with calling the tenant-unaware process. , The system according to claim 8. プロセス作業ディレクトリは、前記テナント特有の仮想ファイルシステム下に作成され、前記プロセス作業ディレクトリは、入力サブディレクトリ、出力サブディレクトリ、データベースサブディレクトリおよびエラーサブディレクトリを含む、請求項8または9に記載のシステム。 The system according to claim 8 or 9, wherein the process working directory is created under the tenant-specific virtual file system, and the process working directory includes an input subdirectory, an output subdirectory, a database subdirectory, and an error subdirectory. .. 前記入力サブディレクトリは少なくとも1つのデータファイルで設定され、前記データベースサブディレクトリ下に、前記コーリングテナントに関連付けられた構成ファイルおよびクレデンシャルを含むウォレット設定され、請求項10に記載のシステム。 It said input sub-directory is set at least one data file, the under database subdirectory, the wallet containing the configuration file and credentials associated with the calling tenant Ru is set, the system according to claim 10. 前記テナント非認識型プロセスの完了後、前記テナント非認識型プロセスによって、前記ウォレットを用いて、テナント特有のデータベースにアクセスし、前記テナント特有の仮想ファイルシステムは前記テナント非認識型プロセスの完了後にクリーンアップされ、前記テナント特有の仮想ファイルシステムをクリーンアップすることは、前記プロセス作業ディレクトリを削除することを含む、請求項11に記載のシステム。 After the tenant unrecognized process is completed, the tenant unrecognized process uses the wallet to access the tenant-specific database, and the tenant-specific virtual file system is cleaned after the tenant unrecognized process is completed. The system according to claim 11, wherein cleaning up the tenant-specific virtual file system is including deleting the process working directory. 前記テナント非認識型プロセスの前記ストリームは、前記プロセス作業ディレクトリの前記入力サブディレクトリ、前記出力サブディレクトリおよび前記エラーサブディレクトリにそれぞれリダイレクトされる、請求項10から12のいずれか一項に記載のシステム。 The system according to any one of claims 10 to 12, wherein the stream of the tenant-unaware process is redirected to the input subdirectory, the output subdirectory, and the error subdirectory of the process working directory, respectively. .. 前記複数のパーティションのうち前記コーリングパーティションから呼出された前記テナント非認識型プロセスは複合アプリケーションの一部であり、前記複合アプリケーションはさらに、前記複数のパーティションのうち前記コーリングパーティションの文脈において実行されるテナント認識型アプリケーションを含む、請求項8から13のいずれか一項に記載のシステム。 The tenant unrecognized process called from the calling partition among the plurality of partitions is a part of a composite application, and the composite application is further executed in the context of the calling partition among the plurality of partitions. The system according to any one of claims 8 to 13, including a recognition type application. マルチテナント・ミドルウェア・アプリケーションから呼出されたテナント非認識型プロセスのテナント範囲指定された実行をサポートするための方法であって、
アプリケーションサーバ環境が実行されている1つ以上のコンピュータにおいて、
各々のパーティションが、前記アプリケーションサーバ環境の実行時に使用されるリソースへの参照を提供する複数のパーティションと、
複数のテナント認識型プログラムとを提供するステップを含み、前記複数のテナント認識型プログラムの各々は、前記複数のパーティションのうちの1パーティションに関連付けられており、前記方法はさらに、
前記複数のパーティションの各々および前記複数のテナント認識型プログラムの各々を、複数のテナントのうちの1テナントによって使用されるように、前記1テナントに関連付けるステップと、
前記複数のパーティションのうちコーリングパーティションから前記テナント非認識型プロセスを呼出すステップとを含み、前記コーリングパーティションは、前記複数のテナントのうちコーリングテナントに関連付けられており、前記方法はさらに、
前記コーリングテナントについてのテナンシ情報を収集するステップと、
収集された前記テナンシ情報に基づいて、プロセス実行環境およびリソースを設定することによって前記テナント非認識型プロセスの実行を前記コーリングテナントに範囲指定するステップとを含み、前記テナント非認識型プロセスの実行を前記コーリングテナントに範囲指定するステップは、
前記テナント非認識型プロセスをコンテナ化されたプロセスとして開始するステップを含み、前記コンテナ化されたプロセスは、前記テナント非認識型プロセスに関連付けられたライブラリおよび実行ファイルを含み、
前記コンテナ化されたプロセスはマルチテナント・ミドルウェア環境における他のテナントから前記コーリングテナントのための前記テナント非認識型プロセスの実行を分離することができるスタンドアロンのプロセスである、方法。
A method for supporting tenant-scoped execution of tenant-unaware processes called from multi-tenant middleware applications.
On one or more computers running the application server environment
Each partition has multiple partitions that provide references to the resources used when running the application server environment.
Each of the plurality of tenant-aware programs includes a step of providing a plurality of tenant-aware programs, and each of the plurality of tenant-aware programs is associated with one of the plurality of partitions.
A step of associating each of the plurality of partitions and each of the plurality of tenant-aware programs with the one tenant so as to be used by one of the plurality of tenants.
The calling partition includes a step of calling the tenant unrecognized process from the calling partition among the plurality of partitions, the calling partition is associated with the calling tenant among the plurality of tenants, and the method further comprises.
Steps to collect tenancy information about the calling tenant,
The execution of the tenant unrecognized process includes the step of specifying the execution of the tenant unrecognized process to the calling tenant by setting the process execution environment and resources based on the collected tenancy information. The step of specifying the range to the calling tenant is
The containerized process includes a library and an executable associated with the tenant unrecognized process and includes a step of initiating the tenant unrecognized process as a containerized process.
A method, wherein the containerized process is a stand-alone process that can separate the execution of the tenant-unaware process for the calling tenant from other tenants in a multi-tenant middleware environment.
前記コーリングテナントについての収集された前記テナンシ情報に基づいて、テナント特有の仮想ファイルシステムを作成するステップをさらに含み、前記テナント特有の仮想ファイルシステムは、入力サブディレクトリ、出力サブディレクトリ、データベースサブディレクトリおよびエラーサブディレクトリを含む、請求項15に記載の方法。 Further including the step of creating a tenant-specific virtual file system based on the tenancy information collected for the calling tenant, the tenant-specific virtual file system includes an input subdirectory, an output subdirectory, a database subdirectory and 15. The method of claim 15, which includes an error subdirectory. 前記テナント非認識型プロセスの完了後、前記テナント非認識型プロセスによって、テナント特有のデータベースにアクセスするステップをさらに含み、
前記テナント非認識型プロセスは、前記コーリングテナントに関連付けられた構成ファイルおよびクレデンシャルを含むウォレットを用いて、前記テナント特有のデータベースにアクセスする、請求項15または16に記載の方法。
After the completion of the tenant unaware process, the tenant unaware process further includes the step of accessing the tenant-specific database.
15. The method of claim 15 or 16, wherein the tenant-unaware process uses a wallet containing configuration files and credentials associated with the calling tenant to access the tenant-specific database.
前記テナント非認識型プロセスをコンテナ化されたプロセスとして開始するステップは、
コンテナ・デーモンによってアプリケーション画像にアクセスするステップを含み、前記アプリケーション画像は前記テナント非認識型プロセスに関連付けられており、さらに、
前記テナントに関連付けられたコンテナを作成するステップと、
前記コンテナ内の前記アプリケーション画像を開始するステップとを含む、請求項15から17のいずれか一項に記載の方法。
The step of starting the tenant unrecognized process as a containerized process is
Including the step of accessing the application image by the container daemon, the application image is associated with the tenant unrecognized process, and further.
Steps to create a container associated with the tenant,
The method of any one of claims 15-17, comprising the step of initiating the application image in the container.
前記アクセスされたアプリケーション画像は、アプリケーション画像リポジトリに格納される、請求項18に記載の方法。 The method of claim 18, wherein the accessed application image is stored in an application image repository. 前記アプリケーション画像のストリームは、前記テナント特有の仮想ファイルシステムにリダイレクトされ、前記アプリケーション画像のストリームは、入力ストリーム、出力ストリームおよびエラーストリームのうち少なくとも1つを含む、請求項18または19に記載の方法。 The method of claim 18 or 19, wherein the stream of application images is redirected to the tenant-specific virtual file system, and the stream of application images comprises at least one of an input stream, an output stream and an error stream. .. 前記複数のパーティションのうち前記コーリングパーティションから呼出された前記テナント非認識型プロセスは、複合アプリケーションの一部であり、前記複合アプリケーションはさらに、前記複数のパーティションのうち前記コーリングパーティションの文脈において実行されるテナント認識型アプリケーションを含む、請求項15から20のいずれか一項に記載の方法。 The tenant-unaware process called from the calling partition of the plurality of partitions is part of a composite application, which further runs in the context of the calling partition of the plurality of partitions. The method of any one of claims 15 to 20, comprising a tenant-aware application. マルチテナント・ミドルウェア・アプリケーションから呼出されたテナント非認識型プロセスのテナント範囲指定された実行をサポートするためのシステムであって、
アプリケーションサーバ環境が実行されている1つ以上のコンピュータとともに、
各々が、前記アプリケーションサーバ環境の実行時に使用されるリソースへの参照を提供する複数のパーティションと、
複数のテナント認識型プログラムとを含み、各々のテナント認識型プログラムは、前記複数のパーティションのうちの1つに関連付けられており、
前記複数のパーティションの各々および前記複数のテナント認識型プログラムの各々は、複数のテナントのうちの1テナントによって使用されるように、前記1テナントに関連付けられており、
前記複数のパーティションのうちコーリングパーティションは前記テナント非認識型プロセスを呼出し、前記コーリングパーティションは、前記複数のテナントのうちコーリングテナントに関連付けられており、
前記コーリングテナントについてのテナンシ情報が収集され、
収集された前記テナンシ情報に基づいて、プロセス実行環境およびリソースを設定することによって前記テナント非認識型プロセスの実行が前記1テナントに範囲指定され、
前記テナント非認識型プロセスの実行を前記コーリングテナントに範囲指定することは、
前記テナント非認識型プロセスをコンテナ化されたプロセスとして開始することを含み、前記コンテナ化されたプロセスは、前記テナント非認識型プロセスに関連付けられたライブラリおよび実行ファイルを含み、
前記コンテナ化されたプロセスはマルチテナント・ミドルウェア環境における他のテナントから前記コーリングテナントのための前記テナント非認識型プロセスの実行を分離することができるスタンドアロンのプロセスである、システム。
Tenant range of unrecognized processes called from multi-tenant middleware applications A system to support specified execution.
With one or more computers running the application server environment
Multiple partitions, each providing a reference to the resources used when running the application server environment,
Each tenant-aware program includes a plurality of tenant-aware programs, and each tenant-aware program is associated with one of the plurality of partitions.
Each of the plurality of partitions and each of the plurality of tenant-aware programs are associated with the one tenant so as to be used by one of the plurality of tenants.
Of the plurality of partitions, the calling partition calls the tenant-unaware process, and the calling partition is associated with the calling tenant among the plurality of tenants.
Tenancy information about the calling tenant is collected
By setting the process execution environment and resources based on the collected tenancy information, the execution of the tenant unrecognized process is scoped to the one tenant.
Specifying the execution of the tenant unrecognized process to the calling tenant is not possible.
Including starting the tenant unrecognized process as a containerized process, the containerized process contains libraries and executables associated with the tenant unrecognized process.
The containerized process is a stand-alone process that can separate the execution of the tenant-unaware process for the calling tenant from other tenants in a multi-tenant middleware environment.
前記コーリングテナントについての収集された前記テナンシ情報に基づいて、テナント特有の仮想ファイルシステムが作成され、前記テナント特有の仮想ファイルシステムは、入力サブディレクトリ、出力サブディレクトリ、データベースサブディレクトリおよびエラーサブディレクトリを含む、請求項22に記載のシステム。 Based on the tenancy information collected for the calling tenant, a tenant-specific virtual file system is created, and the tenant-specific virtual file system has input subdirectories, output subdirectories, database subdirectories, and error subdirectories. 22. The system according to claim 22. 前記テナント非認識型プロセスの完了後、前記テナント非認識型プロセスは、前記コーリングテナントに関連付けられた構成ファイルおよびクレデンシャルを含むウォレットを用いて、テナント特有のデータベースにアクセスする、請求項22または23に記載のシステム。 According to claim 22 or 23, after the tenant unrecognized process is completed, the tenant unrecognized process accesses the tenant-specific database using the wallet containing the configuration file and credentials associated with the calling tenant. Described system. 前記テナント非認識型プロセスをコンテナ化されたプロセスとして開始することは、
コンテナ・デーモンからアプリケーション画像にアクセスすることを含み、前記アプリケーション画像は前記テナント非認識型プロセスに関連付けられており、さらに、
前記テナントに関連付けられたコンテナを作成することと、
前記コンテナ内の前記アプリケーション画像を開始することとを含む、請求項22から24のいずれか一項に記載のシステム。
Starting the tenant unrecognized process as a containerized process
Including accessing the application image from the container daemon, the application image is associated with the tenant unrecognized process, and further.
Creating a container associated with the tenant
The system according to any one of claims 22 to 24, comprising initiating the application image in the container.
前記アクセスされたアプリケーション画像は、アプリケーション画像リポジトリに格納される、請求項25に記載のシステム。 25. The system of claim 25, wherein the accessed application image is stored in an application image repository. 前記アプリケーション画像のストリームは、テナント特有の仮想ファイルシステムにリダイレクトされ、前記アプリケーション画像のストリームは、入力ストリーム、出力ストリームおよびエラーストリームのうち少なくとも1つを含む、請求項25または26に記載のシステム。 25 or 26. The system of claim 25 or 26, wherein the stream of application images is redirected to a tenant-specific virtual file system, the stream of application images comprising at least one of an input stream, an output stream and an error stream. 前記複数のパーティションのうち前記コーリングパーティションから呼出された前記テナント非認識型プロセスは複合アプリケーションの一部であり、前記複合アプリケーションはさらに、前記複数のパーティションのうちの前記コーリングパーティションの文脈において実行されるテナント認識型アプリケーションを含む、請求項22から27のいずれか一項に記載のシステム。 The tenant unrecognized process called from the calling partition among the plurality of partitions is a part of a composite application, and the composite application is further executed in the context of the calling partition among the plurality of partitions. The system according to any one of claims 22 to 27, which includes a tenant-aware application. プログラム命令を含むコンピュータプログラムであって、前記プログラム命令は、1つ以上のコンピュータによって実行されると、前記1つ以上のコンピュータに請求項1から7および15から21のいずれか一項に記載の方法を実行させる、コンピュータプログラム。 A computer program comprising a program instruction, wherein the program instruction is executed by one or more computers, according to any one of claims 1 to 7 and 15 to 21 to the one or more computers. A computer program that runs the method. 請求項1から7および請求項15から21のいずれか一項に記載の方法を実行するように構成されたシステム。 A system configured to perform the method according to any one of claims 1-7 and 15-21.
JP2017561342A 2015-10-23 2016-09-09 Systems and methods for multi-tenant execution of OS programs called from multi-tenant middleware applications Active JP6866307B2 (en)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201562245611P 2015-10-23 2015-10-23
US62/245,611 2015-10-23
US15/059,193 US9811386B2 (en) 2015-10-23 2016-03-02 System and method for multitenant execution of OS programs invoked from a multitenant middleware application
US15/059,193 2016-03-02
US15/059,872 US9819609B2 (en) 2015-10-23 2016-03-03 System and method for multitenant execution of OS programs invoked from a multitenant middleware application
US15/059,872 2016-03-03
PCT/US2016/051099 WO2017069864A1 (en) 2015-10-23 2016-09-09 System and method for multitenant execution of os programs invoked from a multitenant middleware application

Publications (3)

Publication Number Publication Date
JP2018536206A JP2018536206A (en) 2018-12-06
JP2018536206A5 JP2018536206A5 (en) 2019-08-08
JP6866307B2 true JP6866307B2 (en) 2021-04-28

Family

ID=60765562

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017561342A Active JP6866307B2 (en) 2015-10-23 2016-09-09 Systems and methods for multi-tenant execution of OS programs called from multi-tenant middleware applications

Country Status (4)

Country Link
EP (1) EP3365779A1 (en)
JP (1) JP6866307B2 (en)
KR (1) KR102559507B1 (en)
CN (1) CN107533485B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113448593A (en) * 2020-07-31 2021-09-28 心医国际数字医疗系统(大连)有限公司 Automatic deployment method and device for diagnosis and treatment system platform application and electronic equipment

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2011289318B2 (en) * 2010-08-11 2016-02-25 Security First Corp. Systems and methods for secure multi-tenant data storage
WO2012063301A1 (en) 2010-11-08 2012-05-18 株式会社日立製作所 Computer system, multitenant control method, and multitenant control program
US9460169B2 (en) * 2011-01-12 2016-10-04 International Business Machines Corporation Multi-tenant audit awareness in support of cloud environments
CN102333115A (en) * 2011-09-01 2012-01-25 杭州湾云计算技术有限公司 Method and device for transforming existing Web application into SaaS multi-tenant application
US9003477B2 (en) * 2012-06-27 2015-04-07 Microsoft Technology Licensing, Llc Model for managing hosted resources using logical scopes
CN104428760A (en) 2012-07-03 2015-03-18 惠普发展公司,有限责任合伙企业 Managing a multitenant cloud service
US9509553B2 (en) * 2012-08-13 2016-11-29 Intigua, Inc. System and methods for management virtualization
US9276942B2 (en) 2012-09-07 2016-03-01 Oracle International Corporation Multi-tenancy identity management system
JP2014096675A (en) 2012-11-08 2014-05-22 Hitachi Ltd Communication apparatus and setting method
CN104050201B (en) * 2013-03-15 2018-04-13 伊姆西公司 Method and apparatus for the data management in multi-tenant distributed environment
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
US9961011B2 (en) * 2014-01-21 2018-05-01 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
CN104104513A (en) * 2014-07-22 2014-10-15 浪潮电子信息产业股份有限公司 Safety isolation method for cloud side multi-tenant data storage
CN104598249B (en) * 2015-02-05 2017-09-01 浙江天正信息科技有限公司 Software personalisation customization and dispositions method that multi-tenant is perceived

Also Published As

Publication number Publication date
CN107533485A (en) 2018-01-02
EP3365779A1 (en) 2018-08-29
KR102559507B1 (en) 2023-07-25
KR20180072593A (en) 2018-06-29
CN107533485B (en) 2021-01-12
JP2018536206A (en) 2018-12-06

Similar Documents

Publication Publication Date Title
US9811386B2 (en) System and method for multitenant execution of OS programs invoked from a multitenant middleware application
US9819609B2 (en) System and method for multitenant execution of OS programs invoked from a multitenant middleware application
JP6876836B2 (en) Systems and methods to support partitions in a multi-tenant application server environment
JP6461167B2 (en) System and method for supporting multi-tenancy in an application server, cloud or other environment
US20230037542A1 (en) System and method for providing a cloud computing environment
JP6703527B2 (en) System and method for determination of partition identifier in a multi-tenant application server environment
JP6505823B2 (en) System and method for supporting namespaces in a multi-tenant application server environment
JP6611798B2 (en) System and method for using global runtime in a multi-tenant application server environment
JP6599448B2 (en) System and method for providing an end-to-end lifecycle in a multi-tenant application server environment
JP6491243B2 (en) System and method for supporting multiple partition editing sessions in a multi-tenant application server environment
US9747137B2 (en) System and method for providing a partition file system in a multitenant application server environment
JP6615796B2 (en) System and method for partition migration in a multi-tenant application server environment
JP6574794B2 (en) System and method for portable partitions in a multi-tenant application server environment
US11907905B2 (en) Namespace management techniques for facilitating multi-cluster application development
JP6866307B2 (en) Systems and methods for multi-tenant execution of OS programs called from multi-tenant middleware applications
Cohen et al. Google Compute Engine: Managing Secure and Scalable Cloud Computing
Singh et al. Cloud Native Infrastructure with Azure

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190626

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200901

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201020

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210309

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210407

R150 Certificate of patent or registration of utility model

Ref document number: 6866307

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250