如何从传统应用到云应用平台(JSAAS)

JSaaS如何支持传统应用开发与云应用开发

1. 传统企业或单位信息化的现状

传统的企业应用开发已经持续了比较长的时间了,在中国有一定规模的企业,其信息化也实施了一段时间,因为企业在生产经营过程中,不同的业务系统是根据其业务需求而逐步建立的,开始时,并没有经过长远规划,因此,不同的信息系统是独立的,这带来一个不同系统之间是独立并且信息不通。但当企业运作了一段时间后,其就通过信息化部门,逐步把这些信息通过接口开发、整合来实现,于是形成了如下的使用方式:
ent-info-truble

这种机制带来的问题就是这些系统的维护成本很高,动一发会牵动全身,支持当企业不同增加子公司或子个机构使用,数据迁移、功能扩展、二次开发等都带来很大的挑战。

2. 互联网下的企业应用开发模式

这几年的移动互联网的发展非常迅猛,远超了人们的想像,企业的应用也不可避免受到越来越多的影响。于是更多的企业现在也尝试把不是那么重要的业务的信息化管理也往云端迁移,而近几年来更甚者,一些重要的销费类管理系统也全力迁移至云端应用来。
saas_cloud

云计算正迫使应用开发者思考应用架构事宜,就像客户端开发者面临着从桌面应用到移动应用开发的巨大转变一样,服务器端开发者正经历着类似的转变,因为他们需要开发云应用。开发一款不是云架构(即原生云)的应用是没办法享有任何底层云基础设施的好处,这将导致运营成本的增加。对于开发者构建新的云应用而言,在第一时间获得正确的架构(避免昂贵的重新设计)是非常重要的。

2.1.新的应用层

从一些云领导人(如Netflix、LinkedIn和Twitter)处可以很明显的看到一个新的应用层架构已经出现了。新的应用层是由细粒性分布服务集合而构成,没有特定的状态并可以独立的向上或向下。快速的可伸缩性不是其唯一的好处,一个很受欢迎却经常被忽略的好处是它为企业小型团队提供快速敏捷的独立开发。该模型不仅使持续集成成为可能,还能够促进真正持续交付的软件,使事情变得像canary发布、A/B测试和发布自动化一样简单。事实上,开发者已经在Netflix里对如何取得持续交付应用游刃有余,并且也获得了显著的益处。

2.2.当前的选择

对大多数在过去一年建立了大规模应用的企业来说,过渡到云是一个巨大的挑战。随着顾客越来越适应云计算,并接受基于云的软件交付(即SaaS),这些企业正面临着两个选择:

将现有的应用迁移到云;
重新为云构建当前应用;
这两种选择都有一些好处和挑战。

迁移

将现有的应用在短期内迁移到顾客所需的云地址,会导致一个重大的操作挑战。多租赁将是一个关键的问题。在运营方面会出现几个挑战,包括:持续的支持、监控、软件的升级和低效率的资源利用率。自动化可以帮助减轻这些挑战带来的负担,然而当客户群的增长超过某个点时,自动化将很难实现操作的效率。所以这种方法需要企业在操作方面加大投资,因为越来越多的人力物力用于项目运营和管理,而打破这一局面的方法则是高水平自动化的出现。

转变

公司选择重新设计现有的应用面临着一些前期的挑战,包括“陡峭的”学习曲线、在软件开发中为建立或选择底层平台而加大初始投资以及短期内现有客户的潜在流失。致力于云计算的公司可能还需要经历文化和组织改变为敏捷型并采用开发运营模式这个过程。不过从长远来看,公司一旦战胜了这些困难,迎接它们的则是显著的好处。它们可以享受云基础设和交付模式的真正好处。由于更好的资源利用率和较小的投资操作,使得它们可以实现更大的运营效率。随着它们的成长,这些公司还将受益于更大的规模经济。

3. 那么如何让传统的企业与云端的应用实现业务一体化

企业的CTO都在思考一个问题,就是未来公司的业务哪一些系统是可以放到云端来运行的,并且又是如何为公司业务提供服务的,并且如何通过一体化的平台业务来实现这个目标。

而传统的旧的业务又是如何往云端迁移的?

flow-one

