-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path01-title-fits-measures-literature.bib
4247 lines (4041 loc) · 365 KB
/
01-title-fits-measures-literature.bib
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
% Encoding: UTF-8
@InProceedings{Anchuri2014,
author = {Anchuri, Pranay and Sumbaly, Roshan and Shah, Sam},
booktitle = {Proceedings of the 23rd ACM International Conference on Conference on Information and Knowledge Management},
title = {Hotspot Detection in a Service-Oriented Architecture},
year = {2014},
address = {New York, NY, USA},
pages = {1749–1758},
publisher = {Association for Computing Machinery},
series = {CIKM '14},
abstract = {Large-scale websites are predominantly built as a service-oriented architecture. Here,
services are specialized for a certain task, run on multiple machines, and communicate
with each other to serve a user's request. Reducing latency and improving the cost
to serve is quite important, but optimizing this service call graph is particularly
challenging due to the volume of data and the graph's non-uniform and dynamic nature.In
this paper, we present a framework to detect hotspots in a service-oriented architecture.
The framework is general, in that it can handle arbitrary objective functions. We
show that finding the optimal set of hotspots for a metric, such as latency, is NP-complete
and propose a greedy algorithm by relaxing some constraints. We use a pattern mining
algorithm to rank hotspots based on the impact and consistency. Experiments on real
world service call graphs from LinkedIn, the largest online professional social network,
show that our algorithm consistently outperforms baseline methods.},
doi = {10.1145/2661829.2661991},
isbn = {9781450325981},
keywords = {monitoring, call graph, service-oriented architecture, hotspots},
location = {Shanghai, China},
numpages = {10},
url = {https://doi.org/10.1145/2661829.2661991},
}
@Article{Castelluccia2014,
author = {Castelluccia, Daniela and Boffoli, Nicola},
journal = {SIGSOFT Softw. Eng. Notes},
title = {Service-Oriented Product Lines: A Systematic Mapping Study},
year = {2014},
issn = {0163-5948},
month = mar,
number = {2},
pages = {1–6},
volume = {39},
abstract = {Software product line engineering and service-oriented architectures both enable organizations
to capitalize on reuse of existing software assets and capabilities and improve competitive
advantage in terms of development savings, product flexibility, time-to-market. Both
approaches accommodate variation of assets, including services, by changing the software
being reused or composing services according a new orchestration. Therefore, variability
management in Service-oriented Product Lines (SoPL) is one of the main challenges
today. In order to highlight the emerging evidence-based results from the research
community, we apply the well-defined method of systematic mapping in order to populate
a classification scheme for the SoPL field of interest. The analysis of results throws
light on the current open issues. Moreover, different facets of the scheme can be
combined to answer more specific research questions. The report reveals the need for
more empirical research able to provide new metrics measuring efficiency and efficacy
of the proposed models, new methods and tools supporting variability management in
SoPL, especially during maintenance and verification and validation. The mapping study
about SoPL opens further investigations by means of a complete systematic review to
select and validate the most efficient solutions to variability management in SoPL.},
address = {New York, NY, USA},
doi = {10.1145/2579281.2579294},
issue_date = {March 2014},
keywords = {empirical study, mapping study, service-oriented computing, product line development, service-oriented architecture, software product line, variability management},
numpages = {6},
publisher = {Association for Computing Machinery},
url = {https://doi.org/10.1145/2579281.2579294},
}
@InProceedings{Oliveira2016,
author = {Oliveira, Joyce Aline and Junior, Jose J.L.D.},
booktitle = {Proceedings of the XII Brazilian Symposium on Information Systems on Brazilian Symposium on Information Systems: Information Systems in the Cloud Computing Era - Volume 1},
title = {A Three-Dimensional View of Reuse in Service Oriented Architecture},
year = {2016},
address = {Porto Alegre, BRA},
pages = {409–416},
publisher = {Brazilian Computer Society},
series = {SBSI 2016},
abstract = {The reuse in Service Oriented Architecture (SOA) has been used strategically in organizations
to reduce development costs and increase the quality of applications. This article
reports a qualitative research realized with experts in order to identify goals, barriers,
facilitators, strategies, metrics and benefits associated with reuse in SOA. The results
were summarized in three dimensions (management, architecture, operation) and represented
by a conceptual model that can serve as a preliminary roadmap to manage the reuse
in SOA.},
isbn = {9788576693178},
keywords = {qualitative research, SOA reuse, Services Oriented Architecture},
location = {Florianopolis, Santa Catarina, Brazil},
numpages = {8},
}
@InProceedings{Lehmann2017,
author = {Lehmann, Martin and Sandnes, Frode Eika},
booktitle = {Proceedings of the Second International Conference on Internet of Things, Data and Cloud Computing},
title = {A Framework for Evaluating Continuous Microservice Delivery Strategies},
year = {2017},
address = {New York, NY, USA},
publisher = {Association for Computing Machinery},
series = {ICC '17},
abstract = {The emergence of service-oriented computing, and in particular microservice architecture,
has introduced a new layer of complexity to the already challenging task of continuously
delivering changes to the end users. Cloud computing has turned scalable hardware
into a commodity, but also imposes some requirements on the software development process.
Yet, the literature mainly focuses on quantifiable metrics such as number of manual
steps and lines of code required to make a change. The industry, on the other hand,
appears to focus more on qualitative metrics such as increasing the productivity of
their developers. These are common goals, but must be measured using different approaches.
Therefore, based on interviews of industry stakeholders a framework for evaluating
and comparing approaches to continuous microservice delivery is proposed. We show
that it is possible to efficiently evaluate and compare strategies for continuously
delivering microservices.},
articleno = {64},
doi = {10.1145/3018896.3018961},
isbn = {9781450347747},
keywords = {microservices, microservice architectures, deployment strategy, cloud computing, evaluation framework, continuous deployment},
location = {Cambridge, United Kingdom},
numpages = {9},
url = {https://doi.org/10.1145/3018896.3018961},
}
@InProceedings{Oliveira2018,
author = {Oliveira, Joyce Aline and Vargas, Matheus and Rodrigues, Roni},
booktitle = {Proceedings of the XIV Brazilian Symposium on Information Systems},
title = {SOA Reuse: Systematic Literature Review Updating and Research Directions},
year = {2018},
address = {New York, NY, USA},
publisher = {Association for Computing Machinery},
series = {SBSI'18},
abstract = {Service Oriented Architecture (SOA) reuse has been used strategically in organizations
to reduce development costs and increase the quality of applications. This article
analyzes a systematic literature review in order to identify concepts, goals, strategies,
and metrics of SOA reuse. The results show that the main goal of SOA reuse is to decrease
development costs. The factor that most negatively influences SOA reuse is the existence
of legacy systems. The strategy used most to potentialize SOA reuse is business process
management. Metrics proposed by studies to measure SOA reuse are related to modularity
and adaptability indicators. The study is relevant because it increases the body of
knowledge of the area. Additionally, a set of gaps to be addressed by researchers
and reuse practitioners was identified.},
articleno = {71},
doi = {10.1145/3229345.3229419},
isbn = {9781450365598},
keywords = {Service Oriented Architecture, systematic literature review, SOA reuse},
location = {Caxias do Sul, Brazil},
numpages = {8},
url = {https://doi.org/10.1145/3229345.3229419},
}
@InProceedings{Ilin2017,
author = {Ilin, I. and Levina, A. and Abran, A. and Iliashenko, O.},
booktitle = {Proceedings of the 27th International Workshop on Software Measurement and 12th International Conference on Software Process and Product Measurement},
title = {Measurement of Enterprise Architecture (EA) from an IT Perspective: Research Gaps and Measurement Avenues},
year = {2017},
address = {New York, NY, USA},
pages = {232–243},
publisher = {Association for Computing Machinery},
series = {IWSM Mensura '17},
abstract = {Reorganizational projects in general and software-related projects in particular,
are often implemented with a focus only on the reorganized components within an organizational
management system, not taking into account relationships with the other components
of an enterprise architecture (EA). This paper first looks at the current state of
EA measurement to identify weaknesses and gaps in aligning and measuring EA components,
EA structures and EA interrelationships from an IT perspective. It then identifies
from related works available innovative measurement concepts that could contribute
for aligning, measuring and monitoring software-related projects within an EA strategy.
This includes measurement avenues within a Balanced Scorecard (BSC), contributions
of functional size measurement to the BSC, and measurement of software structures
and functionality within a service-oriented architecture (SOA).},
doi = {10.1145/3143434.3143457},
isbn = {9781450348539},
keywords = {balanced scorecard (BSC), function points (FP), enterprise architecture (EA), enterprise architecture measurement, service-oriented architecture (SOA), functional size measurement (FSM)},
location = {Gothenburg, Sweden},
numpages = {12},
url = {https://doi.org/10.1145/3143434.3143457},
}
@InProceedings{Bogner2018,
author = {Bogner, Justus and Fritzsch, Jonas and Wagner, Stefan and Zimmermann, Alfred},
booktitle = {Proceedings of the 2018 International Conference on Technical Debt},
title = {Limiting Technical Debt with Maintainability Assurance: An Industry Survey on Used Techniques and Differences with Service- and Microservice-Based Systems},
year = {2018},
address = {New York, NY, USA},
pages = {125–133},
publisher = {Association for Computing Machinery},
series = {TechDebt '18},
abstract = {Maintainability assurance techniques are used to control this quality attribute and
limit the accumulation of potentially unknown technical debt. Since the industry state
of practice and especially the handling of Service- and Microservice-Based Systems
in this regard are not well covered in scientific literature, we created a survey
to gather evidence for a) used processes, tools, and metrics in the industry, b) maintainability-related
treatment of systems based on service-orientation, and c) influences on developer
satisfaction w.r.t. maintainability. 60 software professionals responded to our online
questionnaire. The results indicate that using explicit and systematic techniques
has benefits for maintainability. The more sophisticated the applied methods the more
satisfied participants were with the maintainability of their software while no link
to a hindrance in productivity could be established. Other important findings were
the absence of architecture-level evolvability control mechanisms as well as a significant
neglect of service-oriented particularities for quality assurance. The results suggest
that industry has to improve its quality control in these regards to avoid problems
with long-living service-based software systems.},
doi = {10.1145/3194164.3194166},
isbn = {9781450357135},
keywords = {microservice-based systems, maintainability, industry, survey, software quality control, service-based systems},
location = {Gothenburg, Sweden},
numpages = {9},
url = {https://doi.org/10.1145/3194164.3194166},
}
@Article{Wu2018,
author = {Wu, Yumei and Fang, Yuanyuan and Liu, Bin and Zhao, Zehui},
journal = {Personal Ubiquitous Comput.},
title = {A Novel Service Deployment Approach Based on Resilience Metrics for Service-Oriented System},
year = {2018},
issn = {1617-4909},
month = oct,
number = {5–6},
pages = {1099–1107},
volume = {22},
abstract = {Service-Oriented Architecture (SOA) has been widely used in IT areas and is expected
to bring a lot of benefits. However, the SOA system developers have to address new
challenging issues such as computational resource failure before such benefits can
be realized. This paper develops a graph-theoretic model for the SOA system and proposes
metrics that quantify the resilience of such system under resource failures. It explores
two service deployment strategies to optimize resilience by taking not only communication
costs among services but also the computation costs of services into consideration.
Among them, two types of undirected graphs are developed to model the relationships
between services, including Service Dependence Graph (SDG) and Service Concurrence
Graph (SCG). Then, these two graphs are integrated into Service Relationship Graph
(SRG) and adopt the k-cut optimization theory to complete the service deployment.
Finally, this paper verifies the effectiveness of the above methods in improving the
resilience of the system through a series of experiments, which indicate that our
methods perform better than the previous methods in improving resilience of the SOA
system.},
address = {Berlin, Heidelberg},
issue_date = {October 2018},
keywords = {Resilience, SOA, Service relationship graph, Service deployment},
numpages = {9},
publisher = {Springer-Verlag},
}
@InProceedings{Mathas2018,
author = {Mathas, Christos M. and Segou, Olga E. and Xylouris, Georgios and Christinakis, Dimitris and Kourtis, Michail-Alexandros and Vassilakis, Costas and Kourtis, Anastasios},
booktitle = {Proceedings of the 13th International Conference on Availability, Reliability and Security},
title = {Evaluation of Apache Spot's Machine Learning Capabilities in an SDN/NFV Enabled Environment},
year = {2018},
address = {New York, NY, USA},
publisher = {Association for Computing Machinery},
series = {ARES 2018},
abstract = {Software Defined Networking (SDN) and Network Function Virtualisation (NFV) are transforming
modern networks towards a service-oriented architecture. At the same time, the cybersecurity
industry is rapidly adopting Machine Learning (ML) algorithms to improve detection
and mitigation of complex attacks. Traditional intrusion detection systems perform
signature-based detection, based on well-known malicious traffic patterns that signify
potential attacks. The main drawback of this method is that attack patterns need to
be known in advance and signatures must be preconfigured. Hence, typical systems fail
to detect a zero-day attack or an attack with unknown signature. This work considers
the use of machine learning for advanced anomaly detection, and specifically deploys
the Apache Spot ML framework on an SDN/NFV-enabled testbed running cybersecurity services
as Virtual Network Functions (VNFs). VNFs are used to capture traffic for ingestion
by the ML algorithm and apply mitigation measures in case of a detected anomaly. Apache
Spot utilises Latent Dirichlet Allocation to identify anomalous traffic patterns in
Netflow, DNS and proxy data. The overall performance of Apache Spot is evaluated by
deploying Denial of Service (Slowloris, BoNeSi) and a Data Exfiltration attack (iodine).},
articleno = {52},
doi = {10.1145/3230833.3233278},
isbn = {9781450364485},
keywords = {Apache Spot, Software Defined Networking, Network Function Virtualisation, Latent Dirichlet Allocation, Penetration Testing, Machine Learning, SHIELD Project},
location = {Hamburg, Germany},
numpages = {10},
url = {https://doi.org/10.1145/3230833.3233278},
}
@InProceedings{Tummalapalli2020,
author = {Tummalapalli, Sahithi and Kumar, Lov and Murthy, N. L. Bhanu},
booktitle = {Proceedings of the 13th Innovations in Software Engineering Conference on Formerly Known as India Software Engineering Conference},
title = {Prediction of Web Service Anti-Patterns Using Aggregate Software Metrics and Machine Learning Techniques},
year = {2020},
address = {New York, NY, USA},
publisher = {Association for Computing Machinery},
series = {ISEC 2020},
abstract = {Service-Oriented Architecture(SOA) can be characterized as an approximately coupled
engineering intended to meet the business needs of an association/organization. Service-Based
Systems (SBSs) are inclined to continually change to enjoy new client necessities
and adjust the execution settings, similar to some other huge and complex frameworks.
These changes may lead to the evolution of designs/products with poor Quality of Service
(QoS), resulting in the bad practiced solutions, commonly known as Anti-patterns.
Anti-patterns makes the evolution and maintenance of the software systems hard and
complex. Early identification of modules, classes, or source code regions where anti-patterns
are more likely to occur can help in amending and maneuvering testing efforts leading
to the improvement of software quality. In this work, we investigate the application
of three sampling techniques, three feature selection techniques, and sixteen different
classification techniques to develop the models for web service anti-pattern detection.
We report the results of an empirical study by evaluating the approach proposed, on
a data set of 226 Web Service Description Language(i.e., WSDL)files, a variety of
five types of web-service anti-patterns. Experimental results demonstrated that SMOTE
is the best performing data sampling techniques. The experimental results also reveal
that the model developed by considering Uncorrelated Significant Predictors(SUCP)
as the input obtained better performance compared to the model developed by other
metrics. Experimental results also show that the Least Square Support Vector Machine
with Linear(LSLIN) function has outperformed all other classifier techniques.},
articleno = {8},
doi = {10.1145/3385032.3385042},
isbn = {9781450375948},
keywords = {Anti-pattern, Classifiers, Service-Based Systems(SBS), Aggregation measures, WSDL, Feature Selection, Class imbalance distribution, Machine Learning, Web-Services, Source Code Metrics},
location = {Jabalpur, India},
numpages = {11},
url = {https://doi.org/10.1145/3385032.3385042},
}
@InProceedings{Camargo2016,
author = {de Camargo, Andr\'{e} and Salvadori, Ivan and Mello, Ronaldo dos Santos and Siqueira, Frank},
booktitle = {Proceedings of the 18th International Conference on Information Integration and Web-Based Applications and Services},
title = {An Architecture to Automate Performance Tests on Microservices},
year = {2016},
address = {New York, NY, USA},
pages = {422–429},
publisher = {Association for Computing Machinery},
series = {iiWAS '16},
abstract = {The microservices architecture provides a new approach to develop applications. As
opposed to monolithic applications, in which the application comprises a single software
artifact, an application based on the microservices architecture is composed by a
set of services, each one designed to perform a single and well-defined task. These
services allow the development team to decouple several parts of the application using
different frameworks, languages and hardware for each part of the system. One of the
drawbacks for adopting the microservices architecture to develop applications is testability.
In a single application test boundaries can be more easily established and tend to
be more stable as the application evolves, while with microservices we can have a
set of hundreds of services that operate together and are prone to change more rapidly.
Each one of these services needs to be tested and updated as the service changes.
In addition, the different characteristics of these services such as languages, frameworks
or the used infrastructure have to be considered in the testing phase. Performance
tests are applied to assure that a particular software complies with a set of non-functional
requirements such as throughput and response time. These metrics are important to
ensure that business constraints are respected and to help finding performance bottlenecks.
In this paper, we present a new approach to allow the performance tests to be executed
in an automated way, with each microservice providing a test specification that is
used to perform tests. Along with the architecture, we also provide a framework that
implements some key concepts of this architecture. This framework is available as
an open source project1.},
doi = {10.1145/3011141.3011179},
isbn = {9781450348072},
keywords = {test automation, performance test, microservices},
location = {Singapore, Singapore},
numpages = {8},
url = {https://doi.org/10.1145/3011141.3011179},
}
@InProceedings{Brito2021,
author = {Brito, Miguel and Cunha, J\'{a}come and Saraiva, Jo\~{a}o},
booktitle = {Proceedings of the 36th Annual ACM Symposium on Applied Computing},
title = {Identification of Microservices from Monolithic Applications through Topic Modelling},
year = {2021},
address = {New York, NY, USA},
pages = {1409–1418},
publisher = {Association for Computing Machinery},
series = {SAC '21},
abstract = {Microservices emerged as one of the most popular architectural patterns in the recent
years given the increased need to scale, grow and flexibilize software projects accompanied
by the growth in cloud computing and DevOps. Many software applications are being
submitted to a process of migration from its monolithic architecture to a more modular,
scalable and flexible architecture of microservices. This process is slow and, depending
on the project's complexity, it may take months or even years to complete.This paper
proposes a new approach on microservice identification by resorting to topic modelling
in order to identify services according to domain terms. This approach in combination
with clustering techniques produces a set of services based on the original software.
The proposed methodology is implemented as an open-source tool for exploration of
monolithic architectures and identification of microservices. A quantitative analysis
using the state of the art metrics on independence of functionality and modularity
of services was conducted on 200 open-source projects collected from GitHub. Cohesion
at message and domain level metrics' showed medians of roughly 0.6. Interfaces per
service exhibited a median of 1.5 with a compact interquartile range. Structural and
conceptual modularity revealed medians of 0.2 and 0.4 respectively.Our first results
are positive demonstrating beneficial identification of services due to overall metrics'
results.},
doi = {10.1145/3412841.3442016},
isbn = {9781450381048},
location = {Virtual Event, Republic of Korea},
numpages = {10},
url = {https://doi.org/10.1145/3412841.3442016},
}
@InProceedings{Ma2020,
author = {Ma, Meng and Xu, Jingmin and Wang, Yuan and Chen, Pengfei and Zhang, Zonghua and Wang, Ping},
booktitle = {Proceedings of The Web Conference 2020},
title = {AutoMAP: Diagnose Your Microservice-Based Web Applications Automatically},
year = {2020},
address = {New York, NY, USA},
pages = {246–258},
publisher = {Association for Computing Machinery},
series = {WWW '20},
abstract = {The high complexity and dynamics of the microservice architecture make its application
diagnosis extremely challenging. Static troubleshooting approaches may fail to obtain
reliable model applies for frequently changing situations. Even if we know the calling
dependency of services, we lack a more dynamic diagnosis mechanism due to the existence
of indirect fault propagation. Besides, algorithm based on single metric usually fail
to identify the root cause of anomaly, as single type of metric is not enough to characterize
the anomalies occur in diverse services. In view of this, we design a novel tool,
named AutoMAP, which enables dynamic generation of service correlations and automated
diagnosis leveraging multiple types of metrics. In AutoMAP, we propose the concept
of anomaly behavior graph to describe the correlations between services associated
with different types of metrics. Two binary operations, as well as a similarity function
on behavior graph are defined to help AutoMAP choose appropriate diagnosis metric
in any particular scenario. Following the behavior graph, we design a heuristic investigation
algorithm by using forward, self, and backward random walk, with an objective to identify
the root cause services. To demonstrate the strengths of AutoMAP, we develop a prototype
and evaluate it in both simulated environment and real-work enterprise cloud system.
Experimental results clearly indicate that AutoMAP achieves over 90% precision, which
significantly outperforms other selected baseline methods. AutoMAP can be quickly
deployed in a variety of microservice-based systems without any system knowledge.
It also supports introduction of various expert knowledge to improve accuracy.},
doi = {10.1145/3366423.3380111},
isbn = {9781450370233},
keywords = {anomaly diagnosis, web application, Microservice architecture, root cause, cloud computing},
location = {Taipei, Taiwan},
numpages = {13},
url = {https://doi.org/10.1145/3366423.3380111},
}
@InProceedings{Lopez2017,
author = {L\'{o}pez, Manuel Ram\'{\i}rez and Spillner, Josef},
booktitle = {Companion Proceedings of The10th International Conference on Utility and Cloud Computing},
title = {Towards Quantifiable Boundaries for Elastic Horizontal Scaling of Microservices},
year = {2017},
address = {New York, NY, USA},
pages = {35–40},
publisher = {Association for Computing Machinery},
series = {UCC '17 Companion},
abstract = {One of the most useful features of a microservices architecture is its versatility
to scale horizontally. However, not all services scale in or out uniformly. The performance
of an application composed of microservices depends largely on a suitable combination
of replica count and resource capacity. In practice, this implies limitations to the
efficiency of autoscalers which often overscale based on an isolated consideration
of single service metrics. Consequently, application providers pay more than necessary
despite zero gain in overall performance. Solving this issue requires an application-specific
determination of scaling limits due to the general infeasibility of an application-agnostic
solution. In this paper, we study microservices scalability, the auto-scaling of containers
as microservice implementations and the relation between the number of replicas and
the resulting application task performance. We contribute a replica count determination
solution with a mathematical approach. Furthermore, we offer a calibration software
tool which places scalability boundaries into declarative composition descriptions
of applications ready to be consumed by cloud platforms.},
doi = {10.1145/3147234.3148111},
isbn = {9781450351959},
keywords = {scalability, replication, optimization, microservices},
location = {Austin, Texas, USA},
numpages = {6},
url = {https://doi.org/10.1145/3147234.3148111},
}
@InProceedings{Anwar2015,
author = {Anwar, Ali and Sailer, Anca and Kochut, Andrzej and Butt, Ali R.},
booktitle = {Proceedings of the 6th Asia-Pacific Workshop on Systems},
title = {Anatomy of Cloud Monitoring and Metering: A Case Study and Open Problems},
year = {2015},
address = {New York, NY, USA},
publisher = {Association for Computing Machinery},
series = {APSys '15},
abstract = {Microservices based architecture has recently gained traction among the cloud service
providers in quest for a more scalable and reliable modular architecture. In parallel
with this architectural choice, cloud providers are also facing the market demand
for fine grained usage based prices. Both the management of the microservices complex
dependencies, as well as the fine grained metering require the providers to track
and log detailed monitoring data from their deployed cloud setups. Hence, on one hand,
the providers need to record all such performance changes and events, while on the
other hand, they are concerned with the additional cost associated with the resources
required to store and process this ever increasing amount of collected data.In this
paper, we analyze the design of the monitoring subsystem provided by open source cloud
solutions, such as OpenStack. Specifically, we analyze how the monitoring data is
collected by OpenStack and assess the characteristics of the data it collects, aiming
to pinpoint the limitations of the current approach and suggest alternate solutions.
Our preliminary evaluation of the proposed solutions reveals that it is possible to
reduce the monitored data size by up to 80% and missed anomaly detection rate from
3% to as low as 0.05% to 0.1%.},
articleno = {6},
doi = {10.1145/2797022.2797039},
isbn = {9781450335546},
location = {Tokyo, Japan},
numpages = {7},
url = {https://doi.org/10.1145/2797022.2797039},
}
@InProceedings{FreitasApolinario2020,
author = {de Freitas Apolin\'{a}rio, Daniel Rodrigo and de Fran\c{c}a, Breno Bernard Nicolau},
booktitle = {Proceedings of the 14th Brazilian Symposium on Software Components, Architectures, and Reuse},
title = {Towards a Method for Monitoring the Coupling Evolution of Microservice-Based Architectures},
year = {2020},
address = {New York, NY, USA},
pages = {71–80},
publisher = {Association for Computing Machinery},
series = {SBCARS '20},
abstract = {The microservice architecture is claimed to satisfy ongoing software development demands,
such as resilience, flexibility, and velocity. However, developing applications based
on microservices also brings some drawbacks, such as the increased software operational
complexity. Recent studies have also pointed out the lack of methods to prevent problems
related to the maintainability of these solutions. Disregarding established design
principles during the software evolution may lead to the so-called architectural erosion,
which can end up in a condition of unfeasible maintenance. As microservices can be
considered a new architecture style, there are few initiatives to monitoring the evolution
of software microservice-based architectures. In this paper, we introduce the SYMBIOTE
method for monitoring the coupling evolution of microservice-based systems. More specifically,
this method collects coupling metrics during runtime (staging or production environments)
and monitors them throughout software evolution. The longitudinal analysis of the
collected measures allows detecting an upward trend in coupling metrics that could
be signs of architectural erosion. To develop the proposed method, we performed an
experimental analysis of the coupling metrics behavior using artificially-generated
data.},
doi = {10.1145/3425269.3425273},
isbn = {9781450387545},
keywords = {maintainability, coupling metrics, software evolution, microservices},
location = {Natal, Brazil},
numpages = {10},
url = {https://doi.org/10.1145/3425269.3425273},
}
@InProceedings{Cardarelli2019,
author = {Cardarelli, Mario and Iovino, Ludovico and Di Francesco, Paolo and Di Salle, Amleto and Malavolta, Ivano and Lago, Patricia},
booktitle = {Proceedings of the 34th ACM/SIGAPP Symposium on Applied Computing},
title = {An Extensible Data-Driven Approach for Evaluating the Quality of Microservice Architectures},
year = {2019},
address = {New York, NY, USA},
pages = {1225–1234},
publisher = {Association for Computing Machinery},
series = {SAC '19},
abstract = {Microservice architecture (MSA) is defined as an architectural style where the software
system is developed as a suite of small services, each running in its own process
and communicating with lightweight mechanisms. The benefits of MSA are many, ranging
from an increase in development productivity, to better business-IT alignment, agility,
scalability, and technology flexibility. The high degree of microservices distribution
and decoupling is, however, imposing a number of relevant challenges from an architectural
perspective. In this context, measuring, controlling, and keeping a satisfactory level
of quality of the system architecture is of paramount importance.In this paper we
propose an approach for the specification, aggregation, and evaluation of software
quality attributes for the architecture of microservice-based systems. The proposed
approach allows developers to (i) produce architecture models of the system, either
manually or automatically via recovering techniques, (ii) contribute to an ecosystem
of well-specified and automatically-computable software quality attributes for MSAs,
and (iii) continuously measure and evaluate the architecture of their systems by (re-)using
the software quality attributes defined in the ecosystem. The approach is implemented
by using Model-Driven Engineering techniques.The current implementation of the approach
has been validated by assessing the maintainability of a third-party, publicly available
benchmark system.},
doi = {10.1145/3297280.3297400},
isbn = {9781450359337},
keywords = {microservices, architecture recovery, software quality, model-driven},
location = {Limassol, Cyprus},
numpages = {10},
url = {https://doi.org/10.1145/3297280.3297400},
}
@InProceedings{Brilhante2017,
author = {Brilhante, Jonathan and Costa, Rostand and Maritan, Tiago},
booktitle = {Proceedings of the 23rd Brazillian Symposium on Multimedia and the Web},
title = {Asynchronous Queue Based Approach for Building Reactive Microservices},
year = {2017},
address = {New York, NY, USA},
pages = {373–380},
publisher = {Association for Computing Machinery},
series = {WebMedia '17},
abstract = {To achieve scalability and flexibility in larger applications a new approach arises,
named by Microservices (MS). However MS architectures are at their inception and are
even more a concept than a fully mature design pattern. One of the hardest topics
in this approach is how to properly migrate or develop a single microservice, in terms
of scope, efficiency and dependability. In this sense, this work proposes a new architectural
model based on high-level architecture pattern of reactive programming to the internal
structure of a new microservice. The new model of microservices are internally coordinated
by asynchronous queues, which allowed to preserve compatibility with most monolithic
components and provide an encapsulation process to enable its continuity. A comparative
study between the standard approach and the proposed architecture was carried out
to measure the eventual performance improvement of the new strategy.},
doi = {10.1145/3126858.3126873},
isbn = {9781450350969},
keywords = {asynchronous queues, reactive approach, micro services, refactoring},
location = {Gramado, RS, Brazil},
numpages = {8},
url = {https://doi.org/10.1145/3126858.3126873},
}
@InProceedings{Khazaei2017,
author = {Khazaei, Hamzeh and Ravichandiran, Rajsimman and Park, Byungchul and Bannazadeh, Hadi and Tizghadam, Ali and Leon-Garcia, Alberto},
booktitle = {Proceedings of the 27th Annual International Conference on Computer Science and Software Engineering},
title = {Elascale: Autoscaling and Monitoring as a Service},
year = {2017},
address = {USA},
pages = {234–240},
publisher = {IBM Corp.},
series = {CASCON '17},
abstract = {Auto-scalability has become an evident feature for cloud software systems including
but not limited to big data and IoT applications. Cloud application providers now
are in full control over their applications' microservices and macroservices; virtual
machines and containers can be provisioned or deprovisioned on demand at run-time.
Elascale strives to adjust both micro/macro resources with respect to workload and
changes in the internal state of the whole application stack. Elascale leverages Elasticsearch
stack for collection, analysis and storage of performance metrics. Elascale then uses
its default scaling engine to elastically adapt the managed application. Extendibility
is guaranteed through provider, schema, plug-in and policy elements in the Elascale
by which flexible scalability algorithms, including both reactive and proactive techniques,
can be designed and implemented for various technologies, infrastructures and software
stacks. In this paper, we present the architecture and initial implementation of Elascale;
an instance will be leveraged to add auto-scalability to a generic IoT application.
Due to zero dependency to the target software system, Elascale can be leveraged to
provide auto-scalability and monitoring as-a-service for any type of cloud software
system.},
keywords = {macroservices, elasticsearch, monitoring, microservices, auto-scalability, cloud application, scalability as a service, containers, docker},
location = {Markham, Ontario, Canada},
numpages = {7},
}
@InProceedings{Toffetti2015,
author = {Toffetti, Giovanni and Brunner, Sandro and Bl\"{o}chlinger, Martin and Dudouet, Florian and Edmonds, Andrew},
booktitle = {Proceedings of the 1st International Workshop on Automated Incident Management in Cloud},
title = {An Architecture for Self-Managing Microservices},
year = {2015},
address = {New York, NY, USA},
pages = {19–24},
publisher = {Association for Computing Machinery},
series = {AIMC '15},
abstract = {Running applications in the cloud efficiently requires much more than deploying software
in virtual machines. Cloud applications have to be continuously managed: 1) to adjust
their resources to the incoming load and 2) to face transient failures replicating
and restarting components to provide resiliency on unreliable infrastructure. Continuous
management monitors application and infrastructural metrics to provide automated and
responsive reactions to failures (health management) and changing environmental conditions
(auto-scaling) minimizing human intervention.In the current practice, management functionalities
are provided as infrastructural or third party services. In both cases they are external
to the application deployment. We claim that this approach has intrinsic limits, namely
that separating management functionalities from the application prevents them from
naturally scaling with the application and requires additional management code and
human intervention. Moreover, using infrastructure provider services for management
functionalities results in vendor lock-in effectively preventing cloud applications
to adapt and run on the most effective cloud for the job.In this position paper we
propose a novel architecture that enables scalable and resilient self-management of
microservices applications on cloud.},
doi = {10.1145/2747470.2747474},
isbn = {9781450334761},
location = {Bordeaux, France},
numpages = {6},
url = {https://doi.org/10.1145/2747470.2747474},
}
@Article{Brondolin2020,
author = {Brondolin, Rolando and Santambrogio, Marco D.},
journal = {ACM Trans. Archit. Code Optim.},
title = {A Black-Box Monitoring Approach to Measure Microservices Runtime Performance},
year = {2020},
issn = {1544-3566},
month = nov,
number = {4},
volume = {17},
abstract = {Microservices changed cloud computing by moving the applications’ complexity from
one monolithic executable to thousands of network interactions between small components.
Given the increasing deployment sizes, the architectural exploitation challenges,
and the impact on data-centers’ power consumption, we need to efficiently track this
complexity. Within this article, we propose a black-box monitoring approach to track
microservices at scale, focusing on architectural metrics, power consumption, application
performance, and network performance. The proposed approach is transparent w.r.t.
the monitored applications, generates less overhead w.r.t. black-box approaches available
in the state-of-the-art, and provides fine-grain accurate metrics.},
address = {New York, NY, USA},
articleno = {34},
doi = {10.1145/3418899},
issue_date = {December 2020},
keywords = {network performance monitoring, cloud computing, performance monitoring, docker, power attribution, kubernetes, Microservices},
numpages = {26},
publisher = {Association for Computing Machinery},
url = {https://doi.org/10.1145/3418899},
}
@InProceedings{Kogias2020,
author = {Kogias, Marios and Bugnion, Edouard},
booktitle = {4th Asia-Pacific Workshop on Networking},
title = {Tail-Tolerance as a Systems Principle Not a Metric},
year = {2020},
address = {New York, NY, USA},
pages = {16–22},
publisher = {Association for Computing Machinery},
series = {APNet '20},
abstract = {Tail-latency tolerance (or just simply tail-tolerance) is the ability for a system
to deliver a response with low-latency nearly all the time. It it typically expressed
as a system metric (e.g., the 99th or 99.99th percentile latency) or as a service-level
objective (e.g., the maximum throughput so that the tail latency is below a desired
threshold). We advocate instead that modern datacenter systems should incorporate
tail-tolerance as a core systems design principle and not a metric to be observed,
and that tail-tolerant systems can be built out of large and complex applications
whose individual components may suffer from latency deviations. This is analogous
to fault-tolerance, where a fault-tolerant system can be built out of unreliable components.
The general solution is for the system to control the applied load and keep it under
the threshold that violates the latency SLO. We propose to augment RPC semantics with
an architectural layer that measures the observed tail latency and probabilistically
rejects RPC requests maintaining throughput under the threshold that violates the
SLO. Our design is application-independent, and does not make any assumptions about
the request service time distribution. We implemented a proof of concept for such
a tail-tolerant layer using programmable switches, called SVEN. We demonstrate that
the approach is suitable even for microsecond-scale RPCs with variable service times.
Moreover, our approach does not induce measurable overheads, and can maintain the
maximum achieved throughput very close to the load level that would violate the SLO
without SVEN.},
doi = {10.1145/3411029.3411032},
isbn = {9781450388764},
location = {Seoul, Republic of Korea},
numpages = {7},
url = {https://doi.org/10.1145/3411029.3411032},
}
@InProceedings{Scrocca2020,
author = {Scrocca, Mario and Tommasini, Riccardo and Margara, Alessandro and Valle, Emanuele Della and Sakr, Sherif},
booktitle = {Proceedings of the 14th ACM International Conference on Distributed and Event-Based Systems},
title = {The Kaiju Project: Enabling Event-Driven Observability},
year = {2020},
address = {New York, NY, USA},
pages = {85–96},
publisher = {Association for Computing Machinery},
series = {DEBS '20},
abstract = {Microservices architectures are getting momentum. Even small and medium-size companies
are migrating towards cloud-based distributed solutions supported by lightweight virtualization
techniques, containers, and orchestration systems. In this context, understanding
the system behavior at runtime is critical to promptly react to errors. Unfortunately,
traditional monitoring techniques are not adequate for such complex and dynamic environments.
Therefore, a new challenge, namely observability, emerged from precise industrial
needs: expose and make sense of the system behavior at runtime. In this paper, we
investigate observability as a research problem. We discuss the benefits of events
as a unified abstraction for metrics, logs, and trace data, and the advantages of
employing event stream processing techniques and tools in this context. We show that
an event-based approach enables understanding the system behavior in near real-time
more effectively than state-of-the-art solutions in the field. We implement our model
in the Kaiju system and we validate it against a realistic deployment supported by
a software company.},
doi = {10.1145/3401025.3401740},
isbn = {9781450380287},
keywords = {event stream processing, orchestration systems, observability, event-based systems},
location = {Montreal, Quebec, Canada},
numpages = {12},
url = {https://doi.org/10.1145/3401025.3401740},
}
@InProceedings{Nikravesh2015,
author = {Nikravesh, Ali Yadavar and Ajila, Samuel A. and Lung, Chung-Horng},
booktitle = {Proceedings of the 10th International Symposium on Software Engineering for Adaptive and Self-Managing Systems},
title = {Towards an Autonomic Auto-Scaling Prediction System for Cloud Resource Provisioning},
year = {2015},
pages = {35–45},
publisher = {IEEE Press},
series = {SEAMS '15},
abstract = {This paper investigates the accuracy of predictive auto-scaling systems in the Infrastructure
as a Service (IaaS) layer of cloud computing. The hypothesis in this research is that
prediction accuracy of auto-scaling systems can be increased by choosing an appropriate
time-series prediction algorithm based on the performance pattern over time. To prove
this hypothesis, an experiment has been conducted to compare the accuracy of time-series
prediction algorithms for different performance patterns. In the experiment, workload
was considered as the performance metric, and Support Vector Machine (SVM) and Neural
Networks (NN) were utilized as time-series prediction techniques. In addition, we
used Amazon EC2 as the experimental infrastructure and TPC-W as the benchmark to generate
different workload patterns. The results of the experiment show that prediction accuracy
of SVM and NN depends on the incoming workload pattern of the system under study.
Specifically, the results show that SVM has better prediction accuracy in the environments
with periodic and growing workload patterns, while NN outperforms SVM in forecasting
unpredicted workload pattern. Based on these experimental results, this paper proposes
an architecture for a self-adaptive prediction suite using an autonomic system approach.
This suite can choose the most suitable prediction technique based on the performance
pattern, which leads to more accurate prediction results.},
keywords = {workload pattern, neural networks, resource provisioning, support vector machine, cloud computing, auto-scaling, autonomic},
location = {Florence, Italy},
numpages = {11},
}
@InProceedings{Dudouet2015,
author = {Dudouet, Florian and Edmonds, Andrew and Erne, Michael},
booktitle = {Proceedings of the 1st International Workshop on Automated Incident Management in Cloud},
title = {Reliable Cloud-Applications: An Implementation through Service Orchestration},
year = {2015},
address = {New York, NY, USA},
pages = {1–6},
publisher = {Association for Computing Machinery},
series = {AIMC '15},
abstract = {As cloud-deployed applications became more and more mainstream, continuously more
complex services started to be deployed; indeed where initially monolithic applications
were simply ported to the cloud, applications are now more and more often composed
of micro-services. This improves the flexibility of an application but also makes
it more complex due to the sheer number of services comprising it.As deployment and
runtime management becomes more complex, orchestration software are becoming necessary
to completely manage the lifecycle of cloud applications. One crucial problem remaining
is how these applications can be made reliable in the cloud, a naturally unreliable
environment.In this paper we propose concepts and architectures which were implemented
in our orchestration software to guarantee reliability. Our initial implementation
also relies on Monasca, a well-known monitoring software for Open-Stack, to gather
proper metric and execute threshold-based actions. This allows us to show how service
reliability can be ensured using orchestration and how a proper incident-management
software feeding decisions to the orchestration engine ensures high-availability of
all components of managed applications.},
doi = {10.1145/2747470.2747471},
isbn = {9781450334761},
keywords = {incident management, orchestration, cloud computing, reliability},
location = {Bordeaux, France},
numpages = {6},
url = {https://doi.org/10.1145/2747470.2747471},
}
@InProceedings{Stevanetic2014,
author = {Stevanetic, Srdjan and Zdun, Uwe},
booktitle = {Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering},
title = {Exploring the Relationships between the Understandability of Components in Architectural Component Models and Component Level Metrics},
year = {2014},
address = {New York, NY, USA},
publisher = {Association for Computing Machinery},
series = {EASE '14},
abstract = {Architectural component models represent high level designs and are frequently used
as a central view of architectural descriptions of software systems. The components
in those models represent important high level organization units that group other
components and classes in object-oriented design views. Hence, understandability of
components and their interactions plays a key role in supporting the architectural
understanding of a software system. In this paper we present a study we carried out
to examine the relationships between the effort required to understand a component,
measured through the time that participants spent on studying a component, and component
level metrics that describe component's size, complexity and coupling in terms of
the number of classes in a component and the classes' relationships. The participants
were 49 master students, and they had to fully understand the components' functionalities
in order to answer 4 true/false questions for each of the 7 components in the architecture
of the Soomla Android store system. Correlation, collinearity and multivariate regression
analysis were performed. The results of the analysis show a statistically significant
correlation between three of the metrics, number of classes, number of incoming dependencies,
and number of internal dependencies, on one side, and the effort required to understand
a component, on the other side. In a multivariate regression analysis we obtained
3 reasonably well-fitting models that can be used to estimate the effort required
to understand a component. In our future work we plan to study more components and
investigate more metrics and their relationships to the understandability of components
and architectural component models.},
articleno = {32},
doi = {10.1145/2601248.2601264},
isbn = {9781450324762},
keywords = {software metrics, understandability, architectural component models, empirical evaluation},
location = {London, England, United Kingdom},
numpages = {10},
url = {https://doi.org/10.1145/2601248.2601264},
}
@InProceedings{VanLanduyt2015,
author = {Van Landuyt, Dimitri and Joosen, Wouter},
booktitle = {Proceedings of the Fifth International Workshop on Twin Peaks of Requirements and Architecture},
title = {On the Role of Early Architectural Assumptions in Quality Attribute Scenarios: A Qualitative and Quantitative Study},
year = {2015},
pages = {9–15},
publisher = {IEEE Press},
series = {TwinPeaks '15},
abstract = {Architectural assumptions are fundamentally different from architectural decisions
because they can not be traced directly to requirements, nor to domain, technical
or environmental constraints; they represent conditions under which the designed solution
is expected to be valid. Early architectural assumptions are similar in nature, with
the key difference that they are not made during architectural design but during requirement
elicitation, not by the software architect (a solution-oriented stakeholder), but
by the requirements engineer (a problem-oriented stakeholder). They represent initial
assumptions about the system's architecture, and allow the requirements engineer to
be more precise in documenting the requirements of the system.The role of early architectural
assumptions in the current practice of quality attribute scenario elicitation and
related development activities in the transition to architecture is unknown and under-investigated.
In this paper, we present the results of an exploratory study that focuses on the
role and nature of these assumptions in the early development stages. We studied a
reasonably large set of quality attribute scenarios for a realistic industrial case,
a smart metering system. Our study (i) confirms that quality attribute scenario elicitation
in practice does rely heavily on early architectural assumptions, and (ii) shows that
they do influence the perceived quality of the requirements body as a whole, in some
cases positively, in other cases negatively.These findings provide empirical arguments
in favor of making such assumptions explicit already during the requirements elicitation
activities. Especially in the context of iterative software development methodologies
such as the Twin Peaks model, a well-defined and -documented set of assumptions could
smoothen the transition between successive development iterations.},
location = {Florence, Italy},
numpages = {7},
}
@InProceedings{Stevanetic2015,
author = {Stevanetic, Srdjan and Zdun, Uwe},
booktitle = {Proceedings of the 19th International Conference on Evaluation and Assessment in Software Engineering},
title = {Software Metrics for Measuring the Understandability of Architectural Structures: A Systematic Mapping Study},
year = {2015},
address = {New York, NY, USA},
publisher = {Association for Computing Machinery},
series = {EASE '15},
abstract = {The main idea of software architecture is to concentrate on the "big picture" of a
software system. In the context of object-oriented software systems higher-level architectural
structures or views above the level of classes are frequently used to capture the
"big picture" of the system. One of the critical aspects of these higher-level views
is understandability, as one of their main purposes is to enable designers to abstract
away fine-grained details. In this article we present a systematic mapping study on
software metrics related to the understandability concepts of such higher-level software
structures with regard to their relations to the system implementation. In our systematic
mapping study, we started from 3951 studies obtained using an electronic search in
the four digital libraries from ACM, IEEE, Scopus, and Springer. After applying our
inclusion/exclusion criteria as well as the snowballing technique we selected 268
studies for in-depth study. From those, we selected 25 studies that contain relevant
metrics. We classify the identified studies and metrics with regard to the measured
artefacts, attributes, quality characteristics, and representation model used for
the metrics definitions. Additionally, we present the assessment of the maturity level
of the identified studies. Overall, there is a lack of maturity in the studies. We
discuss possible techniques how to mitigate the identified problems. From the academic
point of view we believe that our study is a good starting point for future studies
aiming at improving the existing works. From a practitioner's point of view, the results
of our study can be used as a catalogue and an indication of the maturity of the existing
research results.},
articleno = {21},
doi = {10.1145/2745802.2745822},
isbn = {9781450333504},
location = {Nanjing, China},
numpages = {14},
url = {https://doi.org/10.1145/2745802.2745822},
}
@InProceedings{Ewing2014,
author = {Ewing, John M. and Menasc\'{e}, Daniel A.},
booktitle = {Proceedings of the 5th ACM/SPEC International Conference on Performance Engineering},
title = {A Meta-Controller Method for Improving Run-Time Self-Architecting in SOA Systems},
year = {2014},
address = {New York, NY, USA},
pages = {173–184},
publisher = {Association for Computing Machinery},
series = {ICPE '14},
abstract = {This paper builds on SASSY, a system for automatically generating SOA software architectures
that optimize a given utility function of multiple QoS metrics. In SASSY, SOA software
systems are automatically re-architected when services fail or degrade. Optimizing
both architecture and service provider selection presents a pair of nested NP-hard
problems. Here we adapt hill-climbing, beam search, simulated annealing, and evolutionary
programming to both architecture optimization and service provider selection. Each
of these techniques has several parameters that influence their efficiency. We introduce
in this paper a meta-controller that automates the run-time selection of heuristic
search techniques and their parameters. We examine two different meta-controller implementations
that each use online learning. The first implementation identifies the best heuristic
search combination from various prepared combinations. The second implementation analyzes
the current self-architecting problem (e.g. changes in performance metrics, service
degradations/failures) and looks for similar, previously encountered re-architecting
problems to find an effective heuristic search combination for the current problem.
A large set of experiments demonstrates the effectiveness of the first meta-controller
implementation and indicates opportunities for improving the second meta-controller
implementation.},
doi = {10.1145/2568088.2568098},
isbn = {9781450327336},
keywords = {heuristic search, meta-controlled qos optimization, autonomic computing, soa, combinatorial search techniques, metaheuristics, automated run-time software architecting},
location = {Dublin, Ireland},
numpages = {12},
url = {https://doi.org/10.1145/2568088.2568098},
}
@Article{Miao2016,
author = {Miao, Wang and Min, Geyong and Wu, Yulei and Wang, Haozhe and Hu, Jia},
journal = {ACM Trans. Multimedia Comput. Commun. Appl.},
title = {Performance Modelling and Analysis of Software-Defined Networking under Bursty Multimedia Traffic},
year = {2016},
issn = {1551-6857},
month = sep,
number = {5s},
volume = {12},
abstract = {Software-Defined Networking (SDN) is an emerging architecture for the next-generation
Internet, providing unprecedented network programmability to handle the explosive
growth of big data driven by the popularisation of smart mobile devices and the pervasiveness
of content-rich multimedia applications. In order to quantitatively investigate the
performance characteristics of SDN networks, several research efforts from both simulation
experiments and analytical modelling have been reported in the current literature.
Among those studies, analytical modelling has demonstrated its superiority in terms
of cost-effectiveness in the evaluation of large-scale networks. However, for analytical
tractability and simplification, existing analytical models are derived based on the
unrealistic assumptions that the network traffic follows the Poisson process, which
is suitable to model nonbursty text data, and the data plane of SDN is modelled by
one simplified Single-Server Single-Queue (SSSQ) system. Recent measurement studies
have shown that, due to the features of heavy volume and high velocity, the multimedia
big data generated by real-world multimedia applications reveals the bursty and correlated
nature in the network transmission. With the aim of capturing such features of realistic
traffic patterns and obtaining a comprehensive and deeper understanding of the performance
behaviour of SDN networks, this article presents a new analytical model to investigate
the performance of SDN in the presence of the bursty and correlated arrivals modelled
by the Markov Modulated Poisson Process (MMPP). The Quality-of-Service performance
metrics in terms of the average latency and average network throughput of the SDN
networks are derived based on the developed analytical model. To consider a realistic
multiqueue system of forwarding elements, a Priority-Queue (PQ) system is adopted
to model the SDN data plane. To address the challenging problem of obtaining the key
performance metrics, for example, queue-length distribution of a PQ system with a
given service capacity, a versatile methodology extending the Empty Buffer Approximation
(EBA) method is proposed to facilitate the decomposition of such a PQ system to two
SSSQ systems. The validity of the proposed model is demonstrated through extensive
simulation experiments. To illustrate its application, the developed model is then
utilised to study the strategy of the network configuration and resource allocation
in SDN networks.},
address = {New York, NY, USA},
articleno = {77},
doi = {10.1145/2983637},
issue_date = {December 2016},
keywords = {performance modelling and analysis, Software-defined networking, multimedia big data, queueing decomposition, resource allocation},
numpages = {19},
publisher = {Association for Computing Machinery},
url = {https://doi.org/10.1145/2983637},
}
@Article{Tiwari2014,
author = {Tiwari, Umesh and Kumar, Santosh},
journal = {SIGSOFT Softw. Eng. Notes},
title = {In-out Interaction Complexity Metrics for Component-Based Software},
year = {2014},
issn = {0163-5948},
month = sep,
number = {5},
pages = {1–4},
volume = {39},
abstract = {In the current state of software engineering, component-based software development
is one of the most alluring paradigms for developing large and complex software products.
In this software engineering methodology pre-engineered, pre-tested, context-based,
adaptable, deployable software components are assembled according to a predefined
architecture. Rather than developing a system from scratch, component-based software
development emphasizes the integration of these components according to the user's