1,014 research outputs found

    Data transformation as a means towards dynamic data storage and polyglot persistence

    Get PDF
    Legacy applications have been built around the concept of storing their data in one relational data store. However, with the current differentiation in data store technologies as a consequence of the NoSQL paradigm, new and possibly more performant storage solutions are available to all applications. The concept of dynamic storage makes sure that application data are always stored in the most optimal data store at a given time to increase application performance. Additionally, polyglot persistence aims to push this performance even further by storing each different data type of an application in the data store technology best suited for it. To get legacy applications into dynamic storage and polyglot persistence, schema and data transformations between data store technologies are needed. This usually infers application redesigns as well to support the new data stores. This paper proposes such a transformation approach through a canonical model. It is based on the Lambda architecture to ensure no application downtime is needed during the transformation process, and after the transformation, the application can continue to query in the original query language, thus requiring no application code changes

    The Low-Code Phenomenon: Mapping the Intellectual Structure of Research

    Get PDF
    The term low-code has been closely associated with simplifying and accelerating software development. Driven by the idea that low-code can help to meet the increased digitalization demands, the low-code phenomenon is rising in academia and industry. This resulted in an immense increase in publications on low-code, posing the question of what research streams characterize the low-code literature. Conducting bibliometric analysis on 725 articles, we unpack the intellectual structure of low-code literature and uncover how it relates to other research fields. Our contribution is to clarify the conceptual understanding of low-code by identifying six research streams, namely, origins of low-code within software engineering (SE), low-code as an enabler for emerging SE trends, workplace transformation, establishing low-code methodologies, understanding low-code adoption and leveraging low-code for digital transformation. We conclude with future research directions that still need to be explored within the low-code literature

    The Low-Code Phenomenon: Mapping the Intellectual Structure of Research

    Get PDF
    The term low-code has been closely associated with simplifying and accelerating software development. Driven by the idea that low-code can help to meet the increased digitalization demands, the low-code phenomenon is rising in academia and industry. This resulted in an immense increase in publications on low-code, posing the question of what research streams characterize the low-code literature. Conducting bibliometric analysis on 725 articles, we unpack the intellectual structure of low-code literature and uncover how it relates to other research fields. Our contribution is to clarify the conceptual understanding of low-code by identifying six research streams, namely, origins of low-code within software engineering (SE), low-code as an enabler for emerging SE trends, workplace transformation, establishing low-code methodologies, understanding low-code adoption and leveraging low-code for digital transformation. We conclude with future research directions that still need to be explored within the low-code literature

    Real-Time Data Processing With Lambda Architecture

    Get PDF
    Data has evolved immensely in recent years, in type, volume and velocity. There are several frameworks to handle the big data applications. The project focuses on the Lambda Architecture proposed by Marz and its application to obtain real-time data processing. The architecture is a solution that unites the benefits of the batch and stream processing techniques. Data can be historically processed with high precision and involved algorithms without loss of short-term information, alerts and insights. Lambda Architecture has an ability to serve a wide range of use cases and workloads that withstands hardware and human mistakes. The layered architecture enhances loose coupling and flexibility in the system. This a huge benefit that allows understanding the trade-offs and application of various tools and technologies across the layers. There has been an advancement in the approach of building the LA due to improvements in the underlying tools. The project demonstrates a simplified architecture for the LA that is maintainable

    Monikieliohjelmointi Web-sovelluskehityksessä

    Get PDF
    Different programming languages are used to solve different problem domains. Front-end code standards and best practices are used to separate presentation, content and behavior. Architectural approaches like three-tier client-server architecture present user interface, business logic and data access as independent modules to develop and maintain. The idea of polyglot programming is to combine and utilize the best solutions from different programming languages and paradigms. Therefore, polyglot programming has the potential to improve web development in various areas. Web development has always been polyglot. Polyglot system has two essential aspects, the platform used for the integration and the programming languages supported. The recent rise of non-Java programming languages running on the Java Virtual Machine has created a favorable environment for polyglot programming. The possibility to use more expressive and succinct programming languages with existing solutions has proven to be essential in web development. An example web project was implemented to study the observations in practice. The project was implemented in both Java and Groovy as a server-side web application and also with Vert.x and AngularJS as a client-side single-page application. Also an additional Groovy implementation with Java legacy domain model was implemented to study programming language interoperability on the Java Virtual Machine. The results were evaluated against related work consisting two project implementations and three case study projects presented also in the context of polyglot programming in web development. Polyglot programming can enhance web development, because different programming languages and frameworks promise an increase in productivity, reduced amount of code and improved code quality that together promote better maintainability. Although polyglot programming has a steep learning curve that affects on required knowledge, maintainability, and tool support.Erilaisia ongelma-alueita pyritään ratkaisemaan käyttäen eri ohjelmointikieliä. Esimerkiksi Frontend-ohjelmointikäytäntöjä noudattamalla voidaan erottaa esitys-, sisältö ja toimintalogiikka toisistaan. Lisäksi arkkitehtuuriratkaisut, kuten kolmikerrosarkkitehtuuri, jakavat käyttöliittymän, toimintalogiikan ja tietovarastojen käytön itsenäisiksi, mahdollisesti toisistaan erillään kehitettäviksi ja ylläpidettäviksi moduuleiksi. Monikieliohjelmoinnin ideana on yhdistää ja hyödyntää ohjelmointikielten ja ohjelmointiparadigmojen parhaat ratkaisut. Tästä syystä monikieliohjelmointi voi mahdollisesti parantaa Web-sovelluskehitystä useilla eri osa-alueilla. Monikielisyys on aina ollut osa Web-sovelluskehitystä. Monikielisessä järjestelmässä on kaksi olennaista ominaisuutta, käytettävissä oleva sovelluskehitysalusta sekä käytettävissä olevat ohjelmointikielet. Viimeaikainen kehitys ohjelmointikielissä Java-virtuaalikoneella on luonut suotuisan ympäristön monikieliohjelmoinnille. Mahdollisuus käyttää kuvaavampia ja ytimekkäämpiä ohjelmointikieliä olemassa olevien ratkaisujen tukena on osoittautunut tärkeäksi. Työn yhteydessä toteutettua esimerkkiprojektia käytettiin tarkastelemaan tehtyjä havaintoja käytännössä. Projekti toteutettiin sekä Java- että Groovy-ohjelmointikielellä palvelinpuolen Web-sovelluksena sekä Vert.x ja AngularJS Web-sovelluskehyksiä hyödyntäen asiakaspuolen yhden sivun Web-sovelluksena. Lisäksi ohjelmointikielten yhteentoimivuutta tutkittiin tekemällä Groovy-ohjelmointikielellä toteutus, joka hyödynsi valmista Java-toteutuksen toimialueen mallinnusta. Monikieliohjelmointi voi tehdä Web-sovelluskehityksestä kannattavampaa. Eri ohjelmointikielet ja ohjelmistokehykset lupaavat lisätä tuottavuutta, vähentää tarvittavan koodin määrää, sekä parantaa koodin laatua, parantaen näin samalla ylläpidettävyyttä. On kuitenkin tärkeää huomata se, että monikieliohjelmointi kasvattaa tarvittavan tiedon määrä, mikä vaikuttaa suoraan ylläpidettävyyteen sekä tarvittavaan työkalutukeen

    A unified data repository for rich communication services

    Get PDF
    Rich Communication Services (RCS) is a framework that defines a set of IP-based services for the delivery of multimedia communications to mobile network subscribers. The framework unifies a set of pre-existing communication services under a single name, and permits network operators to re-use investments in existing network infrastructure, especially the IP Multimedia Subsystem (IMS), which is a core part of a mobile network and also acts as a docking station for RCS services. RCS generates and utilises disparate subscriber data sets during execution, however, it lacks a harmonised repository for the management of such data sets, thus making it difficult to obtain a unified view of heterogeneous subscriber data. This thesis proposes the creation of a unified data repository for RCS which is based on the User Data Convergence (UDC) standard. The standard was proposed by the 3rd Generation Partnership Project (3GPP), a major telecommunications standardisation group. UDC provides an approach for consolidating subscriber data into a single logical repository without adversely affecting existing network infrastructure, such as the IMS. Thus, this thesis details the design and development of a prototypical implementation of a unified repository, named Converged Subscriber Data Repository (CSDR). It adopts a polyglot persistence model for the underlying data store and exposes heterogeneous data through the Open Data Protocol (OData), which is a candidate implementation of the Ud interface defined in the UDC architecture. With the introduction of polyglot persistence, multiple data stores can be used within the CSDR and disparate network data sources can access heterogeneous data sets using OData as a standard communications protocol. As the CSDR persistence model becomes more complex due to the inclusion of more storage technologies, polyglot persistence ensures a consistent conceptual view of these data sets through OData. Importantly, the CSDR prototype was integrated into a popular open-source implementation of the core part of an IMS network known as the Open IMS Core. The successful integration of the prototype demonstrates its ability to manage and expose a consolidated view of heterogeneous subscriber data, which are generated and used by different RCS services deployed within IMS
    corecore