Size: 6950
Comment:
|
Size: 7027
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 12: | Line 12: |
|| 2005-09-29 || Rozšíření chybových stavů LockRequest || | |
Line 60: | Line 61: |
<LockResponse status="LOCKED|RACE|FAIL" lockId="" error=""/> | <LockResponse status="LOCKED|RACE|FAIL|NOTEXISTS" lockId="" error=""/> |
Line 67: | Line 68: |
lockId obsahuje přidělený kód zámku ( status == LOCKED) | lockId - obsahuje přidělený kód zámku ( status == LOCKED) |
Protokol je určen pro komunikaci mezi Tahiti a serverem DAMIS pro distribuci spisů k identifikaci a jejich následné předání na archivaci. Komunikace probíhá pomocí HTTP protokolu (RFC1945, RFC2616), všechny dotazy jsou z klienta na server přenášeny metodou POST.
Termín |
Vysvětlení |
DocumentSet |
Sada společně naskenovaných dokumentů |
Změny
2005-09-29 |
Rozšíření chybových stavů LockRequest |
2005-09-27 |
Definice ResumeRequest, přiznak pause u ProcessedRequest |
2005-09-12 |
Definice ReinsertRequest |
2005-09-07 |
Rozšíření UnlockRequest o důvod odemčení |
Formát DocumentSet
DocumentSet je zazipovaný soubor, který obsahuje naskenované soubory a soubor docset.xml, který popisuje jejich atributy, příslušnost do dokumentů
Popis formátu docset.xml je dostupný zde: http://frnk.lightcomp.cz/lcdevel/SpecifikaceTahitiDamisUlozeniDat, část Popis spisu
Identifikace DocumentSetu
DocumentSet je identifikován názvem serveru a vlastním identifikátorem DocumentSetu ( id ) Oba identifikátory jsou ascii
Identifikator zámku (lockId) je textový retezec ASCII, ktery vraci server
Typická komunikace mezi Tahiti a Skenovacím serverem:
Tahiti dostane z dispu id DocumentSetu
Tahiti zamkne DocumentSet ( při této akci získá lockId)
Tahiti si vyžádá data DocumentSetu
Tahiti periodicky posílá oznámení, že má DocumentSet stále zamčen
Tahiti odešle zpracovaný DocumentSet
Funkce poskytované serverem:
Uzamknutí DocumentSetu
Oznámení, že DocumentSet byl zpracován a odeslání zpracovaného DocumentSetu ( zazipovaného )
Oznámení, že DocumentSet zpracovávat nebude ( odemkne ho )
Vyžádání DocumentSetu ( zazipované )
Oznámení, že vyžádaný DocumentSet je stále používán
Data jsou přenášena pomocí http/post s content-type=text/xml
Při odesílání zpracovaného DocumentSet je použit http/post s multipart obsahem
Uzamknutí DocumentSetu
Klient odesílá
identifikátor DocumentSetu
- uživatelské jméno
Vrátí OK, FAIL
Request <?xml?> <LockRequest id="" user=""/> Response <?xml?> <LockResponse status="LOCKED|RACE|FAIL|NOTEXISTS" lockId="" error=""/> LOCKED - DocumentSet je uzamcen, lockId obsahuje identifikator zamku RACE - DocumentSet ma jiz nekdo jiny uzamcen FAIL - chyba NOTEXIST - DocumentSet s danym id neexistuje lockId - obsahuje přidělený kód zámku ( status == LOCKED) error - nepovinny atribut, obsahuje blizsi popis chyby (pravdepodobne v anglictine)
Oznámení o zpracování spisu
Zde se odesílá multipart zpráva složená ze dvou částí
- xml s níže popsaným příkazem, název "command"
zazipovaný DocumentSet, název "batch1.zip"
Odešle
identifikátor DocumentSetu
zámek DocumentSetu
- jméno uživatele
Request <?xml?> <ProcessedRequest id="" lockId="" user="" pause="0|1" /> Response <?xml?> <ProcessedResponse status="OK|FAIL"/> OK - DocumentSet byl oznacen jako zpracovany FAIL - DocumentSet se nepodarilo oznacit jako zpracovany
Atribut |
Povinnost |
Význam |
id |
ano |
Identifikátor spisu |
lockId |
ano |
zámek spisu |
user |
ano |
uživatel pracující se spisem |
pause |
ne |
Může nabývat hodnot 0|1. V případě 1 je dokument pozdržen (není archivován) do doby než přijde požadavek ResumeRequest |
Uvolnění spisu pro archivaci
Pokud byl spis uložen s atributem pause=1 je nutno ho samostatným příkazem uvolnit pro další zpracování. Požadavek je označen jako ResumeRequest
Request <?xml?> <ResumeRequest id="" user=""/> Response <?xml?> <ResumeRequestResponse status="OK|FAIL"/> OK - DocumentSet byl oznacen jako znovuvlozeny FAIL - DocumentSet se nepodarilo oznacit jako znovuvložený
Oznámení o znovuvložení spisu do Damisu
Zde se odesílá multipart zpráva složená ze dvou částí
- xml s níže popsaným příkazem, název "command"
zazipovaný DocumentSet, název "batch1.zip"
Odešle
identifikátor DocumentSetu
zámek DocumentSetu
- jméno uživatele
Request <?xml?> <ReinsertRequest id="" lockId="" user=""/> Response <?xml?> <ReinsertResponse status="OK|FAIL"/> OK - DocumentSet byl oznacen jako znovuvlozeny FAIL - DocumentSet se nepodarilo oznacit jako znovuvložený
Poznámka: Slouží pro znovuvložení opravených spisů po reklamaci
Oznámení o odmítnutí spisu
Odešle
identifikátor DocumentSetu
zámek DocumentSetu
- jméno uživatele
- důvod odemčení dokumentu
Hodnota |
Popis |
BADCONTENT |
Vrácení spisu na reklamaci, nečitelné, poškozené apod. |
UNABLETOPROCEED |
Předání jiné osobě, není schopen identifikovat. |
Request <?xml?> <UnlockRequest id="" lockId="" user="" reason=""/> Response <?xml?> <UnlockResponse status="OK|FAIL"/> OK - DocumentSet byl odemknut FAIL - DocumentSet se nepodarilo odemknout
Vyžádání DocumentSetu
Odešle
identifikátor DocumentSetu
zámek DocumentSetu
- jméno uživatele
Vrátí soubor se zazipovaným DocumentSetem
Request <?xml?> <DocumentSetRequest id="" lockId="" user=""/> Response zazipovany soubor (batch.zip) s DocumentSetem
Oznámení, že vyžádaný DocumentSet je stále používán
Odešle
- jméno uživatele
seznam DocumentSetu, ktere ma zamcene ( u každého DocumentSetu posílá id, lockId)
Vrátí seznam DocumentSetu, pro ktere to opravdu plati (vrati podmnozinu toho co jsem odeslal)
Request - poslu seznam DocumentSetu, ktere mam zamknute <?xml?> <NotifyRequest user=""> <LockedDocumentSet id="" lockId=""/> <LockedDocumentSet id="" lockId=""/> <NotifyRequest/> Response - vrati seznam DocumentSetu, pro ktere to stale plati <?xml?> <NotifyResponse> <LockedDocumentSet id="" lockId=""/> <LockedDocumentSet id="" lockId=""/> </NotifyResponse>
Příklad komunikace
Příklad HTTP komunikace (žádost):
POST /damis/DamisServlet HTTP/1.1 Host: 10.2.0.6:8080 Keep-Alive: Connection: TE, Keep-Alive TE: trailers Content-Type: text/xml Content-Length: 57 <?xml version="1.0"?><LockRequest id="00000009" user=""/>
Příklad HTTP komunikace (odpověď):
HTTP/1.1 200 OK Server: Apache-Coyote/1.1 Content-Type: text/xml Transfer-Encoding: chunked Date: Mon, 05 Sep 2005 10:25:28 GMT <?xml version="1.0" encoding="UTF-8"?><LockResponse lockId="10625d1a505-78a145df-be5e9dd8" status="LOCKED"/>