IMA 2.5: Software Architecture and Development Environment Roberto Olivares M.S. Electrical...

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

Transcript of IMA 2.5: Software Architecture and Development Environment Roberto Olivares M.S. Electrical...

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

IMA 2.5: IMA 2.5: Software ArchitectureSoftware Architecture

and and Development EnvironmentDevelopment Environment

Roberto Olivares Roberto Olivares

M.S. Electrical EngineeringM.S. Electrical Engineering

Vanderbilt University, Spring 2003Vanderbilt University, Spring 2003

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

OverviewOverview

TerminologyTerminology Problem AreaProblem Area IMA 2.5 ObjectivesIMA 2.5 Objectives IMA 2.5 LayoutIMA 2.5 Layout IMA 2.5 FeaturesIMA 2.5 Features ConclusionsConclusions

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

Software ArchitectureSoftware Architecture

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

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

Intelligent Machine Intelligent Machine ArchitectureArchitecture

IMA is a robot software development IMA is a robot software development environmentenvironment

Developers write Developers write componentscomponents

Components are configured into Components are configured into agentsagents

Agents work together to control the Agents work together to control the robotrobot

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

Integration & ScalingIntegration & Scaling

Integration = adding functionality to a Integration = adding functionality to a systemsystem

Scaling = performing necessary Scaling = performing necessary integration to extend solution to a integration to extend solution to a larger problemlarger problem

Scalability = How easy scaling a Scalability = How easy scaling a system issystem is

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

OverviewOverview

TerminologyTerminology Problem AreaProblem Area IMA 2.5 ObjectivesIMA 2.5 Objectives IMA 2.5 LayoutIMA 2.5 Layout IMA 2.5 FeaturesIMA 2.5 Features ConclusionsConclusions

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

Why do we need IMA?Why do we need IMA?

Interesting Question:Interesting Question: How can we generate intelligent robot behavior How can we generate intelligent robot behavior

across multiple domains?across multiple domains?

Resulting Assumption: Resulting Assumption: Underlying software will be large, complex, and Underlying software will be large, complex, and

require a large degree of experimentation.require a large degree of experimentation.

Resulting Problem: Resulting Problem: How do we manage the development, How do we manage the development,

integration, and execution of this software?integration, and execution of this software?

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

Problem DomainProblem Domain

How do we manage the development, How do we manage the development, integration, and execution of robot integration, and execution of robot software?software?

Sub-problemsSub-problems Domain RelatedDomain Related Algorithm RelatedAlgorithm Related Engineering RelatedEngineering Related

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

Domain IssuesDomain Issues

ProblemProblem Ill-defined (no specifications or design)Ill-defined (no specifications or design) Biology hasn’t helped at the behavioral levelBiology hasn’t helped at the behavioral level

Search SpaceSearch Space Large Large SparseSparse

Search approachSearch approach Evaluating a solution is costlyEvaluating a solution is costly No heuristic or gradient to followNo heuristic or gradient to follow

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

Algorithm IssuesAlgorithm Issues

Integrative ApproachIntegrative Approach

Destructive InterferenceDestructive Interference Functionalities contradict or don’t Functionalities contradict or don’t

integrateintegrate Diminishing returnsDiminishing returns

Information content in biological Information content in biological systems is unaccounted forsystems is unaccounted for

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

Engineering IssuesEngineering Issues

CollapseCollapse Point where integration & maintenance become prohibitivePoint where integration & maintenance become prohibitive

DevelopmentDevelopment Inherent complexity (paradigm, techniques, technologies)Inherent complexity (paradigm, techniques, technologies) Increasing difficulty (comprehension, integration, regression faults)Increasing difficulty (comprehension, integration, regression faults)

Academic EnvironmentAcademic Environment No software process (life-cycle model, specifications, design)No software process (life-cycle model, specifications, design) High turnoverHigh turnover Domain engineersDomain engineers Low emphasis on infrastructure & maintenanceLow emphasis on infrastructure & maintenance No CASE toolsNo CASE tools

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

Problem SummaryProblem Summary

How do we manage the development, How do we manage the development, integration, and execution of robot integration, and execution of robot software?software?

Sub-problemsSub-problems Domain RelatedDomain Related Algorithm RelatedAlgorithm Related Engineering RelatedEngineering Related

This is a hard problemThis is a hard problem

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

OverviewOverview

