惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Hackread – Cybersecurity News, Data Breaches, AI and More
The Last Watchdog
The Last Watchdog
T
Threatpost
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
S
Security @ Cisco Blogs
S
Securelist
L
LINUX DO - 最新话题
The Hacker News
The Hacker News
S
SegmentFault 最新的问题
C
Cyber Attacks, Cyber Crime and Cyber Security
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
博客园_首页
博客园 - Franky
H
Heimdal Security Blog
G
Google Developers Blog
N
News and Events Feed by Topic
Cisco Talos Blog
Cisco Talos Blog
Engineering at Meta
Engineering at Meta
B
Blog RSS Feed
S
Schneier on Security
T
Threat Research - Cisco Blogs
D
DataBreaches.Net
Simon Willison's Weblog
Simon Willison's Weblog
Hacker News: Ask HN
Hacker News: Ask HN
WordPress大学
WordPress大学
Latest news
Latest news
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 聂微东
N
Netflix TechBlog - Medium
T
Tor Project blog
月光博客
月光博客
D
Docker
美团技术团队
Recent Announcements
Recent Announcements
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Cyberwarzone
Cyberwarzone
小众软件
小众软件
TaoSecurity Blog
TaoSecurity Blog
Blog — PlanetScale
Blog — PlanetScale
L
LINUX DO - 热门话题
O
OpenAI News
人人都是产品经理
人人都是产品经理
www.infosecurity-magazine.com
www.infosecurity-magazine.com
V
V2EX
C
Cisco Blogs
NISL@THU
NISL@THU
Recent Commits to openclaw:main
Recent Commits to openclaw:main
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 司徒正美

博客园 - 东成西就

重灾面前,我们有力量面对一切困难! 试一下 使用CAB中EventBroker碰到困难,暂记于此! 在.NET中动态编译与执行脚本文件 db4o学习笔记(五)、处理结构化对象上 db4o学习笔记(四)、db4o查询详解续 db4o学习笔记(三)、db4o查询详解 db4o学习笔记(二)、第一次亲密接触 db4o学习笔记(一)、db4o概览 LightweightCTI架构设计(5) LightweightCTI架构设计(4) LightweightCTI架构设计(3) LightweightCTI架构设计(2) LightweightCTI架构设计(1) LightweightCTI开发实录(4)系统如何工作 LightweightCTI开发实录(3)分析之前 系分考试准备的论文(6):论系统设计中对用户需求的把握 LightweightCTI开发实录(2)项目计划 LightweightCTI开发实录(1) 缘由
LightweightCTI开发实录(5)板卡适配器概述
东成西就 · 2006-08-07 · via 博客园 - 东成西就

二、系统设计

2.1、板卡驱动程序适配器

  对于一个企业、一个应用来说,我们可能只会使用到一种厂商的语音卡,而如果是对于不同的企业或客户,那么我们将不能保证其都使用同一种型号的板卡。此时,对于系统架构来说则需要充分权衡各方面的关系进行综合的选择。对于我们的LightweightCTI来说,为了能够最好的兼容不同厂商的板卡,在设计时我们引入了板卡驱动程序适配器层,通过板卡驱动适配器来屏蔽上层开发人员在使用不同板卡时的复杂程序。

通过适配器层,不同板卡的驱动程序对于上层的业务逻辑开发人员来说将是透明的,他们根本不用了解每个驱动程序是如何加载的、电话呼出过程、信号音检测的过程等等动作都将统一交给适配器去完成,他们只需要关心如何去完成相应的业务功能。通过在驱动程序与上层业务软件之间插入适配器将带来如下一些好处:

l         能够良好的屏蔽不同厂商不同型号语音卡驱动程序之间的差异性与复杂性;

l         为上层开发人员提供了一致的开发接口,有利于应用软件在不同厂商的板卡之间进行移植;

l         可以更好的复用相关的设计,不论是下层适配器还是上层应用软件的复用程序都将大大提高,同时还可以充分屏蔽不同层之间的错误有利于软件的调试;

l         能够使用得应用软件与底层适配器层的开发工作并行的开展,为周期短的项目节约宝贵的资源。

板卡适配器层将带来以上主要的优点,那么怎样才能够实现上述功能呢?其实也十分简单,首先,我们需要完成对板卡驱动程序的加载,在加载驱动程序的时候完成相关的初始化工作;其次,需要引入通道对象(由于本文不是详细讨论面向对象设计,所以如何提取对象并对其进行抽象不在我们的叙述之列)后期业务应用的功能完成将由通道负责完成;最后,我们需要一个对象来负责任务的启动、板卡的加载、卸载等等,为此在适配器层我们加入了通道管理器(ChannelManager),由它来统筹所有的工作。完成后的板卡适配器将是如下这个样子。

  好啦我将在下一次详细介绍每一部分的功能结构及系统时序图。并使用一种开发语言实现其原型。