IP Library Granted Patent US 9,323,501
Granted Patent B1
US 9,323,501 · App. 14/188,371 · Granted Apr 26, 2016

Modularized XML namespaces

Inventors: Sabin S. Ielceanu (Los Gatos, CA); Joseph T. Baysdon (Pittsboro, NC); Tim R. Diekmann (San Jose, CA)
Assignee: TIBCO Software Inc.
G06F8/31G06F8/70
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,323,501
App. No.
14/188,371
Filed
Feb 24, 2014
Granted
Apr 26, 2016
Kind
B1
Examiner
CHEN, QING
Art Unit
2191
USPC
717/114
Abstract

Techniques to provide and use modularized XML namespaces are disclosed. In various embodiments, a resolution request associated with a first module is received. A resolution context associated with the first module is used to determine that a component made available by a second module is associated with the resolution request. Access to a shared instance of the component made available by the second module is provided.

Claims (40)

1. A method, comprising:

receiving a resolution request associated with a first module, wherein the first module has corresponding metadata that includes an indication of a dependent namespace;

constructing a resolution context associated with the first module based at least in part on respective namespaces associated with components packaged with the first module and one or more exported namespaces indicated to be made available to the first module by one or more other modules;

using the resolution context associated with the first module to determine that a component made available by a second module is associated with the resolution request, wherein the second module has corresponding metadata that includes an indication of an exported namespace associated with the second module, and wherein the exported namespace associated with the second module is included in the resolution context associated with the first module; and

providing access to a shared instance of the component made available by the second module.

2. The method of claim 1 , wherein the resolution request comprises a qualified name of the component.

3. The method of claim 2 , wherein the qualified name of the component is associated with a target namespace associated with the second module.

4. The method of claim 1 , wherein the component is made available by the second module at least in part by including in the metadata associated with the second module an identification of a namespace with which the component is associated as the exported namespace.

5. The method of claim 1 , wherein the metadata corresponding to the first module is used to construct the resolution context associated with the first module.

6. The method of claim 5 , wherein the metadata corresponding to the first module is included in a package comprising the first module.

7. The method of claim 5 , wherein the metadata corresponding to the first module identifies the second module as a dependent module on which the first module depends.

8. The method of claim 5 , wherein the metadata corresponding to the first module identifies one or more versions of the second module.

9. The method of claim 1 , further comprising extracting a document from a package with which the second module is associated and using the document to store the shared instance of the component made available by the second module.

10. The method of claim 9 , further comprising associating the shared instance of the component made available by the second module with the second module.

11. The method of claim 9 , wherein the document is extracted and the shared instance of the component made available by the second module is stored based at least in part on an indication in metadata associated with the second module that the document is to be made available for use by other modules.

12. The method of claim 11 , wherein the indication comprises a namespace with which the document is associated.

13. The method of claim 1 , wherein a third module depends on the second module and a resolution context associated with the third module includes a namespace associated with the shared instance of the component made available by the second module.

14. The method of claim 1 , further comprising receiving a new version of the second module and determining based on metadata associated with the first module whether the new version of the second module satisfies a dependency on the second module as specified by the first module.

15. The method of claim 14 , further comprising replacing a prior version of the second module with the new version of the second module, without requiring any changes to the first module or documents comprising the first module, based at least in part on a determination that the new version of the second module satisfies a dependency on the second module as specified by the first module.

16. The method of claim 15 , wherein the new version of the second module is used to replace the prior version of the second module in the event that all modules that depend on the prior version of the second module are compatible with the new version of the second module.

17. The method of claim 1 , wherein the component is made available by the second module and separately is made available also by a third module, and further comprising applying a selection criteria to select the second module to provide the component.

18. The method of claim 17 , wherein the component is associated with a namespace identified by metadata associated with the first module as being required by the first module.

19. The method of claim 1 , wherein the component is identified as a resource required by the first component at least in part in a manner defined generically in OSGi specification.

