Presentation on theme: "SYNTHESIS: a tool for automatically assembling correct and distributed component-based systems Massimo Tivoli Computer Science Department University of."— Presentation transcript:
SYNTHESIS: a tool for automatically assembling correct and distributed component-based systems Massimo Tivoli Computer Science Department University of LAquila
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
Our previous approach K is automatically synthesized in order to make the composed system deadlock-free... automatic synthesis of a centralized and deadlock-free coordinator...and obeying to a desired behavior + desired behavior specification uncontrolled system desired behavior enforcing controlled system KK KK its interaction may deadlock or not obey to a desired behavior
Our current approach + desired behavior specification uncontrolled system.aj controlled system f2f2f1f1 f3f3f4f4 desired behavior automaton distribution automatic synthesis of a centralized no-op coordinatorKK last-chance states distribution LC i : last-chance states table of f i an entry encodes information about which component should wait to perform an action in order not to incur in a deadlock an entry encodes information about which action can be performed according to the current state of the desired behavior automaton UA i : updating and allowed actions table of f i
The SYNTHESIS tool Input (a): the interface specification of the components forming the system to be built (augmented IDLs) Input (b): the specification of the desired behaviors that the system to be built must exhibit (LTSs) Input (c): for each component, the specification of its interaction protocol with the expected environment (XML files encoding HMSCs and bMSCs specifications) 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. 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 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.
Architecture of SYNTHESIS 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.) CoordPolicy implements the visual editor of the desired behavior automaton MSC implements the visual editor used to specify/display/ process the interaction behavior of a component with its expected environment AssumptionBuilder implements the automatic generator of the different component behavioral models CoordinatorBuilder implements the automatic generator of the no-op/deadlock- free/desired-behavior- satisfying coordinator CodeGenerator implements the automatic generator of the actual composition code for the components given as inpu t
A quick demo... Simulation of a distributed cooling water-pipe management system Eclipse 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