SaaS模式、技术与案例详解——第15章 SaaS平台的技术选型(saas模式与技术架构)

【本章导读语】

“笑嘻嘻的小猫咪,”爱丽斯问道,“请您告诉我,我应该走哪条路

呢?”“那取决于您想去何方。”小猫回答说。

________路易斯.卡罗尔,《爱丽斯漫游仙境》

“磨刀不误砍柴功”,一个好的工具可以快速地开发出一个系统,这样在时间及效率上都取得最好的优化,也降低了开发成本。不过,用什么开发工具完全取决于您公司自己。

15.1 SaaS平台选型技术基本要求

SaaS平台本身业务特殊,注册用户多,使用范围广等特点,对平台的技术框架选型也有许多要求,主要包括如下:

l 运行稳定、安全可靠,性能卓越。

l 开发快捷,并且有强大的拓展能力。

l 支持分布式部署和分布式事务。

l 支持数据交换和消息传递。

l 有较强的portal管理能力。

l 能开发比较强大,容易吸引客户的交互界面。

l 通过比较简单的设计开发,就能实现SOA架构。

l 具备强大的集成支持,如集成即时通讯等。

l 具有移动商务解决方案的开发和整合支持。

15.2 三种技术平台简析

目前IT业界上涉及的开发框架主要包括三个:domino、j2ee和.net框架,Domino有完善的权限框架体系,但网站开发(大型企业社区的建设)、软件系统集成和搜索上非常不方便,因此不太适合。

J2EE功能强大、拓展能力强,使用人员多,开源项目免费资源也很多,但大多数项目存在一定的bug和隐患,不是很稳定,需要自己投入比较大的修改成本,另外J2EE框架开发成本也不低。

.net平台功能完整,开放快捷,性能卓越,微软服务支持到位。但开源项目相对J2EE较少。

因此从技术框架选型上主要可以采用.net或者J2EE,下面对.net和J2EE做一些分析

和比较。

15.3 J2EE和.net比较

J2EE和.net是软件业界中主要的开发技术,这二种技术又各有其优势与不足,SaaS平台及应用系统该选择哪种技术,这是一个长远的技术策略问题。不象有的项目,用户一般对开发技术有要求,对使用的环境都有明确的规定。SaaS系统用户只有使用权,没有终身拥有权,用户也不会关心您是用什么语言开发的,是用什么类型的数据库。所以开发技术问题是让您决定的。

15.3.1 技术比较

我们通过一项项来比较J2EE与.net的技术如表15-1:

表15-1 J2EE和.net技术比较

主要技术

J2EE

.net

通信协议

Remote Method Invocation over InternetfffffInterOrb Protocol(RMI/IIOP),XML

编程语言

Java

C#,VB.net,COBOL

运行时环境

Java Virtual Machine (JVM)

Common Language Runtime (CLR)

胖客户端

Java Swing

Windows Forms

目录服务

Java Naming and Directory Interface (JNDI)

Active Directory Services Interface (ADSI)

数据访问

Java Database Connection (JDBC),Java Connectors

ADO.net

异步消息处理

Java Message Service (JMS)

Microsoft Message Queue

表示层技术

Servles,Java Server Page(JSP)

ASP.net

中间层组件模型

EJB,JavaBean

COM ,COM

安全访问

JAAS

COM Security Call Context

事物处理

Java Transaction Server (JTS)

Microsoft Distributed Transaction Coordinator (MS-DTC)

开发工具

WebGain Visual Café Borland JBuilder IBM VisualAge 等(第三方提供,规范本身没有定义)

Visual Studio.net

易用性

较好

很好

扩展能力

很好

较好

多平台支持

很好

不好

多语言支持

就一种语言

很好

可靠性

较好

较好

可管理性

较好

较好

重用性

很好

较好

负载平衡

较好

较好

开放标准

很好

一般

15.3.2 性能比较

l 以Web Service为基准作比较

下图是在以Oracel9i为数据库以Windows2003为操作系统,有8个CPU的主机为软硬件的测试环境下对.net与J2EE的测试结果:

