Tehniline kokkuvõte
Olulised järeldused:

Enamik probleeme ei tulene tavaliselt mitte protokollist endast, vaid side rolli valest määratlemisest masina või seadme arhitektuuris. See otsus tasub teha juba lähte-eelduste etapis, määrates kindlaks andmete omaniku, sidekatkestuse tagajärjed ja süsteemi vastutuse piirid.

  • Valik MQTT, OPC UA ja PLC-ga suhtluse vahel mõjutab arhitektuuri, juurutuskulusid, tarnijate vastutust ja vastuvõtuprotsesside tempot.
  • Asi ei ole „paremas” protokollis, vaid mudeli sobitamises funktsiooniga: seire, integratsioon, juhtimine või süsteemi edasiarendus.
  • Otsesuhtlus PLC-ga kiirendab käivitamist, kuid seob rakenduse konkreetse kontrolleri, mälu ja tootja teostusega.
  • MQTT toetab kerget andmete jaotamist ning OPC UA koostalitlusvõimet ja struktuuri, kuid mõlemad nõuavad head andmemudelit.
  • Kui side mõjutab masina liikumist, tööjärjestust või blokeeringuid, tuleb valik siduda riskianalüüsi ja side katkemise tagajärgedega.

Valik MQTT, OPC UA ja otsesuhtluse vahel PLC-ga ei ole enam pelgalt tehniline otsus. Täna mõjutab see valik korraga süsteemi arhitektuuri, käivitamise maksumust, tarnijate vastutuse ulatust ja vastuvõtu tempot. Praktikas ei ole küsimus selles, milline protokoll on „parem”, vaid selles, milline andmevahetuse mudel vastab projekti tegelikule funktsioonile: kas vaja on lihtsat signaalide integratsiooni ühest masinast, liini järelevalvet, andmevahetust kõrgema taseme süsteemidega või hoopis hajutatud juhtimist, mida arendatakse edasi veel aastaid. Viga selles etapis ei avaldu tavaliselt kohe laboris, vaid hiljem: kasutuselevõtul, valideerimisel, PLC tarnija vahetamisel või siis, kui hooldusosakond püüab taastada häire põhjust ja selgub, et andmed on ebaühtlased, hilinenud või kontekstita.

Projekti seisukohast on kõige ohtlikum võtta kasutusele suhtlusmudel „harjumusest”. Otsesuhtlus PLC-ga võib tunduda ahvatlev, sest annab registritele kiire ligipääsu ja lühendab sageli juurutuse esimest etappi. Kuid selline valik seob ülemise taseme rakenduse kergesti konkreetse kontrolleri, mäluadresseerimise ja tootja rakendusviisiga. Programmi versiooni muutmisel, riistvara migreerimisel või liini laiendamisel tuleb kulu tagasi ümberehituste, regressioonitestide ja vaidlustena selle üle, kes vastutab protsessiandmete eest. MQTT sobib omakorda hästi sinna, kus oluline on info kerge jaotus ning saatjate eraldamine vastuvõtjatest, kuid see eeldab andmete semantika, edastuskvaliteedi ja brokeri haldamise põhimõtete teadlikku määratlemist. OPC UA valitakse sageli kompromissina koostalitlusvõime ja info struktuuri vahel, kuid ka see ei lahenda probleeme iseenesest: kui andmemudel on halb, siis annab ka formaalselt korrektne kommunikatsioon endiselt valede operatiivsete otsusteni viiva sisendi.

Praktiline otsustuskriteerium on lihtne, kuigi seda jäetakse sageli tähelepanuta: kõigepealt tuleb kindlaks teha, kas konkreetne andmevahetus puudutab infot, juhtimist või funktsiooni, mis mõjutab masina ohutut tööd. Kui kanal teenib üksnes seiret, aruandlust või retseptide edastamist kontrollitud režiimis, saab lahendusi võrrelda hooldatavuse, skaleeritavuse ja integratsiooni vaates. Kui aga sama tee kaudu peavad liikuma käsud, mis mõjutavad liikumist, tööjärjestust, blokeeringuid või seadme valmisolekut, lakkab teema kohe olemast üksnes IT-küsimus. Siis tuleb hinnata mitte ainult edastuse viivitust ja töökindlust, vaid ka käitumise prognoositavust side katkemisel, süsteemi taaskäivitamisel, tarkvaraversiooni muutumisel ja siis, kui väline süsteem tõlgendab olekut valesti. See on hetk, mil teema liigub loomulikult üle projekteerimisotsuste praktilise riskianalüüsi valdkonda, mõnikord ka kaitse ootamatu käivitumise eest teemasse.

