<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Bringing computation to the data(base) with Core Data Services (CDS)</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Stefan Bäuerle</string-name>
          <email>stefan.baeuerle@sap.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alexander Böhm</string-name>
          <email>alexander.boehm@sap</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>SAP SE</institution>
          ,
          <addr-line>Dietmar-Hopp-Allee 16, 69190 Walldorf</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2017</year>
      </pub-date>
      <abstract>
        <p>Bringing computations close to the data source is one of the key concepts of highperformance database management systems. This specifically holds true for state-ofthe-art systems like HyPer, Microsoft SQL Server, or SAP HANA that are making efficient use of modern hardware by exploiting in-memory storage, vector instructions, and sophisticated algorithms for query optimization and execution. To benefit from the capabilities of these systems, it becomes increasingly important for business applications to efficiently push their data-intensive parts to the DBMS. Capturing and communicating the computational intent from the application to the DBMS is often not trivial, as the DBMS is either abstracted away using objectrelational mapper interfaces like Hibernate, or as the language mismatch between imperative, object-oriented languages like Java and the declarative, SQL-based query processing makes it difficult for developers to express non-trivial database operations. In this presentation, we discuss how some of these issues can be tackled using the Core Data Services (CDS) framework that is both supported by SAP's HANA database and the Netweaver application server stack. By combining concepts from declarative query languages like SQL and XPath with functionality developers are familiar with from object-oriented languages or even aspect-oriented programming (i.e. the “.”-operator for member access and the concept of annotations), CDS enables to express complex business logic with only a few lines of code - where equivalent SQL statements span multiple pages instead (see Figure 1 below for an example).</p>
      </abstract>
    </article-meta>
  </front>
  <body />
  <back>
    <ref-list />
  </back>
</article>