Revision 13 as of 2005-09-16 08:13:03

Clear message

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-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:

  1. Tahiti dostane z dispu id DocumentSetu

  2. Tahiti zamkne DocumentSet ( při této akci získá lockId)

  3. Tahiti si vyžádá data DocumentSetu

  4. Tahiti periodicky posílá oznámení, že má DocumentSet stále zamčen

  5. Tahiti odešle zpracovaný DocumentSet

Funkce poskytované serverem:

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á

Vrátí OK, FAIL

Request
<?xml?>
<LockRequest id="" user=""/>

Response 
<?xml?>
<LockResponse status="LOCKED|RACE|FAIL" lockId=""/>

LOCKED - DocumentSet je uzamcen, lockId obsahuje identifikator zamku
RACE - DocumentSet ma jiz nekdo jiny uzamcen
FAIL - chyba

lockId obsahuje přidělený kód zámku ( status == LOCKED)

Oznámení, že DocumentSet byl zpracován

Zde se odesílá multipart zpráva složená ze dvou částí

  1. xml s níže popsaným příkazem, název "command"
  2. zazipovaný DocumentSet, název "batch1.zip"

Odešle

Request
<?xml?>
<ProcessedRequest id="" lockId="" user=""/>

Response
<?xml?>
<ProcessedResponse status="OK|FAIL"/>

OK - DocumentSet byl oznacen jako zpracovany
FAIL - DocumentSet se nepodarilo oznacit jako zpracovany

Oznámení, že DocumentSet byl znovu vložen do Damisu

Zde se odesílá multipart zpráva složená ze dvou částí

  1. xml s níže popsaným příkazem, název "command"
  2. zazipovaný DocumentSet, název "batch1.zip"

Odešle

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í, že DocumentSet zpracovávat nebude

Odešle

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

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

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"/>