FM7: andmevahetus läbi keskse komponendi

Mustri tüüp: funktsionaalne muster
Peamine kasusaaja:
automatiseeritud süsteem
Eesmärk
: andmete pärimine, andmete saatmine
Allikas
: teadaolev praktika
Teenuste arv:
2

Abstract

FM7: Data exchange trough central node is used when information systems with low availability need to exchange data with each other. Due to low availability it may be difficult for these systems to find a time when both are available.

The pattern proposes adding a central node between the information systems. The central node acts as a high availability mail-box between the information systems. Instead of sending data directly to the recipient, the data is sent to the central node. The recipiant will retrieve the data from the central node at a later date.

In the context of this pattern:

  • The service producer is the central node;
  • The service consumers are the information systems that need to communicate with eachother.

The service producer will provide two services:

  • The first service is based on the primitive "PM2: Data push service" and it is used by the information systems to send data to other information systems;
  • The second service is based on the primitive "PM1: Data pull service" and it is used by the information systems to query for data that has been sent to them.

Sissejuhatus

Muster kirjeldab üle X-tee andmete vahetamist olukorras, kus mõlema andmeid vahetava infosüsteemi käideldavus on madal. Sellest tulenevalt on keeruline leida sobivat ajahetke, millal mõlemad süsteemid oleksid võimelised üksteisega otse suhtlema.

Andmete vahetamise võimaldamiseks kasutatakse keskset kõrge käideldavusega komponenti, mis käitub andmeid vahetavate infosüsteemide vahelise puhvrina. Keskne komponent võimaldab andmeid vahetavatel infosüsteemidel andmete saatmist ja pärimist.

Andmete vahetamise eesmärgil luuakse kaks X-tee teenust, mille korral:

  • teenuse osutaja on keskne komponent;
  • teenuse tarbijad on andmeid vahetavad infosüsteemid.

Probleem

Käesoleva mustri juures eristame kolme poolt:

  • andmeid omav infosüsteem – infosüsteem, kus toimub andmete kogumine ja muutmine;
  • andmeid vajav infosüsteem – infosüsteem, mis kasutab andmeid koguva infosüsteemi andmeid oma äriprotsessis;
  • keskne komponent infosüsteem, mis võimaldab andmeid omaval infosüsteemil andmete saatmise andmeid vajavale infosüsteemile.
Andmeid omav ja andmeid vajav infosüsteem on üksteisest eristatud mustri kirjelduse lihtsustamiseks. Mõlemad infosüsteemid võivad käituda nii andmeid omava kui andmeid vajava infosüsteemina.

Käesolev muster sobib kasutamiseks olukorras, kus on vajalik lahendada andmete vahetus andmeid omava ja andmeid vajava infosüsteemi vahel ning:

  • andmeid omava infosüsteemi käideldavus on tagatud ainult andmete saatmise hetkel;
  • andmeid vajava infosüsteemi käideldavus on tagatud ainult andmete pärimise hetkel;
  • keskse komponendi käideldavus on tagatud alati, kui keegi soovib andmeid pärida või saata.

Lahendus

Keskses komponendis:

  • kirjeldatakse X-tee teenus, mis võimaldab andmeid omaval infosüsteemil kesksele komponendile andmete saatmist (andmete saatmise teenus);
  • kirjeldatakse X-tee teenus, mis võimaldab andmeid vajaval infosüsteemil keskselt komponendilt andmete pärimist (andmete pärimise teenus);
  • andmeid omava infosüsteemi poolt saadetud andmete salvestamine;
  • määratakse infosüsteemid, mis võivad andmete saatmise ja andmete pärimise teenuseid kasutada;
    • andmeid omav infosüsteem võib kasutada andmete saatmise teenust;
    • andmeid vajav infosüsteem võib kasutada andmete pärimise teenust.

Andmeid omavas infosüsteemis:

  • arendatakse saadetavate andmete kogumine;
  • arendatakse saadetavate andmete pärimine andmebaasist;
  • arendatakse teenuse sisendi koostamine;
  • arendatakse keskse komponendi poolt osutatava andmete saatmise teenuse tarbimine.

Andmeid vajavas infosüsteemis:

  • arendatakse keskse komponendi poolt osutatava andmete pärimise teenuse tarbimine;
  • arendatakse teenuse väljundi töötlemine ja salvestamine.

Teenuste kirjeldus

Andmete saatmise teenus:

  • tugineb primitiivile "PM2: andmete saatmise teenus";
  • sisendiks on andmeid vajavale infosüsteemile saadetavad andmed;
  • väljundiks on kviteering;

