IMA 2.5: Software Architecture and Development Environment Roberto Olivares M.S. Electrical Engineering Vanderbilt University, Spring 2003.

Slides:



Advertisements
Similar presentations
2 Introduction A central issue in supporting interoperability is achieving type compatibility. Type compatibility allows (a) entities developed by various.
Advertisements

.NET Technology. Introduction Overview of.NET What.NET means for Developers, Users and Businesses Two.NET Research Projects:.NET Generics AsmL.
IBM SMB Software Group ® ibm.com/software/smb Maintain Hardware Platform Health An IT Services Management Infrastructure Solution.
Performance Testing - Kanwalpreet Singh.
ARCHITECTURES FOR ARTIFICIAL INTELLIGENCE SYSTEMS
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Key-word Driven Automation Framework Shiva Kumar Soumya Dalvi May 25, 2007.
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
CS540 Software Design Lecture 1 1 Lecture 1: Introduction to Software Design Anita S. Malik Adapted from Budgen (2003) Chapters 1.
© 2004 Visible Systems Corporation. All rights reserved. 1 (800) 6VISIBLE Holistic View of the Enterprise Business Development Operations.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
Network Management Overview IACT 918 July 2004 Gene Awyzio SITACS University of Wollongong.
Managing Agent Platforms with SNMP Brian Remick Research Proposal Defense June 27, 2015.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
Knowledge Portals and Knowledge Management Tools
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
H-1 Network Management Network management is the process of controlling a complex data network to maximize its efficiency and productivity The overall.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
MADE Mobile Agents based system for Distance Evaluation Vikram Jamwal KReSIT, IIT Bombay Guide : Prof. Sridhar Iyer.
UML Tools ● UML is a language, not a tool ● UML tools make use of UML possible ● Choice of tools, for individual or group use, has a large affect on acceptance.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Quality Attributes of Web Software Applications – Jeff Offutt By Julia Erdman SE 510 October 8, 2003.
Mantychore Oct 2010 WP 7 Andrew Mackarel. Agenda 1. Scope of the WP 2. Mm distribution 3. The WP plan 4. Objectives 5. Deliverables 6. Deadlines 7. Partners.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
CSE 303 – Software Design and Architecture
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Master Thesis Defense Jan Fiedler 04/17/98
May 29 th, 2003 Curtis Anderson Sivaprasad Padisetty.
Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Planning a Group Policy Management and Implementation Strategy Lesson 10.
1 Administering Shared Folders Understanding Shared Folders Planning Shared Folders Sharing Folders Combining Shared Folder Permissions and NTFS Permissions.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
1 AutoCAD Electrical 2008 What’s New Name Company AutoCAD Electrical 2008 What’s New AMS CAD Solutions
GRASP: Designing Objects with Responsibilities
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
CSC 480 Software Engineering Lecture 18 Nov 6, 2002.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
ANKITHA CHOWDARY GARAPATI
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
Design and Implementation of a Rationale-Based Analysis Tool (RAT) Diploma thesis from Timo Wolf Design and Realization of a Tool for Linking Source Code.
Abstract A Structured Approach for Modular Design: A Plug and Play Middleware for Sensory Modules, Actuation Platforms, Task Descriptions and Implementations.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Software Engineering Chapter: Computer Aided Software Engineering 1 Chapter : Computer Aided Software Engineering.
Chapter 4 Automated Tools for Systems Development Modern Systems Analysis and Design Third Edition 4.1.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Chapter 8 – Cloud Computing
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
MODULAR SELF -RECONFIGURABLE MULTI-FUNCTIONAL ROBOTIC SYSTEM.
COMP1321 Digital Infrastructure Richard Henson March 2016.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Modern Systems Analysis and Design Third Edition
Modern Systems Analysis and Design Third Edition
Storage Virtualization
Planning a Group Policy Management and Implementation Strategy
Chapter 17: Database System Architectures
Modern Systems Analysis and Design Third Edition
Modern Systems Analysis and Design Third Edition
Database System Architectures
Modern Systems Analysis and Design Third Edition
ONAP Architecture Principle Review
Presentation transcript:

IMA 2.5: Software Architecture and Development Environment Roberto Olivares M.S. Electrical Engineering Vanderbilt University, Spring 2003

Overview Terminology Terminology Problem Area Problem Area IMA 2.5 Objectives IMA 2.5 Objectives IMA 2.5 Layout IMA 2.5 Layout IMA 2.5 Features IMA 2.5 Features Conclusions Conclusions

Software Architecture The software architecture of an intelligent machine is a plan for building the software system that resides between sensors and actuators and utilizes the underlying computing mechanism to complete its tasks. The software architecture of an intelligent machine is a plan for building the software system that resides between sensors and actuators and utilizes the underlying computing mechanism to complete its tasks.

Intelligent Machine Architecture IMA is a robot software development environment IMA is a robot software development environment Developers write components Developers write components Components are configured into agents Components are configured into agents Agents work together to control the robot Agents work together to control the robot

