360 likes | 372 Views
Explore the use of lightweight process coordination techniques in software development to improve efficiency and reliability. Learn about tools, methodologies, and the benefits of this approach.
E N D
Lightweight Process Coordination Bernhard Steffen Tiziana Margaria
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."
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.
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
General Trend: The Action moves up Requirements Modelling Design Implementation Machine Code What How What How What How Automation What How Despite undecidability
Platforms(Edward Lee) Where theAction Has Been: Giving the red platforms useful modeling properties (e.g. UML, MDA) Getting from red platforms to blue platforms. source: Edward A. Lee, UC Berkeley, 2003
Component Based Design AMDD Model Library … … M1 Mn M1 Mn Compilation/Synthesis Integration as Consistency/Compatibility Component Library … C1 Cn Global Model Synthesis/Technology Mapping Integration Integration Running System Running System a chip a board CB Design vs. AMDD SoC
ABC‘s AMDD Heterogeneous Service Models Component Model Library Feature Library .. … Temporal Constraints and Types SIB1 uses SIBn FLG1 FLGn .. Macro 1 Macro n Integration as Consistency/Compatibility Global SLG Compilation /Synthesis Running System
Leveraging this Situation • Programming becomes Orchestration • Programs become Process Models • Verification becomes more • Requirement Validation • Property Checking and • Runtime Checking Service-Oriented Design/Computing
Overview • The Java Application Building Center (jABC) • Application Scenarios • Testing: With and for the jABC • Legacy Components: Extrapolation Behavioural Models
Business Object Layer Persistency Layer Application Development The Architecture Application-specific Application GUI ABC Coordination Layer Reliable, graphical Configuration of Coordination Layer Reusability
Lightweight Process Coordination GUI Layer internal Coordination Process Layer Business Logic Layer Telco SCM ERP Custom external Persistency Layer Data Protection of the Customers Intellectual Property
Java ABC Role Concept Component Expert • advanced programming skills • basic knowledge about backend systems • collaboration with backend specialists & application experts Application Expert • detailed knowledge of the task • no classical programming skills • Java ABC modeling skills
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
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
Java ABC Models: SIB Graphs • composed of SIBs • hierarchical • interpretation & execution • analysis & verification • compilation
Requirement Validation • Symbolic Execution & • Workflow Animation
SIBs Create Newsgroup macro Hierarchical Design Macros Main Functionalities
Design Validation • Local constraints • Global constraints
Error Diagnosis • Violating Runs • Missed Deadlines • Wrong Parameters
TestCoordinator Rational Robot HTTP PCM Application PCs CSTA II/III HUSIM HUSIM HUSIM HUSIM HTTP PCM Application Server Hipermon Hipermon Hipermon Hipermon ^ ^ ^ Monitoring
jETI Extension jABC Framework jETI: Remote Component Integration
IT-Expert Comp.develop. Applic. expert HTML-Designer Design, impl. and test elem. services • Rational Rose • JBuilder Identify and define the components • JBuilder • Dreamweaver Design the coord. Workflows Pack the application Implement HTML pages Implement components Generatesource code Validate against requirements Service Definition Environment Distribution of Labour
Process Requirements Life Cycle Management Validation static Consistency Control Orchestration Process Model Deployment Running Process Testing & Monitoring Platforms
Java ABC in a Nutshell Simplicity • designed for application experts • no programming skills needed • easy-to-use graphical user interface
Java ABC in a Nutshell Simplicity Agility • model evolution is expected • full enhanceability • vital development
Java ABC in a Nutshell Simplicity Customization Agility • free component naming & visualization • free component restructuring • usage of familiar terminology
Java ABC in a Nutshell Simplicity Consistency Agility • one model for the whole process • no switching between technologies • avoidance of inconsistencies Customiza- bility
Java ABC in a Nutshell Simplicity Validation Agility • animation • simulation • verification • testing • monitoring Customiza- bility Consistency
Java ABC in a Nutshell Serviceorientation Simplicity Agility • easy integration of existing features & legacy systems • functionality wrapped into components • technology-independent integration Customiza- bility Consistency Validation
Java ABC in a Nutshell Simplicity Executability Agility • different execution levels • rapid prototyping • final runtime implementation Customiza- bility Serviceorientation Consistency Validation
Java ABC in a Nutshell Simplicity Universality Agility • Java ABC runs where Java runs • Platform independence • Object orientation Executa- bility Customiza- bility Serviceorientation Consistency Validation
Java ABC in a Nutshell Simplicity Universality Agility Executa- bility Customiza- bility Serviceorientation Consistency Validation