有人能用简单的语言解释一下分布式系统中的透明度是什么吗?我无法理解它在实践中到底是什么。以下是我发现的:
透明性:分布式系统应该被用户或应用程序员视为一个单一的实体,而不是一组相互协作的自治系统。用户应该不知道服务位于何处,而且从本地计算机到远程计算机的传输也应该是透明的。
为什么系统应该被用户视为一个单一实体?原因是什么?另外,请在您的回答中给出一个现实的例子。
答案1
透明度的含义对系统软件的设计有重大影响。
透明度简单地说就是向用户和应用程序员隐藏分布式系统中组件的分离,以便系统被视为一个整体,而不是独立组件的集合。
访问透明度使得使用相同的操作能够访问本地和远程资源。
位置透明度无需了解资源的物理或网络位置(例如,哪个建筑物或 IP 地址)即可访问资源。
失败透明度可以隐藏故障,即使硬件或软件组件出现故障,用户和应用程序仍可完成任务
并发透明度使多个进程能够使用共享资源同时运行,而不会互相干扰。
举一个现实的例子,想象一下当一个网站被黑客入侵并且在其主页上出现“我们已被黑客入侵......等待我们解决问题”,而这并没有失败透明度。您可能希望让用户感觉到系统正在更新,以隐藏他们的系统“薄弱”且已被黑客入侵的事实。
为了实现透明度,你会希望作为一个整体而不是独立组件的集合来运作。