首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

socket 求解题思路解决思路

2012-01-28 
socket 求解题思路今天看到一个这样的题目A和B两个系统都有表T_Test。create table T_Test (tel varchar(20

socket 求解题思路
今天看到一个这样的题目

A和B两个系统都有表T_Test。
create table T_Test (
  tel varchar(20) NOT NULL COMMENT '电话号码',
  name varchar(100) COMMENT '姓名',
  address varchar(200) COMMENT '地址',
  email varchar(50) COMMENT '邮箱',
  PRIMARY KEY (tel)
);
B系统的数据来自于A系统,并且要和A系统的保持一致。
当A系统的数据发生变化时,A系统会主动通知B系统更新数据。接口如下:
接口名称:SyncData
接口编码:H1.1
功能描述: A系统T_Test表数据发生变动时,通过本接口通知B系统
接口提供方:B系统
调用场景:A系统 >> B系统
输入参数描述:
参数名称出现次数参数类型备注
StreamingNo1VARCHAR2(10)流水号。可用于调用/提供双方比较接口调用情况10位,从0开始,用满归零
TimeStamp1VARCHAR2(14)时间戳.格式YYYYMMDDHHmmSS
Operate1SMALLINT操作类型 1-新增 2-修改 3-删除
Tel1VARCHAR2(20)电话号码
Name0..1VARCHAR2(100)姓名,Operate=3时可空
Address0..1VARCHAR2(200)地址,Operate=3时可空
Email0..1VARCHAR2(50)邮箱,Operate=3时可空
输出参数描述:
参数名称出现次数参数类型备注
StreamingNo1VARCHAR2(10)流水号。将调用的StreamingNo原样返回,保证调用/返回的同步
ResultCode1SMALLINT操作结果的代码。
0表示正常
-1表示错误(可自定义,给出说明)
ResultDetail1VARCHAR2(100)简单的结果描述说明。

A系统和B系统之间通过socket进行通信,请求接口数据包格式如下:
项目长度(BYTES)说明
包开始标志4内容恒定为 ”FFFF”
包长度6包长度为整个包长度,数字转换成字符串,长度不足在左边补字符串‘0’
包的标识号10 流水号(即接口协议的StreamingNo)长度不足在左边补字符串‘0’
时间戳14即接口协议的TimeStamp,格式为YYYYMMDDHHmmSS
操作的类型1即接口协议的Operate:1:新增,2:修改,3:删除
参数个数2数字转换成字符串,左补字符串‘0’
包体可变长度结构参见下面的描述
包体由【参数个数】个以下的结构组成。KEY和SIZE的定义见下表定义:
?KEY : 3字节(参数id)
?SIZE: 3字节(数字转换成字符串,左补字符串‘0’)
?VALUE: SIZE字节的参数值
KEY值说明
000电话号码
001姓名
002地址
003邮箱
接口数据例子:
FFFF 000096000000000 12011081512131410400001 102038631234001004test002011 addresstest003009emailtest

返回消息数据包格式如下:
项目长度(BYTES)说明
包开始标志4内容恒定为 ”FFFF”
包长度6包长度为整个包长度,数字转换成字符串,长度不足在左边补字符串‘0’
包的标识号10 流水号(即接口协议的StreamingNo)长度不足在左边补字符串‘0’
请求执行结果标识4即接口协议ResultCode,数字转换成字符串,左补字符串‘0’
结果描述字符串可变长度由SIZE+VALUE结构组成:
SIZE:3字节(数字转换成字符串,左补字符串‘0’)
VALUE:SIZE字节的参数值
返回接口数据例子:
FFFF00003400000000010000007success

1.实现B系统,能接收来自A系统的消息,并更新T_Test表数据
a)B系统是一个socket server,接收数据请求并实现数据库更新操作,并将处理结果返回给调用者(提示:socket通信可用cindy实现)。
b)考虑如何处理A和B存在数据不一致的情况,并说明这样处理的理由。例如:A通知B新增一条数据,但B系统已经存在同主键的数据;或A通知B修改/删除一条数据,但B中不存在该数据。
c)能同时处理多个数据请求(提示:多线程)
2.用java写一个client 客户端,模拟A系统发送数据更新请求。
3.写出单元测试的代码,以及用到的测试数据
a)设计单元测试用的测试数据;对所用的每组测试数据,说明测试的目的
b)考虑并发的测试

这个题目的接口数据包格式看的不是很明白,
我的思路是:在B这个server里面,可以实时的查看A系统有没有SyncData接口的条用,如果有的话在根据具体的参数做具体的数据库操作。 
请大神们指教下是否正确。。。

[解决办法]
帮你顶一下 学习
[解决办法]
帮楼主顶一下!
[解决办法]
CSDN不帮做作业~~
[解决办法]

探讨
我的思路是:在B这个server里面,可以实时的查看A系统有没有SyncData接口的条用,如果有的话在根据具体的参数做具体的数据库操作。
请大神们指教下是否正确。。。

热点排行