IP Library Granted Patent US 9,256,425
Granted Patent B2
US 9,256,425 · App. 12/207,384 · Granted Feb 9, 2016

Versioning and refactoring of business mashups in on-demand environments

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,256,425
App. No.
12/207,384
Granted
Feb 9, 2016
Kind
B2
Abstract

Techniques are provided for versioning and refactoring of mashups. During the design phase of a mashup that is operable to access multiple external services, design information that defines or modifies a plurality of design elements included in the mashup is received from a user. Without receiving from the user any input that causes the plurality of design elements to be versioned, current versions of the plurality of design elements are automatically stored in a repository when the plurality of design elements are saved during development of the mashup. The mashup is deployed to one or more servers. Without receiving any input from the user that causes the mashup to be versioned, deploying the mashup comprises automatically storing in the repository a current version of the mashup and versioning information that associates the current version of the mashup with the current versions of the plurality of design elements.

Claims (91)

1. A computer-implemented method comprising:

receiving, from a user, design information that defines or modifies a plurality of design elements included in a mashup, wherein the mashup is a composite business application that is operable to integrate and present data obtained from multiple external services;

without receiving directly from the user any input that causes the plurality of design elements to be versioned, automatically storing in a repository current versions of the plurality of design elements when the plurality of design elements are saved during development of the mashup;

deploying the mashup to one or more servers;

in response to the mashup being deployed to the one or more servers, without receiving any input from the user that causes the mashup to be versioned:

automatically storing in the repository a current version of the mashup; and

automatically generating and storing in the repository first versioning information that associates the current version of the mashup with the current versions of the plurality of design elements that are included in the mashup;

wherein the multiple external services comprise a web service;

wherein the plurality of design elements include a contract, wherein the contract includes a Web Services Description Language (WSDL) definition that describes the web service;

wherein automatically storing in the repository the current versions of the plurality of design elements comprises automatically storing in the repository a current version of the contract for the web service;

determining that the WSDL definition in the contract for the web service has changed;

in response to determining that the WSDL definition in the contract for the web service has changed and based on the first versioning information, determining one or more design elements, of the plurality of design elements, that need to be changed; and

notifying the user that the one or more design elements need to be changed because the WSDL definition in the contract for the web service has changed.

2. The computer-implemented method as recited in claim 1 , wherein:

the plurality of design elements includes:

one or more data elements that are provided by one or more web services of the multiple external services; and

one or more process elements that define a process workflow that integrates the plurality of design elements to provide a result of the composite business application.

3. The computer-implemented method as recited in claim 1 , further comprising:

automatically maintaining in the repository at least one previous version of the mashup, one or more previous versions of one or more of the plurality of design elements, and second versioning information that associates the at least one previous version of the mashup with the one or more previous versions of the one or more of the plurality of design elements; and

inspecting the first versioning information and the second versioning information to determine which design elements, of the plurality of design elements, have been added, modified, or deleted in the current version of the mashup.

4. The computer-implemented method as recited in claim 1 , wherein automatically storing in the repository the current versions of the plurality of design elements is performed in response to user input that causes the plurality of design elements to be checked-in and saved into a configuration management system.

5. The computer-implemented method as recited in claim 1 , further comprising:

while the mashup is being executed at the one or more servers, receiving runtime information associated with the plurality of design elements; and

refactoring the mashup based on the runtime information, wherein refactoring the mashup comprises:

based on the runtime information, inspecting the first versioning information to determine one or more current versions of one or more design elements included in the plurality of design elements.

6. The computer-implemented method as recited in claim 5 , wherein refactoring the mashup further comprises:

notifying the user of the runtime information and of the one or more current versions of the one or more design elements; and

receiving, from the user, one or more modifications to the one or more current versions of the one or more design elements.

7. The computer-implemented method as recited in claim 6 , wherein receiving the one or more modifications comprises receiving particular design information that defines one or more new design elements, wherein the one or more new design elements are operable to perform one or more of:

define a new process workflow in the mashup; and

modify an existing process workflow in the mashup.

8. The computer-implemented method as recited in claim 7 , wherein receiving the one or more modifications comprises receiving particular design information, wherein the particular design information specifies that a first process workflow in the mashup is to be used by a second process workflow in the mashup.

