An Evolutional Cooperative Computation Based on Adaptation to Environment Naoyasu UBAYASHI and Tetsuo TAMAI Graduate School of Arts and Sciences University.

Slides:



Advertisements
Similar presentations
Understand and appreciate Object Oriented Programming (OOP) Objects are self-contained modules or subroutines that contain data as well as the functions.
Advertisements

A Workflow Engine with Multi-Level Parallelism Supports Qifeng Huang and Yan Huang School of Computer Science Cardiff University
1 Separation of Concerns in Mobile Agent Applications Naoyasu Ubayashi Toshiba Corporation) Tetsuo Tamai University of Tokyo Reflection2001 The Third International.
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Some questions o What are the appropriate control philosophies for Complex Manufacturing systems? Why????Holonic Manufacturing system o Is Object -Oriented.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall A.1.
Basic Concepts in Component-Based Software Engineering
Transparent Robustness in Service Aggregates Onyeka Ezenwoye School of Computing and Information Sciences Florida International University May 2006.
Introduction To System Analysis and Design
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Knowledge Acquisitioning. Definition The transfer and transformation of potential problem solving expertise from some knowledge source to a program.
1 Quality Objects: Advanced Middleware for Wide Area Distributed Applications Rick Schantz Quality Objects: Advanced Middleware for Large Scale Wide Area.
Communication in Distributed Systems –Part 2
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
Distributed Collaborations Using Network Mobile Agents Anand Tripathi, Tanvir Ahmed, Vineet Kakani and Shremattie Jaman Department of computer science.
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
Community Manager A Dynamic Collaboration Solution on Heterogeneous Environment Hyeonsook Kim  2006 CUS. All rights reserved.
Introduction To System Analysis and design
Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
An Introduction to Software Architecture
Nipissing University, North Bay, Ontario, Canada 1 Building Reusable Components with Service-Oriented -IBM Eclipse Innovation Grant -IBM Eclipse Innovation.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Unified Modeling Language, Version 2.0
1 Metamodel Access Protocols for Extensible Aspect-Oriented Modeling Naoyasu Ubayashi(Kyushu Institute of Technology, Japan) Shinji Sano(Kyushu Institute.
Introduction To System Analysis and Design
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
11 Chapter 11 Object-Oriented Databases Database Systems: Design, Implementation, and Management 4th Edition Peter Rob & Carlos Coronel.
POSL (Principles of Software Languages) Gr. Kyushu Institute of Technology, Japan Pointcut-based Architectural Interface.
Web Services Based on SOA: Concepts, Technology, Design by Thomas Erl MIS 181.9: Service Oriented Architecture 2 nd Semester,
The roots of innovation Future and Emerging Technologies (FET) Future and Emerging Technologies (FET) The roots of innovation Proactive initiative on:
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
Epsilon and Epsilon/J Tetsuo Tamai The University of Tokyo 12 January, 2004.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
1 UNIT –II Architecting Web Service. 2 Why SOA? – business point of view  Information Technology (IT) workers face many challenges, including: Limited.
TAL7011 – Lecture 4 UML for Architecture Modeling.
Architectural Point Mapping for Design Traceability Naoyasu Ubayashi and Yasutaka Kamei Kyushu University, Japan March 26, 2012 FOAL 2012 (AOSD Workshop)
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
1 Unified Modeling Language, Version 2.0 Chapter 2.
GYTE - Bilgisayar Mühendisliği Bölümü Bilgisayar Mühendisliği Bölümü GYTE - Bilgisayar Mühendisliği Bölümü AN ARCHITECTURE FOR NEXT GENERATION MIDDLEWARE.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix A Object-Oriented Analysis and Design A.1.
CMSC 691B Multi-Agent System A Scalable Architecture for Peer to Peer Agent by Naveen Srinivasan.
1 Architectural Blueprints—The “4+1” View Model of Software Architecture (
RoleEP: Role Based Evolutionary Programming for Cooperative Mobile Agent Applications Naoyasu UBAYASHI ( Toshiba Corporation) Tetsuo TAMAI ( University.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
12. DISTRIBUTED WEB-BASED SYSTEMS Nov SUSMITHA KOTA KRANTHI KOYA LIANG YI.
Service Oriented Architecture (SOA) Prof. Wenwen Li School of Geographical Sciences and Urban Planning 5644 Coor Hall
Design Patterns: MORE Examples
Object-Oriented Analysis and Design
Introduction to Advanced Java Programming
Systems Analysis and Design With UML 2
OO Methodology OO Architecture.
Instructor: Dr. Hany H. Ammar
Web Ontology Language for Service (OWL-S)
Service-centric Software Engineering 1
Chapter 20 Object-Oriented Analysis and Design
Appendix A Object-Oriented Analysis and Design
An Introduction to Software Architecture
Market-based Dynamic Task Allocation in Mobile Surveillance Systems
Design Yaodong Bi.
Appendix A Object-Oriented Analysis and Design
Appendix A Object-Oriented Analysis and Design
Presentation transcript:

An Evolutional Cooperative Computation Based on Adaptation to Environment Naoyasu UBAYASHI and Tetsuo TAMAI Graduate School of Arts and Sciences University of Tokyo APSEC’99

Overview 1. Introduction 2. Environment Adaptation Model 3. Advanced topics using Environment Adaptation Model 4. Related Works 5. Conclusion

Introduction

Background Recently, software systems that reside in network environments are spreading rapidly. These systems has properties such as distributed, mobile, dynamic, adaptable. *These kinds of software systems are composed of a number of distributed objects that may change their locations dynamically. *These objects change their functions dynamically to adapt themselves to their external environments. Constructions of these kinds of systems are considered as very hard and difficult works.

Illustration of Recent software systems object collaboration

Problems It is difficult to describe functions that are dispersed in a number of distributed objects in current object oriented programming languages. These functions are implemented by collaborations among objects. -- not implemented by a single object! gives abstraction mechanisms for collaborations It is difficult to describe dynamic evolution in current object oriented programming languages. gives abstraction mechanisms for evolution

Target (1) Presents a framework that an object evolves through collaborations. an object acquires or discards functions and attributes dynamically Collaborations a number of objects engaging in their own roles send messages to each other and perform a job that cannot be executed by a single object Evolution

Target (2) gives mechanisms for abstracting collaborations among objects mechanisms for creating collaboration parts mechanisms for synthesizing collaboration parts mechanisms for object evolution mechanisms for integrating collaborations with evolution

Environment Adaptation Model

Basic Concepts role environment role environment (collaboration filed) bind unbind object Multiple adaptation

Model Constructs (1) Environment - logical field where a group of objects collaborate with each other - composed of environment methods/attributes, role definitions - aims 1) to give name space 2) to give common methods/attributes 3) to coordinate behaviors of objects in the field 4) to define object behaviors that are available only in the field >> roles Role - composed of role methods/attributes

Model Constructs (2) Evolution - an object joins into an environment and acquires new collaboration functions by bind-operations. the object can collaborate with other objects in the environment role environment bind object Bind-operation message delegation - creates a message delegation path between an object and a role.

Merits 1) gives mechanisms that encapsulate collaboration descriptions among objects into environments and roles. * design methods that abstract collaborations * techniques that construct reusable collaboration components 2) gives evolution mechanisms. * design methods for distributed mobile agent systems -- agents need to change their functions dynamically in order to adapt themselves to their environments.

Example -- Contract Net Protocol (1) task-announcement (2) bid (3) award Role methods Role ( manager ) Role(contractor) (1) (3) (2 ) Environment ( contract-net ) Evolve to manager (bind-operation) object Environment ( contract-net ) Evolve to contractor General contract net protocol Synthesizing simple contract-net environments

Programming Language Epsilon/0 1) Epsilon/0 supports Environment Adaptation Model. - environments, roles and bind-operations are supported as language constructs. 2) Epsilon/0 supports reflection mechanisms. 3) Epsilon/0 is implemented using ABCL/R3 that is a reflective object oriented programming language based on Scheme.

Descriptions of Contract Net Protocol in Epsilon/0 > contract-net > manager start() bid() > contractor task-announcement() award() execute-task() manager contractor object task-announcement bid award bind execute-task (delegate!!)

(define-context contract-net () … common attributes) (define-context-method contract-net (common method….)) Descriptions of contract-net environment Environment class

