求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
  
 
 
     
   
分享到
基于云计算的HTML5技术开发应用套件SALAMA
 

作者:flyMontain,发布于2012-11-29,来源:CSDN

 

背景:笔者2000年开始,从事软件开发职业。2000年接触JAVA、2001年开始J2SE、J2ME和J2EE编程;2001年参与了KONAMI公司棒球游戏的开发工作,2001年所在的日本创业型企业获得SoftBank投资,开发并运营了凸版印刷所属的公共网站,2001年参加了在日本横滨举行的JAVA ONE会议。2003年成立自己的公司,主要从事软件开发、软件项目管理、软件的市场及销售的工作。2005年接触.NET桌面程序开发,2007年开始关注手持数据采集器软件的开发,2008年接触智能手机,2010年将目光重新投入到互联网/移动互联网当中。2011年开始,和合作者刘兴谷开始了Salama套件的设计和开发,2012年准备将此套件向市场进行推广。Salama套件,开始出现主要为了解决在开发过程中碰到的开发成本过高、移植效率低、在商用软件的开发过程中存在大量的重复性工作等问题点上;后期主要为了在此基础上,通过开发套件、应用服务器等Framework、中间件和云基础服务结合提供开发者简单便利的一系列服务为主要目标。

本文,希望通过一些技术及架构的思想和Salama的实现方式,提供给读者;希望读者能够站在笔者多年项目经验及对行业展望的基础上,对Salama的理念有一个大概的了解,在Salama推向市场的过程中,也希望读者能够参与并验证Salama所展示出的生命力。

一、Salama能够产生何种应用,这些应用的好处在哪里?

Salama支持Web Application、Hybrid Application(注1)两种类型的应用。传统的应用主要是Web Application、Native Application两种。这几种方式对比表如下:

  
Native
Application
Web
Application
Hybrid
Application
客户体验
开发成本
跨平台
需要安装
首次
实时更新
数据通信压力
服务器压力
系统API调用
开发灵活度
移植成本

通过比较可以得出,传统Native Application和Web Application的长短处非常明显(跨平台、本地资源调用);Hybrid Application完全可以取代Native Application,而Web Application和Hybrid Application相比,Web Application优势主要在某些公共服务领域由于其不用安装而胜出,对于Web Application和Hybrid Application的取舍判断主要是安装部署的可能性及对系统构架的综合成本进行考虑。

注1:A hybrid application (hybrid app) is one that combines elements of both native and Web applications.(http://searchsoftwarequality.techtarget.com/definition/hybrid-application-hybrid-app)

二、Salama的定义

Salama项目的整体想法启动于2011年10月,它是一个用于构建支持各种终端(智能设备)进行数据通讯的应用套件,它由终端壳程序、开发框架、中间件、应用服务器、商业组件及运营平台组成。

Salama是商业云服务的基础软件及核心技术之一,我们希望能够通过Salama来构造面对于包括支持各种终端操作系统(IOS、Andriod、WinPhone、PC、Linux)及各种智能设备(手机、平板、电脑、机顶盒、车载数据终端)的应用,让云服务的触角通过Salama延伸到每个终端节点上。截止到今天,我们面对终端客户的开发要求,已经全部采用Salama作为我们提供开发服务的基础套件。

三、Salama的开发理念

1、Salama是开发Web Application、Hybrid Application的商业应用套件。

2、Salama有一个适合提供云服务的应用服务器,通过该项技术可以支持海量存储和访问及数据同步。

3、Salama可以支持多种终端接入,支持在多种终端上进行开发。

4、Salama可以在跨平台的基础上,实现本地系统的直接访问,给予用户类似本地系统的体验。

5、利用Salama的Framework、组件和开发工具进行开发,成本低、效率高、学习曲线低。

6、Salama的服务器端程序开发可以选择使用JAVA语言或者.NET语言进行开发,最大程度保持了程序员使用编程语言的延续性。

7、Salama在终端开发上是混合开发的模式,对于大部分业务可以通过HTML5+CSS+JS实现,也可以通过修改甚至重构壳程序、或者是追加本地程序,最大程度的实现了灵活性和多样性的统一。

8、Salama提供了一套效率工具进行开发,也可以支持对某一项目进行再次抽取,在保证了开发效率的前提下仍尊重具体项目的独特属性。

9、Salama支持各种开发模式,能够适应工厂化的流水线开发,也可以适应敏捷开发。

10、Salama开发出的应用可移植性强,跨平台应用移植成本低。

四、Salama的核心组件

如下图所示,Salama由部署在服务器上的应用服务器软件(Salama Server For Java/Salama Server For .Net)、部署在服务器和终端上的EWF(Easy Web Framework)通讯中间件(EWJF / EWNF)以及位于终端设备上的壳程序和工具包(Native Shell & Utility)组成。其中,应用服务器软件又由Invoke Service、Resource Manager Service和Cloud Data Service组成

Salama核心组件说明

Native Shell & Utility:基于终端硬件及系统环境(IOS、Andriod、Linux、WinPhone等)开发,实现本地资源的访问、API调用和各种应用的扩展。

1、访问各种平台的文件系统、本地数据库、网络IO、文件上下行、Socket增强。

2、设备调用、摄像头、麦克风、传感器等。

3、系统自带UI组件调用接口、比如图层控制、WebView行为控制、等等。

4、SQLLite的调用(WEBSQL未支持)。

5、中间件扩展等。

EWF:衔接壳程序/本地HTML/远程应用服务器三者的数据通讯和相互调用。其中,数据格式的表现形式为XML。

1、安全认证:所有数据请求和应答都会首先进行安全认证,进行判断以后才执行相关操作。

2、本地程序和壳程序及本地HTML的相互调用的融合。

3、统一的UI显示。

Invoke Service:用户开发的业务逻辑在此被部署,并提供来自于终端数据请求的应答服务。

Resource Manager Service:构造了一个分布式的资源管理系统,并为用户提供一个统一的接口,来提供用户基于文件(文本、图片、流媒体)及数据对象(XML、对象实例)的存储和读取。

Cloud Data Service:用户自定义的数据结构和资源在此被管理,提供了对业务数据及文件的同步、共享和分发。

五、Salama的运行模式

终端设备——–云服务

终端设备——–单服务器

六、Salama开发方式

1、简单模式:我们使用Salama开发产品项目时,是由IOS、Linux、Adnroid、WinPhone、嵌入式专家,Salama核心组件开发人员,云服务开发者和应用开发者共同协作开发的。开发者开发测试自的模块根据约定的接口进行装配和测试。开发者无需掌握其他模块全部知识,能专注自己喜欢的领域,工作效率更高,掌握程度更深。对于应用开发者可以完全不懂iOS、Android、Linux等开发技术,只需掌握HTML5、JavaScript、CSS调用Salama相应开发SDK即可完成应用开发。

2、专家模式:Native Shell & Utility完全开放源代码,不在团队中的各个对各种终端掌握的专家可以在原来基础上进行修改,甚至进行重构。

七、Salama应用服务器的价值

当前市场上的Web应用服务器,主要由静态服务器和动态服务器构成。Salama重写了动态服务器,去除了对JSP或者ASP的解析功能,使得服务器能够更加轻载;追加了对分布式文件系统和分布式数据库的支持,同时还追加了对数据的同步、分发的支持。这些革新,使得云端服务更加高效、对移动互联网的访问更加方便。


 
分享到
 
 


专家视角看IT与架构
软件架构设计
面向服务体系架构和业务组件的思考
人人网移动开发架构
架构腐化之谜
谈平台即服务PaaS
更多...   
相关培训课程

云计算
Windows Azure 云计算应用开发