WebService 通用处理流程
1. 报文转换与报文验证
将XML报文转换成Java对象.转换过程中需要验证报文数据.允许查询数据库.
此过程处理:
a.报文内容转换与修改
b.报文内容验证
c.报文空节点默认处理方式(空节点也有它潜在的意义)
d.报文非法参数异常处理
2.内容解析转换与数据验证
验证Java内部对象数据正确,允许查询数据库.
整理业务数据,允许查询数据库
a.Java内部对象验证
b.整理业务数据
c.业务数据异常处理
3.处理业务数据
根据业务规则处理业务数据, 通常表现对数据库的CRUD. 分布式处理.
a.根据业务数据,处理业务规则
b.分布式处理,RMI, CORBA
c.操作数据库
d.日志处理
4.数据持久化
事务处理,缓存控制
a.提交或回滚事务
b.刷新缓存
5.生成响应
根据业务处理结果,生成结果,并将结果返回.
6.存在的问题:
6.1当业务过于复杂时,业务层过于庞大.
6.2为了让系统业务层可以重用,须使用声明式编程,而配置项将导致代码逻辑混乱,不可读.太多的逻辑分散到各处.
7.为了有效降低类代码分散扩张,结合OOP思想,类的重用,建议使用组合式编程.每个基本类只实现简单的功能.组合基本类来重写部分实现,使代码有利于维护.
同时结合接口,可有效将同类功能类进行管理.
一个接口叫程序,程序有一个方法叫运行.
一个叫类的接口继承了程序接口, 类的运行包括 创建数据, 销毁数据, 数据读取, 数据写入.
一个业务类
一个产品类
一个用户类
一个账户类
最基础的类都是一些名词,因为对于一个类别我们总会用一个名词来代表它.
名词太泛,因此对于编程总会有一些行业专有的名词来代表类.
数据处理的类都是一些专有的功能类,因为对于数据我们经常要做一些处理.
转换 Convert
整理 Tidy
校验 Check Validate
转移 Dispatcher
读取 Read
写入 Write
解析 Parse
过滤 Filter
编码 encode
解码 decode
对于一些通用的处理,我们提取出来,构成工具类.
Util
Helper
这些类都有了,但程序的怎么构建依然没谱.
因些我们需要程序的设计图纸.
一个经典的程序:
输入
处理
输出
MVC的分层:
表现层
业务层
模型层
参考的分层:
接口层
转换层
业务层
服务层
数据持久层
1. 报文转换与报文验证
将XML报文转换成Java对象.转换过程中需要验证报文数据.允许查询数据库.
此过程处理:
a.报文内容转换与修改
b.报文内容验证
c.报文空节点默认处理方式(空节点也有它潜在的意义)
d.报文非法参数异常处理
2.内容解析转换与数据验证
验证Java内部对象数据正确,允许查询数据库.
整理业务数据,允许查询数据库
a.Java内部对象验证
b.整理业务数据
c.业务数据异常处理
3.处理业务数据
根据业务规则处理业务数据, 通常表现对数据库的CRUD. 分布式处理.
a.根据业务数据,处理业务规则
b.分布式处理,RMI, CORBA
c.操作数据库
d.日志处理
4.数据持久化
事务处理,缓存控制
a.提交或回滚事务
b.刷新缓存
5.生成响应
根据业务处理结果,生成结果,并将结果返回.
6.存在的问题:
6.1当业务过于复杂时,业务层过于庞大.
6.2为了让系统业务层可以重用,须使用声明式编程,而配置项将导致代码逻辑混乱,不可读.太多的逻辑分散到各处.
7.为了有效降低类代码分散扩张,结合OOP思想,类的重用,建议使用组合式编程.每个基本类只实现简单的功能.组合基本类来重写部分实现,使代码有利于维护.
同时结合接口,可有效将同类功能类进行管理.
一个接口叫程序,程序有一个方法叫运行.
一个叫类的接口继承了程序接口, 类的运行包括 创建数据, 销毁数据, 数据读取, 数据写入.
一个业务类
一个产品类
一个用户类
一个账户类
最基础的类都是一些名词,因为对于一个类别我们总会用一个名词来代表它.
名词太泛,因此对于编程总会有一些行业专有的名词来代表类.
数据处理的类都是一些专有的功能类,因为对于数据我们经常要做一些处理.
转换 Convert
整理 Tidy
校验 Check Validate
转移 Dispatcher
读取 Read
写入 Write
解析 Parse
过滤 Filter
编码 encode
解码 decode
对于一些通用的处理,我们提取出来,构成工具类.
Util
Helper
这些类都有了,但程序的怎么构建依然没谱.
因些我们需要程序的设计图纸.
一个经典的程序:
输入
处理
输出
MVC的分层:
表现层
业务层
模型层
参考的分层:
接口层
转换层
业务层
服务层
数据持久层