You are on page 1of 10

Wersja do druku - Akademia Lepszego Biznesu

http://www.bcc.com.pl/drukuj.html?id=24&lid=7&eid=3165&title=A...

BCC to lider rynku SAP (Zoty Partner SAP, najbardziej dowiadczona firma wdroeniowa SAP w Polsce, dowiadczenie w
projektach SAP w kilkudziesiciu krajach wiata). BCC to take dostawca usug outsourcingu IT. Centrum Outsourcingowe BCC
zapewnia kompleksow obsug utrzymania rodowiska IT: od hostingu i kolokacji w centrum przetwarzania danych BCC, po
administracj systemami.

Akademia Lepszego Biznesu


Programowanie w rodowisku SAP HANA
Aplikacje bez kompromisw
PORADNIK | Autor: Karolina Janowska (BCC)
Przygotowano w 2014 r. | Liczba wywietle: 166 | rednia ocena: 0

Programici, poczwszy od swojego pierwszego programu Hello World, ucz


si, e musz szuka kompromisu pomidzy maksymaln uytecznoci
aplikacji, a maksymalnym wykorzystaniem infrastruktury bazowej, ktra je
obsuguje. SAP HANA znosi te ograniczenia. To podstawowa rnica filozoficzna
midzy aplikacjami starego wiata a tworzeniem aplikacji dla SAP HANA.
Jednak programowanie ramach SAP HANA to temat bardzo zoony.
Jzyk programowania ABAP to podstawa systemu SAP. SAP NetWeaver Application Server
ABAP (AS ABAP) jest bazowym serwerem aplikacji dla rozwiza takich jak SAP Business
Suite, SAP BW oraz innych oferowanych przez firm SAP. Jednoczenie kluczowe nowinki technologiczne jak chmura
(Cloud), rozwizania mobilne czy rozwizania In-Memory zapewniaj klientom i partnerom firmy SAP zdolno do
reagowania na nowe potrzeby biznesowe, a take oferuj szans wyrnienia si wrd konkurencji poprzez
wykorzystywanie technologii najwyszej klasy.
W artykule przedstawiamy zasadnicze elementy programowania aplikacji dla SAP HANA, ktre mog poprawi szybko
dziaania oraz moc obliczeniow tworzonych rozwiza. Dodatkowo zaprezentujemy kilka przykadw nowych
moliwoci, ktre SAP HANA oferuje programistom. Jednak zanim przejdziemy do szczegw, naley zwrci uwag
na dwie najwaniejsze kwestie. Pierwsz z nich jest to, jak korzysta z jzyka programowania ABAP i zapyta SQL w
nowym rodowisku oferowanym przez SAP HANA. Druga kwestia to tworzenie rozwiza w pejzau systemw SAP.
ABAP i SQL w rodowisku SAP HANA
SAP HANA jest zgodna z regu ACID (Atomicity Consistency Isolation Durability), obowizujc dla baz danych. ACID
to zbir waciwoci, ktre gwarantuj poprawne przetwarzanie transakcji w bazach danych. Rozwinicie
poszczeglnych liter akronimu to:
Atomicity atomowo transakcji oznacza, i kada transakcja albo wykona si w caoci, albo w ogle, np.
jeli w ramach jednej transakcji odbywa ma si przelew bankowy (zmniejszenie wartoci jednego konta i
powikszenie innego o t sam kwot), to nie moe zaj sytuacja, e z jednego konta ubdzie pienidzy, a
kwota na koncie docelowym bdzie bez zmian: albo przelew zostanie wykonany w caoci, albo w ogle;
Consistency spjno transakcji oznacza, e po wykonaniu transakcji system bdzie spjny, czyli nie zostan
naruszone adne zasady integralnoci;
Isolation izolacja transakcji oznacza, i jeeli dwie transakcje wykonuj si wspbienie, to zazwyczaj
(zalenie od poziomu izolacji) nie widz zmian przez siebie wprowadzanych. Poziom izolacji w bazach danych
jest zazwyczaj konfigurowalny i okrela, jakich anomalii moemy si spodziewa przy wykonywaniu transakcji.
Z technicznego punktu widzenia SAP HANA jest podobna do kadej innej bazy danych, z ktr zdarzyo si pracowa
programicie. Wykorzystuje jzyki SQL i MDX, posiada biblioteki JDBC i ODBC, przechowuje dane w tabelach, w
kolumnach i wierszach, wymaga administracji i tworzenia kopii zapasowych. Jednake istnieje kilka kluczowych rnic i

