Linux a jeho nasazení v oblasti e-business

Jakub Dadák, Brain Systems s.r.o.

Úvod

Kvalitní e-business řešení, neboli řešení pro podporu obchodních procesů ve firmě či organizaci, musí splňovat několik základních požadavků. Je to především  spolehlivost, funkcionalita, vysoká dostupnost  a bezpečnost dat. S ohledem na tyto požadavky musí být vhodně volena i platforma pro vývoj a provoz takového řešení. Tento příspěvek se bude věnovat Linuxu jako platformě, která již tyto parametry splňuje a je použitelná pro e-business Enterprise úrovně. Je koncipován především jako seznámení s některými významnými trendy a současně dostupnými technologiemi na Linuxu.

Historie aneb SQL databáze jako klíčová komponenta
	
Vzpomínám si velmi dobře na chvíle, když jsme začínali používat Linux v naší firmě a uvažovali o jeho nasazení v komerčních aplikacích. Bylo to v době kolem roku 1996 a Linux se nám tehdy jevil použitelný jako tzv. „Internet server“ tj. server pro  poštu, DNS, WWW a další služby. Zásadní problém jsme však spatřovali v absenci kvalitního SQL databázového serveru, který by podporoval transakce, uložené procedury atd. První vlaštovkou bylo použití Oracle serveru 7.x pro SCO za použití SCO emulátoru. S trochou odvahy bylo možné takový systém používat, ale stále to nebylo ono. Zřejmě prvním skutečně použitelným řešením byl SQL server Solid stejnojmenné Finské společnosti. Server podporoval většinu důležitých vlastností dobrého SQL serveru. Jedním z prvních velkých e-business projektů byla naše Linuxová implementace systému pro řízení sítě supermarketů a prodeje právě na Solidu. Jen pár měsíců poté se začali jako houby po dešti objevovat Linuxové verze světoznámých výrobců databází. První byl zřejmě Oracle, následovala Sybase, IBM DB/2 a další. Robustní a spolehlivá SQL databáze byl základní předpoklad pro vybudování e-business řešení na Linuxu. Pro řešení rozsahu Enterprise je robustní relační databáze podmínkou nutnou, nikoli však dostačující, a tak jsme se konečně dočkali i podpory transakčních aplikačních serverů. Linux se tak stává „Enterprise e-business ready“.

e-business transformace 

Společnost, která se rozhodne vydat cestou elektronické podpory podnikání (a zejména obchodování), prochází ve většině případů následujícími kroky. Od statické prezentace plynule přejde k využití Internetu jako plnohodnotného prodejního kanálu až k integraci do vnitřních systémů (ERP).

1)	Statická prezentace, marketingové WWW stránky
2)	Dynamická prezentace  (potřeba SQL databáze)
3)	On-line katalog
4)	Podpora objednávky zboží (potřeba kvalitní transakční  SQL databáze)
5)	Podpora zákaznických informací (přehledy objednávek, stav skladu atd.)
6)	One-to-one marketing, vysoká personalizace
7)	Plná Integrace s interním informačním systémem (potřeba stabilního transakčního prostředí s vysokou dostupností)

Jednotlivé fáze transformace vyžadují postupně vyšší nároky na zpracování celého řešení. Případný výpadek funkčnosti marketingových stránek má nepatrný vliv na chod firmy v porovnání s následky výpadku řešení, kterým protéká 50 a více procent obratu firmy a které používá většina zákazníků. V nejlepším případě se jedná „pouze“ o ušlý zisk, v těch horších případech i o ztrátu zákazníka. To je důvod proč e-business řešení v tak vysoké fázi integrace s interním systémem věnovat maximální pozornost a nemalé finanční prostředky pro zajištění stability a spolehlivosti. 

Jak se postupně vyvíjela dostupnost produktů, začínal být Linux schopen poskytovat aplikační prostředí pro stále vyšší stupně e-business transformace.

Aplikační prostředí pro WWW prezentaci firmy

Nejméně náročné prostředí. Postačuje kvalitní WWW server s podporou scriptování a případně databáze poskytující datovou základnu pro dynamické stránky. Transakčnost není nezbytná, postačují běžné volně dostupné databáze.

Http server

PHP module

DB

Internet

Aplikační prostředí pro elektronický obchod, on-line komunikaci s ERP

V tomto případě je třeba se vážně začít zabývat bezpečností a konzistencí dat. Nezbytná je kvalitní relační SQL databáze s robustní podporou transakcí. Aplikační vrstva obsahuje podporu pro XML/XSL, velmi vhodný prostředek pro komunikaci a manipulaci s daty.

Http server (SSLsupport)

PHP

DB

Internet

DB

DB

Servlet engine

XML/XSL parser

JDBC

Other conenctors

ERP

Aplikační prostředí pro Enterprise e-business řešení

