logi sisse meist KKK

Miks ei kasutata andmebaasi serverit andmevahetuseks kahe ettevõtte vahel?

Olen suhteliselt palju kokku puutunud kahe ettevõtte infosüsteemide ühildamisega. Näen, et töötatakse välja andmevahetuse protokolle ja tehakse rakendusi, mis töötavad üle veebi. Kas siis xml-i, wsdl/soap-iga või jsoniga. Igatahes -- selleks tehakse mingi eraldi lahendus.

Miks ei kasutata lahendusena andmebaasi serverit ennast? Teisele ettevõttele tehakse andmebaasi kasutaja, millel on piiratud õigused (andmebaasi serverites on välja töötatud väga põhjalikud õiguste süsteemid, ka ühenduste arvu piirangud jms).

Kõik läheb ju lihtsamaks: kasuta saab just nii pärida või andmeid lisada just nii nagu soovib, tal on täielik dokumentatsiooni, teegid, näited ja mida kõike veel.

Olen seda siin-seal küsinud, aga olen saanud ainult hämmingut, et sellist asja küll lubada ei või, aga mitte keegi ei vasta MIKS. Palun siis turvalisuse ja muud eksperdid -- materdage seda mõtet. :)

küsitud Nov 07 '11 at 10:27

Kaiko%20Kaur's gravatar image

Kaiko Kaur
2307711


Eks seda tehakse ka, kui väga vaja, aga on päris mitu head põhjust, miks seda mitta teha:

  • Üldiselt loetakse andmebaasiserverit niivõrd kriitiliseks komponendiks, et sellele ei anta niisama ligipääsu, suuremates ettevõtetes isegi ettevõtte sees mitte.
  • Baasiprotokolli liidese avamine kellelegi väljaspoole ettevõtte sisevõrku nõuab sisuliselt eeldust, et see liides on tervele maailmale lahti.
  • Rakendusserveri tasemel on tihtipeale parem teha kõikvõimalikku monitooringut, velocity kontrolle jms.
  • Baasiplatvorm ning tema liidese aadress muutub osaks kahe ettevõtte vahelisest kontrahtist. Järjekordne piirang, mida peab jälgima - parem on hoida ärilised ja tehnoloogilised sõltuvused lahus.
  • Paljud baasiprotokollid pole kuigi tulemüüri- ja NATisõbralikud (või vähemalt vanasti ei olnud).

EDIT:

Üks oluline nüanss jäi puudu: mida laiem on rajapind kahe organisatsiooni vahel (ning baasiliides on paratamatult päris lai), seda suurem on kliendi pool kiusatus sinna otsa mingeid totakaid häkke ehitada, millest vabanemine võib hiljem ootamatult raskeks osutuda. Kõige totram näide on see, kui klient rappis veebirakendusest selle loogika välja ning ehitas sinna otsa oma UI. Küll siis oli nuttu ja hala, kui pahaaimamatu teenusepakkuja rakendust uuendas ja poole selle siseelust ära muutis.

link

vastatud Nov 07 '11 at 11:55

Mart%20Oruaas's gravatar image

Mart Oruaas
211

edited Nov 08 '11 at 10:23

Üldiselt oleks mõistlik andmete salvestamine ja nende esitamine eraldi hoida. Kui kaks ettevõtet vahetavad andmeid API abil, siis pole vahet kuidas kumbki neist andmeid reaalselt hoiustab, niikaua kuni järgitakse kokkulepitud protokolli. Andmebaasimootori uuendamine või vahetamine ei lõhu sellisel juhul ka teise osapoole kliendi rakendusi, mis seda baasi kasutavad, juhul kui uuendamisega mingite käskude süntaks muutus vms.

Mingitel juhtudel aga on andmebaasi jagamine eri osapoolte vahel täiesti õigustatud. Näiteks kui kaks osapoolt kasutavad ühist Redise serverit, siis saavad kasutada selle mootori poolt pakutavaid lisahüvesid nagu Redise Publish/Subscribe lahendust.

link

vastatud Nov 09 '11 at 12:04

Andris's gravatar image

Andris
2553310

Struktuurseid andmeid (nt arve ja tema read) on lihtsam tagastada ühe XML-na, kui paluda kliendil andmebaasis kaks päringut teha. Samuti arvan ma, et otse tabelite kallal käimine seob välise liidese liialt realisatsiooniga.

Ja kui on vaja lamedat tabelit teisest süsteemist pärida, siis on lihtsam see tagastada CSV failina. Võrreldes XML-ga on see kompaktsem ja võrreldes otse andmebaasi külge ühendumisega universaalsem.

Teistpidi olen Kaikoga nõus, kuid selleks peaks andmebaas olema üles ehitatud nagu API - kindlad eraldi nimeruumis funktsioonid/vaated, mida saab välja kutsuda väljastpoolt. Tänapäeval on liiga vähe andmebaase selliselt disainitud.

link

vastatud Nov 08 '11 at 10:57

Tambet%20Matiisen's gravatar image

Tambet Matiisen ♦♦
77791125

Sinu vastus
lülita eelvaade

Jälgi seda küsimust

By Email:

Pärast sisselogimist saad tellida muudatuse teavitusi siit

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *kaldkiri* või __kaldkiri__
  • **paks kiri** või __paks kiri__
  • link:[tekst](http://url.com/ "pealkiri")
  • pilt?![alt tekst](/path/img.jpg "pealkiri")
  • nummerdatud nimekiri: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • põhilised HTML märgendid on samuti toetatud

Pinu tööpakkumised

kõik pakkumised »

Küsimuse sildid:

×10

küsitud: Nov 07 '11 at 10:27

nähtud: 3,176 korda

viimati uuendatud: Nov 09 '11 at 12:04

Litsents: Creative Commons Attribution License | Kontakt: info@pinu.ee