谭明智的空间

我们一直在努力....

基于EJB的企业级组件的开发

标签: EJB 企业级 组件 SOA 系统设计

 

基于EJB的企业级组件的开发
Authoryongtree
 
1.      前言
Peter 和Oliver在《基于组件的企业级开发》一书中描绘了一个美好的愿景:未来的企业级系统的构建,应该像去超市买东西那样去选择自己合适的组件,构建一个企业级系统就像组装电脑一样简单。这个美好的憧憬的确很诱人。
软件发展到今天,人们一直在追求面向对象、模块化、分布式系统、软件重用,从而解决大规模软件系统开发复杂性的问题。当今社会,人们的职责更加的明晰,分工更加的精细,人们更加关注自己专注的领域,而无法对其他领域触类旁通。在软件系统的构造中,也面临着这样一个问题,人们已经不再追求万金油,取而代之的是人们更加的专注,工作更加的单一,怎样在软件开发中,让不同的人关注其本身而无需关注其他东西便能够建起复杂的系统,组件化软件系统开发就是解决这些问题的一种有效途径。
2.      企业级组件开发的简单模型
《基于组件的企业级开发》一书中向我们阐述了几种组件模型,简化一点可以分为三种组件,从细到粗依次是分布是组件、业务组件、系统组件。组件组成平面图如下:
分布式组件粒度最细,它封装了系统内所有的原子级的操作,主要包括基础工具服务(如代码生成器,事务管理器等),操作底层实体的基本服务。该类型组件不能独立完成业务功能,但是能被更多的业务组件调用,实现不同的业务操作。
业务组件由分布式组件群集而成,用于完成一个业务过程。如生成订单。
系统级组件是一组组装起来针对某个业务问题提供解决方案的相互协同的业务组件。
多个系统级组件按照一定方式进行组装、关联,互操作处理,形成最终的软件系统。
 
下图为企业级组件层次关系图
 
在B/S结构中,系统组件、业务组件、分布式组件在技术实现上应该都具备分布式能力。功能层也可以叫用户层,直接面向用户,用户通过浏览器直接操作。功能层运行在web服务器中,通过调用分布式服务来完成相应的功能。功能层和系统组件应该有一个整合平台,能对系统进行服务调用配置和具备一定的二次开发的能力。
 
3.      基于Java EE的分布式软件系统的模型
 
上图为Java EE体系下构建分布式应用基本物理架构图。通常使用apache作为负载均衡器,tomcat作为web容器,与用户直接沟通的功能层(用户层),通过tomcat集群处理实现负载均衡。在分布式应用层,上一节介绍的各组件系统运行在此层,因为该层具有分布式的能力,各个组件可以各自运行在自己的JBOSS容器中,共web服务器调用。
分布式应用层是系统中最关键的一层,必须具备高安全、高性能、高稳定性的特性,所以对于用户是黑盒不透明的,用户不能直接访问这一层。同样,对于其他系统,如果需要和该系统集成或交互,分布式应用层对这些系统也应该是隐藏的,其他系统也不能直接访问该层,需要在该层之外建立具有标准接口的web 服务层,通过web service提供的各种服务,可以和OA、网上药店等系统进行交互,和信息的传递。
在web层,可以采用Struts、JSF、Ext+Struts等多种技术方式进行展现。同时该层需要根据用户的需求而不断得变化,一种简单的、解释性、能无缝调用java语言的动态语言作为二次开发的原形语言,在Java体系中可以考虑使用Groovy进行构建。在分布式业务层,EJB是唯一的选择,通过分布式集群的高效的计算能力,处理复杂的业务逻辑。使用JPA的标准可以实现实体操作性的高度可移植和多种数据库的支持能力。
4.      运用EJB进行企业级组件的开发
综合企业级组件开发模型和Java EE分布式软件模型,使用EJB构建具有分布式能力的企业级组件的模型如下:
1、 在垂直方向上,使用本地接口(较多)和远程接口(较少)构件系统级组件,能独立的完成一系列的业务功能。系统级组件之间也交叉调用彼此共同的组件。
2、 在水平方向上,抽取分布式组件、业务组件的共性,对各系统级组件提供公共的分布式服务。
 
 
以上是对企业级组件开发一点浅薄的认识,在以后开发的过程中将更加细致的体会基于EJB的企业级组件开发的模式。

    评分: 请先登录再投票,同一篇博客一月只能投票一次!
    无人投票

相关博客:


评论


发表评论

关注此文的人们还关注