An Abstraction Technique for Verifying Shared-Memory Concurrency

Modern concurrent and distributed software is highly complex. Techniques to reason about the correct behaviour of such software are essential to ensure its reliability. To be able to reason about realistic programs, these techniques must be modular and compositional as well as practical by being sup...

Full description

Saved in:
Bibliographic Details
Published in:Applied sciences Vol. 10; no. 11; p. 3928
Main Authors: Oortwijn, Wytse, Gurov, Dilian, Huisman, Marieke
Format: Journal Article
Language:English
Published: MDPI AG 01.06.2020
Subjects:
ISSN:2076-3417, 2076-3417
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Abstract Modern concurrent and distributed software is highly complex. Techniques to reason about the correct behaviour of such software are essential to ensure its reliability. To be able to reason about realistic programs, these techniques must be modular and compositional as well as practical by being supported by automated tools. However, many existing approaches for concurrency verification are theoretical and focus primarily on expressivity and generality. This paper contributes a technique for verifying behavioural properties of concurrent and distributed programs that balances expressivity and usability. The key idea of the approach is that program behaviour is abstractly modelled using process algebra, and analysed separately. The main difficulty is presented by the typical abstraction gap between program implementations and their models. Our approach bridges this gap by providing a deductive technique for formally linking programs with their process-algebraic models. Our verification technique is modular and compositional, is proven sound with Coq, and has been implemented in the automated concurrency verifier VerCors. Moreover, our technique is demonstrated on multiple case studies, including the verification of a leader election protocol.
AbstractList Modern concurrent and distributed software is highly complex. Techniques to reason about the correct behaviour of such software are essential to ensure its reliability. To be able to reason about realistic programs, these techniques must be modular and compositional as well as practical by being supported by automated tools. However, many existing approaches for concurrency verification are theoretical and focus primarily on expressivity and generality. This paper contributes a technique for verifying behavioural properties of concurrent and distributed programs that balances expressivity and usability. The key idea of the approach is that program behaviour is abstractly modelled using process algebra, and analysed separately. The main difficulty is presented by the typical abstraction gap between program implementations and their models. Our approach bridges this gap by providing a deductive technique for formally linking programs with their process-algebraic models. Our verification technique is modular and compositional, is proven sound with Coq, and has been implemented in the automated concurrency verifier VerCors. Moreover, our technique is demonstrated on multiple case studies, including the verification of a leader election protocol.
Modern concurrent and distributed software is highly complex. Techniques to reason about the correct behaviour of such software are essential to ensure its reliability. To be able to reason about realistic programs, these techniques must be modular and compositional as well as practical by being supported by automated tools. However, many existing approaches for concurrency verification are theoretical and focus primarily on expressivity and generality. This paper contributes a technique for verifying behavioural properties of concurrent and distributed programs that balances expressivity and usability. The key idea of the approach is that program behaviour is abstractly modelled using process algebra, and analysed separately. The main difficulty is presented by the typical abstraction gap between program implementations and their models. Our approach bridges this gap by providing a deductive technique for formally linking programs with their process-algebraic models. Our verification technique is modular and compositional, is proven sound with Coq, and has been implemented in the automated concurrency verifier VerCors. Moreover, our technique is demonstrated on multiple case studies, including the verification of a leader election protocol. Keywords: concurrency verification; program logics; process algebra; code verification; abstraction
Audience Academic
Author Huisman, Marieke
Oortwijn, Wytse
Gurov, Dilian
Author_xml – sequence: 1
  givenname: Wytse
  orcidid: 0000-0002-5244-2519
  surname: Oortwijn
  fullname: Oortwijn, Wytse
– sequence: 2
  givenname: Dilian
  orcidid: 0000-0002-0074-8786
  surname: Gurov
  fullname: Gurov, Dilian
– sequence: 3
  givenname: Marieke
  orcidid: 0000-0003-4467-072X
  surname: Huisman
  fullname: Huisman, Marieke
