1 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 ThreadsDarwin HorCom Q & ¬ AKoalaTeddy Rob van Ommering Philips Research.

Slides:



Advertisements
Similar presentations
1 A B C
Advertisements

You have been given a mission and a code. Use the code to complete the mission and you will save the world from obliteration…
Software Requirements
Sugar 2.0 Formal Specification Language D ana F isman 1,2 Cindy Eisner 1 1 IBM Haifa Research Laboratory 1 IBM Haifa Research Laboratory 2 Weizmann Institute.
Chapter 6 Writing a Program
© 2005 by Prentice Hall Appendix 3 Object-Oriented Analysis and Design Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F. George.
Distributed Systems Architectures
Chapter 10 Architectural Design.
Chapter 7 System Models.
Chapter 27 Software Change.
Copyright © 2003 Pearson Education, Inc. Slide 1 Computer Systems Organization & Architecture Chapters 8-12 John D. Carpinelli.
1 Copyright © 2010, Elsevier Inc. All rights Reserved Fig 2.1 Chapter 2.
Business Transaction Management Software for Application Coordination 1 Business Processes and Coordination.
18 Copyright © 2005, Oracle. All rights reserved. Distributing Modular Applications: Introduction to Web Services.
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
Title Subtitle.
My Alphabet Book abcdefghijklm nopqrstuvwxyz.
Winter Education Conference Consequential Validity Using Item- and Standard-Level Residuals to Inform Instruction.
0 - 0.
ALGEBRAIC EXPRESSIONS
DIVIDING INTEGERS 1. IF THE SIGNS ARE THE SAME THE ANSWER IS POSITIVE 2. IF THE SIGNS ARE DIFFERENT THE ANSWER IS NEGATIVE.
MULTIPLYING MONOMIALS TIMES POLYNOMIALS (DISTRIBUTIVE PROPERTY)
SUBTRACTING INTEGERS 1. CHANGE THE SUBTRACTION SIGN TO ADDITION
MULT. INTEGERS 1. IF THE SIGNS ARE THE SAME THE ANSWER IS POSITIVE 2. IF THE SIGNS ARE DIFFERENT THE ANSWER IS NEGATIVE.
FACTORING Think Distributive property backwards Work down, Show all steps ax + ay = a(x + y)
Addition Facts
Around the World AdditionSubtraction MultiplicationDivision AdditionSubtraction MultiplicationDivision.
Communicating over the Network
IAEA Training in Emergency Preparedness and Response Module L-051 General Concepts of Exercises to Test Preparedness Lecture.
Excel Functions. Part 1. Introduction 2 An Excel function is a formula or a procedure that is performed in the Visual Basic environment, outside the.
Ken C. K. Lee, Baihua Zheng, Huajing Li, Wang-Chien Lee VLDB 07 Approaching the Skyline in Z Order 1.
Plan Recognition in Virtual Laboratories Ofra Amir and Yaakov (Kobi) Gal Ben-Gurion University of The Negev Department of Information Systems Engineering.
Electric Bus Management System
Configuration management
Research & development Towards a Versatile Contract Model to Organize Behavioral Specifications Philippe Collet 1, Alain Ozanne 2 and Nicolas Rivierre.
© 2011 TIBCO Software Inc. All Rights Reserved. Confidential and Proprietary. Towards a Model-Based Characterization of Data and Services Integration Paul.
ABC Technology Project
INTRODUCTION TO SIMULATION WITH OMNET++ José Daniel García Sánchez ARCOS Group – University Carlos III of Madrid.
By Waqas Over the many years the people have studied software-development approaches to figure out which approaches are quickest, cheapest, most.
Managing Variability with Koala Rob van Ommering Philips Research IPA Lentedagen 2005, April 1 st, 2005.
© Charles van Marrewijk, An Introduction to Geographical Economics Brakman, Garretsen, and Van Marrewijk.
© Charles van Marrewijk, An Introduction to Geographical Economics Brakman, Garretsen, and Van Marrewijk.
© Charles van Marrewijk, An Introduction to Geographical Economics Brakman, Garretsen, and Van Marrewijk.
Software Architecture Lecture 3
Component-Based Software Engineering Main issues: assemble systems out of (reusable) components compatibility of components.
Squares and Square Root WALK. Solve each problem REVIEW:
Software Processes.
Lecture 6: Software Design (Part I)
Chapter 11 Software Evolution
OBJECT-ORIENTEDNESS. What is Object-Orientedness? model system as a collection of interacting objects O-O Modelling  O-O Programming ► similar conceptual.
Executional Architecture
Chapter 5 Test Review Sections 5-1 through 5-4.
SIMOCODE-DP Software.
GG Consulting, LLC I-SUITE. Source: TEA SHARS Frequently asked questions 2.
Addition 1’s to 20.
25 seconds left…...
Copyright © 2003 by Prentice Hall Computers: Tools for an Information Age Chapter 15 Programming and Languages: Telling the Computer What to Do.
Week 1.
Chapter 10: The Traditional Approach to Design
GCSE Sawston VC Gary Whitton – Head of Science.
Systems Analysis and Design in a Changing World, Fifth Edition
We will resume in: 25 Minutes.
Module 12 WSP quality assurance tool 1. Module 12 WSP quality assurance tool Session structure Introduction About the tool Using the tool Supporting materials.
Database Administration
Connecting LANs, Backbone Networks, and Virtual LANs
1 PART 1 ILLUSTRATION OF DOCUMENTS  Brief introduction to the documents contained in the envelope  Detailed clarification of the documents content.
Distributed Computing 9. Sorting - a lower bound on bit complexity Shmuel Zaks ©
Modeling Main issues: What do we want to build How do we write this down.
H 1 Building Product Populations with Software Components, © 2002 Koninklijke Philips Electronics NV Building Product Populations with Software.
Presentation transcript:

