QD 技术说明
1.开发工具
为了追求最高的性能,本系统的服务端和客户端全部采用 C++ 进行开发,虽然增加了开发的难度和开发周期,但有效了保证了系统的高效性和稳定性。
2.支持的数据库
面对不同的用户需求,QD 对数据库的支持使用 OleDB 引擎和自建访问引擎两种访问数据的试工,一切以最高访问速度为目的。
OLE DB(OLEDB)是微软的战略性的通向不同的数据源的低级应用程序接口。OLE DB不仅包括微软资助的标准数据接口开放数据库连通性(ODBC)的结构化查询语言(SQL)能力,还具有面向其他非SQL数据类型的通路。 作为微软的组件对象模型(COM)的一种设计,OLE DB是一组读写数据的方法(在过去可能被称为渠道)。OLE DB中的对象主要包括数据源对象、阶段对象、命令对象和行组对象。
针以用户二次开发的需求,QD 的系统的访问引擎上再封装了一层应用级的引擎,用来记用户无需关心数据库类型,而作到统一访问数据库。
3.1 开发方式
在用户进行二次开发时,我们要考虑以下几个因素,1 是方便开发,2 方便管理 3 方便发布与升级。
综合考虑这些因素,我们使用 plugin + addin 的方式进行对二次开发的管理
Plugin 做为一个应用集合,使用 windows 目录的方式进行管理和发布,使用要使用二次开发功能时,只要copy 相关的目录就可以实相关功能了。
Addin 使用具体的功能实现是以 xml 方式进行设计的,可以方便设置运行参数和权限。
QD 平台为每个 plugin 提供统一的权限设置功能,可以设置不同的用户可以运行不同的plugin。
针对一个 addin 是需是客户端的数据的,如要在客户端存在图片,或 dll 或 设置注册表,QD 平台提供 cdp 功能,可以方便的向客户端统一发布数据,也可以对客户端 plugin 进行升级。
3.2 接口方式
针对用户开发环境的多元性,QD 平台担任的开发接口方式分为以下几种:Com 技术,Windows dll api, VBScript , http post ,http get,WebService, Socket 指令,XML 指令,并使用 xml 作为数据传递方式。
这些都是一些常用的技术方式,很方便进行跨语言和跨平台。
3.3 界面开发支持
为了更紧密的进行二次开发集成,QD 平台提供一些常用的二次开发界面技术以让用户在二次开发上显得更加无缝。
QDWebFrame 是平台为用户提供的 Web 浏览器界面,使用 IE web 控件做为内核,并提供一些常用的开发命令和统一的显示效果。如果命令可以参靠 QD SDK 中的 web 扩展接口。
插面开发和浮动插面一平台给二次开发用户针对插面界面扩展的手面之一,如用户一些 oa 任务就可以以这样的型式向用户进行表现。
每日焦点是一个可以在运行时弹出窗口的界面效果。
名片显示,可以在用户头象上弹出小卡片。
消息 tip 自定义,可以让用户显示各种不同风格的消息提示。
...
3.4 功能开发支持
在功能开发的支持上,QD提供了一系统的接口功能以满足不同的需求。
基中 LinkCom.dll , QDSCom.dll QDCCom.dll QDClient.exe 是以 Com 的试使用提供上百种的各样功能接口(参考 QD SDK)。
QDServicer 是平台提供的 WebService 接口。
高级开发接口是以 xml 开发表现的一些命令,可以使用 WebService ,或 linkCom 或 Socket 进行执行。
以 IMClient:// 开头的简单命令可以使用消息方式,或在 web 浏览器中进行执行,可以很方便执行一些 QD 内部开发的功能。
4.高并发
为了支持高并发,QD 平台设计为以下几个方案:
1. 使用 C++ 开发服务端
2. 购买国际上高效的Socket开发框架 framework
3. 使用类 http 开发协议
4. 用户数过多或跨区域时,使用服务器群集进行多服务器协同工作。
5. 使用内存数据库更有效和开发使用内存,让性能更加高效。
6. 完成端口,工作线程池和通知线程池三者有效陪合,更大效果的开发多核 cpu。
5. 跨服务器
在跨服务器主要考虑几下几种可能
5.1 数据库和QD服务在不同的服务器
QD 平台所封装的数据库引擎本身就是针对跨服务器设计的,所以这方面就不会有任何问题。
5.2 第三方应用和QD服务在不同的服务器
在不同系统服务器上的集成主要是开发的集成,开发上的集成主要是协议问题,QD 平台所提供 WebService 开发接品, XML 指令,HTTP Get , HTTP Post , Socket 指令都是针对跨服务器,跨平台。
6移动应用
针对移动上的应用集成,开发 android 的 ios 的开发接口接大部分的原码,可以方便的实现移动应用的集成。
针对移动最不好处理的的实时语音和视频,为了打通移动和pc 端的通讯,使用 google webrct 技术。
WebRTC实现了基于网页的视频会议,标准是WHATWG 协议,目的是通过浏览器提供简单的javascript就可以达到实时通讯(Real-Time Communications (RTC))能力。
WebRTC(Web Real-Time Communication)项目的最终目的主要是让Web开发者能够基于浏览器(Chrome\FireFox\...)轻易快捷开发出丰富的实时多媒体应用,而无需下载安装任何插件,Web开发者也无需关注多媒体的数字信号处理过程,只需编写简单的Javascript程序即可实现,W3C等组织正在制定Javascript 标准API,目前是WebRTC 1.0版本,Draft状态;另外WebRTC还希望能够建立一个多互联网浏览器间健壮的实时通信的平台,形成开发者与浏览器厂商良好的生态环境。同时,Google也希望和致力于让WebRTC的技术成为HTML5标准之一,可见Google布局之深远。
WebRTC提供了视频会议的核心技术,包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台:windows,linux,mac,android。
7访客使用
QD 平台同时为 web 访客提供解决方案,主要场景是访客在没有装 QD 客户端时,可以在网站上支持与QD 内部人员进行通讯对话。
解决问题的主要方法是使用 Flash socket 技术进行集成。可以方便的在不面的操作系统,不同的浏览器上进行 QD 通讯。
QD 平台开发访客使用功能,可以让访客在没有帐号的情况下也可以进行登录交流。