Lei Zhang, Yanchun Sun, Hui Song, Weihu Wang, Gang Huang
With the increasing complexity of enterprise applications, it becomes very challenging to create software systems which can exhibit a satisfactory performance behavior. In current system development practice, it often inevitably exists some "anti-patterns", which usually impede the performance or maintainability of software systems. Manually investigating anti-patterns in systems is a time-consuming and labor intensive task. To deal with this problem, we propose a general anti-pattern detection approach for Java EE application. Firstly, we propose a Java EE meta-model, based on which, we use QVT language to specify the detection process of anti-patterns. Secondly, we implement our approach on a runtime architecture-based reflective framework. When a Java EE application runs on one of the supported application servers, we can execute QVT script to detect whether or not there exists a specific anti-pattern in current system and get the report of potential problem components. At last, we perform a case study based on 35 well-known anti-patterns to evaluate the effectiveness and applicability of our approach.
{"title":"Detecting anti-patterns in Java EE runtime system model","authors":"Lei Zhang, Yanchun Sun, Hui Song, Weihu Wang, Gang Huang","doi":"10.1145/2430475.2430496","DOIUrl":"https://doi.org/10.1145/2430475.2430496","url":null,"abstract":"With the increasing complexity of enterprise applications, it becomes very challenging to create software systems which can exhibit a satisfactory performance behavior. In current system development practice, it often inevitably exists some \"anti-patterns\", which usually impede the performance or maintainability of software systems. Manually investigating anti-patterns in systems is a time-consuming and labor intensive task. To deal with this problem, we propose a general anti-pattern detection approach for Java EE application. Firstly, we propose a Java EE meta-model, based on which, we use QVT language to specify the detection process of anti-patterns. Secondly, we implement our approach on a runtime architecture-based reflective framework. When a Java EE application runs on one of the supported application servers, we can execute QVT script to detect whether or not there exists a specific anti-pattern in current system and get the report of potential problem components. At last, we perform a case study based on 35 well-known anti-patterns to evaluate the effectiveness and applicability of our approach.","PeriodicalId":20631,"journal":{"name":"Proceedings of the 8th Asia-Pacific Symposium on Internetware","volume":"14 1","pages":"21:1-21:8"},"PeriodicalIF":0.0,"publicationDate":"2012-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"82947073","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 optimization of software testing is one of the essential problems. In this paper, a stochastic Markov Decision Process (MDP) model of software testing is proposed, and the process of software testing is described as a reinforcement learning problem. A learning strategy based on the policy iteration of dynamic programming is presented to obtain the optimal testing profile. The case study indicates that, compared with random testing strategy, our learning strategy can significantly reduce the testing cost to detect and remove a certain number of software defects.
{"title":"A learning strategy for software testing optimization based on dynamic programming","authors":"Xiaofang Zhang, Meng-Ye Lin, Deping Zhang","doi":"10.1145/2430475.2430483","DOIUrl":"https://doi.org/10.1145/2430475.2430483","url":null,"abstract":"The optimization of software testing is one of the essential problems. In this paper, a stochastic Markov Decision Process (MDP) model of software testing is proposed, and the process of software testing is described as a reinforcement learning problem. A learning strategy based on the policy iteration of dynamic programming is presented to obtain the optimal testing profile. The case study indicates that, compared with random testing strategy, our learning strategy can significantly reduce the testing cost to detect and remove a certain number of software defects.","PeriodicalId":20631,"journal":{"name":"Proceedings of the 8th Asia-Pacific Symposium on Internetware","volume":"17 1","pages":"8:1-8:6"},"PeriodicalIF":0.0,"publicationDate":"2012-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"78470505","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}
Cloud computing is a newly emerging reliable and scalable paradigm in which customers pay for cloud resources they use on demand. However, current auto-scaling mechanisms in cloud lack the critical self-adaption policy which helps application providers decide on when and how to reallocate resources. Furthermore, virtualization techniques can not ensure an absolute isolation between multiple virtual machines sharing the same physical resource, which leads to some customers paying unfairly for heavy-loaded resource under a widely-adopted fixed pricing scheme. In this paper, we present a global performance-to-price model based on game theory, in which each application is considered as a selfish player attempting to guarantee QoS requirements and simultaneously minimize the resource cost. Then we apply the idea of Nash equilibrium to obtain the appropriate allocation, and an approximated solution is proposed to obtain the Nash equilibrium, ensuring that each player is charged fairly for their desired performance. First, each player maximizes its utility independently without considering the placement of virtual machines. Then based on the initial allocation, each player reaches its optimal placement solely without considering others' interference. Finally we propose an evolutionary algorithm which step by step updates the global resource allocation based on the initial optimal allocation and placement.
{"title":"A game theoretical method for auto-scaling of multi-tiers web applications in cloud","authors":"Ruiqing Chi, Zhuzhong Qian, Sanglu Lu","doi":"10.1145/2430475.2430478","DOIUrl":"https://doi.org/10.1145/2430475.2430478","url":null,"abstract":"Cloud computing is a newly emerging reliable and scalable paradigm in which customers pay for cloud resources they use on demand. However, current auto-scaling mechanisms in cloud lack the critical self-adaption policy which helps application providers decide on when and how to reallocate resources. Furthermore, virtualization techniques can not ensure an absolute isolation between multiple virtual machines sharing the same physical resource, which leads to some customers paying unfairly for heavy-loaded resource under a widely-adopted fixed pricing scheme.\u0000 In this paper, we present a global performance-to-price model based on game theory, in which each application is considered as a selfish player attempting to guarantee QoS requirements and simultaneously minimize the resource cost. Then we apply the idea of Nash equilibrium to obtain the appropriate allocation, and an approximated solution is proposed to obtain the Nash equilibrium, ensuring that each player is charged fairly for their desired performance. First, each player maximizes its utility independently without considering the placement of virtual machines. Then based on the initial allocation, each player reaches its optimal placement solely without considering others' interference. Finally we propose an evolutionary algorithm which step by step updates the global resource allocation based on the initial optimal allocation and placement.","PeriodicalId":20631,"journal":{"name":"Proceedings of the 8th Asia-Pacific Symposium on Internetware","volume":"83 1","pages":"3:1-3:10"},"PeriodicalIF":0.0,"publicationDate":"2012-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"85830956","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}
Qiliang Yang, Jian Lü, Juelong Li, Xiaoxing Ma, Wei Song, Yang Zou
Self-adaptive software is expected to adjust itself attributes or structures at runtime in response to changes. Aiming at addressing some challenging problems such as difficult mathematically modeling software using the current control theoretical methods, we propose a novel fuzzy-control-based approach to achieve self-adaptive software, which is presented as framework of fuzzy self-adaptive software (FFSAS). In this framework, the general model, the implementation architecture, and the design methodology are put forward and discussed in detail. The fuzzy-control-based approach is evaluated with a news-website case study.
{"title":"Toward a fuzzy control-based approach to design of self-adaptive software","authors":"Qiliang Yang, Jian Lü, Juelong Li, Xiaoxing Ma, Wei Song, Yang Zou","doi":"10.1145/2020723.2020738","DOIUrl":"https://doi.org/10.1145/2020723.2020738","url":null,"abstract":"Self-adaptive software is expected to adjust itself attributes or structures at runtime in response to changes. Aiming at addressing some challenging problems such as difficult mathematically modeling software using the current control theoretical methods, we propose a novel fuzzy-control-based approach to achieve self-adaptive software, which is presented as framework of fuzzy self-adaptive software (FFSAS). In this framework, the general model, the implementation architecture, and the design methodology are put forward and discussed in detail. The fuzzy-control-based approach is evaluated with a news-website case study.","PeriodicalId":20631,"journal":{"name":"Proceedings of the 8th Asia-Pacific Symposium on Internetware","volume":"114 1","pages":"15"},"PeriodicalIF":0.0,"publicationDate":"2010-11-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"79450293","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 open, dynamic and ever-changing characteristics of Internet have attracted much attention to carry out research on Internetware. Current researches mainly focus on the framework of the Internetware. However, there are a variety of issues facing the Internetware development today with more joint work distributed over the world, and how should we improve the efficiency of such development? In order to resolve this issue we investigate three open source projects from J2EE platform domain: JBossAS, JOnAS, and Apache Geronimo to find out that, in the sampled projects, how many people will involve the Internetware development, how they allocate the work, and how the speed to resolve the issues reported by the customer. By answering five research questions referred from the Apache study, we proposed four hypotheses: (1) Open source Interware development will have a core of developers who will create approximately 80% or more of the new functionality. The group will be no larger than 30 people; (2) In a specific server-side domain, the group who will repair defects and report issues will have the equal or even smaller number people compared to the core group; (3) Commercial support can attract more volunteers to the open source Internetware projects; (4) Open Source Internetware developments exhibit very rapid responses to customer issues.
{"title":"A case study of internetware development","authors":"Xiujuan Ma, Minghui Zhou, Hong Mei","doi":"10.1145/2020723.2020732","DOIUrl":"https://doi.org/10.1145/2020723.2020732","url":null,"abstract":"The open, dynamic and ever-changing characteristics of Internet have attracted much attention to carry out research on Internetware. Current researches mainly focus on the framework of the Internetware. However, there are a variety of issues facing the Internetware development today with more joint work distributed over the world, and how should we improve the efficiency of such development? In order to resolve this issue we investigate three open source projects from J2EE platform domain: JBossAS, JOnAS, and Apache Geronimo to find out that, in the sampled projects, how many people will involve the Internetware development, how they allocate the work, and how the speed to resolve the issues reported by the customer. By answering five research questions referred from the Apache study, we proposed four hypotheses: (1) Open source Interware development will have a core of developers who will create approximately 80% or more of the new functionality. The group will be no larger than 30 people; (2) In a specific server-side domain, the group who will repair defects and report issues will have the equal or even smaller number people compared to the core group; (3) Commercial support can attract more volunteers to the open source Internetware projects; (4) Open Source Internetware developments exhibit very rapid responses to customer issues.","PeriodicalId":20631,"journal":{"name":"Proceedings of the 8th Asia-Pacific Symposium on Internetware","volume":"2 1","pages":"9"},"PeriodicalIF":0.0,"publicationDate":"2010-11-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"82562171","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}
Internetware is a paradigm of open, decentralized and continually evolvable software systems running on the Internet. In the development of Internetware, the enormous amount of its stakeholders brings challenges to the gathering of common and essential requirements among these stakeholders and continual evolution of the requirements. In this paper, we present a web-based collaborative feature modeling system (CoFM) developed as a platform for gathering, organizing, evaluating, and negotiating Internetware requirements. The basic idea is to express and organize requirements in terms of user-perceivable features of desired Internetware application, and to allow stakeholders to propose, evaluate and negotiate these features collaboratively, in a shared feature model of the application. During the collaboration, the application provider can discover the common and important features that need to be implemented at present, and the special but valuable features that might be provided in the future. Moreover, the provider can track the up-to-moment evolution of the features, which enables the provider to quickly respond to the changes in the Internetware requirements.
{"title":"CoFM: a web-based collaborative feature modeling system for internetware requirements' gathering and continual evolution","authors":"Li Yi, Wei Zhang, Haiyan Zhao, Zhi Jin, Hong Mei","doi":"10.1145/2020723.2020746","DOIUrl":"https://doi.org/10.1145/2020723.2020746","url":null,"abstract":"Internetware is a paradigm of open, decentralized and continually evolvable software systems running on the Internet. In the development of Internetware, the enormous amount of its stakeholders brings challenges to the gathering of common and essential requirements among these stakeholders and continual evolution of the requirements. In this paper, we present a web-based collaborative feature modeling system (CoFM) developed as a platform for gathering, organizing, evaluating, and negotiating Internetware requirements. The basic idea is to express and organize requirements in terms of user-perceivable features of desired Internetware application, and to allow stakeholders to propose, evaluate and negotiate these features collaboratively, in a shared feature model of the application. During the collaboration, the application provider can discover the common and important features that need to be implemented at present, and the special but valuable features that might be provided in the future. Moreover, the provider can track the up-to-moment evolution of the features, which enables the provider to quickly respond to the changes in the Internetware requirements.","PeriodicalId":20631,"journal":{"name":"Proceedings of the 8th Asia-Pacific Symposium on Internetware","volume":"24 1","pages":"23"},"PeriodicalIF":0.0,"publicationDate":"2010-11-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"83694169","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}
Software-as-as-Service (SaaS) is a new approach for developing software, and it is characterized by its multi-tenancy architecture and its ability to provide flexible customization to individual tenant. However, the multi-tenancy architecture and customization requirements have brought up new issues in software, such as database design, database partition, scalability, recovery, and continuous testing. This paper proposes a hybrid test database design to support SaaS customization with two-layer database partitioning. The database is further extended with a new built-in redundancy with ontology so that the SaaS can recover from ontology, data or meta-data failures. Furthermore, constraints in metadata can be used either as test cases or policies to support SaaS continuous testing and policy enforcement.
{"title":"Towards a scalable and robust multi-tenancy SaaS","authors":"W. Tsai, Qihong Shao, Yu Huang, Xiaoying Bai","doi":"10.1145/2020723.2020731","DOIUrl":"https://doi.org/10.1145/2020723.2020731","url":null,"abstract":"Software-as-as-Service (SaaS) is a new approach for developing software, and it is characterized by its multi-tenancy architecture and its ability to provide flexible customization to individual tenant. However, the multi-tenancy architecture and customization requirements have brought up new issues in software, such as database design, database partition, scalability, recovery, and continuous testing. This paper proposes a hybrid test database design to support SaaS customization with two-layer database partitioning. The database is further extended with a new built-in redundancy with ontology so that the SaaS can recover from ontology, data or meta-data failures. Furthermore, constraints in metadata can be used either as test cases or policies to support SaaS continuous testing and policy enforcement.","PeriodicalId":20631,"journal":{"name":"Proceedings of the 8th Asia-Pacific Symposium on Internetware","volume":"79 1","pages":"8"},"PeriodicalIF":0.0,"publicationDate":"2010-11-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"86520878","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}
Delay/Disruptive Tolerant Network (DTN) differs from the traditional networks in that it has no continuous or contemporaneous connections but only intermittent connections among wireless nodes and thus it is viewed as an opportunistic networks. DTNs emerge as a good alternative to provide services to a variety of applications in highly challenged environments. However, the characteristics of DTNs make existing solutions infeasible to be applied directly and new solutions are required to be explored, such as multicast which has been extensively studied before in internet and mobile ad hoc networks. Network coding has been proved been proved as an efficient way to improve the performance of multicast in traditional networks. In this paper, we use simulations to study how multicast with network coding performs in DTNs in terms of delivery delay under various application requirements (i.e., the amount of content to distribute and the number of multicast group members) and the network settings (i.e., the popularity of the network and the contact rate). Some empirical results are provided in this paper as well.
{"title":"Performance evaluation of network coding in disruption tolerant networks","authors":"Deze Zeng, Song Guo, Zhuo Li, Sanglu Lu","doi":"10.1145/2020723.2020735","DOIUrl":"https://doi.org/10.1145/2020723.2020735","url":null,"abstract":"Delay/Disruptive Tolerant Network (DTN) differs from the traditional networks in that it has no continuous or contemporaneous connections but only intermittent connections among wireless nodes and thus it is viewed as an opportunistic networks. DTNs emerge as a good alternative to provide services to a variety of applications in highly challenged environments. However, the characteristics of DTNs make existing solutions infeasible to be applied directly and new solutions are required to be explored, such as multicast which has been extensively studied before in internet and mobile ad hoc networks. Network coding has been proved been proved as an efficient way to improve the performance of multicast in traditional networks. In this paper, we use simulations to study how multicast with network coding performs in DTNs in terms of delivery delay under various application requirements (i.e., the amount of content to distribute and the number of multicast group members) and the network settings (i.e., the popularity of the network and the contact rate). Some empirical results are provided in this paper as well.","PeriodicalId":20631,"journal":{"name":"Proceedings of the 8th Asia-Pacific Symposium on Internetware","volume":"48 1","pages":"12"},"PeriodicalIF":0.0,"publicationDate":"2010-11-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"80366719","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}
Xiang Huang, Wei Wang, Wen-bo Zhang, Jun Wei, Tao Huang
With the great success of internet technology, internetware has become one of the most important software paradigms. But the open, dynamic and uncertain network makes it difficult to guarantee the performance of internetwares. Feed forward control method has been proved to be an effective mechanism for performance guarantee in advance, but it is difficult to work well in such a dynamic environment, in which performance aspects are highly changeable because for the load fluctuation and software updates. In this paper, we proposed an adaptive performance modeling approach to adapt the environment and provide fine-grained performance guarantee. In our approach, the service invocation sequences corresponding to the load of internetware are constructed adaptively. And the service time of each service, which is the most performance parameter of our performance tool, is accurately acquired through Kalman filter.
{"title":"An adaptive fine-grained performance modeling approach for internetware","authors":"Xiang Huang, Wei Wang, Wen-bo Zhang, Jun Wei, Tao Huang","doi":"10.1145/2020723.2020736","DOIUrl":"https://doi.org/10.1145/2020723.2020736","url":null,"abstract":"With the great success of internet technology, internetware has become one of the most important software paradigms. But the open, dynamic and uncertain network makes it difficult to guarantee the performance of internetwares. Feed forward control method has been proved to be an effective mechanism for performance guarantee in advance, but it is difficult to work well in such a dynamic environment, in which performance aspects are highly changeable because for the load fluctuation and software updates. In this paper, we proposed an adaptive performance modeling approach to adapt the environment and provide fine-grained performance guarantee. In our approach, the service invocation sequences corresponding to the load of internetware are constructed adaptively. And the service time of each service, which is the most performance parameter of our performance tool, is accurately acquired through Kalman filter.","PeriodicalId":20631,"journal":{"name":"Proceedings of the 8th Asia-Pacific Symposium on Internetware","volume":"10 1","pages":"13"},"PeriodicalIF":0.0,"publicationDate":"2010-11-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"86660248","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}
PaaS (Platform-as-a-Service) which provides execution environment for applications deployed in cloud is a key technology of cloud computing. However, to meet various requirements of different users on software platform under changing application environment, it's crucial to design and develop extensible, customizable and dynamic PaaS systems. In this paper, we analyze the software requirements of PaaS. Then a PaaS system architecture using R-OSGi as software foundation is designed. Finally, the presented approach is validated by a case study involving a web-based application E-bookstore.
{"title":"Towards PaaS using service-oriented component model","authors":"Tao Wang, Xiaowei Zhou, Wen-bo Zhang, Jun Wei","doi":"10.1145/2020723.2020741","DOIUrl":"https://doi.org/10.1145/2020723.2020741","url":null,"abstract":"PaaS (Platform-as-a-Service) which provides execution environment for applications deployed in cloud is a key technology of cloud computing. However, to meet various requirements of different users on software platform under changing application environment, it's crucial to design and develop extensible, customizable and dynamic PaaS systems. In this paper, we analyze the software requirements of PaaS. Then a PaaS system architecture using R-OSGi as software foundation is designed. Finally, the presented approach is validated by a case study involving a web-based application E-bookstore.","PeriodicalId":20631,"journal":{"name":"Proceedings of the 8th Asia-Pacific Symposium on Internetware","volume":"135 1","pages":"18"},"PeriodicalIF":0.0,"publicationDate":"2010-11-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"79581644","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}