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
38
Embed
IMA 2.5: Software Architecture and Development Environment Roberto Olivares M.S. Electrical Engineering Vanderbilt University, Spring 2003.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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.”
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
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
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
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
InformationInformation Binding DetailsBinding Details Information ServiceInformation Service DAD & BindingsDAD & Bindings Component iconsComponent icons
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?”