Zde se již pohybujeme v prostředí kdy firma je na řešení životně závislá. Jakýkoli výpadek je nepřijatelný, konzistence dat musí být zaručena nadevší pochybnost, bezpečnost je klíčová. 
  
Požadavky lze rozdělit na aplikační SW, OS a HW.

Požadavky na OS a HW
•	stabilita
•	vysoká dostupnost (24 x 7 x 100000)
•	podpora fault tolerant, clustery, RAID pole, FS s žurnálem
•	výkon (SMP, multithreading, RISC)

Požadavky na aplikační SW
•	stabilita 
•	bezpečnost
•	škálovatelnost
•	podpora distribuovaných aplikací a transakcí
•	otevřenost
•	rychle nasaditelné, dobře zpravovatelné
•	vícenásobné využití, platformní nezávislost aplikací
•	podpora vývojového prostředí pro týmový vývoj

Konkrétním příkladem aplikačního software, který je schopen tyto požadavky splnit, může být IBM WebSphere Application Server 3.x (WAS).

es

                                             IBM WebSphere Application Sever

Dynamic server pages
•	HTML
•	Scripting
•	SS include

Dynamic server pages
•	HTML
•	Scripting
•	SS include

Dynamic server pages
•	HTML
•	Scripting
•	SS include

Servlet

Servlet

Servlet

EJB
Business
Objects

Dynamic content services
•	JSP
•	Scripting
•	SSI
•	XML
•	Transcoding (WAP, …)

Enterprise Java Beans

EJB
Servi-ces,
TX 
service

Cluster
Servi-ces

Connection
Manger

JDBC

Workload balancing

Java ORB

LDAP, JNDI, XML, Other connectors

Base http Server (SSL support)

F
I
R
E
W
A
L
L

SQL
DBs

Corba objects,
XML ifaces,…

EJB 
Applications

\v

Blokové schéma znázorňuje jednotlivé moduly aplikačního serveru a možnosti jeho komunikace s okolím. 

Základní vlastnosti WAS
•	podpora servletů, JSP
•	Enterprise Java Beans (EJB)
•	podpora distribuovaných transakcí
•	connection pooling
•	workload balancing
•	clustering
•	podpora komunikace s CORBA objekty, IIOP
•	podpora XML/XSL
•	podpora integrace s jinými systémy (message queueing)

Jak je zřejmé, hlavní roli hraje využití Javy jako objektově orientovaného platformě nezávislého jazyka. Java je využita pro programování Java Server Pages (JSP), Servletů, Enterprise Java Beans (EJB) a případně i Java scriptu. Právě EJB technologie podporuje ve spojení s Transaction Mangerem distribuované transakce (Two Phase Commit). Tato vlastnost zaručuje v každém okamžiku konzistenci operací nad více databázemi, jinými aplikačními servery či objekty a to i případě havárie některé z aplikací. Důležitým prvkem je Connection manager, jehož základním úkolem je udržovat a přidělovat spojení s databázemi (vytvoření spojení je velmi časově i zdrojově náročné). Workload balancing a clustering rozkládá zátěž na více aplikačních serverů v případě zvýšené zátěže.

Internet

DB

DB

DB

Network
dispatcher

WAS 1

WAS 2

WAS ..,N

Podpora komunikace s okolím je samozřejmostí (XML, podpora API základních ERP systémů).

Přestože cena HW v případech systémů této velikosti v porovnání s náklady na jejich vývoj a nasazení je velmi malá, není rozhodně zanedbatelná. Pro „rozumný“ chod EJB aplikace s desítkami uživatelů je třeba 2 a více procesorů nad  800 Mhz (databáze je na jiném stroji) a RAM od 1 GB výše. Cena SW  (aplikační server + databáze) začíná cca na 10 000 USD (shora neomezeno).

Teoreticky je možné uvažovat o řešení se „stejnou“ funkcionalitou (z pohledu uživatele) za promile ceny např. v konfiguraci Apache + PHP + PostgreSQL (MySQL). Prakticky jsou však rizika při provozu aplikace takové důležitosti neúnosná. Značné záruky, které musí provozovatel systému garantovat jsou jedním z důvodů. Ideální je zřejmě ona pověstná zlatá střední cesta při volbě vhodné platformy (jak hardwarové tak softwarové) se zvážením všech možných rizik a dopadů na firmu v případě problémů.

Závěr

Linux se za poslední rok začlenil do rodiny podporovaných OS většiny významných světových výrobců software. Jednoznačně se sním počítá i v oblasti velkých komerčních řešení. Velký tlak bude určitě směrován na vývojáře jádra a výrobce Linuxových distribucí, protože právě oni nevíce ovlivňují kvalitu po hardwaru nejspodnější vrstvy pro provoz významných e-business aplikací. Držme jim palce ať o Linuxu již nikdo nepochybuje.