IP Library Granted Patent US 6,880,086
Granted Patent B2
US 6,880,086 · App. 09/777,468 · Granted Apr 12, 2005

Signatures for facilitating hot upgrades of modular software components

Assignee: CIENA Corporation
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 6,880,086
App. No.
09/777,468
Granted
Apr 12, 2005
Kind
B2
Abstract

The present invention provides a method and apparatus for facilitating hot upgrades of software components within a telecommunications network device through the use of “signatures” generated by a signature generating program. After installation of a new software release within the network device, only those software components whose signatures do not match the signatures of corresponding and currently executing software components are upgraded. Signatures promote hot upgrades by identifying only those software components that need to be upgraded. Since signatures are automatically generated for each software component as part of putting together a new release a quick comparison of two signatures provides an accurate assurance that either the software component has changed or has not. Thus, signatures provide a quick, easy way to accurately determine the upgrade status of each software component.

Claims (70)

1. A method for operating a telecommunications network device including a modular architecture, comprising:

operating the network device using a first set of software components from a first release;

receiving a request for a hot upgrade to a second release;

determining if signatures for software components in the first set of software components match signatures for corresponding software components in a second set of software components from the second release;

continuing to operate the network device using software components in the first set of software components having signatures that match the signatures of corresponding software components in the second set of software components; and

operating the network device using software components in the second set of software components having signatures that did not match the signatures of corresponding software components in the first set of software components.

2. The method of claim 1 , further comprising:

operating the network device using software components in the second set of software components that do not have corresponding software components in the first set of software components.

3. The method of claim 1 , wherein determining if signatures for software components in the first set of software components match signatures for corresponding software components in a second set of software components from the second release, comprises:

opening a first packaging list from the first release, wherein the first packaging list includes a list of software components in the first release and a list of corresponding signatures for the software components in the first release;

opening a second packaging list from the second release, wherein the second packaging list includes a list of software components in the second release and a list of corresponding signatures for the software components in the second release; and

comparing, for each software component, the signatures in the first packaging list to the signatures in the second packaging list.

4. The method of claim 1 , wherein operating the network device using software components in the second set of software components having signatures that did not match the signatures of corresponding software components in the first set of software components, comprises:

implementing the software components in the second set of software components having signatures that did not match the signatures of corresponding software components in the first set of software components in accordance with an upgrade instructions file in the second release.

5. The method of claim 1 , wherein the upgrade request is from an external network management system.

6. The method of claim 1 , wherein prior to receiving a request for a hot upgrade to a second release, the method further comprises:

detecting an installation of the second release within the network device; and

providing an indication of the installation of the second release to an external network management system.

7. The method of claim 6 , wherein providing an indication of the installation of the second release to an external network management system, comprises:

sending a notification to the external network management system.

8. The method of claim 6 , wherein providing an indication of the installation of the second release to an external network management system, comprises:

adding a record to a table internal to the network device indicating the second release has been installed, wherein the table is periodically polled by the external network device.

9. The method of claim 1 , further comprising:

terminating software components in the first set of software components having signatures that did not match the signatures of software components in the second set of software components.

10. A method for operating a telecommunications network device including a modular architecture, comprising:

operating the network device using a first set of software components from a first release;

receiving a request for a hot upgrade to a second release;

opening a first packaging list from the first release, wherein the first packaging list includes a list of software components in the first release and a list of corresponding signatures for the software components in the first release;

opening a second packaging list from the second release, wherein the second packaging list includes a list of software components in the second release and a list of corresponding signatures for the software components in the second release;

comparing, for each software component, the signatures in the first packaging list to the signatures in the second packaging list;

continuing to operate the network device using software components in the first set of software components having signatures that match the signatures of corresponding software components in the second set of software components; and

operating the network device using software components in the second set of software components having signatures that did not match the signatures of corresponding software components in the first set of software components.

11. A method for generating software for a telecommunications network device including a modular architecture, comprising:

creating a set of software components;

generating a signature for each software component using a signature generating program;

appending the signature for each software component to each software component;

generating a packaging list including a list of each software component and a list of the signatures for each software component; and

building a release including the software components and the packaging list.

12. The method of claim 11 , wherein the set of software components is a first set of software components, the packaging list is a first packaging list and the release is a first release and wherein the method further comprises:

modifying at least one software component in the first set of software components;

including the at least one modified software component and the remaining software components from the first set of software components in a second set of software components;

generating a signature for each software component in the second set of software components using the signature generating program;

appending the signature for each software component in the second set of software components to each software component;

generating a second packaging list including a list of each software component in the second set of software components and a list of the signatures for each software component in the second set of software components; and

building a new release including the second set of software components and the second packaging list.

13. The method of claim 12 , wherein prior to generating a signature for each software component in the second set of software components using the signature generating program, the method further comprises:

creating a new software component; and

