Hem - R2B Software R2B
IntroduktionUttagMottagningUnderhållAnvändningRedovisningProgramvaror
SupportOm oss

källsystem.png

Leveranser från verksamhetssystem

Marshal OAIS erbjuder en generell lösning, en harvester, för att hämta information ur källsystem och leverera den till ett elektroniskt arkiv.

Leveranslösningen omfattar flera olika delar som kan användas tillsammans eller oberoende av varandra. Dessa inkluderar:

  • Interaktiv programvara för att definiera uttag av information.
  • Programvara för att köra schemalagda leveranser.
  • Programvara för händelsestyrda leveranser (on-demand).
  • Kodgeneratorer för att stödja framtagande av systemspecifika leveransprogram.

Nedanstående schema visar hur Marshal används för att skapa automatiserade leveranser till ett elektroniskt arkiv.

image001.png

Det första steget i leveransprocessen är att definiera det uttag som ska ske ur källsystemet och hur detta ska användas för att skapa en leverans. Arbetet utförs i programvaran Marshal Editor, se definition av uttag och leverans, och sker i samråd mellan teknisk personal och personal med kännedom om källsystemet.

När leveransdefinitionen (Marshalmodellen) är färdig sätts den upp för användning i Marshal Archiver, se Leveranser. Här anges resterande inställningar, t.ex. avseende när arkivering ska ske, var resultatet ska lagras liksom eventuella inställningar för mottagning och efterbearbetning.

En export (2a-c i bilden) påbörjas antingen till följd av att ett tidsvillkor utlöses, se Schemaläggning, eller på begäran av annan programvara, se Händelsestyrning.

Arkiveringen inleds med att den aktuella Marshalmodellen hämtas och används för att göra uttaget ur källsystemets databas. Varje uttag resulterar i ett antal (noll till många) leveransobjekt, bestående av en XML-fil och de, eventuella, andra filer och dokument som beskrivs av XML-filen.

De hämtade leveransobjekten lagras sedan i en filstruktur, i enlighet med inställningarna i Marshalmodellen, varefter arkiveringen avslutas med att starta mottagningsprocessen.

Mottagningsprocessen är specifik för det långstidslager, eller bevarandesystem som används. Leveransprocessen är således generell, d.v.s. inte specifik för just Marshal OAIS eller något annat system. För detaljer avseende mottagning i Marshal OAIS, se Mottagning.


Definition av uttag och leverans

Datauttag, leveransfiler och paket av leveransfiler definieras i programvaran Marshal Editor. Marshal erbjuder olika gränssnitt för att exportera information från olika typer av källor.

  • Relationsdatabaser, t.ex. DB2, MySQL, Oracle, Postgres, SQL Server och SQLite.
  • SOAP-webbtjänster
  • REST-webbtjänster (XML och JSON)
  • http, hämta enskilda webbsidor eller hela webbsajter.

Marshal Editor tillåter användaren att bläddra i ett källsystems databas, välja den information som ska hämtas samt beskriva hur leveransfilen ska se ut och lagras. Naturligtvis går det även att göra uttags- och leveransdefinitioner i Marshal Editor utan tillgång till källsystemets databas.

I exemplet nedan definieras ett arkivobjekt som utgörs av innehåll ur ett publiceringssystem med artiklar, dokument och bilder.

image002.jpg

Marshal Editor innehåller funktionalitet för att göra själva leveransuttaget. Funktionens primära syfte är att erbjuda utvecklaren ett enkelt sätt att testa uttaget och verifiera sina leveransfiler men den kan även användas vid arkivering, t.ex. av system som ska avvecklas.

När användaren är klar med sin leveransdefinition sparas den som en Marshalmodell. Det en XML-fil med ändelsen .marshal. Marshalmodellen används sedan i serverprogramvaran (”harvestern”) Marshal Archiver för att göra själva uttaget och skapa leveransen, se Leveranser . Där anges också de slutliga parametrarna som begränsar leveransens omfattning.

För användare med mer avancerade behov finns en inbyggd SQL-prompt och även stöd för att generera programkod, se utveckling av egna harvesters, samt stöd för att generera schemat för leveransfilerna i form av en XSD-fil.


Leveranser

Marshal OAIS innehåller en generell ”harvester”, Marshal Archiver, för att hämta information ur källsystem. Marshal Archiver är en s.k. Windowstjänst som körs i bakgrunden på en serverdator i nätverket.

Hämtningen sker i enlighet med en i förväg gjord leveransdefinition, en Marshalmodell, se definition av uttag och leverans. Leveransdefinitionen installeras som ett ”jobb” m.h.a. klientprogrammet Marshal Archiver Admin.

image003.jpg

Ett Marshal Archiver–jobb består av ett antal (oftast ett) steg som vardera definierar ett uttag samt, eventuell, ett antal tidsvillkor för exekveringen av jobbet.

image004.png

Steget i bilden ovan innebär att Marshalmodell Publicerat.marshal körs och att leveranser lagras i filsystemets katalog W:\Arkiv\Leveranser.

För att begränsa leveransen, utöver de villkor som ingår i Marshalmodellen, kan ett urvalskriterium (exportfilter) anges. Leveransens slutliga urvalskriterium sätts samman enligt:

urvalskriterium = (modellens kriterium) OCH (stegets kriterium)

I exemplet ovan används även en parameter sajt. Denna måste sättas (skickas med) av det program, eller tidsvillkor, som kör leveransen.


Schemaläggning

Ett leveransjobb kan ha ett antal tidsvillkor som utlöser att jobbet körs.

