The exactly-once semantics means that if the client gets positive response from the
server (i.e., the RPC returns successfully), exactly one execution has taken place at the
server site. Sequential numbering is used for duplicate suppression.
Some systems choose the at-least-once semantics. That is, the positive response
from the server (i.e. success of the RPC) implies that at least one execution has taken
place at the server site. This semantics is acceptable only if the requested operations on
the server site are idempotent, i.e., repeated executions of the same operation are equivalent
to a single execution. File access operations can be tailored to satisfy that requirement.
However, not all operations can have such a property. There are various subclasses
of the at-least-once semantics, for example, to ensure that the response received by the
client is that issued by the very last execution.
Some systems such as Argus and Clouds implement remote procedure calls as
atomic actions, called the at-most-once semantics. That is, a successful return of a RPC
implies that the operation has taken place at the server site exactly once. If the RPC fails,
or is canceled by the caller, it has no effect at all. Using RPC with at-most-once semantics
releases programmers from the burden of dealing with partial failures. This is a good
approach to achieve reliable computation in distributed systems, but it is not necessary for
all remote operations to have such an atomic property.
2.2.4. Models for Remote Service Control
A client program invokes operations on remote sites and obtain service or data.
Database applications require facilities such as synchronized clocks, atomic commitment,
mutual consistency among replicated data. Each of these facilities need communication
support for broadcast, multicast, datagram, and virtual circuit functions. There are several
models for remote service control flow. Three of them are: Procedure model, Process
model, and Client/Server model. They are briefly discussed in the following.
The Procedure Model.
The basic idea of the procedure model is that a service should be provided by a
simple procedure run as part of the calling process. Essentially, a service is requested by
a procedure call on an appropriate library routine. The principle advantage of the procedure
model is its simplicity and a well understood interface to the user of the service.
The disadvantage is that the semantics of this model are not as clean as the syntax. In
particular, the assumption that a service is part of a user process is often undesirable, perhaps
for security or record keeping. In a distributed system the problem is even more
acute. The semantics of the single site procedure call are fairly difficult to preserve
across machine boundaries, since these semantics are grounded in the mechanics of the
procedure call on a single machine. For this reason, most of the distributed systems that
appear to be based on the procedure model are actually layered on top of one of the other
methods. Unfortunately, this layering has proven very difficult to completely disguise.
In a distributed system, the implementation of the procedure model is difficult.
Most designers have chosen to layer the procedure call interface on top of some other
method. Unfortunately, there is not yet an agreement on the semantics of a procedure
call, mostly because the desired semantics (precisely those of the single machine procedure
call) are fairly difficult to implement. Furthermore, as mentioned above, the
ความหมายว่าครั้งหมายความว่าถ้าลูกค้าที่ได้รับการตอบรับจากเซิร์ฟเวอร์ (เช่น RPC กลับประสบความสำเร็จ) ว่าการดำเนินการอย่างใดอย่างหนึ่งเกิดขึ้นที่เว็บไซต์ของเซิร์ฟเวอร์ เรียงลำดับหมายเลขที่จะใช้ในการปราบปรามที่ซ้ำกัน. ระบบบางคนเลือกที่ความหมายที่น้อยครั้ง นั่นคือการตอบสนองในเชิงบวกจากเซิร์ฟเวอร์ (เช่นความสำเร็จของ RPC) ที่แสดงให้เห็นว่าอย่างน้อยหนึ่งการดำเนินการได้ดำเนินการขึ้นที่เว็บไซต์ของเซิร์ฟเวอร์ ความหมายนี้เป็นที่ยอมรับเฉพาะในกรณีที่การดำเนินการร้องขอในเว็บไซต์เซิร์ฟเวอร์จะ idempotent คือประหารชีวิตซ้ำของการดำเนินงานเดียวกันเทียบเท่าเพื่อการดำเนินการเดียวกัน การดำเนินการเข้าถึงไฟล์สามารถปรับแต่งให้ตอบสนองความต้องการที่. แต่ไม่ดำเนินการทั้งหมดจะมีสถานที่ให้บริการดังกล่าว มี subclasses ต่างๆของที่มีอย่างน้อยหนึ่งครั้งความหมายเช่นเพื่อให้แน่ใจว่าการตอบสนองที่ได้รับจากลูกค้าที่ออกโดยการดำเนินการที่ผ่านมามาก. ระบบบางอย่างเช่นอาร์กัสและเมฆดำเนินการขั้นตอนระยะไกลเรียกว่าเป็นการกระทำของอะตอมที่เรียกว่าความหมายที่มากที่สุดครั้งเดียว นั่นคือผลตอบแทนที่ประสบความสำเร็จจาก RPC หมายความว่าการดำเนินการที่เกิดขึ้นที่เว็บไซต์เซิร์ฟเวอร์เพียงแห่งเดียว หาก RPC ล้มเหลวหรือถูกยกเลิกโดยผูก็ไม่มีผลใดๆ เลย ใช้ RPC มีครั้งหนึ่งที่ความหมายมากที่สุดโปรแกรมเมอร์รุ่นจากภาระในการจัดการกับความล้มเหลวบางส่วน นี้เป็นที่ดีวิธีการเพื่อให้บรรลุการคำนวณที่เชื่อถือได้ในระบบการกระจายแต่มันไม่จำเป็นสำหรับการดำเนินงานระยะไกลทุกคนที่จะมีโอกาสได้ทรัพย์สินอะตอม. 2.2.4 รูปแบบการบริการการควบคุมระยะไกลโปรแกรมไคลเอนต์จะเรียกการดำเนินงานในเว็บไซต์ระยะไกลและขอรับบริการหรือข้อมูล. โปรแกรมฐานข้อมูลจำเป็นต้องมีสิ่งอำนวยความสะดวกเช่นนาฬิกาตรงกันมุ่งมั่นอะตอมสอดคล้องซึ่งกันและกันระหว่างข้อมูลที่จำลองแบบ แต่ละสิ่งอำนวยความสะดวกเหล่านี้จำเป็นต้องสื่อสารการสนับสนุนสำหรับการออกอากาศหลายผู้รับดาต้าและฟังก์ชั่วงจรเสมือน มีหลายรูปแบบสำหรับการควบคุมการไหลบริการระยะไกล สามของพวกเขาคือรูปแบบขั้นตอนกระบวนการรูปแบบและ Client / Server ของรูปแบบ พวกเขาจะกล่าวสั้น ๆ ดังต่อไปนี้. ขั้นตอนรุ่น. ความคิดพื้นฐานของรูปแบบขั้นตอนคือการที่ผู้ให้บริการควรได้รับการให้บริการโดยการทำงานขั้นตอนง่ายๆเป็นส่วนหนึ่งของกระบวนการเรียก เป็นหลักซึ่งเป็นบริการที่มีการร้องขอโดยการเรียกขั้นตอนในห้องสมุดประจำที่เหมาะสม ข้อได้เปรียบที่หลักการของขั้นตอนรูปแบบคือความเรียบง่ายและอินเตอร์เฟซที่เข้าใจกันดีที่จะใช้ในการให้บริการ. ข้อเสียคือความหมายของรุ่นนี้จะไม่สะอาดเท่าไวยากรณ์ ในโดยเฉพาะอย่างยิ่งสมมติฐานที่ว่าบริการเป็นส่วนหนึ่งของกระบวนการที่ผู้ใช้มักจะเป็นที่ไม่พึงประสงค์อาจจะเพื่อความปลอดภัยหรือเก็บบันทึกข้อมูล ในระบบการกระจายที่เป็นปัญหามากยิ่งขึ้นเฉียบพลัน ความหมายของการเรียกขั้นตอนเว็บไซต์เดียวค่อนข้างยากที่จะรักษาข้ามเขตแดนเครื่องเนื่องจากความหมายเหล่านี้มีเหตุผลในกลศาสตร์ของการเรียกขั้นตอนในเครื่องเดียว The exactly-once semantics means that if the client gets positive response from the
server (i.e., the RPC returns successfully), exactly one execution has taken place at the
server site. Sequential numbering is used for duplicate suppression.
Some systems choose the at-least-once semantics. That is, the positive response
from the server (i.e. success of the RPC) implies that at least one execution has taken
place at the server site. This semantics is acceptable only if the requested operations on
the server site are idempotent, i.e., repeated executions of the same operation are equivalent
to a single execution. File access operations can be tailored to satisfy that requirement.
However, not all operations can have such a property. There are various subclasses
of the at-least-once semantics, for example, to ensure that the response received by the
client is that issued by the very last execution.
Some systems such as Argus and Clouds implement remote procedure calls as
atomic actions, called the at-most-once semantics. That is, a successful return of a RPC
implies that the operation has taken place at the server site exactly once. If the RPC fails,
or is canceled by the caller, it has no effect at all. Using RPC with at-most-once semantics
releases programmers from the burden of dealing with partial failures. This is a good
approach to achieve reliable computation in distributed systems, but it is not necessary for
all remote operations to have such an atomic property.
2.2.4. Models for Remote Service Control
A client program invokes operations on remote sites and obtain service or data.
Database applications require facilities such as synchronized clocks, atomic commitment,
mutual consistency among replicated data. Each of these facilities need communication
support for broadcast, multicast, datagram, and virtual circuit functions. There are several
models for remote service control flow. Three of them are: Procedure model, Process
model, and Client/Server model. They are briefly discussed in the following.
The Procedure Model.
The basic idea of the procedure model is that a service should be provided by a
simple procedure run as part of the calling process. Essentially, a service is requested by
a procedure call on an appropriate library routine. The principle advantage of the procedure
model is its simplicity and a well understood interface to the user of the service.
The disadvantage is that the semantics of this model are not as clean as the syntax. In
particular, the assumption that a service is part of a user process is often undesirable, perhaps
for security or record keeping. In a distributed system the problem is even more
acute. The semantics of the single site procedure call are fairly difficult to preserve
across machine boundaries, since these semantics are grounded in the mechanics of the
procedure call on a single machine. For this reason, most of the distributed systems that
appear to be based on the procedure model are actually layered on top of one of the other
methods. Unfortunately, this layering has proven very difficult to completely disguise.
In a distributed system, the implementation of the procedure model is difficult.
Most designers have chosen to layer the procedure call interface on top of some other
method. Unfortunately, there is not yet an agreement on the semantics of a procedure
call, mostly because the desired semantics (precisely those of the single machine procedure
call) are fairly difficult to implement. Furthermore, as mentioned above, the
การแปล กรุณารอสักครู่..
