Understanding Code MobilityTheme of this paperSlide 3What is code mobility?Code MobilityWhy Code Mobility?Advent of MCSsInnovations of MCSs3 Dimensional classificationMobile Code TechnologiesSlide 11ComparisonComponents of CEClassification of Mobility MechanismsSlide 15Data Space ManagementBindings, Resources, DS MgmtDS Management MechanismsSlide 19Slide 20Survey of MC TechnologiesSlide 22Design ParadigmsSlide 24Mobile Code ParadigmsBenefits of Mobile CodeMobile Code ApplicationsConclusionsStrengthsWeaknessesUnderstanding Code MobilityA Fuggetta, G P Picco and G VignaPresenterSamip BarariaTheme of this paperField is still immatureConfusion with terminology “mobile agents”“Enable researchers and practitioners to asses and compare different solutions with respect to a common set of reference concepts and abstractions”Theme of this paperPresents a framework to understand code mobility3-dimensions discussed: Technologies Design paradigms ApplicationsWhat is code mobility?Code mobility is the capability to dynamically change the bindings between code fragments and the location where they are executedInvolves:a. Change in bindings dynamicallyb. Relocation of codeCode Mobility NetworkNode A Node BWhy Code Mobility?Limitations and drawbacks with traditional approaches in large-scale distributed settings like the Interneta. Scalability (growing size of network, network partitions)b. Customizability (tailor functionality to specific needs)c. Flexibility (dynamic nature of comm. infrastructure)d. Extensibility (to add new features)Advent of MCSsMCS: Mobile Code SystemsIdea taken from process migration techniques used in distributed operating systems like:a. Locusb. Emeraldc. COOL (Chorus)Innovations of MCSsCode mobility is exploited on Internet-scaleProgramming is location awareMobility is under programmer’s controlMobility is not performed just for load balancing- service customization- extensibility- autonomy fault-tolerance- support for disconnected operations3 Dimensional classificationApplication Domains Applications that share same general role E-commerce, distributed information retrievalTechnologies Languages and systems that facilitate code mobilityDesign Paradigms Identify specific configuration of components and their interaction Classes ofApplications Mechanisms or TechnologiesArchitectural Styles E.g. CS, P2P, etcMobile Code TechnologiesTraditional Systems (e.g. CORBA)Mobile Code TechnologiesMobile Code SystemsComparisonTraditional SystemsTrue Distributed System (TDS) provide network transparencyDistributed components are perceived as localMCSs Computational Environments (CE)Underlying structure of the network is made manifest to the users. Provides capability to relocate code dynamically Execution units (EU) ResourcesComponents of CEExecution Units (Threads)Resources (Files, operating system variable)Classification of Mobility MechanismsCode and Execution State Mobility Strong mobilitySupported by: migration and remote cloning Weak mobilitySupported by: Code shipping and Code FetchingData Space ManagementData Space ManagementUpon migration of an EU to a new CE: The set of bindings to resources accessible by the EU must be rearrangedResources can be bound to an EU through 3 forms of binding: By identifier (strongest) By value By type (weakest)Bindings, Resources, DS MgmtDS Management MechanismsDS Management MechanismsDS Management MechanismsSurvey of MC TechnologiesTechnology Abstraction terminology Mobility MechanismsAra EU – AgentsCE – PlaceStrong (proactive migration)Facile EU – ThreadsCE – Nodescommunication abstraction: “Channel”Strong and weak mobilityJava JVM – CE Weak mobility (No DS Mgmt)Java Aglets CE – Context Dispatch – code shippingRetract – code fetchingM0 EU – MessengersCE - PlatformsShipping of stand-alone code onlyMole EU – MoleCE - PlaceShipping of stand-alone codeObliq CE – Execution enginesEU – ThreadWeak mobility – shipping of codeSafe-Tcl No terminology emailSumatra CE – Execution enginesEU – Java ThreadsWeak and Strong mobilityproactive migration, remote cloning, shipping TACOMA EU – Agents(Unix processes)Code shipping of stand-alone codeTelescript CE – EnginesEU – Places and AgentsProactive migration and remote cloningDesign ParadigmsDefine architectural abstractions and reference structures that may be instantiated into actual software architectures.Architectural Concepts:a. Components (know-how, resource and computational components)b. Interactions (communication between components)c. Sites (host components/location)Design ParadigmsMajor design paradigmsa. Client/Server (CS)b. Remote Evaluation (REV)c. Code on Demand (COD)d. Mobile Agent (MA)Mobile Code ParadigmsBenefits of Mobile CodeService CustomizationSupports last phase of software development Deployment and maintenance (in distributed systems – to upgrade or add a new feature)Autonomy of application componentsFault-toleranceData management flexibility and protocol encapsulationMobile Code ApplicationsDistributed Information RetrievalActive DocumentsAdvanced Telecommunication Services(video conferencing, video on demand)Remote Device Control and ConfigurationWorkflow management and CooperationActive networksE-CommerceConclusionsCode mobility is a promising solution for design and implementation of large-scale distributed systemsHowever, field is still immatureWe need to improve our understanding of the properties and weaknesses of existing design paradigmsStrengthsPapers sticks to its theme Provides a conceptual framework for understanding code mobilityProvides a case study to guide software engineers through the design and implementation phases of application developmentWeaknessesLacks motivation!Too many new terminologies introduced in one paperI was not too satisfied with the mobile code application section The authors are very “hopeful” that code mobility can help these applications No explained
View Full Document