A Review on the Service Virtualisation and Its Structural Pillars

Continuous delivery is an industry software development approach that aims to reduce the delivery time of software and increase the quality assurance within a short development cycle. The fast delivery and improved quality require continuous testing of the developed software service. Testing services are complicated and costly and postponed to the end of development due to unavailability of the requisite services. Therefore, an empirical approach that has been utilised to overcome these challenges is to automate software testing by virtualising the requisite services’ behaviour for the system being tested. Service virtualisation involves analysing the behaviour of software services to uncover their external behaviour in order to generate a light-weight executable model of the requisite services. There are different research areas which can be used to create such a virtual model of services from network interactions or service execution logs, including message format extraction, inferring control model, data model and multi-service dependencies. This paper reviews the state-of-the-art of how these areas have been used in automating the service virtualisation to make available the required environment for testing software. This paper provides a review of the relevant research within these four fields by carrying out a structured study on about 80 research works. These studies were then categorised according to their functional context as, extracting the message format, control model, data model and multi-service dependencies that can be employed to automate the service virtualisation activity. Based on our knowledge, this is the first structural review paper in service virtualisation fields.

[1]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[2]  Yuriy Brun,et al.  Automatic mining of specifications from invocation traces and method invariants , 2014, SIGSOFT FSE.

[3]  John Derrick,et al.  Inferring extended finite state machine models from software executions , 2013, 2013 20th Working Conference on Reverse Engineering (WCRE).

[4]  Alper Sen,et al.  Virtualization of stateful services via machine learning , 2019, Software Quality Journal.

[5]  Jaideep Chandrashekar,et al.  Macroscope: end-point approach to networked application dependency discovery , 2009, CoNEXT '09.

[6]  Yuriy Brun,et al.  Synoptic: studying logged behavior with inferred models , 2011, ESEC/FSE '11.

[7]  Ernst W. Biersack,et al.  Traffic to protocol reverse engineering , 2009, 2009 IEEE Symposium on Computational Intelligence for Security and Defense Applications.

[8]  Wil M. P. van der Aalst,et al.  Service Mining: Using Process Mining to Discover, Check, and Improve Service Behavior , 2013, IEEE Transactions on Services Computing.

[9]  Alexander Aiken,et al.  Using correlated surprise to infer shared influence , 2010, 2010 IEEE/IFIP International Conference on Dependable Systems & Networks (DSN).

[10]  Dirk Fahland,et al.  Discovering Interacting Artifacts from ERP Systems , 2015, IEEE Transactions on Services Computing.

[11]  David Lo,et al.  Automatic steering of behavioral model inference , 2009, ESEC/SIGSOFT FSE.

[12]  Wil M. P. van der Aalst,et al.  Data Science in Action , 2016 .

[13]  Nicole Krämer,et al.  Learning stateful models for network honeypots , 2012, AISec.

[14]  Jignesh M. Patel,et al.  Estimating the selectivity of tf-idf based cosine similarity predicates , 2007, SGMD.

[15]  Boualem Benatallah,et al.  Using Graph Aggregation for Service Interaction Message Correlation , 2011, CAiSE.

[16]  Leonardo Mariani,et al.  GK-Tail+ An Efficient Approach to Learn Software Models , 2017, IEEE Transactions on Software Engineering.

[17]  John C. Grundy,et al.  Interaction Traces Mining for Efficient System Responses Generation , 2015, SOEN.

[18]  Myung-Sup Kim,et al.  Protocol Specification Extraction Based on Contiguous Sequential Pattern Algorithm , 2019, IEEE Access.

[19]  Bei Zhou,et al.  Extracting Information from Unknown Protocols On CampusNet , 2007, 2007 First IEEE International Symposium on Information Technologies and Applications in Education.

[20]  Leonardo Mariani,et al.  Automatic generation of software behavioral models , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[21]  Dirk Merkel,et al.  Docker: lightweight Linux containers for consistent development and deployment , 2014 .

[22]  Mehdi Seyedmahmoudian,et al.  Cognitive Service Virtualisation: A New Machine Learning-Based Virtualisation to Generate Numeric Values , 2020, Sensors.

