1 / 19

Öppna Program RA - XForms utredning

Öppna Program RA - XForms utredning. 2009-05-11. Features Orbeon. Orbeon är en ajax-baserad , serverside X F orms-implementation . Stöd i browsern för X F orms är inte nödvändigt. Har även ett noscript-läge med begränsad funktionalitet. Open Source Kommers iell support

addo
Download Presentation

Öppna Program RA - XForms utredning

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Öppna Program RA - XForms utredning 2009-05-11

  2. Features Orbeon • Orbeon är en ajax-baserad, serverside XForms-implementation. • Stöd i browsern för XForms är inte nödvändigt. • Har även ett noscript-läge med begränsad funktionalitet. • Open Source • Kommersiell support • Licens: LGPL • Orbeon består av följande delar: • XForms Engine • XML pipeline Engine • Page Flow Controller (PFC) • XFormsbuilder (Alpha)

  3. Arkitektur Källa: http://www.orbeon.com

  4. Versioner • Senaste stabila: Orbeon 3.6 (dec 07) • Har en känd bugg ihop med Firefox 3 • Saknar stöd för att stänga av javascript • Ska enligt dokumentationen gå att deploya i JSR 168-portal (Liferay). Tycks dock ej fungera. • Orbeon 3.7 Beta 1 (aug 08) • Fortfarande problem att deploya på portal. • Latestbuild av 3.7 (20/3 2009) • Funkar på os-portal - dock ej på WebSphere Portal rakt av • Frågetecken – när kommer Orbeon 3.7 i en (tillräckligt) stabil version?

  5. Alternativa användningar • Använda hela Orbeon-sviten, inkl XML pipelines och PFC. • Innebär att man bygger hela ”applikationer” med Orbeon, inkl flödeslogik etc. • Applikationerna deployas ihop med/under orbeon.war. • Fördelar: • De flesta exemplen/dokumentationen från Orbeon bygger på detta. • Nackdelar: • Inlåsning till Orbeon. • När ska detta resp. RAs teknikstack användas? • Integration med Java/RA där endast Orbeon XForms Engine används. • Fördelar: • Vi kan byta ut Orbeon mot alt impl. • Naturlig uppdelning mellan RA och Orbeon. • Nackdelar: • De flesta exemplen och dokumentationen blir irrelevanta. • Inga exempel/dok hur man åstakommer detta för portlets • Kommentar: Orbeon är monolitisk: Det är inte dokumenterat om/hur OrbeonsXforms Engine kan brytas ut och deployas för sig. Man får lösa det med guidelines/restriktioner inom RA.

  6. 2 Orbeon som en XForms Engine • Två alternativa vägar: • Separat deployment • Orbeon.war och myWebApp.wardeployas sida vid sida. • Egenutvecklade XForms-formulär ligger i myWebApp, t ex under en specifik folder. • Ett servletfilter används för att redirecta/forwardarequests rörande dessa sidor till orbeon. • För att detta skall vara tillåtet måste ”crossContext” slås på. • MyWebApp behöver ha en jar-fil från Orbeon under web-inf/lib. • Integrerad deployment • Orbeon och myWebApp slås ihop i en war-fil. • Formulären deployas i denna war-fil (snarlik alt 1s deploy).

  7. 2a Separat deployment • Fördelar: • Lättare att uppgradera Orbeon om den deployas fristående • Slipper problem med krockar i 3:e partsbibliotek • Slipper problem med att Orbeon inte bygger på Maven • Endast en orbeon-jar-fil behövs i myWebApp. • Nackdelar: • Går ej att få till i portalmiljö (?). • ”CrossContext” måste tillåtas för webappen. • Ej standard - Hur åstakomma detta på andra appservrar än Tomcat, t ex WebSphere? • Något oklart vad det får för implikationer t ex säkerhetsmässigt, deploymentmässigt etc.

  8. 2b Integrerad deployment • Fördelar: • Likartad setup funkar både för portlet och webapp. • För portlets: oklart/odokumenterat hur man gör för att inte använda PFC • Vi slipper crossContext. • Nackdelar: • Orbeon bygger ej på Maven – krock mot RA. • Ev problem med krockar för beroenden till 3:e partsbibliotek. • Web-inflib i orbeon.war > 70 jar-filer! • Krångligare vid uppgraderingar. • Gemensam web.xml och portlet.xml. • Kommentar: För detta alternativ rekommenderas att vi skapar en separat webapp där orbeon + formulär läggs. Kommunikation bakåt med (REST-baserade) tjänster deployade utanför denna webapp.

  9. Deployment • En gemensam installation (per portal/appserver) • Innebär att alla system/komponenter använder samma orbeon. • Orbeon ses som en ”plattformskomponent” • Alla måste ligga på samma version och uppgraderas samtidigt. • Kan lösas genom att man deployar flera orbeoen– en per version. • För portlets: Leder till konstiga beroenden mellan system/komponenter • ”deploy” av portlet-formuläri Orbeon innebär att man lägger saker under web-inf och ev uppdaterar web.xml/portlet.xml. • En per verksamhetskomponent/system • Orbeon.war måste döpas om/ges en annan path. • Olika versioner kan användas i olika system/komponenter. • Det blir upp till varje systemägare att bestämma när man uppgraderar.

  10. Föreslagen integration med RA – Webapp • 2a – Separat deploymentrekommenderas • Rekommenderas av orbeon själva. • Slipper hantera alla jar-filer som orbeon för med sig. Vi kan använda maven ”som vanligt”. • Formulären deployas i web-projektet. • En installation av Orbeon per Orbeon version rekommenderas • Orbeondeployas som en war med versionsnummer i pathen. • På så vis kan olika system använda olika versioner av Orbeon. • Bakomliggande tjänster som servar formulären implementeras som enkla XML-baseradeREST-tjänster • Mha JSR 311/JAX-RS. • Obs RAs ”vanliga” teknikstack, inkl JSF kan ej användas för formulären • Formulär byggs som egna sidor, mha XHTML/JSP (evfacelets). • För en sammanhållet applikation går det bra att länka fram och tillbaka mellan formulärsidor och övriga sidor. • Lösningen behöver verifieras ytterligare genom PoC/exempelapp

  11. Föreslagen integration med RA –Portlet • 2b - Integrerad deployment rekommenderas • Finns inga andra alternativ för portlets (?) • Vi minimerar nackdelen vid uppgraderingar genom att skapa en separat web-modul/war-fil för detta där vi endast deployarformlären. • En installation/system eller verksamhetskomponent rekommenderas • Vi slipper konstiga beroenden mellan komponenter/system. • Beslut måste tas om det blir per system/verksamhetskomponent. • I övrigt gäller samma som för webbappar: • Bakomliggande tjänster som servar formulären implementeras som enkla XML-baseradeREST-tjänster • Mha JSR 311/JAX-RS. • Obs RAs ”vanliga” teknikstack, inkl JSF kan ej användas för formulären • Formulär byggs som egna sidor, mha XHTML/JSP (evfacelets). • För en sammanhållet applikation går det bra att länka fram och tillbaka mellan formulärsidor och övriga sidor (som ligger i en annan webapp). • Lösningen behöver verifieras ytterligare genom PoC/exempelapp

  12. Föreslagen arkitektur - webapp Applikationserver myWebbApp.war Orbeon filter Orbeon 3.7.1.war Formlär REST-tjänster

  13. Föreslagen arkitektur - Portlet Applikationserver Portalserver myOrbeon.war myWebbApp.war REST-baserat API Formlär

  14. Föreslagen integration med RA – Webapp Tjänster byggs upp mha ett JAX-RS-baseratREST-ramverk.I webbappfallet läggs även formulären här och Orbeonsfilter-konfigureras in.

  15. Föreslagen integration med RA –Portlet Tjänster byggs upp mha ett JAX-RS-baseratREST-ramverk. Orbeon.war döps om och ges en unik path. Här deployas även formulären. OBS! Under utredning…

  16. Fördelar och nackdelar Orbeon • Fördelar: • Har funnits ett tag (släpptes som Open Source 2004) • Många exempel • Open Source men support går att köpa till • Har stöd för att stänga av javascript (?) och fungera både i webapp och i portalmiljö (två viktiga baskrav) • Nackdelar: • Monolitisk, svårt att bryta ut bara XForms Engine. • De flesta exemplen använder sig av alla delar (dvs ej bara Xforms Engine). • Många 3:e parts beroenden. Odokumenterat vilka som används till vad. • Bygger ej på Maven. • Portlet-delarna är relativt odokumenterade • Mer avancerade frågor i mailinglistan besvaras inte eller väldigt långsamt… • Fungerar ej ihop med JSF som RA bygger på. • Formulär måste ligga på ”egna sidor”. • Osäkert när version 3.7 kommer i stabil version. • Xforms Builder är i Alpha-version.

  17. Alternativa implementationer • Förutom Orbeon har implementationen Chiba (http://chiba.sourceforge.net/) utvärderats. Bland dessa två har Orbeonvalts främst av följande två anledningar: • Bättre stöd för deploy i portal-miljö (dock ej fungerande på WebSphere Portal 6.1 i dagsläget) • Orbeonuppfattas som ett "mer levande" opensource-projektinkl bättre dokumentation, större möjligheter till support mm. • Dock skall Orbeon användas endast som en Xformsengine, dvs det ska gå att byta implementation i framtiden!

  18. Utestående frågor Orbeon • Vilken version av Orbeon ska vi köra på? • Hur gör vi vid uppgraderingar? • Deploy på WebSphere Portal 6.1 • Oklart hur man gör i en portlet för att bara använda XForms Engine • Säkerhet • Utökat test av Noscript support – snabbt test gav ej önskat res.. • Utökad test av FileUpload – med annat än base64-encodning • Hur skicka parametrar till ett formulär i en portlet (ex för felanmälan-formuläret)? • Test med stylesheets i portalmiljö • Debug/felsökning • Göra en fullständig PoC/exempelapp inom ramen för RA

  19. RA Utökad exempelapp/PoC • Undersöka var REST-”tjänsterna” ska placeras - i svc eller i web-projektet. • Vilken implementation av JAX-RS ska väljas? • Deployment – en installation per verksamhetskomponent eller system? • Test av länkar från och till andra sidor inom RA. • Det bör gå att bygga projektet med maven – även om dependencies inte sköts via maven. • Dokumenterad tillsammans med en detaljerad anvisning på googlecodewikin. • Ev genom första skarpa projektet?

More Related