BusinessIntelligenceOptions
Therearemanybusinessintelligencetoolsoutthere,butasthe
DBA,itshouldnotbeyourjobtoselectonejusttosupportit.
However,thatmeansthatyou'llneedabasicunderstandingof
itsarchitecture,resourcerequirements,databaseconnection
model,queryconstructiontechniques,querytuningcapabilities,
andnumerousotheraspectsthatwillinfluenceyoursoftware
architecturedefinition.
Therearethreebasicbusinessintelligencesoftwarequestions
toask:
Willthebusinessintelligenceuserinterfacebefatorthin?
(Willtherebeawebserver?)
Willthebusinessintelligenceapplicationbetwo-orthreetier?(Willtherebeanapplicationserver?)
Ifthereareweband/orapplicationservercomponents,
whatoperatingsystem(OS)platformsaresupported?
Often,theend-users'businessintelligencesoftwareselection
and/orgeneraluserinterfacepreferenceswilldecidethefirst
twoissuesforyou.Whilethismayseemlikean
oversimplification,theanswerstothesetwoquestionscanyield
manydifferentresults.Assumingthattypicaldatawarehousing
businessintelligencesoftwareusershaveIntel-basedpersonal
computers(PCs)runningMicrosoftWindows,thenthefourmost
commonpossibilitiesinclude(showninFigure2-1):
PCtodatabaseserver(s)
PCtoapplicationservertodatabaseserver(s)
PCtoWebservertodatabaseserver(s)
PCtoWebservertoapplicationservertodatabaseserver(s)
Figure2-1.BusinessIntelligenceSoftware
Architecture
Ofcourse,theWebandapplicationservercomponentscouldbe
onthesamephysicalboxasthedatabaseserver.Thisdiagram
wasmeantmerelytoshowthelogicalconceptofallthepossible
componentsandtheirinterrelationships.
AlthoughtherearenumerousarchitecturaldesignsforbothWeb
andapplicationservers,thekeyissueforanyDBAistheWeb
and/orapplicationserver'sprocessmodel.Commonprocess
modelsinclude:
Single-process/single-threadwithblockinginput/output
(I/O)
Single-process/single-threadwithnon-blockingI/O
Processperrequest
Processpool
Threadperrequest
Threadpool
TheramificationsfortheDBAareinthevolumeandnatureof
thecorrespondingdatabaseserverprocesses.These
characteristicscanaffecttheDBA'sdecisionregardingOracle's
processmodelforissuessuchas:
Connectionpooling
Multi-threadedserver(MTS)
Parallelqueryoption(PQO)
OPSorrealapplicationclusters(RAC)
Let'sexamineasimple,yetrealisticexample.Theselected
businessintelligencesoftwarerequiresanapplicationserver.
Typically,thebusinessintelligencefront-endconstructsareport
definitionthattheapplicationserverthenprocesses.But,a
singlebusinessintelligencereportmayinfactpossessdozensof
individualstructuredquerylanguage(SQL)queries,whichthe
applicationserversubmitstothedatabaseandthencoalesces
intoactualreports.Moreover,theapplicationserversubmitsall
thoserequestssimultaneouslyusingaprocessperrequest
processmodel.Inaddition,asinglebusinessintelligenceuser
maysubmitmultiplereportrequestsconcurrently.So,asingle
businessintelligenceend-usermayinfactrepresenthundreds
ofsimultaneousdatabaseconnections!
We'renotdoneyetwiththisexample.Let'salsoassumethat
theapplicationservercanonlyrunonaWindowsNTserver
whilethedatabaseplatformwillbeUNIX.That'sa"boatload"of
networktrafficdescribedabovebetweenthesetwoservers.So,
itwouldprobablybeadvisabletoputthetwoserversona
dedicated,isolatedfibernetworkconnection.Areyounow
beginningtoseehowthesoftwarearchitecturedrivesthe
hardwareselectionprocess?