can play both client and server
-
in client/server you trust the server, but not clients
|
evolve continually
-
objects delegate parts of its implementation to the other objects (also dynamically composed at runtime). Because of subclassing, the implementation of an object may change over time
|
interaction are not well defined
-
because of encapsulation, you cannot understand all the interactions between objects
|
are polymorphic (ideal for Trojan horses!)
|
can scale without limit
-
how do you manage access right to millions of servers?
|
are very dynamic
|