1 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 ThreadsDarwin HorCom Q & ¬ AKoalaTeddy Rob van Ommering Philips Research Eindhoven, The Netherlands November 7 th, 2003 Intro Component Based Architectures Formalization and Verification

2 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Introduction ThreadsDarwin HorCom Q & ¬ AKoalaTeddyIntro First, a disclaimer: I’m not a mathematician I’m not a logician I’m not even a computer scientist… I studied physics… Worse(?), I’m an engineer Even worse(?), I’m a software architect So there’s a lot that I don’t know…

3 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Where I work ThreadsDarwin HorCom Q & ¬ AKoalaTeddyIntro Philips Research Laboratories Philips Research Laboratories Philips Consumer Electronics Philips Consumer Electronics Philips Semiconductors Philips Semiconductors Philips Medical Systems Philips Medical Systems Universities Research Institutes Other Research Laboratories Other Research Laboratories Products Patents Processes People Industry as Laboratory Where do I work? Fundamental knowledge Applied knowledge

4 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 My interests ThreadsDarwin HorCom Q & ¬ AKoalaTeddyIntro My interests: smalllarge Number of problems low high Complexity of problem Not * But * I’m an architect I’m a tool guy I like pictures…

5 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 ‘03‘18‘05‘07‘12 My future? retirement My History ThreadsDarwin HorCom Q & ¬ AKoalaTeddyIntro My history A.I. Formal Specifications Architecture Formalization Verification Component Model Architecture Software Product Lines ‘82‘88‘92‘96‘98‘00

6 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 My Domain ThreadsDarwin HorCom Q & ¬ AKoalaTeddyIntro My domain: MB kB kB Moore’s Law 1965

7 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 My Talk ThreadsDarwin HorCom Q & ¬ AKoalaTeddyIntro My talk: Architecture Formalization And Verification Architecture Description Language and Component Model Non-functional Properties Coping with Evolution Composing Control Software *

8 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Teddy ThreadsDarwin HorCom Q & ¬ AKoalaIntro Problem Statement Architecture = 1 st (highest) level of design. Current (read: 1993) programming languages do not offer proper support for defining architecture. How do I document and communicate an architecture? How do I verify an implementation against its architecture?

9 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Structure of a Design TeddyThreadsDarwin HorCom Q & ¬ AKoalaIntro // File: ape.c #include “nut.h”... // File: nut.h... // File: nut.c #include “mary.h”... // File: mary.h... // File: mary.c #include Programming in C: ape nut mary Abstraction:

10 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Layers TeddyThreadsDarwin HorCom Q & ¬ AKoalaIntro ape nut mary tree rose fire B A A layered design:

11 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Relation Partition Algebra TeddyThreadsDarwin HorCom Q & ¬ AKoalaIntro treeroseapenut AB u P U usage Usage Part-of U The architecture P,u The implementation P  u  P -1 Can observe this P  u  P -1  U Should hold u  P -1  U  P Should hold u \ P -1  U  P Should be  Our abstraction: Abstraction Function

12 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 RPA Tools TeddyThreadsDarwin HorCom Q & ¬ AKoalaIntro Easy to build tool support:

13 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 More Architectural Rules TeddyThreadsDarwin HorCom Q & ¬ AKoalaIntro u \ P -1  ( U  I )  P Some refinements: u \ P -1  U*  P u*  I u-u- Allow self references Transparent layers Cycles Nicer pictures Et cetera

14 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Recursive Packages TeddyThreadsDarwin HorCom Q & ¬ AKoalaIntro P P1P1 P2P2 P3P3 P4P4 P5P5 P6P6 C1C1 C3C3 C2C2 C4C4 C5C5 C7C7 C6C6 C8C8 Only allowed if visible through red arrows Architecture World Programmer’s World Design in the large More information Software Practice and Experience Thesis Rene Krikhaar Computer Languages More information Software Practice and Experience Thesis Rene Krikhaar Computer Languages

15 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Koala ThreadsDarwin HorCom Q & ¬ AIntroTeddy We’ve seen how to formalize architecture, and verify whether implementations satisfy the architecture. But this is a reactive process! And it doesn’t help the programmers. Questions: Can I: Make architecture explicit in a forward way? Do this in embedded systems? Support diversity and evolution?

16 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Provides Interfaces KoalaThreadsDarwin HorCom Q & ¬ AIntroTeddy C C m p : I interface I { int Max(int x, int y); float Sin(float x); } component C { provides I p; contains module m; connects p = m; within m { p.Max(x,y) = x > y ? x : y; // p.Sin implemented in C … } Provides Interfaces Has-A rather than Is-A Ports rather than Inheritance code-carrying model

17 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Requires Interfaces KoalaThreadsDarwin HorCom Q & ¬ AIntroTeddy C4 C1 C2 C1 C3 C Looks like: Darwin Requires Interfaces Can be bound differently in different products

18 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Connectors KoalaThreadsDarwin HorCom Q & ¬ AIntroTeddy C1 C2 C1 C2 C1 C2 C3 Switch Glue Module Direct r p r p1p1 r p p2p2 m Connectors

19 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Composition KoalaThreadsDarwin HorCom Q & ¬ AIntroTeddy C1 C2 C3 The composition process is recursive… Component instances are encapsulated. Component types are not (necessarily) (see later). Component instances are encapsulated. Component types are not (necessarily) (see later). Client of C2 and C3 Assembler of C1, C2 and C3. Composition

20 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Diversity KoalaThreadsDarwin HorCom Q & ¬ AIntroTeddy C1 C2 C3 Diversity interfaces are outgoing interfaces which parameterize the component. Late compile time binding, a.k.a. partial evaluation, is used to create resource efficient configurations. Parameterization

21 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 A Real-Life Example KoalaThreadsDarwin HorCom Q & ¬ AIntroTeddy More information IEEE Computer My thesis (TBP) More information IEEE Computer My thesis (TBP) A real-life example

22 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Threads Darwin HorCom Q & ¬ AIntroKoalaTeddy So we’re now at Level 1 in the Bengt Jonsson scale. What about non-functional properties? What can I do within the current Koala framework? What can I add to the Koala framework?

23 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Calculating Code Size ThreadsDarwin HorCom Q & ¬ AIntroKoalaTeddy Components specify their code size This can be summed at the product level C1 C3 C1 + Sometimes a very hot issue – now maintained in Excel (transpose matrix) Code Size

24 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Configuring Resources ThreadsDarwin HorCom Q & ¬ AIntroKoalaTeddy Components specify how many resources they require This can be summed and provided to the component that delivers the resources at the product level C1 C3 C1 + Resource Usage

25 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Pumps and Pump Engines ThreadsDarwin HorCom Q & ¬ AIntroKoalaTeddy C1 Step 1: use message pumps created on virtual pump engines required through a diversity interface Step 2: bind these to pump engines (a real dispatcher loop) Problem: many (>100) activities but few (<10) threads C2 C3 CFireBrigade Same thread, No synchronisation required Different thread, Synchronisation required Multi-threading

26 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Multi-threading attriutes ThreadsDarwin HorCom Q & ¬ AIntroKoalaTeddy Threading Analysis a a b b b c * * Specific symbolic thread Same thread as above May be another thread Will be a new thread Thread safe

27 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Composition Rules ThreadsDarwin HorCom Q & ¬ AIntroKoalaTeddy a a a a a b c d * * * * * a * a a * a * X X X X X O Composition Rules

28 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Unification ThreadsDarwin HorCom Q & ¬ AIntroKoalaTeddy p a a p p b b p q b c q Thread labels are unified Prepared for call on different threads, but called on the same thread q must be same as p C is a new thread, and cannot be equal to q More information PACC2 More information PACC2 Unification

29 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Darwin HorCom Q & ¬ AIntroThreadsKoalaTeddy Back to Level 1 in the Bengt Jonsson scale. How can I build a product line? More specifically: How can I manage diversity? How can I manage evolution? Answer: use sub typing…

30 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Build-A-Bear Darwin HorCom Q & ¬ AIntroThreadsKoalaTeddy What is a product line?

31 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Convergence Darwin HorCom Q & ¬ AIntroThreadsKoalaTeddy ‘Unforeseen’ combinations of existing functions  new product GPS + GSMGSM + DigCamPDA + GPS Convergence

32 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Product Populations Darwin HorCom Q & ¬ AIntroThreadsKoalaTeddy A product population is: - a set of products with many commonalities, - but also with many differences, - developed by different suborganizations, - each with its own time-line / lifecycle. Single Product Product Family Product Population Unrelated Products Decomposition Dedicated components Composition COTS Product Population

33 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Diversity & Evolution Darwin HorCom Q & ¬ AIntroThreadsKoalaTeddy CTuner CTuner’ CSearch Tuner tun: ITuner tun2: ITuner2 tun: ITunerstun: ISearchTuner Diversity Evolution C Looks like: Microsoft COM Variation in Space and in Time

34 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Evolution Rules Darwin HorCom Q & ¬ AIntroThreadsKoalaTeddy C C C’ IB +  IB Provide more... IAIBIAIB + IC C’  C Koala subtypes interfaces based on set inclusion of functions C C C’ IB -  IB Require less…??? IAIB - IAIBIC C’  C Koala reports an error if a non-existing interface is bound…! Evolution rules

35 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 More Evolution Rules Darwin HorCom Q & ¬ AIntroThreadsKoalaTeddy More information WICSA SPLC 2002 C C C’ IA C C C’ IA More evolution rules Optional Interfaces C C C’ a* C C *a Thread attributes

36 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 HorCom Q & ¬ AIntroThreadsDarwinKoalaTeddy We’ve seen mechanisms but no examples yet. Control software is difficult to compose. Question: How can I create composable control software? Answer: use a distributed algorithm

37 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 What’s in a TV? HorCom Q & ¬ AIntroThreadsDarwinKoalaTeddy TV Tube Electronics Small Signal Panel Small Signal Panel

38 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 A Control Problem HorCom Q & ¬ AIntroThreadsDarwinKoalaTeddy Tune(f) 1. BlankOutput 2. SetFrequency 3. UnblankOutput Tuner Hardware Output Hardware antenna tube Control Software Tuner Driver Output Driver

39 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 A more difficult problem HorCom Q & ¬ AIntroThreadsDarwinKoalaTeddy Output Hardware Tuner Hardware Output Hardware Switch antenna tube Control Software Output Driver Tuner Driver Output Driver Switch Driver 2. BlankOutput 3. SetFrequency 4. UnblankOutput Tune(t,f) 1. Which Output?

40 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Composing Control HorCom Q & ¬ AIntroThreadsDarwinKoalaTeddy Product Specific Code Reusable Code … unless... Control software is difficult to compose…

41 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Horizontal Communication HorCom Q & ¬ AIntroThreadsDarwinKoalaTeddy 1. SetFrequency(f) 2. DropRequest 3. Restore Tuner Hardware Output Hardware antenna tube Output Driver Tuner Driver

42 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Using LTSA HorCom Q & ¬ AIntroThreadsDarwinKoalaTeddy HORCOM = ( dr -> ( dr.t -> re -> re.r -> HORCOM | dr.f -> da -> ( re -> re.r -> da.r -> HORCOM | da.r -> re -> re.r -> HORCOM ) ). We have modeled this with LTSA. More information SP&E 2003 Haven’t completed this yet… Jeff Magee

43 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Summary Architecture can (partially) be formalized and verified. Koala as ADL and component model Non functional properties in Koala Managing diversity and evolution with sub typing Decomposing control by distribution Q & ¬ A Q & ¬ AIntroThreadsDarwin HorCom KoalaTeddy

44 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Nomenclature Q & ¬ AIntroThreadsDarwin HorCom KoalaTeddy COLD ICE Winter BEAR POLAR PANDA TeddyKoalaUrsa Darwin Kangaroo Formal Specification Nomenclature

45 © 2003 Philips Electronics BV, Rob van Ommering, FMCO 2003, November 7 th, 2003 Questions and Answers(?) Q & ¬ AIntroThreadsDarwin HorCom KoalaTeddy Q & ( ¬ ) A ?