20. The method of claim 1 , further comprising sharing, at run time, the same component made available by the second module, between the first module and a fourth module that has corresponding metadata that includes an indication of a dependent namespace associated with the component made available by the second module.

21. A computer system, comprising:

a memory; and

a processor couple to the memory and configured to:

receive a resolution request associated with a first module, wherein the first module has corresponding metadata that includes an indication of a dependent namespace;

construct a resolution context associated with the first module based at least in part on respective namespaces associated with components packaged with the first module and one or more exported namespaces indicated to be made available to the first module by one or more other modules;

use the resolution context associated with the first module to determine that a component made available by a second module is associated with the resolution request, wherein the second module has corresponding metadata that includes an indication of an exported namespace associated with the second module, and wherein the exported namespace associated with the second module is included in the resolution context associated with the first module; and

provide access to a shared instance of the component made available by the second module as stored in the memory.

22. The system of claim 21 , wherein the resolution request comprises a qualified name of the component.

23. The system of claim 22 , wherein the qualified name of the component is associated with a target namespace associated with the second module.

24. The system of claim 21 , wherein the component is made available by the second module at least in part by including in the metadata associated with the second module an identification of a namespace with which the component is associated as the exported namespace.

25. The system of claim 21 , wherein the processor is further configured to use the metadata corresponding to the first module to construct the resolution context associated with the first module.

26. A computer program product embodied in a tangible, non-transitory computer readable storage medium and comprising computer instructions configured to:

receive a resolution request associated with a first module, wherein the first module has corresponding metadata that includes an indication of a dependent namespace;

construct a resolution context associated with the first module based at least in part on respective namespaces associated with components packaged with the first module and one or more exported namespaces indicated to be made available to the first module by one or more other modules;

use the resolution context associated with the first module to determine that a component made available by a second module is associated with the resolution request, wherein the second module has corresponding metadata that includes an indication of an exported namespace associated with the second module, and wherein the exported namespace associated with the second module is included in the resolution context associated with the first module; and

provide access to a shared instance of the component made available by the second module.

Assignments (16)
CHANGE OF NAME Recorded Jul 1, 2026
From: CLOUD SOFTWARE GROUP, INC.
To: CLOUD SOFTWARE GROUP, LLC
Reel/Frame 075874/0220 →
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
CHANGE OF NAME Recorded Feb 7, 2023
From: TIBCO SOFTWARE INC.
To: CLOUD SOFTWARE GROUP, INC.
Reel/Frame 062714/0634 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
RELEASE REEL 052115 / FRAME 0318 Recorded Oct 3, 2022
From: KKR LOAN ADMINISTRATION SERVICES LLC
To: TIBCO SOFTWARE INC.
Reel/Frame 061588/0511 →
RELEASE (REEL 034536 / FRAME 0438) Recorded Sep 30, 2022
From: JPMORGAN CHASE BANK, N.A.
To: TIBCO SOFTWARE INC.
Reel/Frame 061574/0963 →
RELEASE (REEL 054275 / FRAME 0975) Recorded May 7, 2021
From: JPMORGAN CHASE BANK, N.A.
To: TIBCO SOFTWARE INC.
Reel/Frame 056176/0398 →
SECURITY AGREEMENT Recorded Nov 2, 2020
From: TIBCO SOFTWARE INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 054275/0975 →
SECURITY AGREEMENT Recorded Mar 6, 2020
From: TIBCO SOFTWARE INC.
To: KKR LOAN ADMINISTRATION SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 052115/0318 →
SECURITY INTEREST Recorded Dec 5, 2014
From: TIBCO SOFTWARE INC.; TIBCO KABIRA LLC; NETRICS.COM LLC
To: JPMORGAN CHASE BANK., N.A., AS COLLATERAL AGENT
Reel/Frame 034536/0438 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2014
From: IELCEANU, SABIN S.; BAYSDON, JOSEPH T.; DIEKMANN, TIM R.
To: TIBCO SOFTWARE INC.
Reel/Frame 032890/0771 →