Tüüpiline näide tootmisettevõtetest näeb välja sarnane: alguses on eesmärk ainult masina andmete lugemine visualiseerimiseks või aruandlussüsteemi jaoks, seega otsustab meeskond kiire ühenduse kasuks otse PLC-ga. Mõne kuu pärast hakkab sama kanal teenindama seadistuste kirjutamist, alarmide kinnitamist ja hiljem ka kaugteeninduse käske. Vormiliselt süsteem endiselt „töötab”, kuid arhitektuur ei vasta enam tegelikule vastutusele. Enam ei ole selge, milline kiht on masina oleku tõeallikas, kes vastutab muudatuste autoriseerimise eest ja kuidas tõendada, et väline kommunikatsioon ei loo teed tahtmatuks käivitumiseks. Selles punktis tekivad küsimused mitte ainult protokolli kohta, vaid ka funktsioonide jaotuse kohta juhtimis-, järelevalve- ja ohutuskihi vahel ning otsesuhtluse stsenaariumides PLC-ga ka tagajärgede kohta masina elektrilisele kihile ja ühendustele.

Selle valiku normatiivne ja vastavusega seotud tähendus ilmneb siis, kui andmevahetuse mudel mõjutab masina käitumist normaal- ja häireolukordades. Mitte iga integratsioon ei kuulu kohe ohutusfunktsioonide nõuete alla, kuid igaüht tuleb hinnata vea tagajärgede, side kaotuse ja vale tegevusjärjestuse mõju seisukohast. Kui välise liidese kaudu saab muuta masina olekut, vabastada blokeeringu, jätkata tsüklit või minna mööda kohapeal ette nähtud loogikast, siis tuleb kommunikatsioonialane otsus siduda riskianalüüsiga ning asjakohastel juhtudel ka nõuetega, mis käsitlevad ootamatu käivitumise vältimist. Seetõttu tuleb see otsus teha kohe, lähteülesande ja arhitektuuri etapis, mitte alles kasutuselevõtul. Just siis saab veel kokku leppida mõõdetavad kriteeriumid: kelle omandis on andmemudel, milline on side kaotuse lubatav mõju, kui palju integratsioonipunkte tuleb pärast PLC vahetust hooldada ja kuidas tõendatakse, et kommunikatsioon ei vii vastutust süsteemi kavandatud piiridest välja.

Kus kulu või risk kõige sagedamini kasvab

Kõige rohkem probleeme ei tulene mitte valikust MQTT, OPC UA ja otsese PLC-side vahel, vaid sellest, et selle side roll määratakse masina või paigaldise arhitektuuris valesti. Projekt hakkab kallinema siis, kui kanal, mis oli mõeldud abistavate andmete vahetuseks, hakkab kandma tööotsuseid, millest sõltub protsessi järjepidevus, seadme olek või operaatori käitumine. Praktikas tähendab see, et meeskond juurutab näiliselt odavama ja kiirema lahenduse ning lisab hiljem ümbersõite: täiendavad riistvarasignaalid, kohalikud blokeeringud, erandid kontrolleri loogikas, eraldi kinnitamismehhanismid ja oleku taastamise pärast sidekatkestust. Just need hilised parandused tekitavad kulu, viivitusi ja vaidlusi vastutuse üle integraatori, tarkvaratarnija ja lõppkasutaja vahel. Praktiline hindamiskriteerium on lihtne: tuleb kindlaks teha, kas side kadumisel peab süsteem lihtsalt „aruandluse lõpetama” või võib see minna ohtlikku, tehnoloogiliselt valesse või tootmise seisukohalt kulukasse olekusse.

Otsesele PLC-sidele tuginevates mudelites kasvab risk tavaliselt seal, kus liides muutub sõltuvaks konkreetsest tootjast, tarkvaraversioonist ja kontrolleri mälustruktuurist. Käikulaskmise etapis toimib see sageli hästi, kuid tegelik kulu ilmneb kontrolleri vahetamisel, liini moderniseerimisel või järgmise ülemise taseme süsteemi lisamisel. Iga selline muudatus nõuab andmete uuesti kaardistamist, tüüpide, aadresside, õiguste ja edastusvea korral käitumise kontrollimist. Toote omaniku vaates on see oluline, sest hooldus muutub ettearvamatuks: dokumentatsioon aegub kiiresti, teadmine jääb töövõtja kätte ja vastutus andmete õigsuse eest hajub. Kui meeskond ei suuda nimetada andmemudeli omanikku ega kirjeldada selle muutmise protseduuri pärast PLC uuendust, siis on tulevase integratsiooni kulu projekti juba sisse kirjutatud, isegi kui see täna veel välja ei paista.

MQTT ja OPC UA puhul on kõige levinum viga teistsugune: eeldatakse, et kommunikatsioonikiht lahendab ise andmesemantika ja otsuste töökindluse probleemi. MQTT sobib hästi sündmuste ja telemeetria edastamiseks, kuid ilma teemade, kohaletoimetamise kvaliteedi, säilitamise ja allika tuvastamise hoolika määratlemiseta on lihtne jõuda olukorrani, kus vastuvõtja saab formaalselt korrektsed, kuid kasutud või protsessi suhtes hilinenud andmed. OPC UA seevastu korrastab infomudelit ja hõlbustab koostalitlusvõimet, kuid selle juurutamise mahtu alahinnatakse sageli siis, kui seadmetel puudub ühtselt ette valmistatud objektide, olekute ja meetodite struktuur. Praktiline näide ilmneb retseptide, partii kinnitamise või tsükli kaugtaaskäivituse puhul: kui ei ole üheselt määratletud, kumb pool kinnitab käsu vastuvõtmise, kumb täitmise ja kumb ainult registrisse kandmise, siis on pärast esimest intsidenti raske tõendada, kas viga tekkis rakenduskihis, sidekihis või masina loogikas. Hea otsustuskriteerium ei ole siin protokolli „moodsus”, vaid see, kas olekut, käsu allikat, kehtivustingimusi ja töö taastamise viisi pärast häiret on võimalik üheselt kirjeldada.

Eraldi kulude allikas on käitusnõuete segamine ohutus- ja vastavusnõuetega. Kui MQTT, OPC UA või otsese PLC-juurdepääsu kaudu saab mõjutada masina liikumist, blokeeringute vabastamist, käivitusjärjestust või kaitse seisukohalt olulisi parameetreid, siis ei ole teema enam üksnes IT-küsimus. Siin liigub käsitlus loomulikult edasi projekteerimisotsuste praktilise riskianalüüsi juurde: hinnata tuleb mitte protokolli ennast, vaid vale käsu, andmete aegumise, seadistuste volitamata muutmise ja kohaliku ning välise oleku vastuolu tagajärgi. Täiturseadmetega süsteemides, sealhulgas hüdraulilistes, võib sideotsus mõjutada seiskamisfunktsiooni, koormuse mahavõtmise, liikumise blokeerimise ja ohutu töö taastamise teostust, mistõttu on see mõnikord seotud vastavushindamisel rakendatavate projekteerimisnõuetega. Kui väline liides hakkab mõjutama kaitsefunktsioone või käitumisi, mida operaator tajub kaitsesüsteemi osana, tuleb seda käsitleda ohutusarhitektuuri elemendina, mitte mugava integratsioonilisana.

Projektijuhtimise seisukohalt on kõige turvalisem otsus selline, mida saab kaitsta mitte ainult tehniliselt, vaid ka organisatsiooniliselt. Seetõttu tasub enne andmevahetusmudeli valikut kokku leppida mõned mõõdetavad kriteeriumid: korrektse töö taastamise aeg pärast sidekatkestust, kohtade arv, kus tuleb andmekaardistust hallata, infomudeli versioonihalduse viis, regressioonitestide ulatus pärast PLC muutmist ning tõendus, et väline side ei lähe mööda kohalikest kaitsemehhanismidest. Kui vastused neile küsimustele on ebaselged, liigub projekt tavaliselt juba valdkonda, kus sideotsus ise peaks olema hõlmatud formaalsema riskihindamisega ning osas rakendustes ka kooskõlastatud täiturseadmete ja blokeerimisvahendite projekteerimisnõuetega. See on hetk, mil valik MQTT, OPC UA ja otsese side vahel lakkab olemast tehniline eelistus ning muutub otsuseks hoolduskulude, vastutuspiiri ja kogu lahenduse veakindluse kohta. Selle valiku normatiivne ja vastavusega seotud tähendus võib olla oluline ka masinate CE-sertifitseerimise vaates.