1 z 10

2014-06-26 16:58

Wersja do druku - Akademia Lepszego Biznesu

http://www.bcc.com.pl/drukuj.html?id=24&lid=7&eid=3165&title=A...

dostpnych jest kilka nowych moliwoci, ktre powinny by brane pod uwag podczas tworzenia aplikacji dla
systemw z SAP HANA jako baz danych. Przede wszystkim naley poegna si z kilkoma fundamentalnymi zasadami
obowizujcych w poprzednich wersjach systemu, po to aby wykorzysta wszystkie nowe moliwoci oferowane przez
SAP HANA.
Pod wzgldem technicznym SAP HANA jest zgodna ze standardowymi interfejsami kadej bazy danych. Dlatego te,
aby zacz jej uywa, mona by wykorzysta aktualnie dziaajce aplikacje, zmieni ustawienia interfejsw ODBC lub
JDBC, a nastpnie uruchomi je w taki sam sposb jak poprzednio, ale z SAP HANA jako now warstw bazy danych.
Problem w tego typu scenariuszu jak jednak taki, e SAP HANA oferuje nowe moliwoci, ktrych brakuje innym
bazom. Na niektre z tych zalet skadaj si lepsze podstawowe moliwoci techniczne bazy danych.
Ponadto SAP HANA znacznie wykracza poza tradycyjne bazy danych, oferujc kompletn platform aplikacyjn i
rozwojow, jak rwnie poszerza moliwoci w takich dziedzinach, jak przeszukiwania, predictive analysis itd. Dlatego
te budowa aplikacji z wykorzystaniem tych szczeglnych zalet pozwoli programicie na stworzenie najbardziej
innowacyjnych rozwiza.
SAP HANA znacznie wykracza poza tradycyjne bazy danych, oferujc kompletn platform aplikacyjn i rozwojow,
jak rwnie poszerza moliwoci w takich dziedzinach, jak przeszukiwania, predictive analysis itd.
Bez ogranicze
Jeszcze kilka lat temu, w tradycyjnej architekturze opartej na przestrzeniach dyskowych, napisanie zoonego
algorytmu, ktry jednoczenie wybiera surowe dane z 200 duych (100 milionw wierszy), unikatowych tabel i
wykonuje w locie poczenia, byo uwaane za gupie i wrcz niemoliwe.
A co, jeli to nie byoby gupie lub niemoliwe? Co, jeli ten algorytm ma ogromne znaczenie biznesowe dla
uytkownikw kocowych? Co, jeli nie byoby kary za napisanie tego algorytmu? Co, jeli mona by uzyska wyniki
tego typu oblicze w cigu kilku milisekund, a nie kilku godzin? Co jeli programista miaby dostpny superkomputer
do obliczania takiego algorytmu zawsze, kiedy tylko to potrzebne? Co jeli oprcz wykonania tych operacji w bazie
danych mona by przenie wszystkie inne warstwy aplikacji i prezentacji bezporednio do bazy danych, aby zapewni
prost, nieskomplikowan platform, w ktrej mona by uruchomi ca aplikacj?
Tego typu podejcie to rodzaj zmiany filozoficznej wymaganej do przejcia od programowania w wiecie ogranicze do
nowego wiata SAP HANA. W wiecie SAP HANA stare ograniczenia bazy danych i ograniczona moc obliczeniowa staj
si w duej mierze bez znaczenia. Granice takie jak to, gdzie koczy si baza danych, a zaczyna si serwer aplikacji, s
take silnie kwestionowane.
Abstrakcja
W wiecie SAP (a w wiecie ABAP szczeglnie), deweloperzy ucz si, aby cakowicie oddzieli swoje aplikacje od bazy
danych i traktowa j jako czarn skrzynk. Baza danych suy tylko do przechowywania danych, a silnik ABAP jest
podstawowym miejscem odpowiedzialnym za ca logik aplikacji i generowanie zapyta SQL. Programici ABAP czsto
dosownie nie maj pojcia, z jakiej bazy danych bdzie korzystaa ich aplikacja, dlatego te musz stosowa metody
optymalne, ale bez wskazania konkretnej bazy danych.
Niestety, czsto ze wzgldu na kompatybilno tworzonych rozwiza musz rezygnowa z moliwoci oferowanych
przez poszczeglne bazy danych. To skrajne oddzielenie logiki aplikacji i przechowywania danych jest jednym z
fundamentw rozwoju aplikacji ABAP od ostatnich 20 lat, przede wszystkim dlatego, e bya to najbardziej skuteczna
strategia SAP w podejciu do osignicia kompromisu pomidzy szerokim wsparciem dla wielu baz danych i
wydajnoci poszczeglnych aplikacji.

2 z 10

2014-06-26 16:58

Wersja do druku - Akademia Lepszego Biznesu

3 z 10

http://www.bcc.com.pl/drukuj.html?id=24&lid=7&eid=3165&title=A...

W przeciwiestwie do tego podejcia w wiecie SAP HANA wiadomo dokadnie, z jak baz danych bdzie
wsppracowa tworzona aplikacja. Wiadomo rwnie, e SAP HANA zostaa zoptymalizowana do zaspokojenia potrzeb
danej aplikacji. W konsekwencji nie tylko silnik ABAP moe korzysta z szybkoci pamici procesora, moe take
skorzysta z wszystkich moliwoci oferowanych przez SAP HANA dla oblicze i funkcji biznesowych.
Z SAP HANA wiele zada zwizanych z wydajnoci jest faktycznie realizowanych i przeprowadzanych na poziomie
bazy danych. A zatem SAP HANA pozwala programistom wnikn gboko w sam model danych. Ponadto jej funkcje
pozwalaj na wykonywanie intensywnych dziaa na poziomie danych, a nie w samej aplikacji, jak to byo do tej pory
w bazach danych opartych na dyskach.
Funkcje SAP HANA pozwalaj na wykonywanie intensywnych dziaa na poziomie danych, a nie w samej aplikacji,
jak to byo do tej pory w bazach danych opartych na dyskach
W starym paradygmacie programowania programici, projektujc aplikacj, piszc jej logik, przetwarzajc dane,
czsto pozostawiali baz danych zupenie nienaruszon. Taka aplikacja pobieraa potrzebne dane z bazy danych,
przetwarzaa je i przeksztacaa, nastpnie uruchamiaa obliczenia i algorytm, i wreszcie przedstawiaa uytkownikowi
wyniki kocowe.
W SAP HANA proces jest niejako odwrcony. Aplikacja odpowiedzialna jest tylko za logik biznesow. Wywoywana
funkcja jest odpowiedzialna w caoci za pobrania odpowiedzi z bazy danych. Przeksztacenia danych, algorytm i
obliczenia s wykonywane wewntrz bazy danych, a jedynie ich wynik jest przekazywany z powrotem do aplikacji.
Przeniesienie wszystkich operacji intensywnego przetwarzania danych na poziom bazy danych i wywoanie tych dziaa
jako funkcji z poziomu aplikacji sprawia, e caa architektura staje si znacznie bardziej elegancka i efektywna. W
rzeczywistoci firmy, ktre zdecydoway si na zastosowanie SAP HANA, odnotowuj popraw wydajnoci aplikacji o
setki tysicy razy.

2014-06-26 16:58

Wersja do druku - Akademia Lepszego Biznesu

http://www.bcc.com.pl/drukuj.html?id=24&lid=7&eid=3165&title=A...

To przejcie od przetwarzania danych na poziomie aplikacji do manipulacji danymi na poziomie bazy danych jest
niezbdne do korzystania z wszystkich moliwoci zawartych w SAP HANA. Oczywicie przy migracji na SAP HANA
mona nadal korzysta ze starych aplikacji i uzyskiwa nieco krtszy czas odpowiedzi, poniewa kolejna zaleta bazy
danych SAP HANA to fakt, e znajduje si ona w pamici. W momencie przeniesienia operacji intensywnie
wykorzystujcych dane bezporednio na poziom bazy danych SAP HANA mona uproci nie tylko architektur i
usprawni dziaanie aplikacji, mona rwnie zauway zdecydowan popraw ich wydajnoci.
Firmy, ktre zdecydoway si na zastosowanie SAP HANA, odnotowuj popraw wydajnoci aplikacji o setki tysicy
razy
Programowanie ABAP dla SAP HANA
Poniewa ABAP jest podstawowym jzykiem programowania aplikacji w rodzinie SAP Business Suite, odgrywa wan
rol w przeniesieniu obecnej bazy klienta do SAP HANA. W zwizku z tym wiele osb interesuje si, w jaki sposb
mog wykorzysta SAP HANA w SAP Business Suite i jak mog wykorzysta ABAP do wykorzystania moliwoci
oferowanych przez SAP HANA. Istnieje kilka rnych konfiguracji, w ktrych ABAP i SAP HANA mog pracowa razem,
aby stworzy i wykorzysta innowacyjne moliwoci w SAP Business Suite.
Poniej omwione zostanie kilka scenariuszy wykorzystujcych si SAP HANA w nowych i istniejcych aplikacjach SAP
Business Suite. Scenariusze te wahaj si od bardzo prostych aplikacji, niewymagajcych przerywania pracy systemu w
celu przyspieszenia problematycznych transakcji lub raportw, a do uruchamiania caego systemu SAP Business Suite
bezporednio z SAP HANA jako gwn baz danych.
SAP HANA jako dodatkowa baza danych
W tym scenariuszu przyjmijmy, e SAP HANA zostaa zainstalowana jako pomocnicza baza danych, a nie jako
zamiennik dla istniejcej. Nastpnie za pomoc replikacji mona przenie kopi danych z oryginalnie funkcjonujcej
bazy danych do systemu SAP HANA. Aplikacje ABAP mog zosta przyspieszone, poniewa bd one odczytywa dane
z kopii SAP HANA, zamiast z lokalnej bazy danych.

