středa 11. července 2007

Přehledy pro vedení

Při práci na novém projektu realizujícím určitou byznys funkci se využívají všechny vhodné existující služby. Proto je důležité, aby vedení podniku mělo k dispozici celkový přehled prostředí organizovaný podle byznys funkcí, nikoli podle služeb nebo projektů. V minulosti, kdy každé silo sloužilo jako samostatná byznys funkce, byly řídicí panely a jiné nástroje pro podporu rozhodování provázány přímo s jednotlivými sily – v podstatě mohly být implementovány stejným projektovým týmem, který vytvořil danou aplikaci. Naproti tomu byznys-relevantní řídicí panely a nástroje pro podporu rozhodování v SOA potřebují shromáždit a zkombinovat informace ze všech vzájemně propojených služeb, z nichž se dnes skládá jedna byznys funkce. To vyžaduje odlišný přístup – obvykle jsou týmy a nástroje organizovány kolem byznys funkcí, nikoli svázány s jednou určitou službou nebo projektem, které vytvářejí silo.

čtvrtek 3. května 2007

Předvídejte problémy s vazbami

V prostředí SOA a byznys služeb musíte počítat s mnoha přesahy, vazbami a
propojeními, které drží distribuovaný podnik a heterogenní systémy pohromadě a které musí infrastruktura SOA spravovat, řídit a vizualizovat. Proto je při budování SOA nezbytné:

  • umožnit integraci jak nových, tak stávajících podnikových aplikací přes organizační hranice podniku,
  • zajistit nízkou latenci, vysokou spolehlivost a nepřetržitou dostupnost výpočetních prostředků a komunikačního prostředí,
  • mít možnost vynucovat pravidla pro bezpečnost, zajištění souladu se zákony a předpisy a pro podnikání, a to u mnoha služeb najednou,
  • zajistit, aby uživatelé mohli vždy využívat předem danou a odsouhlasenou úroveň výkonnosti,
  • vyřešit stále rostoucí problémy s datovými formáty a sémantickou nekonzistentností v rámci SOA architektury.

pátek 13. dubna 2007

Máme více než 4500 SOA zákazníků

Kdo ze současných hráčů může toto konstatovat? Zcela překvapivě Software AG po své více než půl miliardové (USD) akvizici společnosti webMethods. Analytiky je tato akvizice hodnocena velmi pozitivně, protože se budou "karty na trhu rozdávat znovu" a najednou je zde další globální poskytovatel SOA, který bude dělat starosti Oraclu, SUNům či IBM. Domnívám se, že velmi cenné pro Software AG budou zejména získané SOA registry/repository (původně Infravio) a technologie pro správu a řízení metadat (původně Cerebra).

úterý 10. dubna 2007

Krysy nebo špagety?

V poslední knize zakladatelů společnosti Zapthink J. Bloomberga a R. Schmelzera nazvané „Service Orient or Be Doomed!“ používají oba autoři pro těsně svázané systémy-aplikace velmi zvláštní označení „krysí hnízdo“. Až dosud jsem se domníval, že označení „špagety“ nebo „spaghetti-western“ je vcelku zavedený příměr odpovídající skutečnosti a softwaroví dodavatelé integrace ani zákazníci s jeho užíváním nemají problémy. Zkuste ale přijít za potenciálním zákazníkem a zhodnotit jeho současný stav tím, že jeho lidé vytvořili těsným propojením aplikací krysí hnízdo. Myslím, že je to spolehlivá cesta, jak nadějné jednání rychle ukončit.
Kniha jako taková je jinak dobře čitelná a vhodná spíše pro netechnicky orientované zájemce o SOA. Vypíchl bych vynikající postřeh autorů: Servisní orientace není konkrétní technologický koncept, ale spíše idea efektivního využití IT v podnikání.

úterý 27. března 2007

Architekturu nelze koupit

Jason Bloomberg, jeden ze zakladatelů analytické společnosti Zapthink zdůrazňuje ve svém článku ze dne 21.03.2007 klíčový aspekt SOA, který řadě zákazníkům i dodavatelům může unikat: "SOA je něco, co děláte, ne něco, co kupujete".
Je to jeden ze základních atributů SOA: architekturu zkrátka nelze koupit.

středa 21. března 2007

A máme tu další alianci

Tak a máme tu další SOA alianci: Karl-Heinz Streibich, CEO firmy Software AG, zamýšlí vytvořit alianci-síť evropských „niche“ poskytovatelů SOA řešení. Mělo by jít o jakousi protiváhu IBM, Oracle nebo SAPu. Bude zajímavé sledovat, kdo se stane členy tohoto SOA uskupení, neboť tím automaticky zařadí svoji organizaci mezi „niche“ poskytovatele SOA (sousto pro analytické společnosti). Pokud ale aliance prokáže akceschopnost, bude velmi zdravé, když budou velkým dodavatelům účinně šlapat na paty ti menší – a zařazení Progressu mezi „niche“ by mi pak vůbec nevadilo.

