2009年5月22日

  个人对软件设计及架构的总结:

1.软件设计        

Java 跨平台、虚拟机 .Net CLR

J2EE:一组规范,多种JSR的组合,ServletJSPEJBJDBCJNDIJMS

      JTARMI等等

目标:企业应用

2.企业应用的特点,这也是J2EE诞生的原因

   企业应用的特点

1. 涉及到持久化数据

2. 很多人同时访问数据

3. 含有大量操作数据的用户界面

4. 与散布在企业内部或周围的其他的应用集成

5. 各种异构系统的概念含有不一致性

6. 业务逻辑通常是最没有逻辑的东西

7. 企业应用并非都是大型的,但可能都为企业提供巨大的价值

   因此需要更强的健壮性、可扩展性和异常处理能力

3.经典道理:

l       

l        计算机科学里,没有任何问题是不能通过增加额外的附加层而得到解决的。

发展历史:

Flat File-〉事务处理系统(处理并发访问)-〉RDB(SQL)

-〉C/S应用(客户端负责数据获取和呈现,并直接访问数据库)

-〉受数据库的物理连接的限制,决定了客户端的最大连接数

-〉银弹:分层                                  |----【连接池】

    -〉三层架构 ,n-tier(中间件)           [tier & layer ]

    

   J2EE通过分层与AOP

4.系统架构

原则:接口实现分离、开闭、迪米特、依赖倒置、里氏替换

分层: presentation layer: mvc "databind " look & feel " i18n

Service layer: 接口实现分离" Service Locater" Facade

Business layer : BPM "Domain Model

Data Access layer: DAO ----DB independence

                   

事务:本地事务、声明式、编程式

安全:CASSLSOOLDAP

5.企业架构

       Zachman: 5W1H

