2.4 Pieprasījumu servisa darbības principi

Pieprasījumu serviss nodrošina pieeju Integrācijas IS servisiem, izpildot pieprasījumu auditācijas un kontroles uzdevumus.

Pieeja Integrācijas IS servisiem, kā arī pastarpināti pie biznesa IS servisiem un citiem iestādes datu-sniedzējiem ārējām saskarnēm ir iespējama, tikai lietojot Pieprasījumu servisu, kas savukārt veido centrālo ieejas punktu VISS infrastruktūrā.

Pieprasījumu servisa komponenti veido XML Web servisa veidā būvēta ārēja saskarne, BizTalk servera komponentes (Universālā asinhronā saskarne) un datu bāzes (skat. attēlu).

 

Pieprasījuma servisa detalizēts plānojums

Pieprasījumu serviss esošā realizācijā atbilst gan Web Services Security v1.0 (OASIS standarts "Web Services Security v1.0" (WS-Security 2004), kas ietver SOAP Message Security 1.0 (WS-Security 2004), gan Web Services Security v1.1 (OASIS standarts "Web Services Security v1.1", kas ietver WS-Security Core Specification 1.1), standartiem. Pieprasījumu servisa saskarni veido metodes (Microsoft .NET C# sintaksē), kas ir aprakstītas tabulā.

Pieprasījuma servisa metode

Apraksts

IVISResponse SubmitSync (IVISRequest request)

Ar metodi SubmitSync tiek nodrošināts sinhrons izsaukums pie Integrācijas IS servisa, kura identifikators ir pievienots IVISRequest.Destination atribūtā. Sinhrona izsaukuma gadījumā par parametru nepieciešams izmantot IVISRequest struktūru. Metode atgriezīs arī IVISResponse struktūru, kas attiecīgā IS servisa darbības rezultātā parasti tiek papildināta ar kādiem biznesa datiem <Body> elementā.

IVISResponse Submit (IVISRequest request)

Asinhrons izsaukums tiks uzsākts, izsaucot metodi Submit pie Integrācijas IS servisa, kura identifikators ir pievienots IVISRequest.Destination atribūtā. Kā metodes parametru nepieciešams izmantot IVISRequest struktūru. Veiksmīga izsaukuma gadījumā, izsaucējam tiks atgriezta IVISResponse struktūra ar aizpildītu CorrelationID – konkrētā pieprasījuma identifikatoru. Šis elements tiks lietots, lai sasaistītu oriģinālo pieprasījumu ar „back-end” sistēmas sniegto atbildi. Tas var tikt lietots kā parametrs Pieprasījumu servisa metodēm Poll, GetStatus un Dispose. Asinhronajā scenārijā <Body> elements netiks atgriezts.

int GetStatus (CorrelationID requestID)

GetStatus metode atgriezīs sagatavotās atbildes statusu. Tā ir jāizsauc pēc Submit metodes izsaukuma, lai uzzinātu, vai atbilde jau ir sagatavota. Kā parametrs tai jānodod CorrelationID.

Pieprasījuma servisa GetStatus metodes implementācijai tiks izmantota Asinhrono pieprasījumu rezultātu krātuve (speciāla datu bāze asinhrono rezultātu glabāšanai).

IVISResponse Poll (CorrelationID requestID)

Poll metode atgriezīs sagatavoto atbildes ziņojumu. To nepieciešams izsaukt pēc Submit metodes izsaukuma, lai iegūtu atbildes ziņojumu. Vispirms ar GetStatus metodi ir jānoskaidro, vai atbilde jau ir sagatavota. Ja atbilde jau ir sagatavota, tad to var iegūt ar Poll metodi. Poll metodi var izsaukt vairākas reizes. Kamēr atbilde ar Dispose metodi nebūs dzēsta, to vēl joprojām varēs saņemt. Kā parametrs tai jānodod CorrelationID. Poll metode atgriež IVISResponse struktūru.

int Dispose (CorrelationID requestID)

Dispose metode tiek lietota asinhrona scenārija gadījumā. Šī metode obligāti jāizsauc, lai Pieprasījumu servisam paziņotu, ka atbilde ir veiksmīgi saņemta un turpmāk to var neuzglabāt, pretējā gadījumā - atbilde tiks automātiski izdzēsta pēc noteikta laika perioda. Pieprasījuma servisa Dispose metode izmantos Asinhrono pieprasījumu rezultātu datu bāzi atbildes meklēšanai.

URNType StartTransaction(URNType eServiceID)

Metode StartTransaction tiek izsaukta, kad nepieciešams uzsākt konkrētu e-pakalpojuma instanci. Parametrs eServiceID ir e-pakalpojuma identifikators. Metode atgriež e-pakalpojuma instances (transakcijas) URN identifikatoru.

void EndTransaction(URNType transactionID)

Metode EndTransaction tiek izsaukta, kad nepieciešams pabeigt konkrētu e-pakalpojuma instanci. Parametrs TransactionID ir e-pakalpojuma instances (transakcijas) identifikators.

Pieprasījumu un vaicājumu protokolā tiek izmantoti divi ziņojumu veidi – IVISRequest un IVISResponse. Kļūdu gadījumā izsaucējs saņems <Errors> struktūru, skat. Kļūdu un izņēmuma situāciju apstrādes plānošana. Pieprasījumu serviss nodrošina šādas kopīgas funkcijas:

  • Personalizē lietotāju, kura vārdā ir izsaukts serviss;
  • Veic pieprasījuma auditāciju;
  • Nodrošina tālāku back-end sistēmas Integrācijas IS servisu izsaukumu un atbildes ziņojumu saņemšanu;
  • Sinhroniem IS servisiem atgriež Integrācijas IS servisa izpildes rezultātu.

Anonīmiem (bez drošības talona) pieprasījumiem tiek noteiktas šādas tiesības:

Metode

Autorizētais lietotājs

Anonīmais lietotājs

StartTransaction

bez ierobežojuma

bez ierobežojuma

EndTransaction

bez ierobežojuma

tikai anonīmo lietotāju transakcijas

DisposeRequest

bez ierobežojuma

tikai anonīmo lietotāju pieprasījumi

GetStatus

bez ierobežojuma

tikai anonīmo lietotāju atbildes

Poll

bez ierobežojuma

tikai anonīmo lietotāju atbildes

SubmitSync

bez ierobežojuma

tikai uz anonīmajiem integrācijas servisiem

Submit

bez ierobežojuma

tikai uz anonīmajiem integrācijas servisiem

SaveResponse (ar drošību)

bez ierobežojuma

tikai anonīmo lietotāju pieprasījumi

SaveResponse (bez drošības VISS infrastruktūrā)

-

bez ierobežojuma

Pieprasījumu apjoma ierobežojums ir 4 MB. Ja nepieciešams pārsūtīt lielākus pielikumus, datnes utt., ir jālieto DIT vai Elektroniskās dokumentu krātuves (EDK) risinājums (skat. Elektronisko dokumentu krātuve: ārējās saskarnes. Programmatūras projektējuma apraksts. VRAA-6_15_11_58-VISS_2010-EDK_AS-PPA).

Metodi StartTransaction nepieciešams izsaukt no e-pakalpojuma vai integrācijas procesa tikai pirms pirmā datu (biznesa) pieprasījuma veikšanas, izmantojot Submit vai SubmitSync. Var izmantot vienu biznesa transakcijas identifikatoru vairākiem izsaukumiem, īpašie, ja tie ir saistīti savā starpā pēc biznesa nozīmes.