80 likes | 197 Vues
SYNTHESIS: a tool for automatically assembling correct and distributed component-based systems. Massimo Tivoli Computer Science Department University of L’Aquila massimo.tivoli@di.univaq.it. Motivations. CBSE is a reused-based approach to the development of software systems
E N D
SYNTHESIS: a tool for automatically assembling correct and distributed component-based systems • Massimo Tivoli • Computer Science Department • University of L’Aquila • massimo.tivoli@di.univaq.it
Motivations • CBSE is a reused-based approach to the development of software systems • Compatibility and communication issues may arise • One possible solution is the use of component coordinators • Lack of support • for the automatic synthesis of the actual adaptation/coordination code • for industrial component technologies, e.g., Microsoft COM/DCOM, EJB
K uncontrolled system + desired behavior enforcing K desired behavior specification controlled system Our previous approach its interaction may deadlock or not obey to a desired behavior automatic synthesis of a centralized and deadlock-free coordinator K is automatically synthesized in order to make the composed system deadlock-free... ...and obeying to a desired behavior
K LCi: last-chance states table of fi + UAi: updating and allowed actions table of fi .aj .aj .aj .aj an entry encodes information about which action can be performed according to the current state of the desired behavior automaton an entry encodes information about which component should wait to perform an action in order not to incur in a deadlock desired behavior automaton distribution last-chance states distribution automatic synthesis of a centralized no-op coordinator f1 f2 desired behavior specification f3 f4 controlled system Our current approach uncontrolled system
Output (e): These models range from the component interaction behavior model to the model of the environment expected by the component in order not to block it. By "unifying" all the different component models, SYNTHESIS automatically derives the LTS K of the centralized no-op coordinator Input (b): the specification of the desired behaviors that the system to be built must exhibit (LTSs) Output (d): By taking into account (a) and (c), SYNTHESIS automatically derives different behavioral models (LTSs) of the components in the system to be assembled. Input (c): for each component, the specification of its interaction protocol with the expected environment (XML files encoding HMSCs and bMSCs specifications) Output (f): All the synthesized models/information is used to automatically generate the code implementing the distributed version of the correct coordinator as a set of component wrappers. Input (a): the interface specification of the components forming the system to be built (“augmented” IDLs) The SYNTHESIS tool
CoordPolicy implements the visual editor of the desired behavior automaton CoordinatorBuilder implements the automatic generator of the no-op/deadlock-free/desired-behavior-satisfying coordinator IDLParser is an abstract superclass that has to be specialized in order to implement a parser of IDL files based on a particular IDL notation (e.g., Microsoft IDL for COM/DCOM, DCE/IDL for CORBA, Java IDL for EJB, etc.) AssumptionBuilder implements the automatic generator of the different component behavioral models CodeGenerator implements the automatic generator of the actual composition code for the components given as input MSC implements the visual editor used to specify/display/ process the interaction behavior of a component with its expected environment Architecture of SYNTHESIS
A quick demo... • Simulation of a distributed cooling water-pipe management system • Eclipse 3.2.1 as development environment • Components forming the simulated system • 2 EJBs as server components • state-less session beans • running on JBOSS 3.1 as application server • 2 J2EE client applications as client components