在PaaS上构建SaaS应用程序需要注意什么
遗留系统含有成千上万个执行一大批业务功能的服务组件。比如说,假设贵企业运行的一个内部遗留系统中的一套组件向企业高管提供一份统计报告。为了赶在截至日之前获得这份每周提交的报告,该高管应该考虑将必要的组件迁移到新的软件即服务(SaaS)应用程序。
如果经济可行性研究表明这种迁移是明智的决策,他应该与其他高管以及由开发人员、系统工程师和业务分析人员组成的一个团队合作,将遗留系统细分成多个组件,然后着手开发那个应用程序。
1、识别遗留系统资产
- 开发团队、高管和遗留系统负责人需要识别遗留系统的资产。这些资产包括如下:
- 说明文档,包括遗留系统的描述和流程图以及灾难恢复计划;
- 公司内部数据中心所在的设施;
- 与遗留系统有关的利益相关者;
- 这包括当前用户(包括高管)、开发人员、系统管理员和业务分析人员;
- 遗留系统运行在上面的IT基础设施;
- 以及开发人员的技术技能,比如在平台即服务(PaaS)上开发SaaS应用程序,让开发人员能够在虚拟环境共享技能。
2、发现必要的组件及依赖关系
开发人员应该扫描源代码,查找供以后提取的服务组件。源代码包括主程序及其与子例程之间的接口,子例程可能采用了不同于主程序语言的编程语言编写而成。
下一步是,开发人员识别主程序和子例程中的组件之间的依赖关系。服务组件的依赖关系可能与其他服务组件的依赖关系之间存在多对多的关系。
在识别组件的过程中,开发人员还应该设计一份流程图,帮助自己将服务组件彼此之间的依赖关系具象化。
3、提取组件
开发人员应确定应该从遗留系统提取哪些组件。提取服务组件的简易性取决于下面五个因素:
- 源代码一开始编写得有多好;
- 源代码打补丁、再打补丁有多频繁,以修复软件错误;
- 遗留系统的说明文档是否定期更新;
- 开发人员的技术技能(比如,遗留系统的原始开发人员可能再也找不到);
- 以及服务组件的依赖关系具有的复杂性。
4、接受或拒绝提取的组件
一旦开发人员厘清了依赖关系,他可以接受或拒绝依赖关系。接受依赖关系并不总是意味着按原状接受服务组件。开发人员可能需要重新设计服务组件的结构,以满足新的业务需求。结合依赖关系有望消除重复或类似的服务功能,因而减少了服务组件的数量。开发人员把所有被接受的服务组件放入到一个组件库,以便在构建 SaaS应用程序时使用。
构建和安装SaaS应用程序
在PaaS上构建SaaS应用程序时,开发人员应该确定:
1、用户、开发人员、系统管理员和业务分析人员期望从SaaS应用程序获得什么样的东西,然后选择SaaS应用程序运行所需的云部署类型:私有云、公有云还是混合云。
2、根据用户、开发人员、系统开发人员和业务分析人员的预期要求构建应用程序时,使用哪些被接受的服务组件。
3、什么方法将服务组件编排到松散耦合的SaaS应用程序最经济高效,并测试该应用程序的结果是否满足预期目标。松散耦合是指,应用程序在等待用户响应的同时,应用程序的其余部分可以继续运行。
安装应用程序后,开发人员应该监控SaaS应用程序的性能以及业务需求方面出现的任何变化,这些变化可能需要更新及重新设计应用程序的服务组件。
本文作者:佚名
来源:51CTO
在PaaS上构建SaaS应用程序需要注意什么相关推荐
- 在PaaS上构建SaaS应用程序时先搞清这些
遗留系统含有成千上万个执行一大批业务功能的服务组件.比如说,假设贵企业运行的一个内部遗留系统中的一套组件向企业高管提供一份统计报告.为了赶在截至日之前获得这份每周提交的报告,该高管应该考虑将必要的组件 ...
- 软件即服务:如何构建 SaaS 应用程序
软件即服务 (SAAS) 是在线公司的理想商业模式.它有助于直接从服务器检索数据,无需用户获取其副本. SaaS 开发公司为初创公司和小型供应商提供了发展企业的绝佳机会.通常,SaaS 解决方案的适应 ...
- Web 上构建MDI 应用程序---Prototype Window Class
今晚在网上看到一个非常酷的JS框架Prototype Window Class.Web开发者通过Prototype Window Class便可以轻松地在网页上构建各式各样的窗口(Window or ...
- ogm session_带有Hibernate OGM的NoSQL –第三部分:在WildFly上构建REST应用程序
ogm session 欢迎回到我们的教程系列"带有Hibernate OGM的NoSQL"! 感谢Gunnar Morling( @gunnarmorling )创建了本教程. ...
- 带有Hibernate OGM的NoSQL –第三部分:在WildFly上构建REST应用程序
欢迎回到我们的教程系列"带有Hibernate OGM的NoSQL"! 感谢Gunnar Morling( @gunnarmorling )创建了本教程. 在这一部分中,您将学习如 ...
- sas模拟试验构建线性模型_在sas上构建一个有角度的Web应用程序
sas模拟试验构建线性模型 The SAS platform is unparalleled in its capability to deliver analytics across the wor ...
- 去中心化 去区块链_使用JavaScript和坚固性在以太坊区块链上构建去中心化应用程序dapp...
去中心化 去区块链 In this blog, I build a decentralized application, also known as a "dapp". While ...
- Salesforce上的Saas生态大玩家 Veeva是如何炼成的?
作者 | 中国软件网 海策 --- 随着2009年的国家医药分离政策的推动,曾催生了一种新的职业--医药代表.医药代表的本质可以说是一条纽带,连接起医生.医院和药厂三方.医药代表将药厂的最新药物研发动 ...
- 了解如何使用ASP.NET Core 3.1构建Web应用程序
ASP.NET Core is an open source web-development framework for building web apps on the .NET platform. ...
最新文章
- 金鱼会开车?对,以色列新研究证明金鱼有陆地导航能力,还能看标志认出目的地...
- Web前端三剑客之CSS基础
- Ubuntu adb devices :???????????? no permissions 解决方法
- ProE二次开发之VS2005+ProE Wildfire 4.0开发环境配置
- 单实例单向rac搭建gg流
- 解决chm文件打开,无显示内容
- STM32_ADC初始化参数说明以及常用的固件库
- nginx tornado php,tornado+nginx+python 微信公众号接入配置
- 得到页面中的所有链接函数
- Atitit。 工作流引擎的发展趋势
- html网页综合项目实战
- github恢复误删除的文件
- 排队问题解题思路_有关排队问题的排列组合题解法举例
- 微信怎么加入黑名单?微信黑名单怎么恢复好友
- python tenacity用装饰器方式重试用例,提高测试用例的健壮性
- redis链接不上,报保护模式
- AI技术 | PIFuHD-由高清图片生成3D人物模型对BIM的启示
- flume 从基础到高阶
- nginx网页地址重定向
- Java基础之Java数据类型