pondělí 19. března 2007

Nazývejme věci odpovídajícími termíny

Přečetl jsem si tiskovou zprávu Amberpointu viz http://www.amberpoint.com/releases/pr_158.shtml, v které je oznámena užší spolupráce se
společností Microstoft. Ať se oběma společnostem a jejich zákazníkům daří, ale ať prosím Microsoft nevydává BizTalk za podnikovou sběrnici služeb (Enterprise Service Bus)!
Microstoft BizTalk Server 200x Engine byl, je a asi i zůstane centralizovaným aplikačním serverem, na kterém běží příslušná aplikační/integrační logika-služby. Pokud je distribuovanost základním stavebním kamenem SOA, jak jí tedy v podání BizTalku lehce docílit? Instalací BizTalku všude tam, kde služby potřebuji? Jako zákazník bych tento problém nechtěl řešit.

neděle 18. března 2007

Objevili jste již svého agenta?

Optimální situace z hlediska SOA Governance je, pokud pro každou platformu, kde běží služby a procesy, existuje agent, který z XML komunikace mezi službami a procesy získává potřebné informace, které pak intervalově zasílá dohledového systému. Dohledový systém interpretuje tyto informace a naopak zpět agentům zasílá definice veškerých politik (SLA, KPI, ..), kterými jsou služby a procesy řízeny. Čím více takto specializovaných agentů máme, tím lépe dokážeme pokrýt rozmanitost a heterogenitu svého ICT prostředí. Současná nabídka od různých firem (Amberpoint, CAI, HP, IBM, Progress) se mi zdá nedostatečná, protože pokrývá zatím jen „SOA mainstream“ technologie: HTTP/SOAP messaging, JMS messaging, různé RMI, různé servletové J2EE technologie + EJB a AXIS. Co když jsou služby v SOI spíše datově orientované a pracují přes JDBC pouze s RDBMS bez aplikačního serveru? A co jiný než JMS messaging?

Je servisně orientovaná integrace drahá?

Pro řadu potenciálních uživatelů může být překvapivé, že SOI může být z krátkodobého hlediska jeden z nejdražších přístupů, které mohou zvolit. Budování SOA je ale běh na dlouhou trať, nekončícím procesem. Pokud se náklady rozloží do delšího období a porovnají se s ostatními možnými technologiemi, architekturami nebo přístupy, zjistí se, že SOI byla na počátku tohoto období drahý, ne-li nejdražší přístup. S přehledem však převálcuje všechny ostatní technologie v postimplementačních fázích – při údržbě a při realizaci změn. Nákladová křivka je zde velmi příznivá, protože změna se v SOI obvykle realizuje pouze změnou metadat - změnou kompozice služeb či redefinicí procesů. Po úpravě postačí reload, změna je implementovaná a proces běží dál podle nové definice. Výhodou tedy je, že změna zpravidla nemíří do zdrojových kódů, což je naopak typické pro ostatní přístupy. Viz graf.



Kdy pro vás SOA není přínosem

Pokud na kteroukoli z následujících otázek odpovíte ANO, pak SOA pro vás NENÍ přínosem:

  • IT prostředí je homogenní.
  • IT prostředí zůstává neměnné.
  • Čas zpracování je pro můj byznys nerozhodující.
  • Těsné svázání (špagety) je pro mě výhodou.

Demytizace jazyka BPEL

Vzhledem k tomu, jak se o jazyku BPEL (Business Process Execution Language) někdy hovoří i v odborném tisku a jak je potenciálními uživateli chápán, považuji za vhodné uvést následující komentář. BPEL je nyní zastřešován OASIS (původní myšlenka je z dílny IBM a Microsoft). Jeho hlavním posláním je poskytování notace pro specifikaci podnikových procesů založených na WS.
Již z této definice je zřejmé, že zaměřením pouze na WS se jazyku BPEL otevírá jen část SOA. Pomocí BPEL je velmi dobře možné realizovat dlouhé asynchronní byznys transakce včetně kompenzačních. Jazyk zvládá řízení toku dat (proměnné, korelace, cykly, větvení, spojení) i ošetření chyb a výjimek. Avšak již od prvních verzí si BPEL neumí poradit s:

  • interakcemi s lokálními objekty Javy nebo C#,
  • interakcemi s relačními databázemi,
  • interakcemi s uživatelem (žádná explicitní abstrakce pro uživatele, skupiny, role),
  • neexistujícím specifickým modelem pro měření, reporting nebo management,
  • neexistující explicitní podporou transformací,
  • neexistující explicitní podporou dalších protokolů a jiných služeb než WS.