BackLink https://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-278787$$DView record from Swedish Publication Index (Kungliga Tekniska Högskolan)
BookMark eNptkU9vEzEQxS1UJEroiS-wd7TFs_ba6xur8K9SEQeiXlfe8ThxSezg3Qjl2-M0VVUQnoNH4_d-I_m9ZhcxRWLsLfBrIQx_b_d74ADCNN0LdtlwrWohQV8861-xq2m65-UYEB3wS_ahj1U_TnO2OIcUqxXhJoZfB6p8ytUd5eCPIa6rHxubydXfaJfysVqmiIecKeLxDXvp7Xaiq8d7wVafP62WX-vb719ulv1tjRLEXLtRj2CdJaSGWi09wKgNybZR2qJBiU2rNXQAquFKjOhbV15a67iVWogFuzljXbL3wz6Hnc3HIdkwPAxSXg82zwG3NHRGt5KcMUZxKdw4dkjoFEj0VqoCX7D6zJp-0_4w_kX7GO76B9rPeTM0uitV9Ndn_doWfIg-nb6rlKNdwBKCD2XeK9FJ3mlliuHd2YA5TVMm_7QC-HDKaniWVVHDP2oMsz2lUdaE7X89fwA66Zhq
CitedBy_id crossref_primary_10_32604_cmes_2021_017213
crossref_primary_10_1109_ACCESS_2021_3081742
crossref_primary_10_3390_app10249119
Cites_doi 10.1007/978-3-642-22110-1
10.1016/S0019-9958(84)80025-X
10.1007/978-3-642-14295-6
10.1007/978-3-319-72308-2_12
10.1109/TSE.1977.229904
10.1007/978-3-642-20398-5
10.1145/2676726.2676980
10.1093/comjnl/37.4.259
10.1145/2908080.2908118
10.1007/3-540-45949-9
10.7551/mitpress/9946.001.0001
10.1145/2807591.2807635
10.1145/78969.78972
10.1007/978-3-030-34968-4
10.1007/978-3-642-14107-2_24
10.4204/EPTCS.211.7
10.1007/978-3-540-74407-8
10.1145/69575.69577
10.1145/1040305.1040327
10.1007/978-3-030-39322-9
10.1016/j.tcs.2006.12.034
10.1007/BF00268134
10.1145/2500365.2500600
10.1145/1190216.1190235
10.1007/978-3-642-10672-9
10.1145/3127024.3127032
10.1007/978-3-540-74061-2
10.1109/ASE.2015.99
10.1007/978-3-540-74591-4
10.1016/j.tcs.2006.12.035
10.1007/978-1-84800-223-4
10.1007/978-3-540-78739-6
10.1007/978-3-662-49122-5
10.1145/2635631.2635849
10.1145/964001.964024
10.1145/2951913.2951943
10.1007/978-3-662-44202-9
ContentType Journal Article
Copyright COPYRIGHT 2020 MDPI AG
Copyright_xml – notice: COPYRIGHT 2020 MDPI AG
DBID AAYXX
CITATION
ADTPV
AFDQA
AOWAS
D8T
D8V
ZZAVC
DOA
DOI 10.3390/app10113928
DatabaseName CrossRef
SwePub
SWEPUB Kungliga Tekniska Högskolan full text
SwePub Articles
SWEPUB Freely available online
SWEPUB Kungliga Tekniska Högskolan
SwePub Articles full text
DOAJ Directory of Open Access Journals
DatabaseTitle CrossRef
DatabaseTitleList


CrossRef
Database_xml – sequence: 1
  dbid: DOA
  name: DOAJ Directory of Open Access Journals
  url: https://www.doaj.org/
  sourceTypes: Open Website
