Title: JCMP: Linking Architecture with Component Building
1JCMP Linking Architecture with Component Building
SACT-01, Pusan, Nov. 30th, 2004 A previous
version has been presented at poster session of
ACM SIGSOFT 04 FSE-12 conference.
- Guoqing Xu, Zongyuan Yang and Haitao Huang
- Software Engineering Lab,
- East China Normal University
2Outline
SEL, East China Normal University
- Introduction and Motivation
- Our Techniques
- --- Triple-C Model
- --- JCMPL language
- ---JCMP toolset
- Analysis
Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004
3Problems and Motivation
SEL, East China Normal University
- Two basic characteristic of components defined in
the architecture - --- Conform to the architecture
- Follow the three criteria identified in
LV95 - --- Support a great deal of flexibility
- A protocol or style is needed to support
the independent building for the composite
adaptation. - These two issues are far from orthogonal although
their concern is different.
Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004
4Enforce the architectural conformance (current
research)
SEL, East China Normal University
- Three criteria identified in LV95
- ---Decomposition easy
- ---Interface conformance easy
- ---Communication Integrity hard
Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004
5Enforce Communication Integrity (current research)
SEL, East China Normal University
- Ask implementers to follow style guidelines
(Rapide with C2 style Luc96) - --- not enforced automatically
- Unify implementation and architecture in one
language. (ArchJava ACN02) - --- doesnt support architecture design.
- Both dont consider composite adaptation issues.
- --- there exists the direct client-server
relationship between components. -
Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004
6Composite Adaptation (Current Research)
SEL, East China Normal University
- Use Module Interconnection Languages (MILs) to
describe use relationship. - --- Jiazzi or Knit
- Use on-demand remodularization.
- --- pluggable composite adapterMSL01
- They dont describe data and control flow between
components and therefore cannot enforce
communication Integrity.
Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004
7Problem conclusions
SEL, East China Normal University
- Current solutions to either of two issues dont
deal with another. - How to support composite adaptation in the
context of architectural constraints?
Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004
8Outline
SEL, East China Normal University
- Introduction and Motivation
- Our Approach
- --- Triple-C Model
- --- JCMPL language
- --- JCMP toolset
- Case study and Analysis
Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004
9Triple-C Model
SEL, East China Normal University
- Component-Communicate-through-Connector.
- It extends the three criteria in LV95 in two
aspects - --- A concrete connector in the implementation
for each abstract connector in the architecture. - --- Concrete connectors are used as wrappers
to transfer the service flow between the
components.
Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004
10Model Overview
SEL, East China Normal University
- Currently the connector
- Specify the communication permission in the arch.
- Used as wrapper or glue code to transfer the
methods invocation.
Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004
11Basic ideas of our approach
SEL, East China Normal University
- Linking architecture with component building
(composite adaptation). - The key technique is to automatically generate
the connector impl. from connector spec in the
arch. - We made a JCMP system
- --- an ADL JCMPL
- --- a toolset JCMP
- JCMP/Compiler JCMP/Match
- JCMP/Checker JCMP/Kernel
Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004
12JCMPL Language
SEL, East China Normal University
- It uses the Java like grammar at an abstract
level. - It is not only an ADL, but also an IDL.
- It describes only abstractions, without any
detailed type operations. - Translated by JCMP/Compiler to the implementation
skeleton.
Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004
13JCMPL Language (Cond.)
SEL, East China Normal University
//Parser.jcmpl public PrimComponent Parser
public port in RequireInterface r Token
nextToken()throws ScanExceptions
Public PrimComponent Scanner public port
out ProvideInterface req Token
next()
A Compiler Model
public AdvancedComponent Compiler public port
in RequireInterface get ... InputStream
getInputStream() public port out
ProvideInterface err Integer
getErrCode()... Scanner scanner
new Scanner() Parser parser new Parser()
connect sanner.out, parser.in
Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004
14Generated Style
SEL, East China Normal University
- A concrete connector is generated.
- The component only requests the services from the
connector and publishes their provided services. - The connector performs the dynamic matching and
transfer the invocation.
Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004
15Dynamic interface matching
SEL, East China Normal University
- Searching for a pair of require-provide methods
which match each other in semantic from two
connected ports. - Based on JML Spec. of each method.
- The matching strategy
- match_jcmp/match (P , R) (Rpre gt Ppre)
( (Ppre Ppost) gtRpost ) - Run P and R with test cases to watch whether
their behaviors are observably equal.
Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004
16Checking conformance in impl.
SEL, East China Normal University
- JCMP/Checker instruments methods with arguments
of primitive types. - It uses both architecture and implementations as
input to check whether they conform to each
other. - If the impl. does not conform to the arch.,
JCMP/Checker reports errors otherwise, it
compiles the impl. Into the bytecode files
(.class).
Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004
17Why it worksenforce communication integrity in
impl.
SEL, East China Normal University
- All interface methods are generated as private.
This enforces that all interface methods cannot
be directly called. - 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 methods comm. In impl. is
therefore enforced to conform to its spec.
Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004
18Why it workssupport composite adaptation
SEL, East China Normal University
- Concrete connector serves as glue codes.
- When a component is being built, if it requires a
service, only requesting this from the conn. - Conn. uses JCMP/Match to find the suitable
method, calls the method, and finally returns the
value back when the system is integrated.
Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004
19Outline
SEL, East China Normal University
- Introduction and Motivation
- Our Techniques
- --- Triple-C Model
- --- JCMPL language
- ---JCMP toolset
- Analysis
Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004
20Performance Issues
SEL, East China Normal University
- The cost in running JCMP system has two
components - --- the runtime cost of type reflection.
- --- the extra cost of invocation transfer
through the connector.
Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004
21Experiment
SEL, East China Normal University
- Construct a linked list with a given array of
integers. - construct (int nodes)
- Retrieve a node from the given node ID after the
list is constructed. - retrieve (Integer index)
Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004
22Comparisons
SEL, East China Normal University
Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004
23Analysis Summary
SEL, East China Normal University
- We found out that encapsulating the parameters of
primitive types into objects took tremendous
amount of time. - The cost of method invocation through connector
was not obvious. - Since JCMP uses reflection, we suggest objects be
used as data to be transferred, rather than
primitive values.
Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004
24Future Work
- JCMPL is only used at the design level, without
supporting the dynamic description of runtime
architecture. - Architectural styles should be considered.
- The performance should be optimized in the way of
having some other techniques to replace the Java
reflection.
25Conclusions
- To link architecture with component building, we
made - Triple-C model
- JCMP toolset
- --- an ADL JCMPL
- --- JCMP system
26Thank you