10 likes | 95 Views
JCMP: Linking Architecture with Component Building Guoqing Xu gqxu_02@cs.ecnu.edu.cn Advisor: Zongyuan Yang Dept. of Computer Science, East China Normal University. Problems and Motivation. Techniques Overview. Two basic characteristics of Components defined in the architecture :.
E N D
JCMP: Linking Architecture with Component BuildingGuoqing Xu gqxu_02@cs.ecnu.edu.cnAdvisor: Zongyuan YangDept. of Computer Science, East China Normal University Problems and Motivation Techniques Overview Two basic characteristics of Components defined in the architecture : • Triple-C Model • Component-Communicate-through-Connectors • A concrete connector in the impl. for each abst. connector in the arch. • Use concrete connectors as wrapper to transfer the method invocation between components. (use Java reflection) • Conform to Architecture • Three criteria identified in [LV95] • Decomposition easy • Interface conformance easy • Communication Integrity hard • Support a great deal of flexibility • Built independently • Late third party integration • Need a protocol or a certain style between client and server. Current Solutions • Use techniques such as • MILs (Jiazzi or Knit) -- composition from modules • On-demand remodularization -- pluggable composite adapter [MSL01] • ADLs or Systems that • Follow style guidelines (Rapide..) -- not enforced automatically • Unify impl. and arch. in one lang. -- ArchJava [ACN02] • Model Overview Don’t consider architectural constraints Don’t support late composition ADL: JCMPL JCMP/Compiler • Features • Java like grammar • ADL/IDL • Describe only abstraction • A compiler model • Features • Parse JCMPL abstractions • Automatically generate component impl. including connector impl. from abst. • The compiler model compiled by JCMP/Compiler • Key Technique • Automatically generate the connector impl. from connector spec. in the arch. • JCMP System: Linking architecture with component building for Java • An ADL: JCMPL • A toolset: JCMP • --JCMP/Compiler --JCMP/Match • --JCMP/Checker --JCMP/Kernel JCMP/Match • Searching for a pair of “require-provide” methods which match each other in semantics from two connected ports. • Based on JML spec. of each method. • The matching strategy matchjcmp/match (P , R) = (Rpre => Ppre) ^ ( (Ppre^ Ppost) =>Rpost ) • Run P and R with test cases to watch whether their behaviors are observably equal. JCMP/Checker Why it works • Features • Instrument methods with arguments of primitive types. (Encapsulate these arguments in the objects at the entry and release them at the exit) • Use both architecture and implementation as input • check the conformance and output the class files. • Enforce Communication Integrity • All interface methods are generated as protected. This enforces that all interface methods cannot be directly called by other components. • The only way to call an interface method is through connector, which uses reflection to suppress access checking. • The connector is generated automatically from connector spec., and therefore, methods comm. in impl. Is enforced to conform to what is specified in the arch. Java Impl. JCMPL abstraction • Support Component pre-built for late integration • Concrete connector serves as glue codes. • Components can be built without knowing other components’ interfaces. • If it requires a service, only request this from the conn. • Conn. uses JCMP/Match to find the suitable method, calls the method, and finally returns the value back. JCMP/Checker Static checking / Compiling Not conformed Error Report .class file conformed