499 research outputs found

    Revisiting Actor Programming in C++

    Full text link
    The actor model of computation has gained significant popularity over the last decade. Its high level of abstraction makes it appealing for concurrent applications in parallel and distributed systems. However, designing a real-world actor framework that subsumes full scalability, strong reliability, and high resource efficiency requires many conceptual and algorithmic additives to the original model. In this paper, we report on designing and building CAF, the "C++ Actor Framework". CAF targets at providing a concurrent and distributed native environment for scaling up to very large, high-performance applications, and equally well down to small constrained systems. We present the key specifications and design concepts---in particular a message-transparent architecture, type-safe message interfaces, and pattern matching facilities---that make native actors a viable approach for many robust, elastic, and highly distributed developments. We demonstrate the feasibility of CAF in three scenarios: first for elastic, upscaling environments, second for including heterogeneous hardware like GPGPUs, and third for distributed runtime systems. Extensive performance evaluations indicate ideal runtime behaviour for up to 64 cores at very low memory footprint, or in the presence of GPUs. In these tests, CAF continuously outperforms the competing actor environments Erlang, Charm++, SalsaLite, Scala, ActorFoundry, and even the OpenMPI.Comment: 33 page

    An interoperability framework for security policy languages

    Get PDF
    A thesis submitted to the University of Bedfordshire in partial fulfilment of the requirements for the degree of Doctor of PhilosophySecurity policies are widely used across the IT industry in order to secure environments. Firewalls, routers, enterprise application or even operating systems like Windows and Unix are all using security policies to some extent in order to secure certain components. In order to automate enforcement of security policies, security policy languages have been introduced. Security policy languages that are classified as computer software, like many other programming languages have been revolutionised during the last decade. A number of security policy languages have been introduced in the industry in order to tackle a specific business requirements. Not to mention each of these security policy languages themselves evolved and enhanced during the last few years. Having said that, a quick research on security policy languages shows that the industry suffers from the lack of a framework for security policy languages. Such a framework would facilitate the management of security policies from an abstract point. In order to achieve that specific goal, the framework utilises an abstract security policy language that is independent of existing security policy languages yet capable of expressing policies written in those languages. Usage of interoperability framework for security policy languages as described above comes with major benefits that are categorised into two levels: short and long-term benefits. In short-term, industry and in particular multi-dimensional organisations that make use of multiple domains for different purposes would lower their security related costs by managing their security policies that are stretched across their environment and often managed locally. In the long term, usage of abstract security policy language that is independent of any existing security policy languages, gradually paves the way for standardising security policy languages. A goal that seems unreachable at this moment of time. Taking the above facts into account, the aim of this research is to introduce and develop a novel framework for security policy languages. Using such a framework would allow multi-dimensional organisations to use an abstract policy language to orchestrate all security policies from a single point, which could then be propagated across their environment. In addition, using such a framework would help security administrators to learn and use only one single, common abstract language to describe and model their environment(s)

    A Design-Science-Research Approach

    Get PDF
    Neue Organisationsformen, wie evolutionäre Organisationen, bilden in vielen Kooperationsszenarien sozio-technische Konstrukte mit modernen CSCW Anwendungen aus. Daher erfordern Veränderungen dieser sozialen Systeme eine kontinuierliche Anpassung der technischen Tools an die neuen sozialen Konfigurationen. Diese Dissertation ist als Design Science Research (DSR) Projekt konzipiert und addressiert die folgende Forschungsfrage (RQ): “Wie können soziotechnische, evolutionäre Organisationen die Herausforderungen der joint optimization und des organizational choice während ihrer autopoietischen Veränderungsprozesse addressieren?” Die Fallstudie Viva con Agua de St. Pauli e.V. wurde mittels qualitativer und ethnographischer Methoden im Rahmen der entsprechenden DSR Zyklen untersucht. Das Forschungsprojekt fokussiert die Entwicklung von Artefakten indem sowohl eine technische, als auch eine soziale Perspektive eingenommen wird. Aus der technische Perspektive wird die RQ durch eine Microservice-Plattform adressiert. Die Architektur dient der Verteilung von Verantwortlichkeit für die Software in einem heterogenen Netzwerk von Entwickler:innen. Dabei müssen diverse neue Herausforderungen beachtet werden, wie etwa die Verteilung des User Interface. Durch die Betrachtung der RQ aus der sozialen Perspektive wird der USMU Workshop entwickelt. Dieses Artefakt dient der Verbindung der Charakteristika evolutionärer Organisationen mit agiler Software Entwicklung und mit Methoden des partizipativen Designs. Die Studien zeigen, dass beide Artefakte die RQ adressieren. Zudem konnte ich für beide Artefakte wertvolle Verbesserungsmöglichkeiten aufzeigen. Somit motivieren die Ergebnisse den nächsten Schritt des Projekts und die vorliegende Thesis wird Bestandteil des zyklischen Ablaufs eines DSR Projekts.The emergence of new types of organizational structures, such as evolutionary-teal organizations, almost always leads to the development of socio-technical constructs when it comes to working in collaboration with modern CSCW applications. A consequence of this is that the social system’s autopoietic change processes create challenges that compel one to adjust the implementation of the technical tool to the social system’s new configuration. This thesis is structured according to the design science research (DSR) approach and focuses on the research question (RQ): “How can socio-technical evolutionary-teal organizations address the challenges of joint optimization and organizational choice during their autopoietic processes?” For this purpose, the case study Viva con Agua de St. Pauli e.V. is investigated using a qualitative ethnographical approach during the DSR cycles. Addressing the RQ, two artifacts are designed from a technical as well as a social perspective. While the technical perspective primarily investigates the adjustments of technology, the social perspective focuses on the management of change in socio-technical evolutionary-teal organizations. I propose a microservice platform as an artifact that addresses the RQ from a technical perspective. The microservice architecture aims at spreading the responsibility for the software through a heterogeneous ecosystem of developers. The newly designed USMU workshop is addressing the RQ from the social perspective. It strives to intertwine the characteristics of evolutionary-teal organizations with agile software development and participatory design methods. In my studies, I examine the fact that both artifacts can be used to address the RQ. Additionally, I was able to identify valuable improvements for both of my artifacts. Hence, the project follows the lifecycle of a DSR project by reasoning through the results presented here for its next iteration

    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
    corecore