System and method for reducing coupling between modules in a...

Electrical computers and digital processing systems: multicomput – Computer-to-computer data routing – Least weight routing

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06389483

ABSTRACT:

DESCRIPTION
1. Technical Field of the Invention
The invention relates to the field of computer programming languages, methodologies and systems and more particularly, to a system and method for reducing the interdependence between modular software units and facilitating the dynamic replacement or hot-swapping of software modules at run-time in a real-time environment, such as a telecommunications environment.
2. Description of Related Art
This patent application concerns the development and maintenance of large software systems. It has been found desirable to have the ability to extend or modify a system so as to cope with new or changed requirements. It has further been found desirable to find techniques for making such changes both simply and selectively. Consequently, an ideal software development environment should permit much of the software used in an old system to be reused or be combined into a new system with only slight modifications. In some application areas such as the telecommunications, it has also been found desirable that system modifications be possible during run time, i.e., to be made dynamically in a live system. Such dynamic system modification is sometimes referred as “hot-swapping”—a term commonly used in the field of computer hardware.
In order to limit the cascading effect of changes and to simplify the reuse and/or modification of different parts of a large software system, it has become common to partition the software into modules on the basis of some general design principles that offer such benefits. It should be emphasized that ideally the different software modules should be as independent of each other as possible so that a change in one module or the replacement of another does not result in or require changes to a great number of other modules.
The decoupling of software modules (variously referred to in the art as parts, components, objects or processes) is currently solved by a two-step process. First, by requiring that an interface be declared that defines what a module type may provide to other module types, and sometimes also defining the functions and data that a module may use from other modules. Next, such interface information is used to statically link the different modules into a system. This technique can prevent ordinary users of a module from directly using knowledge about the internal implementation of a software module in undesirable ways.
Class 5 telecommunications switches, such as AT&T's 5ESS system or Ericsson's AXE-10 system, comprise complex telecommunication hardware and software. The software architecture of Ericsson's AXE-10 system requires each block or module to have a Signal Sending Table (SST) to decouple it from other blocks or modules. The basic purpose of the Signal Sending Table used in AXE-10 is to provide linking information for signals sent from a module, specifying the receiving module the signals are intended to be sent to. The signals sent are used to trigger the execution of program code implementing the function associated with the signal but are typically not directly linked to the entry position for such code. Instead the linking is done indirectly via a Signal Distribution Table (SDT), for the common input port of the block. The entry position in this SDT is called the Local Signal Number (LSN). One can use a linker to find the LSN of a receiving block and provide this information to the SST of the sending block.
The AXE-10 software architecture also includes support for a concept referred to as “multiple signals” wherein the same signal is sent to multiple receiving blocks and where the receiver that is to act on the signal is specified at run-time. In this case one needs to find the smallest possible LSN that fits all receiving blocks (so as to avoid wasting a large block of memory space for the SDT). This reduces to a difficult optimization problem that should be avoided if possible.
As described in U.S. Pat. Ser. No. 5,297,285 entitled S
YSTEM FOR
D
YNAMICALLY
L
INKING
M
ODULAR
P
ORTIONS OF
C
OMPUTER
S
OFTWARE
issued to Anders ABRAHAMSSON & Lars HOLMQVIST, one way to improve this software architecture is by complementing the Signal Sending Table and Signal Distribution Table of the various different modules with a Global Signal Distribution Table (GSDT). This simplifies the problems associated with the dynamic linking of software modules. In such a case, the sending block can use a Global Signal Number (GSN) in conjunction with the block number of the receiving block to find the appropriate LSN for that receiving block.
FIG. 1
is a diagrammatic representation of the manner in which modular software blocks are dynamically linked in accordance with the system of this Ericsson patent.
The system and method disclosed in the above-identified Ericsson patent can be extended or generalized as to cover the case where a symbolic block number is replaced by an actual block number. More details about this technique can be obtained by reference to this U.S. Pat. Ser. No. 5,297,285.
Another U.S. Pat. Ser. No. 5,339,430 entitled S
YSTEM FOR
D
YNAMIC
R
UN
-T
IME
B
INDING OF
S
OFTWARE
M
ODULES IN A
C
OMPUTER
S
YSTEM
issued to Kenneth LUNDIN & Ulf MARKSTRÖM describes a technique for object decoupling and dynamic relinking of object-oriented software modules using abstract language-independent interface specifications supported by compilation techniques and an address trader (which is functionally equivalent to a global address table) that is built into the kernel of the operating system.
Yet another U.S. Pat. Ser. No. 5,410,703, entitled S
YSTEM FOR
C
HANGING
S
OFTWARE
D
URING
C
OMPUTER
O
PERATION
issued to Rickard NILSSON, Ulf MARKSTRÖM & Leif KLÖFVER describes the use of an addressing mechanism that allows two references, one to an old module or object and the other to a new module or object. This patent also describes a mechanism for relating and maintaining the state of both an old as well as a new module during the updating phase in an object-oriented system.
FIG. 2
is a flow chart illustrating the process of changing software during run-time in accordance with the system of this Ericsson patent. However, it should be noted that the term “module” as used in this reference appears to refer to a software reload unit or replacement unit, and has thus a somewhat different meaning from the term as used in the present patent application.
In theory, program entities invoking a module (which may be other modules) can be restricted from straying beyond a defined interface and from using knowledge about the implementation of a module. However, different modules are often designed by software engineers who have knowledge about the existence and internal architecture of other related modules. They may use their information in ways that can make future changes to the system complex.
There is a fundamental conflict in designing modular software systems. On the one hand, one would like to modularize the design of complex software systems by partitioning the application domain and then using the set of software modules as building blocks in crafting a solution. This requires that the various software modules complement each other and work well in combination.
On the other hand, it is also desirable to provide each module with the least amount of information about the internal implementational details of other modules. While it is important to provide each module with abstract or essential knowledge about other software modules in order to permit a module to make use of other modules, it is also desirable to restrict access to detailed internal information about a module (e.g., address information regarding a specific instance of a module type) from other modules.
Current approaches for addressing this problem have principally concentrated on techniques for encapsulating and protecting the module internals. However, these approaches do not prevent inter-dependencies between modules from arising, which in turn may make system changes difficult to implement without the modification of

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

System and method for reducing coupling between modules in a... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with System and method for reducing coupling between modules in a..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System and method for reducing coupling between modules in a... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2866053

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.