数据交互的实现在TWAIN中由三类软件元素共同工作完成:应用程序(the application),数据源管理器(the Source Manager),以及数据源(the Source)。
这些元素使用TWAIN的协议架构来进行通讯。TWAIN架构由四层组成:
应用(Application)
协议(Protocol)
采集(Acquisition)
设备(Device)
TWAIN软件元素占据了如下图所示的各层。后续的各节中介绍了每一层。
用户的软件应用执行将会在这层中。
TWAIN为应用程序开发者关注用户如何访问使用TWAIN的功能以及如何选择指定的数据源描述了用户接口指引。
TWAIN不关注应用程序是如何实现的。TWAIN不会对任何应用可能会使用的应用间通讯模式造成影响。
协议是TWAIN所使用的用以描述的“语言”和语法。它实现了详细准确的指令和用以数据交换的通讯要求。
协议层包含:
应用软件的部分模块,该模块提供用于应用程序和TWAIN之间交互的接口。
由TWAIN所提供的TWAIN数据源管理器。
包含数据源设备用以接受来自数据源管理器以及回复的数据和返回码(Return Code)。
由TWAIN所提供的TWAIN数据源管理器。
数据源设备包含的软件模块,该模块用以接受来自数据源管理器以及回复的数据和返回码(Return Code)。
有关协议层的更多细节内容将会在“TWAIN元素间通讯(Communication Between the Elements of TWAIN)”中进行讨论。
数据采集设备或许是物理的(像是扫描仪或是数字高拍仪)或是逻辑的(像是一个图像数据库)。编写用以控制采集物的被称为数据源(Sources),主要位于此层中。
数据源为应用传输数据。它使用与应用商议好的格式和传输机制(进行传输)。
数据源总会提供内建的用户界面,来控制将数据源写入驱动器的设备。如果想的话,应用程序可以为了获取数据重写这个用户界面来提供它自己的用户界面。
该层是传统的底层设备驱动模块。它们将特定于设备的命令转换为特定于驱动程序随附的特定设备的硬件命令和操作。使用TWAIN的应用不在需要发布设备驱动,因为它们已经是数据源的一部分了。
TWAIN完全不关心设备层。数据源向应用隐藏了设备层。数据源提供了从TWAIN操作以及与数据源用户界面的交互到设备驱动程序的等效命令的转换,这些命令使得设备按照预期运行。
注意:协议层是最彻底和最严格的定义,以允许应用程序和源之间进行精确的通信。本文档的内容将集中在协议和采集层。
原文:https://www.cnblogs.com/w4ngzhen/p/13800202.html