image005.png

Ett tidsvillkor består dels av en starttidpunkt. Detta är den tidpunkt då jobbet ska köras för första gången eller, efter att det körts, den tidpunkt då det kördes för första gången.

Tidsvillkoret innehåller också uppgifter om hur ofta jobbet ska repeteras. Detta kan anges med en upplösning på minutnivå.

Marshal Archiver kör endast en leverans, baserad på ett tidsvillkor, om föregående leverans, baserad på samma villkor, är färdig. Tidsvillkor som inträffar medan föregående leveransen pågår ignoreras.



Händelsestyrning

Leveransjobb kan vara händelsestyrda. Det innebär att en annan programvara anropar Marshal Archiver och begär att jobbet körs. Händelsestyrning är endast tillåten för de jobb som markeras som ”may execute on demand”.

image006.png

Det finns ingen konflikt mellan att händelsestyra och att schemalägga ett jobb. Ett händelsestyrt jobb kan även ha tidsvillkor. Händelstyrda leveranser påbörjas omedelbart när begäran inkommer. Ett händelsestyrt jobb kan därför resultera i flera samtidiga leveranser.

Marshal Archive implementerar ett tjänstegränssnitt IOnDemand som är tillgängligt för andra program via WCF (Windows Communication Foundation).

Marshal OAIS innehåller även ett färdigt programpaket, Marshal Signaller, som kan användas för att vänta på förändringar i en databas och köra leveransjobb när dessa intäffar. Se separat dokumentation för Marshal Signaller.


Mottagning

Det sista steget i leveranskedjan är att ta emot informationen i det elektroniska arkivet. Det kan ske på flera olika sätt. Arkivpersonal kan manuellt importera leveranserna eller så kan arkivets programvara automatiskt utföra importen.

Marshal Archiver erbjuder automatisk import som en integrerad del av leveranskedjan. Detta genom att tillåta körning av ett, för det mottagande arkivsystemet, specialgjort mottagningsprogram efter utfört uttag. 

För Marshal OAIS finns en färdig mottagningsprogramvara som körs som post-processor för leveransen. Programmet tar hand om leveransen, och lägger in den i arkivet, enligt angiven inställningsfil.

image007.png

Inställningarna, i W:\Arkivet\Arkiv_cfg\Ingest\cop.xml i exemplet, innehåller uppgifter om var i arkivet leveransen ska placeras, hur den ska registreras, vilka filer som ska konverteras liksom hur metadata ska hanteras och indexeras m.m.

Läs mer om mottagning i Marshal OAIS.


Utveckling av egna ”harvesters”

Det finns fall där den information som ska utgöra det elektroniska arkivets handlingar inte kan hämtas, på ett direkt och enkelt sätt, ur en relationsdatabas. I dessa fall krävs programvara,  skräddarsydd för källsystemet, för att hämta in eller efterbehandla informationen.

Exempel på sådana fall är

  1. System som inte alls, eller bara delvis, baseras på en relationsdatabas.
  2. System som använder relationsdatabas men på ett tekniskt avvikande, eller okänt, sätt.
  3. System där relationsdatabasen inte är tillgänglig, t.ex. webb/moln-tjänster.

Systemspecifika programvaror kan vara dyra, såväl att utveckla som att förvalta. För att undvika detta är det viktigt att se till att programvarorna ansluter till, och återanvänder, den generella leveransmekanismen i så stor utsträckning som möjligt.

Marshal erbjuder ett antal möjligheter för underlätta utvecklingen av inhämtningsprogram för specifika källsystem.


För- och efterbehandling

Marshal Archiver kan köra andra programvaror både före och efter ett informationsuttag.

Ett förbehandlingsprogram kan köras för att påverka och detaljstyra det uttag som ligger till grund för en leverans, t.ex. genom att påverka urvalskriterier eller genom att hämta information från ett källsystem och mellanlagra den i en relationsdatabas.

Ett efterbehandlingsprogram kan användas för att hämta ytterligare information som ska adderas till det som hämtats ur databasen. Ett typiskt sådant fall (fall 1 ovan) avser verksamhetssystem där dokument har lagrats utanför databasen, t.ex. i filsystemet.

Efterbehandlingsprogram (post-processor) kan också användas för att förändra den hämtade informationen, t.ex. genom att packa upp eller packa om den. Detta kan vara nödvändig när den hämtade informationen inte är på lämplig form (fall 2 ovan), t.ex. för att databasens kolumner innehåller sammansatt[1] data.

Dessutom kan ett efterbehandlingsprogram användas för att skicka leveransfilerna vidare för ytterligare processning i ett annat system. Den mottagningsprogramvara som ingår i Marshal.OAIS, se Mottagning, är i själva verket en sådan post-processor.


Kodgenerering

Marshal Editor erbjuder kodgeneratorer för .NET och Java. Dessa gör det möjligt att definiera sina leveransfiler, se definition av uttag och leverans, och automatiskt generera den programkod som krävs för att skriva och läsa sådana leveransfiler.

Den genererade programkoden kan användas tillsammans med egenutvecklad kod i såväl helt fristående datorprogram som i för- och efterbehandlingsprogram för Marshal Archiver. Vinsten är alltid densamma, reducerad utvecklingstid och konsekventa leveransfiler.



[1] En allt vanligare lösning är relationsdatabaser vars kolumner innehåller XML- eller JSON-kod, s.k. serialiserade objekt.

© 2011-2016 R2B Software AB. All rights reserved.
Visit our international site Go to our international web site