SMMA is essentially a model-driven system engineering approach, but it is different from traditional modeldriven approach. Currently, model-driven development (MDD) often emphasizes on OO modeling and analysis using UML. For example, UML 2.0 has 13 models, and an engineer may select fewmodels from these 13 models for modeling, analysis, and code generation. One example is Executable UML approaches where they often pick three or four UML models so that code can be automatically generated. Each UML model is unique and often it is difﬁcult to transform from one model into another. In dynamic SOA, changes are frequent and extensive, and it is desirable that once the model is updated,the model can be automatically re-analyzed and re-simulated, and code can be re-generated and re-deployed, and the execution can be re-monitored. Furthermore, re-analysis, re-simulation, re-generation, re-deployment, and re-monitoring need to be performed
rapidly to meet the changing environment. The SMMA approach supports this approach as it deals mainly with one integrated core model, andonce the core model is updated, the rest can be automatically carried out. One example of such modeling language is PSML, which includes a process language for services PSMLS , and an extended collaboration description language PSML-C . Furthermore, PSML can generate various other models for analyses such as completeness and consistency checking, and execution thread generation. The PSMLontology is integrated with the process model and with various analysis tools. Any change in one sub-model such as the process model will not cause other sub-models to be updated. Based on PSML model, a variety of operations and analyses (listed in Table 7) can be automated performed to address the SOSE techniques listed in Table 1.
SOCA (2007) 1:3–17
Code GenerationPath Analysis
Security Analysis Dynamic Collaboration Policy Specification Policy Enforecement Static Simulation Dynamic Simulation
Usage Analysis Concurrent Analysis Dynamic Composition
Core Model Constraint Model
Dynamic Reconfiguration Reachability Analysis Security Analysis Reliability AnalysisSafety Analysis
Test Case Generation
Fig. 3 SMMA models and analyses
3 Service-oriented reliability evaluation Reliability evaluation is one of the most important SOSE techniques. Traditional reliability evaluation follows model development, model validation, and model application. The primary task is to identify or developa model that will ﬁt the application data collected (proﬁle). This approach has been used since 1970s. For componentbased software, component-based reliability models are proposed to compute the system reliability based on the reliabilities of the components and the structure of the system [11, 20]. The reliability evaluation for SOC software is different, and has the following characteristics: •Dynamic model construction after a new service is composed or a re-composition that changes the structure of an existing composite service. The objective is not to reconstruct the entire model so that the failure history can be reused in the restructured model. Determine the optimal window size of history, i.e., how far the historic failure data should be used. Dynamic reliability computationbased on the incremental update of failure data, reliability, structure.
is a new approach of reliability evaluation because its focus is no longer on the reliability model. Instead, it focuses on the entire process from runtime data collection to reliability evaluation:
Figure 4 outlines the new Data-driven Reliability Evaluation Process (DREP) and its evaluation process. This