Charles Herring Talk
-
Upload
carlosandmerisa-garcia -
Category
Documents
-
view
224 -
download
0
Transcript of Charles Herring Talk
-
7/30/2019 Charles Herring Talk
1/38
Viable Softwarethe
Intelligent Control Paradigmfor
Adaptable and Adaptive Systems
http://www.charles-herring.com
-
7/30/2019 Charles Herring Talk
2/38
Overview
Motivation and Approach Systems Thinking: MVC Revisited
The Viable Software Architecture Generative Programming
Case Studies
Conclusion
-
7/30/2019 Charles Herring Talk
3/38
Trends and Forces
Impersonal Computing 1 computer, N persons Human Out-of-the-loop
Personal Computing 1 computer, 1 person Human In-the-loop
Proactive Computing
N computers, 1 person M computers, N persons Human Above-the-loop
-
7/30/2019 Charles Herring Talk
4/38
Direction of Evolution
The Economy
The Brain
The Enterprise
Stockholding
Conditioned Reflexes
Industrial Probability
Penny Tossing
Brownian Motion
Statistical QualityCont.
Empty
Digital Computers
Planetary Systems
Automation
Window Catch
Billiards
Shop Lay-Out
Simple Complex ExceedinglyComplex
Deterministic
Probabilistic
-
7/30/2019 Charles Herring Talk
5/38
Approach
How do we build these types of softwaresystems? Is there any knowledge from other fields
(outside of computer science) that can help?
I chose the Viable System Model Developed by Stafford Beer Based on Information Theory and Cybernetics Claims to capture the invariants of viable
systems Viable: able to maintain a separate existence.
-
7/30/2019 Charles Herring Talk
6/38
Model
coreDatasetOfObservers
attach(Observers)detach(Observers)notify
getDataservice
View
myModelmyController
initialize(Model)makeControlleractivatedisplayupdate
Controller
myModelmyView
initialize(Model,View)
handleEventupdate
Observer
updatecall update
attachgetData
attachcall service
manipulatedisplay
create
Model View Controller
-
7/30/2019 Charles Herring Talk
7/38
Controller
Model
ModelcoreDatasetOfObservers
attach(Observers)detach(Observers)
notify
getData
service
View
myProcessmyActuator
initialize(Process)makeActuator
activateoutput
update
Controller
myProcessmySensor
initialize(Process,Sensor)
handleEventupdate
call update
attach
getData
attachcall service
manipulateoutput
create
feedback
commands
Systems Thinking
Actuator
Sensor
Process
Environment
-
7/30/2019 Charles Herring Talk
8/38
Viable Software
A viable software system is Adaptable
over time to be Adaptive.
-
7/30/2019 Charles Herring Talk
9/38
Separate Control
/ Environment:
/ Process: *
disturbances
responses
command
control
/ Controller:
Process Model
Control Rule
Computation
Present
Critical Variables
results
command
-
7/30/2019 Charles Herring Talk
10/38
Regulator
/ Environment:
/ Process: *
disturbances
responses
command
control/ Regulator:
response
responseplans
*
plans
/ Controller:
Process Model
Control Rule
Computation
PresentPlan
Critical Variables
results
command
-
7/30/2019 Charles Herring Talk
11/38
Auditor
/ Environment:
/ Process: *
disturbances
responses
command
control/ Auditor: / Regulator:
audit reports
audit requests
audit reports
audit request
response
responseplans
**
plans
/ Controller:
Process Model
Control Rule
Computation
PresentPlan
Critical Variables
Queries
results
command
-
7/30/2019 Charles Herring Talk
12/38
/ Environment:
/ Process: *
feedback
disturbances
responses
command
control/ Auditor: / Regulator:
audit reports
audit requests
audit reports
audit request
response
responseplans
/ Adaptive Controller:
**
controlrules
observations
plans
/ Controller:
Process Model
Control Rule
Computation
Self Model
Rule Base
Present
Future
Plan
Critical Variables
Queries
results
command rules
Adaptive
-
7/30/2019 Charles Herring Talk
13/38
/ Environment:
/ Process:
policy
*
feedback
disturbances
responses
command
control/ Auditor: / Regulator:
goals
results
audit reports
audit requests
audit reports
audit request
response
responseplans
/ Adaptive Controller:
**
controlrules
observations
/ Supervisor:
controlrules
alerts
plans
/ Controller:
Process Model
Control Rule
Computation
Self Model
Rule Base
Present
Future
Actor Interface
Policy Base
Plan
Critical Variables
Queries
Supervisory
Viable
SoftwareArchitecture
-
7/30/2019 Charles Herring Talk
14/38
Multi Agent Systems
Human
SkillsIntelligent Adaptive Systems
Applications
Control
Adapt
Supervise
Operating Systems
SoftwareSystem
Viable Systems
Adaptive
Adaptable
Control Adapt Supervise
Migration of Control SkillsThe Gradient of Software Evolution
A viable software system is Adaptableover timeto be Adaptive.
-
7/30/2019 Charles Herring Talk
15/38
/ Regulator:
/ Controller:
policy
*
command
control/ Auditor:
goals
results
audit reports
audit requests
audit reports
audit request
response
plans
response
plans
/ AdaptiveController:
**
controlrules
/ Supervisor:
controlrules
alerts
*
/ Future:
/ Present:
/ Past:
Adaptive-Adaptive
Supervisor-Supervisor
Recursion
-
7/30/2019 Charles Herring Talk
16/38
21
3
4
5
6
7
8
9
3
4
5
6
8
9
8
0
Viable
SoftwareFramework
-
7/30/2019 Charles Herring Talk
17/38
23
4
5
6
7
9
8
0
>
1
Viable Component
-
7/30/2019 Charles Herring Talk
18/38
System Sub-System
6 Alert Conditions
5 Goals and Policies
4 Models, Simulations, and Data
3 Resources and Accountability Requirements
2 Initial Plans and Activities
7 Links to Other Processes
1 Initial Audit and Inspection Queries
8 Environment to Adaptive Controller Link
9 Environment to Process Link
2
3
4
5
6
7
9
8
0
>
1
ComponentTransferProtocol
-
7/30/2019 Charles Herring Talk
19/38
Meta-level (Complex Adaptive Systems in General)
Domain-Specific level (B2B, Agent Systems, Smart Environments, )
ViableSystemModel
ViableSoftware
Architecture
DomainReferenceModel &
Requirements
DomainReference
Architecture
ApplicationSpecific
Requirements
ViableSoftware
Framework
DomainFramework
&Components
ApplicationComponent
ConfigurationTools
ComponentTransferProtocol
Generative ProgrammingProduct Line Architecture
-
7/30/2019 Charles Herring Talk
20/38
Case Studies
Groove: Diagnosing the System Mapping Groove into the VSA Adding Adaptive Controller for UI
Smart Environments
Design and Usage Scenario Lecture Room Camera Controller
e-Commerce Evolving a B2B System B2B Contracts
-
7/30/2019 Charles Herring Talk
21/38
Groove
Mediated Model-View-Controller Groove Levels
Groove Net and Web Services
Transceiver Shared Spaces
Tools Sets
Tool: Storage and Controlling Code
Add Adaptive User Interface Controller
-
7/30/2019 Charles Herring Talk
22/38
-
7/30/2019 Charles Herring Talk
23/38
U(t)
1Never Infrequent Frequent Always
V(t)
m
0 0.5-1.0 -0.5 0.0
Average
1.0
d U(t)dt
1 VerySlow Slow Fast VeryFast
0 100-200 -100 0
Zero
200
1
Invisible Fading Promoted
0 4010 20 30
Normal
50 60
Bold
Fuzzy Set Membership Functions
-
7/30/2019 Charles Herring Talk
24/38
If Usage is Average and Change in Usage is Zero Then Visibility is Normal
Average
-0.5 0.0 0.5
Zero
-100 0 100
Normal
20 30 40
If Usage is Average and Change in Usage is Fast Then Visibility is Bold
Fast Bold
30 40 500 100 200
40mcrisp = 35
20 30
-0.5 0.0 0.5
Average
50100
Inference
-
7/30/2019 Charles Herring Talk
25/38
InvisibleInvisibleFadingNormalBold
InvisibleInvisibleInvisibleFadingNormal
InvisibleFadingNormalBoldPromoted
FadingNormalBoldPromotedPromoted
NormalBoldPromotedPromotedPromoted
Change in Usage: dU/dt
VerySlowSlowZeroFastVeryFast
Infrequent
Never
Average
Frequent
Always
Usage:
U(t)
Visibility
V
Rule Table
-
7/30/2019 Charles Herring Talk
26/38
Smart Lecture Room
Smart Lecture Room
C1LT T
TRoomController C3C2
T
Door
Tracking Beacon
Tracking Antenna Tracking Antenna
Tracking AntennaLecturer Camera Audience Camera
Surveillance CameraLock
SmartB
oard
Wireless Base Station
W
Wireless Base Station
W
-
7/30/2019 Charles Herring Talk
27/38
Smart Camera
SmartCamController
SmartCamOperations
SmartCamAuditor
SmartCamPlanning
SmartCamExecutive
SmartCamRegulator
SmartCamMSMQBus
SmartCamAccountant SmartCamPlant
SmartCamMSMQBus
Camera
Controller
ImageProcessor
-
7/30/2019 Charles Herring Talk
28/38
Startup Protocol
SmartRoom Executive Planning Operations Regulator Plant
SCExecPolicySOP
SCExecResources
Goals
SCExecResources
SCExecMsgStart
SCExecPolicySOP
SCOpsMsgCommand
SCPlantMsgModel
SCExecPolicySOP
SCExecResources
SCExecMsgStart
SCExecMsgStart
SCOpsStartParams
SCPlanPlanParams
SCOpsMsgStartCmd
SCOpsPlan
SCOpsPlan
SCOpsMsgStartCmd
-
7/30/2019 Charles Herring Talk
29/38
Operating
SmartRoom Executive Planning Operations Regulator Plant
Event
SCOpsMsgCommand
SCPlanMsgAdvice
SCOpsPlan
SCOpsPlan
SCPlantRptRoutine (5)
SCOpsRptRoutine
SCPlanOpsUpdate
SCOpsRptRoutine
SCPlantStateChng
SCOpsStateChange
SCOpsStateChangeSCOpsStateChange
-
7/30/2019 Charles Herring Talk
30/38
e-CommerceRetailer.com
B2B and B2C B2B Subsystems Wholesalers Shippers
Exchange Web Site B2B Controller: uses Visual Rules Studio
Executive: Contracts Planning: Operations and Market Analysis Operations: Purchasing, Accounting, Shipping,
and Contracting
-
7/30/2019 Charles Herring Talk
31/38
-
7/30/2019 Charles Herring Talk
32/38
-
7/30/2019 Charles Herring Talk
33/38
Viable Software
A viable software system is Adaptableover time to be Adaptive.
-
7/30/2019 Charles Herring Talk
34/38
Multi Agent Systems
Human
Skills
Intelligent Adaptive Systems
Applications
Control
Adapt
Supervise
Operating Systems
SoftwareSystem
Viable Systems
Adaptive
Adaptable
Control Adapt Supervise
Migration of Control SkillsThe Gradient of Software Evolution
-
7/30/2019 Charles Herring Talk
35/38
The
ViableSystem
Legal
Financial
National
International
Technological(Software)
Customers
Corporate
Dimensions of Viability
-
7/30/2019 Charles Herring Talk
36/38
Related Work
Mary Shaw - Control Paradigm Kokar and Eracar - Self-Controlling Software
Adaptive Object Model - Foote, Johnson and
Yoder Adaptive Strategy- Olivier Aubert
Beck, Highsmith - XP, Adaptive Software
Development Oriezy - Self-Adaptive Software
-
7/30/2019 Charles Herring Talk
37/38
Conclusion
VSM Isomorphic to Intelligent Controller Pattern Language
Theory of Autonomy
Conways Law
-
7/30/2019 Charles Herring Talk
38/38
Questions?
[email protected]://www.charles-herring.com