关于在Web应用中实现MDA+Component的几点想法

一. 开发Web应用面临的问题

1.    开发Web应用的复杂在于变化太多、重用太少。变化是不可避免的,没有变化的系统是没有生命力的,而重用却是可以增强的。一个优秀的Web系统应该能适应不断变化的需求,并大量重用已有的代码或业务。

2.    典型的Web系统分为三层:用户界面层、业务逻辑层、数据存储层。分层后Web应用开发由平面变成了立体,这有助于分解问题的复杂度,有助于提高开发效率。但目前的重用却是平面的,如用户界面层的控件、业务逻辑层的类库等,开发一个功能,哪怕是最常用的功能也需要从数据库到业务逻辑到界面一层一层地去实现。

3.    Web系统的维护是一个很令人头痛的问题。由于将Web分成了多层,这样导致一个功能的变化影响到每一个层中的代码,而实际可能仅仅是修改一个名字,随着业务的不断扩展,这种维护成本将越来越高。

4.    软件不仅仅是一组代码的集合,不仅仅是一张光盘中的内容,软件应该有更深层次的内含。软件的生产者不应该仅仅向用户提供产品,还应该提供个性化的服务。目前市场上的软件销售存在几种方式:

1)    固定产品,用户只能被动接受,不能根据实际情况进行调整,即使允许也只能在有限的范围内。

2)    定制开发,根据用户实际需求,由软件公司提供满足用户要求的软件产品。

3)    1,2的混合。

选择固定产品的企业,前期投入相对小一些,并且可以迅速地得到应用,但要找到一款最符合该企业应用的产品却是非常困难的。定制开发却没有选择固定产品的优势,其前期投入大,研发时间长,往往项目启动时确定的需求,在完成后甚至开发时就发生变化,导致项目久拖一下,最终损害的是软件用户的利益。对于固定产品和定制开发的混合方式往往规模比较大,只有大型的企业用户才能实施,而且也存在着上述问题。

 

 

二. 解决方案

1.    重用立方体:组件

组件所提供的是一组联系非常紧密的功能的集合,用户可以选择是否需要某个组件,而一但用户选择了这个组件,则可以立即得到应用,组件包含了用户界面、业务逻辑、数据存储中的所有相关功能。例如安全管理,这是一个很常用的功能,包含登入、密码修改、权限配置等界面和业务逻辑,还有相应的数据库存储结构,如果分开去实现,也是一个很烦杂的任务,而以组件方式提供,就可以将这三层的内容同时得到部署,用户也可以在第一时间看到运行结果,并做出是否符合需求的判断。

2.    极速应用开发:MDA

光有组件还是不行的,再独立的组件也会与其他组件发生关系,没有关系的组件是没有用处的,组件相当于一个固定的软件产品,他能够约定其内部的功能,但却无法预测组件间的关系。组件间的关系如果采用硬编码,则又回到原始模式,必然使 组件更加透明,增加了维护的复杂度。所以我们可以采用MDA,以模型驱动适应变化,隐藏具体实现的细节,从更高的抽象层次去控制软件的变化。

 

 

三. 技术实现

1.    以组件方式开发已经不是什么新鲜事物,从技术上不存在可不可以实现的问题,只有做得够不够好的问题。

2.    MDA是人们正在探索的一种软件开发方式,能不能实现还存在疑问,但是我认为在特定的领域是完全可以实现的。例如在Web应用中,我们选择一种技术实现方式,如采用JSP+Struts+Hibernate来实现,我们首先定义领域模型,而这个模型一旦完成就可以生成Hibernate映射和数据库创建脚本,并指导生成StrutsActionForm,再进一步生成增查删改界面和业务逻辑。其他的功能继续在MDA方法的指导下一步一下地完成。

3.    这个软件的功能可以在eclipse上实现,eclipe的开放性和优秀的插件功能为组件化开发和MDA提供了良好的平台,并且由于eclipse是自由软件,可以将他发布到企业应用中,因为最终的结果不仅仅是开发后的软件产品,还有服务。

诚然,采用以上这些方式生成的应用系统,在某些人看来不够灵活,不能生成非常特有的界面和功能,在性能上也无法做到最优化,但他可以根据用记的需求迅速的展现,根据企业的发展极速好调整,这个时间不再是几天、几月甚至几年,而可能仅仅是几小时,这将导致在某些领域内的软件革命,所有企业的软件都是定制的,而这个定制的时间又是极其短暂的,这才是企业正真想要的。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值