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平台的开发。

相关新闻

联系我们
联系我们
公众号
公众号
在线咨询
分享本页
返回顶部