Most distributed computing environments today are extremely complex and time-consuming for human administrators to manage. Thus, there is increasing demand for the self-healing and self-diagnosing of problems or errors arising in systems operating within today's ubiquitous computing environment. This paper proposes a proactive self-healing system that monitors, diagnoses and heals its own internal problems using self-awareness as contextual information. The proposed system consists of Multi-Agents that analyze the log context, error events and resource status in order to perform self-healing and self-diagnosis. To minimize the resources used by the Adapters, which monitor the logs in an existing system, we place a single process in memory. By this, we mean a single Monitoring Agent monitors the context of the logs generated by the different system components. For rapid and efficient self-healing, we use a 6-step process. The effectiveness of the proposed system is confirmed through practical experiments conducted with a prototype system.
{"title":"Proactive self-healing system based on multi-agent technologies","authors":"Jeongmin Park, Giljong Yoo, Eunseok Lee","doi":"10.1109/SERA.2005.55","DOIUrl":"https://doi.org/10.1109/SERA.2005.55","url":null,"abstract":"Most distributed computing environments today are extremely complex and time-consuming for human administrators to manage. Thus, there is increasing demand for the self-healing and self-diagnosing of problems or errors arising in systems operating within today's ubiquitous computing environment. This paper proposes a proactive self-healing system that monitors, diagnoses and heals its own internal problems using self-awareness as contextual information. The proposed system consists of Multi-Agents that analyze the log context, error events and resource status in order to perform self-healing and self-diagnosis. To minimize the resources used by the Adapters, which monitor the logs in an existing system, we place a single process in memory. By this, we mean a single Monitoring Agent monitors the context of the logs generated by the different system components. For rapid and efficient self-healing, we use a 6-step process. The effectiveness of the proposed system is confirmed through practical experiments conducted with a prototype system.","PeriodicalId":424175,"journal":{"name":"Third ACIS Int'l Conference on Software Engineering Research, Management and Applications (SERA'05)","volume":"43 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-08-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115625133","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Eliciting requirements is an important issue of system development projects. Some approaches propose to identify requirements by analysing system malfunctioning. Different sources of malfunctioning are dealt with by these approaches: obstacles, conflicts, risks, etc. Our proposal is to analyse each of these sources of malfunctioning using a single notion that we call "threat". We propose to use this notion in a method that guides the identification and analysing of each of these sources of malfunctioning. The method helps eliciting requirements to prevent the threat. A threat is defined by a number of variables. This paper presents a literature review of all threats that relate to users. The review is based on a framework that includes several perspectives to analyse user error. The user threats is part of a global threats classification that also covers hardware, environment, design and project types of threats.
{"title":"Eliciting requirements by analysing threats caused by users","authors":"E. Ivankina, C. Salinesi","doi":"10.1109/SERA.2005.38","DOIUrl":"https://doi.org/10.1109/SERA.2005.38","url":null,"abstract":"Eliciting requirements is an important issue of system development projects. Some approaches propose to identify requirements by analysing system malfunctioning. Different sources of malfunctioning are dealt with by these approaches: obstacles, conflicts, risks, etc. Our proposal is to analyse each of these sources of malfunctioning using a single notion that we call \"threat\". We propose to use this notion in a method that guides the identification and analysing of each of these sources of malfunctioning. The method helps eliciting requirements to prevent the threat. A threat is defined by a number of variables. This paper presents a literature review of all threats that relate to users. The review is based on a framework that includes several perspectives to analyse user error. The user threats is part of a global threats classification that also covers hardware, environment, design and project types of threats.","PeriodicalId":424175,"journal":{"name":"Third ACIS Int'l Conference on Software Engineering Research, Management and Applications (SERA'05)","volume":"157 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-08-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124401375","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
This paper shows the effectiveness of using optimized MPI calls for MPI based applications on different architectures. Using optimized MPI calls can result in reasonable performance gain for most of MPI based applications running on most of high-performance distributed systems. Since relative performance of different MPI function calls and system architectures can be uncorrelated, tuning system-dependent MPI applications by exploring the alternatives of using different MPI calls is the simplest but most effective optimization method. The paper first shows that for a particular system, there are noticeable performance differences between using various MPI calls that result in the same communication pattern. These performance differences are in fact not similar across different systems. The paper then shows that good performance optimization for an MPI application on different systems can be obtained by using different MPI calls for different systems. The communication patterns that were experimented in this paper include the point-to-point and collective communications. The MPI based application used for this study is the general-purpose transient dynamic finite element application and the benchmark problems are the public domain 3D car crash problems. The experiment results show that for the same communication purpose, using alternative MPI calls can result in quite different communication performance on the Fujitsu HPC2500 system and the 8-node AMD Athlon cluster, but very much the same performance on the other systems such as the Intel Itanium2 and the AMD Opteron clusters.
{"title":"Tuning system-dependent applications with alternative MPI calls: a case study","authors":"T. Le","doi":"10.1109/SERA.2005.67","DOIUrl":"https://doi.org/10.1109/SERA.2005.67","url":null,"abstract":"This paper shows the effectiveness of using optimized MPI calls for MPI based applications on different architectures. Using optimized MPI calls can result in reasonable performance gain for most of MPI based applications running on most of high-performance distributed systems. Since relative performance of different MPI function calls and system architectures can be uncorrelated, tuning system-dependent MPI applications by exploring the alternatives of using different MPI calls is the simplest but most effective optimization method. The paper first shows that for a particular system, there are noticeable performance differences between using various MPI calls that result in the same communication pattern. These performance differences are in fact not similar across different systems. The paper then shows that good performance optimization for an MPI application on different systems can be obtained by using different MPI calls for different systems. The communication patterns that were experimented in this paper include the point-to-point and collective communications. The MPI based application used for this study is the general-purpose transient dynamic finite element application and the benchmark problems are the public domain 3D car crash problems. The experiment results show that for the same communication purpose, using alternative MPI calls can result in quite different communication performance on the Fujitsu HPC2500 system and the 8-node AMD Athlon cluster, but very much the same performance on the other systems such as the Intel Itanium2 and the AMD Opteron clusters.","PeriodicalId":424175,"journal":{"name":"Third ACIS Int'l Conference on Software Engineering Research, Management and Applications (SERA'05)","volume":"227 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-08-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120960432","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
If we put aside any controversy that could surround the issue of licensing a piece of software, we are faced with actual technical problems to solve in order to regulate the use of protected software in a non-intrusive way. A licensing service allows software producers to control the access and use of their products, and enables the customers to pay only for the software functionalities they use. In this paper we present a CORBA licensing service that is transparent to the end-users and that can easily evolve to adapt to changing licensing policies. Design and implementation issues are discussed. Experimental results are provided.
{"title":"A transparent and evolvable licensing object service","authors":"K. E. Guemhioui, A. Nys","doi":"10.1109/SERA.2005.18","DOIUrl":"https://doi.org/10.1109/SERA.2005.18","url":null,"abstract":"If we put aside any controversy that could surround the issue of licensing a piece of software, we are faced with actual technical problems to solve in order to regulate the use of protected software in a non-intrusive way. A licensing service allows software producers to control the access and use of their products, and enables the customers to pay only for the software functionalities they use. In this paper we present a CORBA licensing service that is transparent to the end-users and that can easily evolve to adapt to changing licensing policies. Design and implementation issues are discussed. Experimental results are provided.","PeriodicalId":424175,"journal":{"name":"Third ACIS Int'l Conference on Software Engineering Research, Management and Applications (SERA'05)","volume":"37 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-08-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127539857","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Requirements specifications often make use of a number of scenarios that are interrelated and that depend on each other in many ways. However, they are often treated separately, one by one. We propose a new type of diagrams, named dependency diagrams, which are able to illustrate the various kinds of relationships existing between scenarios. We make use of a scenario matrix for each scenario and we describe the transformation process of scenarios into state machines, based on the information in the scenario matrices, and that in the dependency diagrams. The result is a number of state machines that can be used for detailed design models and code can further be generated from them. Using our approach, we can bridge the gap between analysis and design and we can bring the developer one step closer to the implementation.
{"title":"Bridging the gap between analysis and design using dependency diagrams","authors":"S. Vasilache, J. Tanaka","doi":"10.1109/SERA.2005.27","DOIUrl":"https://doi.org/10.1109/SERA.2005.27","url":null,"abstract":"Requirements specifications often make use of a number of scenarios that are interrelated and that depend on each other in many ways. However, they are often treated separately, one by one. We propose a new type of diagrams, named dependency diagrams, which are able to illustrate the various kinds of relationships existing between scenarios. We make use of a scenario matrix for each scenario and we describe the transformation process of scenarios into state machines, based on the information in the scenario matrices, and that in the dependency diagrams. The result is a number of state machines that can be used for detailed design models and code can further be generated from them. Using our approach, we can bridge the gap between analysis and design and we can bring the developer one step closer to the implementation.","PeriodicalId":424175,"journal":{"name":"Third ACIS Int'l Conference on Software Engineering Research, Management and Applications (SERA'05)","volume":"39 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-08-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128320144","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The development of a family of applications in a domain can be greatly eased if patterns in the domain are systematically reused. Systematic use of such patterns can be achieved by tools that support the specification of patterns and their instantiation in a specific application context. In this paper, we present a prototype tool called RBML-Pattern Instantiator (RBML-PI) that generates application-specific UML class diagrams and sequence diagrams from a pattern specification described in the Role-Based Metamodeling Language (RBML), a pattern specification language defining a domain-specific sub-language of the UML. We give an overview of the RBML using the Visitor design pattern, and demonstrate the tool using an RBML specification for the CheckIn-CheckOut (CICO) domain pattern that specifies services to check in and check out items. We use the CICO pattern specification to generate an application-specific UML model of a library system using RBML-PI.
{"title":"Generating UML models from domain patterns","authors":"Dae-Kyoo Kim, J. Whittle","doi":"10.1109/SERA.2005.44","DOIUrl":"https://doi.org/10.1109/SERA.2005.44","url":null,"abstract":"The development of a family of applications in a domain can be greatly eased if patterns in the domain are systematically reused. Systematic use of such patterns can be achieved by tools that support the specification of patterns and their instantiation in a specific application context. In this paper, we present a prototype tool called RBML-Pattern Instantiator (RBML-PI) that generates application-specific UML class diagrams and sequence diagrams from a pattern specification described in the Role-Based Metamodeling Language (RBML), a pattern specification language defining a domain-specific sub-language of the UML. We give an overview of the RBML using the Visitor design pattern, and demonstrate the tool using an RBML specification for the CheckIn-CheckOut (CICO) domain pattern that specifies services to check in and check out items. We use the CICO pattern specification to generate an application-specific UML model of a library system using RBML-PI.","PeriodicalId":424175,"journal":{"name":"Third ACIS Int'l Conference on Software Engineering Research, Management and Applications (SERA'05)","volume":"48 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-08-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124138615","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
In this paper, we focus on a Bluetooth piconet, analyzing its ability to support the quality of service (QoS) requirements defined by QoS sensitive applications. We consider two QoS parameters: (i) an application constraint denoting the importance degree of a message, and (ii) an end-to-end delivery deadline. The QoS perceived by the application depends on the scheduling algorithms chosen at the medium access layer. We determine the average response time of a message obtained with three different scheduling algorithms. This evaluation takes into account message segmentation in the Bluetooth MAC layer. The first scheduling is the Bluetooth native scheduling called One-Round Robin (1-RR). The second is a variant of 1-RR where the local scheduling is based on the two QoS parameters considered. The last one, called Class-Based Earliest Deadline First (CB-EDF), takes into account the two QoS parameters both at the local level and at the global level.
在本文中,我们关注蓝牙微网,分析其支持QoS敏感应用定义的服务质量(QoS)需求的能力。我们考虑两个QoS参数:(i)表示消息重要性的应用程序约束,以及(ii)端到端交付截止日期。应用程序感知的QoS取决于在介质访问层选择的调度算法。我们确定了使用三种不同调度算法获得的消息的平均响应时间。这种评估考虑了蓝牙MAC层中的消息分段。第一种调度是蓝牙本地调度,称为One-Round Robin (1-RR)。第二种是1-RR的变体,其中本地调度基于所考虑的两个QoS参数。最后一种称为基于类的最早截止日期优先(CB-EDF),它同时考虑了本地级和全局级的两个QoS参数。
{"title":"Average response times in a Bluetooth piconet for 1-RR/FIFO, enhanced 1-RR and CB-EDF","authors":"Antoine Mercier, P. Minet, L. George","doi":"10.1109/SERA.2005.25","DOIUrl":"https://doi.org/10.1109/SERA.2005.25","url":null,"abstract":"In this paper, we focus on a Bluetooth piconet, analyzing its ability to support the quality of service (QoS) requirements defined by QoS sensitive applications. We consider two QoS parameters: (i) an application constraint denoting the importance degree of a message, and (ii) an end-to-end delivery deadline. The QoS perceived by the application depends on the scheduling algorithms chosen at the medium access layer. We determine the average response time of a message obtained with three different scheduling algorithms. This evaluation takes into account message segmentation in the Bluetooth MAC layer. The first scheduling is the Bluetooth native scheduling called One-Round Robin (1-RR). The second is a variant of 1-RR where the local scheduling is based on the two QoS parameters considered. The last one, called Class-Based Earliest Deadline First (CB-EDF), takes into account the two QoS parameters both at the local level and at the global level.","PeriodicalId":424175,"journal":{"name":"Third ACIS Int'l Conference on Software Engineering Research, Management and Applications (SERA'05)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-08-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130918532","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Aspect-oriented software development is an emerging software engineering paradigm. It provides new constructs and tools to improve separation of crosscutting concerns into single units called aspects. The aspect paradigm introduces, in fact, new abstractions in software development. AspectJ is an aspect-oriented extension for Java. Actually, existing object-oriented programming languages suffer from a serious limitation in modularizing adequately crosscutting concerns. Many concerns crosscut several classes in an object-oriented system. However, the aspect paradigm introduces new dimensions in terms of control and complexity. New dependencies between aspects and classes result in new testing challenges. In fact, aspects can interact with any class in a program. Interactions between aspects and classes are new sources for program faults. Object-oriented testing techniques do not cover the new dimensions introduced by aspects. Thus, new aspect-oriented testing techniques must be developed. We propose, in this paper, a new technique to generate test sequences based on the dynamic interactions between aspects and classes. We focus, in particular, on the integration of one or more aspects in a collaboration between a group of objects. The paper also introduces associated testing criteria. The proposed approach follows an iterative process.
{"title":"Generating aspects-classes integration testing sequences a collaboration diagram based strategy","authors":"P. Massicotte, M. Badri, L. Badri","doi":"10.1109/SERA.2005.43","DOIUrl":"https://doi.org/10.1109/SERA.2005.43","url":null,"abstract":"Aspect-oriented software development is an emerging software engineering paradigm. It provides new constructs and tools to improve separation of crosscutting concerns into single units called aspects. The aspect paradigm introduces, in fact, new abstractions in software development. AspectJ is an aspect-oriented extension for Java. Actually, existing object-oriented programming languages suffer from a serious limitation in modularizing adequately crosscutting concerns. Many concerns crosscut several classes in an object-oriented system. However, the aspect paradigm introduces new dimensions in terms of control and complexity. New dependencies between aspects and classes result in new testing challenges. In fact, aspects can interact with any class in a program. Interactions between aspects and classes are new sources for program faults. Object-oriented testing techniques do not cover the new dimensions introduced by aspects. Thus, new aspect-oriented testing techniques must be developed. We propose, in this paper, a new technique to generate test sequences based on the dynamic interactions between aspects and classes. We focus, in particular, on the integration of one or more aspects in a collaboration between a group of objects. The paper also introduces associated testing criteria. The proposed approach follows an iterative process.","PeriodicalId":424175,"journal":{"name":"Third ACIS Int'l Conference on Software Engineering Research, Management and Applications (SERA'05)","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-08-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133577905","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
We present an approach for reverse engineering a program to capture design and implementation artifacts such as metrics and UML class or sequence diagrams. We also describe an implementation of our approach, libthorin. However, unlike previous reverse engineering tools, libthorin can be applied to a variety of programming languages including C, C++, Java, Fortran 90 and C#. Moreover, libthorin can provide both coarse-grained and fine-grained information about the program under development to enable re-engineering of information and high-level diagrams such as metrics and class diagrams, or low-level diagrams such as sequence diagrams, control flow graphs and other program representations and analysis tools for testing, debugging and profiling an application under development.
{"title":"A language and platform-independent approach for reverse engineering","authors":"Edward B. Duffy, B. Malloy","doi":"10.1109/SERA.2005.9","DOIUrl":"https://doi.org/10.1109/SERA.2005.9","url":null,"abstract":"We present an approach for reverse engineering a program to capture design and implementation artifacts such as metrics and UML class or sequence diagrams. We also describe an implementation of our approach, libthorin. However, unlike previous reverse engineering tools, libthorin can be applied to a variety of programming languages including C, C++, Java, Fortran 90 and C#. Moreover, libthorin can provide both coarse-grained and fine-grained information about the program under development to enable re-engineering of information and high-level diagrams such as metrics and class diagrams, or low-level diagrams such as sequence diagrams, control flow graphs and other program representations and analysis tools for testing, debugging and profiling an application under development.","PeriodicalId":424175,"journal":{"name":"Third ACIS Int'l Conference on Software Engineering Research, Management and Applications (SERA'05)","volume":"88 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-08-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122099902","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Sana Ben Abdallah Ben Lamine, L. L. Jilani, H. Ghézala
The product line engineering approaches (PLE) to software development are promising in matter of quality, productivity and time-to-market. Some results achieved in industry can prove that. But managers need quantitative models reassuring them concerning the important initial investment they are going to commit. This paper reports on the need for such economic models for reuse as well as the underlying supported tools. Thus, we introduce a new software cost estimation model for product line engineering that we denote as SoCoEMo-PLE. This model is based on two previous models: the integrated cost estimation model for reuse in general and Poulin's model for PLE. In fact, we present a new model, which takes into account PLE software development cycle approach and takes some features of the two previous cost estimation models. The tool supporting SoCoEMo-PLE is described and an UML modeling is presented. Results of a preliminary experiment in the use of the model and the tool are reported.
{"title":"A software cost estimation model for a product line engineering approach: supporting tool and UML modeling","authors":"Sana Ben Abdallah Ben Lamine, L. L. Jilani, H. Ghézala","doi":"10.1109/SERA.2005.16","DOIUrl":"https://doi.org/10.1109/SERA.2005.16","url":null,"abstract":"The product line engineering approaches (PLE) to software development are promising in matter of quality, productivity and time-to-market. Some results achieved in industry can prove that. But managers need quantitative models reassuring them concerning the important initial investment they are going to commit. This paper reports on the need for such economic models for reuse as well as the underlying supported tools. Thus, we introduce a new software cost estimation model for product line engineering that we denote as SoCoEMo-PLE. This model is based on two previous models: the integrated cost estimation model for reuse in general and Poulin's model for PLE. In fact, we present a new model, which takes into account PLE software development cycle approach and takes some features of the two previous cost estimation models. The tool supporting SoCoEMo-PLE is described and an UML modeling is presented. Results of a preliminary experiment in the use of the model and the tool are reported.","PeriodicalId":424175,"journal":{"name":"Third ACIS Int'l Conference on Software Engineering Research, Management and Applications (SERA'05)","volume":" 102","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-08-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120827698","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}