研发管理之客户端与服务器的协作

Posted on Mon 30 November 2009 in 我记 • Tagged with 研发管理, 管理, 通讯协议

今天上午和下午分别在CEO和研发VP的屋子里面开站立会议,别误会,此站立会议不是Scrum里面的那个Sprint中每天早上的那个站立会议。开会的目的是要落实业务导向的研发组织结构。

上午的会给出了一个比较激进的研发管理结构,把客户端和服务器的研发也都按照产品线给合并了,相比之下,由我们部门自己规划和发布的两条线变成了三条线的这个变化,就不算什么了。大佬提出的这个方案,在总监层面的反应不是特别的积极,研发VP建议大家回头各自整理一下,再继续讨论。

中午吃饭前看到RTX上老汉发了一条消息:服务器和客户端能不能分头开发?华仔的回复是“可以啊”。我回的是“为什么不呢,分开搞爽死了”。遥想第一次在公司开季度总结会,我就向研发VP提出建议服务器和客户端分开开发的工作模式,被拒绝了。上次一块吃饭的时候,又提过一次,记得拒绝的理由是怕两方沟通不畅。这次老汉提出这个建议后,结果又会怎样呢?

下午4点半大家聚齐后开始讨论研发组织结构,大家集思广益,的确有所收获:1. 研发矩阵式管理模型的明确;2. 服务器、客户端之字形演进方式的讨论;3. 三级研发人员的KPI考评体系。分别展开记录如下:

原有的按平台和技术划分的部门为纵向结构,继续保持,由产品线经理统领,在招聘、培训、资源分配等方面进行管理;横向按照产品线进行组织,由产品、运营和研发(客户端、服务器各一人 ...


Continue reading

无视Https证书是否正确的Java Http Client

Posted on Thu 10 September 2009 in 我用(IT) • Tagged with https, PKI, 性能测试, 通讯协议

需要保证通讯的端到端安全,大家一致认为Https方式最适合,但需要评估性能代价。

采取ajp connector貌似无法直接使用httpd2进行load balance了,而且proxy模式的性能实在是让人心寒;jk connector如果tomcat不配ssl,据说需要forward一下,还没有搞定。

为了测试性能,写了个可以无视Https证书是否正确都能连接的Java Http Client。以为很简单的一段代码,绕是迈过了两个小门槛,才搞定的。code可以拿出来晒一晒了。

运行环境jdk1.6,不需要其它类库。

package test;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;

import javax.net.ssl ...

Continue reading

【通讯协议】文档编写注意事项/模拟程序开发计划

Posted on Thu 31 July 2008 in it • Tagged with 软件开发, 通讯协议

- 文档编写注意事项
1. 统一使用标准实体
例如ClientInfo/UserInfo/MobileInfo等,分别代表客户端(软件)信息/用户信息/手机(硬件信息)等

2. 协议文档中增加实现具体功能的协议交互序列图
通过序列图,能够清晰描述本协议使用场景和交互过程

3. 协议文档演进注意事项:
基线控制,注意文档的版本和修订日志

- Server端的模拟程序开发计划
1. 报文级的单元测试
实现简单的单次报文请求/回复
2. 基于单元测试的功能模拟测试程序
辅助程序的开发依赖于交互流程的明确
模拟多次交互的功能应用


Continue reading

【通讯】采用ZLIB实现传输过程的数据压缩

Posted on Mon 16 June 2008 in 我用(IT) • Tagged with java, 通讯协议

- 关于ZLIB
zlib是提供数据压缩的一个函数库,使用抽象化的DEFLATE演算法。
zlib是开源的,做为一种事实上的业界标准,因其代码的可移植性,宽松的授權许可以及较小的内存占用,zlib在许多嵌入式设备中也有应用。

http://en.wikipedia.org/wiki/ZLIB

- 代码示意

/**
 *
 * Put Object to compressed Byte Array
 *
 */
 protected byte[] deflate(Object object) throws IOException{
 
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  Deflater def = new Deflater (Deflater.BEST_COMPRESSION);
  DeflaterOutputStream dos = new DeflaterOutputStream(baos, def);
 
  ObjectOutputStream out = new ObjectOutputStream(dos);
  out ...


Continue reading

【通讯协议】基于HTTP通讯的C/S结构下的安全传输架构

Posted on Thu 27 March 2008 in 我用(IT) • Tagged with API, 加密算法, 通讯协议

- 策略
key/value保存在服务器
传输过程中,用value做加密

- API
Bouncy Castle
http://www.bouncycastle.org/
Java & C#
支持常见算法
DES
AES
IDEA
Blowfish
参考:http://www.softdeveloper.cn/archives/3.html


Continue reading