TerminologyTerminology Problem AreaProblem Area IMA 2.5 ObjectivesIMA 2.5 Objectives IMA 2.5 LayoutIMA 2.5 Layout IMA 2.5 FeaturesIMA 2.5 Features ConclusionsConclusions

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

Focus Of IMAFocus Of IMA

Which of these issues are addressable?Which of these issues are addressable? Domain Issues: FewDomain Issues: Few Algorithm Issues: FewAlgorithm Issues: Few Engineering Issues: SomeEngineering Issues: Some

IMA focuses on the engineering issues, IMA focuses on the engineering issues, not on the domain or algorithm issues.not on the domain or algorithm issues.

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

Previous ObjectivesPrevious Objectives

IMA 1.0IMA 1.0 Support the development of integrated control software Support the development of integrated control software Integrate software architecture with various design Integrate software architecture with various design

approaches to guide developmentapproaches to guide development Promote binary and source reusePromote binary and source reuse Provide fault-tolerant distributed computingProvide fault-tolerant distributed computing

IMA 2.0IMA 2.0 Speed learningSpeed learning Speed development Speed development Facilitate integrationFacilitate integration Provide better development toolsProvide better development tools

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

19981998 – iRobot releases Mobility architecture – iRobot releases Mobility architecture based on IMA 1.0 based on IMA 1.0

(Philosophy: Same as IMA. Mobility is targeted at (Philosophy: Same as IMA. Mobility is targeted at mobile robots in academic research. The software mobile robots in academic research. The software runs only on C++ / Linux.)runs only on C++ / Linux.)

20022002 – IBM releases the – IBM releases the Agent Building & Learning Agent Building & Learning Environment (ABLE).Environment (ABLE).

(Targeted at systems requiring (Targeted at systems requiring autonomic computing abilities. autonomic computing abilities. AI algorithms similar to IMA, but AI algorithms similar to IMA, but without algorithmic without algorithmic communication. Only Java is communication. Only Java is supported.)supported.)

Parallel WorkParallel Work

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

IMA 2.5 ObjectivesIMA 2.5 Objectives

Stabilize platformStabilize platform Increase guidance & prevent bad Increase guidance & prevent bad

habitshabits Increase system reliabilityIncrease system reliability Increase system scalabilityIncrease system scalability Provide better development toolsProvide better development tools Aid knowledge transferAid knowledge transfer

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

OverviewOverview

TerminologyTerminology Problem AreaProblem Area IMA 2.5 ObjectivesIMA 2.5 Objectives IMA 2.5 LayoutIMA 2.5 Layout IMA 2.5 FeaturesIMA 2.5 Features ConclusionsConclusions

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

IMA 2.5 System LayoutIMA 2.5 System Layout

Programming ParadigmProgramming Paradigm Guidelines for writing IMA softwareGuidelines for writing IMA software

Software PlatformSoftware 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

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

IMA 2.5 Programming IMA 2.5 Programming ParadigmParadigm

Agent ModelAgent Model Agent TaxonomyAgent Taxonomy

Atomic, CompoundAtomic, Compound Hardware/Resource, Skill/BehaviorHardware/Resource, Skill/Behavior Environment, Sequencer, Multi-TypeEnvironment, Sequencer, Multi-Type

Component Taxonomy Component Taxonomy Agent, Engine, Mechanism, RepresentationAgent, Engine, Mechanism, Representation Link, Relationship, PolicyLink, Relationship, Policy

InterfacesInterfaces

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

IMA 2.5 Software PlatformIMA 2.5 Software Platform

Runtime Runtime EnvironmentEnvironment Distributing LayerDistributing Layer

Locator ServiceLocator Service Event ServiceEvent Service Information ServiceInformation Service

Control LayerControl Layer ComponentsComponents AgentsAgents

Application LayerApplication Layer Development ToolsDevelopment Tools End-User InterfacesEnd-User Interfaces

Development ToolsDevelopment Tools Distributed Agent Distributed Agent

Designer (DAD)Designer (DAD) Manager Book (MB)Manager Book (MB) Command Console Command Console

(CC)(CC) Base Classes & Base Classes &

TemplatesTemplates

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

IMA 2.5 Runtime IMA 2.5 Runtime EnvironmentEnvironmentSamurai

A1

A2

Musashi

IMA 2.5 Services

IMA 2.5 Services

C1

C2

C3

C4

A3

IMA 2.5 Services

C5

C6

A4

C7

C8

DCOM Data Marshallingvia 10/100mbps Ethernet