n        数据(WHAT

n        功能(HOW

n        网络(WHERE

n        人员(WHO

n        时间(WHEN

n        动机(WHY

TOGAF: 4 Architeture

 ADM

 

6.应用整合

SOA-----WebService

    -------ESB 应用互联

-------SCA 服务组件

-------BPEL 业务编排

posted @ 2009-05-22 08:30 fph 阅读(1599) | 评论 (2)编辑 收藏

2007年11月15日

ORM(Object Relation Mapping)大家都很熟悉,包括hibernate,ibatis等等,JavaEE 5里面定义了JPA,也是差不多的意思。

这里的关键是Relation,将对象映射到关系数据库,为什么呢要映射到关系数据库,因为我们发展了这么多年的数据库历史,

并且发明了sql等一系列相关的工具以及稳定的DB Product。

OXM不是新名词,是我自己简写的(Object XML Mapping),将对象与xml(不一定是文件,是xml的表示方式)互相转换及映射,

目前有很多工具可以做,比如castor,我想用DOM或SAX也可以作出其他的类似工具。

XQuery ,XPath可以用来做类似sql的事情。

当然,如何把xml持久化呢,DB2 V9不是已经做了吗,不过xml只不过是关系数据库的一种附加品而已。

xml不一定非需要操作系统文件的方式呀,也许有一天,某一个数据库(或者叫持久化)产品是

只面向xml而非关系的,那么流行的将是OXM,或者叫OX(和XO很像呀,想来一口吗 ^-^),因为对象和xml之间几乎不需要mapping

posted @ 2007-11-15 12:59 fph 阅读(897) | 评论 (0)编辑 收藏

2007年5月27日

1。URL中get方式传递中文参数
      在WAS下需要取出参数之前加上
   request.setCharacterEncoding("GBK");
   String file = request.getParameter("file");

2。关于jsp:include的用法
     WAS下能<jsp:include page='<%=expression%>' />, 其中expression只能是单个变量,而不能是表达式,如request.getAttribute("XXX")
    这种在WAS下必须 
             
<% String aa = (String) request.getAttribute("aa");
%>
<jsp:include page="<%=aa%>"/>

  好像是标签里都会有这种问题,而直接用html语法不会有这个问题
    

posted @ 2007-05-27 14:49 fph 阅读(1486) | 评论 (0)编辑 收藏

2007年4月25日

最近遇到新系统与老系统部署共享jar冲突的问题,参考了下面文章,WAS的类加载机制

参考:http://www-128.ibm.com/developerworks/cn/websphere/library/techarticles/haoaili/0512/index.html#IDARCQPB

posted @ 2007-04-25 13:33 fph 阅读(315) | 评论 (0)编辑 收藏

2007年4月23日

type1:jdbc-odbc桥
          driver: sun.jdbc.odbc.JdbcOdbcDriver
          url:jdbc:odbc:odbcdatasourcename
type2:应用驱动
        driver: COM.ibm.db2.jdbc.app.DB2Driver
        url:jdbc:db2:dbname
           
       通用驱动
        driver:com.ibm.db2.jcc.DB2Driver
        url:  jdbc:db2:dbname

type3: 网络驱动
       driver : COM.ibm.db2.jdbc.net.DB2Driver
       url: jdbc:db2:// server:portNumber / dbname
 
      此处端口号默认为6789,也可以用db2jstrt <port number>  自己在db server上启动设置。
       
      这个中间件服务器就是安装DB2后在服务中显示为”DB2 JDBC小应用程序服务器–对DB2应用程序提供JDBC服务支持”(在windwos上安装DB2的),务必使这个服务启动,否则type3型的JDBC是链接不上的。这个中间件服务器就是安装DB2后在服务中显示为”DB2 JDBC Applet服务器–对DB2应用程序提供JDBC服务支持”(在windwos上安装DB2的),务必使这个服务启动,否则type3型的JDBC是链接不上的。
       参考:http://feed.feedsky.com/niarevol

type4:直接驱动
      driver :com.ibm.db2.jcc.DB2Driver
      url:
jdbc:db2:// server:portNumber / dbname
     此处端口号默认为50000,为数据库实例的端口号
 
     需要 db2jcc_license_*.jar文件,我的是db2jcc_license_cu.jar

    连接 DB2 UDB for z/OS、OS/390 和 iSeries 时需专门考虑:
  • DB2 Connect 软件是必要的,因为它带来所需的许可文件: db2jcc_license_cisuz.jar
  • 在指定数据库名时,务必使用大写体

posted @ 2007-04-23 18:52 fph 阅读(1792) | 评论 (0)编辑 收藏

2007年4月20日

因为我们的系统考虑到加密及认证,因此又学习了一下CA,把以前不是很清楚的地方确认了一下。
基础: 对称加密 :速度快,大量数据加密
              非对称加密:效率慢,用于加密,签名,传输对称密钥

而网络安全的基础就是非对称加密算法。
四要素: 
          保密性:加密
          完整性:Hash算法
          认证: 数字证书,数字签名
          抗抵赖:数字签名
签名用本人私钥,加密用对方公钥。

posted @ 2007-04-20 10:51 fph 阅读(230) | 评论 (0)编辑 收藏

2007年4月13日

今天上eclipse网址,发现有个分类是webinar,查了金山,没有。

google了一下,意思如下:

Short for Web-based seminar

posted @ 2007-04-13 13:19 fph 阅读(320) | 评论 (0)编辑 收藏

2007年4月12日

最近在看阎博士的Java与模式,有一点说得很不错,模式是根据用途来命名的,而模式的实现不外乎Java里面类、或者对象之间的关系。其实最一般化的就是关联关系了。
而关联关系在UML中根据用意不同分为聚合、合成等。

因此所有的模式或关系都是Java类或对象的关联。

btw:很懒的人,不怎么写blog,今天突然想起来了,写了一下,发现写blog有助于加强对一些概念的理解,如聚合、合成的区别,copy如下:

一般关联:只要一个对象联系到另外一个对象就形成了关联关系。如:人和他的猫,黑豹乐队和窦魏,pc机和显示器。

聚合关系:一种强关联关系,它要求有部分和整体的关系,并且没有了整体部分也可以独立存在。在上面三个例子中人和它的猫显然没有部分和整体的关系,所以只能是一般的关联关系。而黑豹乐队和窦魏,窦魏等人组成了黑豹乐队即:窦魏和黑豹是整体和部分的关系。而窦魏脱离了黑豹(早就离开了)更或者黑豹不存在了那么窦魏仍然可以以音乐人的身份存在(即对象仍然可以独立存在)所以它属于聚合关系。组成关系是可以共享的。(窦魏也可以加入其他乐队)。

组合关系:一种更强的整体和部分的关系。它并且要求代表整体的对象负责代表部分的对象的生命周期,组成关系是不能共享的。如:pc机和显示器的关系。

posted @ 2007-04-12 13:31 fph 阅读(367) | 评论 (3)编辑 收藏

仅列出标题