EP2332042A1 - Verfahren und vorrichtung zum austauschen einer komponente eines computersystems - Google Patents
Verfahren und vorrichtung zum austauschen einer komponente eines computersystemsInfo
- Publication number
- EP2332042A1 EP2332042A1 EP09782259A EP09782259A EP2332042A1 EP 2332042 A1 EP2332042 A1 EP 2332042A1 EP 09782259 A EP09782259 A EP 09782259A EP 09782259 A EP09782259 A EP 09782259A EP 2332042 A1 EP2332042 A1 EP 2332042A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- component
- replacement component
- replacement
- migration
- library
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/316—Aspect-oriented programming techniques
Definitions
- the present invention relates to replacing an exchange component of a computer system with a replacement component as part of a migration process in the computer system.
- the term migration refers to the replacement of a component within a computer system with an equivalent replacement.
- the replaced part is referred to as the replacement component of the migration below.
- the part that replaces the replacement component is called the replacement component of the migration.
- the overall system that is affected by the migration is the migration system.
- both software components and hardware components can be exchanged or replaced by the migration through corresponding software components and / or hardware components.
- replacement components based on software, i.
- Software components as such and hardware components whose operation is based on software.
- a migration does not mean a redesign of the architecture of a system or the creation of a previously non-existent independent component. Rather, the replacement and replacement components of migration are elements or components of the same kind. Otherwise, the processes of a migration would have to be summarized as restructuring, refactoring, reengineering, etc., but these are based on other processes and other objectives.
- a typical use case for a migration is replacing a component with a debugged, alternative, better, or newer version. For example, a database system of employee management software may be replaced by a more recent version of the database system.
- the term migration refers to a completed process that has the necessary backing up and transfer of data, configuration and testing of the migration and the migration system.
- Another known case of migration is to load a new version of an operating system into a computer system. Again, replacement and replacement components of the migration (old and new version of the operating system) are of the same kind. Nevertheless, a certain amount of planning, configuration, and migration testing is expected, so migration will be an autonomous and structurable one Activity represents.
- the extent of migration depends on the differences between the replacement component and the replacement component. Even if the replacement component and the replacement component are of the same type, the provided functionality of the replacement component may nevertheless differ in detail from the functionality of the replacement component, so that adaptations of the replacement component are necessary.
- the goal here is to ensure the same behavior of the migration system after migration as it did before the migration. Adjustments may be made either to the replacement component to produce the same relevant characteristics of the overall system as were present at the origin, ie, prior to performing the migration, or to the migration system, if the differences between the replacement component and the replacement component were identified by the Adjustment of the replacement component can not be compensated. In both cases, the intention or intention is to maintain compatibility between the component and the migration system to the degree that existed before migration between the replacement component and the migration system.
- the source code may be modified and retranslated.
- the modification and the new translation can be done relatively easily.
- the replacement component may be encapsulated to provide additional functionality. However, this only works for externally available interfaces. For the treatment Differences affecting the internal processes can not provide a suitable solution in this way.
- migration is the tool of choice when it comes to improving performance, increasing efficiency, advancing and / or adapting computing systems, components, devices, modules, and / or applications.
- the above object is achieved by means of a method for exchanging a replacement component of a computer system for a replacement component, wherein the replacement component in the computer system is replaced by the replacement component, wherein the replacement component is a is an alternative component to the component to be replaced and of the same type as the component to be replaced, and wherein the method comprises:
- Each of the replacement component and the replacement component each represents a software component that is intended and configured for insertion and use in a computer system.
- the replacement component and the replacement component take over various functions of the computer system.
- the replacement component and replacement component may operate, control, and / or manage other components of the computer system.
- the other components may be software and / or hardware components.
- library is understood to mean a program or software library that, in software programming, identifies a collection of program or software functions for related tasks as indicated above.
- the present invention enables an efficient, effective and flexibly configurable way of implementing a migration.
- no explicit adaptation of the source code of the replacement component is necessary. That is, the present invention can be implemented even if there is no source code.
- the present invention can obviate the frame problems discussed above. Additionally, by using the According to the invention, it is avoided that errors in the original code of the replacement component creep in and that a complex testing and validation of the replacement component and the migration system becomes necessary.
- the maintainability of the modifications made is clear and also much easier, more effective and more efficient to handle.
- the aspect of the replacement component is implemented separately. This avoids the problems mentioned above. Furthermore, the modifications are clearly separated from the replacement component, resulting in better handling and improved testing of the success of the migration.
- applying the aspect to the replacement component present as a translated library comprises creating a new and extended library of the replacement component.
- the compilation of the replacement component remains unchanged, which in particular has the advantage that the above-mentioned problems can be avoided.
- the method comprises determining the position of the aspect in the replacement component. This allows a targeted implementation of the modification or adjustments, while at the same time requires no intervention in the replacement component or in their code or in their library.
- applying the aspect to the substitute component present as a translated library is performed using the aspect at the designated position in the substitute component.
- the position determines which code or which part of the code of the replacement component should be modified.
- the invention described here utilizes the use of aspect-oriented programming (AOP) to compensate for deficits in the functionality of a replacement component and to establish necessary compatibility between migration system and replacement component.
- AOP aspect-oriented programming
- the functionality extensions or modifications of the replacement component are defined separately in a so-called aspect. Part of this definition is also defining the position in the substitute component to which the aspect is to be applied.
- the basic scheme here is that the replacement component as already translated library (for example, in the environment of
- Java programming language as a Java archive ".jar" is present, remains unchanged and is modified with separately present aspect definitions.
- Java programming one aspect can be implemented as a normal Java class.
- the class describes the extended or changed functionality.
- Annotations indicate which parts of the code of the replacement component should be exchanged or extended.
- a special procedure determines how an extended replacement component can be created.
- the present invention is not limited to Java programming.
- the aspects according to the present invention may be implemented in various programming languages. Further, the present invention is not limited only to Java class implementation, but various suitable programming paradigms may be used.
- the present invention provides a method for eliminating functionality differences in migration using AOP.
- AOP has so far only been used for structured new development of applications.
- the use of AOP according to the invention is in application to already existing components supplied by third-party manufacturers. This removes the classic role model - developer of the component also defines related aspects.
- the creation of the component and the definition of the associated aspects are carried out by different parties according to the present invention.
- the present invention has the particular advantage that no explicit source code adaptation is necessary. According to the present invention, an external description of the modifications is made as an aspect separate from the replacement component. This has the advantage that the availability of the source code of the replacement component is not necessary.
- Source code or the translated source code or the compilation of the replacement component unchanged.
- the present invention can make changes in internal functionality.
- the known methods, which implement an encapsulation of the component use, for example, so-called wrappers, which are designed to translate one interface into another, in order to enable communication of classes with mutually incompatible interfaces.
- wrappers which are designed to translate one interface into another, in order to enable communication of classes with mutually incompatible interfaces.
- Changing the internal functionality is not possible in these known methods, but is of particular importance when internal processing information must be extracted which is not offered by the replacement component via the interfaces.
- the present invention thus provides a much more powerful method that allows far more possibilities of functional extension in a replacement component.
- formulating functional enhancement in an external aspect allows separation of the modifications from the original configuration of the replacement component. This increases traceability and maintainability of the modification. If the source code of the replacement component were to be modified, either a method for marking the modification or a method for comparison with the original would have to be provided in order to ensure traceability.
- the present invention thus provides a development framework by which functionality enhancements can be incorporated into the replacement components present as existing libraries.
- the method according to the invention allows a secure, effective and comprehensive execution of a migration or replacement of an exchange component of a computer system with a replacement component. This leads to a safe and effective improvement of performance, an increase in efficiency, and an adaptation of the computer system in which the replacement component is used.
- embodiments of the present invention will be described in detail with reference to the attached figures.
- FIG. 1 is a flow chart illustrating the steps of the method of replacing an exchange component of a computer system with a replacement component according to an embodiment of the present invention.
- Fig. 2 is a schematic representation of an arrangement for
- a migration can be divided into the following phases:
- Planning where planning includes selecting a replacement component and identifying the differences between the replacement and replacement components.
- bridge missing functionality includes implementing the necessary adjustments to the replacement component or the migration system.
- the present invention relates in particular to the phase 2 of the migration, d. H. bridging the missing functionality of the replacement component and implementing the necessary adjustments to the replacement component.
- the initial case is that modifications to the replacement component must be made to achieve the original compatibility. This is necessary if the replacement component does not provide functionality that was present on the replacement component. At this point lies the critical point of migration. If it turns out that the necessary compatibility can not be established in a conventional way, the entire migration project fails. This complicates the fact that such deficiencies of the replacement component are detected only very late.
- the invention presented here allows a modification of the replacement component to allow compatibility with the migration system.
- the approach also offers a solution in the event that a modification to the source code of the replacement component is not possible due to legal framework conditions.
- FIG. 1 is a flowchart illustrating the replacement of an exchange component of a computer system with a replacement component according to one embodiment of the present invention.
- step Sl differences, in particular differences in functionality between the replacement component and the replacement component are determined.
- the determined differences in functionality are used to implement modifications or adjustments of the replacement component by means of aspect programming in a so-called aspect in step S2.
- the implemented aspect is translated in step S3, whereby a library including the translated aspect is also generated.
- step S4 the translated aspect, in particular the library containing the translated aspect, is then applied to the replacement component.
- the replacement component is a translated library.
- Applying the aspect to the replacement component in step S4 may include determining the position of the aspect in the replacement component. This is performed in step S41 according to the present embodiment. When determining such a position of the aspect, applying the aspect S4 to the substitute component comprises using the aspect at the designated position. This is done in step S42. The position determines which code of the replacement component is to be modified or adapted.
- FIG. 2 shows a schematic representation of an arrangement for exchanging a component of a computer system according to an embodiment of the present invention.
- An exchange component 1 and a replacement component 2 are provided.
- the replacement component 1 is to be replaced by the replacement component 2.
- a functional analysis device 3 analyzes in each case the functionality which is provided by the replacement component 1 or by the replacement component 2.
- the determined functionality difference 3a is transmitted to an adaptation device 4.
- an adaptation of the functionality of replacement component 2 to the functionality of replacement component 1 is implemented as an aspect 4a.
- the implemented aspect 4a becomes a translation device 5 transmitted.
- the translation device 5 becomes an aspect library 5a having aspect 4a.
- the aspect library 5a is transmitted to an application device 6.
- the application device 6 applies the aspect library 5a to the replacement component 2, with the replacement component 2 as a library.
- the functionality of the replacement component 2 has been adapted to the functionality of the replacement component 1. Consequently, the replacement component 1 can be replaced by the replacement component 2.
- the object-relational framework Hibernate is used to simplify access to a relational database. Due to a special framework condition, the Hibernate framework is to be removed from the software system and replaced by an alternative product in the example shown. The migration is to replace "Hibernate” with another object-relational framework called "OpenJPA.” The replacement component of this migration is thus Hibernate, the replacement component OpenJPA.
- a special failover database URL will be used jdbc: solid: // ⁇ hostl>: ⁇ portl>, ⁇ host2>: ⁇ port2> / ⁇ usr> / ⁇ password>, which sets a primary host and a secondary hostl or host2. If the database system fails on the primary computer, for example because the computer has been shut down, it automatically switches over to the available secondary computer, which immediately takes over the database operation. This particular database resiliency worked under "Hibernate” but not under "OpenJPA". The reason for this is that the failover URL form of OpenJPA is not allowed.
- the ChangeURLAspect aspect is a Java class that becomes an aspect through an @ Aspect annotation.
- the Java annotation @Around replaces the existing code in the Optimizkompo ⁇ nente.
- the annotation @Before executes the code before execution.
- the string within the annotation determines which code is affected:
- ⁇ pathelement location "openjpa-0.9.7-incubating .j ar" />
- ⁇ pathelement location "libaspecturl. j ar” /> ⁇ / inj ars>
- ⁇ aspectpath> ⁇ pathelement location "libaspecturl. j ar" /> ⁇ / aspectpath> ⁇ / iaj c>
- ⁇ iajc outjar "new-soliddriver-4.5.127. j ar">
- ⁇ classpath refid "project. classpath” /> ⁇ injars>
- ⁇ pathelement location "soliddriver-4.5.127. j ar" />
- ⁇ path element location "libaspecturl. j ar” /> ⁇ / inj ars> ⁇ aspect path>
- ⁇ path element location "libaspecturl. j ar” />
- the replacement of an exchange component is carried out, and according to the proposed method, the lack of support for database resiliency and an available of ongoing services and data.
- the advantage here is that the proposed method allows a fault-robust migration of components to be replaced.
- aspect-oriented programming paradigm as well as the use of dynamically attachable libraries allow flexible migration of components.
- the present invention relates to replacing a replacement component of a computer system with a replacement component in a migration process in the computer system, replacing the replacement component in the computer system with the replacement component, and wherein the replacement component represents an alternative component to the component to be replaced; of the same kind as the component to be replaced.
- the inventive method comprises the following steps: determining differences in functionality between the replacement component and the replacement component; Implementing modifica- tions of the replacement component by means of aspect programming in a so-called aspect, the implementation being based on the determined differences in functionality; Translating the aspect and creating a library containing the translated aspect; and applying the aspect to the replacement component present as a translated library. In this way, flexible migration in a computer system is achieved.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
Description
Claims
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102008050568 | 2008-10-06 | ||
DE102008061480A DE102008061480A1 (de) | 2008-10-06 | 2008-12-10 | Verfahren und Vorrichtung zum Austauschen einer Komponente eines Computersystems |
PCT/EP2009/061046 WO2010040597A2 (de) | 2008-10-06 | 2009-08-27 | Verfahren und vorrichtung zum austauschen einer komponente eines computersystems |
Publications (1)
Publication Number | Publication Date |
---|---|
EP2332042A1 true EP2332042A1 (de) | 2011-06-15 |
Family
ID=41795178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP09782259A Withdrawn EP2332042A1 (de) | 2008-10-06 | 2009-08-27 | Verfahren und vorrichtung zum austauschen einer komponente eines computersystems |
Country Status (4)
Country | Link |
---|---|
US (1) | US20110209131A1 (de) |
EP (1) | EP2332042A1 (de) |
DE (1) | DE102008061480A1 (de) |
WO (1) | WO2010040597A2 (de) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8677339B2 (en) * | 2010-04-13 | 2014-03-18 | International Business Machines Corporation | Component relinking in migrations |
EP2680162A1 (de) | 2010-07-13 | 2014-01-01 | Motionpoint Corporation | Lokalisierung eines Websiteinhalts |
IL210169A0 (en) | 2010-12-22 | 2011-03-31 | Yehuda Binder | System and method for routing-based internet security |
US20130159528A1 (en) * | 2011-12-15 | 2013-06-20 | Microsoft Corporation | Failover based application resource acquisition |
WO2014031494A2 (en) | 2012-08-18 | 2014-02-27 | Luminal, Inc. | System and method for providing a secure computational environment |
US9195294B2 (en) | 2012-11-13 | 2015-11-24 | International Business Machines Corporation | Cooperatively managing enforcement of energy related policies between virtual machine and application runtime |
US9189619B2 (en) * | 2012-11-13 | 2015-11-17 | International Business Machines Corporation | Runtime based application security and regulatory compliance in cloud environment |
US9823997B2 (en) * | 2015-08-11 | 2017-11-21 | Bank Of America Corporation | Production resiliency testing system |
US10341194B2 (en) | 2015-10-05 | 2019-07-02 | Fugue, Inc. | System and method for building, optimizing, and enforcing infrastructure on a cloud based computing environment |
US10496632B2 (en) | 2015-12-09 | 2019-12-03 | Vinyl Development LLC | Query processor |
US10262020B2 (en) | 2016-02-11 | 2019-04-16 | Adp, Llc | Method for effective dating object models |
WO2017156144A1 (en) * | 2016-03-09 | 2017-09-14 | Kennedy Jr Thomas R | Source independent query language |
US9870292B2 (en) * | 2016-03-17 | 2018-01-16 | Epro Gmbh | Configurationless redundancy |
US10223247B2 (en) * | 2016-07-05 | 2019-03-05 | Red Hat, Inc. | Generating pseudorandom test items for software testing of an application under test (AUT) |
EP3547122B1 (de) * | 2018-03-27 | 2023-06-07 | CODESYS Holding GmbH | Verfahren und system zum ersetzen einer softwarekomponente eines laufzeitsystems |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030182414A1 (en) * | 2003-05-13 | 2003-09-25 | O'neill Patrick J. | System and method for updating and distributing information |
US20090037899A1 (en) * | 2004-02-13 | 2009-02-05 | Blue Vector Systems | Radio frequency identification (rfid) network upgrade system and method |
KR100673313B1 (ko) * | 2004-12-30 | 2007-01-24 | 재단법인서울대학교산학협력재단 | 코드조각 번호 매김을 이용한 프로그램 간의 코드조각결합방법 |
US7810082B2 (en) * | 2005-07-22 | 2010-10-05 | Telefonaktiebolaget L M Ericsson (Publ) | System and method for transforming generic software code into operator specific code |
US20070074187A1 (en) * | 2005-09-29 | 2007-03-29 | O'brien Thomas E | Method and apparatus for inserting code fixes into applications at runtime |
US7958489B2 (en) * | 2007-04-12 | 2011-06-07 | Microsoft Corporation | Out of band data augmentation |
US8327341B2 (en) * | 2007-05-31 | 2012-12-04 | Red Hat, Inc. | Integrating aspect oriented programming into the application server |
US8245186B2 (en) * | 2008-04-03 | 2012-08-14 | Microsoft Corporation | Techniques for offering and applying code modifications |
US8196152B2 (en) * | 2008-04-22 | 2012-06-05 | International Business Machines Corporation | Container context information propagation in an aspect-oriented environment |
-
2008
- 2008-12-10 DE DE102008061480A patent/DE102008061480A1/de not_active Ceased
-
2009
- 2009-08-27 US US13/122,507 patent/US20110209131A1/en not_active Abandoned
- 2009-08-27 EP EP09782259A patent/EP2332042A1/de not_active Withdrawn
- 2009-08-27 WO PCT/EP2009/061046 patent/WO2010040597A2/de active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2010040597A2 (de) | 2010-04-15 |
US20110209131A1 (en) | 2011-08-25 |
DE102008061480A1 (de) | 2010-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2332042A1 (de) | Verfahren und vorrichtung zum austauschen einer komponente eines computersystems | |
EP1176482B1 (de) | Verfahren und Computerprogramm zum Herstellen einer Regelung oder Steuerung | |
DE69636887T2 (de) | System und Verfahren,um verschiedenen Anbietern von Namen zu ermöglichen,sich dynamisch einer Namensföderation anzuschliessen | |
DE102005050304A1 (de) | Verfahren und Programm für die Generierung automatisch verteilbarer Clients von Application-Servern | |
EP1770590A2 (de) | Verfahren und System zum Schutz von Quellcode | |
WO2015185328A1 (de) | Computerimplementiertes verfahren und signalfolge für ein programm zur wiederverwendung von ausführbaren softwarekonfigurationen für softwaresysteme sowie rechneranlage und ein computerprogramm mit programmcode zur durchführung des verfahrens | |
WO2013004389A1 (de) | Verfahren und vorrichtung zur programmierung und konfigurierung einer speicherprogrammierbaren steuereinrichtung | |
EP1738257B1 (de) | Verfahren zum vermeiden von dateninkonsistenz zwischen zugriffen verschiedener funktionen einer anwendung auf eine globale variable in einer datenverarbeitungsanlage | |
EP3217236A1 (de) | Verfahren und system zur generierung eines bedienprogramms in form einer auf einem mobilen gerät lauffähigen mobilen applikation | |
EP1609061A2 (de) | Verfahren und anordnung zur veränderung von software oder quellcode | |
WO2009010338A1 (de) | Verfahren zur rechnergestützten obfuskierung eines softwareprogramms und computerprogrammprodukt | |
EP3872661A1 (de) | Analyse einer container-instanz eines betriebssystems | |
DE19908866C1 (de) | Verfahren zum Übertragen eines Softwaresystems auf andere Hardwareplattformen | |
DE102008048862A1 (de) | Testmodul und Verfahren zum Testen einer O/R-Abbildungs-Middleware | |
DE102004012315A1 (de) | Verfahren zur automatischen Anpassung von Software | |
DE102012202603B3 (de) | Verfahren zur modellbasierten Softwareentwicklung von Programmen mit Datenbankzugriff | |
EP1343078B1 (de) | System zur Modellierung und Generierung von Softwaregenerierungssystemen | |
DE102022208030A1 (de) | Verfahren zum kollaborativen Erstellen eines Softwareprodukts und Verfahren zur Reaktion auf einen Fehler | |
DE19617719C2 (de) | Verfahren zur Programmübersetzung eines in der Programmiersprache C++ geschriebenen Programms | |
DE102005005125A1 (de) | Verfahren zur Bereitstellung einer geschützten Datenschnittstelle | |
DE102022207612A1 (de) | Computer-implementiertes Verfahren zur Verifikation einer Softwarekomponente einer automatisierten Fahrfunktion | |
DE202014006343U1 (de) | Rechneranlage, Datenträger sowie Signalfolge für ein Programm zur Wiederverwendung von ausführbaren Softwarekonfigurationen für Softwaresysteme | |
WO2020249398A1 (de) | Containerisierte entwicklungsinfrastruktur | |
DE102019217057A1 (de) | Verfahren und Vorrichtung zum Verwalten einer Softwarekomponente für ein vorgegebenes System | |
EP1752875A2 (de) | Erzeugung und Ausführung von Programmen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20110309 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO SE SI SK SM TR |
|
AX | Request for extension of the european patent |
Extension state: AL BA RS |
|
DAX | Request for extension of the european patent (deleted) | ||
17Q | First examination report despatched |
Effective date: 20121123 |
|
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: SIEMENS AKTIENGESELLSCHAFT |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20130404 |