精华内容
下载资源
问答
  • 多层架构的大型.NET OA 系统,c#开发,可以供大家参考
  • 经典ERP管理系统完整源码(多层架构) .NET ERP管理系统源码(WinForm) VS2008+SQL2005开发工具 :VS2008、Visual Studio2010开发语言 :C#数据库 :SQL2005、SQL2008
  • 特种设备技术服务是指特种设备...采用J2EE分布式开发平台,实现业务逻辑和业务数据相分离的多层体系结构,增强系统的稳定性、可扩展性和可移植性,为各类特种设备检验检测机构提供了一种切实有效的技术服务管理方案。
  • VS2008+Sql 2005开发的一套企业内部OA系统,含公文流转,提交申请单,分配申请单,审核申请单,处理申请单等功能,实现真正意义上的无纸化办公!(数据库在web目录下的DB目录内)
  • 用PB WebService开发多层架构应用系统 用PB WebService开发多层架构应用系统 用PB WebService开发多层架构应用系统
  • 一种Java EE多层架构下的大学物理实验系统.pdf
  • 目前国内对C#的书籍和视频相对较少,但C#和.NET的发展前程是十分光明的,这体现在微软公司本身强劲的实力,C#的开源,.NET Core社区的蓬勃发展,以及.NET开发岗位需求的不断增加。C#用途广泛,容易上手。可以说,...
  • #资源达人分享计划#
  • 源码为官网同功能版,模板和功能都一样,此版本为2013年使用,基于asp.net mvc3.0开发,在综合架构上属于多层架构 ,开发目标为(具备一定互动分享功能的壁纸网站系统) 数据库为sql2000 ,开发软件为 VS2012 。 ...
  • 源码为官网同功能版,模板和功能都一样,此版本为2013年使用,基于asp.net mvc3.0开发,在综合架构上属于多层架构开发目标为(具备一定互动分享功能的壁纸网站系统) 数据库为sql2000 ,开发软件为 VS2012 。...
  • 2016年4月,我所在的公司承担了某通信设备生产商的CRM集成系统开发工作,我在该项目中担任系统架构设计师的职务,主要工作是负责系统的需求分析、架构设计及部分代码开发。该系统属于CRM系统下面的一个子系统,主要...
  • 源码为官网同功能版,模板和功能都一样,此版本为2013年使用,基于asp.net mvc3.0开发,在综合架构上属于多层架构开发目标为(具备一定互动分享功能的壁纸网站系统) 数据库为sql
  • 基于WebService多层架构MIS系统的应用研究,引入web service技术,并借鉴MIS系统分层开发思想,提出一种基于webservice多层架构MIS系统应用方案
  • 论软件架构的选择/论多层分布式结构系统开发/论SOA技术的应用
  • 一 体系结构ECP平台是一个基于J2EE架构设计的大型分布式企业协同管理平台,通过采用成熟的J2EE的多层企业架构体系,充分保证了系统的健壮性、开放性和扩展性。可选择部署于多种系统环境,满足不同类型、不同规模企业...

    一 体系结构

    ECP平台是一个基于J2EE架构设计的大型分布式企业协同管理平台,通过采用成熟的J2EE的多层企业架构体系,充分保证了系统的健壮性、开放性和扩展性。可选择部署于多种系统环境,满足不同类型、不同规模企业的需要。企业可以根据自己的实际情况构建合适的应用环境,结合操作系统、中间件平台和数据库产品,我们还可以构筑高安全、高性能、高可靠、高性价比的协同管理信息化平台。

    二 ECP系统在J2EE架构下的实现

    企业协同平台基于成熟的J2EE技术,以B/S模式的多层架构设计:

    d554b1ba70e900c45f201e7a69f7af71.png

    1、表示层 这是直接与最终用户打交道的一层,即我们常说的客户端。它的主要作用接收用户的指令或者数据输入,提交给业务逻辑层做处理,同时负责将业务逻辑层的处理结果显示给用户。由于客户端并不处理复杂的业务逻辑等操作,相比传统的C/S结构对客户端的资源要求要低一些。 ECP系统的表示层服务由Web服务器提供。用户可以根据自身的要求,选择不同的Web服务器,比如Windows自带的IIS服务器、Apache Web服务器或者支持高并发的Nginx等。 ECP系统的表示层终端由Web 浏览器提供,支持IE、Chrome、Firefox等主流Web 浏览器。

    2、业务逻辑层 业务逻辑层(中间层)的主要任务是负责接收表示层的数据请求,将这些请求进行必要的业务逻辑检查(包括权限检查),然后将请求分解成不同的数据层操作,由数据层进行处理,然后将处理结果返回给表示层。业务逻辑层是ECP系统最重要的一个层次,核心的业务处理都是通过这一层来实现的。 业务逻辑层由J2EE的Jsp、Servlets、JPA等技术实现,JavaBeans统一由Spring框架进行管理,以获得安全保护、模块管理等特性。ECP系统的底层支持模块根据功能的划分,封装为多个基础服务组件,各类业务处理通过Spring IOC容器进行调用。通过这种划分来隔离各个模块的依赖,避免模块之间的相互影响,同时也便于实现系统的按模块分布。 依应用规模的不同,业务逻辑层要承受的负荷会有较大的差异,客户端的数目,应用的复杂程度都会对其造成一定的影响。由于J2EE架构下的应用服务器都具有非常好的可扩展性,使得ECP系统的关键处理可以分布到多台服务器来处理,从而提供良好的伸缩方案。 利用应用服务器的负载均衡技术或处理负载均衡的硬件实现中间层的动态负载均衡。应用服务器接受来自表示层的处理请求后,依据特定的均衡算法将该请求发送到应用服务器上集群中某个特定的服务器,这些服务器集群还可以提供良好的容错特性,一台服务器的故障并不会导致应用的中断。 基于J2EE架构的应用服务器中间件选择面比较自由,对于千人规模以下的应用服务,可以采用免费的Tomcat Application Server、Resin等 ,对于超大规模的应用服务,可以采用IBM Websphere , Oracle WebLogic等高端商业中间件。

    3、数据持久层 数据持久层包括存储数据的数据库服务器和处理数据和相关缓存设施。ECP系统采用高速数据库链接池技术提供应用所需要的数据库链接,并将一些常用的数据放入系统的缓存,以提高数据访问和处理效率。 ECP系统可以利用多种流行的关系型数据库来提供高性能、高可用的海量数据处理能力,保障ECP系统业务数据的无故障存储。目前ECP系统支持MySql5.x、SQL Server 2000及以上版本、Oracle 10g及以上版本,ECP系统今后的版本将会对DB2等其他大型数据库产品提供支持。

    组织架构

    一、多维度组织结构

    集团型企业由于业务及管理多元化,通常有多套实际组织结构,形成多维立体型的组织结构。例如:通常企业以职能型组织结构为核心结构,以专业线、地理分支、项目型、质量管理、安全环保、知识管理等多维度的组织结构为辅助。晨熹企业协同平台对多维度组织结构提供了良好的支持。

    0add266595ae3757ef4ceec8c0cfa2c0.png

    二、岗位交叉结构

    通常来来说一套组织结构决定企业一套岗位,而集团型企业存在同一纬度组织结构中一人多岗、少数岗位交叉的情况。例如某部门主管兼职副总情况。同时多维度的组织结构也必然导致多维度的岗位交叉。企业协同平台同样对这样复杂且典型的情况提供了支持。

    03de3f63faa1e6c513a054d908735b12.png

    工作流引擎

    工作流指的是信息流在系统中进行流转审批的过程定义,包括以下几个组成部分:

    数据输入表单(即流程流转时需要填入哪些信息)

    流转节点(即数据需要经过那些审批环节)

    流转条件(即决定流程走向的判断条件)

    表单的视图(流程加载的表单呈现给用户的形态)。

    基于可视化流程设计器建立的数据流将按照流程图的示意在系统中进行制度化的流转。

    在创建流程时,利用ECP业内领先的所见即所得设计技术可以方便地进行流程的初始化实施,包括对工作流基本信息的定义、工作流的核心组件的设计(表单、节点、路径、条件、视图)等。在完成这些定义后,就可以交付给用户使用了。

    设定工作流中流转的节点:

    c53300f2c3debeb7b9c8ea2e7e20a27a.gif

    设定某个节点的属性信息:

    c8be03f617adcc8313ae923e00a3970d.png

    设定某个节点的操作人:

    1337304a96d24a43bc02a2c7fcadbe56.gif

    门户技术

    通过ECP门户组件可以为用户定制个性化的首页,为用户提供快速数据展现的通道,可及时推送管理者和员工本身工作范围所需要的数据信息并聚合在一起。通过多级门户获取到平台中的各种数据展现,以及对第三方系统的数据整合。

    795216e3a3c87eb32b96e95264123116.png

    通过ECP菜单管理组件可以对用户菜单进行差异化设置,不同的组织、不同的岗位甚至到不同的个人均可以指定不同的系统功能菜单。

    通过不同的菜单管理配置,ECP可以构建出不同的应用模块:

    并可完成针对不同职能部门或业务部门分别指定相应的应用模块:

    fc613f7fadb07bb749480755c6e6f7c9.png

    表单组件

    表单是对信息存储结构的定义,而目录和流程则是表单的载体。没有表单,目录和流程就失去了数据来源。表单包括物理表单与组合表单两大类。物理表单是和数据库表直接对应的,其字段等同于数据库表的列。组合表单可以包含多个存在主从关系的物理表单,从而形成一个新的包含主表和明细表的复杂表单。

    96abb5da35478aac07f86bcbc1ccf736.png

    3fdd44311a427512c40d5861b8b05a06.png

    ECP系统是一个基于J2EE架构设计的大型分布式企业协同管理平台,通过采用成熟的J2EE的多层企业架构体系,充分保证了系统的健壮性、开放性和扩展性。可选择部署于多种系统环境,满足不同类型、不同规模企业的需要。企业可以根据自己的实际情况构建合适的应用环境,结合操作系统、中间件平台和数据库产品,我们还可以构筑高安全、高性能、高可靠、高性价比的协同管理信息化平台。

    基于J2EE的企业应用技术已经成为许多企业电子商务环境的核心驱动引擎,ECP定位技术高端,全面采用J2EE技术规范,并采用当前主流的Spring框架以及MVC、JPA等技术,保证了系统的安全性、稳定性、易维护性。

    ECP系统是一个三层结构的应用,安装也是可以分多个部分来进行的,包括Web系统、中间层、数据库端等部分。Web系统处理客户端请求的Web服务器,我们可以通过浏览器来完成日常的业务处理,客户机不用安装任何系统,只需要浏览器就可以了;中间层包括所有业务系统的业务逻辑组件,这些组件会被应用服务器调用,完成核心业务的处理,对硬件环境的配置要求较高;数据库端主要安装数据库产品和ECP系统的数据库访问配置。不同部分可以安装在不同的机器上,他们对系统的配置要求也不尽相同,中间层和数据库还可以根据需要进行分布式部署。

    欢迎来到技术之家,

    如需转载,烦请保留本文链接和出处:http://www.jszja.com/contents/14/1045.html

    您的支持将是我们前进的动力!如对本篇文章有疑问或建议,请通过本站下方邮箱联系我们,让技术之家每天进步一点点!(●'◡'●)

    展开全文
  • .net经典ERP管理系统完整源码(多层架构) c#2019
  • 理解ASP.NET中多层架构

    千次阅读 2018-05-03 17:23:56
    Asp.net的多层架构主要是为了解决数据层,逻辑层,表示层等之间的关系。 我的做法是这样的:首先建立一个DataCore的基类。基类里面封装了一些低层的数据库的基本操作,比如说数据库联接,调用存储过程等等。很多人...

    Asp.net的多层架构主要是为了解决数据层,逻辑层,表示层等之间的关系。
    我的做法是这样的:首先建立一个DataCore的基类。基类里面封装了一些低层的数据库的基本操作,比如说数据库联接,调用存储过程等等。很多人对开发多层应用程序感到一定的困难。来看一个例子:对于一个只有一两个人的小公司,一个人可能同时担当老板、出纳、会计、市场、销售、开发等多项工作。而对于一个大公司,就会进行比较严密的分工,每个人只完成一部分工作,需要彼此配合才能保证正常运转。
    以前的开发程序就类似于一个小公司,从用户界面到数据库访问等所有功能都在一个页面内完成,这样的缺点有:
    1).开发起来比较困难,很难实现多人协作开发
    2).一旦数据库或规则有变,就可能要重新修改整个页面,加大维护成本
    3).因为所有功能都混合在一起,程序重用性差。如果开发一个新项目,几乎要重写代码

    为了解决这个问题,人们就提出了“多层应用程序”概念,其本质类似于一个职权明确的大公司,对页面进行分工,将数据访问、业务规则等功能都放在专门的文件中。比较流行的有二层架构、三层架构和MVC。

    一. 二层架构

    二层架构,就是将程序分为用户界面层和数据访问层。其本质是将访问数据库的代码放入数据访问层中,而用户界面层通过数据访问层对数据库进行操作。 相互作用关系如下:(“<—>”表示双向箭头)

    用户界面 <—> 数据访问 <—> 数据库

    二. 三层架构

    三层架构,即将二层架构中的业务逻辑从数据访问层中分离出来,成为一个单独的业务逻辑层。将程序分为三层后,数据访问层就只管对数据库进行操作,而业务逻辑层负负责对数据进行各种处理。
    从下至上分为三层,分别为:DAL(数据处理层)、BLL(业务逻辑层)、UI(用户接口层)
    1)数据访问层(database access layer,DAL):有时候也称为是持久层,其功能主要是负责数据库的访问。简单的说法就是实现对数据表的Select,Insert,Update, Delete的操作。如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化;
    2)业务逻辑层(business logic layer, BLL):是整个系统的核心,它与这个系统的业务(领域)有关;
    3)表示层(user interface layer, UIA):是系统的UI部分,负责使用者与整个系统的交互。在这一层中,理想的状态是不应包括系统的业务逻辑。表示层中的逻辑代码,仅与界面元素有关;
    4)实体模型层(Model):包含了所有的数据信息,这些数据信息以各种Entity实例的形式存在。是整个系统基础层次;

    分层式结构究竟其优势何在:

    1)、开发人员可以只关注整个结构中的其中某一层;

    2)、可以很容易的用新的实现来替换原有层次的实现;

    3)、可以降低层与层之间的依赖;

    4)、有利于标准化;

    5)、利于各层逻辑的复用。

    概括来说,分层式设计可以达至如下目的:分散关注、松散耦合、逻辑复用、标准定义。

    一个好的分层式结构,可以使得开发人员的分工更加明确。一旦定义好各层次之间的接口,负责不同逻辑设计的开发人员就可以分散关注,齐头并进。例如UI人员只需考虑用户界面的体验与操作,领域的设计人员可以仅关注业务逻辑的设计,而数据库设计人员也不必为繁琐的用户交互而头疼了。每个开发人员的任务得到了确认,开发进度就可以迅速的提高。

    松散耦合的好处是显而易见的。如果一个系统没有分层,那么各自的逻辑都紧紧纠缠在一起,彼此间相互依赖,谁都是不可替换的。一旦发生改变,则牵一发而动全身,对项目的影响极为严重。降低层与层间的依赖性,既可以良好地保证未来的可扩展,在复用性上也是优势明显。每个功能模块一旦定义好统一的接口,就可以被各个模块所调用,而不用为相同的功能进行重复地开发。

    进行好的分层式结构设计,标准也是必不可少的。只有在一定程度的标准化基础上,这个系统才是可扩展的,可替换的。而层与层之间的通信也必然保证了接口的标准化。

    “金无足赤,人无完人”,分层式结构也不可避免具有一些缺陷:

    1)、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。

    2)、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计

    需要注意的是,虽然三层架构有很多的好处,但如果你的程序很简单,或者将来肯定不会重用,或不一定要采用两层架构,也许采用两层或普通的程序开发速度会更快。要根据实际情况具体处理。

    三. MVC

    M 即Model(模型层),主要负责出来业务逻辑以及数据库的交互;
    V 即View(视图层),主要用于显示数据和提交数据;
    C 即Controller(控制器),主要是用作捕获请求并控制请求转发;

    MVC是在应用程序(BS结构)的视图层划分出来的不同功能的几个模块,主要是为了解决应用程序用户界面的样式替换问题,把展示数据的 HTML 页面尽可能的和业务代码分离。

    四. 三层结构与MVC的区别

    三层架构是界面层(UI)业务逻辑层(BLL)和数据访问层(DAL)构成的,而MVC是模型层(M)界面层(View)和控制层(Controller)构成的,而且他们之间也不对应。如果硬要给他们对应的话,那么三层架构中的UI对应MVC中的view都是用于显示以及获取界面的数据;三层架构中的BLL层和DAL层对应MVC中的Model层都是用于处理上层传递来的数据以及从数据库获取的数据的;MVC中的Controller最多算是三层架构中的UI的一部分。

    展开全文
  • MVC设计模式与多层架构

    千次阅读 2016-05-03 17:04:05
    MVC设计模式与多层架构多层架构就拿B/S开发说起。最初的ASP直接把数据库访问代码写在页面上。整个网站就是几个页面。数据访问、业务控制、界面显示全都在一个文件里。这种设计可以理解为一层架构。因为它没有分层的...

    MVC设计模式与多层架构


    多层架构


    就拿B/S开发说起。最初的ASP直接把数据库访问代码写在页面上。整个网站就是几个页面。数据访问、业务控制、界面显示全都在一个文件里。这种设计可以理解为一层架构。因为它没有分层的概念。在这样的开发模式下,同样的逻辑代码经常出现在多个地方。当有相似的功能需要实现时,直接拷贝代码到另一个地方,然后修改。如果遇到系统升级或业务规则发生变化,必须找遍整个系统并作调整。这样的设计不仅工作量大,而且不利于维护。往往一个程序员必须熟悉数据访问和业务规则,同时还得精通页面的编写,因为要写完一个功能就必须把这些内容全部写在页面上。JSP程序员在开发一个功能时会写两样东西jsp和JavaBean。JaveBean封装了数据访问和业务逻辑,jsp页面调然JavaBean的接口,然后将数据显示在页面上。这样如果有多个页面需要用到相同的业务规则只需调用同一个JavaBean封装好的接口即可。如果修改了业务规则直接修改JavaBean而不用到每个页面上去寻找相同的代码。同时也使得业务逻辑实现人员可以和界面开发人员分工合作。这种设计可以理解为两层架构(表现层、数据访问+业务逻辑)。随着编程技术的发展,人们发现不同的业务规则里可能会用到相同的数据。如果按照原来的设计方式同样存在许多重复的代码在JavaBean里。所以后来就将数据访问和业务逻辑再次细分。形成了表现层+业务逻辑层+数据访问层这种架构。当然,随着技术的发展和系统复杂程序的增加,一个系统还可能存在其它的“层”,如:权限验证层、对象缓存层等。

    三层(多层)架构的出现,使得程序编写的代码得以重用,程序员之间可以更好地分工合作,程序架构更加清晰并易于维护。但三层(多层)架构并非适合于所有的项目开发。原先获取一个数据只需直接从数据库查询出来即可。用到了三层(多层)架构后还得先通过业务逻辑层,然后数据访问层才可以得到。原来一个类或一段代码就可以完成的操作变成了好几个类协作才能完成。如果项目规模并不大,采用这样的多层架构就像杀鸡用牛刀一样反而不顺手了。所以,多层架构适用于需要协同开发且具有一定规模或业务较复杂的系统。同时由于分了多层,一个接口的变化可能会引起多层接口的修改。


    MVC设计模式


    MVC是一种非常经典的设计模式。它广泛应用于各种语言和各种类型的应用中。MVC的思想是将“显示”(View)、“数据”(Model)和“控制”(Control)分开。MVC (Model_view_controller)” 模型-视图-控制器”。View部分负责向用户展示数据和接收用户输入Control负责接收View传来的输入并执行相应的业务逻辑获得执行结果,然后再调用View将结果向用户呈现。Model是输入和输出的数据载体。MVC将显示和控制分开,使得View的变化不会影响到Control的修改,同时同样的数据可能会提交到不同的View进行显示。


    MVC多层架构


    对于大多数朋友会认为三层架构就是MVC的原因,我想可能是因为MVC和三层架构都是分三个部分吧。多层架构的思想是低层为上层服务,上层调用低层时根本不用关心具体实现(所以在多层架构中通常是通过接口进行调用,而非具体的实现对象)。MVC则是分工合作,相互协调。另外还有点需要说明一下:

    MVC中的Model和三层架构中用到的Model在概念上并非同一对象(虽然在大多数情况下是同样的类在担当这个职责)。MVC中的Model是值对象(Value Object 简称VO),其职责是封装需要传递到View进行显示的数据。三层架构中的Model是业务对象(Business Object简称BO),其职责是在处理业务逻辑时进行数据传递。在有些复杂的系统中还有持久对象(Persistant Object简称PO)。


    后记


    不能将三层架构和MVC混为一谈,多层架构和MVC都是前人的经验总结。好好利用多层架构和MVC可以开发出健壮、易于扩展的系统。而软件开发人员必须深入理解这些设计模式的精髓方能灵活应用,否则将会深受其害,在开发中处处受制。

    文章引用来自http://www.cnblogs.com/leo_gu/archive/2010/04/28/1723397.html

    展开全文
  • 多层架构设计与实践

    千次阅读 2016-12-18 14:10:03
    多层架构设计与实践 IDEADATA大数据 2016-08-25 09:32 一、现有架构的问题 大型应用系统项目在安全性保障、灵活可扩展性、服务组件可管理可重用等方面提出了较高要求,而现有应用系统架构还不能满足...

    多层架构设计与实践

    一、现有架构的问题

    大型应用系统项目在安全性保障、灵活可扩展性、服务组件可管理可重用等方面提出了较高要求,而现有应用系统架构还不能满足这些需求,有待提升完善。先分析一下系统架构现状,物理架构和逻辑架构如下图所示:

    多层架构设计与实践

    多层架构设计与实践

    由上图我们可看出这种架构主要有以下问题:

    1、Web服务器安全性问题

    现有应用系统的后台服务程序安装部署在一台Web应用服务器上,也就是MVC的Action/Serivce/DAO三层都在一个War包中。Web应用服务器部署在DMZ区,通过JDBC接口访问内网中的数据库服务器。一旦这台服务器被黑客攻击及获取了系统权限,则很容易通过SQL/JBDC接口侵入内网数据库,窃取、篡改甚至销毁关键数据资料。因而,从安全性考虑,需要将接入/交互层与应用服务(含DAO)层进行物理架构分离、分区部署,以保障数据库系统安全。

    2、紧耦合性问题

    现在的架构方式虽然在开发上已经有分层,现在也按MVC的方式进行构架,但在应用服务组件化、Web services松耦合性方面欠缺架构设计,为团队分工开发、局部功能模块优化升级、分布式部署带来了一些制约问题。

    3、应用服务扩展性问题

    在现有架构基础上进行应用服务扩展,从界面到DAO层都要有改动,各层都有牵制影响。因而,需要基于SOA松耦合架构设计思想,将应用服务(含DAO层)分离出来实现服务组件化,基于服务注册/发现机制以及服务总线ESB协调,实现动态服务扩展、灵活组合调用。

    二、架构改进设计方案

    1、合理分层设计

    现有的架构设计已经有了清晰的分层设计,只是在部署及代码组织结构上耦合的比较紧,我们就在这二个方面进行封装后解耦合。在物理部署上,将接入/交互层与应用服务(含DAO)层进行拆分,如下图所示:

    多层架构设计与实践

    为了增强系统安全性和接入服务性能,引入接入/交互服务器,在这个服务器上专门用来部署与UI相关的应用(War包),包括HTML/CSS/JS和具有安全策略功能(防SQL注入、防篡改)的Action(JavaBean)。

    通过对代码结构进行调整后,接入/交互服务器有多种调优方式,比如可加入页面静态化处理提升性能,增加缓存机制,提高用户体验。在配置上也比之前安全和轻很多,有关数据库访问方面的配置都放到内网的应用服务器上。

    现有系统按下图方式重新组织构建,即可实现接入/交互层、应用服务层的物理分离及分服务器部署;服务请求方统一以HTTP/JSON接口调用RESTful Web Services服务。

    多层架构设计与实践

    建议使用Maven多模块主从架构方式构建WAR(Action) JAR(Server) JAR(DAO)

    远程调用实例参考如下:其中Action和 Service分别布署在不同的服务器上。

    多层架构设计与实践

    注:这种方式适用于现有基于Spring框架构建的应用系统;若是异构系统,建议使用SOAP协议实现WebServices方式发布服务。

    2、安全机制设计

    我们可以借鉴WSDL和SOAP的Web Service安全规范来指导RESTful Web服务实现认证、授权、身份管理等安全需求。

    为保证RESTfulWeb服务的安全性,设计考虑:

    对客户端做身份认证;

    l对敏感的数据做加密,并且防止篡改;

    l身份认证之后的授权。

    对客户端做身份认证,有几种常见的做法:

    1)在请求中加签名参数:

    l为每个接入方分配一个密钥,并且规定一种签名的计算方法。要求接入方的请求中必须加上签名参数;

    l在实际项目中一般是设计动态加密种子数生成动态密钥,使每一次URL访问都有安全签名,很好的防止一个URL信息在不同的浏览器中可用。

    2)对敏感的数据做加密,并且防止篡改,做法如下:

    l部署SSL基础设施(即HTTPS),敏感数据的传输全部基于SSL。仅对部分敏感数据做加密(例如用户编号+密码),并加入某种随机数作为加密钥,以防范数据被篡改;

    l身份认证之后的授权,主要是由应用来控制。通常应该实现某种基于角色+用户组的授权机制,可采用Shiro框架实现授权,也可以自定义来实现相关功能。

    三、基于SOA架构的服务发布注册/查找机制

    基于SOA架构设计理念,实现应用服务组件化并达到服务组件最大化重用目的,这就需要设计一套服务管理平台功能,包括服务发布/注册、服务查找、服务监控等功能。

    下图描述了服务发布及注册、服务查找及服务调用的过程:

    多层架构设计与实践

    在此架构中有三类角色:服务提供者、服务注册中心、服务消费者。

    1、服务提供者

    服务提供者作为服务提供方,将自身的服务信息注册到服务注册中心,服务信息包含:

    l隶属于哪个系统

    l服务的IP,端口

    l服务的请求URL

    l服务的权重等

    2、服务注册中心

    服务注册中心主要提供所有服务注册信息的中心存储,同时负责将服务注册信息的更新通知实时Push给服务消费者(主要是通过zookeeper的Watcher机制来实现的)。

    3、服务消费者

    服务消费者主要职责如下:

    1、服务消费者在启动时从服务注册中心获取需要的服务注册信息;

    2、将服务注册信息缓存在本地;

    3、监听服务注册信息的变更,如接收到服务注册中心的服务变更通知,则在本地缓

    存中更新服务的注册信息;

    4、根据本地缓存中的服务注册信息构建服务调用请求,并根据负载均衡策略(随机负载均衡,策略负载均衡等)来转发请求;

    5、对服务提供方的存活进行检测,如果出现服务不可用的服务提供方,将从本地缓存中剔除。

    服务消费者只在自己初始化以及服务变更时会依赖服务注册中心,在此阶段的单点故障通过zookeeper集群来进行保障。在整个服务调用过程中,服务消费者不依赖于任何第三方服务。

    四、总结

    本文从提高系统安全性以及实现应用服务组件化的角度出发,提出了应用系统多层架构设计方案及实践方法,并对Web服务安全、服务发布注册/查找机制提出了实现方法建议,供产品设计开发和项目实施人员参考。

    文章为原创,欢迎点赞或收藏。如需转载请注明或联系我。如有大数据爱好者,欢迎共同探讨。

    关于IDEADATAIDEADATA专注于从数据到信息的有效管理与应用,是领先的商业信息服务技术提供商,是数据仓库及大数据技术和应用的先行实践者。微信关注:IDEADATA大数据视界新浪微博:iDEADATA大数据视界公司官网:www.ideadata.com.cn

    展开全文
  • 系统基于B/S 多层Web 体系结构,在J2EE 平台上利用开源架构JSF、Spring、 Hibernate 等技术进行开发。按照软件工程方法,对造纸生产过程进行需求分析。使 用UML 建模工具,通过类图、用例图等对系统进行总体设计。...
  • 为了能够准确有效地描述超级计算机的结构,给出统一的描述方法,提出超级计算机的多层架构思想。为超级计算机的进一步逻辑抽象或编写其模拟器提供了基础,并对超级计算机系统的设计具有一定的指导作用。第 3卷第 2期 4 ...
  • 本文以某国外贸易公司的管理系统为背景,介绍在.net平台下,采用多层架构构建企业管理系统。 关键词 .net;单元测试;b/s架构 引言  .net 框架是微软开发出的新一代开发平台。允许应用程序通过 ...
  • ·概述一般的进销存系统通用的功能及用途,使学员对进销存系统有个总体概念 ·介绍项目开发与管理流程、项目组成员分工等公司实际开发与管理方式,了解一般软件公司项目开发与管理情况 ·介绍一下.net分层开发的...
  • Delphi5开发多层应用系统处理大数据集的方法分析.pdf
  • 浅谈ASP.NET中多层架构

    千次阅读 2016-12-07 10:50:56
    很多人对开发多层应用程序感到一定的困难。来看一个例子:对于一个只有一两个人的小公司,一个人可能同时担当老板、出纳、会计、市场、销售、开发等多项工作。而对于一个大公司,就会进行比较严密的分工,每个人只...
  • C#开发ERP生产管理系统全套源码 c#程序 上位机 1.该系统用c#.net开发多层架构全套源码,很适合自学入门。
  • C#开发多层系统架构的应用及讨论

    千次阅读 2008-02-26 21:11:00
    http://hi.baidu.com/ztf704/blog/item/64a4d362056805dde7113aa0.html 在C#开发中,使用多层系统架构可以简化系统开发。目前有基于三层的PetShop系统架构设计和基于四层的Duwamish架构。 以下是一些有用的参考...
  • ​​图三 APP系统架构图 从系统架构图,我们可以看出,本APP的UI层和系统抽象层都采用系统原生语言开发,而系统的核心业务却是采用C++开发,然后通过胶水代码实现与原生语言的转换。因为存在语言隔离,因此对本APP...
  • 软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。 软件架构 连接需求分析 和软件设计 一般来说,架构可以分为...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,347
精华内容 13,738
关键字:

多层架构系统开发