260 likes | 404 Views
Generating Adapters for Reflecting System States as MOF-Compliant Models. Hui Song songhui06@sei.pku.edu.cn. Model-based runtime system management. Runtime system management Environments and requirements keep changing Calls for efficient way to monitor and control Model-driven engineering
E N D
Generating Adapters for Reflecting System States as MOF-Compliant Models Hui Song songhui06@sei.pku.edu.cn
Model-based runtime system management • Runtime system management • Environments and requirements keep changing • Calls for efficient way to monitor and control • Model-driven engineering • Model-based runtime management • Regard the system states as models • Apply the existing model-driven approach and techs • Integrate with the whole development process • Richer semantic base • Hot for a long time • Architecture-based management • Models at runtime (a series of workshop)
A big barrier to model-based management Model-driven apps and techs • A gap between model-based approach and state processing • Model vs. Raw state • Go deeper? • Standard MOF reflection interface vs. ad hoc management API • Adapters • MoDisco project • ICSE 08 • … • Manual Adapter Mgmt API State
SM@RT Approach • Automatically generating adapters • Wrapping the ad hoc management APIs into standard MOF reflection interface • Enabling existing tools (like OCL engine) to deal with runtime states in the same way as processing standard MOF-compliant models • “Supporting Models at Run-Time”
Contribution • SM@RT Language • Supporting specifying the type of system state as a MOF compliant meta-model • Supporting specifying the code-level invocation method as a high-level “access model” • SM@RT generator • Automatically generate the adapters
A running example context Server define: self.jdbcDataSource ->sum(e|e.currentOpened); OCL engine Adapter JEE Server, EJBs, Data Sources, current_opened_connection…
Structure of the paper • Specifying system states and management API • Generating adapters • Experiment • SM@RT in practice • Related work
SM@RT Language • Extended from MOF Model • MOF Model: The M3 layer modeling language, also known as meta-meta-model • State type -> state meta-model • Invocation method -> access model • Relation between the above two? • The syntax rule and semantic action in Yacc JEE Server, EJBs, Data Sources, current_opened_connection…
Specifying state type • Directly using MOF Model
Specifying invocation method • Extend MOF Model • Decorate the meta-model with pieces of code for invoking the management API
Properties of SM@RT language • MOF compliant • Code based • Accurate and direct • Close to API study (from sample code) • Directly generate code • Syntax centric (syntax directive) • Well structured • Supporting code reuse • Code composition • Flexible scope Similar organization as an API document or tutorial!
SM@RT generator • Generating adapters from the specification • Enabling programs to manipulate system states in the same way as processing a standard model • Working principle in abstract: • Maintain an image for each managed element • Images conform to MOF reflection interface • Adapters forward the standard invocation on such images into the proper invocation on management API
Technical discussion • Basic principle: • an adapter maintains a unique image for each of the managed element • What “maintaining” means: • The model grows from zero • System state may change itself • External tools may change the images • Synchronization! • Discussion about synchronization (skip here) • Attribute • Association • Aggregation
Implementation of the generator • Two parts • Runtime library • Common classes • 3000 LOC Java • Generation engine • Upon Eclipse EMF code generator • 1700 LOC JET code • 1000 LOC Java code for utility • Generated adapters • Eclipse plug-ins
Experiment • Discussion: • Reduce developers’ workload (besides the benefit of declarative development) • Mature API needs less manual work • Currently the generated code is a little verbose, but it is able to be improved
Related work • Model-based runtime management • Runtime architecture • Models at runtime • France’s survey on MDE • Manually constructed adapters • Sicard-ICSE-08: states->Fractal models • MoDisco project: states->MOF compliant models • Automatic generation of • Data processing tools • Framework completion applications • Code generation for runtime management