图15-1 .net与J2EE的性能测试结果

l 以Web Application为基准作比较

下图是在分布式环境下运行了24小时后对.net与J2EE的Web应用的测试结果:

图15-2 .net与J2EE的基准测试结果

l 以Web Services为基准作比较

下图是在分布式环境下运行了24小时后对.net与J2EE的Web服务的测试结果:

图15-3 .net与J2EE的服务基准测试结果

Tests XML Web Services(SOAP 1.1)performance

Tests application as SOAP server and SOAP client

性能比较

Distributed Transaction 24 Hour Benchmark

15.3.3 开发成本比较

图15-4 .net与J2EE的开发成本比较1

图15-5 .net与J2EE的开发成本比较2

15.3.4 风险比较

l 从基础平台搭建上

要构建一个稳定的java平台至少需要1到2年的时间。

Java平台现有一些开源框架,但都不太稳定,需要投入比较大的人力财力去修改。

l 从团队学习和培养上

JAVA学习和培养比.net难。

JAVA代码如果设计没做好,比.net代码维护难。

l 从架构设计上

设计一个SOA架构,采用JAVA平台比较难。

微软自己有一套体系,配置和实现SOA架构,相对简单。

l 从技术支持上

采用Java平台,免费的技术支持来源开源项目或者员工能力。

采用.net微软提供专业的技术支持和难点问题解决。

15.4 基于.net架构设计

图15-6 技术选型-NET架构

技术选型-.NET架构

l 基于.NET架构

本平台是基于微软.NET架构(包括.NET企业应用服务器、.NET开发工具)。采用Windows 2003作为服务器的体系结构;

l 开发方式

按照数据、业务逻辑、用户接口三层结构进行设计和开发;

l 开发语言及工具

ASP.net、C#、XML、XSL、DHTML、CSS、JavaScript,Sqlserver,VSS,PowerDesign;

l 服务器配置:

MS Windows 2003 、

MS SQL Server 2000 EntERPrise、

IIS 5.0。

l 数据格式

使用XML进行数据交换和文档结构化;

15.4.1 所需微软产品列表

l 开发过程

Windows 2003标准版

Sqlserver developer版本

Visual studio 2005

VS team server

Office

l 运营环境

Windows 2003服务器版

Sqlserver企业版本(初期可以用developer版)

l 其他:如atlas、asp.net2.0、IIS、windows workflow foundation等均免费使用

15.4.2 采用.net平台可能存在问题与风险

l 开发技术方面问题

目前有没有现成且功能强大,拓展性强的权限框架、工作流、PORTAL等组件提供SaaS平台使用?

目前有没有稳定又好用的.net的data Acess框架?按三层架构开发方式,我们程序员在数据层的开发工作量目前还比较大。

分布式开发技术如何实现?

表单的技术如何应用?

Webpart技术?

报表技术?

服务器间通讯或者数据交换技术?

移动解决方案开发技术问题?

数据库事务、分布式事务的支持开发框架?

l 设计性能方面问题

如何设计支持SaaS模式的权限框架?

如何设计支持SaaS模式的工作流框架。

如果进行分布式设计和部署?

PORTAL框架如何实现?

数据库如何设计,如何存储:分表还是分库?

SOA框架是否适合SaaS模式?怎么设计?

业务组件和平台的关系?如何设计才能方便扩展和管理业务组件?

如何设计才能支持集群、负载均衡?

如何制定标准使得平台可以和第三方产品快速集成?

l 安全方面问题

系统访问安全?

数据传输安全?

数据存储与备份恢复问题?

服务器安全?

商业数据安全问题?

服务器部署保证安全?

l 集成方面问题

目前公司的产品和系统采用的是domino和java平台,如gocom server、galaxy和indioffice等,我们平台的业务组件,能不能从现有系统抽取集成,有没有好的解决办法?

如果说SaaS模式是公司其他产品体系发展的一种趋势,如何把我们开发的SaaS平台和其他产品很好的结合起来,实现其他产品的SaaS模式。

