1

I am very new to Drupal. I am currently watching videos and reading many online tutorials. I came to Drupal, because I understand it is a good CMS system (at least recommended by many, and the more I learn, the more I agree).

But, the more I learn, the more I am wondering whether it could solve another of my needs: acting as a user front-end for a server-side application. Let me describe this.

  • I have a couple of experts entering technical information in a system (i.e. database). I understand I can create specific screens with specific fields in Drupal (that's great, no coding) and that it would be stored in the database when ready.

  • After information is entered by experts, heavy time and cpu consuming asynchronous processes should be started in background and resulting information stored in the database.

  • Next, users should be able to read results with another screen in Drupal.

Instead of performing the heavy processes on the web-server, I was wondering whether I could use another server to connect to the drupal database instance (with a deamon application written in Java for example), perform the heavy duty tasks, and store the information in that same database.

My questions are:

  1. Is this realistic? Has anyone attempted this?

  2. Is it easy for a 3rd party application to read data from a Drupal database and store results in it? Does Drupal offer specific modules faciliting this? Any documentation or tips available?

Thanks.

2
  • 1
    Not sure but you should check the services module it might be helpfull for you to communicate with drupal.
    – j2r
    Feb 2, 2012 at 5:10
  • I guess like any PHP framework you can 'make' it work for your project. But as @stefgosselin said, Drupal is far more than CMS. Orchestrating workflows and interacting with external services are two things Drupal can do very, very well.
    – Citricguy
    Feb 2, 2012 at 7:51

2 Answers 2

2

Here's my understanding:

  • Drupal will allow you to quickly create a content-type to store the data you need, and customise how your users enter their data.
  • It's possible to query the Drupal database directly, but if you're not familiar with Drupal's schema, you'll need to spend a little time understanding where your data is stored.
  • Once you do understand the schema, you may find the database is over-normalised for your requirements, which will mean a lot of joins will be required. Might not be an issue depending on your infrastructure and the quantity/frequency of data you're talking about.
  • There are several APIs you can use to get data out of the database (assuming Drupal 7):
    • For direct SQL queries, use db_query
    • For the Drupal db access layer, use db_select
    • For something you configure, you could use views which you could output to any number of formats (json, XML, HTML etc.)
    • There are dozens of other modules which will allow you to integrate with other systems, one of those might suit your purpose.
  • Storing the processed information again will depend on how much the data has changed, and how it need to be stored. For example: are you just overriding the existing data? Will the new data be added to the existing nodes, or will new nodes be created? Regardless, you'll probably need a custom module for this.
3

Absolutely.

Do not be put off by the 'CMS' label, Drupal is actually quite a framework in itself. Drupal really does a good job for small to mid-sized applications, as the application gets larger though one has to tweak and push the limit a bit more. To be fair, this is true of most any PHP application.

I have built quite a few applications myself that leverage the power of Drupal, some internal, some public: production management, calendaring applications, rental/item reservation for 4000 items +, mailing list management, (and more).

In my (very humble) opinion, Drupal saves a lot of time, especially for the 'user-management' aspect of application building. As a bonus, you have the rest of the framework to play with when developping your app.

Hope that helps, happy coding, good-luck!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.