CN106575242A - 用于在多租户应用服务器环境中支持命名空间的系统和方法 - Google Patents
用于在多租户应用服务器环境中支持命名空间的系统和方法 Download PDFInfo
- Publication number
- CN106575242A CN106575242A CN201580038690.2A CN201580038690A CN106575242A CN 106575242 A CN106575242 A CN 106575242A CN 201580038690 A CN201580038690 A CN 201580038690A CN 106575242 A CN106575242 A CN 106575242A
- Authority
- CN
- China
- Prior art keywords
- subregion
- jndi
- trees
- application
- resource
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
根据实施例,这里描述一种用于在多租户应用服务器环境中支持命名空间的系统和方法。所述应用服务器环境能够包括具有多个分区的域。绑定到域级资源的全局命名空间或JNDI树能够保持一批分区根节点,每个分区根节点是分区JNDI树的根节点。通过包括特定于特定分区的属性,使分区JNDI树中的每个节点变得分区感知。用于分区的初始上下文能够被创建以用于将资源查找请求分派给所述分区,并且能够被其它应用重新使用以访问所述分区中的资源。
Description
版权声明
本专利文件的公开的一部分包含受到版权保护的材料。当本专利文件或专利公开出现在专利商标局专利文件或记录中时,版权所有者不反对由任何人拓制本专利文件或专利公开,但在其它方面完全保留所有版权权利。
技术领域
本发明的实施例一般地涉及应用服务器和云平台环境,并且具体地讲,涉及一种用于在多租户应用服务器环境中支持命名空间的系统和方法。
背景技术
软件应用服务器(其示例包括Oracle WebLogic Server(WLS)和Glassfish)通常提供用于运行企业软件应用的管理环境。最近,也已开发用于云环境的技术,所述技术允许用户或租户在云环境内开发和运行他们的应用,并且利用由所述环境提供的分布式资源。
发明内容
根据实施例,这里描述一种用于在多租户应用服务器环境中支持命名空间的系统和方法。所述应用服务器环境能够包括具有多个分区的域。绑定到域级资源的全局命名空间或JNDI树能够保持一批分区根节点,每个分区根节点是分区JNDI树的根节点。通过包括特定于特定分区的属性,使分区JNDI树中的每个节点变得分区感知。用于分区的初始上下文能够被创建以用于将资源查找请求分派给所述分区,并且能够被其它应用重新使用以访问所述分区中的资源。
附图说明
图1表示根据实施例的用于在应用服务器、云或其它环境中支持多租户的系统。
图2进一步表示根据实施例的用于在应用服务器、云或其它环境中支持多租户的系统。
图3进一步表示根据实施例的用于在应用服务器、云或其它环境中支持多租户的系统。
图4表示根据实施例的用于示例性多租户环境的域配置。
图5进一步表示根据实施例的示例性多租户环境。
图6表示根据实施例的用于在应用服务器环境、云或其它环境中支持域中的多个分区JNDI树的系统。
图7进一步表示根据实施例的用于在应用服务器环境、云或其它环境中支持域中的多个分区JNDI树的系统。
图8表示根据实施例的用于在应用服务器环境、云或其它环境中支持域中的多个分区JNDI树的方法。
图9表示根据实施例的用于在应用服务器环境、云或其它环境中支持域中的多个分区JNDI树的示例性系统。
具体实施方式
根据实施例,这里描述一种用于在多租户应用服务器环境中支持命名空间的系统和方法。所述应用服务器环境能够包括具有多个分区的域。绑定到域级资源的全局命名空间或JNDI树能够保持一批分区根节点,每个分区根节点是分区JNDI树的根节点。通过包括特定于特定分区的属性,使分区JNDI树中的每个节点变得分区感知。用于分区的初始上下文能够被创建以用于将资源查找请求分派给所述分区,并且能够被其它应用重新使用以访问所述分区中的资源。
应用服务器(例如,多租户,MT)环境
图1表示根据实施例的用于在应用服务器、云或其它环境中支持多租户的系统。
如图1中所示,根据实施例,应用服务器(例如,多租户,MT)环境100或实现软件应用的部署和执行的其它计算环境能够被配置为包括域102配置并且根据域102配置操作,所述域102配置在运行时被用于定义应用服务器域。
根据实施例,应用服务器能够包括被定义为在运行时使用的一个或多个分区104。每个分区能够与分区标识符(ID)和分区配置关联,并且还能够包括与对资源组模板的引用126一起的一个或多个资源组124和/或分区特定应用或资源128。也能够在域级定义域级资源组、应用和/或资源140,其可选地具有对资源组模板。
每个资源组模板160能够定义一个或多个应用A 162、B 164、资源A 166、B 168和/或其它可部署应用或资源170,并且能够由资源组引用。例如,如图1中所示,分区104中的资源组124能够引用190资源组模板160。
通常,系统管理员能够定义分区、域(domain)级资源组和资源组模板和安全领域(realm);而分区管理员能够例如通过创建分区级资源组、将应用部署到分区或引用用于分区的特定域来定义他们自己的分区的各方面。
图2进一步表示根据实施例的用于在应用服务器、云或其它环境中支持多租户的系统。
如图2中所示,根据实施例,分区202能够包括例如资源组205(资源组205包括对资源组模板210的引用206)、虚拟目标(例如,虚拟主机)信息207和可插拔数据库(PDB)信息208。资源组模板(例如,210)能够定义例如多个应用A 211和B 212以及资源,诸如Java消息服务器(JMS)服务器213、存储转发(SAF)代理215、邮件会话部件216或Java数据库连接(JDBC)资源217。
作为示例提供图2中示出的资源组模板;根据其它实施例,能够提供不同类型的资源组模板和元素。
根据实施例,当分区(例如,202)引用220特定资源组模板(例如,210)时,能够结合引用的资源组模板使用与特定分区关联的信息以指示分区特定信息230(例如,分区特定PDB信息)。分区特定信息能够随后由应用服务器使用以配置用于由分区使用的资源(例如,PDB资源)。例如,与分区202关联的分区特定PDB信息能够由应用服务器使用以配置232用于由该分区使用的具有合适的PDB 238的容器数据库(CDB)236。
类似地,根据实施例,与特定分区关联的虚拟目标信息能够被用于定义239用于由所述分区使用的分区特定虚拟目标240(例如,baylandurgentcare.com),能够随后使得可经统一资源定位符(URL)(例如,http://baylandurgentcare.com)访问所述分区特定虚拟目标240。
图3进一步表示根据实施例的用于在应用服务器、云或其它环境中支持多租户的系统。
根据实施例,系统配置(诸如,config.xml配置文件)被用于定义分区(包括用于与该分区关联的资源组的配置元素)和/或其它分区属性。能够使用属性名/值对每分区地指定值。
根据实施例,能够在受管服务器/集群242或类似环境内执行多个分区,所述受管服务器/集群242或类似环境能够提供对CDB 243的访问并且可经web层244被访问。这允许例如域与CDB关联,每个分区隐式地与(CDB的)一个或多个PDB关联。
根据实施例,所述多个分区(在这个示例中,分区A 250和分区B 260)中的每个分区能够被配置为包括与该分区关联的多个资源。例如,分区A能够被配置为包括资源组251,所述资源组251包含应用A1 252、应用A2 254和JMS A 256以及与PDB A 259关联的数据源A257,其中可经虚拟目标A 258访问所述分区。类似地,分区B 260能够被配置为包括资源组261,所述资源组261包含应用B1 262、应用B2 264和JMS B 266以及与PDB B 269关联的数据源B 267,其中可经虚拟目标B 268访问所述分区。
尽管以上示例中的几个示例表示CDB和PDB的使用,但根据其它实施例,能够支持其它类型的多租户或非多租户数据库,其中例如通过使用模式(schema)或使用不同数据库能够为每个分区提供特定配置。
资源
根据实施例,资源是系统资源、应用或能够被部署到环境的域的其它资源或对象。例如,根据实施例,资源能够是应用、JMS、JDBC、JavaMail、WLDF、数据源,或能够被部署到服务器、集群或其它应用服务器目标的其它系统资源或其它类型的对象。
分区
根据实施例,分区是能够与分区标识符(ID)和配置关联的域的运行时和管理性细分部分或片,并且能够包含应用和/或通过使用资源组和资源组模板来引用域范围资源。
通常,分区能够包含它自己的应用,经资源组模板引用域范围应用,并且具有它自己的配置。可分区的实体能够包括资源(例如,JMS、JDBC、JavaMail、WLDF资源)和其它部件(诸如,JNDI命名空间、网络业务、工作管理器和安全策略和领域(realm))。在多租户环境的情况下,所述系统能够被配置为提供对与租户关联的分区的管理性和运行时方面的租户访问。
根据实施例,分区内的每个资源组能够引用一个或多个资源组模板。每个分区能够定义未在该分区的资源组引用的资源组模板中指定的配置数据的属性(property)。这使该分区能够用作将在资源组模板中定义的可部署资源绑定到用于该分区的特定值。在一些情况下,分区能够覆写由资源组模板指定的配置信息。
根据实施例,如例如由config.xml配置文件所定义的分区配置能够包括多个配置元素,例如:“partition”,包含定义分区的性质(attribute)和子元素;“resource-group”,包含部署到分区的应用和资源;“resource-group-template”,包含由该模板定义的应用和资源;“jdbc-system-resource-override”,包含数据库特定服务名、用户名和密码;和“partition-properties”,包含能够被用于资源组模板中的宏替换的属性关键字值。
在启动时,所述系统能够使用由配置文件提供的信息从资源组模板产生用于每个资源的分区特定配置元素。
资源组
根据实施例,资源组是能够在域或分区级定义的一批已命名的完全合格的可部署资源,并且能够引用资源组模板。资源组中的资源被视为完全合格,因为管理员已提供启动或连接到这些资源所需的所有信息,例如用于连接到数据源的凭证或用于应用的目标信息。
系统管理员能够在域级或在分区级声明资源组。在域级,资源组提供用于将相关资源分组的方便的方式。与未分组的资源一样,所述系统能够管理在域级资源组中声明的资源,以使得所述资源能够在系统启动期间启动并且在系统关闭期间停止。管理员也能够个别地停止、启动或去除组中的资源,并且能够通过对组进行操作来隐式地作用于所述组中的所有资源。例如,停止资源组停止所述组中的还未停止的所有资源;启动资源组启动所述组中的还未启动的任何资源;并且去除资源组去除所述组中所包含的所有资源。
在分区级,系统或分区管理员能够根据任何安全限制配置分区中的一个或多个资源组。例如,在SaaS使用情况下,各种分区级资源组能够引用域级资源组模板;而在PaaS使用情况下,能够创建分区级资源组,所述分区级资源组不引用资源组模板,而是替代地代表仅在该分区内可用的应用及其相关资源。
根据实施例,资源分组能够被用于将应用和它们使用的资源分组在一起,作为域内有区别的管理单元。例如,在以下描述的医疗记录(MedRec)应用中,资源分组定义MedRec应用及其资源。多个分区能够运行相同的MedRec资源组,每个分区使用分区特定配置信息,从而使作为每个MedRec实例的部分的应用特定于每个分区。
资源组模板
根据实施例,资源组模板是能够从资源组引用的在域级定义的一批可部署资源,并且激活它的资源所需的一些信息可能不被存储为模板本身的一部分,从而它支持分区级配置的指定。域能够包含任何数量的资源组模板,每个资源组模板能够包括例如一个或多个相关Java应用和这些应用所依赖的资源。关于这种资源的一些信息可在所有分区上是相同的,而其它信息可针对分区而不同。并不需要在域级指定所有配置,能够替代地通过使用宏或属性名/值对在资源组模板中指定分区级配置。
根据实施例,特定资源组模板能够由一个或多个资源组引用。包含资源组的对象(例如,域或分区)能够使用属性名/值分派来设置资源组模板中的任何令牌的值。当所述系统使用引用资源组激活资源组模板时,它能够利用在资源组的包含对象中设置的值替换这些令牌。在一些情况下,所述系统也能够使用静态配置的资源组模板和分区产生用于每个分区/模板组合的运行时配置。
例如,在SaaS使用情况下,所述系统能够多次激活相同的应用和资源,包括针对将会使用它们的每个分区激活一次。当管理员定义资源组模板时,他们能够使用令牌代表将会在别处提供的信息。例如,用于连接到CRM相关数据资源的用户名能够在资源组模板中被指示为\${CRMDataUsername}。
租户
根据实施例,在多租户环境(诸如,多租户(MT)应用服务器环境)中,租户是能够由一个或多个分区和/或一个或多个租户感知应用代表或以其它方式与一个或多个分区和/或一个或多个租户感知应用关联的实体。
例如,租户能够代表不同的用户组织,诸如不同的外部公司或特定企业内的不同部门(例如,HR和财务部门),每个用户组织能够与不同分区关联。租户身份(租户ID)是特定用户在特定时刻与特定租户的关联。所述系统能够从用户身份(例如,通过参照用户身份商店)推断出特定用户属于哪个租户。用户身份使所述系统能够执行用户被授权执行的那些动作,包括但不限于用户可属于哪个租户。
根据实施例,所述系统实现将不同租户的管理和运行时相对于彼此隔离。例如,租户能够配置他们的应用的一些行为和它们可访问的资源。所述系统能够确保特定租户不能管理属于另一租户的制品;并且在运行时,代表特定租户工作的应用仅引用与该租户关联的资源,而不引用与其它租户关联的资源。
根据实施例,租户无感知应用是这样的应用:不包含显式地处理租户的逻辑,从而可访问所述应用使用的任何资源,而不管什么用户提交所述应用对其做出响应的请求。相比之下,租户感知应用包括显式地处理租户的逻辑。例如,基于用户的身份,所述应用能够推断出用户所属于的租户并且使用该信息访问租户特定资源。
根据实施例,所述系统使用户能够部署显式地编写为租户感知的应用,以使得应用开发者能够获得当前租户的租户ID。租户感知应用能够随后使用租户ID处理使用所述应用的单个实例的多个租户。
例如,支持单个医生的办公室或医院的MedRec应用能够暴露于两个不同分区或租户(例如,Bayland Urgent Care租户和Valley Health租户),每个租户能够访问分开的租户特定资源(诸如,分开的PDB),而不改变底层应用代码。
示例性域配置和多租户环境
根据实施例,应用能够被部署到域级的资源组模板,或部署到分区范围或域范围的资源组。使用每应用地或每分区地指定的部署计划,能够覆写应用配置。部署计划也能够被指定为资源组的部分。
图4表示根据实施例的用于示例性多租户环境的域配置。
根据实施例,当所述系统启动分区时,它根据提供的配置创建针对各数据库实例的虚拟目标(例如,虚拟主机)和连接池(对每个分区包括一个)。
通常,每个资源组模板能够包括一个或多个相关应用和这些应用所依赖的资源。每个分区能够通过提供资源组模板中的可部署资源至与该分区关联的特定值的绑定来提供未在它引用的资源组模板中指定的配置数据;在一些情况下包括覆写由资源组模板指定的某种配置信息。这使所述系统能够使用每个分区已定义的属性值针对每个分区不同地激活由资源组模板代表的应用。
在一些实例中,分区可包含这样的资源组:不引用资源组模板,或直接定义它们自己的分区范围的可部署资源。在分区内定义的应用和数据源通常仅可用于该分区。
例如,MedRec应用能够包括多个Java应用、数据源、JMS服务器和邮件会话。为了针对多个租户运行MedRec应用,系统管理员能够定义单个MedRec资源组模板286,在该模板中声明那些可部署资源。
与域级可部署资源相比,在资源组模板中声明的可部署资源可能没有在该模板中完全配置,或不能被按原样激活,因为它们缺少某种配置信息。
例如,MedRec资源组模板可声明由应用使用的数据源,但它可能不指定用于连接到数据库的URL。与不同租户关联的分区(例如,分区BUC-A 290(Bayland Urgent Care,BUC)和分区VH-A 292(Valley Health,VH))通过分别包括引用296、297MedRec资源组模板的MedRec资源组293、294,能够引用一个或多个资源组模板。所述引用能够随后被用于创建302、306用于每个租户的虚拟目标/虚拟主机,包括:与BUC-A分区关联的虚拟主机baylandurgentcare.com 304,用于由Bayland Urgent Care租户使用;和与VH-A分区关联的虚拟主机valleyhealth.com 308,用于由Valley Health租户使用。
图5进一步表示根据实施例的示例性多租户环境。如图5中所示,并且继续说明根据实施例的两个分区引用MedRec资源组模板的从以上开始的示例,小服务程序引擎310能够被用于支持多个租户环境(在这个示例中,Bayland Urgent Care Physician租户环境320和Valley Health Physician租户环境330)。
根据实施例,每个分区321、331能够定义:不同的虚拟目标,在所述不同的虚拟目标上,接受用于该租户环境的输入业务;和不同的URL 322、332,用于连接到分区及其资源324、334(在这个示例中,分别包括bayland urgent care数据库或valley health数据库)。数据库实例能够使用兼容模式(schema),因为将会针对两种数据库执行相同的应用代码。当系统启动分区时,它能够创建针对各数据库实例的虚拟目标和连接池。
对多分区JNDI树的支持
应用服务器环境(例如,多租户、云或其它环境)能够包括多个分区。资源(例如,数据源、JMS或邮件会话)能够被部署在超过一个分区中。
通常,资源能够包括经应用服务器中的命名服务映射到资源名的一个或多个对象,以使得当应用需要访问这些对象时,应用能够通过资源的名称来定位所述对象。
根据实施例,在理想情况下,命名服务是分区感知的,并且在命名服务内提供分区隔离,以将资源查找请求分派给特定分区。
根据实施例,这里描述一种用于在多租户应用服务器环境中支持命名空间的系统和方法。所述应用服务器环境能够包括具有多个分区的域。绑定到域级资源的全局命名空间或JNDI树能够保持一批分区根节点,每个分区根节点是分区JNDI树的根节点。通过包括特定于特定分区的属性,使分区JNDI树中的每个节点变得分区感知。用于分区的初始上下文能够被创建以用于将资源查找请求分派给所述分区,并且能够被其它应用重新使用以访问所述分区中的资源。
根据实施例,分区JNDI树的生命周期与它的关联的分区的生命周期相同。当分区被创建时,分区JNDI树能够被创建。分区信息(例如,分区名和分区ID)能够被绑定到创建的分区JNDI树。当分区被破坏时,用于分区的分区JNDI树被破坏。
根据实施例,每个分区JNDI树能够由应用使用以访问关联的分区中的资源。应用能够是域的单机应用客户机、域中的受管服务器中的应用、部署在分区内的应用或部署到不同分区的应用之一。
当上述应用中的每个应用向特定分区请求资源时,该应用能够启动与该分区关联的JNDI上下文,并且使用JNDI上下文将来自该应用的资源请求委派(delegate)给分区JNDI树。
根据实施例,一旦创建,JNDI上下文能够保持与该分区关联,以使得JNDI上下文中的所有随后的JNDI操作能够被委派给关联的分区,并且能够在该分区的上下文内执行。JNDI上下文能够由一个或多个应用在与用于创建JNDI上下文的线程不同的线程上使用。
图6表示根据实施例的用于在应用服务器环境、云或其它环境中支持域中的多个分区JNDI树的系统。
如图6中所示,域或全局JNDI树620能够包括域根命名节点661,所述域根命名节点661还包括一批分区根命名节点,例如分区A根命名节点663、分区B根命名节点665和分区N根命名节点667。每个分区根命名节点能够是用于分区JNDI树(例如,JNDI树A 641、JNDI树B645和JNDI树N 649)的根命名节点。
根据实施例,全局JNDI树被绑定到域级资源628。每个分区JNDI树与分区(例如,分区A 635、分区B 637或分区C 639)关联;并且被绑定到部署到该分区的资源(例如,资源A655、资源B 657和资源N 659)。
当应用需要访问特定分区中的资源时,应用能够创建初始JNDI上下文作为针对分区JNDI树的开始点。基于请求应用所在的位置,提供者URL可被提供作为用于创建初始JNDI上下文的参数。如果请求应用与被请求的资源位于同一个分区中,则不需要提供者URL。否则,例如,当请求应用是应用服务器域的客户应用时,需要提供提供者URL。
如图6中所示,当客户应用617需要访问分区A中的资源时,能够利用指定分区的提供者URL创建初始JNDI上下文A 618。
列表1表示利用提供的提供者URL创建初始JNDI上下文的示例:
列表1
如以上所示,列表1表示这样的应用:该应用请求部署在分区A中的资源,并且利用指定该分区的提供者URL作为参数创建初始JNDI上下文。
根据实施例,当JNDI子系统接收到用于创建初始JNDI上下文的请求时,JNDI子系统能够使用提供者URL将初始上下文与在提供者URL中指定的分区关联(例如,通过检查哪个分区根命名节点包括指定的分区的信息)。如果未提供提供者URL,则JNDI子系统能够将当前部件调用上下文与初始JNDI上下文关联。当前部件调用上下文能够与请求应用正在运行的当前分区关联。
根据实施例,一旦初始JNDI上下文被创建,能够在与初始JNDI上下文关联的分区JNDI树内执行由请求应用启动的JNDI操作。来自初始JNDI上下文的请求能够被委派给与分区关联的JNDI资源。
另外,初始上下文和与分区A的关联634能够在域中被保持621为上下文对象A 619以便由其它应用重新使用。
图7进一步表示根据实施例的用于在应用服务器环境、云或其它环境中支持域中的多个分区JNDI树的系统。
如图7中所示,以上已创建的上下文对象能够被保持以便由多个应用(例如,由不同客户应用B 717、分区B中的应用737和域中的受管服务器中的应用761)重新使用743、745、747。
根据实施例,当访问分区A中的资源时,这些应用能够调用上下文对象。来自这些应用的JNDI操作能够被自动地委派给与分区A关联的JNDI树;并且在分区A的上下文内执行所述JNDI操作。
根据实施例,通过将上下文对象与分区的命名空间关联,能够保持上下文对象和分区之间的关联。能够在JNDI子系统中提供多个回调函数以便能够在与上下文对象关联的分区的部件调用上下文中而非在当前部件调用上下文中处理或执行JNDI操作。
图8表示根据实施例的用于在应用服务器环境、云或其它环境中支持域中的多个分区JNDI树的方法。
在步骤811,提供应用服务器环境中的域,其中所述域包括多个分区和保持一批分区根命名节点的全局JNDI树,其中每个分区根命名节点与特定于分区的分区JNDI树关联。
在813,在所述域中的JNDI子系统从应用接收用于创建初始JNDI上下文的请求。
在步骤815,JNDI子系统检查来自所述请求的信息和所述一批分区根命名节点以创建与特定分区关联的初始上下文。
在817,来自所述应用的JNDI操作被委派给与所述特定分区关联的JNDI树。
图9表示根据实施例的用于在应用服务器环境、云或其它环境中支持域中的多个分区JNDI树的示例性系统。
根据实施例,应用服务器环境能够执行分区感知JNDI查找和部署在分区中的资源的绑定。在这种环境中,应用仅能访问部署所述应用的分区的范围中的JNDI资源。例如,部署在一个分区中的应用不能访问另一分区的JNDI资源或所述域的JNDI资源。
根据实施例,所述系统能够通过保持一批分区根命名节点来隔离JNDI资源,每个分区根命名节点与分区命名空间(例如,分区A命名空间935和分区B命名空间937)关联。
根据实施例,通过绑定到特定于分区的一个或多个值,能够使分区命名空间(例如,分区级JNDI树)中的每个节点是分区感知的。同一个JNDI名能够被绑定到用于不同分区的不同命名空间。
例如,同一个JNDI资源(例如,会话资源)能够被绑定到分区A命名空间、分区B命名空间和全局命名空间920。能够从部署在分区A或分区B内的应用接收到对资源的JNDI查找。对于部署在分区A中的应用,能够返回会话945。对于部署在分区B中的应用,能够返回会话955。
根据实施例,当JNDI资源未绑定到分区的命名空间时,从部署在分区中的应用接收的资源查找能够产生错误,例如NameNotFoundException。
如图9中另外所示,全局命名空间920能够包括域根节点930和多个资源节点。全局JNDI树中的节点不是分区感知的,即它们未绑定到分区特定信息。
根据实施例,分区感知命名节点和分区无感知节点可具有相同的JNDI名(例如,全局命名空间中的会话节点975和分区A命名空间中的会话节点945),但它们能够返回不同资源。
如此,分区感知节点提供增强的查找/绑定/重新绑定/解除绑定功能以满足多租户应用服务器环境的要求。
可使用根据本公开的教导编程的一个或多个传统通用或专用数字计算机、计算装置、机器或微处理器(包括一个或多个处理器、存储器和/或计算机可读存储介质)方便地实现本发明。对于软件领域技术人员而言将会清楚的是,能够由熟练程序员基于本公开的教导容易地准备合适的软件编码。
在一些实施例中,本发明包括一种计算机程序产品,该计算机程序产品是非暂态存储介质或计算机可读介质(多个介质),该介质具有存储在它上面的指令,该指令能够被用于对计算机进行编程以执行本发明的任何处理。该存储介质能够包括但不限于任何类型的盘(包括软盘、光盘、DVD、CD-ROM、微驱动器和磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存装置、磁卡或光学卡、纳米系统(包括分子存储器IC))或适合存储指令和/或数据的任何类型的介质或装置。
已为了说明和描述的目的提供本发明的前面的描述。它不应该是穷尽的或者将本发明限制于公开的精确形式。许多修改和变化将会对于本领域技术人员而言是清楚的。选择并且描述实施例以便最好地解释本发明的原理及其实际应用,由此使其他本领域技术人员能够理解本发明的具有适合设想的特定用途的各种修改的各种实施例。本发明的范围应该由下面的权利要求及其等同物定义。
Claims (22)
1.一种用于在应用服务器环境中支持多个Java命名和目录接口(JNDI)树的系统,包括:
一个或多个计算机,每个计算机包括一个或多个微处理器;
应用服务器环境,位于所述计算机上,其中所述应用服务器环境包括域,所述域具有多个分区和保持一批分区根命名节点的全局JNDI树,其中每个分区命名节点与分区JNDI树关联;
其中当从应用接收到用于访问特定分区中的资源的请求时,所述系统操作以
创建与所述特定分区关联的初始JNDI上下文,并且
将来自所述应用的JNDI操作委派给与所述特定分区关联的JNDI树。
2.如权利要求1所述的系统,其中所述系统还操作以检查来自所述请求的信息和所述一批分区根命名节点以识别分区JNDI树。
3.如权利要求1或2所述的系统器,其中来自所述请求的信息包括指定关于所述特定分区的信息的提供者URL。
4.如任一前述权利要求所述的系统,其中部署在分区中的资源被绑定到关联的分区JNDI树,其中所述关联的JNDI树中的每个节点是分区感知的。
5.如任一前述权利要求所述的系统,其中一旦被创建,所述初始上下文被保持作为上下文对象以便由一个或多个其它应用重新使用,其中来自所述应用的JNDI操作被引导至与上下文对象关联的分区。
6.如权利要求5所述的系统,通过将上下文对象与分区的命名空间关联来保持上下文对象和分区之间的关联。
7.如任一前述权利要求所述的系统,其中在JNDI子系统中提供多个回调函数以便能够在分区的部件调用上下文中处理JNDI操作。
8.一种用于在应用服务器环境中支持多个Java命名和目录接口(JNDI)树的方法系统,包括:
提供应用服务器环境中的域,其中所述域包括多个分区和保持一批分区根命名节点的全局JNDI树,其中每个分区根命名节点与特定于分区的分区JNDI树关联;
从应用接收用于访问特定分区中的资源的请求;
创建与所述特定分区关联的初始JNDI上下文;并且
将来自所述应用的JNDI操作委派给与所述特定分区关联的JNDI树。
9.如权利要求8所述的方法,其中所述系统还操作以检查来自所述请求的信息和所述一批分区根命名节点以识别分区JNDI树。
10.如权利要求8或9所述的方法,其中来自所述请求的信息包括指定关于所述特定分区的信息的提供者URL。
11.如权利要求8至10中任一项所述的方法,其中部署在分区中的资源被绑定到关联的分区JNDI树,其中所述关联的JNDI树中的每个节点是分区感知的。
12.如权利要求8至11中任一项所述的方法,其中一旦被创建,所述初始上下文被保持作为上下文对象以便由一个或多个其它应用重新使用,其中来自所述应用的JNDI操作被引导至与上下文对象关联的分区。
13.如权利要求12所述的方法,通过将上下文对象与分区的命名空间关联来保持上下文对象和分区之间的关联。
14.如权利要求8至13中任一项所述的方法,其中在JNDI子系统中提供多个回调函数以便能够在分区的部件调用上下文中处理JNDI操作。
15.一种计算机程序,包括机器可读格式的指令,所述指令当由计算机系统执行时使所述计算机系统执行如权利要求8至14中任一项所述的方法。
16.一种计算机程序产品,包括存储在非暂态机器可读数据存储介质中的如权利要求15所述的计算机程序。
17.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质包括存储在它上面的指令,所述指令当由一个或多个计算机读取和执行时使所述一个或多个计算机执行包括以下的步骤:
提供应用服务器环境中的域,其中所述域包括多个分区和保持一批分区根命名节点的全局JNDI树,其中每个分区根命名节点与特定于分区的分区JNDI树关联;
从应用接收用于访问特定分区中的资源的请求;
创建与所述特定分区关联的初始JNDI上下文;并且
将来自所述应用的JNDI操作委派给与所述特定分区关联的JNDI树。
18.如权利要求17所述的非暂态计算机可读存储介质,其中所述系统还操作以检查来自所述请求的信息和所述一批分区根命名节点以识别分区JNDI树。
19.如权利权利要求17或18所述的非暂态计算机可读存储介质,其中来自所述请求的信息包括指定关于所述特定分区的信息的提供者URL。
20.如权利要求17至19所述的非暂态计算机可读存储介质,其中部署在分区中的资源被绑定到关联的分区JNDI树,其中所述关联的JNDI树中的每个节点是分区感知的。
21.如权利要求17至20所述的非暂态计算机可读存储介质,其中一旦被创建,所述初始上下文被保持作为上下文对象以便由一个或多个其它应用重新使用,其中来自所述应用的JNDI操作被引导至与上下文对象关联的分区。
22.如权利要求21所述的非暂态计算机可读存储介质,通过将上下文对象与分区的命名空间关联来保持上下文对象和分区之间的关联。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462024364P | 2014-07-14 | 2014-07-14 | |
US62/024,364 | 2014-07-14 | ||
PCT/US2015/040407 WO2016011051A1 (en) | 2014-07-14 | 2015-07-14 | System and method for supporting namespaces in a multitenant application server environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106575242A true CN106575242A (zh) | 2017-04-19 |
CN106575242B CN106575242B (zh) | 2020-12-18 |
Family
ID=53761555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580038690.2A Active CN106575242B (zh) | 2014-07-14 | 2015-07-14 | 用于在多租户应用服务器环境中支持命名空间的系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9906601B2 (zh) |
EP (1) | EP3170078A1 (zh) |
JP (1) | JP6505823B2 (zh) |
KR (1) | KR102449753B1 (zh) |
CN (1) | CN106575242B (zh) |
WO (1) | WO2016011051A1 (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10476938B2 (en) | 2014-01-21 | 2019-11-12 | Oracle International Corporation | System and method for multitenancy store in a multitenant application server environment |
EP3097481B1 (en) | 2014-01-21 | 2022-11-30 | Oracle International Corporation | System and method for supporting multi-tenancy in an application server, cloud, or other environment |
US10103946B2 (en) | 2014-01-21 | 2018-10-16 | Oracle International Corporation | System and method for JMS integration in a multitenant application server environment |
US10474998B2 (en) | 2014-01-21 | 2019-11-12 | Oracle International Corporation | System and method for messaging in a multitenant application server environment |
US10187454B2 (en) | 2014-01-21 | 2019-01-22 | Oracle International Corporation | System and method for dynamic clustered JMS in an application server environment |
US9661064B2 (en) * | 2014-01-24 | 2017-05-23 | Ca, Inc. | Systems and methods for deploying legacy software in the cloud |
US10027550B2 (en) | 2014-06-23 | 2018-07-17 | Oracle International Corporation | System and method for multitenant-aware console for use in a multitenant application server environment |
US10873627B2 (en) | 2014-06-23 | 2020-12-22 | Oracle International Corporation | System and method for supporting use of an in-memory data grid with a multitenant application server environment |
US10469401B2 (en) | 2014-09-25 | 2019-11-05 | Oracle International Corporation | System and method for supporting lifecycle plugins in a multitenant application server environment |
US10382537B2 (en) | 2014-09-25 | 2019-08-13 | Oracle International Corporation | System and method for use of a global runtime in a multitenant application server environment |
US10348565B2 (en) | 2014-09-25 | 2019-07-09 | Oracle International Corporation | System and method for rule-based elasticity in a multitenant application server environment |
US9747137B2 (en) | 2014-09-25 | 2017-08-29 | Oracle International Corporation | System and method for providing a partition file system in a multitenant application server environment |
US10050903B2 (en) | 2014-09-26 | 2018-08-14 | Oracle International Corporation | System and method for multi-tenancy enablement of enterprise JAVA (TM) applications using resource proxies and application tenancy context |
EP3198426B1 (en) * | 2014-09-26 | 2023-08-30 | Oracle International Corporation | System and method for transaction recovery in a multitenant application server environment |
US10091135B2 (en) | 2014-09-26 | 2018-10-02 | Oracle International Corporation | System and method for multi-tenancy enablement of enterprise java applications using resource proxies and application tenancy context |
US11057272B2 (en) | 2014-09-26 | 2021-07-06 | Oracle International Corporation | System and method for transactions in a multitenant application server environment |
JP2016085641A (ja) * | 2014-10-27 | 2016-05-19 | キヤノン株式会社 | 権限移譲システム、権限移譲システムにて実行される方法、およびそのプログラム |
US10250512B2 (en) | 2015-01-21 | 2019-04-02 | Oracle International Corporation | System and method for traffic director support in a multitenant application server environment |
CN107534481B (zh) * | 2015-04-10 | 2021-03-05 | 三菱电机株式会社 | 通信系统 |
US11075799B2 (en) | 2017-08-24 | 2021-07-27 | Oracle International Corporation | System and method for provisioning in a multi-tenant application server environment |
US11416235B2 (en) | 2017-09-28 | 2022-08-16 | Oracle International Corporation | System and method for managed server independence for deployment of software applications and libraries |
CN110163002B (zh) * | 2019-05-29 | 2023-06-13 | 上海有谱网络科技有限公司 | 一种SaaS软件租户数据隔离的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030172145A1 (en) * | 2002-03-11 | 2003-09-11 | Nguyen John V. | System and method for designing, developing and implementing internet service provider architectures |
CN102571427A (zh) * | 2010-12-31 | 2012-07-11 | 上海可鲁系统软件有限公司 | 一种分布式系统中cim资源命名及解析方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5745683A (en) * | 1995-07-05 | 1998-04-28 | Sun Microsystems, Inc. | System and method for allowing disparate naming service providers to dynamically join a naming federation |
US6061743A (en) * | 1998-02-19 | 2000-05-09 | Novell, Inc. | Method and apparatus for aggregating disparate namespaces |
US6834284B2 (en) * | 1999-08-12 | 2004-12-21 | International Business Machines Corporation | Process and system for providing name service scoping behavior in java object-oriented environment |
US7036127B2 (en) * | 2001-10-11 | 2006-04-25 | International Business Machines Corporation | Legacy CORBA name space integration using web application servers |
JP2004110624A (ja) * | 2002-09-20 | 2004-04-08 | Fuji Xerox Co Ltd | 計算機リソース管理装置および方法 |
US7603359B2 (en) * | 2006-01-17 | 2009-10-13 | International Business Machines Corporation | Method and apparatus for maintaining federated name context bindings in a name space |
US7937711B2 (en) * | 2006-06-30 | 2011-05-03 | Dell Products L.P. | Method and apparatus for providing a consolidated namespace to client applications in multi-tenant common information model (CIM) environments |
CN102170457A (zh) | 2010-02-26 | 2011-08-31 | 国际商业机器公司 | 向应用的多租户提供服务的方法和装置 |
US8775626B2 (en) | 2010-09-17 | 2014-07-08 | Microsoft Corporation | Using templates to configure cloud resources |
KR20120045586A (ko) | 2010-10-29 | 2012-05-09 | 한국전자통신연구원 | 다중 테넌트용 SaaS 애플리케이션 설정 장치 및 방법 |
US9720668B2 (en) * | 2012-02-29 | 2017-08-01 | Red Hat, Inc. | Creating and maintaining multi-tenant applications in a platform-as-a-service (PaaS) environment of a cloud computing system |
-
2015
- 2015-07-14 JP JP2017502147A patent/JP6505823B2/ja active Active
- 2015-07-14 CN CN201580038690.2A patent/CN106575242B/zh active Active
- 2015-07-14 EP EP15742490.4A patent/EP3170078A1/en not_active Ceased
- 2015-07-14 KR KR1020177003960A patent/KR102449753B1/ko active IP Right Grant
- 2015-07-14 US US14/799,250 patent/US9906601B2/en active Active
- 2015-07-14 WO PCT/US2015/040407 patent/WO2016011051A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030172145A1 (en) * | 2002-03-11 | 2003-09-11 | Nguyen John V. | System and method for designing, developing and implementing internet service provider architectures |
CN102571427A (zh) * | 2010-12-31 | 2012-07-11 | 上海可鲁系统软件有限公司 | 一种分布式系统中cim资源命名及解析方法 |
Non-Patent Citations (2)
Title |
---|
CARLA SADTLER .ET AL: "WebSphere Application Server V6.1:System Management and Configuration", 《WEBSPHERE SOFTWARE》 * |
SUN MICROSYSTEMS,INC.: "Java Naming and Directory Interface Application Programming Interface (JNDI API)", 《SUN MICROSYSTEMS》 * |
Also Published As
Publication number | Publication date |
---|---|
KR20170033350A (ko) | 2017-03-24 |
KR102449753B1 (ko) | 2022-09-30 |
CN106575242B (zh) | 2020-12-18 |
US20160014212A1 (en) | 2016-01-14 |
WO2016011051A1 (en) | 2016-01-21 |
EP3170078A1 (en) | 2017-05-24 |
US9906601B2 (en) | 2018-02-27 |
JP6505823B2 (ja) | 2019-04-24 |
JP2017520861A (ja) | 2017-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106575242A (zh) | 用于在多租户应用服务器环境中支持命名空间的系统和方法 | |
CN106462717B (zh) | 用于在多租户应用服务器环境中支持安全性的系统和方法 | |
CN106471471B (zh) | 用于在多租户应用服务器环境中支持分区的系统和方法 | |
US10084843B2 (en) | System and method for web container partitions in a multitenant application server environment | |
US10356161B2 (en) | System and method for classloading in a multitenant application server environment | |
US10051043B2 (en) | System and method for JMX support in a multitenant application server environment | |
CN107077383B (zh) | 用于在多租户应用服务器环境中确定分区标识符的系统和方法 | |
US9819609B2 (en) | System and method for multitenant execution of OS programs invoked from a multitenant middleware application | |
CN105900059B (zh) | 用于在应用服务器、云或其它环境中支持多租户的系统和方法 | |
US9811386B2 (en) | System and method for multitenant execution of OS programs invoked from a multitenant middleware application | |
US10873627B2 (en) | System and method for supporting use of an in-memory data grid with a multitenant application server environment | |
US10103946B2 (en) | System and method for JMS integration in a multitenant application server environment | |
US10193754B2 (en) | System and method for supporting connectors in a multitenant application server environment | |
CN107077389A (zh) | 用于在多租户应用服务器环境中使用全局运行时的系统和方法 | |
US20160094408A1 (en) | System and method for enterprise java bean support in a multitenant application server environment | |
US10009225B2 (en) | System and method for supporting multiple partition edit sessions in a multitenant application server environment | |
CN107077388A (zh) | 用于在多租户应用服务器环境中提供端到端生命周期的系统和方法 | |
CN106462470A (zh) | 用于在多租户应用服务器环境中的可移植分区的系统和方法 | |
CN107533485A (zh) | 用于对从多租户中间件应用调用的os程序进行多租户执行的系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |