目前,开发SAP HANA应用程序通常采用图1所示的程序开发架构:
图1. 传统SAP HANA应用程序开发架构
在图1中,后台程序开发人员需要负责数据库层数据模型的建立和XS Engine层控制逻辑的开发。对于数据库层数据模型的建立,开发人员需要掌握SQL语句和SAP HANA的SQL Script开发语言;对于XS engine层,开发人员需要掌握xsjs技术开发相关的控制逻辑。这就需要SAP HANA的后台应用程序开发人员至少掌握两项技术,有时甚至需要不同的开发人员合作才能完成SAP HANA应用程序的开发。今天我们要介绍的SAP River可以解决这个问题。
SAP River是一种全新的开发SAP HANA本地应用程序(Native Application)的方法。SAP River由一门编程语言,一个 编程模型和一套开发工具组成。 利用SAP River,开发人员可以专注于应用程序业务意图的设计和开发,而不需要关心程序的实现和优化。SAP River是design-time而非run-time的编程语言和工具,当被激活时,SAP River程序会被编译成SQL Script代码或XS JS程序,再交由XS engine或indexserver运行。也就是说,SAP River程序只存在于应用程序的设计阶段,而不存在于运行阶段。
图2. SAP River的功能模型
图2展示了SAP River的功能模型。SAP River集成了SAP HANA应用程序开发的数据模型,业务逻辑和访问控制各个环节,使得开发人员掌握一门统一的技术就可以完成完整的SAP HANA应用程序开发。首先,利用SAP River编程语言,开发人员可以设计应用程序的数据模型,SAP River会在编译阶段创建相关的数据库对象(比如在SAP HANA中为SAP River中的entity创建对应的table);其次,SAP River可以针对数据对象定义方法,在方法中可以实现业务逻辑;最后,在SAP River程序中可以实现对数据和方法的访问控制。
作为新一代SAP HANA后台应用程序开发方法,SAP River提供了一门强类型的声明式编程语言。使用SAP River Language开发应用程序简单直观,即使是没有计算机背景的领域专家也可以很快上手编写应用程序。此外,对于比较复杂的,用声明式语句无法表达的逻辑,SAP River提供内嵌SQL Script和XS JS代码的方式供程序开发人员使用。
SAP River Language主要由以下对象组成:
图3. SAP River “Hello World”示例程序
SAP River作为一门编程语言,除了语言本身的特性外,同样提供了相应的函数供开发人员使用。SAP River的函数库实现了常用的功能函数,按功能可分为以下几组:
SAP River应用程序的数据和业务逻辑可以通过OData协议暴露给客户端,使客户端可以访问后台数据。SAP River可以在namespace层次或者application层次通过OData暴露数据,如果暴露namespace,那么在这个namespace里的所有实体,视图,和动作都将暴露给客户端;如果暴露application,那么只有application中做了标注的对象才会暴露给客户端。下面以application为例,讲述如何通过OData暴露数据。
默认情况下,SAP River 代码中的各种对象,如实体,视图等,是没有通过OData暴露出去的。为例暴露对象给客户端,你必须指定哪些对象,通过什么方式暴露给什么样的用户。图4是如何在SAP River代码中通过OData暴露对象的示例。
图4. 通过OData暴露SAP River application
① 在application层次上暴露对象时,必须用export关键字指定哪些对象是要暴露给客户端的,比如这里指定把应用程序TestSyntax中的Employee实体暴露给客户端;
② 暴露对象有多种方式,比如通过OData的方式。为此,需要在application或namespace前添加前缀@OData。这样,SAP River就会为application或namespace中所有需要暴露的对象创建一个服务;
③ 默认情况下,SAP River的对象是private的,为了让指定用户可以访问这些对象,需要用accessible by关键字指定哪些对象能够被拥有哪个权限的用户访问。如果所有用户都可以访问,就使用accessible by sap.hana.All进行标注。
SAP HANA至SPS07起开始支持SAP River,作为一门新技术,我们需要更多的资源进行学习。以下是一些学习材料:
本文概述性地介绍了SAP River的功能,优势和组成结构,包括SAP River相较于传统开发架构的优势,SAP River Language的主要特性,以及如何通过OData暴露SAP River中的数据和方法。本系列后续文章将逐一地介绍SAP River的安装,配置与程序开发等各方面的知识,敬请关注!
想获取更多SAP HANA学习资料或有任何疑问,请关注新浪微博@HANAGeek!我们欢迎你的加入!
转载本文章请注明作者和出处http://scn.sap.com/community/chinese/hana/blog/2014/04/08/sap-river-%E4%B8%80-sap-river%E6%A6%82%E8%...,请勿用于任何商业用途。
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
26 | |
14 | |
13 | |
13 | |
12 | |
8 | |
8 | |
7 | |
5 | |
5 |