Najprostszym rozwizaniem dla wykonywania operacji SQL z poziomu jzyka ABAP w podczonej zewntrznej bazie
danych jest uycie zapyta Open SQL, ktre s doskonale znane programistom ABAP. Poprzez wypenienie
dodatkowych parametrw w skadni CONNECTION (dbcon) mona wymusi, aby instrukcja Open SQL zostaa
wykonana w podczonej, alternatywnej bazie danych.
Na przykad wemy prost instrukcj SELECT i wykonajmy j na bazie HANA:

4 z 10

2014-06-26 16:58

Wersja do druku - Akademia Lepszego Biznesu

http://www.bcc.com.pl/drukuj.html?id=24&lid=7&eid=3165&title=A...

Zalet tego rozwizania jest jego prostota. Poprzez jeden drobny dodatek do istniejcych komend SQL mona
przekierowa zapytania do SAP HANA. Minusem jest to, e tabela lub wgld, skd pobierane s dane, musi istnie w
Sowniku Danych ABAP (ABAP Data Dictionary).
W przypadku tego scenariusza nie jest to jednak duy problem, poniewa wszystkie dane znajdujce si w lokalnej
bazie danych ABAP s replikowane do SAP HANA. W tej sytuacji lokalne kopie tabel danych zawsze bd istnie w
sowniku ABAP. Naley jednak pamita, e w ten sposb nie mona uzyska dostpu do specyficznych dla SAP HANA
dodatkw, takich jak widoki analityczne (Analytic Views) i procedury bazy danych. Nie mona take uzyska dostpu
do adnych tabel, ktre istniej tylko i wycznie po stronie SAP HANA.
Poczenie ABAP do zewntrznej bazy danych poprzez Native SQL
W skadni jzyka ABAP jest rwnie moliwo wykorzystania Native SQL. W tym scenariuszu kod zawiera elementy
skadni SQL specyficzne dla konkretnej bazy danych. Proces ten pozwala na dostp do tabel i innych elementw bazy,
ktre istniej tylko w podstawowej bazie danych. Ponadto Native SQL zawiera skadni, ktra pozwala wywoa
procedury bazy danych. Powyszy przykad moemy przepisa przy uyciu Native SQL w nastpujcy sposb:

Wad stosowania jzyka Native SQL poprzez wykorzystanie komendy EXEC SQL jest to, e w takim podejciu brakuje
sprawdzenia poprawnoci tworzonych zapyta SQL. Ewentualne bdy nie zostan wychwycone do czasu wykonania
zapytania, co moe prowadzi do bdw wykonania ABAP (tzw. short dumps) w przypadku braku implementacji
obsugi tego typu wyjtkw w kodzie. To ograniczenie sprawia, e w przypadku wykorzystania Native SQL testowanie
rozwizania jest absolutnie niezbdne do zapewnienia poprawnoci dziaania.
Poczenie ABAP do zewntrznej bazy danych poprzez Native SQL ADBC
Trzeci scenariusz zapewnia korzyci z poczenia Native SQL poprzez EXEC SQL z wyeliminowaniem niektrych
ogranicze. W tym przypadku mamy do czynienia z pojciem ADBC ABAP Database Connectivity, na ktre w istocie
skada si cykl standardowych klas ABAP (CL_SQL*). Dziki metodom klas ADBC moliwe jest przesyanie
specyficznych dla bazy danych zapyta SQL i przetwarzanie wynikw, a take ustanawianie i administrowanie
poczeniem z baz danych, a to wszystko zostaje obudowane w kod upraszajcy skomplikowan skadni EXEC SQL.
Nasze przykadowe zapytanie mona przepisa w nastpujcy sposb:

5 z 10

2014-06-26 16:58

Wersja do druku - Akademia Lepszego Biznesu

http://www.bcc.com.pl/drukuj.html?id=24&lid=7&eid=3165&title=A...

W tym przypadku usuwamy jednokrokowy dostp do bazy danych dla kadego wiersza i zastpujemy odczytem caego
pakietu danych do naszej tabeli wewntrznej. Z punktu widzenia SAP HANA najwaniejszy jest fakt, e w przypadku
wykorzystania waciwoci ADBC moliwy jest dostp do niesownikowych (non-Data Dictionary) elementw bazy
danych, w tym procedur przechowywanych po stronie SAP HANA. Biorc pod uwag te zalety ADBC nad EXEC SQL,
SAP rekomenduje kadorazowe wykorzystywanie klas ADBC.
Powyszy przykad przedstawia bardzo proste zapytania SQL, jednake prawdziwe zalety stosowania SAP HANA jako
zewntrznej bazy danych mona odczu podczas wykonywania bardziej zaawansowanych zapyta (SELECT SUM
GROUP BY), dostpu do specyficznych atrybutw SAP HANA bd procedur bazy danych.
Prawdziwe zalety stosowania SAP HANA jako zewntrznej bazy danych mona odczu podczas wykonywania
bardziej zaawansowanych zapyta, dostpu do specyficznych atrybutw SAP HANA bd procedur bazy danych
SAP HANA jako podstawowa baza danych
Oczywicie SAP HANA moe by wykorzystywana jako podstawowa baza danych w kadym systemie opartym na
jzyku programowania ABAP. W ramach SAP Business Suite opartego na SAP HANA aplikacje oparte na ABAP (jak ERP)
mog by uruchamiane z SAP HANA jako podstawowym systemem zarzdzania baz danych. W tym przypadku jzyk
ABAP rwnie musia zosta rozszerzony, aby dostarczy nowe narzdzia i techniki oraz umoliwi programistom
bezporedni dostp do szczegowych funkcji SAP HANA.
Do tej pory przedstawilimy, w jaki sposb z poziomu ABAP mona uzyska dostp do zewntrznej bazy danych za
pomoc Open SQL oraz Native SQL. Wiemy rwnie, e Open SQL jest ograniczony tylko do obiektw zdefiniowanych
w sowniku ABAP (ABAP Data Dictionary). W odpowiedzi na te ograniczenia w ABAP 7.4 pojawio si nowe podejcie
pod nazw Data Dictionary Proxy Views sownikowe wgldy Proxy. Wgldy Proxy pozwalaj programistom na
tworzenie wpisw w sowniku ABAP, specyficznych dla wgldw SAP HANA Analytic, Attribute and Calculation views.
Programici mog korzysta z wgldw Proxy (Proxy Views), wpywajc na jako i atwo wykorzystania Open SQL
wobec wgldw specyficznych dla SAP HANA. Takie podejcie jest szczeglnie przydatne, gdy poczone jest z
pewnymi rodzajami typw ABAP jak Select-Options i Parameters.
Kolejna nowo w ABAP 7.4 dotyczca SAP HANA to procedury Proxy (Proxy Procedures). Procedury Proxy generuj
zarwno interfejs ABAP, jak i typy danych specyficzne dla procedur przechowywanych w SAP HANA. W tym celu
wprowadzona zostaa nowa skadnia ABAP (CALL PROCEDURE), dziki ktrej wywoanie procedury z SAP HANA
wyglda bardzo podobnie do wywoania moduu funkcyjnego ABAP.
Zarwno wgldy Proxy, jak i procedury Proxy sprawiaj, e wykorzystanie Native SQL staje si zbdne w przypadku
dostpu do funkcji specyficznych dla danej bazy danych. Dziki obu tym dodatkom programici musz wykona

6 z 10

2014-06-26 16:58

Wersja do druku - Akademia Lepszego Biznesu

7 z 10

http://www.bcc.com.pl/drukuj.html?id=24&lid=7&eid=3165&title=A...

zdecydowanie mniej pracy, aby zaprojektowa kod wykorzystujcy moliwoci SAP HANA. Pozwalaj one take na
popraw efektywnoci transferu danych pomidzy serwerem aplikacji ABAP a SAP HANA.

Przetwarzanie danych bliej bazy danych


Niezalenie od tego, czy SAP HANA uywana jest jako podstawowa, czy dodatkowa baza danych, programici musz
przyj rne strategie projektowania kodu, jeli chc wykorzysta wszystkie zalety SAP HANA. Programici ABAP
zazwyczaj unikaj skomplikowanych zapyta SQL na rzecz przetwarzania danych na poziomie serwera aplikacji ABAP.
Takie podejcie suyo programistom ABAP przez wiele lat. W celu pobrania danych z tabel zalenych od klucza
obcego w jzyku ABAP moemy napisa poniszy kod z wykorzystaniem instrukcji inner join:

Jednak wielu programistw wybraoby inne podejcie, w ktrym poczenie danych zostanie wykonanie na poziomie
serwera aplikacji poprzez wykorzystanie tabel wewntrznych:

Takie podejcie moe by korzystne, jeli wykorzystywane w zapytaniu tabele s buforowane. Powysze przykady
su pokazaniu dostpnych wzorcw projektowych, a nie technicznych aspektw tych zapyta.
W jaki sposb zmieni si podejcie programisty, jeli dodamy do tego jeszcze SAP HANA? W przypadku HANA
programista powinien dy do przeniesienia jak najwikszej liczby operacji na poziom bazy danych. Mona postawi
sobie pytanie, dlaczego?
Aby na nie odpowiedzie, naley pamita, e SAP HANA to baza danych typu In-Memory. Kady programista doceni
zalety konsolidacji wszystkich danych w szybkiej pamici, w przeciwiestwie do przechowywania danych w stosunkowo
wolnej przestrzeni dyskowej. Gdyby jednak bya to jedyna zaleta oferowana przez SAP HANA, trudno byoby zauway
ogromn rnic w porwnaniu do przetwarzania w ABAP. Ostatecznie ABAP rwnie oferuje pene buforowanie tabel
w pamici.
Pozostae kluczowe punkty architektury SAP HANA to, obok przetwarzania w pamici, przechowywanie danych w
kolumnach i przetwarzanie rwnolege. W ptli ABAP dla tabeli wewntrznej kady rekord tabeli musi by przetwarzany

2014-06-26 16:58

Wersja do druku - Akademia Lepszego Biznesu

http://www.bcc.com.pl/drukuj.html?id=24&lid=7&eid=3165&title=A...