DeliveryMethod fulltext_linktorsrc
Discipline Engineering
Sciences (General)
EISSN 2076-3417
ExternalDocumentID oai_doaj_org_article_89754ed9996043dbb8cecd614cfa4606
oai_DiVA_org_kth_278787
A638408769
10_3390_app10113928
GeographicLocations Switzerland
GeographicLocations_xml – name: Switzerland
GroupedDBID .4S
2XV
5VS
7XC
8CJ
8FE
8FG
8FH
AADQD
AAFWJ
AAYXX
ADBBV
ADMLS
AFFHD
AFKRA
AFPKN
AFZYC
ALMA_UNASSIGNED_HOLDINGS
APEBS
ARCSS
BCNDV
BENPR
CCPQU
CITATION
CZ9
D1I
D1J
D1K
GROUPED_DOAJ
IAO
IGS
ITC
K6-
K6V
KC.
KQ8
L6V
LK5
LK8
M7R
MODMG
M~E
OK1
P62
PHGZM
PHGZT
PIMPY
PROAC
TUS
ADTPV
AFDQA
AOWAS
D8T
D8V
IPNFZ
RIG
ZZAVC
ID FETCH-LOGICAL-c413t-db7b1adaece2e574f11b79e45267ac9c4c2577181162063bcf5d67a5ad0a4733
IEDL.DBID DOA
ISICitedReferencesCount 5
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000543385900265&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
ISSN 2076-3417
IngestDate Fri Oct 03 12:53:18 EDT 2025
Tue Nov 04 16:54:16 EST 2025
Tue Nov 04 17:13:14 EST 2025
Sat Nov 29 07:11:02 EST 2025
Tue Nov 18 22:34:28 EST 2025
IsDoiOpenAccess true
IsOpenAccess true
IsPeerReviewed true
IsScholarly true
Issue 11
Language English
LinkModel DirectLink
MergedId FETCHMERGED-LOGICAL-c413t-db7b1adaece2e574f11b79e45267ac9c4c2577181162063bcf5d67a5ad0a4733
ORCID 0000-0002-5244-2519
0000-0002-0074-8786
0000-0003-4467-072X
OpenAccessLink https://doaj.org/article/89754ed9996043dbb8cecd614cfa4606
ParticipantIDs doaj_primary_oai_doaj_org_article_89754ed9996043dbb8cecd614cfa4606
swepub_primary_oai_DiVA_org_kth_278787
gale_infotracacademiconefile_A638408769
crossref_primary_10_3390_app10113928
crossref_citationtrail_10_3390_app10113928
PublicationCentury 2000
PublicationDate 2020-06-01
PublicationDateYYYYMMDD 2020-06-01
PublicationDate_xml – month: 06
  year: 2020
  text: 2020-06-01
  day: 01
PublicationDecade 2020
PublicationTitle Applied sciences
PublicationYear 2020
Publisher MDPI AG
Publisher_xml – name: MDPI AG
References Paskevich (ref_14) 2017; Volume 10712
ref_58
ref_13
ref_57
ref_12
ref_11
ref_55
ref_10
ref_54
Herlihy (ref_70) 1990; 12
ref_52
ref_19
(ref_2) 2010; Volume 6183
ref_18
ref_17
ref_16
ref_15
ref_59
Sergey (ref_6) 2017; 2
Lamport (ref_22) 1977; SE-3
ref_61
(ref_24) 2007; 375
Shao (ref_51) 2014; Volume 8410
ref_25
ref_68
ref_66
ref_21
ref_65
ref_20
ref_64
ref_63
ref_62
Brookes (ref_23) 2007; 375
Owicki (ref_26) 1975; 6
ref_29
ref_27
Cousot (ref_36) 2003; Volume 2694
Yang (ref_56) 2017; Volume 10201
ref_71
Vitek (ref_69) 2015; Volume 9032
ref_35
ref_34
ref_33
ref_31
Polikarpova (ref_8) 2017; Volume 10510
Krishna (ref_72) 2017; 2
ref_73
Fokkink (ref_32) 1994; 37
ref_39
ref_38
ref_37
Jones (ref_28) 1983; 5
ref_47
Hinrichsen (ref_60) 2019; 4
ref_46
ref_45
ref_44
ref_43
Calinescu (ref_67) 2015; Volume 9276
ref_42
ref_41
ref_40
ref_1
Bergstra (ref_30) 1984; 60
ref_3
ref_49
ref_48
ref_9
Egyed (ref_50) 2015; Volume 9033
ref_5
ref_4
ref_7
Feng (ref_53) 2009; Volume 44
References_xml – ident: ref_9
– ident: ref_63
  doi: 10.1007/978-3-642-22110-1
