一般来说,透明是允许光穿透的属性。也就是说能看得见,能被知道的。但是计算机中透明的意思其实完全相反,“xx对用户完全透明”是指用户看不到,甚至完全不知道有这东西的存在。
透明
字典一般的解释
透明是指:1.物体能透过光线的。如:水是透明的。2.比喻公开,不隐藏。如:透明度。
因此可见,一般人们在日常生活中使用“透明”时,若含有寓意,绝大部分意思是说某个事物公开,可以窥探到里面的秘密。
对于“物体能透过光线”,由于大多数以透明形容的事物并非完全不可见,因而人们习惯上不会觉得透明是“完全不可见”(而确实是完全不可见的透明,正因为完全不可见,反而使得人们不大习惯于去使用修饰实物的“透明”一词来刻意修饰它,比如空气)故上述话语,不了解的一般人基本都进入第一种理解的思维了。
但是,错了。
计算机中的“透明”(transparent)
在计算机中,从某个角度看不到的特性称该特性是透明的。
这个意义上的“透明”与社会生活中的透明含义恰好相反,例如计算机组织对程序员是透明的,就是说计算机组织对程序员来说是看不到的,也不需要看到的。
指客观存在并且运行着但是我们看不到的特性。客观存在的,但对于某些开发人员而言又不需要了解的东西,这就是计算机所指的透明性。
简单来说,透明就是黑盒,你只需要应用它给出的接口,而不需要了解内在机理。例如在程序员在使用IDE进行编码的时候,IDE中的编译器对程序员来说就是透明的,入门程序员根本不知道 编译器的概念。如下图所示:
transparent is being used to mean hidden in the sense of things taking place automatically behind scenes(i.e. without user of the code or the program having to interact).
Transparent is used where something is present, but you can’t see it.
就像上面英文所述,”透明” 的事物一般是藏在表象后面的,用户(程序员)一半不会直接接触到该事物。
这个词在生活中和计算机中是截然不同的两种理解,计算机中的“透明”反而什么都看不到了。
1.透明性(transparency)
定义:在通信网中,不改变信号形式和信息内容的端到端传输。
2.透明性现象:
在计算机技术中,一种本来是存在的事物或属性,但从某个角度看似乎不存在,称为透明性现象。通常,在计算机系统中,低层次的机器级的概念性结构和功能特性,对高级程序员来说是透明的。
eg:在QQ聊天中,表面上看QQ1直接与QQ2对话,而实际上是QQ1发送的数据分别通过传输层,网络层,数据链路层,物理层的传输被QQ2接收,QQ实际是与传输层直接对话,然而表面我们把其他各层当作不存在,这就是透明现象。
3.透明传输:
3.1 数据链路层的透明传输
简单的说,透明传输就是发送方发送什么样的数据,不管数据传输过程是如何实现的,接收方将收到什么样的数据。更确切地说,所谓透明传输就是不管所传数据是什么样的比特组合,都应当能够在链路上传送。当所传数据中的比特组合恰巧出现了与某一个控制信息完全一样时,必须采取适当的措施,使接收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输的透明的。
3.2 比特流的透明传输
TCP/IP结构体系中,物理层是靠比特流来传输的,比特流的透明传输是指实际电路传送后没有发生变化,因此,对于传送比特流来说,由于这个电路并没有对其产生什么影响,因此比特流就“看不见”这个电路。
不透明(Opaque)
不透明意味着,程序员直接与该事物接触,但是不知道其中的机理,例如IDE对于程序员来说就是 不透明 的。
程序员直接接触到IDE,但是却不知道IDE是如何实现的,也就是如何将 source code 一步步转换成机器码的。如下图所示:
Opaque is also being used to mean hidden, which is perhaps where the confusion comes in.
Opaque is used where is present, but you can’t see inside it to inspect its inner workings.
“不透明” 的事物一般直接与程序员接触,但是程序员却不知道个中奥秘。