前言:想要写出一篇引人入胜的文章?我们特意为您整理了多租户网站实现方法研究和设计范文,希望能给你带来灵感和参考,敬请阅读。
摘要:本文根据J2EE多层架构的Web开发框架,同时结合多租户SaaS原理以及元数据思想,构建了一个多租户网站架构。其通过单一网站实例,利用简单的配置,可以及时部署和资源再利用等相关优势,最终有效节约社会资源。
现如今,网站建设大部分采取B/S架构以及信息发布,特别是相同行业当中的网站,如,在教育系统里面的中小学网站当中,不管是相关技术需求或业务流程等方面伴有相对比较多相同的地方,大致上均是利用静态网页、动态网页等相关组成,并且整个布局结构相似度相对较高,利用之前单个用户制定的模式,可以重复利用性相对较差,造成这一系统建设需要加大投资力度,造成成本相对较高等相关问题。如果想要将多租户共享网站架构给予妥善处理,本文笔者采取一种多租户的网站框架予以实现,其通过单一网站实例,利用简单的配置,可以及时部署和资源再利用等相关优势,最终有效节约社会资源。
1多租户网站结构
1.1系统架构
本文笔者所设计的是根据J2EE多层架构的Web开发框架,同时结合多租户SaaS原理以及元数据思想,构建的一个多租户网站架构。
1.2多租户网站工作原理
这一框架主要是按照J2EE模型当中的分层思想,其中包括三个层次,能够充分进行扩张。另外,应用服务器层一般为Web和EJB这两种容器,前者主要是能够返回到动态的页面,其中包括JSP以及Struts两个组件。后者可以将业务逻辑予以实现,并且利用Bean完成整个映射(O/R),对多租户当中的数据给予增加或者删减,并且由于其主要是根据相关对象的想法,需要在操作方面进行简单封装,所以,其接口予以简化,使这一系统具有灵活性以及扩展性。多租户组合网站管理系统为了保证能够有效区分不同类型组合的租户数据库就需要在多个数据库列表当中同时增添id等字段,就需要与常规单一用户网站有着较大的差异。除此之外,当租户在需要重新进行网站修改以及需要构建一个网站的时候,如查阅网站文章以及需要添加网站栏目等均必须在网站有关的语句当中一并增加了ID这个唯一性的标识,进而将不同时期租户当中的不同数据来源给予有效的隔离,以免发生泄漏。多媒体租户服务网站当中的可配置性数据是通过利用具有结合统一数据模型以及结合元数据结构模型技术予以结合实现,同时让整个系统当中的基本应用数据以及其他个性化的扩展应用数据分别对其进行整合存储,不但这样可以充分满足不同类型用户的数据个性化需求,并且不会对系统数据资料表当中的数据结构造成任何的破坏。另外,因为必须要面对功能需求个性化以及大量的租户。因此,系统需要可以支持租户具有更多选择性地自行定制自身所可能需要的网站功能。除此之外,本文当中的多租户管理网站当今所需要支持的都是个性化功能配置,其中主要包含租户页面定制内容、模板样式选择以及系统菜单等。
2关键技术
多租户网站技术构建与之前网站之当中有非常大的差别,其中包括有以下几点;(1)各个租户共享一个应用实例,数据当中不但可以共享,同时可以进行隔离。应该怎样的情况之下保证每一个租户当中的数据给予安全隔离;(2)个性化配置问题;(3)多源数据库访问。
2.1数据隔离与数据库访问接口设计
其架构设计的关键就是对每一个租户当中这些数据的安全隔离,为了我们能够真正的实现每一个人对租户当中的所有数据信息给予有效性的隔离,本文笔者主要利用在租户表当中添加字符id值,进而有效隔离区分各个租户当中的数据信息。除此之外,笔者利用这一种设计方法在租户表当中重新增添了对租户当中标识字段的隔离机制,进而将租户数据进行有效分离。多租户共享网站管理框架主要采取的关系型共享数据库,对每个租户当中的所有数据可以进行共享储存,从三种储存模式当中分别选取一种共享型的数据库基础架构,如表1所示。笔者主要考虑到也许我们会同时伴有多个不同的数据源,因此,需要设计一个不同数据源的访问管理组件,被我们称之为统一数据访问层,在当中封装以及抽象全部数据的增加和删减改查,采取JDBC,降低每一次连接所需要消耗的时间,本文笔者通过EJB所提供的连接池方式,进而获得这一效果,例如图1所示。
2.2可配置性分析
在网站当中需要管理的配置包括有表、页面以及原子功能等,目前暂时被定义为配置元。通过MDA对相关配置元给予抽象分析,进而将其分解成为常规数据以及元数据模型,其中前者显示不同用户之间相同的数据库字段,然而后者显示不同租户可以改变的字段集合。除此之外,为了能够真实体现这种可变性,本文笔者对当中的数据库表结构给予相对应的改变,如图2所示。元数据块的区表当中,租户对象信息能够分配一个id字段作为当中的唯一租户识别数据字段,通过这一识别系统,我们能够有效的区分不同租户之间的一些数据相关信息。除此之外,这一字段据信息不仅能够更改一个可变的元数据区的字段,同时能够利用这一id来准确标识这一字段当中的租户对象数据信息表。如,考虑存放同学信息的数据表—--student表,这个当中的表2所显示的核心字段以及自定义字段,分别被学校A以及学校B所应用。从表2当中能够看出学校Q自定义S-sex字段,然而学校B自定义为S-age字段,均能够在系统处在生产环境。本文笔者假设这里存放的元数据模型当中的对象信息表,全部表的入口均是从m-object表开始,程序均会从这一个表当中开始取出相对应student表记录自定义字段。元数据模型当中的租户对象关联表当中存放的数据为自定义分类,m-class表能够作为其之间的中间关系表。元数据模型当中的字段信息表里面存在的数据为实际的字段名,能够获得相对应的某一个租户当中均需要的自定义字段每一个自定义字段当中的值储存在m-data表当中,例如,当中的student表当中的101与102的两条数据。为了能够获得核心模型与元数据模型当中的数据集合,必须要利用共同查询模式,其结果是包含student表当中的schlool-id为101的记录。
3多租户网站的运行实例
租户必须按需要到系统后台,将系统前台所提供需要的元素对其进行组合构造。除此之外,现如今,平台当中所需要提供的包括文章内容管理、用户体验管理、前台模板网页设计模板以及后台栏目管理等,与此同时,不同的系统租户平台能够按照所提供需要的元素给予前台模板以及后台功能等多方面进行选择。选择成功以后,当中的租户可以连接到租户的网站服务后台,对网站前台进行管理,后天维护管理当中的租户不仅能够为网站前台栏目进行添加,例如,jave技术等网站相关栏目,同时租户能够为网站前台进行添加相对应的相关文章。网站后天在构建以后,租户便能够将前台予以开放,并且供浏览者应用,浏览人员采取租户所提供的浏览网址,在这里就能够看到网站后天当中添加的栏目和里面的文章等。
4总结
多租户系统技术就是属于一种软件架构设计技术,其目的是在通过探讨与设计实现系统应该如何进行应用,并在多用户的软件环境之下可以共享租户系统或者应用程序中的组件,同时仍然可以能够真正保证每个不同用户之间具有数据的完全隔离性。通过多租户系统技术不仅能够真正保证实现多个不同租户当中的个人共享系统应用实例,并且还可以真正保证实现每个租户的共享系统应用实例的完全个性化和可定制。另外,利用多租户系统技术后还能够保证整个租户系统具有共性的部分就是可以单独进行数据共享,个性化的部分则是需要被单独进行隔离。通过在多个不同租户当中的成本资源重复组合利用,可以将其中的成本资源给予有效节省,同时在每个不同租户当中可以共享应用程序的单个系统实例,一旦遇到需要系统升级的重要时候,多个租户都会在同一时间重新进行系统升级。除此之外,由于多个租户同时享有一个系统当中的核心系统代码,所以,一旦进行系统升级,仅需要将当中的一个核心系统代码重新进行系统升级处理即可。因为网站缺乏多租户协同运行系统架构和网站个性化资源配置管理能力等功能,以往用于面向承租租户的各种B/S大型网站管理框架系统开发技术并不完全适用。以往的技术主要采取ASP模式,每一个用户对应一个运行实例,这一方式开发相对较为简单,然而会导致多次开发,可重复使用性较差。然而通过利用j2ee以及saas多租户等多种相关信息技术可以构建多租户的网站架构,从而让广大用户更加方便于快捷应用系统中的功能。
作者:季露 单位:南京高等职业技术学校