JSAAS是全新的开发框架,可适合传统的私有云业务管理,也可以适应云端的业务管理,支持多机构的应用方式,让你的业务可与合作伙伴分享与成长。Jsaas是如何从传统的业务管理过渡到平台的运行架构,并且实现全方位的支持的。

4.示例

以下是以一个公司的业务场景为例子,说明如何从传统的应用设计转至平台的运营场景,以此来说明如何通过JSAAS平台实现各种业务场景。

 应用场景

某集团公司下有三家子公司,分别经营着房产、影视、餐饮三个不同的行业,现集团公司需要开发一套客户营销系统,分别管理其下不同子公司的会员及业务。其架构如下所示:
archives

4.1. 单应用独立架构模式–数据独享

集团公司及其下的子公司独立进行业务经营,财务独立结算,因此会员营销系统是分开的,即每个子公司及总公司均部署一套独立的系统,我们把这种系统称为单机构应用。其管理模式如下:
layer1

【说明】

即每个系统是独立的,JSaaS可以把这种应用部署在内网,也可以部署在云端,每个子公司单独使用,其数据是独立的,即独立的数据库,独立的文件管理,甚至是独立的服务器。这种方式就是系统需要由每个子公司自身或由集团统一来管理,优点是数据安全性好,备份容易,缺点是管理成本高。

4.2. 单应用集中部署模式数据共享

集团公司想实时了解每个子公司的会员营销情况的数据,同时希望每个子公司只能管理自身的会员信息等,这时我们部署一套会员营销系统即可,同时提供给集团、三个子公司同时使用,我们称这种为多机构应用。
layer2

【说明】

这种应用场景是用户适合于需要进行分支机构的数据汇总的管理功能使用,应用场景很广,一般有分支连锁机构均适用,其实现的方式就是数据库的表是共享的,通过在表中增加机构字段进行数据隔离,而需要进行数据汇总时,所有的数据均在同一表中,数据过滤及查询等都是高效的,缺点很也是明显的,当机构比较多,每个业务的数据比较多时,表很的数据会爆涨,这将会对后续的查询性能带来挑战。JSAAS天生支持这种数据结构,即我们要求在设计每个业务功能模块时,其表字段都需要增加机构的ID,以支持数据共享,而业务分离的特性,而一般的数据过滤,平台框架提供了支持,以使得开发人员像开发传统应用一样开发功能即可。

4.3. 单应用集中部署数据分离

集团公司在使用该系统时,发现其确实管理比较方便,并且与其有业务来往的合作伙伴也有类似的业务管理需求,于是也想部署给他们用,同时只收取一些服务费用,但合伙伴的数据量也是有点大,使用时,建议独立数据库。于是集团想了如下办法:
layer3

【说明】

这种应用场景是所有的子公司使用的业务几乎是一样的,所以应用程序是独立的,但要求数据是独立,并且可以自己定时备份数据,优点是程序统一更新,数据库是分离的,这种情况要保证事务相对困难,因为是跨库操作,每个子公司需要一个独立的事务管理器。当分支机构比较多的时候,并且是动态时,这种需方式带来的管理成本是显式增加的。JSAAS可以通过在XML文件中独立配置不同的操作库来达到这个要求。

4.4. 大规模租户部署—数据共享与分离共存

集团公司发现这个系统在不同的行业领域中都有着不同的应用,于是思考是否可以把这个应用做成云平台,供有需要的企业或机构在线注册并且付费使用,但不同的企业规模不一样,因此在分配软硬件资源上有所不同,于是设计如下,把资源利用到最大化。
layer5

【说明】

要把这个应用场景推广至更多的人来使用,并且支持不同的机构在线注册并且实现在线配置使用,这时我们需要最大化利用平台的软硬件资源,以使可支持更多的租户。由于面向的客户是中小企业或中大规模的企业,所以平台为租户的部署上我们需要根据不同的企业的规模来决定分配的服务器、数据库。而统一平台对外后,需要根据租户的域名进行负载均衡。

如A企业的规模比较小,如100人以内,即可以让它采用物理表的数据共享模式,B企业的规模比较大,规模10000人以上,则可以用传统的方式处理,即后台的数据单独集群,应用程序也独立集群,从而支持更大的并发。所以平台需要在前台那里加多一层负载均衡器以支持用户的租户的访问。

