Saiku and Drupal - java

I've been browsing through the web but haven't been able to find any concrete topics on the integration of Saiku with Drupal. The main challenge seems to be that Saiku is java-based while Drupal runs off PHP.
I am wondering if anyone has implemented, or can provide thoughts on this union.
Is there anything similar to Saiku that would work with Drupal?

A developer of Saiku could answer you better than me but what I can say is that communication between Saiku-ui and Saiku is REST, so it is pure utilization of HTTP protocol. An integration could be an independent SAIKU server, Drupal relaying requests from the embedded UI inside your content.
Saiku is based on Mondrian, which is also a java library, but it can be deployed as an independent XMLA server. So you could recode Saiku REST services in PHP, which would call the XMLA services.

Well then a developer of Saiku shall answer:
Saiku UI is completely separated from the server and plain JavaScript and HTML, so it would be easy to integrate that somehow into drupal. basically you just need to drop the UI folder into drupal and configure where the server lives (to avoid cross domain issues it would be good if saiku server was connected via mod_jk or mod_proxy on the same apache as drupal runs)
if you want to leverage saiku as olap backend with custom PHP code, there is a framework developed by inovia called PHPAnalytics, that is using saiku server as a backend: http://labs.inovia.fr/phpanalytics/

Although Saiku UI use jquery and html at client side, it still need a restful service sit on top of OLAP engine at back end. The restful server provided by saiku package is java based, just like jpivot and pentatho analyzer. So if you want to integrate it with drupal, either you need to write your own PHP restful service, or you need proxy to another java based service in drupal server.
There is a pure javascript solution at webpivottable.com which provide excel pivot table-like UI to pivot all kinds of OLAP cubes. It's totally at client side and connect to XMLA service directly, so no back end dependencies. You can give it a try and it can easily to be integrated to any web site and web application. Here is a demo

Related

AngularJS/HTML(Frontend) and Java RESTful Service(Backend) Hosting

I am working on a personal project/website for classifieds from scratch using AngularJS/HTML5 for the frontend and a Java REST Api that will communicate with a database.
My main question is what are some good options to host such a site without costing me a fortune as it is after all just for personal experience and fun.
I have some java background and therefore i would want to focus on a Java based REST service. I am also learning Angular for the frontend.
What would be an ideal hosting solution for my purposes?
Any thoughts are welcome.
Thanks
Any service that supports Java applications (i.e. Tomcat) and databases should be suffice. AngularJS is client side JavaScript executed on the browser - so hosting plans shouldn't be impacted by this.
You do not need different hosting plan for angular . You can host angular website in tomcat also along with java rest api. Heroku provides free plan along with limitations.

Embedable Java-based HTTP server with (PHP) scripting support

For my Java project I need to embed a web server to provide various web pages to the user. Until now we used the "official" com.sun.net.httpserver.HttpServer class, which basically works fine.
However, now we want to extend our application in order to not only serve static HTML pages via the embeded HTTP server, but also dynamic content (PHP if possible).
Any recommendations?
EDIT: Nevermind, I found it quite easy to integrate Jython within my Java application :)

Developing Apps for iOS, Android and the Desktop

