BC:xkafka1: Porovnání verzí

Z FI WIKI
Přejít na: navigace, hledání
(Analýza požadavku z hlediska XSL-FO transformací)
m
 
(Není zobrazeno 24 mezilehlých verzí od 3 dalších uživatelů.)
Řádka 1: Řádka 1:
== Systém pro generování objednávek - předběžné zadá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.
 
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 na užitečné informace + moje poznámky ==
+
== Odkazy ==
  
 
[http://www.onjava.com/lpt/a/6208 What is a Portlet]
 
[http://www.onjava.com/lpt/a/6208 What is a Portlet]
Řádka 26: Řádka 30:
 
Portál od SUNu
 
Portál od SUNu
  
== UML ==
+
== [[BC:xkafka1:UML | 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)
 
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)
  
=== Use Case ===
+
== Analýza požadavku z hlediska XSL-FO transformací ==
  
[[Soubor:Uc1.png|První Use Case]]
+
=== [http://xmlgraphics.apache.org/fop/ Apache FOP] ===
  
 +
Apache FOP je projektem od Apache Foundation, zkratka znamená (Formatting Objects Processor)
  
==== Popis pro Use Case ====
+
'''Klady tohoto řešení:'''
  
''Uživatel:'' dá pokyn k vytvoření dokumentu
+
* propracovanost
 +
* jednoduchost
  
''Systém:'' zobrazí výběr typu dokumentu
+
'''Zápory tohoto řešení:'''
  
''Uživatel:'' vybere typ dokumentu
+
* 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
  
''Systém:'' zobrazí formulář dokumentu se zpřístupněnými údaji
+
=== [http://cocoon.apache.org/2.1/ Apache Cocoon] ===
  
''Uživatel:'' dá pokyn k zobrazení dokumentu
+
Apache Cocoon je komplexní web framework, zahrnuje v sobě mimo jiných aplikací od Apache Foundation i [http://xmlgraphics.apache.org/fop/ Apache FOP]
  
''Systém:'' nabídne typ transformace dokumentu
+
'''Klady tohoto řešení:'''
  
''Uživatel:'' vybere formát dokumnetu
+
* robustnost, komplexnost
 +
* obsahuje portál (zatím se mi to nepodařilo, úspěšně otestovat)
  
''Uživatel:'' založí novou firmu do DB
+
'''Zápory tohoto řešení:'''
  
''Systém:'' zaregistruje firmu do DB
+
* robustnost je na úkor složitosti
 +
* portál se mi zatím nepodařilo správně nakonfigurovat
  
=== Activity Diagram ===
+
=== [http://jasperforge.org/sf/projects/jasperreports JasperReports] ===
  
[[Soubor:Ad1.png|Activity Diagram]]
+
JasperReports je propracovaný systém reportování, je to opensource projekt
 +
 
 +
[http://www.netbeans.org/kb/55/vwp-reports.html JasperReports v NetBeans] použití JasperReports ve webové aplikaci
 +
 
 +
'''Klady tohoto řešení:'''
 +
 
 +
* jednoduše použitelné v [http://jasperforge.org/sf/projects/jasperreports NetBeans]
 +
 
 +
'''Zápory tohoto řešení:'''
  
== Údaje potřebné pro dokumenty ==
+
* 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 ==
 +
 
 +
=== [http://portals.apache.org/pluto/ 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
 +
 
 +
=== [http://java.sun.com/javaee/downloads/index.jsp 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).
 +
 
 +
=== [http://www.jboss.org/products/jbossportal 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
 
Souhrn toho co by měla správná objednávka/faktura obsahovat
  
=== Značení: ===
+
'''Poznámky ke značení:'''
  
 
* povinné údaje (R) REQUIRED
 
* povinné údaje (R) REQUIRED
Řádka 69: Řádka 111:
 
* opakovaný údaj {údaj}
 
* opakovaný údaj {údaj}
  
=== Objednávka ===
+
==== Objednávka ====
  
 
* Číslo objednávky (R)
 
* Číslo objednávky (R)
Řádka 80: Řádka 122:
 
* Poznámka (O)
 
* Poznámka (O)
  
=== Faktura ===
+
==== Faktura ====
  
 
* Číslo faktury (R)
 
* Číslo faktury (R)
Řádka 91: Řádka 133:
 
* Celková cena s DPH (R)
 
* Celková cena s DPH (R)
 
* Poznámka (O)
 
* Poznámka (O)
 
== Analýza požadavku z hlediska XSL-FO transformací ==
 
 
=== Apache FOP ===
 
 
[http://xmlgraphics.apache.org/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
 
 
=== Apache Cocoon ===
 
 
[http://cocoon.apache.org/2.1/ Apache Cocoon] je komplexní web framework, zahrnuje v sobě mimo jiných aplikací od Apache Foundation i [http://xmlgraphics.apache.org/fop/ 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 ===
 
 
[http://jasperforge.org/sf/projects/jasperreports JasperReports] je propracovaný systém reportování, je to opensource projekt
 
 
'''Klady tohoto řešení:'''
 
 
* jednoduše použitelné v [http://jasperforge.org/sf/projects/jasperreports NetBeans]
 
 
'''Zápory tohoto řešení:'''
 
 
* práce se složitějšími prvky (dost možná je to mými malými zkušenostmi)
 
 
== Portály, analýza, výběr nejvhodnějšího ==
 

Aktuální verze z 14. 4. 2007, 14:39

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)