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 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 SoC Component Based Design Model Library … M1 AMDD Mn Compilation/Synthesis M1 … Mn Integration as Consistency/Compatibility Component Library … C1 Integration Cn Integration Running System a board Chair of Programming Systems Prof. Dr. Bernhard Steffen Global Model Synthesis/Technology Mapping Running System a chip 7 ABC‘s AMDD Heterogeneous Service Models Component Model Library SIB1 .. uses SIBn Macro 1 .. Feature Library FLG1 … 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 (jABC) Application Scenarios Testing: With and for the jABC 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 The Architecture Application GUI Reusability 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 Rational Robot ^ Hipermon HTTP Hipermon PCM Application PCs CSTA II/III HTTP Hipermon Hipermon PCM Application Server 24 Chair of Programming Systems Prof. Dr. Bernhard Steffen jETI: Remote Component Integration jETI Tool Provider <XML> Tool Description </XML> Tool Executer HTML Tool Configurator Tomcat Servlet Container jETI Tool Provider jABC Framework jETI Extension ABC VFS Interface jETI Plugin File SIB Java Class Edit SIB Creator <XML> Tool Desc. </XML> jABC Component Server jETI Client 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 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 bility Service orientation Consistency Validation 36 Chair of Programming Systems Prof. Dr. Bernhard Steffen