sekwencyjnie, po jednym rekordzie na raz, a obecna wersja skadni ABAP nie zostaa zaprojektowana do przetwarzania
rwnolegego. Zamiast tego ABAP wykorzystuje wiele procesw serwera, uruchamiajc rne sesje uytkownikw w
oddzielnych procesach (work process).
W przeciwiestwie do tych ogranicze SAP HANA moe rwnolegle przetwarza bloki danych w pojedynczym
zapytaniu. Fakt, e dane przechowywane s w pamici, dodatkowo wspiera przetwarzanie rwnolege przez atwiejszy i
szybszy dostp procesora do danych. Rwnolege przetwarzanie wcale nie bdzie pomocne w momencie, gdy procesor
spdza wikszo czasu bezczynnie, czekajc na dostp do danych.
Kolejny istotny aspekt techniczny to kolumnowa architektura SAP HANA. Gdy dane przechowywane s w formie tabeli
w kolumnach, wszystkie dane dla jednej kolumny przechowywane s w pamici. W przeciwiestwie do
przechowywania danych w wierszach tak jak przetwarzane s tabele wewntrzne ABAP do pamici adowany jest
tylko jeden wiersz na raz.
Zatem, dla wyej wspomnianego warunku poczenia (Join), wartoci dla kolumny CARRID w kadej tabeli mog
zosta odczytane szybciej ze wzgldu na sposb rozmieszczenia danych. Przeszukiwanie niepotrzebnych danych w
pamici nie jest a tak obciajce jak wykonanie tej samej operacji na dysku (ze wzgldu na konieczno oczekiwania
na obrt talerza). Przechowywanie danych w kolumnach zmniejsza koszty wykonania takich czynnoci jak
przeszukiwania jednej lub wicej kolumn, a take optymalizacja procedur kompresji.
Z tych powodw programici (a zwaszcza programici ABAP) musz przemyle stosowane wzorce projektowe. Aby
wykorzysta maksimum korzyci, jakie oferuje SAP HANA, musz oni rwnie przenie na poziom bazy danych
wikszo operacji wykonywany do tej pory po stronie ABAP. Wie si to z wikszym wykorzystaniem zapyta SQL i
czstszymi interakcjami z baz danych. W ten sposb baza danych staje si kolejnym narzdziem programistycznym,
ktrego moliwoci powinny by w peni wykorzystywane.
SAP HANA Extended Application Services (XS)
Razem z SAP HANA SP5, SAP wprowadza nowe moliwo pod nazw SAP HANA Extended Application Services (zwane
rwnie XS lub XS Engine). Koncepcja tego rozwizania opiera si na osadzeniu w peni funkcjonalnego serwera
aplikacji, serwera WWW i rodowiska programistycznego w ramach SAP HANA. Nie jest to tylko element
oprogramowania zainstalowany na tym samym urzdzeniu co SAP HANA, a w peni zintegrowana nowa funkcjonalno
usug aplikacyjnych na poziomie bazy danych SAP HANA. Dziki tej innowacyjnej architekturze zwiksza si wydajno
aplikacji i moliwy jest dostp do wielu specyficznych cech SAP HANA.
Przed wprowadzeniem SAP HANA SP5, aby zbudowa prost stron internetow lub usug korzystajc z SAP HANA,
konieczne byo wykorzystanie innego serwera aplikacji w rodowisku systemw (system landscape), np. poprzez
wykorzystanie SAP NetWeaver ABAP lub SAP NetWeaver Java poczonego z SAP HANA, aby przekaza do niego
zapytania SQL. Ten mechanizm jest nadal moliwy, zwaszcza gdy istniejce aplikacje rozszerzane s o nowe
funkcjonalnoci SAP HANA taka integracja jest atwa do wykonania i niesie za sob minimalne ryzyko zakce.
Gdy jednak nowe specyficzne dla SAP HANA aplikacje budowane s od postaw, warto rozway opcj wykorzystania
SAP HANA XS. Z t now architektur moliwe jest tworzenie i wdraanie aplikacji cakowicie niezalenych w ramach
SAP HANA. To podejcie pozwala na obnienie kosztw tworzenia oprogramowania, zapewniajc jednoczenie wysok
wydajno rozwiza, poniewa sama aplikacja i kontrola logiki przebiegu programu znajduj si tak blisko bazy
danych.

8 z 10

2014-06-26 16:58

Wersja do druku - Akademia Lepszego Biznesu

9 z 10

http://www.bcc.com.pl/drukuj.html?id=24&lid=7&eid=3165&title=A...

SAP HANA Studio nowe rodowisko programistyczne


Aby wesprze programistw w tworzeniu aplikacji i usug bezporednio w SAP HANA XS, firma SAP rozszerzya SAP
HANA Studio o wszelkie niezbdne narzdzia. SAP HANA Studio to narzdzie oparte na Eclipse (platformie do tworzenia
aplikacji, zintegrowanym rodowisku programistycznym). Dziki tym dodatkom moliwe jest zarzdzanie caym cyklem
ycia wszystkich elementw (zasobw) programistycznych (wgldy SAP HANA, procedury SQLScript, role, HTML i
zawarto JavaScript itp.).
SAP HANA Studio zostao rozszerzone o nowe elementy zwane SAP HANA Development. Dodatki takie jak kreator
projektw, autouzupenianie kodu i podwietlanie skadni, integrowany debugger itp. zwikszaj produktywno
programistw.
Wszystkie prace programistyczne w tym rodowisku wykorzystuj moliwoci standardowo dostpne na platformie
Eclipse takie jak praca zespoowa. Pliki projektowe przechowywane s w repozytorium SAP HANA wraz z wszelkimi
innymi zasobami. Czonkowie zespou mog korzysta z przegldarki repozytorium SAP HANA, aby sprawdza
istniejce projekty i importowa je bezporednio do lokalnych obszarw roboczych. Nastpnie programici mog
pracowa na lokalnych wersjach kodu, czsto w tym samym czasie. W momencie ponownego zapisu kodu do
repozytorium SAP HANA narzdzie wykryje wszelkie konflikty, a programici mog na bieco scala fragmenty kodu
bezporednio w repozytorium.
Repozytorium SAP HANA obsuguje rwnie aktywne/nieaktywne obiekty obszaru roboczego. Dziki tej funkcji
programici mog bezpiecznie zapisywa swoje prace na serwerze, bez natychmiastowego nadpisywania aktualnej
wersji. Nowa wersja kodu nie zostanie stworzona, dopki programista nie aktywuje obiektu repozytorium.
SQLScript
Jak ju wspomniano, podstaw optymalizacji dla aplikacji przenoszonych do systemu SAP HANA jest przeniesienie jak
najwikszej liczby operacji na poziom bazy danych. Realizacja tego celu rozpoczyna si z wykorzystaniem
standardowego jzyka zapyta SQL. Jeli jednak chcemy tworzy logik biznesow na poziomie bazy danych,
konieczna jest rwnie semantyka, ktra przekracza moliwoci SQL. W tym celu SAP dostarcza wanie takie
rozszerzenie SQL o nazwie SQLScript.
SQLScript jest podstawowym jzykiem do tworzenia procedur skadowanych i funkcji w SAP HANA. Dziki
rozszerzeniom dostarczanym przez SQLScript programici maj moliwo przeniesienia wikszej liczby operacji na
poziom bazy danych.
Typowe zapytania SQL znakomicie nadaj si do przetwarzania rwnolegego dziki swojemu deklaratywnemu
charakterowi. Podstawowa sabo SQL staje si oczywista, gdy wyniki jednego zapytania naley przekaza jako dane

