středa 9. května 2012

Jak nainstalovat vlastní SAP

K SAPu se člověk nedostane jen tak. Většinou je to spjato s jeho působením v nějaké organizaci, která SAP už používá nebo právě zavádí. Konzultanti dodavatelské firmy provedou potřebnou implementaci systému, což je většinou spojeno s už hodně otřepaným vtipem, že když firma přežije nasazení SAPu, přežije pak už vše:) .

Z důvodu použití transportního systému mezi vývojovým, testovacím a produkčním systémem není dobré ani jeden z nich používat pro vysloveně nezřízené pokusy.

Pro tyto případy je výhodné si postavit vlastní pokusný systém (SANDBOX), který je úplně nezávislý na ostatních. Pokusný systém si můžete zřídit i v případě, že nevlastníte žádnou licenci SAPu.

Na komunitní stránce http://www.sdn.sap.com/irj/scn/nw-downloads je k dispozici několik různých verzí SAP NetWeaver Application Server ABAP pro linux nebo windows v licenci 90 dní trial nebo developer edition (viz. licenční podmínky).


Nejjednodušší variantou je instalace pro Windows. Není problém instalovat na Win XP, pouze na začátku instalace je potřeba ignorovat varování, že nesplňujete systémové požadavky.

Podrobný tutoriál instalace třeba někdy příště - dnes uvádím video, které instalaci pěkně krok po kroku popisuje i s komentářem a není problém podle něj SAP nainstalovat (vyzkoušeno).


úterý 8. května 2012

SAP HANA a In-memory databáze

SAP HANA

V poslední době se začíná hodně mluvit o technologiích in-memory databází. SAP se tohoto technologického trendu chytil a hodlá s ním změnit svět databází, jak si můžeme přečíst na serveru ŽIVĚ.CZ. Jestli je to při současném čtyřprocentním podílu SAPu na trhu databází přehnaný optimismus nebo správná vize, uvidíme za pár let. Nedá se ale předpokládat, že by Oracle, IBM nebo Microsoft dali svou kůži lacino.

Co jsou to in-memory databáze

In-memory databáze (IMDB) nebo také main memory databáze (MMDB) používá jako primární úložiště dat operační paměť počítače. Tato technologie výrazně zrychlí zpracování dat oproti standardnímu přístupu na pevný disk. SAP uvádí u své technologie HANA, že je 1200 x rychlejší než doposud používané databáze a jedno jádro CPU dokáže projít 2 miliony záznamů za 1ms. To sebou nese velké nároky a samozřejmě i náklady na velikost operační paměti, protože všechna data jsou uložena pouze v ní.

Všechna data jsou tedy uložena pouze v operační paměti počítače a nikde jinde. Mnohonásobně nám to urychlí zpracování dat, ale co se stane v případě výpadku napájení, pádu systému nebo jen chybě obsluhy s daty? Každý systém je potřeba čas od času restartovat nebo upgradovat a je tedy potřeba nějak vyřešit, co se v té chvíli stane s daty. Na to existuje několik možných řešené v podobě snapshotů databáze, archivování změn databáze pro případnou obnovu, použítí NVRAM (Non-volatile random access memory) - uchová informace i po výpadku napájení nebo použítí technologie vysoké dostupnosti.



Zdroje:

[1] - http://en.wikipedia.org/wiki/In-memory_database
[2] - http://www.sap.com/solutions/technology/in-memory-computing-platform/hana/overview/index.epx

pondělí 7. května 2012

Jak funguje jádro SAP ?

SAP = ABAP + JAVA

(zdroj obrázku: help.sap.com)

Aby administrátor systému SAP byl schopen porozumět příčině chyb a uměl je řešit, potřebuje vědět, jak funguje jeho jádro. V tomto článku se tedy pokusím objasnit základní principy fungování technické komponenty SAP Web Application Server (dále SAP Web AS).

Původně byl sytém SAP Web AS založen na programovacím jazyku ABAP (Advanced Business Application Programming) a jeho běhovém prostředí. Tento jazyk byl navržen tak, aby se jeho syntaxe co nejvíce podobala běžnému jazyku a pomocí něj se dá dělat jak kompletně nový vývoj zákaznických aplikací, tak úprava standardních aplikací SAP.

Od verze SAP Web AS 6.20 má systém dvě běhová prostředí. K ABAPu se přidala JAVA 2 Enterprise Edition (J2EE). Obě prostředí pracují nezávisle a vývoj pro ně probíhá v rozdílných programovacích nástrojích. Při instalaci SAP Web AS je možné specifikovat, které z daných (případně obě) prostředí chcete používat.


Architektura

Architektura SAP Web AS je třívrstvá, tj. různé části (vrstvy) logiky systému lze provozovat odděleně, což velice pomáhá na velkých systémech při rozložení výpočetního výkonu na více serverů.

Databázová vrstva

Databázový stroj (databáze) může být nainstalován na samostatném serveru a představuje tak samostatnou vrstvu systému. SAP podporuje mnoho databází - Oracle, IBM DB2, MaxDB, MS SQL Server ..

Jako příklad teto vrstvy můžeme uvést, že v databázových tabulkách se uchovávají data o zákaznících.

Aplikační vrstva

Aplikační vrstva představuje prostředí pro vykonávání programové logiky (programů) na straně serveru. Jak bylo už napsáno, může to být v prostředí ABAPu nebo Javy

Příkladem této vrstvy může být požadavek uživatele, který chce vědět, za kolik peněz odebral daný zákazník zboží za minulý rok. Aplikační logika (program) nejdříve požádá databázi o všechny záznamy faktur za minulý rok pro daného zákazníka. Po té je záznam po záznamu projde, vyloučí např. neplatné faktury, zbytek sečte a dostane tak požadovanou informaci.

Prezentační vrstva

Prezentační vrstva má za úkol předat informaci uživateli. V systému SAP, tak může prezentační vrstvu představovat webový prohlížeč,  SAP GUI (klientský program nainstalovaný v počítači) nebo dnes oblíbené aplikace pro mobilní telefony a tablety.


Instance SAP

Instanci obecně můžeme kostrbatě definovat, jako samostatnou jednotku obsahující všechny nezbytné části a služby pro fungování systému. V naprosté většině případů je jedna instance rovna jednomu aplikačnímu serveru. Někdy se tedy tyto pojmy nesprávně zaměňují.  

V systému SAP musí existovat vždy jedna centrální instance, která zajišťuje pro sebe a ostatní instance základní služby (např. přidělování uživatelů, zamykání objektů atd.). Dále může systém obsahovat další instance, které slouží pro rozložení výkonu na více serverů.

Protože je centrální instance životně důležitá pro chod systému, někdy se konfiguruje tak, aby na ni nebyli přihlašování koncoví uživatelé. Tím se zvyšuje spolehlivost celého systému, protože pád jiné (necentrální instance) např. v důsledku přetížení, pak nemá vliv na chod ostatních instancí. Výpadek tedy poznají pouze uživatelé jedné (přetížené) instance.

ABAP instance

(zdroj obrázku: www.sap.com)

Dispatcher

Každá ABAP instance obsahuje jeden dispatcher, což je komponenta, která přijme požadavek od uživatele a předá ji ke zpracování příslušnému work processu. Zajišťuje tedy rozložení výkonu v rámci instance. Nemůže se tedy např. stát, že jeden požadavek uživatele vytíží systém na 100% a omezí tak ostatní uživatele.

Work processes (WP)  

WP jsou samostatné jednotky vykonávající požadavek ( např. zmiňovaný součet všech faktur zákazníka za minulý rok). Pro představu je můžeme přirovnat k serverovým procesům. 

Jeden WP má alokované pouze určité zdroje a nemůže tedy plně vytížit celý systém a omezit tak práci ostatních uživatelů.

WP je několik druhů, podle toho jaký úkol provádějí ( dialog, update, background, enqueue, spool ).

Message Server (MS)

Zajišťuje komunikaci mezi jednotlivými instancemi a přidělujeme jim přihlášené uživatele. Rozděluje tak zátěž na více aplikačních serverů. Message server je v systému právě jeden a běží na centrální instanci.


ABAP + JAVA instance

Detailní popis samostatné JAVA instance je na samostatnou kapitolu. Uvedu proto jen popis koexistence ABAPu a JAVY v rámci jedné instance.

(zdroj obrázku: www.sap.com)

Jak je vidět na obrázku, požadavky uživatele přicházející ze SAP GUI odbavuje přímo ABAP dispatcher dané instance. Požadavky přicházející z webového prohlížeče přijímá nejdřív ICM (internet communication manager) dané instance a po té je přiděluje buď ABAP nebo JAVA dispatcheru, podle druhu požadavku.

Komunikace mezi ABAP a JAVA work processy zajišťuje JCo (Java Connector).