Remote Debugging and Reflection in Resource Constrained Devices. Nikolaos Papoulias - December 2013
|
|
- Roxanne Dixon
- 5 years ago
- Views:
Transcription
1 Remote Debugging and Reflection in Resource Constrained Devices Nikolaos Papoulias - December 2013! 1
2 Outline Introduction Related Work Contributions Implementation Validation Conclusion & Future Work 2
3 Context - Constrained Devices Cannot locally support an IDE & Dev-Tools Have different HW/SW Configurations from Dev-Machines 3
4 Context - Debugging Constrained Devices Emulators Post-Mortem Analysis Developer's end 5 1 Coding / Compilation Deployment 4 2 Target Devices Execution 3 Post-mortem analysis Log Collection Logging 4
5 Context - Debugging Constrained Devices Developer's end Target Devices Coding / Compilation 2 Deployment Emulators 1 4 Inspection 3 Post-Mortem Analysis Execution 5 Action / Modification Remote Debugging 5
6 Remote Debugging Is a solution that is distributed in a nature: Impact on productivity due to re-deployments [ZeroTurnAround 2011] Lacks facilities otherwise available in a local setting (e.g O-Centric Debugging [Ressia 2012b]) 6
7 Research Questions What are the properties of an ideal remote debugging solution? Given these properties which model for remote debugging can exhibit them? What are the trade-offs between this ideal model and a real world implementation? 7
8 Thesis Statement - Properties An ideal remote debugging solution should support Interactiveness Instrumentation Distribution Security 8
9 Interactiveness the ability to incrementally update all parts of a remote application without losing the running context (i.e without stopping the application). Add/Rem Packages, Add/Rem Classes, Add/Rem Fields, Edit Hierarchy, Add/Rem Methods 9
10 Instrumentation the ability to alter the semantics of a running process in order to assist debugging Method/Statement Execution, Class Instantiation/Field Read/Write Object Read/Write/Send/Receive/Argument/Store/Interact 10
11 Distribution the ability of a debugging solution to adapt its framework while debugging a remote target No-Distribution / Fixed Middleware / Extensible Middleware / Adaptable Middleware 11
12 Security the availability of prerequisites for security mechanisms such as authentication and access restriction Internal / External / Target-Side / Client-Side 12
13 Outline Introduction Related Work Contributions Implementation Validation Conclusion & Future Work 13
14 Related Work - Overview JPDA.NET GDB DCE JREBEL SMALLTALK BIFROST Interactiveness (6) Instrumentation (13) Distribution (+++) Security (4)
15 Related Work - Overview JPDA.NET GDB DCE JREBEL SMALLTALK BIFROST (A) None of the 1 existing 1 1 solutions met all of our 4 4 criteria (B) But - reflective - debugging proved superior 0 to 0 other approaches in a local setting 15
16 Related Work - Overview JPDA.NET GDB DCE JREBEL SMALLTALK BIFROST (B) Since reflective 1debugging 1 1 proved superior to other 4approaches 4 5in a 4local setting (C) Investigate Remote 3 0 Reflection 0 Design Patterns 16
17 Remote Reflection System A Meta System System B Reflective System DATA DATA DISTRIBUTED-SELF-REPRESENTATION OF SYSTEM B PROGRAM PROGRAM Part of the world INTERPRETER INTERPRETER act upon represent Remote Proxy / Remote Facade / Mirrors 17
18 Mirrors - Explicit Meta-Objects Object ObjectMirror <<ObjectMirrorInterface>> getclass() anobject reflects on anobjectmirror Encapsulation Stratification Ont. Correspondance Mirror on: anobject Indirection 18
19 Design Patterns - Criteria Extensibility, Re-use Distribution Identity [Bracha 2010] Meta-recursion [Denker 2008] Mirrors can be seen as an extension to both the remote proxy and the remote facade patterns 19
20 Mirrors - Open Issues Mirrors and the Problem of State - debugging meta-information in cohesive language kernels Mirrors and Intercession - advanced instrumentation support while debugging 20
21 Outline Introduction Related Work Contributions Implementation Validation Conclusion & Future Work 21
22 Our Proposals MetaTalk Α solution to the problem of Reflective-Data [Maes 1987b] in the context of mirrors [Bracha 2004] The definition of a model for remote debugging that can exhibit the properties of: interactiveness, instrumentation distribution and security Mercury 22
23 Our Proposal MetaTalk From a language design perspective metaobjects should be both: Pluggable as mirrors are and State-Full as 3-KRS meta-objects 23
24 MetaTalk Kernel AbstractMirror Object AbstractMirror Class Mirror Object Class ObjectMirror ClassMirror Point Mirror on: apoint Mirror on: Object Mirror on: Point Mirror on: Class apoint BASE LEVEL META LEVEL 24
25 MetaTalk Implementation MetaTalk-VM is written in Pharo MetaTalk-Compiler relies on Petit-Parser Object-Model inspired by ObjVLisp 25
26 Our Proposals MetaTalk Α solution to the problem of Reflective-Data [Maes 1987b] in the context of mirrors [Bracha 2004] The definition of a model for remote debugging that can exhibit the properties of: interactiveness, instrumentation distribution and security Mercury 26
27 Overview Mercury 1 DEVELOPER'S END MODEL OF THE DEBUGGED APP DEBUGGER / IDE MIDDLEWARE TARGET DEBUGGED APPLICATION RUN-TIME DEBUGGING SUPPORT MIDDLEWARE Interactiveness - through a mirror-based remote meta-level that is causally connected to its target 27
28 Core Model Development Side Target Side Mirror * reflects on 1 Object Point ObjectMirror - rtmirror: RunTimeMirror + instvarat(anivname: String): ObjectMirror +... instance of - targetobject: Object... RunTimeMirror - runtime: RTDebuggingSupport + objectinstvarat(forobject: Object, anivname: String): ObjectMirror +... M I D D L E W A R E 1 1 RTSupport RunTimeDebuggingSupport + objectinstvarat(forobject: Object, anivname: String): Object +... instance of runtimedebuggingsupp ort mirroro napoint aruntime Mirror... apoint 28
29 Interactiveness (1) Structural Reflection Mirror - targetobject: Object ObjectMirror - rtmirror: RunTimeMirror + setclass(aclassmirror: ClassMirror): ClassMirror EnvironmentMirror + newpackagenamed(apackagename: String): PackageMirror + removepackagenamed(apackagename: String): PackageMirror PackageMirror + newclassnamed(aclassname: String): ClassMirror + removeclassnamed(aclassname: String): ClassMirror ClassMirror... + setsuperclass(aclassmirror: ClassMirror): ClassMirror + addinstvarname(anivname: String): ClassMirror + deleteinstvarname(anivname: String): ClassMirror + addmethod(methodname: String, source: String): MethodMirror + deletemethod(methodname: String): MethodMirror RunTimeMirror - runtime: RunTimeDebuggingSupport (2) Computational Reflection ExceptionMirror ProcessMirror ContextMirror + saveandcontinue (newsrc: String): ContextMirror MethodMirror + recompilewithsource(src: String): MethodMirror 29
30 Our Proposal - Overview DEVELOPER'S END MODEL OF THE DEBUGGED APP DEBUGGER / IDE MIDDLEWARE 2 TARGET DEBUGGED APPLICATION RUN-TIME DEBUGGING SUPPORT MIDDLEWARE Instrumentation - through reflective intercession by reifying the underlying execution environment 30
31 Instrumentation Target Side 1 RunTimeDebuggingSupport interpreter: Interpreter values: Dictionary<Object> objecthalt(): Object + objecthaltonreceive(): Object + objectonreceive(callback: LocalCallBack) + objectonreceive(callback: RemoteCallBack) 1 Interpreter basemetadict: Dictionary 1 1 MetaEnvironment 1 * ImplicitMetaObject - onreceive: Closure - onsend: Closure - onread: Closure - onwrite: Closure. * * Object * Closure LocalCallBack RemoteCallBack 31
32 Our Proposal - Overview DEVELOPER'S END MODEL OF THE DEBUGGED APP DEBUGGER / IDE MIDDLEWARE 3 TARGET DEBUGGED APPLICATION RUN-TIME DEBUGGING SUPPORT MIDDLEWARE Distribution - through an Adaptable Middleware 32
33 Distribution DistributionPolicy Marshaller Middleware Deamon Transporter 1 SecurityPolicy 1 33
34 Our Proposal - Overview DEVELOPER'S END TARGET MODEL OF THE DEBUGGED APP DEBUGGER / IDE MIDDLEWARE 4b 4a DEBUGGED APPLICATION RUN-TIME DEBUGGING SUPPORT MIDDLEWARE Security - security by decomposing and authenticating access to reflective facilities 34
35 Security Development Side SecurityPolicy 1 1 Process is invoked by uses a RemoteEnvironment Reflection + onenvironment(environmentaddress: RemoteEnvironment) : EnvironmentMirror - address: String Mirror - targetobject: Object IntrospectionMirrorForAPoint instance of EnvironmentIntrospectionMi rror EnvironmentIntercessionMir ror ObjectMirror - rtmirror: RunTimeMirror ObjectIntrospectionMirror + instvarat(anivname: String): ObjectIntrospectionMirror +... ObjectIntercessionMirror + instvaratput(anivname: String, avalue: ObjectIntercessionMirror): ObjectIntercessionMirror RunTimeMirror - runtime: RunTimeDebuggingSupport instance of IntrercessionMirrorForAPoint ProcessIntrospectionMirror ProcessIntercessionMirror 35
36 Comparison JPDA.NET GDB DCE JREBEL SMALLTALK BIFROST MERCURY Interactiveness (6) Instrumentation (13) Distribution (+++) Security (4)
37 Outline Introduction Related Work Contributions Implementation Validation Conclusion & Future Work 37
38 Implementation Overview Mercury-Core Seamless Mercury-Ui (Alexandria) MetaStackVM
39 Meta-Recursion - mstackvm Interpreter Ooops! on: MessageReceived for: anobject do: [:reifications anobject incrementmessagecounter. anobject perform: reifications selector witharguments: reifications arguments] 39
40 MetaStackVM - Reflectogram Interpreter on: MessageReceived for: anobject do: [:reifications :reflectogram reflectogram disable. anobject incrementmessagecounter. reflectogram enable. reflectogram returnvalue: reflectogram defaultaction] 40
41 MetaStackVM - Reflectogram Interpreter Reflectogram on: MessageReceived for: anobject +.. do: [:reifications + enable :reflectogram + reflectogram + removedisable. + anobject + defaultaction incrementmessagecounter. + returnvalue: reflectogram enable. + reflectogram + processmetalevel + objectmetalevel returnvalue: + reflectogram defaultaction] + obj:perform: 41
42 Implementation Trade-offs Supporting Interactiveness and Instrumentation Through Local Reflection Through Virtual-Machine support Through Byte-code manipulation 42
43 Benchmark Benchmark based on Tanter [Tanter 2003] Mercury No Instrumentation Disabled Instrumentation Enabled Instrumentation 1x 1x 35x 1x 1x 8x 43
44 Outline Introduction Related Work Contributions Implementation Validation Conclusion & Future Work 44
45 Experimental Setting Constraint Device (A) Phone WIFI: USB: PORT-FWD Galaxy Nexus - (1.2 GHz / 1GB RAM) Android 4.3 Constraint Device (B) Tablet WIFI: USB: PORT-FWD Galaxy Tab - (1.0 GHz / 1GB RAM) Android 4.0 Constraint Device (C) Remote Server ETH: HP Workstation - (2.3 GHz / 4GB RAM) Ubuntu over wifi / usb over wifi / usb over ethernet Mercury IDE Running Developer-Machine ETH: WIFI: USB: PORT-FWD Mac-Mini - (2.3 GHz / 4GB RAM) Ubuntu
46 Alexandria 46
47 Experimental Setting 47
48 Objectives Verify the applicability of Mercury for these constrained debugging targets. Illustrate how a debugging session benefits from Mercury s properties Case-Study I Remote Agile Debugging Case-Study II Remote Object Instrumentation 48
49 Remote Agile Debugging Suffix Bug Phone: /charger Tablet: /default.prop Server: /User/.profile-xmind-portable
50 Remote Agile Debugging nt Device (A) IFI: SB: PORT-FWD Galaxy Nexus - (1.2 GHz / 1GB RAM) Android 4.3 Constraint Device (B) Tablet WIFI: USB: PORT-FWD Galaxy Tab - (1.0 GHz / 1GB RAM) Android 4.0 Constraint Devic Remote Server HP W Ubunt TestCase TestCase over wifi / usb FileBrowserTest + suffixof: astring + testsuffixwithdot + testsuffixwithoutdot + testlongfilepath over wifi / usb FileBrowserTest + suffixof: astring + testsuffixwithdot + testsuffixwithoutdot + testlongfilepath TestCase FileBrowserTest + suffixof: over ethernet astring + testsuffixwithdot + testsuffixwithoutdot + testlongfilepath Mercury IDE 50
51 Remote Agile Debugging 51
52 Objectives Verify the applicability of Mercury for these constrained debugging targets. Illustrate how a debugging session benefits from Mercury s properties Case-Study I Remote Agile Debugging Case-Study II Remote Object Instrumentation 52
53 Remote Object Instrumentation Suffix Bug Phone: /charger Tablet: /default.prop Server: /User/.profile-xmind-portable FileDirectory dot 53
54 Remote Object Instrumentation 54
55 Remote Object Instrumentation 55
56 Results 56
57 Outline Introduction Related Work Contributions Implementation Validation Conclusion & Future Work 57
58 Summary - Contributions Identification of four desirable properties for remote debugging: interactiveness, instrumentation, distribution and security. The definition of a model for remote debugging (Mercury) that exhibits these desirable properties. A solution to the problem of Reflective-Data [Maes 1987b] in the context of mirrors [Bracha 2004] (MetaTalk) 58
59 Contributions The reification of a previously illustrative notion (that of the reflectogram [Tanter 2003]) Prototype implementation of our model for remote debugging in the context of reflective languages. Implementation of an adaptable middleware [David 2002] for supporting distribution (Seamless). Implementation of a dedicated VM for Pharo (MetaStackVM) for advanced intercession facilities. 59
60 Diffusion of Results Submitted/Published: Nikolaos Papoulias, Noury Bouraqadi, Marcus Denker, Stéphane Ducasse and Luc Fabresse. Towards Structural Decomposition of Reflection with Mirrors}. In Proceedings of International Workshop on Smalltalk Technologies (IWST 11), Edingburgh, United Kingdom, Conference Talk: Nikolaos Papoulias. Seamless -- Let a thousand systems bloom. 20th International Smalltalk Conference, Ghent, Belgium, To Be Submitted: Nikolaos Papoulias, Noury Bouraqadi, Luc Fabresse, Marcus Denker and Stéphane Ducasse. Mercury: Live Remote Debugging in Reflective Languages. To be submitted in The Journal of Object Technology. To Be Submitted: Nikolaos Papoulias, Stéphane Ducasse, Marcus Denker, Guillermo Pollito, Noury Bouraqadi and Luc Fabresse. MetaTalk: Designing a Language with a Pluggable Meta-Level. To be submitted in The Journal for Universal Computer Science. Invited Chapter: Nikolaos Papoulias. Seamless: an Adaptable Middleware Solution. Invited Chapter to be submitted for the forthcoming book Pharo in the Enterprise, by Square Bracket Associates. 60
61 Future Work Language and Virtual-Machine Debugging in the Same Model Integration of Automated Debugging Techniques (e.g delta-debugging) in Developer-Driven Debugging 61
62 Mercury Thank you! MetaTalk! Mercury-Core Mercury-Ui Seamless MetaStackVM (Alexandria) Nick Papoulias
63 Some time left? Groovy!! 63
64 Collaborations Seamless as a library for the Continuous integration services of Pharo. The MetaTalk model as a case-study for bootstraping OO - languages. Mercury integration with the PhaROS robotic middleware (on-going effort). 64
65 Design Patterns - Mirrors Explicit meta-object Abstract class / Interface Factory Facade and Bridge 65
66 Conditional Meta-Action [:reifications :reflectogram ] reifications trigger halt. reflectogram override: true; returnvalue: reflectogram defaultaction. 66
67 Seamless Initialization SeamlessDeamon class>>newdefaultwithglobalaccess ^ self new buildwithtransporterclass: SeamlessSocketStreamTransporter transcoderclass: SeamlessFuelTranscoder proxyclass: SeamlessFastDNUProxy garbagecollectorclass: SeamlessDefaultGarbageCollector andauthenticationmanager: ((SeamlessAuthenticationManager new) addgroup: [...] withpolicy: (SeamlessDistributionPolicy newwithentrypoint: [...] classestopassbyvalue: [...] classestopassbyshallowcopy: [...] andsecuritypolicy: (SeamlessSecurityPolicy newwithclassestopassbyreference: [..] classesnottoreference: [..] includingmessages: [...] excludingmessages: [...]); adduser: [...] withpassword: [...] ingroup: [...]). 67
68 Seamless UserGroup Seamless User Seamless DistributionPolicy Seamless SecurityPolicy Seamless Seamless AuthenticationManager SeamlessSession Seamless DistributionStrategy SeamlessDeamon Seamless ObjectTransporter Seamless Protocol Seamless ProcessManager Seamless DistributionTable SeamlessTransporter SeamlessTranscoder SeamlessConnection 68
69 JMercury - Our model on top of Java JPDA + DCE VM (Interactiveness) Reflex / ASM / JavaAssist (Instrumentation) Cajo Project (Distribution) Decomposed Hierarchy of Mirrors / Closer integration with SecurityManager (Security) 69
70 Emulators - Field Experience IPhone/Android emulators (different models - versions of OSes - gyroscopes - touch gestures...) Car-Team experience -- RoboShop 2013 Demo (unanticipated changes - people walking by - glass walls...) 70
End-User Abstractions for Meta-Control: Reifying the Reflectogram
End-User Abstractions for Meta-Control: Reifying the Reflectogram Nick Papoulias, Marcus Denker, Stéphane Ducasse, Luc Fabresse To cite this version: Nick Papoulias, Marcus Denker, Stéphane Ducasse, Luc
More informationLinguistic Reflection Via Mirrors
Linguistic Reflection Via Mirrors Gilad Bracha Joint work with David Ungar 1 Reflection: Overview Reflection is the ability of a program to manipulate itself More than just metaprogramming Earliest Reflective
More informationSista: Improving Cog s JIT performance. Clément Béra
Sista: Improving Cog s JIT performance Clément Béra Main people involved in Sista Eliot Miranda Over 30 years experience in Smalltalk VM Clément Béra 2 years engineer in the Pharo team Phd student starting
More informationRun-Time Evolution through Explicit Meta-Objects
Run-Time Evolution through Explicit Meta-Objects Jorge Ressia, Lukas Renggli, Tudor Gîrba and Oscar Nierstrasz Software Composition Group University of Bern Switzerland http://scg.unibe.ch Abstract. Software
More informationTHESE. présentée en vue d obtenir le grade de DOCTEUR. Spécialité : informatique. par. Nikolaos Papoulias
N d ordre : 41342 THESE présentée en vue d obtenir le grade de DOCTEUR en Spécialité : informatique par Nikolaos Papoulias DOCTORAT DELIVRE CONJOINTEMENT PAR MINES DOUAI ET L UNIVERSITE DE LILLE 1 Titre
More informationEfficient Proxies in Smalltalk
Efficient Proxies in Smalltalk Mariano Martinez Peck 12 Noury Bouraqadi 2 Marcus Denker 1 Stéphane Ducasse 1 Luc Fabresse 2 1 RMoD Project-Team, Inria Lille Nord Europe / Université de Lille 1 2 Université
More informationCAP - Advanced Programming Concepts
Coordinating unit: 270 - FIB - Barcelona School of Informatics Teaching unit: 723 - CS - Department of Computer Science Academic year: Degree: 2017 BACHELOR'S DEGREE IN INFORMATICS ENGINEERING (Syllabus
More informationCAP - Advanced Programming Concepts
Coordinating unit: 270 - FIB - Barcelona School of Informatics Teaching unit: 723 - CS - Department of Computer Science Academic year: Degree: 2018 BACHELOR'S DEGREE IN INFORMATICS ENGINEERING (Syllabus
More informationObject Spaces for Safe Image Surgery
Object Spaces for Safe Image Surgery Gwenaël Casaccio 1 Damien Pollet 1 Marcus Denker 2 Stéphane Ducasse 1 1 RMoD, INRIA Lille Nord Europe USTL LIFL CNRS UMR 8022 Lille, France 2 PLEIAD Laboratory, DCC
More informationThe Art of Metaprogramming in Java. Falguni Vyas Dec 08, 2012
The Art of Metaprogramming in Java Falguni Vyas Dec 08, 2012 Metadata What is Metadata? Data that describes other data Defined as data providing information about one or more aspects of the data, such
More informationAccess Control to Reflection with Object Ownership
Access Control to Reflection with Object Ownership Camille Teruel, Stéphane Ducasse, Damien Cassou, Marcus Denker To cite this version: Camille Teruel, Stéphane Ducasse, Damien Cassou, Marcus Denker. Access
More informationPINOCCHIO: Bringing Reflection to Life with First-Class Interpreters
PINOCCHIO: Bringing Reflection to Life with First-Class Interpreters Toon Verwaest Camillo Bruni David Gurtner Adrian Lienhard Oscar Nierstrasz Software Composition Group, University of Bern, Switzerland
More informationTOWARD A METHODOLOGY TO TURN SMALLTALK CODE INTO FPGA
TOWARD A METHODOLOGY TO TURN SMALLTALK CODE INTO FPGA LE Xuan Sang 1,2 Loïc LAGADEC 1, Luc FABRESSE 2, Jannik LAVAL 2 and Noury BOURAQADI 2 1 Lab-STICC, ENSTA Bretagne 2 Institut Mines-Telecom, Mines Douai
More informationA simple reflective object kernel
A simple reflective object kernel S. Ducasse The Pharo Booklet Collection edited by S. Ducasse November 20, 2017 master @ d4e4b4f* Copyright 2017 by S. Ducasse. The contents of this book are protected
More informationDynamic Object-Oriented Programming with Smalltalk 1. Introduction
Dynamic Object-Oriented Programming with Smalltalk 1. Introduction Prof. O. Nierstrasz Autumn Semester 2009 LECTURE TITLE What is surprising about Smalltalk > Everything is an object > Everything happens
More informationSeamless: A Reflective Middleware for Pharo
Seamless: A Reflective Middleware for Pharo Chapter 1 Seamless: A Reflective Middleware for Pharo Seamless 1 is a reflective communication middleware for Pharo that aims to facilitate the prototyping of
More informationMetamodeling and Metaprogramming Seminar
Metamodeling and Metaprogramming Seminar 1. Introduction Prof. O. Nierstrasz Spring Semester 2008 Metamodeling and Metaprogramming Seminar Lecturer: Assistant: WWW: Oscar Nierstrasz www.iam.unibe.ch/~oscar
More informationObject-Centric Reflection
Object-Centric Reflection Unifying Reflection and Bringing It Back to Objects Inauguraldissertation der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern vorgelegt von Jorge Ressia von
More informationFlexiNet. A flexible component oriented middleware system. Introduction. Architecting for Components. Richard Hayton, Andrew Herbert. APM Ltd.
FlexiNet flexible component oriented middleware system Richard Hayton, ndrew Herbert. P Ltd. Introduction Generally, research middleware platforms have provided application programmers with facilities
More informationSeparating Access Control Policy, Enforcement, and Functionality in Extensible Systems. Robert Grimm University of Washington
Separating Access Control Policy, Enforcement, and Functionality in Extensible Systems Robert Grimm University of Washington Extensions Added to running system Interact through low-latency interfaces Form
More informationDEVELOPING APPS FOR. Note: This ebook relies on and uses information from the Google Glass Developers site.
DEVELOPING APPS FOR Note: This ebook relies on and uses information from the Google Glass Developers site. Table of Contents GLASS What is Google Glass? 3 Technology Basics.... 3 Design for Google Glass
More informationDetailed Design. Java Problem Repository & Education Platform JPREP
Team Members: Luke Greiner Denis Kalic Abigail McCarthy Robert Tateo Nguyen Truong Patrick White Detailed Design Java Problem Repository & Education Platform JPREP Revision: 1.1 Date: 3/07/14 1 D e l t
More informationRCCola: Remote Controlled Cola
RCCola: Remote Controlled Cola Takashi Yamamiya This material is based upon work supported in part by the National Science Foundation under Grant No. 0639876. Any opinions, findings, and conclusions or
More informationVirtualization Support for Dynamic Core Library Update
Virtualization Support for Dynamic Core Library Update Guillermo Polito RMoD Project-Team, Inria Lille Nord Europe, France CAR Team, Institut Mines-Telecom, Mines Douai, France Stéphane Ducasse RMoD Project-Team,
More informationObject-Oriented Software Engineering Conquering Complex and Changing Systems. Chapter 6, System Design Lecture 1
Object-Oriented Software Engineering Conquering Complex and Changing Systems Chapter 6, System Design Lecture 1 Design There are two ways of constructing a software design: One way is to make it so simple
More informationCog VM Evolution. Clément Béra. Thursday, August 25, 16
Cog VM Evolution Clément Béra Cog VM? Smalltalk virtual machine Default VM for Pharo Squeak Newspeak Cuis Cog Philosophy Open source (MIT) Simple Is the optimization / feature worth the added complexity?
More informationChapter 9. Introduction to High-Level Language Programming. INVITATION TO Computer Science
Chapter 9 Introduction to High-Level Language Programming INVITATION TO Computer Science 1 Objectives After studying this chapter, students will be able to: Explain the advantages of high-level programming
More informationDistribution and Integration Technologies
Distribution and Integration Technologies Distributed Architectures Patterns and Styles 1 Distributed applications infrastructure ISP intranet wireless backbone desktop computer: server: laptops: tablets:
More informationGhost: A Uniform and General-Purpose Proxy Implementation
Ghost: A Uniform and General-Purpose Proxy Implementation Mariano Martinez Peck 1,2,, Noury Bouraqadi 2,, Luc Fabresse 2,, Marcus Denker 1,, Camille Teruel 1, Abstract A proxy object is a surrogate or
More informationBootstrapping Reflective Systems: The Case of Pharo
Bootstrapping Reflective Systems: The Case of Pharo Guillermo Polito, Stéphane Ducasse, Luc Fabresse, Noury Bouraqadi, Benjamin Van Ryseghem To cite this version: Guillermo Polito, Stéphane Ducasse, Luc
More informationFrustrated by all the hype?
Fundamentals of Software Architecture Looking beyond the hype Markus Völter (voelter@acm.org) Introduction Frustrated by all the hype? If so this presentation is for you. Otherwise you should leave People
More informationOO design. Classes, Responsibilities, Collaborations (CRC) 13/9/1999 COSC
OO design Classes, Responsibilities, Collaborations (CRC) 1 bank accounts the system to be modelled: bank accounts with differing fee structures purpose: evaluate different account types with respect to
More informationSoftware Architecture
Software Architecture Does software architecture global design?, architect designer? Overview What is it, why bother? Architecture Design Viewpoints and view models Architectural styles Architecture asssessment
More informationAgilent GeneSpring Software
Agilent GeneSpring Software Installation Guide Quick Start Installation of Agilent GeneSpring 3 Detailed Instructions for Installing Agilent GeneSpring 5 Managing Licenses 19 Upgrading Agilent GeneSpring
More informationDynamic Adaptability of Services in Enterprise JavaBeans Architecture
1. Introduction Dynamic Adaptability of Services in Enterprise JavaBeans Architecture Zahi Jarir *, Pierre-Charles David **, Thomas Ledoux ** zahijarir@ucam.ac.ma, {pcdavid, ledoux}@emn.fr (*) Faculté
More informationThe Road to UML Virtual Machines
The Road to UML Virtual Machines Dirk Riehle SKYVA International www.skyva.com dirk@riehle.org, www.riehle.org UML for Enterprises Workshop. Burlingame, CA: Dec 2001. Last updated. Copyright 2001 by Dirk
More informationSub-method Structural and Behavioral Reflection
Sub-method Structural and Behavioral Reflection Inauguraldissertation der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern vorgelegt von Marcus Denker von Deutschland Leiter der Arbeit:
More informationVirtualization Support for Dynamic Core Library Update
Virtualization Support for Dynamic Core Library Update Guillermo Polito, Stéphane Ducasse, Noury Bouraqadi, Luc Fabresse, Max Mattone To cite this version: Guillermo Polito, Stéphane Ducasse, Noury Bouraqadi,
More informationPrototyping Languages Related Constructs and Tools with Squeak
Prototyping Languages Related Constructs and Tools with Squeak Alexandre Bergel Distributed Systems Group Dept. of Computer Science Trinity College Dublin 2, Ireland www.cs.tcd.ie/alexandre.bergel Marcus
More informationCHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.
CHAPTER 2: SYSTEM STRUCTURES By I-Chen Lin Textbook: Operating System Concepts 9th Ed. Chapter 2: System Structures Operating System Services User Operating System Interface System Calls Types of System
More informationXcode and Swift CS 4720 Mobile Application Development
Xcode and Swift Mobile Application Development Why Java for Android? Let s first recap: why do you think Android uses Java? 2 Why Java for Android? Some good reasons: You can t find a CS major that doesn
More informationReflective Programming and Open Implementations. Dr. Stéphane Ducasse
Reflective Programming and Open Implementations Dr. Stéphane Ducasse ducasse@iam.unibe.ch http://www.iam.unibe.ch/~ducasse/ University of Bern 2000/2001 1. Reflective Programming and Open Implementations
More informationNSIGHT ECLIPSE EDITION
NSIGHT ECLIPSE EDITION DG-06450-001 _v5.0 October 2012 Getting Started Guide TABLE OF CONTENTS Chapter 1. Introduction...1 1.1 About...1 Chapter 2. Using... 2 2.1 Installing... 2 2.1.1 Installing CUDA
More informationArchitectural Design. Architectural Design. Software Architecture. Architectural Models
Architectural Design Architectural Design Chapter 6 Architectural Design: -the design the desig process for identifying: - the subsystems making up a system and - the relationships between the subsystems
More informationMobile Internet Devices and the Cloud
Mobile Internet Devices and the Cloud What Is a Smartphone? Mobile Operating Systems for Smartphones 1. iphone 2. Google (Android) 3. Blackberry 4. Windows Mobile 5. Ubuntu Mobile Internet Device (MID)
More informationInvestigating F# as a development tool for distributed multi-agent systems
PROCEEDINGS OF THE WORKSHOP ON APPLICATIONS OF SOFTWARE AGENTS ISBN 978-86-7031-188-6, pp. 32-36, 2011 Investigating F# as a development tool for distributed multi-agent systems Extended abstract Alex
More informationUse vs. Inheritance. Learning Object-Oriented Programming and Design with TDD. Stéphane Ducasse.
Learning Object-Oriented Programming and Design with TDD Use vs. Inheritance Stéphane Ducasse http://stephane.ducasse.free.fr http://www.pharo.org W6S06 W6S06 2 / 20 Outline An exercise Some criteria Solutions
More informationSpeeding Up Robot Control Software Through Seamless Integration With FPGA
Speeding Up Robot Control Software Through Seamless Integration With Xuan Sang LE 1,2, Luc Fabresse 1, Jannik Laval 3, Jean-Christophe Le Lann 2, Loic Lagadec 2 and Noury Bouraqadi 1 1 Mines Douai-DIA,
More informationRyan Sciampacone Senior Software Developer August 1 st Multitenant JVM. JVM Languages Summit IBM Corporation
Ryan Sciampacone Senior Software Developer August 1 st 2012 Multitenant JVM JVM Languages Summit 2012 Important Disclaimers THE INFORMATION CONTAINED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL
More informationWireless Collaboration.
Wireless Collaboration. Connect. Work. Share. www.novoconnect.eu Transform your conference room into a true collaborative space. NovoConnect Solution Features Summary: Simple & Easy to Connect Discussion
More informationWhat are some common categories of system calls? What are common ways of structuring an OS? What are the principles behind OS design and
What are the services provided by an OS? What are system calls? What are some common categories of system calls? What are the principles behind OS design and implementation? What are common ways of structuring
More informationCORBA (Common Object Request Broker Architecture)
CORBA (Common Object Request Broker Architecture) René de Vries (rgv@cs.ru.nl) Based on slides by M.L. Liu 1 Overview Introduction / context Genealogical of CORBA CORBA architecture Implementations Corba
More informationGetting Started with the ArcGIS Mobile APIs. Kris Bezdecny, David Martinez Andy Gup, David Cardella
Getting Started with the ArcGIS Mobile APIs Kris Bezdecny, David Martinez Andy Gup, David Cardella Agenda Overview ArcGIS for - ios - Windows Phone - Android Wrap up - Q and A What is mobile GIS? Extends
More informationEnabling Cross-Platform File Replication with Data Integrity
Enabling Cross-Platform File Replication with Data Integrity Cross Platform Support Computers on your Local Area Network are discovered automatically, thereby streamlining your installation process. Network
More informationRAMSES: a Reflective Middleware for Software Evolution
RAMSES: a Reflective Middleware for Software Evolution Walter Cazzola 1, Ahmed Ghoneim 2, and Gunter Saake 2 1 Department of Informatics and Communication, Università degli Studi di Milano, Italy cazzola@dico.unimi.it
More informationCSCE 314 TAMU Fall CSCE 314: Programming Languages Dr. Flemming Andersen. Java Reflection
CSCE 314 TAMU Fall 2017 1 CSCE 314: Programming Languages Dr. Flemming Andersen Java Reflection CSCE 314 TAMU Fall 2017 Reflection and Metaprogramming Metaprogramming: Writing (meta)programs that represent
More informationReport Exec Dispatch System Specifications
Report Exec Dispatch System Specifications Contents Overview... 2 Technical Support... 2 At a Glance... 2 Report Exec Systems Diagram... 3 Server Specifications... 4 Server OS... 4 Microsoft SQL Server...
More informationAgilent GeneSpring Software
Agilent GeneSpring Software Installation Guide Quick Start Installation of Agilent GeneSpring 3 Detailed Instructions for Installing Agilent GeneSpring 5 Managing Licenses 16 Upgrading Agilent GeneSpring
More informationScripting Browsers. Philipp Bunge, Tudor Gîrba, Lukas Renggli, Jorge Ressia, David Röthlisberger
Scripting Browsers Philipp Bunge, Tudor Gîrba, Lukas Renggli, Jorge Ressia, David Röthlisberger Software Composition Group, University of Bern, Switzerland 1 Glamour in a Nutshell Browsers are crucial
More informationCombined Object-Lambda Architectures
www.jquigley.com jquigley#jquigley.com Chicago Lisp April 2008 Research Goals System Goals Conventional Systems Unconventional Systems Research Goals Question: How to make with Pepsi and Coke? The Goal:
More informationSEEDAndroid User Manual
SEEDAndroid User Manual Copyright 2016 Wenliang Du, Syracuse University. All rights reserved. ATTENTION: Before using the Android VM, please at least read Section 3.1 about how to release the mouse pointer.
More information5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered
Topics covered Chapter 6 Architectural Design Architectural design decisions Architectural views Architectural patterns Application architectures Lecture 1 1 2 Software architecture The design process
More informationChapter 2: Operating-System Structures
Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System
More informationHermion - Exploiting the Dynamics of Software
Hermion - Exploiting the Dynamics of Software Authors: David Röthlisberger, Orla Greevy, and Oscar Nierstrasz Affiliation: Software Composition Group, University of Bern, Switzerland Homepage: http://scg.iam.unibe.ch/research/hermion
More informationDart. Gilad Bracha for the Dart Team
Dart Gilad Bracha for the Dart Team Part I: Overview Why Dart? We want to improve the state of the art of Web Programming Web Programming Web Programming has huge Advantages: 1. Zero-install 2. Automatic
More informationUP Requirements. Software Design - Dr Eitan Hadar (c) Activities of greater emphasis in this book. UP Workflows. Business Modeling.
UP Requirements UP Workflows Business Modeling Requirements Analysis and Design Implementation Test Deployment Configuration & Change Management Project Management Environment Iterations Activities of
More informationCSCE 314 Programming Languages
CSCE 314 Programming Languages! Reflection Dr. Hyunyoung Lee! 1 Reflection and Metaprogramming Metaprogramming: Writing (meta)programs that represent and manipulate other programs Reflection: Writing (meta)programs
More informationThe Road to Object Orientation Operating Systems Object Planes. Object Planes. David Chisnall. March 25, 2010
March 25, 2010 The Road to Object Orientation Evolving Abstractions for Decomposition Introducing Object Orientation The Problem with Object Orientation The R[Pleaseinsertintopreamble]le of Operating System
More informationAn Eclipse-based Integrated Environment for Developing Executable Structural Operational Semantics Specifications
SOS 2006 Preliminary Version An Eclipse-based Integrated Environment for Developing Executable Structural Operational Semantics Specifications Adrian Pop 1,2 Peter Fritzson 3 Programming Environments Laboratory
More informationBEAMJIT, a Maze of Twisty Little Traces
BEAMJIT, a Maze of Twisty Little Traces A walk-through of the prototype just-in-time (JIT) compiler for Erlang. Frej Drejhammar 130613 Who am I? Senior researcher at the Swedish Institute
More informationg-eclipse A Framework for Accessing Grid Infrastructures Nicholas Loulloudes Trainer, University of Cyprus (loulloudes.n_at_cs.ucy.ac.
g-eclipse A Framework for Accessing Grid Infrastructures Trainer, University of Cyprus (loulloudes.n_at_cs.ucy.ac.cy) EGEE Training the Trainers May 6 th, 2009 Outline Grid Reality The Problem g-eclipse
More informationChapter 2: Operating-System Structures. Operating System Concepts 9 th Edition
Chapter 2: Operating-System Structures Silberschatz, Galvin and Gagne 2013 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System
More informationTDDI04, K. Arvidsson, IDA, Linköpings universitet Operating System Structures. Operating System Structures Overview. Operating System Services
TDDI04 Concurrent Programming, Operating Systems, and Real-time Operating Systems Operating System Structures [SGG7] Chapter 2 Copyright Notice: The lecture notes are mainly based on Silberschatz s, Galvin
More informationChapter 2: Operating-System Structures
Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System
More informationChapter 2. Operating-System Structures
Chapter 2 Operating-System Structures 2.1 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System
More informationChapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on
Chapter 2: Operating-System Structures Operating System Concepts 9 th Edit9on Silberschatz, Galvin and Gagne 2013 Chapter 2: Operating-System Structures 1. Operating System Services 2. User Operating System
More informationCreating and Running Mobile Agents with XJ DOME
Creating and Running Mobile Agents with XJ DOME Kirill Bolshakov, Andrei Borshchev, Alex Filippoff, Yuri Karpov, and Victor Roudakov Distributed Computing & Networking Dept. St.Petersburg Technical University
More informationCMSC 628: Introduction to Mobile Computing
CMSC 628: Introduction to Mobile Computing Nilanjan Banerjee University of Maryland Baltimore County nilanb@umbc.edu http://www.csee.umbc.edu/~nilanb/teaching/628/ Introduction to Mobile Computing 1 Why
More informationCS 575: Software Design
CS 575: Software Design Introduction 1 Software Design A software design is a precise description of a system, using a variety of different perspectives Structural Behavioral Packaging Requirements, Test/Validation
More informationMethod-Level Phase Behavior in Java Workloads
Method-Level Phase Behavior in Java Workloads Andy Georges, Dries Buytaert, Lieven Eeckhout and Koen De Bosschere Ghent University Presented by Bruno Dufour dufour@cs.rutgers.edu Rutgers University DCS
More informationFinal Exam. Final Exam Review. Ch 1: Introduction: Object-oriented analysis, design, implementation. Exam Format
Final Exam Final Exam Review CS 4354 Fall 2012 Jill Seaman Friday, December 14, 11AM Closed book, closed notes, clean desk Content: Textbook: Chapters 1, 2, 4-10 Java Lectures, GRASP + JUnit 35% of your
More informationAccessVia Publishing Platform
AccessVia Publishing Platform Technical Specifications Publishing Platform Manager Version: 8.6.x Written by: Product Documentation, R&D Date: May 2014 2014 Perceptive Software. All rights reserved Perceptive
More informationWHY APPLICATIONS ARE STILL DRAINING OUR BATTERIES and how we can help. Aaron Schulman & Sachin Katti
WHY APPLICATIONS ARE STILL DRAINING OUR BATTERIES and how we can help. Aaron Schulman & Sachin Katti We cannot rely on improvements in battery technology In past 30 years: only 4x improvement in energy
More informationBugloo: A Source Level Debugger for Scheme Programs Compiled into JVM Bytecode
Bugloo: A Source Level Debugger for Scheme Programs Compiled into JVM Bytecode Damien Ciabrini Manuel Serrano firstname.lastname@sophia.inria.fr INRIA Sophia Antipolis 2004 route des Lucioles - BP 93 F-06902
More informationIntroduction to Embedded Systems
Introduction to Embedded Systems Minsoo Ryu Hanyang University Outline 1. Definition of embedded systems 2. History and applications 3. Characteristics of embedded systems Purposes and constraints User
More informationReal Time: Understanding the Trade-offs Between Determinism and Throughput
Real Time: Understanding the Trade-offs Between Determinism and Throughput Roland Westrelin, Java Real-Time Engineering, Brian Doherty, Java Performance Engineering, Sun Microsystems, Inc TS-5609 Learn
More information9 th CA 2E/CA Plex Worldwide Developer Conference 1
1 Introduction/Welcome Message Organizations that are making major changes to or replatforming an application need to dedicate considerable resources ot the QA effort. In this session we will show best
More informationPorting of Real-Time Publish-Subscribe Middleware to Android
M.Vajnar, M. Sojka, P. Píša Czech Technical University in Prague Porting of Real-Time Publish-Subscribe Middleware to Android RTLWS15, Lugano-Manno Distributed applications problems 2/23 Distributed applications
More informationEMC CAPTIVA. Capture-enable Your Mobile Applications with Ease
EMC CAPTIVA Capture-enable Your Mobile Applications with Ease Raul Gabriel Senior Product Marketing Manager Nathan Verrilli Senior Systems Engineer June 17, 2014 1 Agenda 1 Mobile Capture Challenges 2
More informationImplementing a Web Service p. 110 Implementing a Web Service Client p. 114 Summary p. 117 Introduction to Entity Beans p. 119 Persistence Concepts p.
Acknowledgments p. xvi Introduction p. xvii Overview p. 1 Overview p. 3 The Motivation for Enterprise JavaBeans p. 4 Component Architectures p. 7 Divide and Conquer to the Extreme with Reusable Services
More informationAndroid App Development
Android App Development Outline Introduction Android Fundamentals Android Studio Tutorials Introduction What is Android? A software platform and operating system for mobile devices Based on the Linux kernel
More informationPMS 138 C Moto Black spine width spine width 100% 100%
Series MOTOROLA and the Stylized M Logo are registered in the US Patent & Trademark Office. All other product or service names are the property of their respective owners. 2009 Motorola, Inc. Table of
More informationMobile App Development. ios Platform
Mobile App Development ios Platform Overview Introduction Development Environment & Tools App Store Pros & Cons Programming Recommendations Objective-C Primer Demo What is ios? An operating system that
More informationCase Study: Dodging the Pitfalls of Enterprise Ajax Applications
www.thinwire.com Case Study: Dodging the Pitfalls of Enterprise Ajax Applications A Quick Introduction: Joshua Gertzen Lead Architect of the ThinWire Ajax RIA Framework Core Technology Architect for CCS
More informationPharo Syntax in a Nutshell
Pharo Syntax in a Nutshell Damien Cassou, Stéphane Ducasse and Luc Fabresse W1S06, 2015 W1S06 2 / 28 Getting a Feel About Syntax In this lecture we want to give you the general feel to get started: Overview
More informationegui Eclipse User Guide
Imperas Software Limited Imperas Buildings, North Weston, Thame, Oxfordshire, OX9 2HA, UK docs@imperascom Author: Imperas Software Limited Version: 211 Filename: egui_eclipse_user_guidedoc Project: Imperas
More informationMatching Logic A New Program Verification Approach
Matching Logic A New Program Verification Approach Grigore Rosu and Andrei Stefanescu University of Illinois at Urbana-Champaign (work started in 2009 with Wolfram Schulte at MSR) Usable Verification Relatively
More informationMinds-on: Android. Session 1
Minds-on: Android Session 1 Paulo Baltarejo Sousa Instituto Superior de Engenharia do Porto 2016 Outline Mobile devices Android OS Android architecture Android Studio Practice 1 / 33 2 / 33 Mobile devices
More informationSyllabus- Java + Android. Java Fundamentals
Introducing the Java Technology Syllabus- Java + Android Java Fundamentals Key features of the technology and the advantages of using Java Using an Integrated Development Environment (IDE) Introducing
More informationINF5750. Introduction to JavaScript and Node.js
INF5750 Introduction to JavaScript and Node.js Outline Introduction to JavaScript Language basics Introduction to Node.js Tips and tools for working with JS and Node.js What is JavaScript? Built as scripting
More information