9. The computer-implemented method as recited in claim 5 , wherein refactoring the mashup further comprises automatically modifying the one or more current versions of the one or more design elements.

10. The computer-implemented method as recited in claim 9 , wherein automatically modifying the one or more current versions of the one or more design elements comprises:

automatically renaming the one or more design elements; and

automatically identifying and modifying any design elements, included in the current version of the mashup, that are affected by renaming the one or more design elements.

11. The computer-implemented method as recited in claim 1 , further comprising:

receiving, from the user, particular design information that includes a renaming change to at least one of the plurality of design elements;

automatically inspecting the first versioning information to determine one or more current versions of one or more design elements, of the plurality of design elements, that are affected by the renaming change; and

automatically modifying the one or more current versions of the one or more design elements to reflect the renaming change.

12. The computer-implemented method as recited in claim 1 , further comprising:

automatically maintaining in the repository second versioning information that associates at least one previous version of the mashup with previous versions of the plurality of design elements;

receiving, from the user, particular design information that includes a renaming change to at least one of the plurality of design elements;

automatically inspecting the first versioning information and the second versioning information to determine any current and previous versions of one or more design elements, of the plurality of design elements, that are affected by the renaming change; and

automatically modifying the current and the previous versions of the one or more design elements to reflect the renaming change.

13. One or more non-transitory computer-readable storage media

comprising instructions which, when processed by one or more processors, cause:

receiving, from a user, design information that defines or modifies a plurality of design elements included in a mashup, wherein the mashup is a composite business application that is operable to integrate and present data obtained from multiple external services;

without receiving directly from the user any input that causes the plurality of design elements to be versioned, automatically storing in a repository current versions of the plurality of design elements when the plurality of design elements are saved during development of the mashup;

deploying the mashup to one or more servers;

in response to the mashup being deployed to the one or more servers, without receiving any input from the user that causes the mashup to be versioned;

automatically storing in the repository a current version of the mashup; and

automatically generating and storing in the repository first versioning information that associates the current version of the mashup with the current versions of the plurality of design elements that are included in the mashup;

wherein the multiple external services comprise a web service;

wherein the plurality of design elements include a contract, wherein the contract includes a Web Services Description Language (WSDL) definition that describes the web service;

wherein automatically storing in the repository the current versions of the plurality of design elements comprises automatically storing in the repository a current version of the contract for the web service;

determining that the WSDL definition in the contract for the web service has changed;

in response to determining that the WSDL definition in the contract for the web service has changed and based on the first versioning information, determining one or more design elements, of the plurality of design elements, that need to be changed; and

notifying the user that the one or more design elements need to be changed because the WSDL definition in the contract for the web service has changed.

14. The one or more non-transitory computer-readable storage media as recited in claim 13 , wherein:

the plurality of design elements includes:

one or more data elements that are provided by one or more web services of the multiple external services; and

one or more process elements that define a process workflow that integrates the plurality of design elements to provide a result of the composite business application.

15. The one or more non-transitory computer-readable storage media as recited in claim 13 , wherein the instructions further comprise instructions which, when processed by the one or more processors, cause:

automatically maintaining in the repository at least one previous version of the mashup, one or more previous versions of one or more of the plurality of design elements, and second versioning information that associates the at least one previous version of the mashup with the one or more previous versions of the one or more of the plurality of design elements; and

inspecting the first versioning information and the second versioning information to determine which design elements, of the plurality of design elements, have been added, modified, or deleted in the current version of the mashup.

16. The one or more non-transitory computer-readable storage media as recited in claim 13 , wherein the instructions that cause automatically storing in the repository the current versions of the plurality of design elements are performed in response to user input that causes the plurality of design elements to be checked-in and saved into a configuration management system.

17. The one or more non-transitory computer-readable storage media as recited in claim 13 , wherein the instructions further comprise instructions which, when processed by the one or more processors, cause:

while the mashup is being executed at the one or more servers, receiving runtime information associated with the plurality of design elements; and

refactoring the mashup based on the runtime information, wherein refactoring the mashup comprises:

