今天打算对之前进行多年的服务器端开发进行下技术总结,以供大家参考。
个人对服务器开发基础框架平台有以下几点总结(会随时更新):
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
参考推荐:
服务器开发总结技术团队新官上任之基层篇
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。