SOA-SSH分层架构的设计与应用
- 格式:doc
- 大小:89.23 KB
- 文档页数:5
ssh框架原理及流程SSH框架原理及流程。
SSH框架是指Struts、Spring、Hibernate三个开源框架的整合,它们分别解决了Web层、业务逻辑层和数据访问层的问题。
在实际开发中,SSH框架已经成为了JavaEE开发的主流框架之一。
本文将从SSH框架的原理和流程两个方面进行介绍。
首先,我们来了解一下SSH框架的原理。
Struts框架主要用于处理Web层的请求,它采用MVC(Model-View-Controller)的设计模式,将应用程序分为模型、视图和控制器三个部分。
Spring框架是一个轻量级的IoC(控制反转)和AOP(面向切面编程)容器,它提供了一个全面的基础设施,用于构建企业级应用。
Hibernate框架则是用来解决数据访问层的问题,它是一个强大的、高性能的对象关系映射(ORM)框架,能够将对象和数据库表之间进行映射,从而简化了数据访问层的开发。
接下来,我们将介绍SSH框架的流程。
首先,用户发送请求到Struts的Action,Action根据请求调用相应的业务逻辑,然后将处理结果返回给用户。
在这个过程中,Spring负责管理业务逻辑组件,提供了IoC容器和AOP框架的支持。
同时,Hibernate负责处理数据的持久化,它可以通过配置文件来映射Java对象和数据库表,从而实现数据的增删改查操作。
整个流程中,三个框架各司其职,相互配合,使得开发变得更加高效和简洁。
总结一下,SSH框架的原理是由Struts、Spring、Hibernate三个框架整合而成,分别解决了Web层、业务逻辑层和数据访问层的问题。
在实际开发中,SSH框架的流程是用户发送请求到Struts的Action,Action调用业务逻辑,Spring负责管理业务逻辑组件,Hibernate负责数据持久化。
三个框架相互配合,使得开发变得更加高效和简洁。
通过本文的介绍,相信读者对SSH框架的原理和流程有了更深入的了解,希望能够对大家在实际开发中有所帮助。
解析SOA架构与相关技术SOA(服务导向架构)是一种设计和构建应用程序的软件架构风格,它将应用程序的功能划分为一组可以独立运行和管理的服务。
服务之间通过网络进行通信,并通过一套标准的接口定义和协议交换数据。
SOA架构的核心思想是将复杂的应用程序拆分为一系列相对独立的服务,每个服务都具有明确定义的接口,并且可以独立开发、部署和维护。
这种模块化的设计使得应用程序更易于扩展和升级,同时也提高了开发的效率和重用性。
在SOA架构中,服务是一种可组合的单元,可以进行组合和重组以满足不同的业务需求。
服务可以由不同的组织或团队开发,并且可以在不同的技术平台上运行。
这种松耦合的设计使得服务可以独立演化和升级,而不会对整个系统产生影响。
与SOA架构相关的一些技术包括:1. 服务描述语言(Service Description Language,SDL):用于描述服务的接口和功能。
常见的SDL包括WSDL(Web ServicesDescription Language)和RESTful API。
2. 服务注册与发现:用于管理和查找可用的服务。
常见的技术包括UDDI(Universal Description, Discovery, and Integration)和Zookeeper。
3. 服务编排:用于组合和协调多个服务以完成复杂的业务流程。
常见的技术包括BPEL(Business Process Execution Language)和Camel。
4. 服务治理:用于管理和监控服务的运行状态和行为。
包括安全性、可靠性、性能等方面的管理。
常见的技术包括ESB(Enterprise Service Bus)和API网关。
5. 服务交互:用于实现服务之间的通信和数据交换。
常见的技术包括SOAP(Simple Object Access Protocol)和REST(Representational State Transfer)。
基于SOA架构的解决方案一、架构设计1.服务层在SOA架构中,服务是系统中的核心组件,通过服务实现不同模块之间的解耦和可复用性。
在设计中,需要将不同的业务功能划分为独立的服务,每个服务具有清晰的职责和接口。
服务之间通过消息传递或远程调用进行通信,并且可以通过服务总线或注册表来实现服务的发现和调用。
2.数据层在SOA架构中,数据层负责管理和存储各类数据。
数据可以通过关系型数据库、文件系统或其他存储介质进行持久化。
为了提高数据的可访问性和灵活性,可以使用数据访问服务模块对外提供统一的数据访问接口,并提供数据缓存、数据分片和数据同步等功能。
3.客户端在SOA架构中,客户端可以是各种不同的设备,如PC、手机、平板等。
客户端通过服务接口与服务进行通信,并通过服务的支持实现各种业务功能。
为了提供更好的用户体验和界面功能,可以使用前端框架、组件库和UI设计模式等技术。
二、关键技术和组件1.服务注册与发现为了使系统中的服务能够实现自动发现和调用,可以使用服务注册与发现的技术。
常用的方案包括使用服务总线或注册表,通过发布订阅模式将服务注册到注册中心,并使用服务请求者来获取服务地址和进行服务调用。
此外,也可以使用现成的开源组件,如ZooKeeper或Eureka等。
2.消息传递在SOA架构中,服务之间通过消息传递进行通信。
常用的方案包括使用消息队列或消息中间件来实现消息的发布和订阅,并提供可靠的消息传递和回复机制。
常用的消息中间件包括ActiveMQ、RabbitMQ和Kafka等。
3.服务编排和流程引擎在SOA架构中,服务编排和流程引擎可以帮助实现复杂的业务流程和协作。
通过将不同的服务进行组合和编排,可以实现复杂的业务逻辑和协作。
常用的服务编排和流程引擎包括BPEL、Activiti和Camunda等。
4.安全和权限控制在SOA架构中,安全和权限控制是非常重要的。
为了保护系统的安全性和可用性,需要在服务层和数据层实施安全措施。
SOA解决方案介绍SOA (Service-Oriented Architecture) 是一种软件架构模式,旨在通过将应用程序拆分为可重用的服务来促进应用程序组件的松耦合。
SOA解决方案为企业提供了一种实现松耦合、可扩展和可维护的应用程序的方法。
下面将介绍 SOA 解决方案的主要特点、优势和适用场景。
主要特点:1.服务组件化:SOA将应用程序拆分为独立的服务组件,每个组件执行特定的任务,并通过网络进行通信。
2.松耦合:SOA的服务组件是松耦合的,意味着它们可以独立进行开发、测试和部署,而不会影响其他组件。
3.可重用性:SOA鼓励开发可重用的服务组件,可以在不同的应用程序和业务流程中重复使用。
4. 标准化通信:SOA 使用标准的协议和接口来实现服务之间的通信,如 SOAP (Simple Object Access Protocol) 和 REST (Representational State Transfer)。
5.分布式部署:SOA的服务组件可以在分布式环境中部署,可以在不同的服务器和平台上运行。
优势:1.灵活性和可扩展性:SOA允许企业根据业务需求添加、移除或修改服务组件,从而实现更灵活和可扩展的应用程序。
2.服务重用:SOA的服务组件可以在多个应用程序和业务流程中重复使用,提高开发效率和降低成本。
3.业务流程的可控性:SOA可以将业务流程抽象为一个个服务组件,从而使业务流程更加可控和可管理。
4.相对独立的部署和升级:SOA允许服务组件相对独立地进行部署和升级,避免了整个应用程序的中断。
5.跨平台和跨语言支持:SOA使用标准的通信协议和接口,使得服务组件可以跨平台和跨语言进行交互。
适用场景:1.企业应用集成:SOA可以通过将企业的各个应用程序转化为服务组件,实现这些应用程序之间的高度集成和数据共享。
2.业务流程的自动化:SOA可以将复杂的业务流程抽象为服务组件,并使用工作流引擎对业务流程进行自动化管理。
基于SOA架构的软件工程方法运用随着互联网的迅猛发展和信息化程度的提升,企业对于软件系统的要求也越来越高。
传统的软件工程方法在满足需求、设计系统和实施部署方面存在一些瓶颈,无法完全满足企业的需求。
以SOA(面向服务的架构)为基础的软件工程方法因其可重用、可扩展和松耦合的特点,成为解决这些问题的有效手段。
本文将阐述基于SOA架构的软件工程方法的运用。
首先,SOA架构的特点是将系统划分为不同的服务,每个服务都是具有特定功能的独立模块。
这些服务可以通过网络进行通信,直接调用其他服务提供的功能。
在软件工程中,可以将系统的各个功能模块抽象成服务,通过定义服务接口和协议来实现不同模块的交互。
这种基于服务的工程方法可以提高系统的可扩展性和可重用性,降低系统的耦合度,使得系统更加容易维护和升级。
其次,基于SOA架构的软件工程方法强调服务的独立部署和管理。
每个服务都可以独立部署和升级,不会影响其他服务的正常运行。
这种特性使得系统在需要扩展功能或者替换服务时更加灵活和高效。
此外,基于SOA架构的软件工程方法还可以通过服务的发布和订阅机制实现系统的动态扩展和组合。
当有新的服务可用时,系统可以自动订阅并集成这些服务,同时也可以取消订阅不再需要的服务,使得系统的功能更加丰富和灵活。
再次,基于SOA架构的软件工程方法还可以提高系统的可靠性和可用性。
通过将系统的各个功能模块抽象成服务,可以实现服务的冗余和负载均衡。
当一些服务发生故障时,系统可以自动切换到其他可用的服务,确保系统的持续稳定运行。
此外,基于SOA架构的软件工程方法还可以提供监控和管理服务的功能,及时发现和排除潜在的故障,提高系统的可用性。
最后,基于SOA架构的软件工程方法还可以提高系统的安全性。
通过将系统的各个功能模块抽象成服务,可以实现对服务的统一认证和授权。
只有经过认证的用户才能访问和使用服务,确保系统的数据和功能的安全性。
此外,基于SOA架构的软件工程方法还可以实现消息的加密和数字签名,防止数据在传输过程中被篡改或者盗取,提高系统的安全性。
SOA-SSH分层架构的设计与应用1 基于SSH架构的应用开发框架系统基于轻量级J2EE软件SSH架构,由Struts、Spring、Hibernate根据其各自的应用特性而进行整合而成,选择以Spring框架为核心并整合Struts和Hibernate的框架组合。
SSH组合框架如图所示,包括表现层、业务逻辑层和数据持久层。
系统采用可重用的、成熟稳定的SSH框架可以构建健壮的、可重用的、可扩充的、易维护的Web应用程序。
Struts框架是基于MVC模式的Web框架。
MVC设计模式是由模型(Model),视图(View)和控制器(Controller)3个部分组成,而Struts是一个免费的开源Web层应用框架,具有很高的可配置性。
Spring框架提供了一种轻量级的企业业务解决方案,用于建立“快速装配式企业组件”。
在此基础上,Spring还提供了包括声明式事务管理,RMI或Web Services远程访问业务逻辑,以及可以多种方法进行的持久化数据库的解决方案。
Hibernate框架是一个优秀的开放源代码的JAVA对象持久层轻量级框架。
它的工作原理是通过配置文件把JAVA域对象和数据库表之间建立起一个映射关系,这样,只需要通过操作这些域对象达到操作数据库的目的。
通过3种框架优化组合实现系统分层解耦,一方面有利于项目组各角色的明确分工,提高开发效率,缩短系统开发周期;另一方面使系统具有良好的扩展能力和可维护性。
页面表现层页面层由Struts实现,Struts是基于MVC模型的框架。
MVC模型将一个Web应用分割成为模型(Model)、视图(View)和控制器(Controller)三个部件,这三个部件既相互独立又能协同工作,通用的控制组件ActionServlet接收来自客户端的HTTP请求,根据Struts-config.xml配置文件,把请求转发给相应的Action对象,然后Action类实现业务逻辑和动作处理,通过流程跳转将处理结果返回给客户端业务逻辑层由Spring实现业务组件的组装关联与管理,Spring是个流行的轻量级容器,是一个开源的并且普遍兼容的非强制性的框架。
SSH框架用法1. 什么是SSH框架SSH框架是一种用于构建分布式系统的开发框架,它由三个关键组件组成:Spring、Struts和Hibernate。
这三个组件分别负责处理应用程序的业务逻辑、Web层和数据访问层。
通过将它们集成在一起,SSH框架提供了一个完整的解决方案,使开发人员能够更快速、更高效地开发和维护复杂的分布式系统。
2. SSH框架的优势SSH框架具有以下几个优势:•模块化:SSH框架将整个应用程序划分为不同的模块,每个模块负责不同的功能。
这种模块化设计使得应用程序易于维护和扩展。
•松耦合:SSH框架使用依赖注入(Dependency Injection)来管理各个组件之间的依赖关系。
这种松耦合的设计使得各个组件可以独立开发、测试和部署。
•高效性能:SSH框架采用了多种优化技术,如缓存、懒加载等,来提高应用程序的性能。
同时,Hibernate作为数据访问层的组件,可以利用其自身的缓存机制来减少数据库访问次数,进一步提高性能。
•安全性:SSH框架提供了多种安全措施,如用户认证、权限控制等,以保护应用程序的安全。
同时,SSH框架还支持HTTPS协议,可以加密数据传输,提高数据的安全性。
3. SSH框架的核心组件SSH框架由三个核心组件组成:•Spring:Spring是一个轻量级的Java开发框架,它提供了依赖注入、面向切面编程等功能。
在SSH框架中,Spring负责处理应用程序的业务逻辑。
通过使用Spring的IoC容器和AOP技术,开发人员可以更方便地管理各个业务组件之间的依赖关系,并实现横切关注点的模块化。
•Struts:Struts是一个基于MVC设计模式的Web开发框架,它负责处理应用程序的Web层。
在SSH框架中,Struts作为前端控制器接收用户请求,并将请求转发给相应的业务处理组件。
通过使用Struts的标签库和拦截器机制,开发人员可以更方便地实现表单验证、页面跳转等功能。
soa原理方法实践Service-Oriented Architecture(面向服务的架构,简称SOA)是一种应用架构的设计理念,主要目标是实现系统的可重用性、灵活性和可扩展性。
本文将探讨SOA的原理、方法以及实践。
一、SOA的原理SOA基于一系列原则,其中包括以下几点:1. 服务化:将系统的各个功能模块抽象为独立的服务,每个服务提供特定的功能,并通过标准化接口进行通信。
这种松耦合的设计使得服务可以独立开发、部署和维护,提高了系统的灵活性和可重用性。
2. 面向契约:通过明确定义服务的接口和行为,服务提供者和服务消费者之间可以建立起明确的契约关系。
契约规定了服务的输入、输出以及如何进行通信,确保双方能够正确交互。
3. 服务组合:通过将不同的服务组合起来构建更复杂的业务过程,满足特定的业务需求。
这种组合可以通过编排工具或者中间件来实现,从而实现灵活的业务流程控制。
4. 中立性:SOA的设计要求服务应该是中立的,即独立于底层技术和具体的实现。
这使得服务能够在不同平台和技术环境下运行,增加了系统的可扩展性。
二、SOA的方法在实际应用中,要实现SOA,需要遵循以下方法:1. 服务设计:根据业务需求,将系统拆分为不同的服务,并为每个服务定义明确的接口和行为。
服务设计要考虑到服务的粒度、职责和依赖关系,从而保证服务的独立性和可重用性。
2. 服务注册与发现:为了实现服务的可发现性和可重用性,需要建立服务注册表,将每个服务的元数据信息记录在其中。
服务消费者可以通过服务注册表查找到需要的服务,从而实现服务调用。
3. 服务编排:根据业务需求,将不同的服务组合起来构建业务流程。
这可以通过使用BPEL(Business Process Execution Language)或者其他编排工具来实现。
编排工具提供了可视化的界面,可以方便地定义和管理业务流程。
4. 服务安全:由于服务的开放性和互联性,安全性是SOA实践中必须考虑的因素。
SOA架构SOA架构SOA是英文Service-Oriented Architecture 三个首字母单词的缩写,中文译为:面向服务架构(SOA),SOA架构与B/S 、C/S架构是目前最流行三种Web服务的基础架构。
SOA架构的由来或产生的历史原因传统企业(数据库)应用软件产品,如MRP、ERP、OA系统等,在设计或架构上都是紧偶合、封闭式、自成体系,属于一次性投入一次性完结的产品。
这样的产品很难适应或快速响应市场或客户灵活多变的需求,以及后续的扩展。
在这样的市场、及客户需求下,从而催生了软件产品一种新的设计或架构的理念:面向服务架构(SOA架构)。
SOA架构的定义或特性SOA架构,是一种粗粒度、开放式、松耦合的服务结构,要求软件产品在开发过程中,按照相关的标准或协议,进行分层开发。
通过这种分层设计或架构体系可以使软件产品变得更加弹性和灵活,且尽可能的与第三方软件产品互补兼容,以达到快速扩展,满足或响应市场或客户需求的多样化、多变性。
SOA架构的组件分层BEA WorkShop for Weblogic Platform (或简称:Weblogic WorkShop) 软件开发工具,是目前行业唯一认可的SOA架构软件产品开发工具。
用户在其下进行SOA架构的软件产品开发,可以不必关注有关SOA架构的标准要求或协议要求,只需埋头实现业务需求的组件编写工作。
组件编写要求分四层:持久层、逻辑层、执行层、用户接口层。
如软件系统为分布式系统,则需要编写第五层:Web Services(服务层,注意不是:Web Server 服务器)SOA架构的目的和现实意义软件产品设计成SOA架构及目的或者现实的意义是:保全或保护企业原来遗留下来的软件系统(数据),实现软件数据的无缝接轨,避免企业原有投资打水漂、数据需重复录入。
由此,可以缩短软件产品的实施推广期。
可以在实施推广期间,快速调整以最大程度的满足客户的需求。
在客户应用业务发生改变,必须进行新的投入、改造时,产品可以进行新的快速扩展或直接第三方设备(软、硬件)兼容。
SOA原理实现和应用SOA(Service-Oriented Architecture,面向服务的体系结构)是一种软件设计原则,它将软件系统划分为可重用的独立服务,这些服务通过标准化的接口进行通信。
SOA的实现技术包括Web Services、消息队列和服务总线等,它被广泛应用于企业级软件系统中。
SOA的原理是将软件系统拆分为一系列可重用的服务,这些服务之间通过标准的、面向消息的接口进行通信。
每个服务都提供特定的功能,并且可以被其他服务调用。
服务之间的通信可以是同步的,也可以是异步的。
SOA的核心原则是松耦合,即服务之间的依赖关系应该是最小化的,以实现模块化和可重用性。
SOA的实现需要一些关键的技术和组件。
其中最常见的是Web Services,它使用标准的Web协议(如HTTP和XML)来实现服务之间的通信。
Web Services使用WSDL(Web Services Description Language)来描述服务的接口,并使用SOAP(Simple Object Access Protocol)来封装和传输服务请求和响应。
除了Web Services,SOA还可以使用消息队列和服务总线等技术来实现服务之间的异步通信和消息传递。
SOA的应用非常广泛,特别是在企业级软件系统中。
首先,SOA可以提高软件系统的灵活性和可扩展性。
通过将系统拆分为可重用的服务,可以更容易地添加、修改和删除功能。
这种模块化的结构也能够支持系统的增量开发和部署,从而实现快速的软件交付。
其次,SOA可以促进不同系统之间的集成和协作。
通过使用标准化的接口和协议,不同的系统可以无缝地与其他系统进行通信,从而实现数据共享和业务流程的协同。
这种集成可以帮助组织实现跨部门和跨组织的业务流程,提高工作效率和协作效果。
此外,SOA还可以提供一些关键的服务治理功能,如安全性、可靠性和事务管理等。
通过对服务进行集中管理和控制,可以确保服务的可信性和安全性。
SOA-SSH分层架构的设计与应用
1 基于SSH架构的应用开发框架
系统基于轻量级J2EE软件SSH架构,由Struts、Spring、Hibernate根据其各自的应用特性而进行整合而成,选择以Spring框架为核心并整合Struts和Hibernate的框架组合。
SSH组合框架如图所示,包括表现层、业务逻辑层和数据持久层。
系统采用可重用的、成熟稳定的SSH框架可以构建健壮的、可重用的、可扩充的、易维护的Web应用程序。
Struts框架是基于MVC模式的Web框架。
MVC设计模式是由模型(Model),视图(View)和控制器(Controller)3个部分组成,而Struts是一个免费的开源Web层应用框架,具有很高的可配置性。
Spring框架提供了一种轻量级的企业业务解决方案,用于建立“快速装配式企业组件”。
在此基础上,Spring还提供了包括声明式事务管理,RMI或Web Services远程访问业务逻辑,以及可以多种方法进行的持久化数据库的解决方案。
Hibernate框架是一个优秀的开放源代码的JAVA对象持久层轻量级框架。
它的工作原理是通过配置文件把JAVA域对象和数据库表之间建立起一个映射关系,这样,只需要通过操作这些域对象达到操作数据库的目的。
通过3种框架优化组合实现系统分层解耦,一方面有利于项目组各角色的明确分工,提高开发效率,缩短系统开发周期;另一方面使系统具有良好的扩展能力和可维护性。
页面表现层
页面层由Struts实现,Struts是基于MVC模型的框架。
MVC模型将一个Web应用分割成为模型(Model)、视图(View)和控制器(Controller)三个部件,这三个部件既
相互独立又能协同工作,通用的控制组件ActionServlet接收来自客户端的HTTP请求,根据Struts-config.xml配置文件,把请求转发给相应的Action对象,然后Action类实现业务逻辑和动作处理,通过流程跳转将处理结果返回给客户端
业务逻辑层
由Spring实现业务组件的组装关联与管理,Spring是个流行的轻量级容器,是一个开源的并且普遍兼容的非强制性的框架。
它通过IoC (Inversion of Control,又称DI,Dependency Injection)、AOP(Aspect-Oriented Programming)的应用、使用面向接口的编程最大限度地降低业务组件之间的耦合度,增强系统兼容性和可扩展性。
数据持久层
借助开源框架Hibernate对JDBC进行轻量级的对象封装,将数据库表与对象进行关联,实现数据库访问性能优化和与数据库交互的常用操作CRUD。
Hibernate封装了数据库访问、事务管理、数据缓存等工作,可以大大提供开发效率。
将这三种技术有机结合起来构建的SSH技术框架,不但可以有效提高系统开发效率,而且在系统安全性、稳定性和健壮性上都有良好的改进。
域对象在各个层之间移动,为表示层提供所需要的数据源,为持久层提供对象,使得各个层以一种松散耦合的方式彼此作用而无需考虑低层的技术细节,进而构建出一个完整的Web开发框架。
2 SSH架构分层实现
数据持久层的搭建
持久层Persistence主要完成数据的访问,它操作底层的数据库表,使用DAO组件封装具体的操作细节,为业务层提供接口,使业务逻辑与数据持久化分离。
在Hibernate中,通过配置相应的XML文件(*.hbm.xml)来完成对象与表、对象属性与表字段的“O/R映射”关系。
Hibernate运行时,会自动读取XML映射文件,然后按照该文件指定的规则动态构建Java类,以便管理数据在数据库与Java程序之间的转换。
持久层的访问通过DAO 组件完成,下面以渠道组织机构信息表(Dchngroupmsg)为例介绍DAO组件建立的过程。
SSH为Struts+Spring+Hibernate的组成方式,Struts实现MVC,Spring负责架构的结合,Hibernate进行数据的持久化。
通常其分层开发的结构图(以一个业务新增为例)如下:
这样的结构,满足了一般的业务需要,但是对于当前日益复杂化的WEB2.0的开发,却存在不少问题,归纳起来主要有以下几点的不足:
A)DAO和服务层容易出现职责不明,由于按照MVC逻辑,业务代码应该写在Struts Action里,但是其事务的提供,却是配置在Service层。
为了一组在逻辑上完整的数据操作业务逻辑,需要涉及两个层(Serveice、Action)来进行编写,遇到判断的情况下,为了保证完整的事务操作,则需要将业务代码移到Service层完成,而通常习惯了在Struts Action里调用多次Service而产生多个事务而在出现Exception时导致出错时操作之前调用的Service事务的业务数据没有回滚。
B)当需要返回的数据供AJAX使用,操作JSON或XML的的大量使用时。
开发起来会很费力,一段同样的业务代码,为了使用AJAX和XML可能需要重新编写一次,或者在同一个ACTION里通过标志来判断,对分层结构造成了比较糟糕的破坏。
如果设计得不好,为了使用JSON和XML还得额外增加大量的配置,严重降低了开发效率。
因此,为了克服这些缺点,本人对于SSH架构,进行了实现了重新的分层,共享了业务代码。
简化了开发、增强了与AJAX技术、MXL技术的结合。
提供了一种更高效的开发模式。
本架构的优点,由于业务代码统一实现IbusinessService接口,使得只需要相对固定的几个Struts Action类调用Service层的方法,便可以完成工作。
包括JSON格式输出,XML输出及WebService输出均调用Service层方法来完成功能。
这样便实现了业务代码
的分离,以及与前端框架的极大解耦。
3 分层架构设计
结合上面对SOA和J2EE开发中基于SSH的分层架构的分析,提出了SOA-SSH分层架构。
这个架构是基于SOA的,也是基于J2EE的,所以这个架构同时含有了二者的特征。
J2EE体系中,通常采用EJB组件或Spring来实现业务逻辑层,而在SOA系统中业务是基于服务的,于是这个架构中采用把业务逻辑层的组件包装成Web Service的方式,使用Web Service作为SOA的服务提供者,Spring作为服务的实现,同时使用企业服务总线(ESB)技术来实现SOA中的服务中介,并且在J2EE体系的业务层之下添加了一个服务代理层,用来封装对服务的具体调用代码。
架构采用ESB担当SOA服务注册中心的角色,使用ESB能够实现异构系统的集成。
SOA-SSH分层架构如图所示。
架构中有关部分的说明:
表示层:JSP/Html/JavaApplet是表示层的实现技术,用来生成Web页面。
用户通过浏览器来访问Web页面。
Struts中Servlet Control是控制器部分,负责页面层和内部业务的结合,以及页面之间的切换。
通常情况下在Web.xml文件中配置。
服务代理层:服务的请求处理程序,用来与服务交互,从而向系统内增加、更新和查询信息,通常由一组java类组成。
编写服务调用代码时需从服务总线获得服务的WSDL描述文件,然后根据此文件进行编写。
ESB企业服务总线:服务请求者和服务提供者之间的中间层,对服务进行集中管理。
在ESB中的具体工作:客户端向服务总线发送请求消息时,首先发到了代理服务,代理服务收到服务请求后,经过一系列的消息处理发送给业务服务,由它进一步转给外部的服务提供者。
服务层:Web Service是服务的提供者,由无状态会话bean生成,通常是粗粒度的,对应企业的业务逻辑。
业务组件层:负责实现业务逻辑的J2EE组件。
由Spring或EJB完成业务构件的开发。
持久化组件:企业应用和关系数据库之间的中间件,优秀的ORM工具。
业务数据在内存中表现为对象,在关系数据库中则表现为关系数据,把对象持久化到关系数据库中,需要进行对象一关系映射(ObjectRelationMapping,简称ORM)。
数据库层:关系型数据库,存储企业数据。
4 企业服务总线ESB
企业服务总线(ESB),是由中间件技术实现并支持的面向服务架构(SOA)的一组基础架构功能,支持异构环境中的服务、消息以及基于事件的交互,并且具有适当的服务级别的可管理性。
ESB具有轻量级的分布部署模型,通过对服务的注册、发布、流程化等一系列的管理,提供服务仓库,并可以将服务仓库中来自各系统的服务根据业务需求有机的结合起来,同时它还可以消除不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与整合。
有了ESB,SOA才能释放它的最大价值。
ESB提供了智能的消息代理、动态传送和转换,所有这些都支持与服务生命周期管理功能(包括服务注册、监控和定义闭值的服务水平协议(Server Level Agreement,SLA)实施)集成的异构服务端点ALSB为IT提供了一个理想的SOA基础,可以实现下列目标:通过动态配置异构共享服务之间的集成来节省时间;通过简单的集中式服务注册来减少维护工作;
通过经济有效的服务部署和自动配置来降低成本。