BC:xkafka1

Z FI WIKI
Přejít na: navigace, hledání

Zadání

Předběžné zadání

Systém pro generování objednávek

Cílem práce je navrhnout a implementovat systém pro generování objednávek/faktůr. Objednávka bude uložena ve formátu XML a pomocí XSL-FO transformace bude převedena do požadované výstupní formy v PDF či HTML. Systém bude implementovám pomocí Java EE a výstup bude realizován jako Portlet. Systém bude popsán pomocí UML 2.0 a řešen metodikou TDD.

Odkazy

What is a Portlet Článek na ONJava.com, o tom co jsou to portlety podle specifikace JSR 168

JSR 168: Portlet Specification Odkaz na specifikaci JSR 168

Apache Cocoon Web development framework

Jakarta Cactus Test framework pro webové aplikace

eXist Free XML databáze

JBoss Portál Portál JBoss

Sun Portál Portál od SUNu

xkafka1/UML

Pro přehlednost jsem UML diagramy zanořil o úroveň níž

Pozn.

UML je vytvářeno podle UML 2.0 v nástroji Visual Paradigm (až zjistím změny v UML 2.1, tak vše budu směřovat k této verzi standardu)

Analýza požadavku z hlediska XSL-FO transformací

Apache FOP

Apache FOP je projektem od Apache Foundation, zkratka znamená (Formatting Objects Processor)

Klady tohoto řešení:

  • propracovanost
  • jednoduchost

Zápory tohoto řešení:

  • přes XSL-FO generuje např PDF, ale HTML a podobné formáty se mi s ním ještě nepodařilo jednoduše vytvořit, nutnost XSLT vedle XSL-FO

Apache Cocoon

Apache Cocoon je komplexní web framework, zahrnuje v sobě mimo jiných aplikací od Apache Foundation i Apache FOP

Klady tohoto řešení:

  • robustnost, komplexnost
  • obsahuje portál (zatím se mi to nepodařilo, úspěšně otestovat)

Zápory tohoto řešení:

  • robustnost je na úkor složitosti
  • portál se mi zatím nepodařilo správně nakonfigurovat

JasperReports

JasperReports je propracovaný systém reportování, je to opensource projekt

JasperReports v NetBeans použití JasperReports ve webové aplikaci

Klady tohoto řešení:

Zápory tohoto řešení:

  • práce se složitějšími prvky (dost možná je to mými malými zkušenostmi) UPDATE: umí to i tabulky apod, nepředstavuje problém

Výhoda/nevýhoda - využívá svůj vlastní xml formát tzv. jrxml, výhoda v tom, že pak stačí jeden template pro různé výstupy (HTML/PDF), FOP (aspoň myslím) vyžaduje XSLT pro HTML a XSL-FO pro PDF, bez toho se mi transformace nedařili. Nevýhoda v tom, že nevím, jak moc se dá jrxml brát za standard, navíc objednávky i faktury chci udržovat v XML formátu (což by i snad mohlo jsrxml splňovat...)

Seznam požadavků na řešení

Portály, analýza, výběr nejvhodnějšího

Pluto

Je to v podstatě Tomcat 5.5.9 s rozhraním pro práci s Portlety, nepodařilo se mi bezchybně rozchodit nějaký Container pro Portlety, v rc4 už to bylo lepší, ale stále komplikované a ne zrovna vhodné pro práci

SunAppServer

Zatím nejúspěšněji se mi ale podařilo použít Sun Applicatin Server ve spojení se Sun Application Platform, kde jsem si cvičně rozchodil Portlet Container, i přesto, že je uváděn jako Beta, je s ním práce poměrně příjemná, vše splňuje specifikaci JSR 168 (viz odkazy).

JBossPortal

Propracovaný, přívětivý, snadno použitelný s NetBeans, ale PortletContainer je opět ještě ve stádiu vývoje

Poznámky

Údaje potřebné pro dokumenty

Souhrn toho co by měla správná objednávka/faktura obsahovat

Poznámky ke značení:

  • povinné údaje (R) REQUIRED
  • nepovinné údaje (O) OPTIONAL
  • opakovaný údaj {údaj}

Objednávka

  • Číslo objednávky (R)
  • Datum vystavení (R)
  • Zákazník (=firma) (R)
  • Datum dodání (O)
  • {Položka objednávky (=věc)} (R)
  • Celková cena bez DPH (R)
  • Celková cena s DPH (R)
  • Poznámka (O)

Faktura

  • Číslo faktury (R)
  • Datum vystavení (R)
  • Datum splatnosti (R)
  • Odběratel (R)
  • Příjemce (O)
  • {Položka faktury} (R)
  • Celková cena bez DPH (R)
  • Celková cena s DPH (R)
  • Poznámka (O)