Kuidas teemale praktiliselt läheneda

Praktikas tasub valikut MQTT, OPC UA ja otsese PLC-ga suhtluse vahel alustada mitte tehnoloogiast, vaid küsimusest, millist operatiivset tulemust andmevahetus peab andma ja kes vastutab selle tulemuse eest. Kui andmeid kasutatakse üksnes seireks, aruandluseks või kõrgema taseme süsteemide varustamiseks, on esmatähtis integratsiooni vastupidavus muudatustele ja selge infomudel. Kui aga teisel poolel on käsud, mis mõjutavad tsükli kulgu, retsepte, tööolekuid või käivitustingimusi, ei ole otsus enam ainult IT-küsimus. Siis mõjutab suhtlusviis juba vastutuspiiri integraatori, masina tootja, hoolduse ja protsessi omaniku vahel. Sellel on projektile otsesed tagajärjed: teistsugune vastuvõtukatsete ulatus, teistsugune muudatuste dokumenteerimine, teistsugune regressiooni maht pärast kontrolleriprogrammi muutmist ja teistsugune hoolduskulu pärast kasutuselevõttu.

Hea otsustuskriteerium on see, kus peab asuma masina oleku ja töö lubamise loogika tõeallikas. Otsene suhtlus PLC-ga võib olla põhjendatud seal, kus oluline on täitmise ahela lihtsus, vahendajate väike arv ja kontrolleri poolel täielikult prognoositav käitumine. Selle hinnaks on tavaliselt lahenduse tugev seotus konkreetse PLC-programmi, andmeaadressi ja ühe tarnija praktikaga. OPC UA on mõistlik siis, kui projekt nõuab stabiilsemat andmemudelit, rakenduskihi paremat eraldamist kontrolleriprogrammist ja signaalide semantika suuremat selgust. MQTT sobib eelkõige siis, kui andmeid tuleb jagada paljudele vastuvõtjatele, väljapoole üksikut süsteemi ja kontrolleri vahelist suhet, ning kui kaudse suhtluse mudel on vastuvõetav. See ei ole siiski neutraalne valik: mida rohkem on vahekihte, brokereid, tõlkeid ja vastendusi, seda suurem on veapind ning seda keerulisem on tõendada, et integratsioonipoole muudatus ei riku kohaliku juhtimise jaoks seatud eeldusi.

Tüüpiline projekteerimisviga seisneb selles, et meeskond valib kasutuselevõtu etapis integratsiooni jaoks mugava mudeli ja avastab alles hiljem hoolduskulu. Praktiline näide: kõrgema taseme süsteem peab salvestama retsepte ja lülitama mitme töökoha töörežiime. Kui seda teha PLC mälualadesse otsese kirjutamise kaudu, on lahendus alguses kiire, kuid iga andmestruktuuri muudatus kontrolleris käivitab testid liidese mõlemal poolel ning vastutus retseptide kooskõla eest hakkab hajuma. Kui sama juhtum rajada OPC UA poolel üheselt määratletud objektidele ja olekutele, on lihtsam eraldada masina programmi muudatus kõrgema taseme süsteemi muudatusest, kuid siis tuleb hallata infomudelit ja selle versioonimist. MQTT kasutamine sellise stsenaariumi puhul on omakorda mõistlik alles siis, kui andmete jaotamine mitmele süsteemile on tegelikult vajalik ning viivituste, kohaletoimetamise kinnituse ja oleku taastamise juhtimine pärast sidekatkestust on kirjeldatud ja testides kontrollitud. Vastasel juhul ostab meeskond endale paindlikkuse, mida ta ei kasuta, ning saab vastu täiendavad rikkepunktid.

