HANA XS是内嵌在HANA内的服务器端应用,它的核心部分是XS引擎,XS的编程语言是js。
HANA XS建立app是基于http协议的,它可以提供以下服务:
1. 通过http的方式来访问HANA数据库。
2. 支持动态的HTML5应用,它也有sap UI5这样的视图层解决方案。
3. 强大的搜索服务,比如fuzzy search和text analysis。
4. 分布式的代码管理方案,客户端和服务器端均有代码,客户端建立repository来share代码到服务器端。
HANA app的开发遵循这样的原则:Push the control flow down!
将client和后台的业务逻辑,数据持久层分开,并且将控制逻辑,计算,数据往下压,全部压到HANA中去解决。HANA不仅仅承担了数据的存储,还包含了数据的分析,内存计算,逻辑控制等,形成了一个大的平台。
下图是HANA web application的分层次结构图,以及每层的解决方案:
这种方案颠覆了传统的web app的架构,将控制和数据融合在HANA中,原来的三层架构(视图-控制层-数据层)变成了两层(视图-HANA原生态开发)。
XS的开发模式如下所示:
XSJS:服务器端js,与客户端的编程语言一样都是用的js,轻量级。
CDS:Core Data Services。包含数据定义语言,查询语言和表达语言。
HANA的views包含Attribute,Analytical,Calculation三种views。
AFL(Application Function Library)包含:BFL(Business Function Library )和PAL( Predictive Analytics Library )
下图是XS一个应用的效果图: