第一部分 商务信息化与企业网络应用模式 1
第1章 商务服务与企业级网络应用系统 3
1.1 事务和商务事务电子化 3
1.2 事务与电子化服务交易 5
1.3 商务服务对企业级网络应用系统的要求 6
第2章 企业级网络应用的两种基本模式 8
2.1 客户机/服务器模式 8
2.2 浏览器/服务器模式 9
2.3 小结 11
第3章 企业级网络应用系统的体系结构 12
3.1 企业级网络应用系统结构的三个方面 12
3.2 远程数据访问模式的企业级网络应用系统 14
3.2.1 使用分析 14
3.2.2 主要优点 15
3.2.3 主要缺点 16
3.3 数据库服务器模式的企业级网络应用系统 16
3.3.1 使用分析 17
3.4 应用程序服务器模式的企业级网络应用系统 18
3.3.2 主要优点 18
3.3.3 主要缺点 18
3.4.1 应用程序服务器 19
3.4.2 使用说明 20
3.4.3 主要优点 21
3.4.4 主要缺点 22
3.5 应用程序服务器扩展模式的企业级网络应用系统 22
第二部分 企业级应用服务平台概述 23
第4章 应用支持功能剥离策略 24
第5章 企业级应用服务平台 27
5.1 交易服务器 29
5.2 服务器监控终端 31
5.3 编程接口 32
5.3.1 客户端编程接口 33
5.3.2 服务器端编程接口 33
5.4 共享版本 34
第三部分 主要技术基础 37
6.1.1 静态链接 38
6.1 基本概念 38
第6章 动态链接库技术与使用 38
6.1.2 动态链接 39
6.1.3 静态链接库和动态链接库之间的区别 39
6.1.4 Windows应用程序和动态链接库 40
6.2 使用动态链接库的好处 43
6.3 动态链接库的缺点 44
6.4 动态连接库与多线程 45
6.4.1 动态链接库线程入口函数 45
6.4.2 线程使用的导出函数与导出过程 46
6.4.3 线程使用内部函数与内部过程 46
6.5 动态链接库的Delphi实现 46
6.5.1 调用动态链接库 47
6.5.2 开发动态链接库 49
6.6 动态链接库的代码共享 54
第7章 多线程技术与使用 55
7.1 进程与多线程 55
7.2.1 两种典型的计算任务 57
7.2 多线程与系统性能 57
7.2.2 使用多线程技术的目的 58
7.2.3 程序线程化的考虑 60
7.3 正确性分析和线程的同步与互斥 61
7.3.1 线程同步 62
7.3.2 线程互斥 63
7.3.3 临界资源和临界区 64
7.4 线程的Delphi实现方法 64
7.4.1 定义线程对象 65
7.4.2 线程间的协作 70
7.4.3 线程的执行 74
7.4.4 在分布式程序中使用线程 75
7.5 小结 77
第8章 网络基础 78
8.1 开放式系统互连网络模型 78
8.1.1 ISO提出的OSI网络模型 79
8.1.2 OSI网络模型 79
8.1.3 OSI网络模型的层次结构 80
8.2 TCP/IP协议与OSI模型的关系 84
8.2.1 物理层 85
8.2.2 数据链路层 88
8.2.3 IP网络层 91
8.2.4 TCP/UDP层 96
8.2.5 表示层 100
8.2.6 应用层 101
8.2.7 小结 101
8.3 TCP/IP网络中的IP地址 102
8.3.1 TCP/IP中的IP地址 102
8.3.2 指定IP地址 104
8.3.3 拨号连接与IP地址 106
8.3.4 子网络与IP地址 106
8.3.5 主机名与DNS 109
8.4 子网络互连技术 111
8.4.1 中继器 111
8.4.2 网桥 111
8.4.3 路由器和网关 112
8.4.4 网络间传送数据包 113
8.4.6 广播与组播 117
8.4.5 使用SNMP监控连接 117
8.4.7 MBONE 119
第9章 Socket技术 120
9.1 Socket概述 120
9.2 Windows Sockets协议的安装和检查 120
9.3 套接口(Socket) 121
9.3.1 客户机/服务器模型 122
9.3.2 网络广播 122
9.4 阻塞/非阻塞和数据易失性 123
9.5.2 阻塞钩子函数方法 124
9.5 异步选择机制 124
9.5.1 异步支持例程 124
9.5.3 错误处理 125
9.6 通过中介DLL调用Windows Sockets DLL 125
9.6.1 Windows Sockets实现内部对消息的使用 126
9.6.2 私有的API接口 126
9.7 多线程Windows版本中的Windows Sockets 126
9.8 MFC对Windows Sockets的支持 127
9.9.1 套接口函数 129
9.9 Windows Sockets库函数 129
9.9.2 数据库函数 130
9.9.3 针对Microsoft Windows的扩展函数 130
9.10 Delphi 与 Socket技术 131
9.10.1 服务的实现 131
9.10.2 Socket连接的种类 132
9.10.3 Socket控件的网络属性 133
9.10.4 使用Socket控件 135
9.10.5 Socket控件事件的响应 138
9.10.6 发送数据与接收数据 140
第10章 数据库基础 145
10.1 数据库系统 145
10.2 分布式数据库 146
10.2.1 网络通信服务 146
10.2.2 事务处理能力 147
10.2.3 数据的分区和复制 148
10.2.4 面向对象分布式系统 148
10.4 数据库的事务处理 149
10.3 数据库系统的选择 149
10.4.1 事务的概念 150
10.4.2 两段式提交 151
10.4.3 公用事务处理系统 152
10.5 ODBC数据库连接 152
10.6 Delphi数据库连接 154
10.6.1 BDE数据库连接 154
10.6.3 连接数据库服务器 155
10.6.4 数据库会话控件 155
10.6.2 Delphi数据库连接控件 155
10.6.5 数据库连接控件 172
10.6.6 使用事务管理 183
第四部分 企业级应用服务平台的实现 187
第11章 系统目标及功能结构 188
第12章 服务协议的确定 190
12.1 运行模式和服务协议 190
12.2 表示层数据包格式 190
12.2.1 基本数据包格式 191
12.2.2 通用数据包格式 192
12.2.3 小结 193
12.3 长数据包的传输与实现 194
12.3.1 发送缓冲区和接收缓冲区 194
12.3.2 长数据包的切分和组装 194
12.3.3 网络通信和三次握手 195
12.3.4 数据包的安全与保密 196
12.3.5 功能分派与集成 196
12.3.6 源代码的解析 200
12.3.7 小结 211
第13章 企业级应用服务平台的网络通信 212
13.1 网络通信与服务协议的关系 212
13.2 网络连接和Socket对象 213
13.3 网络通信线程 213
13.4 客户端网络通信功能 213
13.4.1 部件封装 214
13.4.2 客户端服务线程 218
13.4.3 接口函数的实现 222
13.4.5 客户端网络通信服务的信息交换 223
13.4.4 客户通信服务的启动时机 223
13.4.6 编程接口 225
13.5 服务器端网络通信功能 225
13.5.1 部件封装 225
13.5.2 服务器端服务线程 229
13.5.3 接口函数的实现 231
13.5.4 企业服务器网络服务的启动时机 233
13.5.5 服务器网络服务的信息交换 233
13.5.6 编程接口 235
14.1 日志信息的分类 237
第14章 企业服务器日志 237
14.2 多线程访问 239
14.3 日志的多文件保存 239
14.4 服务器日志的实现 240
14.4.1 日志类型的声明 240
14.4.2 关键属性 241
14.4.3 关键方法 241
14.4.4 日志类的结构分析 244
15.1.1 应用交易表 245
15.1 服务器交易管理表集 245
第15章 服务器的交易管理 245
15.1.2 应用模块表 248
15.2 服务器交易管理表的创建与配置 249
15.2.1 定义服务器交易管理表 249
15.2.2 企业服务器核心编辑器 251
15.3 服务器交易管理类与多线程 258
15.3.1 服务器交易管理类 258
15.3.2 多线程访问与数据保护 277
15.4 交易服务线程 282
15.4.1 回调函数的接口 284
15.4.2 回调函数的执行 289
15.4.3 服务线程声明 292
15.4.4 线程函数 293
15.4.5 调度函数 294
第五部分 交易服务器回调应用模块的实现 296
16.2.1 核心监控回调模块的工程文件 297
16.2 核心监控模块的实现 297
第16章 交易服务器核心监控逻辑 297
16.1 核心监控的命令说明 297
16.2.2 核心监控交易处理函数 298
16.3 核心监控模块的配置 300
16.3.1 对交易服务器中应用交易表的配置 300
16.3.2 核心监控模块与交易服务器的位置 301
17.2 日志监控模块的实现 303
17.2.1 日志监控回调模块的工程文件 303
17.1 日志监控的命令说明 303
第17章 交易服务器日志监控逻辑 303
17.2.2 日志监控交易处理函数 304
17.3 日志监控模块的配置 305
17.3.1 对交易服务器中应用交易表的配置 305
17.3.2 日志监控模块与交易服务器的位置 306
第18章 远程路由服务模块 308
18.1 远程路由模块的实现 308
18.1.1 远程路由回调模块的工程文件 308
18.1.2 远程路由初始化和结束处理 309
18.1.3 远程路由交易处理函数 312
18.2.1 对交易服务器中应用交易表的配置 313
18.2 远程路由模块的配置 313
18.2.2 远程路由模块与交易服务器的位置 314
第19章 网络数据库方案 316
19.1 源代码级别数据库解决方案 316
19.1.1 Delphi数据库编程的新思路 317
19.1.2 编码方法 339
19.2 系统支持数据库解决方案 352
19.3 使用与配置关系 360
20.1.1 组成部件间的关系 362
第20章 企业级应用服务平台的配置与使用 362
20.1 客户端部件的配置与使用 362
20.1.2 配置与使用方法 363
20.2 服务器端部件的配置与使用 364
20.2.1 基本系统与配置方案 364
20.2.2 交易路由系统与配置方案 367
20.2.3 数据库系统与配置方案 369
20.2.4 用户企业级网络应用系统与配置方案 371
20.3 企业级应用服务平台整体配置关系 372
第六部分 企业级应用服务平台的应用 373
第21章 网络应用系统的研发过程 374
21.1 网络应用系统的设计 374
21.1.1 功能分解设计 374
21.1.2 信号系统设计 377
21.1.3 执行代码设计 377
21.2 网络应用系统的测试 378
21.3 网络应用系统的交付 379
21.4 网络应用系统的维护 380
第22章 企业级应用服务平台提供的开发资源 381
22.1 企业级应用服务平台的功能部件 382
22.1.1 公共功能部件 382
22.1.2 客户端功能部件 383
22.1.3 服务器端功能部件 385
22.1.4 小结 387
22.2 企业级应用服务平台编程接口 389
22.2.1 客户端编程接口 389
22.2.2 服务器端编程接口 390
23.1 用户管理模块的分析 392
第23章 用户管理模块的设计 392
23.2 用户管理模块的功能设计 393
23.2.1 数据库表结构的设计 394
23.2.2 交易流程的设计 398
23.2.3 应用协议的设计 404
23.2.4 信号系统的设计 406
23.2.5 小结 408
24.1.1 创建数据表 409
24.1 创建数据表与访问代码生成 409
第24章 用户管理模块的实现 409
24.1.2 访问代码生成 416
24.1.3 数据库信息的初始化 417
24.2 应用功能的实现 418
24.2.1 功能请求交易的实现 418
24.2.2 功能服务交易的实现 440
24.3 服务器交易调度逻辑源程序代码 516
24.3.1 交易调度函数的源代码 517
24.3.2 交易实现单元源代码 518
24.3.3 工程文件 536
24.4 小结 537
第25章 用户管理模块的配置与使用 538
第26章 要注意的几个问题 540
第七部分 附录 541
附录A 企业级应用服务平台编程接口 541
A.1 客户端编程接口声明 541
A.2 服务器端编程接口声明 541
附录B exapi.pas的源程序代码 543
C.2 NETSTAT 545
C.1 PING 545
附录C Windows环境下的网络命令 545
C.3 TRACERT 546
C.4 ARP 546
C.5 IPCONFIG 547
附录D TDatabase对象的重要属性、方法和事件 549
D.1 控件的重要属性 549
D.2 控件的重要方法 550
D.3 控件的重要事件 550
参考文献 551