(define-role contract-net manager () condition-shown-by-manager) (define-role-method contract-net manager (start self) (let ((contractor-list (get-role (context-of self) ‘contractor)))... broadcasts a task-announcement message to all roles that are contained in the contractor-list)) (define-role-method contract-net manager (bid self a-contractor a-condition-shown-by-contractor)... stores a bid-information (if (bidding is finished) (award (select-contractor self) self))) Descriptions of manager role Role class

Descriptions of contractor role (define-role contract-net contractor () condition-shown-by-contractor) (define-role-method contract-net contractor (task-announcement self a-manager a-condition-shown-by-manager) (if satisfies conditions) (bid a-manager self condition-shown-by-contractor))) (define-role-method contract-net contractor (award self a-manager) (execute-task self)) 1) execute a method of an object bound with this role 2) execute-task is interface for binding with an object

Execute a program (define contract-A (make-context contract-net)) (define contract-B (make-context contract-net)) (define-class person () name) (define-method person (execute-task …)) (define a-person (make person)) ;; evolves to manager (bind contract-A a-person (make-role contract-net manager contract-A)) (start (search-role a-person contract-A)) ;; evolves to contractor (bind contract-B a-person (make-role contract-net contractor contract-B)) (start (search-role a-person contract-B)) behaves different roles contract-A contract-B evolves to manager evolves to contractor

Advanced topics using Environment Adaptation Model

Advanced topics 1) Autonomous evolution using reflection mechanisms 2) Reusable collaboration components Environment Adaptation Model presents nice features for software constructions

Autonomous Evolution evolution Contract-net protocol environment manager contractor Nancy John Steve Contract-net protocol environment manager

Reflective Architecture object Meta object Each object can have its own engine Meta level Base level Engine of autonomous action (replaceable) Engine of autonomous action (replaceable) Engine of autonomous action (replaceable) object Action strategies --- plans for environment adaptations

Reusable Collaboration Component Construction Mechanism (1) *It is difficult to abstract execution information such as number/kind/reference of objects that participate in collaborations. *This information changes dynamically and cannot be defined statically. Problems...

Reusable Collaboration Component Construction Mechanism (2) Abstracts execution information using refection mechanisms get-all-context get-all-contextname context-of get-role get-all-role get-all-rolename bound? Meta information environment Meta information role method access Collaboration field Name space Presents built-in functions

Related Works

Researches for abstracting collaborations 1) Aspect Oriented Programming (G.Kiczales, et al.) propose a programming paradigm that a system is divided into a number of aspects. 2) Role based design method (M.VanHilst, D.Notkin 1996) propose an idea of role components that are described by C++ templates. 3) Coordinated Roles (Juan M.Murillo, et al. 1999) * Dynamic evolution is not so emphasized.

Conclusion

Summary We proposed mechanisms for abstracting collaborations among objects mechanisms for creating collaboration parts mechanisms for synthesizing collaboration parts mechanisms for object evolution mechanisms for integrating collaborations with evolution

Future Works applies environment adaptation model to distributed mobile agent systems to familiar languages such as Java...

Base Level Descriptions ;; Class definition (define-class person () name money) (define-method person (execute-task self)...) (define-method person (life self job) (meta-life (meta-of self) job)) ;; Start autonomous actions (define taro (make person :name "Taro Yamada" :metaobject-creator make-taro-meta)) (life taro a-job) Specifies meta object Calls meta object

Meta Level Description ;; Descriptions for adaptation strategies (meta (define-class taro-meta (metaobject)) (define (make-taro-meta class slots evaluator options) (make taro-meta :class class :slots slots :evaluator evaluator :lock (make-lock))) (define-method john-meta (meta-life self job) (future-to-base... divides a job into a number of sub-tasks.... repeats the following activities. (let ((env (get-all-context))) (begin... searches contract-net environments where he can join as a manager. (bind selected-contract-net (den-of self) selected-manager) (start (search-role (den-of self) selected-contract-net)) )))) 1) Searches target environments 2) Searches target roles that exist in the selected environment 3) Binds itself with the selected role ( evolution ! ) Design Pattern If this part is changed, a number of adaptation strategies can be implemented! ! Open Implementations