– ident: ref_49
– volume: 60
  start-page: 109
  year: 1984
  ident: ref_30
  article-title: Process algebra for Synchronous Communication
  publication-title: Inf. Control
  doi: 10.1016/S0019-9958(84)80025-X
– ident: ref_71
  doi: 10.1007/978-3-642-14295-6
– volume: Volume 10712
  start-page: 191
  year: 2017
  ident: ref_14
  article-title: An Abstraction Technique for Describing Concurrent Program Behaviour
  publication-title: Proceedings of the Verified Software: Theories, Tools, and Experiments (VSTTE), Heidelberg, Germany, 22–23 July 2017
  doi: 10.1007/978-3-319-72308-2_12
– ident: ref_39
– volume: SE-3
  start-page: 125
  year: 1977
  ident: ref_22
  article-title: Proving the Correctness of Multiprocess Programs
  publication-title: IEEE Trans. Softw. Eng.
  doi: 10.1109/TSE.1977.229904
– ident: ref_1
– ident: ref_35
– volume: 2
  start-page: 1
  year: 2017
  ident: ref_72
  article-title: Go with the Flow: Compositional Abstractions for Concurrent Data Structures
  publication-title: Princ. Programm. Lang.
– ident: ref_7
  doi: 10.1007/978-3-642-20398-5
– ident: ref_58
– ident: ref_54
  doi: 10.1145/2676726.2676980
– volume: 37
  start-page: 259
  year: 1994
  ident: ref_32
  article-title: Basic Process Algebra with Iteration: Completeness of its Equational Axioms
  publication-title: Comput. J.
  doi: 10.1093/comjnl/37.4.259
– ident: ref_45
  doi: 10.1145/2908080.2908118
– ident: ref_4
– ident: ref_13
  doi: 10.1007/3-540-45949-9
– ident: ref_31
– ident: ref_27
– ident: ref_52
– ident: ref_21
  doi: 10.7551/mitpress/9946.001.0001
– ident: ref_48
– ident: ref_62
  doi: 10.1145/2807591.2807635
– volume: 12
  start-page: 463
  year: 1990
  ident: ref_70
  article-title: Linearizability: A Correctness Condition for Concurrent Objects
  publication-title: Trans. Programm. Lang. Syst.
  doi: 10.1145/78969.78972
– ident: ref_41
– ident: ref_17
  doi: 10.1007/978-3-030-34968-4
– volume: Volume 9033
  start-page: 202
  year: 2015
  ident: ref_50
  article-title: Verification of Loop Parallelisations
  publication-title: Proceedings of the Fundamental Approaches to Software Engineering (FASE), London, UK, 11–18 April 2015
– ident: ref_66
– volume: Volume 8410
  start-page: 149
  year: 2014
  ident: ref_51
  article-title: Impredicative Concurrent Abstract Predicates
  publication-title: Proceedings of the European Symposium on Programming (ESOP), Grenoble, France, 5–13 April 2014
– volume: Volume 2694
  start-page: 55
  year: 2003
  ident: ref_36
  article-title: Checking Interference with Fractional Permissions
  publication-title: Proceedings of the Static Analysis (SAS), San Diego, CA, USA, 11–13 June 2003
– volume: Volume 6183
  start-page: 504
  year: 2010
  ident: ref_2
  article-title: Concurrent Abstract Predicates
  publication-title: Proceedings of the European Conference on Object-Oriented Programming (ECOOP), Maribor, Slovenia, 21–25 June 2010
  doi: 10.1007/978-3-642-14107-2_24
– ident: ref_46
  doi: 10.4204/EPTCS.211.7
– ident: ref_55
  doi: 10.1007/978-3-540-74407-8
– volume: 5
  start-page: 596
  year: 1983
  ident: ref_28
  article-title: Tentative Steps Toward a Development Method for Interfering Programs
  publication-title: Trans. Programm. Lang. Syst.
  doi: 10.1145/69575.69577
– ident: ref_37
  doi: 10.1145/1040305.1040327
– ident: ref_59
– ident: ref_16
  doi: 10.1007/978-3-030-39322-9
