今天打算对之前进行多年的服务器端开发进行下技术总结,以供大家参考。

个人对服务器开发基础框架平台有以下几点总结(会随时更新):

1、 网络设计 (BIO( java.net )和NIO( java.nio.channels )两种方式,参考 MINA (C/S), JETTY (B/S) jsockets jniosocket 等开源项目)(参考资料 O’reilly 系列网络编程 )

2、 传输协议设计 (http、https、ftp、smtp等协议和自定义传输协议,基于TCP/IP协议之上)

3、 I/O处理设计 (字节流( java.io )和字符流到Buffer( java.nio )缓冲区,最后把可以扩展到stream object 转换成POJO,将POJO转换成stream object的范围)(参考 O’reilly 系列的 IO NIO 两本书籍

4、 可以扩展的XML设计 (可以跟其它语言(C++等)开发的系统进行交互请求信息,也是一种很重要的手段,包括解析( JDOM DOM SAX DOM4j 等)、生成、语言格式)

5、 管理设计 JMX (参考资料 O’reilly 系列 JMX 书籍。 javax.management ), JFOXMX MX4J 开源项目

6、 消息设计 JMS (参考资料 O’reilly 系列 JMS 书籍), OPENJMS 开源项目)

7、 安全设计 (访问控制器、数据加密、数据传输保护和授权( javax.crypto 参考资料 O’reilly 系列 java 安全书籍 、传输加密( javax.net )==)

8、 缓存设计 JCS (内存缓冲、索引式硬盘缓冲、并行式的分布缓冲和 Client/Server 式的缓冲) CACHE4J 、EOCACHE等)

9、 多线程池设计 concurrent 开源项目,对应 java.util.concurrent

10、 事务处理(包括分布式事务处理)设计 (暂缺,可能包含在15和12中==)

11、 资源池(数据库连接池、socket连接池、线程池等)、对象池等开销大的资源设计 (个人认为这块还是很难的。可以参考比较优秀的开源项目中设计,可以完善自己的设计思想)

12、 数据持久化设计 JDO HIBERNATE IBSTAT 等开源项目)

13、 WEB框架设计 (基础框架SERVLET、SOAP技术。 STRUTS JSF AJAX TAPESTRY 等开源项目)

14、 处理机制的异步设计 责任链设计 流水线设计 等)

15、 扩展到分布式设计 RMI (参考资料 O’reilly 系列 RMI 书籍 java.rmi JTA 等)

16、 扩展到命名空间设计 JNDI (参考资料 The JNDI Tutorial javax.naming ))

17、 对象重用设计 (这是在代码中要注意的,个人根据经验分析,需要每次创建的对象是请求对象和结果对象,中间过程的所需要的功能对象一般都可以做成重用的方式)

18、 JVM的参数优化 (类加载技术(包含热部署)属于外部部署, ANT 开源项目

19、 服务器部署的目录结构 :BIN、CONF、LIB、LOG目录等。

20、 业务逻辑处理设计 (根据实际情况来进行, SPRING EJB JDON 等),严格的来说是另一个范畴。

21、 组件设计 (属于一些特定领域应用,例如JYTHON、JAVACC、HSQLDB、QUARTZ等开源项目)

22、 通过在实际的使用过程中积累经验 (解决使用中出现的问题)。

 

个人认为多核CPU的出现,今后的会发展成并行处理的设计方式和分布式等多个技术发展方面。目前才认识到大学里的基础知识给服务器开发(应该是很多方面)提供了很多基础设计的思想(只能怪自己当初大学里没有好好学习啊,嘿嘿)。

9和11可以合并。

10和12本人感觉有点像是业务逻辑处理的数据层面的东西,但还不能确定。

18和19可以合并成一部分,因为都是属于部署方面的。

 

主要相关技术归类

底层技术

汇编

程序机器级表示

处理器体系结构

编译器技术

存储器层次结构

虚拟存储器

链接

信息表示和处理

 

 

Java 基础

语法

关键字

类初始化

重载与重写

三大特性(封装、继承、多态)

一般优化

 

     

Java SE

Java security

Java thread(1.4和1.5)

Java I/O(1.3和1.4)

AWT/SWING

Java Exception

Java network(1.3和1.4)

Class loader

JVM Standard

Java Reflection

Java Beans

Java 事务

 

 

 

 

Java EE

JMS

JMX

JNDI

RMI

JDBC

JTA

JCA

EJB

JAAS

Servlet/JSP

JDO

 

 

 

 

 

参考推荐:

服务器开发总结

技术团队新官上任之基层篇

 

原文: 后台服务器开发总结