Itsy Systembeskrivning Document title Systembeskrivning Document responsible Document author Gustav Wilhelmsson Document name Itsy - Systembeskrivning.doc Version 6 Ref. no. Created 25 February 2009 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 Introduktion... 1 Översikt... 1 Referenser... 1 Revisionshistoria... 2 Itsy och dess externa komponenter... 3 Itsy en teknisk beskrivning... 4 MVC ramverk... 4 Moduler och tjänster i Itsy... 5 Gemensamma tekniker... 6 Paketering... 7 Sammanställning av tekniker och produkter i Itsy... 8 Tekniker och open-source ramverk... 8 Licensierade produkter... 8
Introduktion Översikt Detta dokument är en systembeskrivning över Itsy. Detta är den gemensamma plattform som såväl Bitsy, Jitsy, Utvitsy och övriga ärendehanteringssystem inom Högskoleverket bygger på. Itsy är inte själv ett fungerande ärendehanteringssystem, utan binder samman de olika systemen genom att erbjuda tillgång till funktionalitet som delas mellan projekten. Systembeskrivningen redogör för förhållandet till externa komponenter och program, en beskrivning av Itsys moduler och tjänster, samt information kring vilken funktionalitet som övriga ärendehanteringssystem kan utnyttja i Itsy. Itsy 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. För mer detaljerad information kring de olika avdelningarnas IT-system, hänvisas till projektspecifika driftdokument och systembeskrivningar. Bitsy (Bedömningsavdelningen) Jitsy (Juridiska avdelningen) Utvitsy (Utvärderingsavdelningen) Framtida IT-system på Högskoleverket Itsy iipax Permission Figur 1 Systemarkitektur för Itsy Referenser [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 Ida Infront Ab 1
Revisionshistoria Version Datum Anmärkning Utfört av 0.1 09-02-25 Dokumentet skapat Gustav Wilhelmsson Ida Infront Ab 2
Itsy och dess externa komponenter Itsy 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. Diabas API LDAP (Användarkatalog) Mail server Web Service LDAP LDAP MailPushPlugin MailPollerCronJob plugin Itsy Webbtjänster iipax Broker Filintegration iipax Permission Skanner Figur 2 Itsy och externa komponenter och program Iipax Broker tillsammans med filintegration är standardkomponenter i iipax, som finns dokumenterat i [BROKERADM]. Till iipax Broker utvecklas även en pushplugin. Denna är unik för varje projekt, dock finns en gemensam bas med funktioner i och med BrokerItsyPlugin. Plugin API:et till iipax Broker finns beskrivet i [BROKERPROG]. Ida Infront Ab 3
Itsy en teknisk beskrivning Itsy 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]. Itsy och de projekt som bygger på denna plattform 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]. Mozilla Firefox Bitsy (Bedömningsavdelningen) Jitsy (Juridiska avdelningen) Utvitsy (Utvärderingsavdelningen) Framtida IT-system på Högskoleverket Itsy CaseService DiabasService DocumentService EmailService InboxService ItsyService Error management, metadata, utility Spring (container, transactions, inversion of control) iipax Case iipax Register iipax Document CaseRepository CaseController CaseInbox CaseConfiguration EventLog Journal Workpool Oracle Database 10g Figur 3 Beskrivning över Itsy och dess komponenter MVC ramverk Itsy och dess projekt använder sig av WebWork 2.2.3 för att strukturera Java-kod och användargränssnitt. MVC (Model View Controller) 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]. Figur 4 Model View Controller Ida Infront Ab 4
I Itsy är koden uppdelad så den Java-kod som styr programmets funktioner och logik (Model) ligger i itsy-jar. Här finns de tjänster som anropas för att utföra olika uppgifter och även de actions som triggas av controllern när en användaren klickar på en knapp eller på annat sätt utför ett kommando. Användargränssnittet (View) som presenterar information från modellen ligger i itsy-web. Controllern hanterar de åtgärder som användaren utför, något som i Itsy och dess projekt sköts av WebWork. Figur 5 Källkodsexempel på MVC Moduler och tjänster i Itsy Itsy är uppdelad i en rad moduler eller tjänster som ansvarar för sitt respektive område. ItsyService ItsyService innehåller funktioner som är gemensamma för de andra modulerna. Några exempel är funktioner för att konvertera värden till tal och sanningsvärden på ett säkert sätt och att hämta ut användare och skrivare, men den innehåller även funktioner som är mer specifika för en viss modul, t ex skapa händelser på ärenden, flytta ärenden mellan olika statusar, reservera/avreservera och checka ut och checka in ärenden. Metadata och util Metadata innehåller värden gemensamma för de olika projekt som bygger på Itsy. Exempel på detta är konstanter, konfigurationsparametrar, namn på övergångar, ärendetyper (dossier) och datatyper för objekt i iipax. Errormanagement Modulen errror innehåller de exception-klasser som är gemensamma för de olika projekten, samt en error-action. Felhanteringen är integrerad med WebWork, där exceptions kopplas till resultattypen error som hanteras av ErrorAction.java. Felet visas för användaren i form av en felsida eller genom en dialogruta. Ida Infront Ab 5
CaseService Caseservice hanterar de grundläggande funktionerna för ett ärende. För denna modul finns ingen gemensam kodbas, utan endast en mall för hur gränssnittet ska se ut (interface). DiabasService Kommunikationen mellan de olika projekten och Diabas sköts med hjälp av DiabasService, som använder sig av de Web Service API:er som tillhandahålls av Diabas API [DIABAS]. Gemensam kod erhåller bl a möjlighet att hämta ett Diabasärende utifrån ett regnr, översätta mellan regnr och diarienr, samt att hantera aktiviteter (händelser) i Diabas. DocumentService DocumentService i Itsy innehåller gemensamma funktioner för att hantera dokument. Exempel på detta är skapa, kopiera och byta namn på dokument. InboxService Inboxservice hanterar funkioner för inkorgen, t ex hämta inkorgsobjekt, lägga till och ta bort inkorgsobjekt, samt spara dokument och e-postmeddelanden till ärenden. Gemensamma tekniker 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. WebWork Ansvarar för kopplingen mellan en funktion som användaren anropar och den kod som kontaktar rätt tjänster för att utföra handlingen (se Controller i avsnittet MVC ramverk). DWR I de projekt som bygger på Itsy finns det ofta behov att göra server-anrop från browsern utan att ladda om hela sidan. För att uppnå detta beteende används DWR, som är ett AJAX-ramverk (Asynchronous JavaScript and XML). 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]. Velocity För att visa webbsidor på ett flexibelt sätt används Velocity. Detta är ett scriptspråk med stöd för objektorienterade strukturer. Med hjälp av de actions som anropas av WebWork kan sidan få tillgång till allt från ärendeobjektet och dess olika värden, till avancerade funktioner som olika tjänster tillhandahåller. Ida Infront Ab 6
Dojo För att använda vissa avancerade komponenter i webbgränssnittet används Dojo, som är ett annat AJAX ramverk. Exempel på komponenter som inte finns i vanlig HTML är dokumentträd, flikhantering och kalenderfält. Dokumentträd presenterar de filer som lagrats under ett ärende och stöder bl a drag n drop av dokument mellan mappar och snabbmenyer för att på ett smidigt sätt ge tillgång till funktioner som kan utföras på filen. Detta finns mer beskrivet i [BITSYPROG]. Hibernate Hibernate är ett ramverk som tillhandahåller objektorienterad lagring i databas. Funktioner finns för att på ett snabbt sätt spara och hämta objekt. Exempel på användningsområden är att lagra ärendesamband. Paketering De projekt som bygger på Itsy 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. Mer ingående installationsanvisningar finns i dokumentationen för respektive projekt. Ida Infront Ab 7
Sammanställning av tekniker och produkter i Itsy 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) Licensierade produkter iipax 4.5.2 o www.iipax.com o Licens: Svit, 150 användare. Oracle Application Server 10.1.3 Standalone Oracle Database 10g Diabas API o www.siriusit.se o Licens: Standardlicens Ida Infront Ab 8