Abstract
From entertainment to personal communication, and from business to safety-critical applications, the world increasingly relies on distributed systems. Despite looking simple, distributed systems hide a major source of complexity: tolerating faults and component crashes is very difficult, due to the incompleteness of (remote) knowledge. The need to overcome this problem, and provide different guarantees to applications, sparked a huge research effort and resulted in a large body of communication protocols, and middleware. Thus, it is worthwhile to survey the state of the art in distributed systems, with a particular emphasis on reliable communication. We discuss key concepts in reliable communication, such as interaction patterns (e.g., one-way vs. request-response, synchronous vs. asynchronous), reliability semantics (e.g., at-least-once, at-most-once), and reliability targets (e.g., message, conversation), and we analyze a wide set of current communication solutions, which map to the different concepts. Building on the concepts, we analyze applications that have different reliable communication needs. As a result, we observe that, in most cases, elaborate communication solutions offering superior guarantees are purely academic efforts that cannot compete with the popularity and maturity of established, albeit poorer solutions. Based on our analysis, we identify and discuss open research topics in this area
چکیده
جهان امروزی اعم از سرگرمی تا ارتباطات شخصی، و از کاربردهای تجارتی تا کارهای امنیتی، به طور فزاینده بر سیستم های توزیع شده متکی است. علیرغم اینکه سیستم توزیع شده ساده به نظر میآید، اما یکی از منابع اصلی پیچیدگی را پنهان می کند: به دلیل ناتمام بودن دانش (از راه دور)، تحمل خطاها و در همریزی اجزا بسیار دشوار است. نیاز به غلبه بر این مشکل و ارائه تضمینهای مختلف برای کاربردها، موجب تلاشهای زیادی در زمینه تحقیقات شد و باعث شد که بدنهی پروتکلهای ارتباطی و میان افزاری، بزرگ شود. بنابراين ارزشيابي تکنولوژی در سيستمهاي توزيع شده، همراه با تاکيد خاص بر ارتباطات قابل اعتماد، ارزشمند است. ما درباره مفاهیم کلیدی در ارتباطات قابل اعتماد صحبت میکنیم، مانند الگوهای اثر متقابل (مثلا یک طرفه در برابر درخواست-پاسخ، همزمان در برابر ناهمزمان)، معانی قابلیت اطمینان (مثلا حداقل-یک بار، حداکثر-یک بار) و اهداف قابلیت اطمینان (مثلا پیام، مکالمه)، و مجموعه وسیعی از راه حلهای ارتباطی فعلی را تحلیل میکنیم که به مفاهیم متفاوتی اشاره دارند. با تکیه بر مفاهیم، کاربردهایی را که دارای نیازهای ارتباطی قابل اطمینان هستند، تحلیل میکنیم. در نتیجه، مشاهده میکنیم که در اغلب موارد، راهکارهای ارتباطی پیچیده که تضمینهای برتری را ارائه میدهند، صرفا تلاشهای علمی هستند که نمیتوانند با محبوبیت و بلوغ راه حلهای پابرجا و حتی ضعیف رقابت کنند. بر اساس تحلیلمان، موضوعهای تحقیقاتی باز در این زمینه را شناسایی کرده و در مورد آنها بحث میکنیم.
1-مقدمه
برای بسیاری از کاربرهای توزیع شده که از کسب و کارها و خدمات پشتیبانی میکنند، ارتباطات قابل اطمینان، یعنی ارتباطاتی که میتوانند به طور قانع کننده مورد اعتماد قرار گیرند، [1] اهمیت حیاتی دارند. به طور کلی، دو مدل ارتباطی مختلف برای برقراری ارتباط بین همتایان کاربرد توزیع شده وجود دارد: نقطه به نقطه (معروف به یک به یک) و یک به چند (از جمله ارتباطات پخش) [2]. در مدل ارتباط نقطه به نقطه، یک پیام از همتای یک برنامه به یک همتای دیگر ارسال میشود، در حالی که در مدل ارتباطات یک به چند، یک پیام از همتای یک برنامه به چندین همتای دیگر ارسال میگردد. در بیشتر کاربردها، از جمله کاربردهای بحرانی، که در آنها ارتباطات قابل اعتماد یک نگرانی اولیه است [3]، به عنوان مثال، در مراقبتهای بهداشتی، تجارت الکترونیک و یا بانکی، مدل نقطه به نقطه، تا حد زیادی، محبوبترین ابزار تعامل است [4]. حتی زمانی که چندین همتا در یک ارتباط توزیع شده وجود دارد، برای مثال، برای به اشتراک گذاشتن یک پرونده یا تبادل ایمیلها، ارتباط باز هم در اکثر اوقات از طریق یک سرور میانجی بصورت نقطه به نقطه است، که مسئول کنترل مناسب دادهها برای همتایان موجود میباشد....