JSAAS原生的已经支持第一种模式与第二种模式,而混合式的实现则需要加多一层租户的数据均衡器的处理,以根据租户的域名来进行服务器的分离访问。

4.5. 多机构系统应用部署结构演变汇总

以下图可以形象描述平台如何支持不同的组织架构的数据存储方式,以适应不同的用户的组织架构及数据规模的要求。
layer7

5.多机构与SAAS的关系

5.1. 什么是多机构?

在本文档中指一家企业下有多个独立法体的企业或单位,也指多个使用平台的不同企业或机构.

5.2. 什么是SAAS

SaaS(Software as a Service),软件即服务。提供云端的应用服务,ERP、HR、CRM等在线系统,每个账户或者每家公司有独立的数据存储,通过账户进行权限和访问隔离,知名厂商有Salesforce、Successfactor、Zendesk等;

【总结】一般我们说的SAAS模式,就是指软件平台对多个机构或单位同时提供在线的企业服务的支持。

6. JSAAS多机构应用的支持

6.1. 开放机构注册功能

平台可作为云端应用,开放给企业进行注册,并且通过邮件进行激活,同时获得登录平台及使用平台的权限。开通访问后的企业,可在平台上进行组织架构的配置,从而支持这个机构使用平台的能力。
ent-reg2
【企业注册】
dimension-config
【组织配置】

7.JSAAS对组织架构的灵活支持

7.1.组织维度及组管理

每个机构可以构建其对应的组织维度及人员的关系。平台允许多个组织机构同时使用,若为单机构使用,即只需要配置平台机构即可。若需要为多机构使用,则允许添加多个子机构。

mul-orgdimension

7.2.用户与组关系灵活定义

org-relation

8. JSAAS功能开发对多机构的支持

8.1. 数据级别的SAAS支持

  • 分支机构字段标识隔离小规模数据量
  • 独立数据库方式隔离中小量机构业务数据
  • 混合式方式支持大规模不同机构的业务数据

8.2. 应用级别的SAAS支持

  • 子系统的SAAS属性可配置化支持
  • 功能菜单的SAAS属性配置支持

subsytem

menu-mgr

子系统与菜单均可以通过配置是否为SAAS访问方式,以决定是否开放给平台下的租户机构来使用。

9.JSAAS的使用场景示例

9.1. 示例一、广告平台

案例1: 某广告平台商,其有大量的线下广告屏的供应商,平台商通过向供应商租用屏,向终端客户提供广告展示业务

ad-platform

平台机构有:广告平台商(运营),广告屏供应商,企业用户。
从开发上,功能可放在一起开发,只需要通过机构进行数据过滤及子系统、功能是否开放即可。

9.2. 示例二、商场统一平台应用

某大型商场想改变传统的收取租金的营运方式,借用移动互联网趋势,帮忙商场的实体店开通网上销售、线下销售、支付、会员营销一体化的功能,允许每个商家入驻并使用商场提供的这个应用平台。从这种方式,可以通过借助JSAAS配置及开发以下应用平台即可。如可以快速通过配置及开发,即可提供:

  • 平台运维管理系统
  • 商户销售及管理系统

其使用机构如下所示:
jsaas-org

这时不断加进商家来使用该平台,也是容易的。

10.JSAAS默认功能模块

为了让JSAAS更多可以更多支持传统的企业应用或二次开发功能,从而可以分配给更多的机构使用,即以此形成一个共享的系统管理的资源,从而为企业减少业务管理的信息化投入,同时也为使用JSAAS的开发商可以更高效开发、获得后续可观、可持续的收入。

平台由三大部分组成:

  1. 门户管理
  2. 业务应用功能(如文档管理)
  3. 系统基础功能(流组织架构管理、流程管理、表单管理、任务调度管理等)

jsaas-function

项目交流,需求评估,方案学习,都可以咨询,

承接各种项目,

咨询QQ:1361783075

添加QQ,可以获得DEMO,操作手册,了解学习。谢谢

猜你喜欢

转载自lwmailhj.iteye.com/blog/2407489