We have an existing distributed application used by a small company to manage their customers.
The server side component is deployed in the cloud as a simple Java app that manages a connection to a MySQL database.
The client side is implemented as a Java Swing application deployed using JNLP and communicates with the server side using RMI.
This has worked quite well for us so far, but recently we've been looking at how our customers could access the application from mobile devices, tablets (both iOS and Android) as well as from the desktop.
At the minute I'm thinking we should be looking into developing RESTful web services on the server side to manage access to the MySQL database. On the client side, we could use Googles GWT to provide a quick and easy solution for accessing the services from all platforms. Going forward we could implement native iOS / Android apps to access the web services.
Am I am the right track here? Does anyone have any better approaches? Does anyone have any recommendations as to what tools I should be looking at?
The key thing I am interested in is being able to access the server side from any platform. I really don't want to have to implement separate server side implementations for each
Sounds like you are on the right track with the RESTFul web services. If you go this route, you should be covered for the backend. As long as your frontend can do http requests and handle JSON data you will be fine.
Going forward we could implement native iOS / Android apps to access the web services.
It is possible to design a mobile app for deployment on both android and iOS, this could save time on the development effort. To do that you could use, for example PhoneGap, which creates an abstraction layer over the phone hardware, along with something like jQuery Mobile, in which the UI is developed in HTML5 and javascript, and the same code is deployed via PhoneGap on both devices.
PhoneGap: http://phonegap.com/
jQuery Mobile: http://jquerymobile.com/
if there is some other option that lets you deploy the same frontend on android, iOS, AND the desktop, i would go with that, so that you only have one code base for the frontend.
I think your solution (GWT/HTML5) client talking to a server-side "business" layer is a good multi-client solution. RESTful web services are unneccesary in the context of what you have described since the GWT implmentation would take care of the comms between client and server:
GWT client <---> Server (GWT) <---> Database
If you are using a different client implementation (such as iOS), then RESTful services will be very handy indeed (and you wouldn't use GWT):
iOS client <---> Server (RESTful endpoints) <---> Database
HTML5 is becoming provides a decent compromise between broad applicability (many clients) and rich client features. I have seen an article in the past about using PhoneGap and GWT together which sounded like a good strategy for working with GWT (which I like) and gaining access to device-dependent capabilities. All whilst working in an environment where you can (Java-)debug even client code (incredibly useful GWT feature).

How do you access SQL database from GWT?

I've read some articles on the Internet that this is not possible. To communicate own SQL database that is located on other server from GWT application. Jetty doesn't allow it.
I found a way how to perform it but it's not very cosy. I have client and server part inside GWT. The server has to communicate with MySQL database on localhost. So I've written an ant script to build a war that I can launch on Apache Tomcat server. It works perfectly there but I'm not able to debug the code effectively.
Do you have some advices how to perform this task? I was thinking of writing the clienty only in GWT and find some waz how to communicate my own server written outside the GWT. I've found Apache Thrift for GWT but this edited library of thrift seem not to work properly.
Thank you very much for your answers:)
It is possible to communicate with a database from a GWT application. The client side has to call the methods of the server via GWT-RPC, which can communicate with any database.
Maybe Jetty does not support it (have not tested it personally) but you can develop your web application using Apache too. There you can access the database the same way as from any web application:
You will need the mysql-connector-java-5.1.20-bin.jar file (downloadable from: http://dev.mysql.com/downloads/connector/j/ ), and restart the server added to the $CATALINA_HOME/common/lib directory.
OR added to the WEB-INF/lib folder of your web application.
You can find tutorials online of how to develop an application using Tomcat instead of Jetty. For example: https://wiki.auckland.ac.nz/display/BeSTGRID/Deploying+GWT+to+Tomcat+in+Eclipse
Reshi, stop and think about how applications really work. Nobody provides web pages with javascript to read/write databases, that would be crazy and unsecure. Servers are always in themiddle of all communication in this case. You need to create services that run inside your server, one of these services will be a database layer.
Javascript cant create network connections and read/write binary data, thus it would be insane to attempt to get the gwt compiler to compile any jdbc drvier and more.
Jetty does NOT stop us from connecting to a database. All you have to do is to follow the MVP model way. Although MVP is better bet against all hurdles, at a minimal point, you would have to try not having SQL code on the client package.

Creating Java Web Service using Google AppEngine

I'm trying to create a simple web service application where I can retrieve a collection of strings and store them into a data store on the AppEngine server.
I have knowledge in Java and barely any knowledge of Java Servlets and its WAR standards.
I would like to at least have some direction on how to create a web service using the Java technology AppEngine provides. I've searched but the articles are sparse and too lengthy while not providing any simple solutions.
I'd love it if I can create a web service using Java's annotations just like you can do in .NET with attributes.
I'd appreciate links to articles and guidance a full source answer is not required but would be appreciated.
No python based answers please.
IMO, there is no simple solution to build a Web Service on GAE with Java.
But, it's still achievable. Let's start with the Web Services we want to build.
In common usage the term refers to
clients and servers that communicate
over the Hypertext Transfer Protocol
(HTTP) protocol used on the web. Such
services tend to fall into one of two
camps: Big Web Services and
RESTful Web Services.
"Big Web Services" use SOAP/RPC format and RESTful Web Services use REST style one. You can read more about SOAP vs REST.
There are lots of Java open source Web Services frameworks out there. Most of them are generally based on the Java API for XML Web Services (JAX-WS), part of the Java EE platform.
JAX-WS is not supported by Google App Engine as specified in the list Will it play in App Engine. So forget about the "cool Java's annotations".
But, Restlet seems compatible with GAE. So if you think REST could be an option for you, I would go ahead and take a look at the Hello World tutorial of Restlet. Then, I'd go ahead and read the article on how to integrate Restlet with GAE.

Categories