– volume: 375
  start-page: 227
  year: 2007
  ident: ref_23
  article-title: A Semantics for Concurrent Separation Logic
  publication-title: Theor. Comput. Sci.
  doi: 10.1016/j.tcs.2006.12.034
– volume: Volume 9276
  start-page: 84
  year: 2015
  ident: ref_67
  article-title: History-Based Verification of Functional Behaviour of Concurrent Programs
  publication-title: Proceedings of the Software Engineering and Formal Methods (SEFM)
– volume: 6
  start-page: 319
  year: 1975
  ident: ref_26
  article-title: An Axiomatic Proof Technique for Parallel Programs
  publication-title: Acta Inform.
  doi: 10.1007/BF00268134
– ident: ref_34
– volume: Volume 9032
  start-page: 333
  year: 2015
  ident: ref_69
  article-title: Specifying and Verifying Concurrent Algorithms with Histories and Subjectivity
  publication-title: Proceedings of the European Symposium on Programming (ESOP)
– ident: ref_47
– ident: ref_11
– ident: ref_3
  doi: 10.1145/2500365.2500600
– ident: ref_43
  doi: 10.1145/1190216.1190235
– ident: ref_57
  doi: 10.1007/978-3-642-10672-9
– ident: ref_65
  doi: 10.1145/3127024.3127032
– ident: ref_18
– ident: ref_44
– ident: ref_61
  doi: 10.1007/978-3-540-74061-2
– ident: ref_64
  doi: 10.1109/ASE.2015.99
– ident: ref_73
– ident: ref_40
  doi: 10.1007/978-3-540-74591-4
– volume: 4
  start-page: 1
  year: 2019
  ident: ref_60
  article-title: Actris: Session-Type Based Reasoning in Separation Logic
  publication-title: Proc. ACM Programm. Lang.
– volume: 375
  start-page: 271
  year: 2007
  ident: ref_24
  article-title: Resources, Concurrency and Local Reasoning
  publication-title: Theor. Comput. Sci.
  doi: 10.1016/j.tcs.2006.12.035
– ident: ref_20
  doi: 10.1007/978-1-84800-223-4
– ident: ref_25
– ident: ref_42
  doi: 10.1007/978-3-540-78739-6
– ident: ref_33
– ident: ref_10
  doi: 10.1007/978-3-662-49122-5
– volume: 2
  start-page: 1
  year: 2017
  ident: ref_6
  article-title: Programming and Proving with Distributed Protocols
  publication-title: Princ. Programm. Lang.
– ident: ref_12
– volume: Volume 10201
  start-page: 696
  year: 2017
  ident: ref_56
  article-title: The Essence of Higher-Order Concurrent Separation Logic
  publication-title: Proceedings of the European Symposium on Programming (ESOP)
– ident: ref_68
  doi: 10.1145/2635631.2635849
– ident: ref_38
  doi: 10.1145/964001.964024
– ident: ref_29
  doi: 10.1145/2951913.2951943
– ident: ref_15
  doi: 10.1007/978-3-030-34968-4
– volume: Volume 10510
  start-page: 102
  year: 2017
  ident: ref_8
  article-title: The VerCors Tool Set: Verification of Parallel and Concurrent Software
  publication-title: Proceedings of the International Conference on Integrated Formal Methods (iFM), Torino, Italy, 20–22 September 2017
– ident: ref_5
  doi: 10.1007/978-3-662-44202-9
– ident: ref_19
– volume: Volume 44
  start-page: 315
  year: 2009
  ident: ref_53
  article-title: Local Rely-Guarantee Reasoning
  publication-title: Proceedings of the Principles of Programming Languages (POPL)
