Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
1
Introduction FeedBack Demo Conclusion
Feedback on improving performance and scalability
using
while preserving correctne...
3
Commercial
RésidentialPublic lightning
Renewable
Electric cars
Billing
Client management
Maintenance
10 000 data per sec...
5
Commercial
RésidentialPublic lightning
Renewable
Electric cars
Billing
Client management
Maintenance
10 000 data per sec...
7
Multi-Core
Introduction FeedBack Demo Conclusion
Ada provides an attractive semantic
but bad practices could lead to …
C...
9
Our recommendations
Introduction FeedBack Demo Conclusion
Best practices
Add Separation of Concerns beetween
Business an...
11
Component containers cabling
Introduction FeedBack Demo Conclusion
40
41 Sensor.Link_To (Processor.Reference);
42
SENSO...
Partition 3
13
Deployment flexibility
Introduction FeedBack Demo Conclusion
Partition 1
Processing
Manager
Processing
Mana...
Partition 1 Partition 2
15
Introduction FeedBack Demo Conclusion
Data
Injector
Data
Injector
Processing
Manager
Processing...
17
Introduction FeedBack Demo Conclusion
Upcoming SlideShare
Loading in …5
×

AdaEurope 2013 - Berlin - Industrial Experience - Feedback on improving performance and scalability using multicore and distribution while preserving correctness

4,289 views

Published on

Feedback on improving a Smart Metering product performance and scalability using multi core and distribution while preserving its correctness.

David DHENAUX - SmartSide, France
David SAUVAGE - AdaLabs Ltd, Mauritius

Published in: Technology
  • Dating direct: ♥♥♥ http://bit.ly/2F90ZZC ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Sex in your area is here: ❶❶❶ http://bit.ly/2F90ZZC ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

AdaEurope 2013 - Berlin - Industrial Experience - Feedback on improving performance and scalability using multicore and distribution while preserving correctness

  1. 1. 1 Introduction FeedBack Demo Conclusion Feedback on improving performance and scalability using while preserving correctness David SAUVAGE Software architect David DHÉNAUX Co-founder & CTO Ada Europe 2013 - Berlin 2 David DHÉNAUX Co-founder & CTO David SAUVAGE Software architect Who are we ? Introduction FeedBack Demo Conclusion
  2. 2. 3 Commercial RésidentialPublic lightning Renewable Electric cars Billing Client management Maintenance 10 000 data per second • Collect • Validate • Analyze • Restitute • Visualize • … Smart Grid Systems need to manage huge amount of data Introduction FeedBack Demo Conclusion 4 Critical system for utilities MDMS needs high reliability… …and high performances Formal verification and proof secure our customers’ business Smart Grid Systems need to manage huge amount of data Introduction FeedBack Demo Conclusion
  3. 3. 5 Commercial RésidentialPublic lightning Renewable Electric cars Billing Client management Maintenance 10 000 data per second • Collect • Validate • Analyze • Restitute • Visualize • … Smart Grid Systems need to manage huge amount of data Introduction FeedBack Demo Conclusion 6 Introduction FeedBack Demo Conclusion
  4. 4. 7 Multi-Core Introduction FeedBack Demo Conclusion Ada provides an attractive semantic but bad practices could lead to … Code duplication Tasking architecture rigidity Test instabilities 8 Distribution with DSA Introduction FeedBack Demo Conclusion Amazing concept but could lead to … Behavior hiding (network, asynchronous) Heavy impact on legacy code
  5. 5. 9 Our recommendations Introduction FeedBack Demo Conclusion Best practices Add Separation of Concerns beetween Business and Infrastructure Components Manage Tasking and Distribution in the Infrastructure Layer 10 Business component encapsulation Introduction FeedBack Demo Conclusion 31 32 package Container is new Rachis.Components.Containers 33 (Label => "Business_Component", 34 Id => 2, 35 Policy => By_Pipeline_FIFO_Two_Task_Policy, 36 T_Capsule => Capsule); 37 38 pragma Remote_Call_Interface (Container); 39 1 2 type Capsule is new T_Capsule with null record; 3 4 overriding procedure Initialize (...) 5 -- ... 6 7 overriding procedure Process (...) 8 -- ... 9 BUSINESS COMPONENT BUSINESS COMPONENT CAPSULECAPSULE CONTAINER
  6. 6. 11 Component containers cabling Introduction FeedBack Demo Conclusion 40 41 Sensor.Link_To (Processor.Reference); 42 SENSOR SENSOR COMPONENT SENSOR COMPONENT CAPSULECAPSULE PROCESSOR PROCESSOR COMPONENT PROCESSOR COMPONENT CAPSULECAPSULE 12 Data processing flow Introduction FeedBack Demo Conclusion 43 44 Element.Set_Pipeline_Id (Hash); 45 Sensor.Process (Element); 46 Publish SENSOR SENSOR COMPONENT SENSOR COMPONENT CAPSULECAPSULE PROCESSOR PROCESSOR COMPONENT PROCESSOR COMPONENT CAPSULECAPSULE Process Process
  7. 7. Partition 3 13 Deployment flexibility Introduction FeedBack Demo Conclusion Partition 1 Processing Manager Processing ManagerProcessing Manager Processing ManagerProcessing Manager Processing ManagerComponent A Component A Partition 2 Processing Manager Processing ManagerComponent B Component B Component D Component D Processing Manager Processing ManagerProcessing Manager Processing ManagerComponent C Component C 14 Introduction FeedBack Demo Conclusion
  8. 8. Partition 1 Partition 2 15 Introduction FeedBack Demo Conclusion Data Injector Data Injector Processing Manager Processing ManagerProcessing Manager Processing ManagerProcessing Manager Processing ManagerProcessing Manager Processing Manager Input Flow Manager Input Flow Manager 16 • Make the framework formally proven • Add more features (memory pools,…) •Add dynamic behaviors What’s next ? Introduction FeedBack Demo Conclusion
  9. 9. 17 Introduction FeedBack Demo Conclusion

×