Locator Requests &

Event Notifications

Bind-time Direct Connection

Runtime Component Location

Ninja

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

OverviewOverview

TerminologyTerminology Problem AddressedProblem Addressed IMA 2.5 LayoutIMA 2.5 Layout IMA 2.5 IssuesIMA 2.5 Issues IMA 2.5 FeaturesIMA 2.5 Features ConclusionsConclusions

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

IMA 2.5 ObjectivesIMA 2.5 Objectives

Stabilize platformStabilize platform Increase guidance Increase guidance Increase system reliabilityIncrease system reliability Increase system scalabilityIncrease system scalability Provide better development toolsProvide better development tools Aid knowledge transferAid knowledge transfer

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

Platform StabilizationPlatform Stabilization

Bug fixesBug fixes Key issues with 2.0 Key issues with 2.0

fixedfixed BindingsBindings Binary reuseBinary reuse Properties & Properties &

methodsmethods Manager separationManager separation End-user supportEnd-user support

Development tools Development tools easier to modifyeasier to modify

ManualsManuals TemplatesTemplates Base ClassesBase Classes

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

System ReliabilitySystem Reliability

Reliability = Fault ToleranceReliability = Fault Tolerance Simplified InterfacesSimplified Interfaces Locator Service, Event Service, Information Locator Service, Event Service, Information

ServiceService AgentBuilder AgentBuilder DAD, MB, CC DAD, MB, CC Base classes for agents, components, and Base classes for agents, components, and

bindingsbindings Default Agents (Out-of-process)Default Agents (Out-of-process) Components (State Machine)Components (State Machine) Bindings overhaulBindings overhaul

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

Increase GuidanceIncrease Guidance

TemplatesTemplates ManualsManuals Base classesBase classes Second-level eventsSecond-level events Bindings object for locating componentsBindings object for locating components Bindings editor for configurationBindings editor for configuration GuidelinesGuidelines

Naming conventionsNaming conventions Component & manager separationComponent & manager separation DirectoriesDirectories

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

System ScalabilitySystem Scalability

Scalability = Increased agent & Scalability = Increased agent & component capacitycomponent capacity

Locator Service, Event Service, Locator Service, Event Service, Information Service Information Service

Data structures, search methodsData structures, search methods Manager overhaulManager overhaul

Bindings overhaul (complexity)Bindings overhaul (complexity) Late-binding property/method support Late-binding property/method support

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

Development ToolsDevelopment Tools

Distributed Agent Designer (DAD)Distributed Agent Designer (DAD)

ManagerBook (MB)ManagerBook (MB)

Command Console (CC)Command Console (CC)

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

Knowledge TransferKnowledge Transfer

Hidden knowledgeHidden knowledge Component Component

InformationInformation Binding DetailsBinding Details Information ServiceInformation Service DAD & BindingsDAD & Bindings Component iconsComponent icons

Centralized directoriesCentralized directories ComponentsComponents ManagersManagers DataData ApplicationsApplications

Documentation Documentation databasedatabase

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

OverviewOverview

TerminologyTerminology Problem AddressedProblem Addressed IMA 2.5 LayoutIMA 2.5 Layout IMA 2.5 IssuesIMA 2.5 Issues IMA 2.5 FeaturesIMA 2.5 Features ConclusionsConclusions

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

IMA 2.5 ObjectivesIMA 2.5 Objectives

Stabilize platformStabilize platform Increase guidance & prevent bad Increase guidance & prevent bad

habitshabits Increase system reliabilityIncrease system reliability Increase system scalabilityIncrease system scalability Provide better development toolsProvide better development tools Aid knowledge transferAid knowledge transfer

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

ConclusionsConclusions

Mobiles should be moved to IMA 2.5 if possibleMobiles should be moved to IMA 2.5 if possible

IMA provides some benefits for small projectsIMA provides some benefits for small projects A properly developed IMA combined with software A properly developed IMA combined with software

engineering practices would offset the collapse engineering practices would offset the collapse point of large projectspoint of large projects

IBM’s ABLE platform may be an alternative to IMAIBM’s ABLE platform may be an alternative to IMA IMA should eventually move to .NETIMA should eventually move to .NET

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

Common QuestionsCommon Questions

““Why not just use OOP and DCOM?”Why not just use OOP and DCOM?”

““Are the advantages to IMA2 worth the Are the advantages to IMA2 worth the move?”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?”

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

Questions?Questions?