Kontentke ótiw

Xoreografiyalıq programmalastırıw

Wikipedia — erkin enciklopediya

Kompyuter iliminde, xoreografiyalıq programmalastırıw — bul programmalar bir neshe parallel qatnasıwshılar arasındaǵı óz-ara tásirlerdiń kompoziciyaları bolatuǵın programmalastırıw paradigması[1][2][3].

Sholıw

Xoreografiyalar

Xoreografiyalıq programmalastırıwda baǵdarlamashılar parallel qatnasıwshılardıń jobalastırılǵan baylanıs minez-qulqın anıqlaw ushın xoreografiyalıq programmalastırıw tilin paydalanadı. Bul paradigmadaǵı programmalar xoreografiyalar dep ataladı. Xoreografiyalıq tiller qáwipsizlik protokollarınıń belgilewinen («Alice hám Bob» belgilewi dep te ataladı) ilhamlanǵan. Bul tillerdiń tiykarı — baylanıs primitivi bolıp tabıladı, mısalı

Alice.expr -> Bob.x

«Alice expr ańlatpasın esaplaw nátiyjesin Bob-qa jetkeredi, ol onı óziniń lokal x ózgeriwshisinde saqlaydı» dep oqıladı.

Alice, Bob hám t.b. ádette roller yamasa processler dep ataladı.

Tómendegi mısal úsh roldi óz ishine alǵan Oraylıq Autentifikaciya Xızmetine (CAS) tiykarlanǵan ápiwayılastırılǵan bir mártelik kiriw (SSO) protokolı ushın xoreografiyanı kórsetedi:

  • Client, Service penen islesiw ushın CAS-tan kiriw tokenin alıwdı qáleydi.
  • Service, CAS-tan Client ke kiriw ruqsat etiliwi kerek pe, joq pa ekenin biliwi kerek.
  • CAS, Client tiń kirisiw maǵlıwmatların tekseriwge juwapker Oraylıq Autentifikaciya Xızmeti.

Xoreografiya:

Client.(credentials, serviceID) -> CAS.authRequest
if CAS.check(authRequest) then
    CAS.token = genToken(authRequest)
    CAS.Success(token) -> Client.result
    CAS.Success(token) -> Service.result
else
    CAS.Failure -> Client.result
    CAS.Failure -> Service.result

Xoreografiya 1-qatarda baslanadı, onda Klient CAS-qa ayırım kirisiw maǵlıwmatlarınan hám ózi kiriwdi qáleytuǵın xızmettiń identifikatorınan ibarat juplıqtı jetkeredi. CAS bul juplıqtı óziniń jergilikli authRequest (autentifikaciya sorawı) ózgeriwshisinde saqlaydı. 2-qatarda, CAS sorawdıń autentifikaciya tokenin alıw ushın jaramlı ekenin tekseredi. Eger solay bolsa, ol token payda etedi hám Klientke de, Xızmetke de tokeni bar Tabıslı xabarın jetkeredi (3–5-qatarlar). Basqa jaǵdayda, CAS Klientke hám Xızmetke autentifikaciyanıń sátsiz bolǵanın Sátsizlik xabarın jiberiw arqalı bildiredi (7–8-qatarlar). Qalǵan bólimde bul xoreografiyanı «SSO xoreografiyası» dep ataymız.

Rawajlanıwı

Xoreografiyalıq programmalastırıw paradigması óz ataması menen atalǵan doktorlıq dissertaciyasınan kelip shıqqan[4][5]. Xoreografiyalıq programmalastırıw tilleriniń sintaksisi ushın ilham qáwipsizlik protokollarınıń belgilewinen, sonday-aq «Alice hám Bob» belgilewinen alınǵan. Xoreografiyalıq programmalastırıwǵa xızmet xoreografiyası hám óz-ara tásir diagrammaları standartları, sonday-aq process esaplawları teoriyasınıń rawajlanıwı da úlken tásir kórsetti[6].

Xoreografiyalıq programmalastırıw — belsendi izertlew tarawı. Bul paradigma informaciya aǵımın,[7] parallel esaplawdı,[8] kiber-fizikalıq sistemalardı,[9][10] orınlanıw waqtındaǵı beyimlesiwdi,[11] hám sistema integraciyasın[12] izertlewde qollanılǵan.

Derekler

  1. Montesi, Fabrizio. Introduction to Choreographies. Cambridge University Press, 2023. DOI:10.1017/9781108981491. ISBN 978-1-108-83376-9. 
  2. Yoshida, Nobuko. Behavioral Types in Programming Languages. doi:10.1561/2500000031. https://doi.org/10.1561/2500000031. 
  3. Giallorenzo, Saverio. Multiparty Languages: The Choreographic and Multitier Cases (Pearl). DOI:10.4230/LIPIcs.ECOOP.2021.22. ISBN 9783959771900.  (ECOOP 2021 Distinguished Paper)
  4. Hirsch, Andrew K. (16 January 2022). Pirouette: higher-order typed functional choreographies. doi:10.1145/3498684.  (POPL 2022 Distinguished Paper)
  5. Arend Rensink. «Fabrizio Montesi wins the EAPLS Best PhD Dissertation Award 2014». European Association for Programming Languages and Systems (30-avgust 2015-jıl).
  6. Carbone, Marco. Structured Communication-Centered Programming for Web Services. doi:10.1145/2220365.2220367. 
  7. Lluch Lafuente, Alberto; Nielson, Flemming; Nielson, Hanne Riis „Discretionary Information Flow Control for Interaction-Oriented Specifications“,. Logic, Rewriting, and Concurrency, Lecture Notes in Computer Science, 2015 — 427–450 bet. DOI:10.1007/978-3-319-23165-5_20. ISBN 978-3-319-23164-8. 
  8. Cruz-Filipe, Luís; Montesi, Fabrizio „Choreographies in Practice“,. Formal Techniques for Distributed Objects, Components, and Systems, Lecture Notes in Computer Science, 2016 — 114–123 bet. DOI:10.1007/978-3-319-39570-8_8. ISBN 978-3-319-39569-2. 
  9. López, Hugo A.; Heussen, Kai „Choreographing cyber-physical distributed control systems for the energy sector“,. Proceedings of the Symposium on Applied Computing, 2017 — 437–443 bet. DOI:10.1145/3019612.3019656. ISBN 9781450344869. 
  10. López, Hugo A.; Nielson, Flemming; Nielson, Hanne Riis „Enforcing Availability in Failure-Aware Communicating Systems“,. Formal Techniques for Distributed Objects, Components, and Systems, Lecture Notes in Computer Science, 2016 — 195–211 bet. DOI:10.1007/978-3-319-39570-8_13. ISBN 978-3-319-39569-2. 
  11. Preda, Mila Dalla; Gabbrielli, Maurizio; Giallorenzo, Saverio (2017). Dynamic Choreographies: Theory and Implementation. 13. doi:10.23638/LMCS-13(2:1)2017. https://doi.org/10.23638/LMCS-13(2:1)2017. 
  12. Giallorenzo, Saverio; Lanese, Ivan; Russo, Daniel „ChIP: A Choreographic Integration Process“,. On the Move to Meaningful Internet Systems. OTM 2018 Conferences, Lecture Notes in Computer Science, 2018 — 22–40 bet. DOI:10.1007/978-3-030-02671-4_2. ISBN 978-3-030-02670-7.