分类: C/C++
2011-11-01 11:02:22
交易中间件是协助开发在线交易系统(OLTP)的C/S/S应用框架。它提供如下功能:
1. 支持大量客户端的连接和高并发度的交易处理。帮助应用系统有效的使用服务器的各种资源,如CPU、内存、文件系统、数据库、IO设备等等,方便的实现并发操作,包括一个主机各种资源的并发使用和多台服务器主机的资源的并发使用。
2. 方便的定制应用服务功能,实现服务器端的应用业务逻辑。一般是通过远过程调用实现。也可以这么说,应该能够自定义远过程。
3. 对各个层次的资源能够均衡的使用,如数据库,各服务器及各CPU,各IO系统等。
4. 应能提供一定程度的交易安全保证,以便系统能够在开放的网络环境下进行安全的交易。
5. 提供应用路由,即内容决定的路由。
6. 提供分布式交易完整性管理(两阶段提交)
一个交易框架系统,至少提供1,2才可以称为交易中间件。
SDBC实现1,2,4,5。3是在LVS协助下完成。
1. 并发支持:在SDBC中,服务器端支持PPC模式,即每连接一个进程(Process Per Connection),TPC模式(Thread Per Connection),TPOOL模式(Thread Pool )。
PPC模式具有最好的可靠性,所有的服务均无需考虑线程安全。任何一个服务发生异常,最多引起自己的服务崩溃,不影响其他客户。但系统资源消耗比较大,最好配合交易管理器使用,否则,客户端接入数量不超过256。PPC的样本在:$SDBCDIR/utility/sqlsrv.
TPC模式比PPC有更好的资源利用率,如数据库资源可以设置连接池,使资源得到合理利用。这个模式有更好的可移植性,适用于各种平台,客户端接入数量在1000以下。TPC的样本在:$SDBCDIR/utility/thread.
TPOOL模式具有极佳的系统资源控制和使用能力,它使用了epoll事件通知机制,虽然具有极高的性能,但可移植的平台受限,只能在LINUX系统,它可以承载上万的客户端接入。TPOOL的样本在:$SDBCDIR/utility/tpool.
三者都可以配合交易管理器使用。交易管理器是tpool模式,因此只适合在LINUX平台运行。交易管理器的样本在:$SDBCDIR/utility/mod_sc.
2. SDBC服务器可以方便的定制用户自己的业务逻辑模块(远过程)。它们具有统一的接口方式。具体使用方法见《SDBC使用指南.doc》
3. 三种服务模式均能够很好的平衡一台主机上的各种资源的使用。如需使用多台主机,需配合LVS或其他硬件的负载均衡器。为一个服务器组配置一个虚地址(虚拟服务器),绑定多个实际服务器(RS),客户端呼叫虚地址即可。这个架构具有极佳的均衡效果和容错能力。
4. SDBC提供了独特的加密,认证,授权等安全管理。它提供了动态加密功能,每次连接都提供不同的密钥。加密可以设置不同的层次:
0:不加密,1:快速加密,2:中等程度的加密,3:高强度加密。
认证:SDBC提供了绑定设备的认证方式,同时支持用户自定义的认证方式。可以针对一个客户端设备许可其连接,未经许可的设备不能连接。这个许可权是不可转让的。
SDBC对数据库的操作还有一套访问授权机制:针对每个表,对每个登录用户分别授予select、insert、update、delete权限。通过一个二维表进行设置,很简便。
SDBC提供了多进程、多线程安全的日志系统,用于记录应用软件的行为,协助安全审计。
5. 应用路由是由交易管理器提供的。简单的应用可以不用交易管理器。交易管理器起到如下作用:为服务器实施安全隔离;为PPC和TPC服务器扩充客户端接入能力,管理一套连接池系统;管理多个服务器组,并使得客户端能够选择不同的服务器组,这就是应用路由。它提供的是静态路由。它的连接池管理具有自愈功能。在运行中,一旦服务器损坏,它及时报告客户端。故障恢复后,这个资源自动恢复为可用。这中间无需重新启动交易管理器。
6. 两阶段提交目前没有实现,需要应用逻辑自行管理。
7. 除上述功能外,SDBC还提供了数据库包装器,使应用程序能够更方便可靠高效率的使用数据库。目前支持ORACLE、DB2。对SYBASE部分支持。这个包装器有助于应用程序的适应性,就是在用户需求不断变化,甚至数据结构不断变化时,你的应用程序只需极少的变化或不变化。
另外,C的服务器,内存的使用是由程序员自行管理的,一个经验不足的程序员,常常造成内存违例或内存泄露。SDBC提供了一系列的常用例程,使用这些例程有助于写出内存可靠的程序。对于建立可靠的应用服务器非常有帮助。
yulihua492014-12-01 11:37:31
yibaifei00:您好,内存中压缩和解压缩的源码能否发我下
我这边需要这个功能,谢谢
[email]yibaifei@126.com[/email]
参加SDBC群,在文件区下载源码。
用quicklz,也行,搜一下,有源码的。
yulihua492014-12-01 11:37:31
yibaifei00:您好,内存中压缩和解压缩的源码能否发我下
我这边需要这个功能,谢谢
[email]yibaifei@126.com[/email]
参加SDBC群,在文件区下载源码。
用quicklz,也行,搜一下,有源码的。
yibaifei002014-11-26 17:52:50
您好,内存中压缩和解压缩的源码能否发我下
我这边需要这个功能,谢谢
[email]yibaifei@126.com[/email]