;

Zájem o SaaS roste: úspory na prvním místě

4. 1. 2014
Doba čtení: 3 minuty

Sdílet

Autor: © schnubi - Fotolia.com
Využívání softwaru jako služby – tedy SaaS (software-as-a-service) – je stále populárnějším dílem skládačky možností, které poskytují moderní cloudové technologie. Jak si stojí české firmy na tomto poli?

← Předchozí část: Kdo je typický zákazník?

Zájem táhne úspora nákladů

Že úspora nákladů je významným motivačním faktorem pro využívání SaaS, na tom se vzácně shodli všichni naši respondenti. Ovšem není to činitel jediný, někteří připomínají i flexibilitu a rychlost cloudových řešení. Václav Kameníček má zkušenost, že v segmentu, kde jeho firma působí, je vyčíslení úspor pouze předpokladem pro úvahu o nasazení SaaS. „Za hlavní dva motory přechodu na cloud považuji jednak dosažení vyšší celkové efektivity fungování společnosti, jednak snahu o dosažení určitého jiného cíle, ať už jde o cíl obchodní, technický nebo nákladový,“ doplňuje Kameníček.

Může v praxi nastat případ, kdy se řešení neosvědčí a dojde k návratu ke „klasické variantě“? Většina dotazovaných se s takovým případem v praxi nesetkala. Jak připomíná Petr Loužecký, běžné jsou ale případy, kdy firmy přecházejí od jednoho poskytovatele k jinému z důvodu nespokojenosti. „Je velmi důležité nepodcenit výběr poskytovatele a nedat jen na nejnižší cenu,“ dodává Loužecký. Tomáš Krátký jako typickou možnost vidí případ, kdy má poskytovatel služby nevhodně nastavený licenční model, který není efektivní pro větší množství uživatelů.

Hlavní obavou je bezpečnost dat

Jaké jsou hlavní obavy zákazníků před přechodem na cloudová řešení? Jsou racionální?

Že jednou z důležitých obav je bezpečnost dat, na tom panovala všeobecná shoda. Petr Bouška doplnil, že důležité riziko vnímané zákazníky představuje přístup z veřejné sítě internetu. Roman Trnka ale připomněl, že většina klientů si nakonec uvědomí, že tuto problematiku mají poskytovatelé cloudu zpravidla dostatečně vyřešenou. S tím souhlasí i Martin Hruška: „Právě vysoká bezpečnost dat je jednou z výhod našich cloudových služeb.“

To je celkem pochopitelné, protože jen velmi výjimečně si mohou firmy dovolit investovat významné prostředky do vybudování úrovně zabezpečení, jaká je k dispozici v datových centrech cloudových poskytovatelů. „Pro zákazníka využívajícího naše cloudové služby jsou pak jasnou garancí bezpečnosti mezinárodně uznávané standardy a certifikace, které naše služby splňují: ISO 27001, ustanovení EU o modelu bezpečnosti a přenosu dat, mezinárodní směrnice Safe Harbor, ujednání HIPAA-BAA a nařízení FISMA.

Zákazníkům také nabízíme komplexní smlouvu o zpracování dat a ochranu osobních údajů,“ dodává Hruška. Podle Martina Válka si velcí poskytovatelé cloudu nemohou dovolit zneužití dat svých klientů, a proto mají vypracované interní bezpečnostní mechanismy. „V těchto službách je totiž velká konkurence,“ dodává.

Pokračování: → Obava ze závislosti

Čtěte také:
→ Pět základních faktů, které potřebujete vědět o SaaS
→ Vyplatí se IaaS?

G+

'; document.getElementById('preroll-iframe').onload = function () { setupIframe(); } prerollContainer = document.getElementsByClassName('preroll-container-iframe')[0]; } function setupIframe() { prerollDocument = document.getElementById('preroll-iframe').contentWindow.document; let el = prerollDocument.createElement('style'); prerollDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:20px;right:25px}"; videoContent = prerollDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('PREROLL sound allowed'); // setUpIMA(true); videoContent.volume = 1; videoContent.muted = false; setUpIMA(); }).catch(function () { console.log('PREROLL sound forbidden'); videoContent.volume = 0; videoContent.muted = true; setUpIMA(); }); } } function setupDimensions() { prerollWidth = Math.min(iinfoPrerollPosition.offsetWidth, 480); prerollHeight = Math.min(iinfoPrerollPosition.offsetHeight, 320); } function setUpIMA() { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Preroll advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = prerollWidth; // adsRequest.linearAdSlotHeight = prerollHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. prerollDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( prerollDocument.getElementById('adContainer'), videoContent); } function unmutePrerollAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } } function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(prerollWidth, prerollHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } function onAdEvent(adEvent) { const ad = adEvent.getAd(); console.log('Preroll event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: if (!ad.isLinear()) { videoContent.play(); } prerollDocument.getElementById('adContainer').style.width = '100%'; prerollDocument.getElementById('adContainer').style.maxWidth = '640px'; prerollDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); if (ad.isLinear()) { intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } prerollDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (prerollLastError === 303) { playYtVideo(); } break; case google.ima.AdEvent.Type.COMPLETE: if (ad.isLinear()) { clearInterval(intervalTimer); } playYtVideo(); break; } } function onAdError(adErrorEvent) { console.log(adErrorEvent.getError()); prerollLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { playYtVideo(); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoPrerollPosition.remove(); playPrerollAd(); } else { return false; } adVolume = 1; return true; } function onContentPauseRequested() { videoContent.pause(); } function onContentResumeRequested() { videoContent.play(); } function onActiveView() { if (prerollContainer) { const containerOffset = prerollContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (prerollPaused) { adsManager.resume(); prerollPaused = false; } return true; } else { if (!prerollPaused) { adsManager.pause(); prerollPaused = true; } } } return false; } function playYtVideo() { iinfoPrerollPosition.remove(); youtubeIframe.style.display = 'block'; youtubeIframe.src += '&autoplay=1&mute=1'; } }
OSZAR »