Lightweight Process Coordination Bernhard Steffen Tiziana Margaria Chair
Lightweight Process Coordination Bernhard Steffen Tiziana Margaria Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11. 04. 06
Edsger Dijkstra: The Humble Programmer "[The major cause of the software crisis is] that the machines have become several orders of magnitude more powerful! To put it quite bluntly: as long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem. " 2 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Sir Tony Hoare: "Software Crisis: where is it? " "How did Software get so Reliable without Proof? " (1996) • Defensive programming • Over engineering • Requirement verification remains to be key. 3 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Sociological Reasons § Global Libraries § Millions of Testers § Enhanced Development Process § Better Tool Support § Lightweight Formal Methods • • Typing, Code Generation, Model Checking, Model-Based Testing But: No formal verification 4 Chair of Programming Systems Prof. Dr. Bernhard Steffen
General Trend: The Action moves up Requirements What Modelling What Design What Implementation What How Machine Code How How Automation Despite undecidability 5 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Platforms (Edward Lee) Where the Action Has Been: Giving the red platforms useful modeling properties (e. g. UML, MDA) Getting from red platforms to blue platforms. 6 Chair of Programming Systems Prof. Dr. Bernhard Steffen source: Edward A. Lee, UC Berkeley, 2003
CB Design vs. AMDD Component Based Design Mn Compilation/Synthesis Component Library … C 1 Integration AMDD Model Library … M 1 So. C Cn Integration Running System a board Chair of Programming Systems Prof. Dr. Bernhard Steffen M 1 … Mn Integration as Consistency/Compatibility Global Model Synthesis/Technology Mapping Running System a chip 7
ABC‘s AMDD Heterogeneous Service Models Component Model Library SIB 1 . . uses SIBn Macro 1 . . Feature Library FLG 1 … FLGn Temporal Constraints and Types Macro n Integration as Consistency/Compatibility Global SLG Compilation /Synthesis Running System 8 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Leveraging this Situation § Programming becomes Orchestration § Programs become Process Models § Verification becomes more • Requirement Validation • Property Checking and • Runtime Checking Service-Oriented Design/Computing 9 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Overview § The Java Application Building Center (j. ABC) § Application Scenarios § Testing: With and for the j. ABC § Legacy Components: Extrapolation Behavioural Models 10 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11. 04. 06
Application Development Reusability Application-specific The Architecture Application GUI Coordination Layer Business Object Layer ABC Reliable, graphical Configuration of Coordination Layer Persistency Layer 12 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Service-Oriented Computing 13 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Lightweight Process Coordination GUI Layer Persistency Layer Custom SCM ERP Business Logic Layer Telco Coordination Process Layer internal external Data Protection of the Customers Intellectual Property Chair of Programming Systems Prof. Dr. Bernhard Steffen 14
Java ABC Role Concept Application Expert § detailed knowledge of the task § no classical programming skills § Java ABC modeling skills Component Expert § advanced programming skills § basic knowledge about backend systems § collaboration with backend specialists & application experts 15 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Java ABC Component Model: SIBs § Service Independent Building Blocks (SIBs) § simple Java classes (comparable to Java Beans) § different optional abstraction layers in one class, defined through interfaces 16 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Java ABC Component Model: SIBs (2) § full Java power in all layers (e. g. : JDBC, RMI, JNI) § minimal basic implementation (SIBClass interface) § extensible & refactorable § fault-tolerant encapsulation within the model 17 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Java ABC: Big Picture 18 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Java ABC Models: SIB Graphs § composed of SIBs § hierarchical § interpretation & execution § analysis & verification § compilation 19 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Requirement Validation § Symbolic Execution & § Workflow Animation 20 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Hierarchical Design Create Newsgroup macro SIBs Macros Main Functionalities 21 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Design Validation ä Local constraints ä Global constraints 22 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Error Diagnosis § Violating Runs § Missed Deadlines § Wrong Parameters 23 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Test Coordinator Monitoring ^ HUSIM Hipermon HUSIM Rational Robot HTTP Hipermon PCM Application PCs CSTA II/III HTTP HUSIM Hipermon PCM Application Server 24 Chair of Programming Systems Prof. Dr. Bernhard Steffen
j. ETI: Remote Component Integration j. ABC Framework j. ETI Extension 25 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Distribution of Labour IT-Expert Comp. develop. Applic. expert HTML-Designer Identify and define the components Design, impl. and test elem. services • Rational Rose • JBuilder Design the coord. Workflows Implement components • JBuilder Implement HTML pages Validate against requirements • Dreamweaver Generate source code Pack the application Service Definition Environment 26 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Life Cycle Management Process Requirements Platforms Orchestration Validation Process Model static Consistency Control Deployment Running Process Testing & Monitoring 27 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Java ABC in a Nutshell Simplicity § designed for application experts § no programming skills needed § easy-to-use graphical user interface 28 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Java ABC in a Nutshell Simplicity Agility § model evolution is expected § full enhanceability § vital development 29 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Java ABC in a Nutshell Simplicity Customization Agility § free component naming & visualization § free component restructuring § usage of familiar terminology 30 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Java ABC in a Nutshell Simplicity Consistency § one model for the whole process § no switching between technologies § avoidance of inconsistencies Agility Customizability 31 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Java ABC in a Nutshell Simplicity Validation § § § animation simulation verification testing monitoring Agility Customizability Consistency 32 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Java ABC in a Nutshell Service orientation § easy integration of existing features & legacy systems § functionality wrapped into components § technology-independent integration Simplicity Agility Customizability Consistency Validation 33 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Java ABC in a Nutshell Simplicity Executability § different execution levels § rapid prototyping § final runtime implementation Agility Customizability Service orientation Consistency Validation 34 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Java ABC in a Nutshell Simplicity Universality § Java ABC runs where Java runs § Platform independence § Object orientation Agility Executa- Customiza- bility Service orientation Consistency Validation 35 Chair of Programming Systems Prof. Dr. Bernhard Steffen
Java ABC in a Nutshell Simplicity Universality Agility Executa- Customiza- bility Service orientation Consistency Validation 36 Chair of Programming Systems Prof. Dr. Bernhard Steffen
- Slides: 36