Bitsy Systembeskrivning Document title Systembeskrivning Document responsible Document author Magnus Olsson Document name Bitsy - Systembeskrivning.doc Version 3 Ref. no. Created 25 February 2008 Last saved 25 October 2011 Box 576, SE-581 07 Linköping, phone +46 (0)13 37 37 00, fax +46 (0)13 37 37 90, www.idainfront.se
Innehåll 1 Introduktion... 1 1.1 Översikt... 1 1.2 Referenser... 1 2 Bitsy och dess externa komponenter... 2 3 Bitsy en teknisk beskrivning... 3 3.1 Moduler och tjänster i Bitsy... 3 3.2 MVC ramverk... 6 3.3 AJAX... 7 3.4 Statistikrapporter... 8 3.5 Automatspara... 8 3.6 Exempel... 8 3.7 Paketering... 9 4 Sammanställning av tekniker och produkter i Bitsy... 10 4.1 Tekniker och open-source ramverk... 10 4.2 Licensierade produkter... 10
Systembeskrivning 1 Introduktion 1.1 Översikt Detta dokument är en systembeskrivning över Bitsy. Den beskriver Bitsy i förhållande till externa komponenter och program samt en detaljerad beskrivning av Bitsys moduler och tjänster samt objektmodell och konfiguration. Bitsy bygger på iipax, en produkt för dokument- och ärendehantering. Iipax funktioner och användande finns beskrivet i en rad dokument som levereras med produkten, inklusive de som nämns i referenserna nedan. Informationmodellen för Bitsy finns beskrivet i [BITSYINFOMODELL] 1.2 Referenser [BITSYDRIFT] Bitsy Drift och förvaltning [BITSYPROG] Bitsy Programmeringsguide [BITSYINFOMODELL] Bitsy Informationsmodell [CASEOV] iipax Case Technical Overview [CASEPROG] iipax Case Programmers Guide [DOCPROG] javadoc of the iipax.service.document.client.api package [REGPROG] javadoc of iipax.service.register.client.api package [IITOOL] iitool User Manual [BROKERADM] iiipax Broker System Administration Guide [BROKERPROG] iipax Broker Programmers Guide [DIABAS] Diabas API SDK Användarmanual 1.3 Revisionshistoria Version Datum Anmärkning Utfört av 0.1 07-01-15 Dokumentet skapat Magnus Olsson 0.2 07-04-30 Dokumentet uppdaterat Magnus Olsson 0.3 07-10-10 Dokumentet uppdaterat Stefan Karlsson 0.4 08-01-18 Dokumentet uppdaterat Magnus Olsson 1.0 08-02-25 Ändrat versionsnummer till 1.0. Robert Johanson Ida Infront Ab 1
2 Bitsy och dess externa komponenter Bitsy samverkar ihop med flera externa program och komponenter. Nedanstående bild visar en schematisk översikt. Den streckade pilen mellan Bitsy och Diabas API är den befintliga lösningen. Den streckade ellipsen Register visar hur ett externt register kan kopplas in till Bitsy. Scanner Diabas API Användarkatalog Filintegration Web Service ldap Webbtjänster Filintegration iipax Broker plugin Bitsy MailPollerCronJob iipax MailPushPlugin ldap Mail server Skrivare Figure 1 Bitsy och externa komponenter och program Iipax Broker tillsammans med filintegration är standardkomponenter i iipax, som finns dokumenterat i [BROKERADM]. Till detta utvecklas den push-plugin (BrokerBitsyPlugin) som sitter mellan iipax Broker och Bitsy. Plugin API:et till iipax Broker finns beskrivet i [BROKERPROG]. 2 Systembeskrivning
Systembeskrivning 3 Bitsy en teknisk beskrivning Bitsy byggs på iipax tre grundpelare för ärendehantering. Dessa är iipax Case, iipax Document och iipax Register och finns bl a beskrivna i [CASEOV], [DOCPROG] och [REGPROG]. Bitsy består av en rad moduler (eller service-tjänster) som använder de api:er som finns i iipax. Dessa API:er hämtas med s k fabriker, vilket finns beskrivet med exempel i [CASEPROG]. Firefox case-service external bitsyservice Diabasservice educationservice documentservice importservice registerservice inboxservice letterservice Bitsyservice, Error management, metadata, utility Spring (container, transactions, inversion of control) iipax Case CaseRepository CaseController CaseInbox CaseConfiguration EventLog Journal Workpool iipax Document iipax Register Oracle Database 10g Figure 2 Beskrivning över Bitsy och dess komponenter 3.1 Moduler och tjänster i Bitsy Bitsy är uppdelad i en rad moduler eller tjänster som ansvarar för sitt respektive område. Caseservice Den största modulen är caseservice, som hanterar de grundläggande funktionerna för ett ärende. T ex hämta ärende, spara ärende, reservera ärende, sökningar, hämta och filtrera ärendelistan, funktioner kring justering, händelselistan, expediering och avslut. Diabasservice Kommunikationen mellan Bitsy och Diabas API sköts med hjälp av Diabasservice, som använder sig av de Web Service API:er som tillhandahålls av Diabas API [DIABAS]. Diabas uppdateras vid skapande av ärende, expediering och avslut samt när handläggare tar till sig ett ärende första gången. Konfiguration av kopplingen mot Diabas API finns mer beskrivet i [BITSYDRIFT] Ida Infront Ab 3
External Modulen external hanterar komunikationen mellan iipax Broker och Bitsy. Denna kommunikation är MIME-baserad, vilket betyder snabb och effektiv filöverföring. Modulen sköter också kommunikationen med mailservern för utgående epost. Educationservice Educationservice hanterar utbildningar och bedömningsmatriser. Documentservice Documentservice hanterar dokumentträdet och brevhantering samt utskrift. Brevmallarna lagras som velocity-filer i iipax Document. Brevmallarna fylls på med information från ärendet och blir editerbara i en HTML-editor (FCKeditor). När breven sparas genereras ett PDF-dokument med hjälp av PDFreactor. Importservice Importservice hanterar import av data från Naric. Data från Naric exporteras i form av XMLfiler. Registerservice Registerservice hanterar sökning i och administration av stödtabeller, t ex ämnesområdesjusterare och landjusterare Inboxservice Inboxservice hanterar funkioner för inkorgen, t ex skapa inbox-objekt, sök och koppla till befintligt ärende Bitsyservice Bitsyservice innehåller funktioner som är gemensamma för de andra modulerna. Metadata och util Metadata innehåller metadata för Bitsy, t ex fältnamn, konstanter och datatyper för objekt i iipax. Errormanagement Modulen errror innehåller de exception-klasser som är specifika för Bitsy samt en erroraction. Felhanteringen är integrerad med WebWork, där exceptions kopplas till resultattypen 4 Systembeskrivning
Systembeskrivning error som hanteras av ErrorAction.java. Felet visas för användaren i form av en felsida eller genom en dialogruta. Detta beskrivs mer i [BITSYPROG] Spring Alla tjänster initieras av Spring, som är ett ramverk som bl a erbjuder en lättviktscontainer. Denna container stödjer transaktioner och initiering enligt IoC (Inversion of Control). Konfigurationen av spring (version 1.2.8) sköts genom /WEB-INF/applicationContext.xml. Hibernate För att lagra ärendesamband används Hibernate. Ida Infront Ab 5
3.2 MVC ramverk Bitsy använder sig av WebWork 2.2.3 för att strukturera Java-kod och användargränssnitt. MVC (Model View Control) delar upp applikationen i tre separata delar med väl definierade ansvarsområden. För att kunna representera ett Java-objekt som HTML används Velocity, som är ett läsvänligt scriptspråk. Detta finns mer beskrivet i [BITSYPROG]. Figure 3 Model View Control Model Består av Java-kod som innehåller logik och status för applikationen View Användargränssnittet som visar information från modellen Controller Hanterar de åtgärder som användaren utför 6 Systembeskrivning
Systembeskrivning Model View Control Figure 4 Model View Control I Bitsy-källkod 3.3 AJAX DWR På flera ställen i Bitsy finns det behov av att göra server-anrop från browser:n utan att ladda om hela sidan. För att uppnå detta beteende används DWR, som är ett AJAX-ramverk. WebWork och DWR är delvis integrerade, d v s man kan anropa WebWork actions med DWR och representera resultatet med standard XHTML. Detta finns mer beskrivet i [BITSYPROG]. DOJO I Bitsy finns ett dokumentträd som bl a hanterar drag n drop av dokument mellan mappar. Till detta används Dojo, som är ett annat AJAX ramverk. Dojo används även för flikhantering, datumval samt för att välja land till ett ärende och liknande funktioner. Detta finns mer beskrivet i [BITSYPROG]. Ida Infront Ab 7
3.4 Statistikrapporter I Bitsy finns det stöd för att hämta ut statistik på ärenden. Statistiken berör inte migrerade ärenden och visas med hjälp av BIRT (Business Intelligence and Reporting Tools) som är en Eclipse-baserad open source lösning. Rapporter i BIRT sparas som XML-data med filändelsen.rptdesign. För att kunna skapa och arbeta rapporter behöver man först ladda ner och installera BIRT Report Designer. Observera att nya rapporter måste skapas med BIRT 2.1.0, då detta är den version som Bitsy är byggd mot. Rapporter skapade med senare BIRT versioner kommer inte att kunna visas i Bitsy. Mer beskrivning finns att finna i [BITSYPROG]. 3.5 Automatspara I Bitsy finns nästan inga spara-knappar. Information sparas i ärendet allt eftersom man handlägger. Detta simuleras genom att spara då man t ex byter flik eller anropar andra funktioner. För att göra automatsparandet mer effektivt utnyttjas så kallad dirty-hantering, dvs Bitsy sparar endast då någon information ändrats. Detta finns mer beskrivet i [BITSYPROG]. 3.6 Exempel Följande bilder exemplifierar ett scenario där en funktionen getcase (hämta ärende) anropas. todo.vm (velocity) WebWork action Java klass Velocity-filer 8 Systembeskrivning
Systembeskrivning Figure 5 Exempel kring WebWork och Velocity i Bitsy 3.7 Paketering Bitsy kompileras och paketeras med hjälp av Maven 2. De beroenden som finns till tredjeparts-paket definieras i pom.xml, som är en konfigurationsfil för Maven 2. Med kommandot mvn install byggs och paketeras Bitsy till en ear (Enterprise Archive). Detta finns mer beskrivet i [BITSYPROG]. Installationsanvisningar finns beskrivet i [BITSYDRIFT]. Ida Infront Ab 9
4 Sammanställning av tekniker och produkter i Bitsy 4.1 Tekniker och open-source ramverk Java 1.5 Javascript WebWork 2.2.3 Velocity 1.4 DWR 1.1.4 Dojo Spring 1.2 Maven 2 (bygge, paketering) SVN (Subversion, system för versionshantering av källkod) FCKEditor 2.5 BIRT 2.1.0 4.2 Licensierade produkter iipax 4.3.0 o www.iipax.com o Licens: Svit, 150 användare. Oracle Application Server 10.1.3 Standalone Oracle Database 10g Imaging Express o www.vixelsoft.com PDFreactor 2.0 o www.realobjects.com o Licens: PDFreactor CPU License Pack (up to 2 CPUs/Cores per pack) Diabas API o www.siriusit.se o Licens: Standardlicens 10 Systembeskrivning