227 research outputs found
A parallel transformations framework for cluster environments.
In recent years program transformation technology has matured into a practical solution for many software reengineering and migration tasks.
FermaT, an industrial strength program transformation system, has demonstrated that legacy systems can be successfully transformed into efficient and maintainable structured C or COBOL code. Its core, a transformation engine, is based on mathematically proven program transformations and ensures that transformed programs are semantically equivalent to its original state. Its engine facilitates a Wide Spectrum Language (WSL), with low-level as well as high-level constructs, to capture as much information as possible during transformation steps. FermaT’s methodology and technique lack in provision of concurrent migration and analysis. This provision is crucial if the transformation process is to be further automated. As the constraint based program migration theory has demonstrated, it is inefficient and time consuming, trying to satisfy the enormous computation of the generated transformation sequence search-space and its constraints.
With the objective to solve the above problems and to extend the operating range of the FermaT transformation system, this thesis proposes a Parallel Transformations Framework which makes parallel transformations processing within the FermaT environment not only possible but also beneficial for its migration process. During a migration process, many thousands of program transformations have to be applied. For example a 1 million line of assembler to C migration takes over 21 hours to be processed on a single PC. Various approaches of search, prediction techniques and a constraint-based approach to address the presented issues already exist but they solve them unsatisfactorily. To remedy this situation, this dissertation proposes a framework to extend transformation processing systems with parallel processing capabilities. The parallel system can analyse specified parallel transformation tasks and produce appropriate parallel transformations processing outlines. To underpin an automated objective, a formal language is introduced. This language can be utilised to describe and outline parallel transformation tasks whereas parallel processing constraints underpin the parallel objective.
This thesis addresses and explains how transformation processing steps can be automatically parallelised within a reengineering domain. It presents search and prediction tactics within this field. The decomposition and parallelisation of transformation sequence search-spaces is outlined. At the end, the presented work is evaluated on practical case studies, to demonstrate different parallel transformations processing techniques and conclusions are drawn
Legacy-palveluiden kontainerisointi ja pilvimigraatio
A research group has multiple web services running on an outdated server hardware. Many of the services are old and not actively developed anymore and also often depend on outdated software, which is problematic from the security point of view. It is time to decommission the old hardware and therefore the services needs to be migrated onto a more modern platform. While migrating away from the old servers, we want to make the services easier for the research group to maintain and improve security where possible.
Containerization technologies are an increasingly popular way to build, package and deploy software. Containers provide a convenient way to package software along with it dependencies to be easily run across different computers and operating systems. While being more lightweight than virtual machines, containers provide a layer of isolation between services running on a same host. Containerized services can be hosted on a cloud container platforms such as Kubernetes or OpenShift.
In this thesis work, multiple existing web services built on top of varying techonologies are containerized. The containerized services are then deployed onto an OpenShift cloud container platform. We see how containerization can lead to better maintainability and security of olded services. Containerization provides a layer of isolation between the services improving security and makes it easier to deploy them on different plaftorms if needed. The OpenShift platform provides container orchestration and tools for automating builds and deployment, which we utilize to make sure that the services and their dependencies are always kept upt-do-date.Tutkimusryhmällä on useita verkkopalveluita, joita ajetaan vanhentuneella, paikallisella palvelinalustalla. Monet näistä palveluista eivät ole enää aktiivisessa kehityksessä. Useat palveluista ovat riippuvaisia vanhoista ohjelmistoversioista, joka on ongelmallista palveluiden turvallisuuden kannalta. Vanhat palvelimet on tarkoitus poistaa käytöstä, ja palvelut tulee siirtää uudelle alustalle. Siirron yhteydessä haluamme tehdä palveluiste tutkimusryhmälle helpompia ylläpitää sekä parantaa palveluiden turvallisuutta, mikäli mahdollista.
Kontainerisointi on suosittu tapa rakentaa, paketoida ja ajaa ohjelmistoja. Kontainerit mahdollistavat ohjelmiston ja sen riippuvuuksien sisällyttämisen samaan pakettiin, tehden ohjelmiston ajamisesta eri alustoilla ja käyttöjärjestelmillä helppoa. Kontainerit ovat kevyempiä kuin perinteiset virtuaalikoneet, mutta eristävät kuitenkin samassa ympäristössä ajettavat ohjelmistot toisistaan. Kontainerisoituja palveluita voidaan ajaa pilvikontaineriympäristöissä, kuten Kubernetes ja OpenShift.
Tässä diplomityössä kontainerisoimme useita eri teknologioihin perustuvia verkkopalveluita. Kontainerisoidut palvelut viedään OpenShift -pilvikontaineralustalle. Näemme, kuinka kontainerisointi voi parantaa verkkopalveluiden ylläpidettävyyttä ja turvallisuutta. OpenShift -alusta huolehtii kontainereiden orkestroinnista sekä tarjoaa meille työkalut kontainereiden luonnin ja ajamisen automatisointiin. Hyödynnämme tätä palveluiden ja niiden ohjelmistoriippuvuuksien automaattiseen päivitykseen
A wide spectrum type system for transformation theory
One of the most difficult tasks a programmer can be confronted with is the migration of a legacy system. Usually, these systems are unstructured, poorly documented and contain complex program logic. The reason for this, in most cases, is an emphasis on raw performance rather than on clean and structured code as well as a long period of applying quick fixes and enhancements rather than doing a proper software reengineering process including a full redesign during major enhancements. Nowadays, the old programming paradigms are becoming an increasingly serious problem. It has been identified that 90% of the costs of a typical software system arise in the maintenance phase. Many companies are simply too afraid of changing their software infrastructure and prefer to continue with principles like "never touch a running system". These companies experience growing pressure to migrate their legacy systems onto newer platforms because the maintenance of such systems is expensive and dangerous as the risk of losing vital parts of sources code or its documentation increases drastically over time. The FermaT transformation system has shown the ability to automatically or semi-automatically restructure and abstract legacy code within a special intermediate language called WSL (Wide Spectrum Language). Unfortunately, the current transformation process only supports the migration of assembler as WSL lacks the ability to handle data types properly. The data structures in assembler are currently directly translated into C data types which involves many assumptional “hard coded” conversions. The absence of an adequate type system for WSL caused several flaws for the whole transformation process and limits its abilities significantly. The main aim of the presented research is to tackle these problems by investigating and formulating how a type system can contribute to a safe and reliable migration of legacy systems. The described research includes the definition of key aspects of type related problems in the FermaT migration process and how to solve them with a suitable type system approach. Since software migration often includes a change in programming language the type system for WSL has to be able to support various type system approaches including the representation of all relevant details to avoid assumptions. This is especially difficult as most programming languages are designed for a special purpose which means that their possible programming constructs and data types differ significantly. This ranges from languages with simple type systems whose program sare prone to unintended side-effects, to languages with strict type systems which are constrained n their flexibility. It is important to include as many type related details as necessary to avoid making assumptions during language to language translation. The result of the investigation is a novel multi layered type system specifically designed to satisfy the needs of WSL for a sophisticated solution without imposing too many limitations on its abilities. The type system has an adjustable expressiveness, able to represent a wide spectrum of typing approaches ranging from weak typing which allows direct memory access and down casting, via very strict typing with a high diversity of data types to object oriented typing which supports encapsulation and data hiding. Looking at the majority of commercial relevant statically typed programming languages, two fundamental properties of type strictness and safety can be identified. A type system can be either weakly or strongly typed and may or may not allow unsafe features such as direct memory access. Each layer of the Wide Spectrum Type System has a different combination of these properties. The approach also includes special Type System Transformations which can be used to move a given WSL program among these layers. Other emphasised key features are explicit typing and scalability. The whole approach is based on a sound mathematical foundation which assures correctness and integrates seamlessly into the present mathematical definition of WSL. The type system is formally introduced to WSL by constructing an attribute grammar for the language. Type checking and type inference are used to annotate the Abstract Syntax Tree of a given WSL program with type derivations which can be used to reveal and indicate possible typing errors or to infer types if the program did not feature explicit type declarations in the first place. Notable in this approach is also the fact that object orientation is introduced to a procedural programming language without the introduction of new semantics. It is shown that object orientation can be introduced just by adjusting type checking rules and adding some syntactical notations. The approach was implemented and tested on two case studies. The thesis describes and discusses both cases in detail and shows how a migration which ignores type systems could accidentally introduce errors due to assumptions during translation. Both case studies use all important aspects of the approach, Including type transformations and object identification. The thesis finalises by summarising the whole work, identifying limitations, presenting future perspectives and drawing conclusion
An agent-based service-oriented approach to evolving legacy software systems into a pervasive computing environment.
This thesis focuses on an Agent-Based Service-Oriented approach to evolving legacy system into a Pervasive Computing environment. The methodology consists of multiple phases: using reverse engineering techniques to comprehend and decompose legacy systems, employing XML and Web Services to transform and represent a legacy system as pervasive services, and integrating these pervasive services into pervasive computing environments with agent based integration technology.
A legacy intelligent building system is used as a case study for experiments with the approach, which demonstrates that the proposed approach has the ability to evolve legacy systems into pervasive service environments seamlessly. Conclusion is drawn based on analysis and further research directions are also discussed
A program transformation step prediction based reengineering approach
EThOS - Electronic Theses Online ServiceGBUnited Kingdo
Development of a model for the migration of legacy architectures
Diese Arbeit beschäftigt sich mit der Erstellung eines holistischen Modells für Migrationen von Alt(last)systemen in der IT. Dafür ist es notwendig zuerst festzustellen was sogenannte Legacy Systeme überhaupt ausmacht und welche Probleme diese mit sich bringen. Danach werden bestehende Migrationsarten und -vorgehensweisen erörtert und aufgezeigt welche Architekturen und Trends momentan auf dem Markt vorhanden sind. Um die im letzten Abschnitt der Arbeit vorgeschlagene Migrationsstrategie zu unterstützen werden Methoden zur Risikokontrolle, zur Einbeziehung von Stakeholdern und zur wirtschaftlichen Begründbarkeit eingeführt. Schließlich werden der Referenzprozess ReMiP und TOGAF als Framework für Enterprise Architecture vorgestellt und eine Kombination der beiden vorgeschlagen und in einem Referenzmodell beschrieben. Die erwarteten Vorteile durch die in dieser Arbeit diskutierte kombinierte Anwendung werden von einem externen Experten aus dem Arbeitsfeld von IT Migrationen nach ihrer Anwendbarkeit beurteilt.This paper is proposing a holistic process model for the migration of legacy infrastructures. To achieve this objective it is therefore necessary to investigate and define what legacy architectures and their related problems are. After that the established migration approaches to address the legacy challenge and an overview of current and ongoing architectures and trends form a broad enough headstone to then go on discussing which methodologies and means are available to facilitate a smooth migration. These are spanning from the human factor via risk control to economic matters related to system transformation projects. Finally the migration reference process ReMiP and the enterprise architecture framework TOGAF are introduced and combined to consolidate the presented approaches. The closing chapters compare the expected benefits with the requirements of a practitioner, propose a reference migration model and finally summarise the proposed approach
SLaDe: A Portable Small Language Model Decompiler for Optimized Assembly
Decompilation is a well-studied area with numerous high-quality tools
available. These are frequently used for security tasks and to port legacy
code. However, they regularly generate difficult-to-read programs and require a
large amount of engineering effort to support new programming languages and
ISAs. Recent interest in neural approaches has produced portable tools that
generate readable code. However, to-date such techniques are usually restricted
to synthetic programs without optimization, and no models have evaluated their
portability. Furthermore, while the code generated may be more readable, it is
usually incorrect. This paper presents SLaDe, a Small Language model Decompiler
based on a sequence-to-sequence transformer trained over real-world code. We
develop a novel tokenizer and exploit no-dropout training to produce
high-quality code. We utilize type-inference to generate programs that are more
readable and accurate than standard analytic and recent neural approaches.
Unlike standard approaches, SLaDe can infer out-of-context types and unlike
neural approaches, it generates correct code. We evaluate SLaDe on over 4,000
functions from ExeBench on two ISAs and at two optimizations levels. SLaDe is
up to 6 times more accurate than Ghidra, a state-of-the-art,
industrial-strength decompiler and up to 4 times more accurate than the large
language model ChatGPT and generates significantly more readable code than
both
Business rules based legacy system evolution towards service-oriented architecture.
Enterprises can be empowered to live up to the potential of becoming dynamic, agile and real-time. Service orientation is emerging from the amalgamation of a number of key business, technology and cultural developments. Three essential trends in particular are coming together to create a new revolutionary breed of enterprise, the service-oriented enterprise (SOE): (1) the continuous performance management of the enterprise; (2) the emergence of business process management; and (3) advances in the standards-based service-oriented infrastructures.
This thesis focuses on this emerging three-layered architecture that builds on a service-oriented architecture framework, with a process layer that brings technology and business together, and a corporate performance layer that continually monitors and improves the performance indicators of global enterprises provides a novel framework for the business context in which to apply the important technical idea of service orientation and moves it from being an interesting tool for engineers to a vehicle for business managers to fundamentally improve their businesses
Model driven software modernisation
Constant innovation of information technology and ever-changing market requirements
relegate more and more existing software to legacy status. Generating software through
reusing legacy systems has been a primary solution and software re-engineering has the
potential to improve software productivity and quality across the entire software life
cycle. The classical re-engineering technology starts at the level of program source code
which is the most or only reliable information on a legacy system. The program
specification derived from legacy source code will then facilitate the migration of
legacy systems in the subsequent forward engineering steps. A recent research trend in
re-engineering area carries this idea further and moves into model driven perspective
that the specification is presented with models.
The thesis focuses on engaging model technology to modernise legacy systems. A
unified approach, REMOST (Re-Engineering through MOdel conStruction and
Transformation), is proposed in the context of Model Driven Architecture (MDA). The
theoretical foundation is the construction of a WSL-based Modelling Language, known
as WML, which is an extension of WSL (Wide Spectrum Language). WML is defined
to provide a spectrum of models for the system re-engineering, including Common
Modelling Language (CML), Architecture Description Language (ADL) and Domain
Specific Modelling Language (DSML). 9rtetaWML is designed for model
transformation, providing query facilities, action primitives and metrics functions. A set
of transformation rules are defined in 9rtetaWML to conduct system abstraction and
refactoring. Model transformation for unifying WML and UML is also provided, which
can bridge the legacy systems to MDA. The architecture and working flow of the
REMOST approach are proposed and a prototype tool environment is developed for
testing the approach. A number of case studies are used for experiments with the
approach and the prototype tool, which show that the proposed approach is feasible and
promising in its domain. Conclusion is drawn based on analysis and further research
directions are also discussed
- …