{"title":"Multiparty Compatibility for Concurrent Objects","authors":"R. Perera, J. Lange, S. Gay","doi":"10.4204/EPTCS.211.8","DOIUrl":null,"url":null,"abstract":"Objects and actors are communicating state machines, offering and consuming different services at \ndifferent points in their lifecycle. Two complementary challenges arise when programming such \nsystems. When objects interact, their state machines must be “compatible”, so that services are \nrequested only when they are available. Dually, when objects refine other objects, their state machines \nmust be “compliant”, so that services are honoured whenever they are promised. \nIn this paper we show how the idea of multiparty compatibility from the session types literature \ncan be applied to both of these problems. We present an untyped language in which concurrent objects \nare checked automatically for compatibility and compliance. For simple objects, checking can be \nexhaustive and has the feel of a type system. More complex objects can be partially validated via test \ncases, leading to a methodology closer to continuous testing. Our proof-of-concept implementation \nis limited in some important respects, but demonstrates the potential value of the approach and the \nrelationship to existing software development practices.","PeriodicalId":53164,"journal":{"name":"Journal of Historic Buildings and Places","volume":"90 1","pages":"73-82"},"PeriodicalIF":0.1000,"publicationDate":"2016-06-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"10","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Journal of Historic Buildings and Places","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.4204/EPTCS.211.8","RegionNum":4,"RegionCategory":"历史学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"0","JCRName":"ARCHAEOLOGY","Score":null,"Total":0}
引用次数: 10
Abstract
Objects and actors are communicating state machines, offering and consuming different services at
different points in their lifecycle. Two complementary challenges arise when programming such
systems. When objects interact, their state machines must be “compatible”, so that services are
requested only when they are available. Dually, when objects refine other objects, their state machines
must be “compliant”, so that services are honoured whenever they are promised.
In this paper we show how the idea of multiparty compatibility from the session types literature
can be applied to both of these problems. We present an untyped language in which concurrent objects
are checked automatically for compatibility and compliance. For simple objects, checking can be
exhaustive and has the feel of a type system. More complex objects can be partially validated via test
cases, leading to a methodology closer to continuous testing. Our proof-of-concept implementation
is limited in some important respects, but demonstrates the potential value of the approach and the
relationship to existing software development practices.