including the new software component in the second set of software components.

14. The method of claim 11 , wherein prior to generating a signature for each software component using a signature generating program, the method further comprises:

blocking out extraneous data within each software component.

15. The method of claim 11 , wherein prior to generating a signature for each software component using a signature generating program, the method further comprises:

removing extraneous data within each software component; and

wherein appending the signature for each software component in the second set of software components to each software component, includes:

replacing the removed extraneous data within each software component.

16. The method of claim 11 , wherein the signature generating program comprises a cryptographic program.

17. The method of claim 16 , wherein the cryptographic program comprises the Sha-1 cryptographic utility.

18. The method of claim 16 , wherein the cryptographic program comprises the MD2, MD4 or MD5 hash function.

19. The method of claim 16 , wherein the cryptographic program comprises the Ripemd128 or Ripemd160 hash function.

20. The method of claim 11 , wherein the signature generating program comprises a checksum program.

21. A telecommunications network device, comprising:

a modular software architecture including:

a first release, including a first set of software components, for operating the network device;

a second release, including a second set of software components, for operating the network device;

a first process capable of receiving a request for a hot upgrade from the first release to the second release;

a second process capable of determining if signatures for software components in the first set of software components match signatures for corresponding software components in the second set of software components; and

a third process capable of continuing to operate the network device using software components in the first set of software components having signatures that match the signatures of corresponding software components in the second set of software components and capable of operating the network device using software components in the second set of software components having signatures that did not match the signatures of corresponding software components in the first set of software components.

22. The telecommunications network device of claim 21 , wherein the first, second and third processes comprise the same process.

23. The telecommunications network device of claim 21 , wherein the first and second processes comprise different processes.

24. The telecommunications network device of claim 21 , wherein the first release comprises a first packaging list, including a list of software components in the first release and a list of corresponding signatures for the software components in the first release, and wherein the second release comprises a second packaging list, including a list of software components in the second release and a list of corresponding signatures for the software components in the second release, and wherein the second process determines if signatures for software components in the first set of software components match signatures for corresponding software components in a second set of software components by opening the first and second packaging lists and comparing, for each software component, the signatures in the first packaging list with the signatures in the second packaging list.

25. The telecommunications network device of claim 21 , wherein the third process is further capable of operating the network device using software components in the second set of software components that do not have corresponding software components in the first set of software components.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Nov 20, 2023
From: BANK OF AMERICA, N.A.
To: CIENA CORPORATION
Reel/Frame 065630/0232 →
PATENT SECURITY AGREEMENT Recorded Nov 8, 2019
From: CIENA CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 050969/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 30, 2019
From: DEUTSCHE BANK AG NEW YORK BRANCH
To: CIENA CORPORATION
Reel/Frame 050938/0389 →
PATENT SECURITY AGREEMENT Recorded Jul 16, 2014
From: CIENA CORPORATION
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 033347/0260 →
SECURITY INTEREST Recorded Jul 15, 2014
From: CIENA CORPORATION
To: DEUTSCHE BANK AG NEW YORK BRANCH
Reel/Frame 033329/0417 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2005
From: EQUIPE COMMUNICATIONS CORPORATION
To: CIENA CORPORATION
Reel/Frame 016135/0680 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2001
From: KIDDER, JOSEPH D.; MAHLER, MICHAEL B.; PERREAULT, EDWARD L.; STEARNS, MARGARET; HURLEY, JIM
To: EQUIPE COMMUNICATIONS CORPORATION
Reel/Frame 011547/0225 →
Continuity (22)
Continuation In Part 0971822400 · Nov 21, 2001
Continuation In Part 0975693600 · Jan 9, 2001
Continuation In Part 0971105400 · Nov 9, 2000
Continuation In Part 0970385600 · Nov 1, 2000
Continuation In Part 0968719100 · Oct 12, 2000
Continuation In Part 0966936400 · Sep 26, 2000
Continuation In Part 0966394700 · Sep 18, 2000
Continuation In Part 0965612300 · Sep 6, 2000
Continuation In Part 0965370000 · Aug 31, 2000
Continuation In Part 0963780000 · Aug 11, 2000
Continuation In Part 0963367500 · Aug 7, 2000
Continuation In Part 0962510100 · Jul 24, 2000
Continuation In Part 0961647700 · Jul 14, 2000
Continuation In Part 0961394000 · Jul 11, 2000
Continuation In Part 0959605500 · Jun 16, 2000
Continuation In Part 0959303400 · Jun 13, 2000
Continuation In Part 0957444000 · May 20, 2000
Continuation In Part 0959119300 · Jun 9, 2000
Continuation In Part 0958839800 · Jun 6, 2000
Continuation In Part 0957434100 · May 20, 2000
Continuation In Part 0957434300 · May 20, 2000
Related Publication 20040031030A1 · Feb 12, 2004