004 Datenverarbeitung; Informatik
Refine
Year of publication
Document Type
- Monograph/Edited Volume (88) (remove)
Language
- English (88) (remove)
Keywords
- Hasso-Plattner-Institut (7)
- Forschungskolleg (6)
- Hasso Plattner Institute (6)
- Klausurtagung (6)
- Service-oriented Systems Engineering (6)
- Forschungsprojekte (4)
- Future SOC Lab (4)
- In-Memory Technologie (4)
- Modellierung (4)
- Multicore Architekturen (4)
- Research School (4)
- cloud computing (4)
- Cloud Computing (3)
- Datenintegration (3)
- Graphtransformationen (3)
- Model Synchronisation (3)
- Model Transformation (3)
- Ph.D. Retreat (3)
- Ph.D. retreat (3)
- Tripel-Graph-Grammatik (3)
- Verifikation (3)
- Virtualisierung (3)
- graph transformation (3)
- multicore architectures (3)
- research projects (3)
- service-oriented systems engineering (3)
- virtual machines (3)
- AUTOSAR (2)
- BPMN (2)
- Cloud-Sicherheit (2)
- Cloud-Speicher (2)
- Data Integration (2)
- Graphtransformationssysteme (2)
- In-Memory technology (2)
- Model Synchronization (2)
- Model-Driven Engineering (2)
- Modeling (2)
- Privacy (2)
- Process Modeling (2)
- Prozessmodellierung (2)
- Ressourcenoptimierung (2)
- Sicherheit (2)
- SysML (2)
- Virtuelle Maschinen (2)
- data profiling (2)
- graph constraints (2)
- in-memory technology (2)
- incremental graph pattern matching (2)
- modeling (2)
- modellgetriebene Entwicklung (2)
- nested graph conditions (2)
- privacy (2)
- research school (2)
- security (2)
- verification (2)
- virtualization (2)
- virtuelle Maschinen (2)
- Abhängigkeiten (1)
- Abstraktion von Geschäftsprozessmodellen (1)
- Apriori (1)
- Architektur (1)
- Aspect-oriented Programming (1)
- Aspektorientierte Softwareentwicklung (1)
- Association Rule Mining (1)
- Assoziationsregeln (1)
- Asynchrone Schaltung (1)
- Asynchronous circuit (1)
- Attribut-Merge-Prozess (1)
- Attribute Merge Process (1)
- Ausführung von Modellen (1)
- BPM (1)
- Batchprozesse (1)
- Bayes'sche Netze (1)
- Bayesian networks (1)
- Bedingte Inklusionsabhängigkeiten (1)
- Beschränkungen und Abhängigkeiten (1)
- Betriebssysteme (1)
- Bisimulation (1)
- Bitcoin (1)
- CEP (1)
- CSC (1)
- CSCW (1)
- Change Management (1)
- Cloud (1)
- Conditional Inclusion Dependency (1)
- Conformance Überprüfung (1)
- Constraints (1)
- Context-oriented Programming (1)
- Contracts (1)
- Controller-Resynthese (1)
- Cyber-Physical Systems (1)
- Cyber-Physical-Systeme (1)
- Cyber-physical-systems (1)
- Data Dependency (1)
- Data Modeling (1)
- Data Profiling (1)
- Data Quality (1)
- Data Warehouse (1)
- Database Cost Model (1)
- Datenabhängigkeiten (1)
- Datenanalyse (1)
- Datenbank-Kostenmodell (1)
- Datenflusskorrektheit (1)
- Datenmodellierung (1)
- Datenqualität (1)
- Datenvertraulichkeit (1)
- Deadline-Verbreitung (1)
- Design Thinking (1)
- Differential Privacy (1)
- Discrimination Networks (1)
- Duplicate Detection (1)
- Duplikaterkennung (1)
- Dynamic Type System (1)
- Dynamische Typ Systeme (1)
- E-Learning (1)
- EHR (1)
- EPA (1)
- Echtzeitsysteme (1)
- Elektronische Patientenakte (1)
- Ereignisse (1)
- Erfüllbarkeitsanalyse (1)
- Erkennen von Meta-Daten (1)
- Evolution (1)
- Evolution in MDE (1)
- Extract-Transform-Load (ETL) (1)
- FRP (1)
- Fallstudie (1)
- Feedback Loops (1)
- Fehlersuche (1)
- Formale Verifikation (1)
- Functional Lenses (1)
- Geschäftsprozesse (1)
- Geschäftsprozessmanagement (1)
- Gesetze (1)
- Graph-Constraints (1)
- Graph-basierte Suche (1)
- Graphbedingungen (1)
- Graphdatenbanken (1)
- Graphtransformation (1)
- HENSHIN (1)
- Hasso-Plattner-Institute (1)
- Hauptspeicherdatenbank (1)
- Homomorphe Verschlüsselung (1)
- In-Memory Database (1)
- In-Memory Datenbank (1)
- In-Memory-Datenbank (1)
- Individuen (1)
- Infinite State (1)
- Information Extraction (1)
- Information Systems (1)
- Informationsextraktion (1)
- Informationssysteme (1)
- Inkrementelle Graphmustersuche (1)
- Innovation (1)
- Innovationsmanagement (1)
- Innovationsmethode (1)
- Invariant-Checking (1)
- Invarianten (1)
- Invariants (1)
- JCop (1)
- Java (1)
- Kollaborationen (1)
- Laufzeitanalyse (1)
- Laufzeitmodelle (1)
- Leadership (1)
- Link Discovery (1)
- Link-Entdeckung (1)
- Linked Data (1)
- Linked Open Data (1)
- Live-Programmierung (1)
- Lively Kernel (1)
- MDE Ansatz (1)
- MDE settings (1)
- MOOCs (1)
- Management (1)
- Megamodell (1)
- Megamodels (1)
- Mehrkernsysteme (1)
- Metadata Discovery (1)
- Metadatenentdeckung (1)
- Metadatenqualität (1)
- Middleware (1)
- Mobile Application Development (1)
- Model Execution (1)
- Modeling Languages (1)
- Modell-getriebene Softwareentwicklung (1)
- Modellerzeugung (1)
- Modellgetriebene Softwareentwicklung (1)
- Modellierungssprachen (1)
- Modelltransformationen (1)
- Models at Runtime (1)
- Morphic (1)
- Multi-Instanzen (1)
- Multicore architectures (1)
- Muster (1)
- Musterabgleich (1)
- Nested Graph Conditions (1)
- Newspeak (1)
- Object Constraint Programming (1)
- Object-Oriented Programming (1)
- Objekt-Constraint Programmierung (1)
- Objekt-Orientiertes Programmieren (1)
- Objekt-orientiertes Programmieren mit Constraints (1)
- Objektlebenszyklus-Synchronisation (1)
- Online Course (1)
- Online-Learning (1)
- Online-Lernen (1)
- Onlinekurs (1)
- Organisationsveränderung (1)
- PRISM Modell-Checker (1)
- PRISM model checker (1)
- PTCTL (1)
- Pattern Matching (1)
- Patterns (1)
- Petri net Mapping (1)
- Petri net mapping (1)
- Petrinetz (1)
- Process Enactment (1)
- Process Mining (1)
- Programmierung (1)
- Programming Languages (1)
- Propagation von Aktivitätsinstanzzuständen (1)
- Prozessausführung (1)
- Prozesserhebung (1)
- Prozessinstanz (1)
- Prozessoren (1)
- Quantitative Analysen (1)
- Research Projects (1)
- Runtime Binding (1)
- SQL (1)
- STG decomposition (1)
- STG-Dekomposition (1)
- Sammlungsdatentypen (1)
- Schemaentdeckung (1)
- Schlüsselentdeckung (1)
- Self-Adaptive Software (1)
- Sequenzen von s/t-Pattern (1)
- Service-Oriented Architecture (1)
- Service-Orientierte Architekturen (1)
- Service-orientierte Systme (1)
- Signalflankengraph (SFG oder STG) (1)
- Simulation (1)
- Smalltalk (1)
- SoaML (1)
- Softwarearchitektur (1)
- Softwareproduktlinien (1)
- Softwaretests (1)
- Sozialen Medien (1)
- Speicheroptimierungen (1)
- Sprachspezifikation (1)
- Standards (1)
- Studie (1)
- Synchronisation (1)
- System of Systems (1)
- Systemsoftware (1)
- Tableaumethode (1)
- Tele-Lab (1)
- Tele-Teaching (1)
- Threshold Cryptography (1)
- Transformationsebene (1)
- Transformationssequenzen (1)
- Travis CI (1)
- Triple Graph Grammar (1)
- Triple Graph Grammars (1)
- Triple-Graph-Grammatiken (1)
- Unbegrenzter Zustandsraum (1)
- Unveränderlichkeit (1)
- Verbindungsnetzwerke (1)
- Verhaltensabstraktion (1)
- Verhaltensbewahrung (1)
- Verhaltensverfeinerung (1)
- Verhaltensäquivalenz (1)
- Verification (1)
- Verteilungsalgorithmen (1)
- Verteilungsalgorithmus (1)
- Verzögerungs-Verbreitung (1)
- Virtual machines (1)
- Visualisierung (1)
- Wartung von Graphdatenbanksichten (1)
- Web applications (1)
- Web-Anwendungen (1)
- Wikipedia (1)
- Zugriffskontrolle (1)
- access control (1)
- activity instance state propagation (1)
- adaptive Systeme (1)
- adaptive systems (1)
- adoption (1)
- apriori (1)
- architecture (1)
- ausführbare Semantiken (1)
- batch processing (1)
- behavior preservation (1)
- behavioral abstraction (1)
- behavioral equivalenc (1)
- behavioral refinement (1)
- beschreibende Feldstudie (1)
- big data services (1)
- bisimulation (1)
- bitcoin (1)
- business process management (1)
- business process model abstraction (1)
- business processes (1)
- case study (1)
- change management (1)
- cloud (1)
- cloud security (1)
- cloud storage (1)
- collaboration (1)
- collection types (1)
- confidentiality (1)
- conformance checking (1)
- continuous integration (1)
- continuous testing (1)
- control resynthesis (1)
- controlled experiment (1)
- cyber-physical systems (1)
- data center management (1)
- data flow correctness (1)
- data integration (1)
- deadline propagation (1)
- debugging (1)
- delay propagation (1)
- dependable computing (1)
- dependencies (1)
- design thinking (1)
- differential privacy (1)
- diffusion (1)
- direct manipulation (1)
- direkte Manipulation (1)
- discrimination networks (1)
- distribution algorithm (1)
- dynamic typing (1)
- dynamic programming languages (1)
- dynamische Programmiersprachen (1)
- dynamische Sprachen (1)
- eindeutig (1)
- electronic health record (1)
- erfahrbare Medien (1)
- events (1)
- evolution in MDE (1)
- executable semantics (1)
- feedback loops (1)
- fehlende Daten (1)
- formal verification (1)
- formal verification methods (1)
- formale Verifikation (1)
- functional dependency (1)
- functional lenses (1)
- functional programming (1)
- funktionale Abhängigkeit (1)
- funktionale Programmierung (1)
- future SOC lab (1)
- graph databases (1)
- graph queries (1)
- graph transformation systems (1)
- graph transformations (1)
- homomorphic encryption (1)
- hybrid graph-transformation-systems (1)
- hybride Graph-Transformations-Systeme (1)
- immutable values (1)
- in-memory database (1)
- individuals (1)
- inductive invariant checking (1)
- induktives Invariant Checking (1)
- inkrementelles Graph Pattern Matching (1)
- innovation (1)
- innovation capabilities (1)
- innovation management (1)
- interconnect (1)
- invariant checking (1)
- k-Induktion (1)
- k-induction (1)
- k-inductive invariant checking (1)
- k-inductive invariants (1)
- k-induktive Invarianten (1)
- k-induktives Invariant-Checking (1)
- key discovery (1)
- kontinuierliche Integration (1)
- kontinuierliches Testen (1)
- kontrolliertes Experiment (1)
- language specification (1)
- law (1)
- leadership (1)
- live programming (1)
- location-based (1)
- management (1)
- many-core (1)
- mehrdimensionale Belangtrennung (1)
- memory optimization (1)
- metadata discovery (1)
- metadata quality (1)
- middleware (1)
- missing data (1)
- model generation (1)
- model transformation (1)
- model-driven engineering (1)
- monitoring (1)
- morphic (1)
- multi-core (1)
- multi-dimensional separation of concerns (1)
- multi-instances (1)
- nested application conditions (1)
- object life cycle synchronization (1)
- object-constraint programming (1)
- openHPI (1)
- operating systems (1)
- organizational change (1)
- orts-basiert (1)
- parallel computing (1)
- paralleles Rechnen (1)
- partial application conditions (1)
- partielle Anwendungsbedingungen (1)
- periodic tasks (1)
- periodische Aufgaben (1)
- petri net (1)
- probabilistic timed automata (1)
- probabilistische zeitbehaftete Automaten (1)
- process elicitation (1)
- process instance (1)
- process mining (1)
- processor hardware (1)
- profiling (1)
- programming (1)
- quantitative analysis (1)
- reactive (1)
- reaktive Programmierung (1)
- real-time systems (1)
- relational model transformation (1)
- relationale Modelltransformationen (1)
- resource optimization (1)
- runtime adaptations (1)
- s/t-pattern sequences (1)
- satisfiabilitiy solving (1)
- schema discovery (1)
- semantics preservation (1)
- service-oriented systems (1)
- signal transition graph (1)
- simulation (1)
- smalltalk (1)
- software architecture (1)
- software product lines (1)
- software tests (1)
- speed independent (1)
- standards (1)
- static analysis (1)
- statische Analyse (1)
- stochastic Petri nets (1)
- stochastische Petri Netze (1)
- study (1)
- synchronization (1)
- system of systems (1)
- systems software (1)
- t.BPM (1)
- tableau method (1)
- tangible media (1)
- tele-TASK (1)
- threshold cryptography (1)
- transformation level (1)
- transformation sequences (1)
- triple graph grammars (1)
- typed graph transformation systems (1)
- unique (1)
- verschachtelte Anwednungsbedingungen (1)
- verschachtelte Graphbedingungen (1)
- view maintenance (1)
- visualization (1)
- web-applications (1)
- zuverlässige Datenverarbeitung (1)
- zuverlässigen Datenverarbeitung (1)
- Überwachung (1)
Institute
- Hasso-Plattner-Institut für Digital Engineering gGmbH (88) (remove)
Design and Implementation of service-oriented architectures imposes a huge number of research questions from the fields of software engineering, system analysis and modeling, adaptability, and application integration. Component orientation and web services are two approaches for design and realization of complex web-based system. Both approaches allow for dynamic application adaptation as well as integration of enterprise application.
Commonly used technologies, such as J2EE and .NET, form de facto standards for the realization of complex distributed systems. Evolution of component systems has lead to web services and service-based architectures. This has been manifested in a multitude of industry standards and initiatives such as XML, WSDL UDDI, SOAP, etc. All these achievements lead to a new and promising paradigm in IT systems engineering which proposes to design complex software solutions as collaboration of contractually defined software services.
Service-Oriented Systems Engineering represents a symbiosis of best practices in object-orientation, component-based development, distributed computing, and business process management. It provides integration of business and IT concerns.
The annual Ph.D. Retreat of the Research School provides each member the opportunity to present his/her current state of their research and to give an outline of a prospective Ph.D. thesis. Due to the interdisciplinary structure of the research school, this technical report covers a wide range of topics. These include but are not limited to: Human Computer Interaction and Computer Vision as Service; Service-oriented Geovisualization Systems; Algorithm Engineering for Service-oriented Systems; Modeling and Verification of Self-adaptive Service-oriented Systems; Tools and Methods for Software Engineering in Service-oriented Systems; Security Engineering of Service-based IT Systems; Service-oriented Information Systems; Evolutionary Transition of Enterprise Applications to Service Orientation; Operating System Abstractions for Service-oriented Computing; and Services Specification, Composition, and Enactment.
Today, software has become an intrinsic part of complex distributed embedded real-time systems. The next generation of embedded real-time systems will interconnect the today unconnected systems via complex software parts and the service-oriented paradigm. Therefore besides timed behavior and probabilistic behaviour also structure dynamics, where the architecture can be subject to changes at run-time, e.g. when dynamic binding of service end-points is employed or complex collaborations are established dynamically, is required. However, a modeling and analysis approach that combines all these necessary aspects does not exist so far.
To fill the identified gap, we propose Probabilistic Timed Graph Transformation Systems (PTGTSs) as a high-level description language that supports all the necessary aspects of structure dynamics, timed behavior, and probabilistic behavior. We introduce the formal model of PTGTSs in this paper and present a mapping of models with finite state spaces to probabilistic timed automata (PTA) that allows to use the PRISM model checker to analyze PTGTS models with respect to PTCTL properties.
Every year, the Hasso Plattner Institute (HPI) invites guests from industry and academia to a collaborative scientific workshop on the topic Every year, the Hasso Plattner Institute (HPI) invites guests from industry and academia to a collaborative scientific workshop on the topic "Operating the Cloud". Our goal is to provide a forum for the exchange of knowledge and experience between industry and academia. Co-located with the event is the HPI's Future SOC Lab day, which offers an additional attractive and conducive environment for scientific and industry related discussions. "Operating the Cloud" aims to be a platform for productive interactions of innovative ideas, visions, and upcoming technologies in the field of cloud operation and administration.
On the occasion of this symposium we called for submissions of research papers and practitioner's reports. A compilation of the research papers realized during the fourth HPI cloud symposium "Operating the Cloud" 2016 are published in this proceedings. We thank the authors for exciting presentations and insights into their current work and research.
Moreover, we look forward to more interesting submissions for the upcoming symposium later in the year. Every year, the Hasso Plattner Institute (HPI) invites guests from industry and academia to a collaborative scientific workshop on the topic "Operating the Cloud". Our goal is to provide a forum for the exchange of knowledge and experience between industry and academia. Co-located with the event is the HPI's Future SOC Lab day, which offers an additional attractive and conducive environment for scientific and industry related discussions. "Operating the Cloud" aims to be a platform for productive interactions of innovative ideas, visions, and upcoming technologies in the field of cloud operation and administration.
While offering significant expressive power, graph transformation systems often come with rather limited capabilities for automated analysis, particularly if systems with many possible initial graphs and large or infinite state spaces are concerned. One approach that tries to overcome these limitations is inductive invariant checking. However, the verification of inductive invariants often requires extensive knowledge about the system in question and faces the approach-inherent challenges of locality and lack of context.
To address that, this report discusses k-inductive invariant checking for graph transformation systems as a generalization of inductive invariants. The additional context acquired by taking multiple (k) steps into account is the key difference to inductive invariant checking and is often enough to establish the desired invariants without requiring the iterative development of additional properties.
To analyze possibly infinite systems in a finite fashion, we introduce a symbolic encoding for transformation traces using a restricted form of nested application conditions. As its central contribution, this report then presents a formal approach and algorithm to verify graph constraints as k-inductive invariants. We prove the approach's correctness and demonstrate its applicability by means of several examples evaluated with a prototypical implementation of our algorithm.
Graphs are ubiquitous in Computer Science. For this reason, in many areas, it is very important to have the means to express and reason about graph properties. In particular, we want to be able to check automatically if a given graph property is satisfiable. Actually, in most application scenarios it is desirable to be able to explore graphs satisfying the graph property if they exist or even to get a complete and compact overview of the graphs satisfying the graph property.
We show that the tableau-based reasoning method for graph properties as introduced by Lambers and Orejas paves the way for a symbolic model generation algorithm for graph properties. Graph properties are formulated in a dedicated logic making use of graphs and graph morphisms, which is equivalent to firstorder logic on graphs as introduced by Courcelle. Our parallelizable algorithm gradually generates a finite set of so-called symbolic models, where each symbolic model describes a set of finite graphs (i.e., finite models) satisfying the graph property. The set of symbolic models jointly describes all finite models for the graph property (complete) and does not describe any finite graph violating the graph property (sound). Moreover, no symbolic model is already covered by another one (compact). Finally, the algorithm is able to generate from each symbolic model a minimal finite model immediately and allows for an exploration of further finite models. The algorithm is implemented in the new tool AutoGraph.
The correctness of model transformations is a crucial element for model-driven engineering of high quality software. In particular, behavior preservation is the most important correctness property avoiding the introduction of semantic errors during the model-driven engineering process. Behavior preservation verification techniques either show that specific properties are preserved, or more generally and complex, they show some kind of behavioral equivalence or refinement between source and target model of the transformation. Both kinds of behavior preservation verification goals have been presented with automatic tool support for the instance level, i.e. for a given source and target model specified by the model transformation. However, up until now there is no automatic verification approach available at the transformation level, i.e. for all source and target models specified by the model transformation.
In this report, we extend our results presented in [27] and outline a new sophisticated approach for the automatic verification of behavior preservation captured by bisimulation resp. simulation for model transformations specified by triple graph grammars and semantic definitions given by graph transformation rules. In particular, we show that the behavior preservation problem can be reduced to invariant checking for graph transformation and that the resulting checking problem can be addressed by our own invariant checker even for a complex example where a sequence chart is transformed into communicating automata. We further discuss today's limitations of invariant checking for graph transformation and motivate further lines of future work in this direction.
Transmorphic
(2016)
Defining Graphical User Interfaces (GUIs) through functional abstractions can reduce the complexity that arises from mutable abstractions. Recent examples, such as Facebook's React GUI framework have shown, how modelling the view as a functional projection from the application state to a visual representation can reduce the number of interacting objects and thus help to improve the reliabiliy of the system. This however comes at the price of a more rigid, functional framework where programmers are forced to express visual entities with functional abstractions, detached from the way one intuitively thinks about the physical world.
In contrast to that, the GUI Framework Morphic allows interactions in the graphical domain, such as grabbing, dragging or resizing of elements to evolve an application at runtime, providing liveness and directness in the development workflow. Modelling each visual entity through mutable abstractions however makes it difficult to ensure correctness when GUIs start to grow more complex. Furthermore, by evolving morphs at runtime through direct manipulation we diverge more and more from the symbolic description that corresponds to the morph. Given that both of these approaches have their merits and problems, is there a way to combine them in a meaningful way that preserves their respective benefits?
As a solution for this problem, we propose to lift Morphic's concept of direct manipulation from the mutation of state to the transformation of source code. In particular, we will explore the design, implementation and integration of a bidirectional mapping between the graphical representation and a functional and declarative symbolic description of a graphical user interface within a self hosted development environment. We will present Transmorphic, a functional take on the Morphic GUI Framework, where the visual and structural properties of morphs are defined in a purely functional, declarative fashion. In Transmorphic, the developer is able to assemble different morphs at runtime through direct manipulation which is automatically translated into changes in the code of the application. In this way, the comprehensiveness and predictability of direct manipulation can be used in the context of a purely functional GUI, while the effects of the manipulation are reflected in a medium that is always in reach for the programmer and can even be used to incorporate the source transformations into the source files of the application.
Developing large software projects is a complicated task and can be demanding for developers. Continuous integration is common practice for reducing complexity. By integrating and testing changes often, changesets are kept small and therefore easily comprehensible. Travis CI is a service that offers continuous integration and continuous deployment in the cloud. Software projects are build, tested, and deployed using the Travis CI infrastructure without interrupting the development process. This report describes how Travis CI works, presents how time-driven, periodic building is implemented as well as how CI data visualization can be done, and proposes a way of dealing with dependency problems.
Behavioural Models
(2016)
This textbook introduces the basis for modelling and analysing discrete dynamic systems, such as computer programmes, soft- and hardware systems, and business processes. The underlying concepts are introduced and concrete modelling techniques are described, such as finite automata, state machines, and Petri nets. The concepts are related to concrete application scenarios, among which business processes play a prominent role.
The book consists of three parts, the first of which addresses the foundations of behavioural modelling. After a general introduction to modelling, it introduces transition systems as a basic formalism for representing the behaviour of discrete dynamic systems. This section also discusses causality, a fundamental concept for modelling and reasoning about behaviour. In turn, Part II forms the heart of the book and is devoted to models of behaviour. It details both sequential and concurrent systems and introduces finite automata, state machines and several different types of Petri nets. One chapter is especially devoted to business process models, workflow patterns and BPMN, the industry standard for modelling business processes. Lastly, Part III investigates how the behaviour of systems can be analysed. To this end, it introduces readers to the concept of state spaces. Further chapters cover the comparison of behaviour and the formal analysis and verification of behavioural models.
The book was written for students of computer science and software engineering, as well as for programmers and system analysts interested in the behaviour of the systems they work on. It takes readers on a journey from the fundamentals of behavioural modelling to advanced techniques for modelling and analysing sequential and concurrent systems, and thus provides them a deep understanding of the concepts and techniques introduced and how they can be applied to concrete application scenarios.
Complexity in software systems is a major factor driving development and maintenance costs. To master this complexity, software is divided into modules that can be developed and tested separately. In order to support this separation of modules, each module should provide a clean and concise public interface. Therefore, the ability to selectively hide functionality using access control is an important feature in a programming language intended for complex software systems.
Software systems are increasingly distributed, adding not only to their inherent complexity, but also presenting security challenges. The object-capability approach addresses these challenges by defining language properties providing only minimal capabilities to objects. One programming language that is based on the object-capability approach is Newspeak, a dynamic programming language designed for modularity and security. The Newspeak specification describes access control as one of Newspeak’s properties, because it is a requirement for the object-capability approach. However, access control, as defined in the Newspeak specification, is currently not enforced in its implementation.
This work introduces an access control implementation for Newspeak, enabling the security of object-capabilities and enhancing modularity. We describe our implementation of access control for Newspeak. We adapted the runtime environment, the reflective system, the compiler toolchain, and the virtual machine. Finally, we describe a migration strategy for the existing Newspeak code base, so that our access control implementation can be integrated with minimal effort.