{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,1,12]],"date-time":"2025-01-12T00:10:25Z","timestamp":1736640625174,"version":"3.32.0"},"reference-count":44,"publisher":"Wiley","issue":"7","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":4869,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1993,7]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>An examination of the structure of fault\u2010tolerant systems incorporating backward error recovery indicates a partitioning into two broad classes. Two canonical models, each representing a particular class of systems, have been constructed. The first model incorporates objects and actions as the entities for program construction whereas the second model employs communicating processes and conversations. Applications in areas such as office information and banking systems are typically described and built in terms of the first model whereas applications in the area of process control are usually described and built in terms of the second model. The paper claims that the two models are duals of each other and presents arguments and examples to substantiate this claim. It will be shown that the techniques that have been developed within the context of one model turn out to have interesting and hitherto unexplored duals in the other model.<\/jats:p>","DOI":"10.1002\/spe.4380230706","type":"journal-article","created":{"date-parts":[[2006,11,17]],"date-time":"2006-11-17T16:43:12Z","timestamp":1163781792000},"page":"773-798","source":"Crossref","is-referenced-by-count":12,"title":["The duality of fault\u2010tolerant system structures"],"prefix":"10.1002","volume":"23","author":[{"given":"Santosh K.","family":"Shrivastava","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Luigi V.","family":"Mancini","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Brian","family":"Randell","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_2","doi-asserted-by":"crossref","unstructured":"H. C.LauerandR. M.Needham \u2018On the duality of operating system structures\u2019 Proc. 2nd Int. Symp. on Operating Systems INRIA October1978;","DOI":"10.1145\/850657.850658"},{"key":"e_1_2_1_2_3","first-page":"3","volume":"13","year":"1979","journal-title":"ACM Operating System Review"},{"key":"e_1_2_1_3_2","first-page":"19","volume-title":"Lecture Notes in Computer Science","author":"Shrivastava S. K.","year":"1987"},{"key":"e_1_2_1_4_2","first-page":"2","volume-title":"High Performance Transaction Systems, Lecture Notes in Computer Science","author":"Bever M.","year":"1989"},{"key":"e_1_2_1_5_2","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-08755-9_9"},{"key":"e_1_2_1_6_2","doi-asserted-by":"publisher","DOI":"10.1145\/2166.357215"},{"key":"e_1_2_1_7_2","doi-asserted-by":"crossref","unstructured":"S. K.Shrivastava G. N.DixonandG. D.Parrington \u2018An overview of Arjuna: a programming system for reliable distributed computing\u2019 IEEE Software January1991 pp.66\u201373.","DOI":"10.1109\/52.62934"},{"key":"e_1_2_1_8_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1985.232244"},{"issue":"6","key":"e_1_2_1_9_2","doi-asserted-by":"crossref","first-page":"686","DOI":"10.1109\/32.24722","article-title":"An overview of the Nexus distributed operating system design","volume":"15","author":"Triphati A. R.","year":"1989","journal-title":"IEEE Trans. Soft. Eng."},{"key":"e_1_2_1_10_2","doi-asserted-by":"publisher","DOI":"10.1007\/BF00289593"},{"key":"e_1_2_1_11_2","doi-asserted-by":"publisher","DOI":"10.1145\/360363.360369"},{"key":"e_1_2_1_12_2","unstructured":"J. E. B.Moss \u2018Nested transactions: an approach to reliable distributed computing\u2019 Ph.D. Thesis (Technical Report 260) MIT Lab. for Computer Science Cambridge MA. 1981."},{"key":"e_1_2_1_13_2","doi-asserted-by":"crossref","unstructured":"C. T.Davies \u2018Recovery semantics for a DB\/DC system\u2019 Proc. ACM Nat. Conf. 1973 pp.136\u2013141.","DOI":"10.1145\/800192.805694"},{"key":"e_1_2_1_14_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1986.6312921"},{"key":"e_1_2_1_15_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1982.235106"},{"key":"e_1_2_1_16_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1987.232562"},{"key":"e_1_2_1_17_2","unstructured":"P. M.MerlinandB.Randell \u2018State restoration in distributed systems\u2019 Digest of Papers FTCS\u20108 Toulouse June1978 pp.129\u2013134."},{"key":"e_1_2_1_18_2","doi-asserted-by":"publisher","DOI":"10.1145\/356725.356729"},{"key":"e_1_2_1_19_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1980.230469"},{"key":"e_1_2_1_20_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1978.231500"},{"key":"e_1_2_1_21_2","unstructured":"Y.TamirandC. H.Sequin \u2018Error recovery in multicomputers using global checkpoints\u2019 Proc. 13th Int. Conf. on Parallel Processing August1984."},{"key":"e_1_2_1_22_2","unstructured":"W. G.Wood \u2018A decentralized recovery control protocol\u2019 Digest of Papers FTCS\u201011 Portland 1981 pp.159\u2013164."},{"key":"e_1_2_1_23_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1975.6312842"},{"key":"e_1_2_1_24_2","doi-asserted-by":"publisher","DOI":"10.1145\/214451.214456"},{"key":"e_1_2_1_25_2","unstructured":"S. T.GregoryandJ. C.Knight \u2018A new linguistic approach to backward error recovery\u2019 Digest of Papers FTCS\u201015 Ann Arbor June1985 pp.404\u2013409."},{"key":"e_1_2_1_26_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1983.237017"},{"key":"e_1_2_1_27_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1986.6313047"},{"key":"e_1_2_1_28_2","doi-asserted-by":"publisher","DOI":"10.1145\/390017.808319"},{"volume-title":"Distributed Systems and Computer Networks","year":"1987","author":"Sloman M.","key":"e_1_2_1_29_2"},{"key":"e_1_2_1_30_2","doi-asserted-by":"crossref","unstructured":"C.MohanandB. G.Lindsay \u2018Efficient commit protocols for the tree of processes model of distributed transactions\u2019 Proc. 2nd ACM Symp. on Princ. of Dist. Comp. Montreal 1983 pp.76\u201388.","DOI":"10.1145\/800221.806711"},{"volume-title":"Concurrency Control and Recovery in Database Systems","year":"1987","author":"Bernstein P. A.","key":"e_1_2_1_31_2"},{"key":"e_1_2_1_32_2","doi-asserted-by":"publisher","DOI":"10.1145\/1994.2207"},{"key":"e_1_2_1_33_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1985.232242"},{"issue":"4","key":"e_1_2_1_34_2","first-page":"560","article-title":"Achieving robustness in distributed database systems","volume":"9","author":"Eager D. L.","year":"1984","journal-title":"ACM Trans. on Database Systems"},{"key":"e_1_2_1_35_2","doi-asserted-by":"crossref","unstructured":"L. V.ManciniandS. K.Shrivastava \u2018Replication within atomic actions and conversations: a case study in fault tolerance duality\u2019 Digest of Papers FTCS\u201019 Chicago June1989 pp.454\u2013461.","DOI":"10.1109\/FTCS.1989.105619"},{"key":"e_1_2_1_36_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1985.231893"},{"key":"e_1_2_1_37_2","first-page":"64","volume-title":"Resilient Computing Systems","author":"Lee P. A.","year":"1985"},{"key":"e_1_2_1_38_2","unstructured":"R. H.Campbell K. H.HortonandG. G.Belford \u2018Simulations of a fault\u2010tolerant deadline mechanism\u2019 Digest of Papers FTCS\u20109 Madison June1979 pp.95\u2013101."},{"key":"e_1_2_1_39_2","doi-asserted-by":"crossref","unstructured":"L.LinandM.Ahamad \u2018Checkpointing and rollback recovery in distributed object based systems\u2019 Digest of Papers FTCS\u201020 Newcastle upon Tyne June1990 pp.97\u2013104.","DOI":"10.1109\/FTCS.1990.89340"},{"key":"e_1_2_1_40_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1987.233200"},{"key":"e_1_2_1_41_2","doi-asserted-by":"publisher","DOI":"10.1109\/32.21756"},{"key":"e_1_2_1_42_2","doi-asserted-by":"crossref","unstructured":"S. T.GregoryandJ. C.Knight \u2018On the provision of backward error recovery in production programming languages\u2019 Digest of Papers FTCS\u201019 Chicago June1989 pp.506\u2013511.","DOI":"10.1109\/FTCS.1989.105627"},{"key":"e_1_2_1_43_2","unstructured":"B. J.Nelson \u2018Remote procedure call\u2019 Ph.D. Thesis Department of Computer Science Carnegie\u2010Mellon University Pittsburgh CMU\u2010CS\u201081\u2013119 May1981."},{"key":"e_1_2_1_44_2","doi-asserted-by":"publisher","DOI":"10.1093\/comjnl\/34.6.503"}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380230706","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380230706","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,1,11]],"date-time":"2025-01-11T23:52:37Z","timestamp":1736639557000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380230706"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1993,7]]},"references-count":44,"journal-issue":{"issue":"7","published-print":{"date-parts":[[1993,7]]}},"alternative-id":["10.1002\/spe.4380230706"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380230706","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"type":"print","value":"0038-0644"},{"type":"electronic","value":"1097-024X"}],"subject":[],"published":{"date-parts":[[1993,7]]}}}