[23]  Jun Han,et al.  P-Gram: Positional N-Gram for the Clustering of Machine-Generated Messages , 2019, IEEE Access.

[24]  Jerome A. Feldman,et al.  On the Synthesis of Finite-State Machines from Samples of Their Behavior , 1972, IEEE Transactions on Computers.

[25]  Zhaohui Wu,et al.  CloudScout: A Non-Intrusive Approach to Service Dependency Discovery , 2017, IEEE Transactions on Parallel and Distributed Systems.

[26]  Yong Wang,et al.  Protocol Specification Inference Based on Keywords Identification , 2013, ADMA.

[27]  Rajat Raina,et al.  Self-taught learning: transfer learning from unlabeled data , 2007, ICML '07.

[28]  William G. Griswold,et al.  Dynamically discovering likely program invariants to support program evolution , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[29]  Jun Han,et al.  Heuristic-based Mining of Service Behavioral Models from Interaction Traces , 2021, Future Gener. Comput. Syst..

[30]  Peng Li,et al.  Selecting and using virtualization solutions: our experiences with VMware and VirtualBox , 2010 .

[31]  John C. Grundy,et al.  From Network Traces to System Responses: Opaquely Emulating Software Services , 2015, ArXiv.

[32]  Marc Dacier,et al.  Automatic Handling of Protocol Dependencies and Reaction to 0-Day Attacks with ScriptGen Based Honeypots , 2006, RAID.

[33]  S. B. Needleman,et al.  A general method applicable to the search for similarities in the amino acid sequence of two proteins. , 1970, Journal of molecular biology.

[34]  David Evans,et al.  Dynamically inferring temporal properties , 2004, PASTE.

[35]  Ivan Beschastnikh,et al.  Synergizing Specification Miners through Model Fissions and Fusions (T) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[36]  Fabio Casati,et al.  Event correlation for process discovery from web service interaction logs , 2011, The VLDB Journal.

[37]  Paramvir Bahl,et al.  Discovering Dependencies for Network Management , 2006, HotNets.

[38]  Mehdi Seyedmahmoudian,et al.  New Service Virtualisation Approach to Generate the Categorical Fields in the Service Response , 2020, Sensors.

[39]  Xin Luo,et al.  A Type-Aware Approach to Message Clustering for Protocol Reverse Engineering , 2019, Sensors.

[40]  Marc Dacier,et al.  ScriptGen: an automated script generation tool for Honeyd , 2005, 21st Annual Computer Security Applications Conference (ACSAC'05).

[41]  John Michelsen,et al.  Service Virtualization , 2012, Apress.

[42]  Patrick D. McDaniel,et al.  Analysis of Communities of Interest in Data Networks , 2005, PAM.

[43]  Christopher Krügel,et al.  Prospex: Protocol Specification Extraction , 2009, 2009 30th IEEE Symposium on Security and Privacy.

[44]  Nuno Ferreira Neves,et al.  Automatically complementing protocol specifications from network traces , 2011, EWDC '11.

[45]  Yi Qin,et al.  CoMID: Context-Based Multiinvariant Detection for Monitoring Cyber-Physical Software , 2018, IEEE Transactions on Reliability.

[46]  Viara Popova,et al.  Artifact Lifecycle Discovery , 2013, Int. J. Cooperative Inf. Syst..

[47]  Steve Freeman,et al.  Endo-testing: unit testing with mock objects , 2001 .

[48]  Qiang Fu,et al.  Mining dependency in distributed systems through unstructured logs analysis , 2010, OPSR.

[49]  Yuriy Brun,et al.  Inferring models of concurrent systems from logs of their behavior with CSight , 2014, ICSE.

[50]  Jun Han,et al.  A positional keyword-based approach to inferring fine-grained message formats , 2020, Future Gener. Comput. Syst..

[51]  Alexander L. Wolf,et al.  On-Demand Discovery of Software Service Dependencies in MANETs , 2015, IEEE Transactions on Network and Service Management.