based on the runtime information, inspecting the first versioning information to determine one or more current versions of one or more design elements included in the plurality of design elements.

18. The one or more non-transitory computer-readable storage media as recited in claim 17 , wherein the instructions that cause refactoring the mashup further comprise instructions which, when processed by the one or more processors, cause:

notifying the user of the runtime information and of the one or more current versions of the one or more design elements; and

receiving, from the user, one or more modifications to the one or more current versions of the one or more design elements.

19. The one or more non-transitory computer-readable storage media as recited in claim 18 , wherein the instructions that cause receiving the one or more modifications comprise instructions which, when processed by the one or more processors, cause receiving particular design information that defines one or more new design elements, wherein the one or more new design elements are operable to perform one or more of:

define a new process workflow in the mashup; and

modify an existing process workflow in the mashup.

20. The one or more non-transitory computer-readable storage media as recited in claim 18 , wherein the instructions that cause receiving the one or more modifications comprise instructions which, when processed by the one or more processors, cause receiving particular design information, wherein the particular design information specifies that a first process workflow in the mashup is to be used by a second process workflow in the mashup.

21. The one or more non-transitory computer-readable storage media as recited in claim 17 , wherein the instructions that cause refactoring the mashup further comprise instructions which, when processed by the one or more processors, cause automatically modifying the one or more current versions of the one or more design elements.

22. The one or more non-transitory computer-readable storage media as recited in claim 21 , wherein the instructions that cause automatically modifying the one or more current versions of the one or more design elements comprise instructions which, when processed by the one or more processors, cause:

automatically renaming the one or more design elements; and

automatically identifying and modifying any design elements, included in the current version of the mashup, that are affected by renaming the one or more design elements.

23. The one or more non-transitory computer-readable storage media as recited in claim 13 , wherein the instructions further comprise instructions which, when processed by the one or more processors, cause:

receiving, from the user, particular design information that includes a renaming change to at least one of the plurality of design elements;

automatically inspecting the first versioning information to determine one or more current versions of one or more design elements, of the plurality of design elements, that are affected by the renaming change; and

automatically modifying the one or more current versions of the one or more design elements to reflect the renaming change.

24. The one or more non-transitory computer-readable storage media as recited in claim 13 , wherein the instructions further comprise instructions which, when processed by the one or more processors, cause:

automatically maintaining in the repository second versioning information that associates at least one previous version of the mashup with previous versions of the plurality of design elements;

receiving, from the user, particular design information that includes a renaming change to at least one of the plurality of design elements;

automatically inspecting the first versioning information and the second versioning information to determine any current and previous versions of one or more design elements, of the plurality of design elements, that are affected by the renaming change; and

automatically modifying the current and the previous versions of the one or more design elements to reflect the renaming change.

Assignments (10)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2026
From: SERENA SOFTWARE, INC.
To: MICRO FOCUS LLC
Reel/Frame 073758/0887 →
RELEASE OF SECURITY INTEREST REEL/FRAME 039136/0241 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: SERENA SOFTWARE, INC
Reel/Frame 062623/0123 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
NOTICE OF SUCCESSION OF AGENCY Recorded May 2, 2017
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 042383/0830 →
SECURITY INTEREST Recorded Jul 12, 2016
From: SERENA SOFTWARE, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 039136/0241 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY'S NAME PREVIOUSLY RECORDED AT REEL: 026073 FRAME: 0206. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT. Recorded Jun 9, 2016
From: LEHMAN COMMERCIAL PAPER INC., AS RESIGNING ADMINISTRATIVE AGENT AND COLLATERAL AGENT
To: BARCLAYS BANK PLC, AS ADMINISTATIVE AGENT
Reel/Frame 038963/0840 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 032679/0596 Recorded May 2, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: SERENA SOFTWARE, INC.
Reel/Frame 038589/0480 →
RELEASE OF SECURITY AGREEMENT Recorded Apr 17, 2014
From: BARCLAYS BANK PLC, AS COLLATERAL AGENT
To: SERENA SOFTWARE, INC.
Reel/Frame 032712/0493 →
SECURITY INTEREST Recorded Apr 15, 2014
From: SERENA SOFTWARE, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 032679/0596 →