layering often becomes visible to the user in these systems, which ruins the primary
advantage of the method.
The Process Model.
Our definition of the process model is that a separate process is established for each
service request. Such a process receives arguments from the parent process and possibly
returns results, but is otherwise distinct.
The principal advantage of the process model is that the communication paths
between the requester and the server are significantly reduced. In particular, in any
machine with an address space protection mechanism, the service routine can be completely
insulated from the calling routine.
The disadvantage is that this insulation can be costly. Only a very few operating
systems are able to create processes in a reasonable multiple of the time in which they
can execute a procedure call. In fact, a fairly convincing argument can be made that conventional
process creation must take considerably longer than the corresponding procedure
call. The semantics of this method are quite complex. For instance, if the parent
procedure dies due to an outside signal, we have the orphan problem [51].
The Client/Server Model.
In the client/sever model each service is supplied by a separate, permanent process,
called a server. Requests are communicated to the server via messages, and the server
sends back information via messages. Both synchronous and asynchronous client/server
systems have been developed. Modern implementations of this model often use objectoriented
design principles. This means that the servers enforce abstract data typing, by
only allowing correct operations on objects of each type. This model is used by Argus
and Camelot.
The principal advantage of the client/server model is that it is a natural way to
implement distributed systems across multiple autonomous sites, each of which wants to
perform request validation. More recently the advantage of having the server and the
client in separate address spaces without the high cost of process creation for each request
has also been recognized.
Unfortunately, modularity in the client/server model has proven to be a problem.
This is because the validation overhead for each request penalizes tasks that require several
layers of request. The problem is even more severe in object-oriented systems. For
example, attempt to lower this overhead, R* creates a separate server process for each
user, and only checks the users’ privileges one time.
In distributed or multiprocessor systems, the implementation of the client/server
model is perhaps the most natural of those we have discussed. The most significant difficulties
lie in constructing efficient usable servers that work correctly in the face of loss,
destruction, or arbitrary delays of messages. Stateless servers help in getting over these
difficulties. A server is stateless if its response to a client request does not depend on the
history of previous requests [21].
layering often becomes visible to the user in these systems, which ruins the primary
มักจะกลายเป็นชั้นที่มองเห็นให้กับผู้ใช้ในระบบเหล่านี้ซึ่งซากปรักหักพังหลักประโยชน์จากวิธีการที่. advantage of the method.
รุ่นกระบวนการ. ความหมายของเราแบบจำลองกระบวนการคือกระบวนการแยกที่จะจัดตั้งขึ้นสำหรับแต่ละการร้องขอบริการ The Process Model.
Our definition of the process model is that a separate process is established for each
service request. Such a process receives arguments from the parent process and possibly
returns results, but is otherwise distinct.
The principal advantage of the process model is that the communication paths
between the requester and the server are significantly reduced. In particular, in any
machine with an address space protection mechanism, the service routine can be completely
insulated from the calling routine.
The disadvantage is that this insulation can be costly. Only a very few operating
systems are able to create processes in a reasonable multiple of the time in which they
can execute a procedure call. In fact, a fairly convincing argument can be made that conventional
process creation must take considerably longer than the corresponding procedure
call. The semantics of this method are quite complex. For instance, if the parent
procedure dies due to an outside signal, we have the orphan problem [51].
The Client/Server Model.
In the client/sever model each service is supplied by a separate, permanent process,
called a server. Requests are communicated to the server via messages, and the server
sends back information via messages. Both synchronous and asynchronous client/server
systems have been developed. Modern implementations of this model often use objectoriented
design principles. This means that the servers enforce abstract data typing, by
only allowing correct operations on objects of each type. This model is used by Argus
and Camelot.
The principal advantage of the client/server model is that it is a natural way to
implement distributed systems across multiple autonomous sites, each of which wants to
perform request validation. More recently the advantage of having the server and the
client in separate address spaces without the high cost of process creation for each request
has also been recognized.
Unfortunately, modularity in the client/server model has proven to be a problem.
This is because the validation overhead for each request penalizes tasks that require several
layers of request. The problem is even more severe in object-oriented systems. For
example, attempt to lower this overhead, R* creates a separate server process for each
user, and only checks the users’ privileges one time.
In distributed or multiprocessor systems, the implementation of the client/server
model is perhaps the most natural of those we have discussed. The most significant difficulties
lie in constructing efficient usable servers that work correctly in the face of loss,
destruction, or arbitrary delays of messages. Stateless servers help in getting over these
difficulties. A server is stateless if its response to a client request does not depend on the
history of previous requests [21].
การแปล กรุณารอสักครู่..