Výše uvedené není kritikou, ale jen konstatováním faktu, že tato funkcionalita ani nebyla cílem autorů při tvorbě specifikace BPEL. Vzhledem k potřebám a požadavkům praxe však musela řada poskytovatelů BPEL později některé z těchto vlastností do svých produktů doplnit, čímž byl osud BPEL jako standardu zpečetěn.
Problém s přenositelností je pak stejný jako u jiných „standardů“ (SQL, JMS, JBI atd.) a oprávněná otázka zní: Jaký je rozdíl mezi takovým rozšířeným BPEL a proprietárním jazykem pro definici podnikových procesů od jakéhokoli softwarového dodavatele? V čem má pak takto rozšířený BPEL přidanou hodnotu pro zákazníka?
Navrch tak získává poskytovatel BPEL nástroje, který jedním hmatem chytne dvě mouchy: jednak může tvrdit, že dodržuje standardy (a svým způsobem má pravdu), jednak si ještě těsněji uváže daného zákazníka. Tato kombinace se pak stává nirvánou všech softwarových dodavatelů – a to nejenom u tohoto „standardu“.
Rozeberme ještě samotný akronym. „L“ je v BPEL zcela na místě – jedná se určitě o jazyk. „BP“ je také na místě – je zaměřen na automatizaci podnikových procesů. Právě „E“ je ale diskutabilní a může být i zavádějící. Může totiž vyvolávat dojem, že pomocí BPEL lze definovat samospustitelnou procesní logiku. Výsledkem definice BPEL procesu je ale „pouze“ dokument založený na XML, který musí být „nějakým způsobem“ transformován do proveditelné podoby.
Slova „nějakým způsobem“ znamenají, že každý z poskytovatelů BPEL nástrojů tuto cestu realizuje opět po svém. Někteří výrobci interpretují přímo XML definici, zatímco jiní tuto definici nejprve transformují do proprietárního formátu, kompilují a pak teprve provádějí. Teprve až po těchto krocích se tedy dostává ke slovu „E“, které je realizováno příslušným softwarovým strojem.

pátek 16. března 2007

Definice služby a komponenty

SOA se skládá ze tří písmen – A jsem se snažil vysvětlit zde, S jsem víceméně okomentoval zde. Zatím jsem neřekl, co je vlastně služba a co je komponenta. Existuje mnoho definic, dávám přednost těm co možná nejjednodušším:
„Služba = smluvní rozhraní do softwarové logiky.“
„Komponenta = softwarový artefakt vystavující příslušné rozhraní.“

Dá se SOA definovat?

Jak jsem napsal v předchozích postech, SOA není firma, produkt, technologie, natož nějaký standard. Pokud požádáte 10 softwarových dodavatelů o SOA definici, dostanete minimálně 12 odpovědí (osobní zkušenost).

Co je ESB a co ne?

Když byla v roce 2002 uvedena na trh sběrnice podnikových služeb, nikdo nevěděl, o co jde, a nikdo z velkých hráčů o ní nechtěl mluvit. Dnes se z ESB stal typický buzzword a nazývají se tak i věci, které evidentně ESB nejsou. Jak ale oddělit zrno od plev? Jak rozlišit, co je ESB a co ne?


Pokud chcete mít jistotu, zeptejte se dodavatele ESB, jaké je instanční prostředí pro jeho služby (tj. v čem jeho služby běží). Pokud odpověď zní: „Logiku ESB provozuje náš aplikační server,“ pak asi nelze hovořit ESB, resp. o distribuované sběrnicové topologii této technologie. Pokud někdo zkusil distribuovat aplikační server, ví, že jej musí instalovat všude, kde jej potřebuje. To je z pohledu dodavatele sice úžasné, protože prodá více licencí, ale nepřijatelné z pohledu zákazníka, protože za tyto licence musí zaplatit (netýká se opensourcových AS).
Pokud je odpověď ESB dodavatele: „Kontejner,“ nebo ještě lépe „Odlehčený JBI kontejner,“ jedná se o skutečně distribuovanou sběrnicovou topologii. Instanční prostředí kontejneru bývá typicky JVM, který pořídíte zdarma. Zpravidla ani instance služeb nepodléhají zpoplatněnému licenčnímu ujednání. V tomto konceptu se může distribuovat libovolně, přičemž za to zákazník neplatí. A v tom tkví přednost těch skutečných ESB – snadno docílit distribuovanosti služeb a procesů.

„A komu to prospěje?!“

WS-Addressing, WS-Agreement, WS-AtomicTransaction, WS-BaseFault, WS-BaseNotification, WS-BrokerNotification, WS-Context, WS-Coordination, WS-Coordination, WS-CoordinationFramework, WS-Discovery, WS-Enumaration, WS-Eventing, WS-Federation, WS-Choreography, WS-MessageDelivery, WS-MetadataExchange, WS-Notification, WS-Reliability, WS-ReliableMessaging, WS-Resources, WS-Security, WS-Topics, WS-Transaction, WS-TransactionManagement.....!