SSID ssj0000913810
Score 2.1806514
Snippet Modern concurrent and distributed software is highly complex. Techniques to reason about the correct behaviour of such software are essential to ensure its...
SourceID doaj
swepub
gale
crossref
SourceType Open Website
Open Access Repository
Aggregation Database
Enrichment Source
Index Database
StartPage 3928
SubjectTerms Abstraction
Analysis
code verification
Collective memory
concurrency verification
Concurrent programming
Methods
Multitasking
process algebra
program logics
Verification (Logic)
Title An Abstraction Technique for Verifying Shared-Memory Concurrency
URI https://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-278787
https://doaj.org/article/89754ed9996043dbb8cecd614cfa4606
Volume 10
WOSCitedRecordID wos000543385900265&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
journalDatabaseRights – providerCode: PRVAON
  databaseName: DOAJ Directory of Open Access Journals
  customDbUrl:
  eissn: 2076-3417
  dateEnd: 99991231
  omitProxy: false
  ssIdentifier: ssj0000913810
  issn: 2076-3417
  databaseCode: DOA
  dateStart: 20110101
  isFulltext: true
  titleUrlDefault: https://www.doaj.org/
  providerName: Directory of Open Access Journals
– providerCode: PRVHPJ
  databaseName: ROAD: Directory of Open Access Scholarly Resources
  customDbUrl:
  eissn: 2076-3417
  dateEnd: 99991231
  omitProxy: false
  ssIdentifier: ssj0000913810
  issn: 2076-3417
  databaseCode: M~E
  dateStart: 20110101
  isFulltext: true
  titleUrlDefault: https://road.issn.org
  providerName: ISSN International Centre
– providerCode: PRVPQU
  databaseName: ProQuest Central
  customDbUrl:
  eissn: 2076-3417
  dateEnd: 99991231
  omitProxy: false
  ssIdentifier: ssj0000913810
  issn: 2076-3417
  databaseCode: BENPR
  dateStart: 20110101
  isFulltext: true
  titleUrlDefault: https://www.proquest.com/central
  providerName: ProQuest
– providerCode: PRVPQU
  databaseName: Publicly Available Content Database
  customDbUrl:
  eissn: 2076-3417
  dateEnd: 99991231
  omitProxy: false
  ssIdentifier: ssj0000913810
  issn: 2076-3417
  databaseCode: PIMPY
  dateStart: 20110101
  isFulltext: true
  titleUrlDefault: http://search.proquest.com/publiccontent
  providerName: ProQuest
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwrZ1LT9wwEIBHFeXQHlB5qdsH8gFRqBQRJ04c35pSUJEK2sNqRU-RPXYEAoUKlkr8-844YRWkSr30mjixMxPPw4m_AdilIBcLHaok1UgJSkgxsapME6e0LXOyfz4u5sx_6PPz6uLCTEelvvifsB4P3AvusDK6UMGbSBHJvXMVBvTkVLDlm0bYdqrNKJmKNthIRlf1G_Jyyuv5ezC9fRTvcN31kQuKpP6lPX6GC40u5uQNrA2xoaj7Ma3Di9BtwOsRMXAD1oe5eC_2B2D0wSZ8qTtRO16ziJsUxOyJyyooIhVzujRuZhIMZw4-OeOfax_F0W2HEc6Ej1swOzmeHX1PhsoICZLTWSTeaSettwFDFgqtWimdNoHLhWuLBhXSTCSvI2WZUQzisC08nSmsT63Seb4NK91tF96CyFLTemkVVpgpzK3JWlkGl1qUPs9sOYHPT7JqcKCGc_GKm4ayBxZsMxLsBHaXjX_1sIy_N_vKQl82YcJ1PEB6bwa9N__S-wQ-scoanocsXztsJ6DHYqJVU5NhUczbMxPY67X6rMNvV_M6dni9uGwyMluVfvc_xvUeXmWckseFmg-wsrh7CB9hFX8vru7vduJbugMvp6dn059_AE6B7Xk
linkProvider Directory of Open Access Journals
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=An+Abstraction+Technique+for+Verifying+Shared-Memory+Concurrency&rft.jtitle=Applied+sciences&rft.au=Wytse+Oortwijn&rft.au=Dilian+Gurov&rft.au=Marieke+Huisman&rft.date=2020-06-01&rft.pub=MDPI+AG&rft.eissn=2076-3417&rft.volume=10&rft.issue=11&rft.spage=3928&rft_id=info:doi/10.3390%2Fapp10113928&rft.externalDBID=DOA&rft.externalDocID=oai_doaj_org_article_89754ed9996043dbb8cecd614cfa4606
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2076-3417&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2076-3417&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2076-3417&client=summon