PCES PI 0ct Boeing Open Experimental Platform Boeing Phantom Works St. Louis, Missouri Dave Sharp Brian Mendel
PCES PI 0ct Breakout Session Goals Describe, Discuss, and Derive –Initial Challenge Problems –OEP build contents and schedule –Integrated experiment plans
PCES PI 0ct Breakout Session Outline Session #1 –Challenge Problems –OEP Overview Session #2 –Experimentation Planning Mapping of TD research onto Challenge Problems Aiming for initial experiments by April 2002
PCES PI 0ct Challenge Problems
PCES PI 0ct Challenge Problem Approach OEP Proposes –Challenges based on production program experiences –Overall structure for resolving them TDs Propose –Mapping of technologies to challenge problems
PCES PI 0ct Technical Challenges Classification Define Aspects/ Refactor Source Define Aspect Implementations Map Aspects Weave Aspects Analyze Components and Compositions Extend Capabilities Application Middleware & Services Technology Challenges Embedded Software Focus Areas Events Mem Mgmt Concurrency … Aspects Process- Related Product- Related
PCES PI 0ct Process-Related Challenge Problems
PCES PI 0ct Language- Based Model-Based Automated Generation Development Process Outline Define Aspects Weave Aspects Specify Aspects Specify Behavior Specify Aspect Mapping CompileBuildTest classes instances Specify Configuration Analyze Code Specify Behavior Specify Aspects Specify Aspect Mapping Analyze Model Specify Configuration Process-Related Challenge Problems Analysis/Weaving could be done at different levels at different times Classes vs objects Including hw
PCES PI 0ct Boeing PCES Goals More configurable, flexible applications –Within large-scale development process context … –Speed up code-test-debug cycle Rapid adaptation to changing requirements… –Make components more reusable across multiple products Support variability between multiple products –Configurability WITHIN software 80-90% of our source code is application components –Want more of software reusable Whether by centralizing services within middleware, or at application
PCES PI 0ct Boeing PCES Goals (cont) Higher confidence in correct system operation –Reducing effort to achieve specific confidence –Increase absolute attainable confidence Extend current capabilities
PCES PI 0ct Model/Language Boundaries What Is Optimal Application of Each Paradigm? –Is it impacted by AO? –Can language- based approaches be extended to provide typically modeling-based capabilities & vice versa? –How can they be best integrated? Process-Related Challenge Problems
PCES PI 0ct AO Styles Internal –Methods that modify execution internals of elements Weaving Generative Programming Macros External –Methods that tailor execution externally, e.g. by specifying attributes to external service QoS specifications Execution ordering Process-Related Challenge ProblemsDefine Aspects
PCES PI 0ct Aspect Classifications Aspects defining a portion of a component’s internal behavior Aspects defining a portion of a service’s internal behavior Aspects defining a portion of a component’s externally configured behavior Aspects defining a portion of a service’s externally configured behavior Application ComponentsMiddleware & Services Internal External Defines element’s service attributes to external provider Modifies execution internals of element Process-Related Challenge Problems AO Style Focus Area Define Aspects
PCES PI 0ct Candidate Aspects Event consumers and suppliers Execution pattern State management Concurrency control Error management Number of threads Event queue sizes OS adapters Network protocols Event dependencies and configuration Scheduling Fault tolerance Lock configuration Distribution allocation Thread priorities Application ComponentsMiddleware & Services Internal External Defines element’s service attributes to external provider Modifies execution internals of element Process-Related Challenge Problems AO Style Focus Area Define Aspects
PCES PI 0ct Internal Component Aspects Event Consumers and Suppliers –Which components are event consumers/suppliers? Execution Pattern –What is overall structure of event handler (Push())? Process-Related Challenge ProblemsDefine Aspects From February Avionics Case Study Presentation Eager vs lazy evaluation Possibly modal generation of events Possibly modal triggering of actions based on consumed events
PCES PI 0ct Internal Component Aspects (cont) State Management –Externalization/Internalization of component state –Replication Updating Distributed Proxies Control: typically handled by events Data: specification of state to be replicated, either –Statically at initialization time –Dynamically at run-time –Persistence Saving non-volatile state Control: triggering persistence saves Data: currently statically defined only Define AspectsProcess-Related Challenge Problems
PCES PI 0ct Internal Component Aspects (cont) State Management (cont) –Logging Saving dynamic data to flight recorder Control: possibly down-sampled version of events Data: typically static definition of saved state Error Management –Error conditions which are anticipated either during system test or during actual system operation E.g., Pre- or Post-condition checking Process-Related Challenge ProblemsDefine Aspects
PCES PI 0ct Internal Component Aspects (cont) Concurrency Control Patterns –No Locking For single threaded components –Internal Locking To avoid read/write collisions Each public method contains an internal guard –External Locking To provide coherency across multiple accesses Locking methods are publicly available –Synchronization Proxy Provides multiple access coherency without external locks Proxy created for each client thread Define AspectsProcess-Related Challenge Problems
PCES PI 0ct External Component Aspects Event Dependencies, Configuration, and Scheduling Define AspectsProcess-Related Challenge Problems
PCES PI 0ct External Component Aspects (cont) Event Dependencies, Configuration, and Scheduling (cont) Process-Related Challenge ProblemsDefine Aspects
PCES PI 0ct External Component Aspects (cont) Fault Tolerance –Currently handled by coarse predefined modes configured during initialization time –Activated at run-time by mode switch within Event Service –Cross-cuts issues of distribution, schedulability, state management, etc Distribution Allocation –Configured during initialization by instantiation of masters and distributed proxies Process-Related Challenge ProblemsDefine Aspects
PCES PI 0ct External Component Aspects (cont) Lock Configuration –Each component contains a lock –Based on product specific configuration, actual locks which are created during initialization may be null, mutex, recursive mutex, etc Process-Related Challenge ProblemsDefine Aspects
PCES PI 0ct Internal Service Aspects ORB and Event Service Configuration –Number of threads –Event queue sizes OS Wrapper (ACE) Configuration –OS type macros Network Protocols Define AspectsProcess-Related Challenge Problems
PCES PI 0ct External Service Aspects OS Threads and Priorities –Do we need to deal with these separately from Internal Service Aspects? Define AspectsProcess-Related Challenge Problems
PCES PI 0ct SRI Interest In Proposed Aspects Cor nell GIT KS U U BC OGI Boe ing LS JU Define AspectsProcess-Related Challenge Problems Event cons/suppliers Execution pattern State management Concurrency control Error management Event depend/config Scheduling Fault tolerance Lock configuration Distribution allocation Number of threads Event queue sizes OS adapters Network protocols Thread priorities CM U Kes trel MITVUWU BB N Preview of Experimentation Planning Discussion
PCES PI 0ct Specify Aspects What Unique Capabilities Apply To Writing Aspects? –Model-based? KSU –Global invariant specifications for synchronization –Includes code generation to be woven with functional code –Regions, not just points –Language-based? UBC –AspectC, coming later –Java based reverse engineering, modification, then forward engineering of aspects Process-Related Challenge Problems
PCES PI 0ct Specify Aspect Mapping What Approaches Are Proposed For Mapping Aspects? –Model-based? –Language-based? Process-Related Challenge Problems Internal Aspect Configuration
PCES PI 0ct Specify Configuration What Approaches Are Proposed For Specifying Configurations? –Model-based? MoBIES –Language-based? Process-Related Challenge Problems External Aspect Configuration
PCES PI 0ct Analysis What Analyses Are Proposed? –Aspect correctness –Recommended aspect mappings –Event analysis –Timing and schedulability –Property assurance –Data flow analysis Process-Related Challenge Problems
PCES PI 0ct Development Scenarios Development Scenarios Capture End-To-End Process Flows Process-Related Challenge Problems Weave Aspects Specify Aspects Specify Aspect Mapping Specify Configuration Timing Analysis Model-BasedLanguage-Based Data Flow Analysis Property Assurance Evt Correlation Analysis VU Java U BC U BC U BC Boe ing Preview of Experimentation Planning Discussion
PCES PI 0ct Product-Related Challenge Problems
PCES PI 0ct Product Challenges Radar WeaponsNav Sensors Weapon Management Data Links Many Computers Multiple Buses Constrained Tactical Links O(10 6 ) Lines of Code Hard & Soft Real-Time Periodic & Aperiodic Multiple Safety Criticalities Information Security PCES Focus Domain Mission Computer Vehicle Mgmt COTS
PCES PI 0ct PCES Component Model Evolved Component Model Based On CORBA Component Model (CCM) –Multiple APIs separated into different facets –Event consumers represented by first-class “event sink” concept –Equivalent interfaces, homes, common base classes, etc … Tailored And Extended For Real-Time QoS-Enabled Applications … Collaboratively with BBN OEP Application Challenges
PCES PI 0ct Application Component Library Current Application Components Based on Bold Stroke Component Model –Desire to align with CCM In future, move to RT Java –Scale motivates automated methods (O(10 3 ) components) Semantic Designs’ Design Maintenance System (DMS) Software Reengineering Toolkit To Be Investigated As Translator –Designed for large scale automated source reengineering –Based on program transformation technology Capable of processing ANSI C++, Java, many others Initial Effort Is Proof of Concept Demonstration Goal Is Rich Set Of Production Fidelity Application Components for PCES Demonstrations Application Challenges
PCES PI 0ct Middleware and Service Challenges Enhancing support for “external component” aspects –Event service –Event service correlation –Synchronization –Persistence –Resource management CPU, memory, network Locally and/or globally –Fault tolerance –CCM services
PCES PI 0ct Product Technologies Product Technology Development Activities Product-Related Challenge Problems Event Correlation Synchronization Persistence Resource Mgmt Fault Tolerance CCM Services SRI Cor nell GIT KS U U BC OGI Boe ing LS JU CM U Kes trel MITVUWU BB N Preview of Experimentation Planning Discussion Boe ing Event Service WU In Java KS U
PCES PI 0ct OEP Overview
PCES PI 0ct What is the OEP? A Software Platform Designed To: –Enhance ability to develop and test reusable distributed real-time embedded software –Provide research platform to facilitate transitionable and integratable PCES research Features: –Open run-time framework including middleware services and API –Representative Avionics Mission Processing domain application components –Set of representative Product Scenarios
PCES PI 0ct Model Infrastructure Services Operator Configurator Building Blocks Real World Model Avionics Interfaces DependenciesDependencies ViewController Commands Display Surfaces Display Formats Cockpits Missiles Ballistic Weapons SteeringAirframe Earth Model Ground Points State Machines Distributors RadarINSGPS ORB Services Event Service Name Service Replication Service Persistence Service Scheduler Service I/O Service Time Service System Configurator Layer Configurator Component-Based Architecture With 10 3 Components CORBA and COTS RTOS-Based Middleware Component-Based Architecture With 10 3 Components CORBA and COTS RTOS-Based Middleware Bold Stroke Logical Architecture Overview
PCES PI 0ct OEP Logical Architecture Overview Model Infrastructure Services Operator Configurator Building Blocks Real World Model Avionics Interfaces DependenciesDependencies ORB Services Event Service Name Service Replication Service Persistence Service Scheduler Service Time Service System Configurator Layer Configurator BM__ModeSource Component BM__PushDataSource Component BM__LazyActive Component BM__Modal Component BM__OpenED Component BM__ClosedED Component BM__Display Component BM__Passive Component BM_Device Component PCES OEP To Leverage MoBIES OEP
PCES PI 0ct Configurator Model / Operator Infrastructure Services Infrastructure Services OEP Wrapper Facade Layer Concurrency Utilities Event Service Utilities Persistence Utilities Configuration Utilities ORB Utilities Replication Utilities OS (VxWorks, Windows NT, Linux,... ) Adaptive Communication Environment (ACE) The ACE ORB (TAO) Real-Time Adaptive Resource Management (RTARM) Common Services Global Synch Naming Service Timer Service Trading Service Replication Service Error Service Scheduler Service Persistence Service Time Service Application Configurator
PCES PI 0ct Multi-Level Control Mission Computing- PCES Focus Application Domain OEP Decomposition
PCES PI 0ct CORBA Component Model Concepts ComponentEquivalentInterface GetFacet() > Facet1 GetData() > Facet2 PointAt() > EventSource Push() > EventSink Push() > EventSourceAdapter EventSinkAdapter Component Receptacle Connect() >
PCES PI 0ct Event Supplier Acts as a root event/data source for the system. Is usually timer driven. Event Supplier Event Consumer It is responsible for updating its own state and is not modifiable by a client (Closed). Event Consumer Acts as sink for data and control. Data it retrieves is output to the screen. BM__DeviceComponent BM__ClosedEDComponent BM__DisplayComponent Generic Component Descriptions
PCES PI 0ct BM__ModalComponent BM__DeviceComponent BM__LazyActiveComponent BM__DisplayComponent BM__ClosedEDComponent Event Consumer Event Supplier Conforms to Lazy Active execution pattern Event Consumer Event Supplier Changes modes activated by a push or client method call. Mode change results in a change of supplied event. BM__PassiveComponent Generic Component Descriptions (cont’d) Event Supplier
PCES PI 0ct Product Scenarios Provide Defined Representative Component Compositions and Interactions PS 1.x: basic single processor –1.1: minimum components, single-threaded –1.2: additional components, multi-threaded –1.3: modal execution, single-threaded PS 2.x: representative single processor PS 3.x: basic distributed processing –3.1: minimum components, single-threaded (priority) –3.2: additional components, multi-threaded (priorities) PS 4.x: representative distributed processing PS 4.x PS 1.x Basic PS 2.x Representative PS 3.x Multi-procUni-proc PCES Will Extend Product Scenario Set
PCES PI 0ct Product Scenario #1.1 Simplest Single Processor Scenario –“Hello, World”
PCES PI 0ct Product Scenario #3.1 Simplest Distributed Processor Scenario
PCES PI 0ct Product Scenario #1.3 (20Hz) Mid-Level Single Processor Scenario
PCES PI 0ct Product Scenario #1.3 (1Hz)
PCES PI 0ct OEP Configuration XML is Transformed into a Set of C++ Arrays of Enum/Integer Constants to be Compiled into Build XML is Transformed into a Set of C++ Arrays of Enum/Integer Constants to be Compiled into Build Arrays are Traversed at Initialization Time XMLProcessor OEP Configuration XML DOM Parser
PCES PI 0ct XML Top Level Structure BM__DEVICE_COMPONENT Delineates configuration for each processor Allows for multiple pass initialization Allows for multiple pass initialization Lifetime manager/locator for each Component type Lifetime manager/locator for each Component type Unique Id for the home Component instantiation/configuration
PCES PI 0ct XML Component Structure Components must exist at this time (must be in second pass) Components must exist at this time (must be in second pass) Unique Id for this component Causes connection between master And proxy to be made Causes connection between master And proxy to be made
PCES PI 0ct Download / Installation MoBIES Web Site S/W Distribution Page: Select OEP B1.3 Double-Click to Run Setup
PCES PI 0ct Additional Information Installation Instructions Build / Setup Instructions