Andmete pärimise teenus:

Mustri käitumine

Järgneval joonisel esitatakse andmeid vajava infosüsteemi ja andmeid omava infosüsteemi vaheline suhtlus keskse komponendi kasutamise korral.


Joonis 4.7 Mustri FM7 järgnevusdiagramm.

Joonise lihtsustamiseks on skeemilt välja jäetud teenuste sisendi ja väljundi koostamise ning valideerimisega seonduvad tegevused.

Andmeid omava infosüsteemi (tarbijaA) teenusloogika kihis toimuvad järgmised tegevused:

  • koostatakse andmete saatmise teenuse sisend, mis sisaldab andmeid vajavale infosüsteemile saadetavaid andmeid;
  • tarbitakse keskse komponendi poolt osutatavat andmete saatmise teenust;
  • võetakse vastu andmete saatmise teenuse väljund.

Andmeid vajava infosüsteemi (tarbijaB) teenusloogika kihis toimuvad järgmised tegevused:

  • tarbitakse andmete pärimise teenust;
  • võetakse vastu andmete pärimise teenuse vastus, mis sisaldab andmeid omava infosüsteemi poolt saadetud andmeid.
Keskse komponendi teenusloogika kihis toimuvad järgmised tegevused:

  • võetakse vastu andmete saatmise teenuse sisend;
  • salvestatakse andmeid vajavale infosüsteemile saadetud andmed;
  • koostatakse andmete saatmise teenuse vastus;
  • võetakse vastu andmete pärimise teenuse sisend;
  • leitakse andmeid vajavale infosüsteemile saadetud andmed;
  • koostatakse andmete pärimise teenuse vastus, mis sisaldab andmeid vajavale infosüsteemile saadetud andmeid.

Lisakaalutlused

Käesoleva mustri kasutamisel tuleks silmas pidada järgnevat:

  • keskse komponendi kasutamine on potentsiaalne turvarisk;
  • keskse komponendi tõrge halvab kõigi keskse komponendi kaudu andmeid vahetavate infosüsteemide tegevuse;
  • konfidentsiaalsete andmete saatmisel tuleks andmed enne saatmist krüpteerida adressaadi avaliku võtmega (eeldab avaliku võtme infrastruktuuri olemasolu);

Näide

Näitena on toodud andmevahetus läbi Dokumendivahetuskeskuse (DVK, RIHA lühinimi dhl). Käesoleva mustri illustreerimiseks on kirjeldatud ainult dokumentide saatmise ja vastuvõtmise teenused.

DVK puhul on tegu käesolevast mustrist keerukama süsteemiga:

  • DVK on loodud dokumentide vahetamise eesmärgil;
  • DVK võimaldab dokumendi saatmist mitmele infosüsteemile korraga;
  • DVK kasutab kaustu;
    • Dokumendi saatmisel on võimalik määrata, millisesse kausta dokument kuulub;
    • Dokumendi pärimisel on võimalik pärida konkreetses kaustas olevaid dokumente;

Dokumentide saatmiseks kasutatakse teenust dhl.sendDocuments.

Sisend:

sendDocuments
|-> keha (type: sendDocumentsRequestType)
| |-> dokumendid (type: base64binary)
| |-> kaust (type: dhlDokTaisnimiType)
| | |-> (type: String, description: “Dokumendi asukohtade andmetüüp“)
| |-> sailitustahtaeg (type: Date)
| |-> edastus_id (type: String)
| |-> fragment_nr (type: Integer)
| |-> fragmente_kokku (type: Integer)
|-> p1 (type: base64Binary)

Väljund:

sendDocumentsResponse
|-> paring (type: sendDocumentsResponseType)
| |-> (type: base64binary)
|-> p2 (type: base64Binary)


Dokumentide vastuvõtmiseks kasutatakse teenust dhl.receiveDocuments.

Sisend:

keha (type: receiveDocumentsV2RequestType)
|-> arv (type: Integer, description: “Maksimaalne tagastatav kirjete arv, vaikimisi 10“)
| |-> kaust (type: dhlDokTaisnimiType, description: “Kaust, kust dokumendid loetakse“)
| | |-> (type: String, description: “Dokumendi asukohtade andmetüüp“)
| |-> edastus_id (type: String)
| |-> fragment_nr (type: Integer)
| |-> fragmendi_suurus_baitides (type: Integer)

Väljund:

receieveDocumentsV2Response
|-> keha (type: receiveDocumentsResponseType)
| |-> (type: base64binary)
|-> p1 (type: base64Binary)


Viimati muudetud: esmaspäev, 24. oktoober 2016, 13.28