2014-06-26 16:58

Wersja do druku - Akademia Lepszego Biznesu

http://www.bcc.com.pl/drukuj.html?id=24&lid=7&eid=3165&title=A...

wejciowe do kolejnego zapytania. W tym przypadku programici maj dwie moliwoci: skopiowa wyniki zapytania
do serwera aplikacji albo napisa skomplikowane, zagniedone zapytania SQL z wykorzystaniem podzapyta lub wielu
warunkw pocze.
SQLScript rozwizuje ten problem poprzez dostarczenie moliwoci przekazywania danych z jednego zapytania SQL do
kolejnego. Dziki tej funkcji programici mog pisa kod analogiczny jak w przypadku wykorzystania serwera aplikacji,
a take deklarowa zmienne i wykorzystywa porednie wyniki zapyta. Dodatkowo SQLScript moe by czsto czony
z podzapytaniami i poczeniami rnych tabel (joins). Dziki tym funkcjom programici otrzymuj skadni, ktra jest
mniej skomplikowana i bardziej czytelna, jednoczenie zapewniajc logik przystosowan do bazy danych.
Rwnoczenie SQLScript unika wysyania ogromnych kopii danych do serwera aplikacji, a wykorzystuje skomplikowane
przetwarzanie rwnolege w bazie danych.
W porwnaniu ze standardowym SQL, SQLScript ma kilka zalet. W rezultacie przetwarzania procedury mog zwraca
wiele wynikw, podczas gdy zapytanie SQL moe zwrci tylko jeden zestaw wynikw. Kolejna zaleta to podzia
zoonych zapyta SQL na mniejsze kawaki. Dziki temu moliwe jest programowanie moduowe, ponowne
wykorzystywanie funkcji i lepsza zrozumiao kodu.
Dodatkowo standardowa skadnia SQL pozwala tylko na definicj wgldw SQL, jednak te wgldy nie maj ani
parametrw, ani staego interfejsu. Kolejn przewag SQLScript jest obsuga zmiennych lokalnych bez jawnie
okrelonych typw. W standardowym SQL widoczne globalne wgldy musz by zdefiniowane, nawet gdy
wykorzystywane s tylko do przechowywania porednich wynikw zapyta. Idc dalej, SQLScript posiada logik
sterowania tak jak if/else, niedostpn w standardzie SQL. Wreszcie SQLScript moe zwiksza ogln wydajno
poprzez wykorzystanie przetwarzania rwnolegego w ramach wikszoci wykona kodu napisanego przy uyciu
SQLScript.

Powyej zostay przedstawione najistotniejsze aspekty pracy programisty z rodowiskiem SAP HANA. Tworzenie
aplikacji w ramach SAP HANA to bardzo zoony temat, jednak skala moliwoci rozwoju oprogramowania w tej
technologii jest ogromna. Maksymalna uyteczno aplikacji przy maksymalnym wykorzystaniu infrastruktury bazy
danych otwiera zupenie nowe perspektywy rozwoju rozwiza dla biznesu.

Liczba wywietle: 166 || rednia ocena: 0 || Oce artyku:

Wszelkie prawa zastrzeone.


Business Consulting Center sp. z o.o.

10 z 10

Kontakt: tel. +48 (61) 827 70 00, fax +48 (61) 827 70 01
e-mail: bcc@bcc.com.pl

2014-06-26 16:58

You might also like