l 管理方面问题

团队建设:如何快速组建高效能的.net开发团队

² 组织机构

² 工作方法

² 沟通机制

² 考核

² 学习机制

配置管理:代码文档管理?分支合并、多人修改同一文件合并等问题?

招人问题:怎么能找到SaaS方面的专家很难?

15.5 小结

本章介绍了SaaS平台的技术选型方法。通过对SaaS平台技术选型的要求,主要通过J2EE与.net的比较来说明哪种工具更适合SaaS平台的开发。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2024年5月13日 下午12:59
下一篇 2024年5月13日 下午1:11

相关推荐

  • 企业合同管理的风险有哪些?要如何规避风险呢?(企业合同管理的风险有哪些-要如何规避风险呢)

    企业合同管理的风险有哪些?要如何规避风险呢? 合同管理风险不仅局限于合同文本的管理,合同从订立到履行的每个阶段,都会面临管理上的风险,每一个环节出现疏漏,都可能造成合同纠纷。下面放…

    科研百科 2023年11月28日
    190
  • 临床项目管理计划

    临床项目管理计划 临床项目管理计划是一个重要的临床管理工具,可以帮助医疗机构有效地组织、计划和控制临床项目的发展。本文将介绍临床项目管理计划的概念、结构和实施方法,以及其对于医疗机…

    科研百科 2024年8月16日
    44
  • 课后服务经费管理办法

    课后服务经费管理办法 为加强学校课后服务管理,保障学生身心健康,提高教学质量,根据《中华人民共和国教育法》和国家相关政策规定,我学校制定了课后服务经费管理办法。 一、适用范围 本办…

    科研百科 2024年8月21日
    44
  • 典赞·2021科普中国

    来源:人民日报 中国科协主办的“典赞·科普中国”活动创始于2015年,自举办以来,受到社会各界的关注和认可,成为最具影响力的科普活动之一。今年,经过组织推选,“典赞·2021科普中…

    科研百科 2023年10月4日
    205
  • 科研项目书应该包含哪些内容

    科研项目书应该包含哪些内容 科研项目书是一份非常重要的文档,它是研究项目的基础,包含了研究项目的所有信息,包括研究目的、研究内容、研究方法、研究结果、参考文献等。一份好的科研项目书…

    科研百科 2024年12月3日
    6
  • java编程软件

    Java编程软件: 现代编程语言的利器 Java编程软件是现代社会最受欢迎的编程语言之一。它是一种跨平台的编程语言,可以在不同的操作系统和硬件上运行,因此被认为是一种适合多种场景的…

    科研百科 2024年11月18日
    0
  • 给科研项目导师发邮件怎么说给科研项目导师发邮件怎么说

    尊敬的导师, 我是您的学生XXX,目前正在参与一项科研项目。在这个项目中,我负责编写一份报告,这份报告将作为我们项目的最终成果之一。 最近,我注意到我们项目的进度有些缓慢,我想和您…

    科研百科 2024年6月13日
    127
  • 微软看图软件

    微软看图软件: 一款功能强大的图库管理工具 微软看图软件是一款功能强大的图库管理工具,可以帮助用户快速浏览、搜索和管理图片。软件采用直观、易于使用的用户界面,支持多种文件格式和图片…

    科研百科 2024年10月10日
    15
  • 信息系统项目管理师教程第三版

    信息系统项目管理师教程第三版 随着信息技术的不断发展,信息系统项目管理师这一职业也在不断壮大。作为信息技术领域的重要职业,信息系统项目管理师负责制定和实施信息系统项目的计划,控制和…

    科研百科 2024年12月9日
    0
  • 项目质量管理的特点有哪些(项目质量管理的特点包括)

    项目质量管理的特点有哪些 项目质量管理从属于质量管理,是质量管理在项目领域中的应用。它和质量管理不仅仅是局部和整体的关系,是项目管理和质量管理这两个学科的结合,通过质量管理体系、工…

    科研百科 2022年6月7日
    284