`
oceandeep
  • 浏览: 23757 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

系统架构(转)

阅读更多

原文出处:http://space.itpub.net/6517/viewspace-609654


1.Spring 架构图

Spring 是一个开源 框架,是为了解决企业 应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为J2EE 应用程序开发提供集成的框架。Spring 框架的功能可以用在任何J2EE 服务器中,大多数功能也适用于不受管理 的环境。Spring 的核心要点是:支持不绑定到特定J2EE 服务的可重用业务和数据访问对象。这样的对象可以在不同J2EE 环境(Web EJB )、独立应用程序、测试 环境之间重用。

组成Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:

  • 核心容器:核心容器提供Spring 框架的基本功能。核心容器的主要组件是BeanFactory ,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC ) 模式将应用程序的配置和依赖性规范与实际的应用程序代码 分开。
  • Spring 上下文:Spring 上下文是一个配置文件,向Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如JNDIEJB 、电子邮件、国际化、校验和调度功能。
  • Spring AOP : 通过配置管理特性,Spring AOP 模块直接将面向方面的编程 功能集成到了Spring 框架中。所以,可以很容易地使Spring 框架管理的任何对象支持AOPSpring AOP 模块为基于Spring 的应用程序中的对象提供了事务管理服务。通过使用Spring AOP ,不用依赖EJB 组件,就可以将声明性事务管理集成到应用程序中。
  • Spring DAO JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库 供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写 的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向JDBC 的异常遵从通用的DAO 异常层次结构。
  • Spring ORM Spring 框架插入了若干个ORM 框架,从而提供了ORM 的对象关系工具,其中包括JDOHibernateiBatis SQL Map 。所有这些都遵从Spring 的通用事务和DAO 异常层次结构。

 

2.ibatis 架构图

ibatis 是一个基于 Java 的持久层框架。 iBATIS 提供的持久层框架包括 SQL Maps Data Access Objects DAO ),同时还提供一个利用这个框架开发的 JPetStore 实例。

ITPUB个人空间ClH8F&O

IBATIS :最大的优点是可以有效的控制sql 发送的数目,提高数据层的执行效率!它需要程序员自己去写sql 语句,不象hibernate 那样是完全面向对象的,自动化的,ibatis 是半自动化的,通过表和对象的映射以及手工书写的sql 语句,能够实现比hibernate 等更高的查询效率。

Ibatis 只是封装了数据访问层,替我们做了部分的对象关系映射。但代价是必须要写xml 配置文件,相对于Hibernate 还要写很多sqlHibernate 通过工具直接从数据库模式生成实体类和基本的配置文件,而且大部分情况下不需要我们写sql ,会较大的提升开发效率。但这些也有很多的局限性,尤其是对环境的要求较高(数据库设计,对象设计,团队的协作等)。 个人感觉Ibatis 对项目比较有意义的地方在于它小巧灵活,可扩展,封装了数据访问层(事务,缓存,异常,日志),并提供了DAO 框架支持。

利用Ibatis 我们可以做到代码和sql 的分离,只要sql 能够解决的问题,Ibatis 就能帮我们较容易的解决,同时也使我们的项目对某一框架的依赖性变小(因为Ibatis 是非侵入性的)。这将极大的降低项目风险,减少解决复杂问题的时间,使项目的维护变得简单。

Ibatis 对于应用的修改,调试,扩充和维护将会变得容易自然。修改时,我们主要修改的是代表模型的实体对象,xml 配置文件中的sql ,和/ 或配置文件的ResultMap (很多时候是不需要的)。同时,sql 和代码分离,我们不用在代码的StringBufferappend 方法之间寻找需要修改的sql 。配置文件中的sql 便利了我们的调试和对sql 的评审及以后的sql 重用。

 

3.structs1 架构图

Struts Apache 基金会Jakarta 项目组的一个Open Source 项目,它采用MVC 模式,能够很好地帮助java 开发者利用J2EE 开发Web 应用。和其他的java 架构一样,Struts 也是面向对象设计,将MVC 模式" 分离显示逻辑和业务逻辑" 的能力发挥得淋漓尽致。Structs 框架的核心是一个弹性的控制层,基于如Java ServletsJavaBeansResourceBundlesXML 等标准技术 ,以及Jakarta Commons 的一些类库。Struts 有一组相互协作的类(组件)、Serlvet 以及jsp tag lib 组成。基于struts 构架的web 应用程序基本上符合JSP Model2 的设计标准,可以说是一个传统MVC 设计模式的一种变化类型。  

Struts 有其自己的控制器(Controller ),同时整合了其他的一些技术去实现模型层(Model )和视图层(View )。在模型层,Struts 可以很容易的与数据访问技术相结合,如JDBC / EJB ,以及其它第三方类库,如Hibernate / iBATIS ,或者Object Relational Bridge( 对象关系桥) 。在视图层,Struts 能够与JSP ,包括JSTLJSF ,以及Velocity 模板,XSLT 与其它表示层技术。

Struts 为每个专业的Web 应用程序做背后的支撑,帮助为你的应用创建一个扩展的开发环境。

Client browser (客户浏览器)

来自客户浏览器的每个HTTP 请求创建一个事件。Web 容器将用一个HTTP 响应作出响应。

Controller (控制器)

控制器接收来自浏览器的请求,并决定将这个请求发往何处。就Struts 而言,控制器是以servlet 实现的一个命令设计模式。struts-config.xml 文件配置控制器。

业务逻辑

业务逻辑更新模型的状态,并帮助控制应用程序的流程。就Struts 而言,这是通过作为实际业务逻辑 包装的Action 类完成的。

Model (模型)的状态

模型表示应用程序的状态。业务对象更新应用程序的状态。ActionForm. bean 在会话级或请求级表示模型的状态,而不是在持久级。JSP 文件使用JSP 标记读取来自ActionForm. bean 的信息。

View (视图)

视图就是一个JSP 文件。其中没有流程逻辑,没有业务逻辑,也没有模型信息-- 只有标记。标记是使Struts 有别于其他框架(如Velocity )的因素之一

 

4.structs2 架构图

Struts 2 相对于Struts 1.X ,将实现用户业务逻辑(Action )同Servlet API 分离开,这种分离机制,是采用了拦截器或者拦截器栈(拦截器链)。拦截器是Struts 2 的核心内容之一。

Struts 2 内建了多个拦截器和拦截器栈(由多个拦截器形成的拦截器链),将用户的Web 请求进行拦截处理,从而提供了更加丰富的功能,例如数据类型转换、国际化、文件上传等。<!-- [if gte vml 1]><v:shape id="_x0000_i1028" type="#_x0000_t75" style='width:362.25pt;height:336.75pt'><v:imagedata src="file:///C:\Users\bq_wang\AppData\Local\Temp\msohtmlclip1\01\clip_image006.png" o:title=""/></v:shape><![endif]--><!-- [if !vml]-->

 

 

5.Hibernate 架构图

Hibernate 是一个开放源代码 的对象关系映射框架,它对JDBC 进行了非常轻量级的对象封装,使得Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate 可以应用在任何使用JDBC 的场合,既可以在Java 的客户端程序使用,也可以在Servlet/JSPWeb 应用中使用,最具革命 意义的是,Hibernate 可以在应用EJBJ2EE 架构中取代CMP ,完成数据持久化的重任。

 

   Hibernate 的核心接口一共有5 个,分别为:SessionSessionFactory TransactionQuery Configuration 。这5 个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五个核心接口分别加以介绍。

·Session 接口:Session 接口负责执行被持久化对象的CRUD 操作(CRUD 的任务是完成与数据库的交流,包含了很多常见的SQL 语句。) 。但需要注意的是Session 对象是非线程安全的。同时,Hibernatesession 不同于JSP 应用中的HttpSession 。这里当使用session 这个术语时,其实指的是Hibernate 中的session ,而 以后会将HttpSesion 对象称为用户session

·SessionFactory 接口:SessionFactory 接口负责初 始化Hibernate 。它充当数据存储源的代理,并负责创建Session 对象。这里用到了工厂模式。需要注意的是SessionFactory 并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory 就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory

·Configuration 接口:Configuration 接口负责配置并启动Hibernate ,创建SessionFactory 对象。在Hibernate 的启动的过程中,Configuration 类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory 对象。

·Transaction 接口:Transaction 接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。

·Query Criteria 接口:QueryCriteria 接口负责执行各种数据库查询。它可以使用HQL 语言或SQL 语句两种表达方式。

 

6.J2EE 架构图

J2EE 是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。

J2EE 核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依循J2EE 架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,导致企业内部或外部难以互通的窘境。

 

 

7.Oracle 架构图

<script type="text/javascript"></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script><script src="http://pagead2.googlesyndication.com/pagead/js/r20110615/r20110627/show_ads_impl.js"></script><script src="http://googleads.g.doubleclick.net/pagead/test_domain.js"></script><script src="http://pagead2.googlesyndication.com/pagead/render_ads.js"></script><script></script>

分享到:
评论

相关推荐

    集中与分布式银行核心系统架构转型策略分析.docx

    【集中与分布式银行核心系统架构转型策略分析】 随着金融行业的快速发展和互联网技术的普及,银行核心系统的架构转型已成为必然趋势。传统的集中式架构以其安全稳定的特点,长久以来支撑着银行业务,但面对海量用户...

    集中式与分布式相融合的银行核心系统架构转型策略分析.docx

    ### 集中式与分布式相融合的银行核心系统架构转型策略分析 #### 一、引言 随着《中国金融业信息技术发展规划》的指引,金融机构正在积极探索系统架构的优化升级,特别是数据中心“双活”或多活模式的应用。在此...

    集中式与分布式相融合的银行核心系统架构转型策略分析.pdf

    在当前数字化转型的大潮中,银行的核心系统架构也面临着重大变革。传统的集中式架构由于其稳定性和一致性,长期以来一直是银行业务处理的基石。然而,随着业务需求的多样化和互联网技术的发展,分布式架构以其高可用...

    全分布式架构引领核心系统架构转型新趋势.pdf

    #资源达人分享计划#

    系统架构设计程序员向架构师转型之路

    系统架构设计程序员向架构师转型之路是一项艰巨但充满挑战的任务,涉及到技术深度、广度、沟通能力以及业务理解等多个方面。以下是对这一主题的详细阐述: 首先,我们要明确架构师的角色。架构师并不仅仅是高级...

    邮储特色的分布式系统架构模式.pdf

    邮储银行的分布式系统架构模式反映了随着技术进步,银行业务系统在架构上进行的转型和发展。传统的银行业务系统多基于大中型主机的集中式架构,该架构技术成熟且系统可靠性较高,但存在对外部供应商技术垄断的依赖、...

    软考系统架构设计师学习笔记.pdf

    系统架构设计师是IT行业中的高级职位,其主要负责现代信息系统的整体规划与设计。在学习笔记中,我们将会了解到系统架构的概念、架构师的定义、职责以及所需的技术与管理素质。此外,还包括与系统架构师相关的其他...

    系统架构师(高级)学习资料.pdf

    系统架构是软件设计中的一个重要组成部分,它作为软件产品的骨架,确保了软件组件与环境的有效整合。架构不仅仅是软件产品的结构,更是需要包含整体性的需求,尤其是非功能性的需求,如性能、安全性和可靠性等。架构...

    物流解决方案系统架构图

    物流解决方案系统架构图是设计和实施物流管理信息系统的关键部分,它描绘了整个系统的组件、流程、数据和交互方式。在本文中,我们将深入探讨物流解决方案系统架构的主要元素、设计原则以及它如何支持高效的物流运营...

    企业IT架构转型之道.pdf

    保留原有系统,利用新建系统搭建中台架构,逐步沉淀能力,为旧有系统改造重建迁移到中台架构打好基础,典型代表。 中台战略的价值体现——提质转型、降本增效,提高业务快速响应和创新带来的业务价值。中台战略可以...

    软件系统架构设计说明书模板

    软件系统架构设计说明书是指导软件开发过程中的重要文档,旨在明确系统的整体结构、组件间的相互关系以及设计原则。本文档由科技有限公司XX编写,旨在为项目团队提供清晰的架构蓝图,确保系统的设计符合业务需求和...

    系统架构师(软考)-系统开发基础知识.pdf

    系统架构师(软考)-系统开发基础知识.pdf 系统架构师(软考)是指通过软考认证的系统架构师,负责设计和开发软件系统。系统开发基础知识是系统架构师必须具备的基本知识,包括软件工程概述、软件开发方法、软件...

    系统架构设计师教程-带书签扫描版

    《系统架构设计师教程》是一本深入探讨系统架构设计的专业书籍,尤其适合准备系统架构设计师考试的读者。书签版的扫描版意味着该书包含了方便读者快速定位内容的电子书签,使得在线阅读和查找特定章节更为便捷。扫描...

    xx核心系统系统架构核心系统系统架构.doc

    本文档详细介绍了xxx银行核心业务项目系统架构的设计,旨在构建一个现代化、高效且灵活的核心系统,以应对金融行业的激烈竞争和快速变化。核心系统包括综合柜面系统(XxxTeller)、新一代商业银行版核心业务系统...

    2019年系统架构设计师真题解析

    系统架构设计师是IT行业中的高级职位,通常负责设计大型软件系统的整体架构,并对系统的性能、可维护性、可靠性等进行综合考虑。2019年的系统架构设计师考试真题解析中,涵盖了与系统架构设计相关的多个知识点,包括...

    2020年下半年系统架构设计师下午真题及答案解析.pdf

    从提供的文件内容来看,这是一份关于系统架构设计师的考试资料,包含2020年下半年系统架构设计师下午的真题解析。资料中描述了某公司开发在线软件开发系统的场景,并列举了一系列的需求和质量属性。架构师提供了两种...

    中小银行分布式架构探索与实践.pdf

    随着现代银行业务量的迅猛增长,尤其在互联网金融的催化下,传统银行系统架构已经面临越来越多的挑战。商业银行系统架构的转型已经成为当下的一个热点话题。上海农商银行在这方面做出了积极的探索与实践,通过分布式...

    SACC2022年中国系统架构师大会(25份).zip

    SACC2022年中国系统架构师大会PPT合集,共25份: 架构篇 58二手车拍卖平台系统治理建设之路 BGN并行与分布式计算平台 大规模 C 端应用的低代码平台架构演进(上、下) 服务端架构演讲之路 架构修炼:抽象能力 架构修炼...

    互联网+时代下的架构转型

    通过范钢在SDCC2015会议上关于“互联网+时代下的架构转型”的分享,我们可以看到技术改造的新思路:从技术架构的整体角度出发,重新审视和设计系统架构,通过异步化操作、分布式缓存、数据库读写分离等技术手段,来...

    软考系统架构师案例分析知识点整理

    ### 软考系统架构师案例分析知识点整理 #### 一、系统规划 - **系统项目的提出与预可行性分析**: - 分析系统项目的背景、目的和必要性。 - 对项目的初步预算、时间安排和技术可行性进行评估。 - **系统方案的...

Global site tag (gtag.js) - Google Analytics