See on ka hetk, mil teema liigub loomulikult edasi projekteerimisotsuste praktilise riskianalüüsi juurde. Kui sidekanal võib muuta masina olekut, vabastada järjestuse, taastada töö pärast side kadumist või mõjutada kaudselt täiturelemente, tuleb hinnata mitte ainult edastuse töökindlust, vaid ka vale või hilinenud käsu tagajärgi. Mõnes rakenduses puutub see teema juba kokku nõuetega, mis käsitlevad kaitset ootamatu käivitumise eest, sest isegi tehniliselt korrektne integratsioon ei tohi luua võimalust kohalike blokeerimisvahendite või energia väljalülitamise protseduuride ümbersõiduks. Sellises ulatuses tuleb sideviisi valik kooskõlastada juhtimisarhitektuuri, elektrilise kihi ja tarkvaramuudatuste põhimõtetega, mitte teha seda eraldiseisva integratsiooniotsusena. Juhi vaates tähendab see lihtsat põhimõtet: andmevahetuse mudel on õige ainult siis, kui on võimalik näidata, kes muudatuse heaks kiidab, kuidas taastatakse pärast riket ohutu olek ja milliseid KPI-sid pärast kasutuselevõttu mõõdetakse, näiteks töö taastamise aeg, muudatuste järel tekkinud intsidentide arv ning andmete vastendust haldavate kohtade arv.

Millele juurutamisel tähelepanu pöörata

Juurutamisel ei tekita suurimat riski mitte valik MQTT, OPC UA ja otsese PLC-ga suhtluse vahel, vaid varjatud eeldused, mille meeskond võtab omaks ilma formaalse kinnitamiseta. Projekteerimispraktikas on kõige kulukamad olukorrad need, kus andmevahetuse mudel valitakse funktsiooni demonstreerimiseks, mitte tegeliku kasutusrežiimi, hoolduse ja muudatuste eest vastutamise järgi. MQTT juurutatakse mõnikord eeldusega, et see on lihtne andmeedastus kõrgema taseme süsteemidesse, kuid mõne kuu pärast hakkab see kandma operatiivseid käske. OPC UA valitakse „universaalse” lahendusena, kuid ilma kokku leppimata, milliseid teenuseid, andmemudeleid ja õiguste mehhanisme tegelikult kasutatakse. Otsene suhtlus PLC-ga näib olevat lühim tee seni, kuni selgub, et iga järgmine andmete tarbija nõuab eraldi vastendust, regressiooniteste ja kooskõlastusi kontrolleri tarnijaga. Juhi jaoks tähendab see lihtsat järeldust: juurutuskulu ei lõpe ühenduse käivitamisega, vaid ulatub üle kogu muudatuste, rikete ja tehniliste vastuvõttude tsükli.

Kõige olulisem otsustusküsimus ei peaks seega olema mitte „mida me suudame kõige kiiremini käima panna”, vaid „kus lõpeb vastutus andmete tähenduse ja nende kasutamise tagajärgede eest”. Kui sidekanal teenib üksnes protsessi jälgimist, on hindamiskriteeriumid teistsugused kui siis, kui sama kanal peab mõjutama retsepte, tööparameetreid, blokeeringuid või juhtimisjärjestusi. Siit liigub teema loomulikult edasi projekteerimisotsuste praktilise riskianalüüsi juurde: hinnata tuleb mitte ainult side katkemise tõenäosust, vaid ka seda, kas vale väärtus, hilinenud uuendus või muutuja mitmetimõistetav vastendus võib põhjustada masina või liini vale talitluse. Kui vastus on jaatav, ei ole sidearhitektuur enam pelgalt integratsiooniküsimus. Sellest saab element, mis mõjutab juhtimisfunktsiooni, süsteemi vastuvõttu ja integraatori vastutust alamsüsteemide ühendamisel.

Praktikas on see hästi näha lihtsa stsenaariumi puhul: ülemine süsteem peab lugema olekuid mitmest kontrollerist ning pärast projekti käivitamist palub kasutaja lisaks veel seadistuste kaugmuutmist. Otsesuhtluses PLC-ga lõpeb see sageli uute registrite, erandite ja konkreetse tootja lahendusest sõltuvate ümbersõitude lisamisega. MQTT puhul on probleemiks sageli üheselt mõistetavuse kadumine: sõnum jõuab kohale, kuid ilma selgelt määratletud kontekstita ei tea vastuvõtja, kas väärtus on ajakohane, kinnitatud ja millisest töörežiimist see pärineb. OPC UA puhul ei ole lõks mitte protokoll ise, vaid liiga optimistlik eeldus, et seadme poolel olev infomudel vastab sellele, mida ülemine rakendus vajab. Seetõttu peaks praktiline hindamiskriteerium hõlmama kolme asja: kellele kuulub andmesemantika, kuidas kinnitatakse väärtuste kehtivust ja ajakohasust ning milline on muudatuste tegemise kord pärast käikulaskmist. Kui meeskond vastab mõnele neist küsimustest üldsõnaliselt või tarnijapõhiselt, tähendab see, et tulevaste muudatuste kulu on just nihutatud hoolduse etappi.

