企业应用的系统构架师应该关注的几个方面
数据持久层的设计
在Spring和Hibernate,ibatis出来以前,几乎每家公司都有自己的一套方法和架构,而架构师的50%的精力也会集中到这上面,EJB只是增加架构师的负担。在Spring出来以后,基本上,大多数的架构师都从重复设计这个轮子的无用功中解脱出来了。Rod的轮子太好用了,基本上,大家只要套上去就行了,或者,剩下最重要的事情,是选择一个合适的数据库连接池的开源项目吧
MVC架构的具体设计
MVC只是个概要的概念,具体如何实现的具体技术很多,根据项目设计最恰当的架构
大并发性访问
使用缓存,在数据量达到一定程度时,使用集群技术,优先考虑利用服务器的集群,其次是硬件集群,最后才是应用本身加入集群功能
超大数据量返回结果
尽量使用分页,优化SQL语句,循环处理数据时尽可能共用对象,只保留关键数据,及时释放内存占用
超大文件的读取和生成
尽可能快的读取大文件,并进行分析。写入大文件时,如何及时释放内存。学会适当利用操作系统的命令行资源来更快完成任务。
多线程的应用和管理
线程池的管理和监控,线程的启动(包括定时启动),结束,回收,线程资源的释放
用户界面可用性设计
平衡速度和可用性,恰当的使用异步和同步技术,展现关键数据为重点
分布式的数据交流和集成
选择恰当的数据交互方式,从最泛滥低效的Web Service到最实用的文件共享
群集系统的管理
如何确保缓存的同步?如何确保对象唯一性?如何保证各台机器的同步?
是否采用EJB?如何利用J2EE的特性(例如JNDI)
复杂的业务规则
规则引擎和工作流引擎场景和应用
其实,作为一个真正的系统架构师,不应该局限于企业应用的系统,这种系统往往有数据库的局限性,有时候,应该考虑是否可以横向跨越,直接对其它系统做一些架构考虑,在没有丰富的实战经验的前提下,而只是看了其它人的系统和代码,就能够给出有效的设计指导。