Integration & Scaling Integration = adding functionality to a system Integration = adding functionality to a system Scaling = performing necessary integration to extend solution to a larger problem Scaling = performing necessary integration to extend solution to a larger problem Scalability = How easy scaling a system is Scalability = How easy scaling a system is

Overview Terminology Terminology Problem Area Problem Area IMA 2.5 Objectives IMA 2.5 Objectives IMA 2.5 Layout IMA 2.5 Layout IMA 2.5 Features IMA 2.5 Features Conclusions Conclusions

Why do we need IMA? Interesting Question: Interesting Question: How can we generate intelligent robot behavior across multiple domains? How can we generate intelligent robot behavior across multiple domains? Resulting Assumption: Resulting Assumption: Underlying software will be large, complex, and require a large degree of experimentation. Underlying software will be large, complex, and require a large degree of experimentation. Resulting Problem: Resulting Problem: How do we manage the development, integration, and execution of this software? How do we manage the development, integration, and execution of this software?

Problem Domain How do we manage the development, integration, and execution of robot software? How do we manage the development, integration, and execution of robot software? Sub-problems Sub-problems Domain Related Domain Related Algorithm Related Algorithm Related Engineering Related Engineering Related

Domain Issues Problem Problem Ill-defined (no specifications or design) Ill-defined (no specifications or design) Biology hasnt helped at the behavioral level Biology hasnt helped at the behavioral level Search Space Search Space Large Large Sparse Sparse Search approach Search approach Evaluating a solution is costly Evaluating a solution is costly No heuristic or gradient to follow No heuristic or gradient to follow

Algorithm Issues Integrative Approach Integrative Approach Destructive Interference Destructive Interference Functionalities contradict or dont integrate Functionalities contradict or dont integrate Diminishing returns Diminishing returns Information content in biological systems is unaccounted for Information content in biological systems is unaccounted for

Engineering Issues Collapse Collapse Point where integration & maintenance become prohibitive Point where integration & maintenance become prohibitive Development Development Inherent complexity (paradigm, techniques, technologies) Inherent complexity (paradigm, techniques, technologies) Increasing difficulty (comprehension, integration, regression faults) Increasing difficulty (comprehension, integration, regression faults) Academic Environment Academic Environment No software process (life-cycle model, specifications, design) No software process (life-cycle model, specifications, design) High turnover High turnover Domain engineers Domain engineers Low emphasis on infrastructure & maintenance Low emphasis on infrastructure & maintenance No CASE tools No CASE tools

Problem Summary How do we manage the development, integration, and execution of robot software? How do we manage the development, integration, and execution of robot software? Sub-problems Sub-problems Domain Related Domain Related Algorithm Related Algorithm Related Engineering Related Engineering Related This is a hard problem This is a hard problem

Overview Terminology Terminology Problem Area Problem Area IMA 2.5 Objectives IMA 2.5 Objectives IMA 2.5 Layout IMA 2.5 Layout IMA 2.5 Features IMA 2.5 Features Conclusions Conclusions

Focus Of IMA Which of these issues are addressable? Which of these issues are addressable? Domain Issues: Few Domain Issues: Few Algorithm Issues: Few Algorithm Issues: Few Engineering Issues: Some Engineering Issues: Some IMA focuses on the engineering issues, not on the domain or algorithm issues. IMA focuses on the engineering issues, not on the domain or algorithm issues.

Previous Objectives IMA 1.0 IMA 1.0 Support the development of integrated control software Support the development of integrated control software Integrate software architecture with various design approaches to guide development Integrate software architecture with various design approaches to guide development Promote binary and source reuse Promote binary and source reuse Provide fault-tolerant distributed computing Provide fault-tolerant distributed computing IMA 2.0 IMA 2.0 Speed learning Speed learning Speed development Speed development Facilitate integration Facilitate integration Provide better development tools Provide better development tools

1998 – iRobot releases Mobility architecture based on IMA 1.0 (Philosophy: Same as IMA. Mobility is targeted at mobile robots in academic research. The software runs only on C++ / Linux.) 2002 – IBM releases the Agent Building & Learning Environment (ABLE). (Targeted at systems requiring autonomic computing abilities. AI algorithms similar to IMA, but without algorithmic communication. Only Java is supported.) Parallel Work

IMA 2.5 Objectives Stabilize platform Stabilize platform Increase guidance & prevent bad habits Increase guidance & prevent bad habits Increase system reliability Increase system reliability Increase system scalability Increase system scalability Provide better development tools Provide better development tools Aid knowledge transfer Aid knowledge transfer

Overview Terminology Terminology Problem Area Problem Area IMA 2.5 Objectives IMA 2.5 Objectives IMA 2.5 Layout IMA 2.5 Layout IMA 2.5 Features IMA 2.5 Features Conclusions Conclusions

IMA 2.5 System Layout Programming Paradigm Programming Paradigm Guidelines for writing IMA software Guidelines for writing IMA software Software Platform Software Platform Software that runs our software Software that runs our software Software that manages our software Software that manages our software Software that helps write our software Software that helps write our software

IMA 2.5 Programming Paradigm Agent Model Agent Model Agent Taxonomy Agent Taxonomy Atomic, Compound Atomic, Compound Hardware/Resource, Skill/Behavior Hardware/Resource, Skill/Behavior Environment, Sequencer, Multi-Type Environment, Sequencer, Multi-Type Component Taxonomy Component Taxonomy Agent, Engine, Mechanism, Representation Agent, Engine, Mechanism, Representation Link, Relationship, Policy Link, Relationship, Policy Interfaces Interfaces

IMA 2.5 Software Platform Runtime Environment Runtime Environment Distributing Layer Distributing Layer Locator Service Locator Service Event Service Event Service Information Service Information Service Control Layer Control Layer Components Components Agents Agents Application Layer Application Layer Development Tools Development Tools End-User Interfaces End-User Interfaces Development Tools Development Tools Distributed Agent Designer (DAD) Distributed Agent Designer (DAD) Manager Book (MB) Manager Book (MB) Command Console (CC) Command Console (CC) Base Classes & Templates Base Classes & Templates

IMA 2.5 Runtime Environment Samurai A1 A2 Musashi IMA 2.5 Services C1 C2 C3 C4 A3 IMA 2.5 Services C5 C6 A4 C7 C8 DCOM Data Marshalling via 10/100mbps Ethernet Locator Requests & Event Notifications Bind-time Direct Connection Runtime Component Location Ninja

Overview Terminology Terminology Problem Addressed Problem Addressed IMA 2.5 Layout IMA 2.5 Layout IMA 2.5 Issues IMA 2.5 Issues IMA 2.5 Features IMA 2.5 Features Conclusions Conclusions

IMA 2.5 Objectives Stabilize platform Stabilize platform Increase guidance Increase guidance Increase system reliability Increase system reliability Increase system scalability Increase system scalability Provide better development tools Provide better development tools Aid knowledge transfer Aid knowledge transfer

Platform Stabilization Bug fixes Bug fixes Key issues with 2.0 fixed Key issues with 2.0 fixed Bindings Bindings Binary reuse Binary reuse Properties & methods Properties & methods Manager separation Manager separation End-user support End-user support Development tools easier to modify Development tools easier to modify Manuals Manuals Templates Templates Base Classes Base Classes

System Reliability Reliability = Fault Tolerance Reliability = Fault Tolerance Simplified Interfaces Simplified Interfaces Locator Service, Event Service, Information Service Locator Service, Event Service, Information Service AgentBuilder DAD, MB, CC AgentBuilder DAD, MB, CC Base classes for agents, components, and bindings Base classes for agents, components, and bindings Default Agents (Out-of-process) Default Agents (Out-of-process) Components (State Machine) Components (State Machine) Bindings overhaul Bindings overhaul

Increase Guidance Templates Templates Manuals Manuals Base classes Base classes Second-level events Second-level events Bindings object for locating components Bindings object for locating components Bindings editor for configuration Bindings editor for configuration Guidelines Guidelines Naming conventions Naming conventions Component & manager separation Component & manager separation Directories Directories

System Scalability Scalability = Increased agent & component capacity Scalability = Increased agent & component capacity Locator Service, Event Service, Information Service Locator Service, Event Service, Information Service Data structures, search methods Data structures, search methods Manager overhaul Manager overhaul Bindings overhaul (complexity) Bindings overhaul (complexity) Late-binding property/method support Late-binding property/method support

Development Tools Distributed Agent Designer (DAD) Distributed Agent Designer (DAD) ManagerBook (MB) ManagerBook (MB) Command Console (CC) Command Console (CC)

Knowledge Transfer Hidden knowledge Hidden knowledge Component Information Component Information Binding Details Binding Details Information Service Information Service DAD & Bindings DAD & Bindings Component icons Component icons Centralized directories Centralized directories Components Components Managers Managers Data Data Applications Applications Documentation database Documentation database

Overview Terminology Terminology Problem Addressed Problem Addressed IMA 2.5 Layout IMA 2.5 Layout IMA 2.5 Issues IMA 2.5 Issues IMA 2.5 Features IMA 2.5 Features Conclusions Conclusions

IMA 2.5 Objectives Stabilize platform Stabilize platform Increase guidance & prevent bad habits Increase guidance & prevent bad habits Increase system reliability Increase system reliability Increase system scalability Increase system scalability Provide better development tools Provide better development tools Aid knowledge transfer Aid knowledge transfer

Conclusions Mobiles should be moved to IMA 2.5 if possible Mobiles should be moved to IMA 2.5 if possible IMA provides some benefits for small projects IMA provides some benefits for small projects A properly developed IMA combined with software engineering practices would offset the collapse point of large projects A properly developed IMA combined with software engineering practices would offset the collapse point of large projects IBMs ABLE platform may be an alternative to IMA IBMs ABLE platform may be an alternative to IMA IMA should eventually move to.NET IMA should eventually move to.NET

Common Questions Why not just use OOP and DCOM? Why not just use OOP and DCOM? Are the advantages to IMA2 worth the move? Are the advantages to IMA2 worth the move? Why not go back to Linux? Why not go back to Linux? Is IMA worth it? Is IMA worth it? What is the future of IMA? What is the future of IMA?

Questions?