Eraldi lõks on füüsiliste ja paigalduslike mõjude alahindamine. Projektides, kus andmevahetusmudeli valik mõjutab vaheseadmete asukohta, lisatoidet, kaablite marsruutimist või võrgujaotust, hakkab teema juba puudutama masina elektrilise kihi ja ühenduste projekteerimist. See puudutab eelkõige lahendusi, kus kasutatakse täiendavaid sideväravaid, tööstusarvuteid või lüliteid, mis dokumentatsioonis näivad süütud, kuid juhtkapis tähendavad ruumi, jahutust, kaitset, hooldust ja uusi rikkepunkte. Siis ei saa sidealast otsust lahutada teostusprojektist. Meeskond peab suutma näidata, mis juhtub vaheseadme toite kadumisel, kuidas sideolek taastatakse ning kas ülekandekihi rike ei tekita operaatori või ülemise süsteemi jaoks masina olekust mitmetimõistetavat pilti.

Seos vastavusnõuetega tekib alles siis, kui andmevahetuskanal mõjutab juhtimisfunktsiooni, masina kasutusviisi või vastutuse piire tarnijate vahel. Sellises ulatuses ei piisa väitest, et protokoll on „tööstuslik” või laialdaselt kasutusel. Tuleb tõendada, et valitud arhitektuuri on hinnatud prognoositavate rikkeseisundite, kasutusaegsete muudatuste ja alamsüsteemide vaheliste liideste kontekstis, mis praktikas viib projekti kokkulepitud ulatusega kooskõlas oleva metoodilise riskihindamiseni. Kui süsteem pannakse kokku eri osapoolte valmis moodulitest, kontrolleritest ja sidekihtidest, kasvab ka integraatori vastutuse formaalse määratlemise tähtsus. Tavaliselt on see hetk, mil tasub projekt peatada ja kontrollida mitte ainult andmevahetuse skeemi, vaid ka vastuvõtujärgsete muudatuste piire, muudatuste valideerimise põhimõtteid ning hoolduse KPI-sid: side taastamise aega, uuenduste järel toimunud intsidentide arvu ja käsitsi vastendamist nõudvate liideste arvu. Selle valiku normatiivne ja vastavusega seotud tähendus muutub siin eriti oluliseks.

MQTT, OPC UA või otsesuhtlus PLC-ga – kuidas valida tööstusprojektis sobiv andmevahetusmudel?

Ei. Artiklist nähtub, et valik peab vastama projekti funktsioonile: lihtne signaalide lugemine täidab ühtesid vajadusi, tootmisliini järelevalve, kõrgema taseme süsteemidega integreerimine või hajusjuhtimine aga teistsuguseid.

Kui otsene ühendus registritega hakkab siduma rakendust konkreetse kontrolleri, mäluadresseerimise ja tootjapoolse teostusega. Probleem kerkib tavaliselt uuesti esile programmi muutmisel, riistvara migreerimisel või liini laiendamisel.

MQTT sobib hästi kergekaaluliseks teabeleviks ja saatjate eraldamiseks vastuvõtjatest, kuid eeldab andmesemantika ning brokeri haldamise põhimõtete teadlikku määratlemist. OPC UA võib olla kompromiss koostalitlusvõime ja teabestruktuuri vahel, kuid see ei paranda halvasti kavandatud andmemudelit.

See kehtib siis, kui sama kanali kaudu edastatakse käske, mis mõjutavad masina liikumist, tööjärjestust, blokeeringuid või valmisoleku olekut. Sellisel juhul tuleb hinnata ka käitumist side katkemise, taaskäivituse ja olukorra korral, kus väline süsteem tõlgendab masina olekut valesti.

Sest siis saab veel paika panna sidekorralduse rollid, andmemudeli omaniku ja side katkemise lubatavad tagajärjed. Artiklis rõhutatakse, et hilised parandused suurendavad tavaliselt kulusid, viivitusi ja vastutusvaidlusi.

Jaga: LinkedIn Facebook