Meeting the Challenges of Ultra Meeting the Challenges of Ultra-
- Large
Large-
- Scale Systems via Model
Scale Systems via Model-
- Driven
Driven Engineering Engineering February 2, 2007 February 2, 2007
- Dr. Douglas C. Schmidt
Meeting the Challenges of Ultra- -Large Large- - Meeting the - - PowerPoint PPT Presentation
Meeting the Challenges of Ultra- -Large Large- - Meeting the Challenges of Ultra Scale Systems via Model- -Driven Driven Scale Systems via Model Engineering Engineering February 2, 2007 February 2, 2007 Dr. Douglas C. Schmidt
Air Frame AP Nav HUD GPS IFF FLIR Cyclic Exec CLI SS7 SM CM RX TX IP RTOS
Middleware
Middleware Services DRE Applications Operating Sys & Protocols Hardware & Networks
Middleware
Middleware Services DRE Applications Operating Sys & Protocols Hardware & Networks
Security Replication Notification Persistence Scheduling A/V Streaming Load Balancing
Container
Container
Protocol Properties Explicit Binding Client Propagation & Server Declared Priority Models Portable Priorities Thread Pools Static Scheduling Service Standard Synchonizers
Request Buffering
www.dre.vanderbilt.edu/users.html
Monitor H.323 Servers CUSeeMe Airborne early warning & control (AWACS) Northrup-Grumman SOFIA telescope, Cassini space probe JPL/NASA Joint Tactical Radio System (JTRS) BAE Systems Joint Tactical Terminal (JTT) Raytheon & Army Surface mounted “pick-and-place” systems Contact Systems Shipboard resource management Turkish Navy Process automation & quality control Krones Hot rolling mill control systems Siemens Dynamic shipboard resource management (DDG) LMCO & Raytheon Automated stock trading ATDesk Wireless/wireline network management Cisco & Qualcomm Aircraft carrier & destroyer computing systems Raytheon Distributed interactive simulation (HLA/RTI) SAIC Aircraft mission & flight control computers Boeing
Application Domain Organization
Event Notifications Multimedia Streaming Dynamic & Static Scheduling Real-time Policies & Mechanisms Security Fault Tolerance & Load Balancing Component Implementation Definition Language Component Deployment & Configuration Time/space Optimizations
Middleware Middleware Services DRE Applications Operating System & Protocols Hardware & Networks
IntServ + Diffserv RTOS + RT Java RT/DP CORBA + DRTSJ Load Balancer FT CORBA
Network latency & bandwidth
Workload & Replicas CPU & memory Connections & priority bands
RT-CORBA RT-CORBA Services RT-CORBA Apps J2ME J2ME Services J2ME Apps DRTSJ DRTSJ Services DRTSJ Apps
Gigabit Ethernet Gigabit Ethernet
Middleware Middleware Services DRE Applications Operating System & Protocols Hardware & Networks
RT-CORBA RT-CORBA Services RT-CORBA Apps J2ME J2ME Services J2ME Apps DRTSJ DRTSJ Services DRTSJ Apps
Gigabit Ethernet Gigabit Ethernet
Translation
Translation Translation
Code Code Code Code Code Code Model Model Model Model Model Model Model Generated Code Model Platform
Model Application Code Domain Specific Framework Platform Frameworks Model Generated Code Framework Pattern Language Platform Model Application Code Domain Specific Framework Platform Frameworks Model Generated Code Framework Pattern Language Platform Model Application Code Domain Specific Framework Platform Frameworks Model Generated Code Framework Pattern Language Platform Model Domain Specific Framework Platform Frameworks Framework Pattern Language Platform Application Code
Semi-automated Domain-independent modeling languages
Saturation!!!!
Domain-specific modeling languages
Manual translation
Domain-specific modeling languages
Manual translation Semi-automated Domain-independent modeling languages
Model Application Code Domain Specific Framework Platform Frameworks Model Generated Code Framework Pattern Language Platform Model Application Code Domain Specific Framework Platform Frameworks Model Generated Code Framework Pattern Language Platform Model Application Code Domain Specific Framework Platform Frameworks Model Generated Code Framework Pattern Language Platform Model Application Code Domain Specific Framework Platform Frameworks Model Generated Code Framework Pattern Language Platform
Domain-specific modeling languages
Manual translation
Semi-automated Domain-independent modeling languages
Needs Automation Needs Automation
Platform Frameworks Application Code Model Platform Generated Code Model Platform Frameworks Application Code Model Platform Generated Code Model Platform Frameworks Application Code Model Platform Generated Code Model Platform Frameworks Application Code Model Platform Generated Code Model
Domain-specific modeling languages
Needs Automation Domain-independent modeling languages
Application-specific functionality
Acceptor Connecto r Component Configurator Stream Reactor Proactor Task
Model Application Code Domain Specific Framework Platform Frameworks Model Generated Code Framework Pattern Language Platform Model Application Code Domain Specific Framework Platform Frameworks Model Generated Code Framework Pattern Language Platform Model Application Code Domain Specific Framework Platform Frameworks Model Generated Code Framework Pattern Language Platform Model Application Code Domain Specific Framework Platform Frameworks Model Generated Code Framework Pattern Language Platform
<connection> <name>compressionQosPredictor_qosLevels</name> <internalEndpoint> <portName>qosLevels</portName> <instance xmi:idref="CompressionQosPredictor_F3C2CBE0-B2CE-46CC-B446- F64D91B44E56"/> </internalEndpoint> <internalEndpoint> <portName>compressionQosPredictor</portName> <instance xmi:idref="LocalResourceManagerComponent_7EF8B77A-F5EA- 4D1A-942E-13AE7CFED30A"/> </internalEndpoint> </connection> <connection> <name>scalingQosPredictor_qosLevels</name> <internalEndpoint> <portName>qosLevels</portName> <instance xmi:idref="ScaleQosPredictor_F3024A4F-F6E8-4B9A-BD56- A2E802C33E32"/> </internalEndpoint> <internalEndpoint> <portName>scalingQosPredictor</portName> <instance xmi:idref="LocalResourceManagerComponent_7EF8B77A-F5EA- 4D1A-942E-13AE7CFED30A"/> </internalEndpoint> </connection>
ima inc cur
CropQosket
[ CropQosket ] qos
CroppingQosPredictor
[ CroppingQosPredictor ] pol res inc com sca cro ima
cro sca com dif cpu
LocalResourceManagerComponent
[ LocalResourceM anagerComponent ] ima inc cur
CompressQosket
[ CompressQosket ] ima sen
Sender
[ Sender ] qos
CompressionQosPredictor
[ CompressionQosPredictor ] qos
ScaleQosPredictor
[ ScaleQosPredictor ] ima inc cur
ScaleQosket
[ ScaleQosket ] cpu
CPUBrokerComponent
[ CPUBrokerComponent ] inc
LocalReceiver
[ LocalReceiver ]
PolicyChangeEvt ResourceAllocationEvt ImageGenerationEvt
ima inc cur
DiffServQosket
[ DiffServQosket ] delegatesT
invoke invoke invoke invoke invoke emit emit emit invoke invoke invoke emit delegatesT
Shipping
SW Creator2
Deployment requirements Implementations SW Creator
1
Shipping
SW Creator2
Deployment requirements Implementations SW Creator
1
XMLSchema Generation IDL Generation
Specification & Implementation
standalone components Packaging
representing app components Installation
Configuration
functional & systemic requirements of an application without constraining to physical resources Planning
environment where packages will be deployed Preparation
Launching
QoS Assurance & Adaptation
maintain end-to-end QoS OMG Deployment & Configuration (D&C) specification (ptc/05-01-07)
Ad hoc techniques for ensuring component syntactic & semantic compatibility Distribution & deployment done in ad hoc manner Ad hoc means to determine pub/sub support
Container Servant
Component Specific Context CCMContext
Main Component Executor
Executors Executors
Executors
EnterpriseComponent
CCMContext
Container Servant
Component Specific Context CCMContext
Main Component Executor
Executors Executors
Executors
EnterpriseComponent
CCMContext
Container Servant
Component Specific Context CCMContext
Main Component Executor
Executors Executors
Executors
EnterpriseComponent
CCMContext
Container Servant
Component Specific Context CCMContext
Main Component Executor
Executors Executors
Executors
EnterpriseComponent
CCMContext
XML file in excess of 3,000 lines, even for medium sized scenarios Existing practices involve handcrafting XML descriptors Modifications to the assemblies requires modifying XML file
Based on OMG (D&C) specification (ptc/05-01-07)
Component Packaging Application Assembly
Component DLLs Component & Home Properties Component Interface Descriptors (.ccd) Packaging Tools Component Packages (*.cpk) Component & Home Properties Component Package Descriptors (.cpd) Implementation Artifact Descriptors (.iad) Assembly Tools Component Implementation Descriptor (*.cid)
component
component
(.cpk)
interface
based implementations
<monolithicImpl> [...] <deployRequirement> <name>GPS</name> <resourceType>GPS Device</resourceType> <property><name>vendor</name> <value> <type> <kind>tk_string</kind> </type> <value> <string>My GPS Vendor</string> </value> </property> </deployRequirement> [... Requires Windows OS ...] </monolithicImpl>
<connection> <name>GPS Trigger</name> <internalEndpoint> <portName>Pulse</portName> <instance href="#RateGen"/> </internalEndpoint> <internalEndpoint> <portName>Refresh</portName> <instance href="#GPS"/> </internalEndpoint> </connection> <connection> <name>NavDisplay Trigger</name> <internalEndpoint> <portName>Ready</portName> <instance href="#GPS"/> </internalEndpoint> <internalEndpoint> <portName>Refresh</portName> <instance href="#NavDisplay"/> </internalEndpoint> </connection>
Hook for the concurrency strategy Hook for the request demuxing strategy Hook for marshaling strategy Hook for the connection management strategy Hook for the underlying transport strategy Hook for the event demuxing strategy
Determine current resource allocations
Select the appropriate package to deploy on selected target Select appropriate target platform to deploy packages
How do you determine current resource allocations? How do you ensure that selected targets will deliver required QoS How do you correlate QoS requirements of packages to resource needs
How do you evaluate QoS of infrastructure before applications are built?
Gigabit Ethernet
Plan Analyzers XML to IDL LISP to IDL 2D Bin packing path Priority Sched. path Plan Managers 2D Bin packing Priority Sched. Output Adapters To DAnCE To OpenCCM
Applications that fetch XML or LISP and call appropriate plug-ins
R-F F-R F-R F-R R-F R-F
Deployment Manager
www.softwarefactories.com
www.eclipse.org/gmf/
www.openarchitectureware.org
ANALYSIS MDD TOOLS APPLICATION MDD TOOLS PLATFORM MDD TOOLS