Is the Data Speed Accelerator a requirement for MSAS?

Answered
Javier G. asked on June 14, 2018

Good morning,
I'd like to know if the Data Speed Accelerator is an unavoidable requirement for the use of flexmonster with MSAS. We have a web application that connects to MSAS Olap cubes via the old Microsoft Office Web Components, which we are looking a sustitute for. Flexmonster seems to fullfill the functionalities of OWC and a lot more, but we do not want to install anything on the MSAS server.
So, can I connect to the MSAS cubes from the client web-app without the Data Speed Accelerator? If so, is there a big hit in performance when not using it?
Thanks. 

7 answers

Public
Ian Sadovy Ian Sadovy Flexmonster June 14, 2018

Hello Javier,
 
Thank you for the question.
Data Speed Accelerator is not mandatory to connect to MSAS. We also support connection via XMLA protocol.
But still, it needs some configuration on the MSAS server. Actually, any third-party web pivot will require XMLA, because it is the only way to establish HTTP connection with MSAS server.
As for the performance, you can compare it on our samples:

Also, here are some advantages of Accelerator:

  • it's easy to install and configure
  • it has preconfigured CORS, GZIP and caching

Please let me know if you have further questions.
 
Regards,
Ian
 

Public
Javier G. June 14, 2018

Hello Ian,
Thank you for your answer, glad to hear it is not mandatory.
Actually, I just tested the connection with my data via XMLA and it seems to work fine. I'll keep testing flexmonster to see if it fits my needs 🙂
Regards,
Javier

Public
Ian Sadovy Ian Sadovy Flexmonster June 14, 2018

Glad to hear that XMLA works for you.
Feel free to ask in case of any other questions.
 
Regards,
Ian

Public
Javier G. June 18, 2018

Hello again,
Continuing with this topic...
In our current SSAS configuration we have some OLAP cubes accesible by everyone and also some cubes only accesible by certain roles that we have defined on the SSAS server. So, in our SSAS server's IIS we have a Virtual Directory with Anonymus Authentication enabled (for the cubes that every user can see) and another Virtual Directory with Basic Authentication enabled. The front end users from our webpage will then have a local user created on the SSAS Server that is member of a group that has role assigned on the SSAS.
With our current XMLA configuration with Office Web Components, when a front-end user wants to see the data of those cubes, we use the ConnectionString tag on the XMLA to log him on the server, with something like this: 
...
<x:ConnectionString>Provider=MSOLAP.4;Persist Security Info=True;User ID=machine\some_username;Password=some_password;Initial Catalog=our_catalog;Data Source=http://our_url_to_role_specific_msmdpump.dll;Extended Properties=&quot;Client Cache Size=25;Large Level Threshold=10&quot;;Auto Synch Period=10000</x:ConnectionString>
...
 
with, as you can see, the user/password settings on the XML. 
 
Now, onto my question, is there a way to do this with flexmonster, and is it possible without the Data Accelerator?
 
I can connect to the msmdpump.dll that has the basic authentication enabled but the browser will always ask for the credentials, and I'd like to do it automatically, so our front-end users don't have to type their credentials on their browser (actually they don't even know they have those credentials, it's just something we do internally to configure the data a specific user can access to).
 
I tried using the API connectTo() method with the dataSourceInfo parameter with no luck, also tried to use the getXMLADataSources(proxyUrl, 'onDataSourceLoaded','username','password') method with the username and password as parameters just to get the data sources but it keeps asking for the credentials as if the parameters are being ignored.
 
Any other options?
 
Thanks for your help.

Public
Dmytro Zvazhii Dmytro Zvazhii Flexmonster June 19, 2018

Hello Javier,
Thank you for your question. One of the reasons we designed Data Accelerator is to avoid the necessity of running the authentication from the client side. The browser rejects headers which are necessary to perform the authentication process. It is a restriction of the javascript, therefore it is not possible to run cube's authentication from the client side. However, some of our clients that decided using XMLA approach send the credentials using customData property. They use such approach to overcome the client side restrictions. Here is the example of how to send customDatahttp://jsfiddle.net/flexmonster/faq275u1/. Also, this article about using roles with analysis services may be useful for you: https://www.flexmonster.com/doc/configuring-authentication-process-for-ssas-xmla/#roles.
Please let us know if you have any other question.
Regards,
Dmytro

Public
Javier G. July 9, 2018

Hello again,
Continuing with this topic...
So, to configure the authentication process I tested the role approach (1st option from https://www.flexmonster.com/doc/configuring-authentication-process/). It works well but it would require a lot of work from us.
So I was considering the second option (using Accelerator with Windows username/password protection) but it's not clear to me how this works. It says the following: "One username/password is used in the flexmonster.config file for the Accelerator on the server side. In general, Accelerator will use these credentials if client-side report does not contain own credentials.
Alright, so, how to provide credentials in the client-side report?
Is there a way to send the username/password to the accelerator so it uses those credentials to log on the SSAS? Or is it always going to use the default credentials, defined in the flexmonster.config file?
Thanks!
Regards,
Javier

Public
Dmytro Zvazhii Dmytro Zvazhii Flexmonster July 10, 2018

Hello Javier,
Thank you for writing. The accelerator uses username/password from the flexmonster.config file for the authentication process. Flexmonster accelerator will always use the credentials from the file. If you want to start the Flexmonster proxy with the other username/password you need to stop the running instance and start a new one.
We do not advise to send the credentials from the client-side since that is not a secure approach. The recommended flow is the following: configure the necessary user roles on the cube and then use them on the client side when connecting with Pivot. You can find the example here: http://jsfiddle.net/flexmonster/7g82cnn3/.
Also, please note, that you can always include the accelerator dll into your project. In such case, it is not necessary to launch accelerator as a separate instance since it is already included in your application. Such approach provides a wide variety in the way of handling the security on your side. Please find the example of using accelerator dll here: https://www.flexmonster.com/doc/referencing-accelerator-as-dll/.
Let us know if you have any other question.
Regards,
Dmytro

Please login or Register to Submit Answer