IMA 2.5: Software Architecture and Development Environment Roberto Olivares M.S. Electrical...
-
Upload
alex-black -
Category
Documents
-
view
214 -
download
0
Transcript of IMA 2.5: Software Architecture and Development Environment Roberto Olivares M.S. Electrical...
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
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
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.”
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
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
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
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?
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Development ToolsDevelopment Tools
Distributed Agent Designer (DAD)Distributed Agent Designer (DAD)
ManagerBook (MB)ManagerBook (MB)
Command Console (CC)Command Console (CC)
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
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
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
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
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?”
Questions?Questions?