SOAPI and Jamroom

alt=
Matthias
@matthias
5 years ago
15 posts
Hi,
it has been a while since I used jamroom. Now I was very much surprised where you guys came so far. Very nice. So I thought maybe I could switch to jamroom with a media project. This switch would need a SOAP integration so that I could fetch the media data from my seperated "digital asset management" system and bring it into jamroom.Media alike videos, photos, categorie lists etc ... This system on its side only supports SOAP and no Rest API. Has anyone allready used Jamroom together with SOAP over Http. Or is there allready a wrapper from SOAP to Rest within Jamroom somwhere. I hope I was clear enough to tell you what I am looking for.

Looking forward hearing from you.
Best Matthias
updated by @matthias: 11/05/19 03:36:15AM
michael
@michael
5 years ago
7,692 posts
Paul's built some importer modules for the jamroom side of things. The issue would be getting the SOAP structure to a structure that works with the importer modules, so there would need to be something custom built to do that. How complicated that is to build would depend on how the SOAP system works.

Paul should be along in a while, he might have a better idea than me.
paul
@paul
5 years ago
4,325 posts
Hi Matthias
Haven't used SOAP. I assume its a method of pulling metadata and files from another site or server?
If so, a custom module would be needed to either import the SOAP items directly, or to create files that the Jamroom Importer/Exporter modules can use - https://www.jamroom.net/the-jamroom-network/documentation/importing-merging-sites-to-jamroom

Either way, if you point me to some SOAP specifications and developer/user guides I may be able to offer further help and advice.

Thanks


--
Paul Asher - JR Developer and System Import Specialist
alt=
Matthias
@matthias
5 years ago
15 posts
Hi Paul and Michael,
thank you very much for your response. SOAP stands for "Simple Object Access Protocol" and is a network protocol based on http and xml for exchange of data between services and servers. Paul is right with this API one can do verious remote procedure calls alike get get media by ID or Categorie etc ... You can get a fast introduction into SOAP here https://en.wikipedia.org/wiki/Web_Services_Description_Language.
The media asset management software that I am using at the moment is called flowcenter. The detailed API documentation and definition is generated by the WSDL file and can be read here: http://flowcenter1.flowworks.de/flowcenter.wsdl/flowcenter.wsdl.xml
There are a couple SOAP messages available that are working like program functions with a request and a response. You can use the heartbet function for basic SOAP connection tests. You can think of SOAP that it is a little bit alike REST but different.
There always should be a PHP or any other kind of CGI-script between the SOAP API and the
client browser. It should validate the requests before calling the SOAP API and make the SOAP
API 'invisible' for the client.
If there is a dummy user the password must not be inside the HTML/Javascript source codes in the
client browser! Otherwise the user can be able to access more functions then you wanted to offer in
your frontend.
It is recommended to use additional security measurements for the SOAP API e.g. HTTPs, Client
certificates, HTTP Auth or IP restrictions.

So in the flowcenter database there are all the media files alike mp4, photos in jpg etc ... stored as well as the categories and file trees are accesible. What would be great to either use Jamroom as the frontend CMS and keep the flowcenter digital asset management library still live in the backend on the server. Or further on to get all the database fields within the media assets and get them imported into the jamroom database. Which I assume is the way more complex situation to solve. So to me it would be allready very much helpful if I could adress with a php script or "module" the SOAP API and just get the links to the digital media files via calls.

I hope I wrote this understandable ;).
I am looking forward hearing from you.
Best Matthias
brian
@brian
5 years ago
10,136 posts
Hi Matthias - unfortunately Jamroom has no support for SOAP API's, so something custom would have to be built specifically for this. I used to work with a SOAP API about 20 years ago - this isn't a protocol that is use much anymore. Is there an upgrade available for your other system that might allow it to use straight XML or JSON?

Thanks!


--
Brian Johnson
Founder and Lead Developer - Jamroom
https://www.jamroom.net
alt=
Matthias
@matthias
5 years ago
15 posts
Hi Brian,
well that is kind of possible but was never really followed up on. Actually that is why I am looking around again and am willing to switch. All I really have is SOAP as API which fully supports data export as well as users and media assets alike pics and videos.
A JSON would need to be created for each kind of category as well as subcategories and even then we only scratch the overall toplevel because the filesystem would go into deep once it comes to user management and asset lists alike individual playlists, downloadable zip files etc...

As far as I know there was SOAP directly integrated as a module in PHP or so. To me SOAP looks similar to REST in the way it functions. https://github.com/meng-tian/php-soap-interpreter
Is there an option in Jamroom where I would be able to build a wrapper for that script or something similar? I remember that there was something alike that in Jamroom 4. Some kind of module maker.
What do you think. Would that be an option to do? Or how much would it cost me that you write a custom solution to solve this problem?
Thank you very much.
Best Matthias
brian
@brian
5 years ago
10,136 posts
It's hard to say how much work this might involve. What is the name of the other system? It depends on what level of integration you are looking for. If this other system is containing the media, are you looking to just "import" it in to Jamroom and then run on Jamroom only, or are you looking to somehow "link" the 2? That would likely be a much larger amount of work, and likely not as performant.

Is there a feature in the other software that you are looking to use that makes you want to continue using it rather than just importing and moving to Jamroom?

Thanks!


--
Brian Johnson
Founder and Lead Developer - Jamroom
https://www.jamroom.net
alt=
Matthias
@matthias
5 years ago
15 posts
Hi Brian,
no actually I am thinking about switching over to jamroom. I am with your software allready as you know ever since 2005 almost when you first started. But I always had various special feature request as you might remember and various different situations so that I had to go and look around to other systems. So I went with the so called "Flowcenter" from a company in germany called Flowworks.de .

The detailed SOAP API documentation and definition is generated by the WSDL file and can be read here:
http://flowcenter1.flowworks.de/flowcenter.wsdl/flowcenter.wsdl.xml
All I would want to do is to migrate to Jamrooom from Flowcenter. Which means there are a couple user accounts but a lot of videos, fotos and various metatags as well as playlists. But mainly the Videos and Photos need to be taken over. I do have a masteruser and PW of course and I am able to use the SOAP API to its fullest. So all there needs to be done in my point of view is to activate the SOAP interpreter in PHP and write a SOAP API Module for Jamroom.

All there needs to be in my eyes is the user and password clearance, the target URL to connect to the other servers backend and port and then to read out all the mySQL fields and activate them to pull them over into Jamroom Database.

Something alike an injector module.

Also I do have the possibility to create various JSON to crawl all the media data as well. But that does not fullfill my plan to completely switch over to jamroom. As you can see I do have 2 premium site licences for Jamroom and have bought almost all you offer so far. So a SOAP integrator modul would really be great to have and since SOAP is allready integrated as standard feature in PHP it shouldn`t be a big of a thing to get it into the Jamroom system enviroment up and running. And I would of course pay for such a module as usual.

My last big setup that I made was with Jamroom 4 as you might remember. And so I thought before I start digging into deep I will ask for help if there is allready a module for SOAP or if there has had someone allready the situation to migrate via SOAP.

I hope this helps you to understand my plan and once you have a look at the wsdl file you will understand the structur quite fast I am sure.

Looking forward hearing from you.
best Matthias

updated by @matthias: 07/23/19 01:40:45AM
brian
@brian
5 years ago
10,136 posts
The best solution here would be to IMPORT everything you can in to Jamroom, then no longer use the other product - that would be the simplest and most "complete" way to get JR working with the data. Paul is our import specialist, so if that sounds like something you'd want to explore let us know and we can check out what it would take.

Thanks!


--
Brian Johnson
Founder and Lead Developer - Jamroom
https://www.jamroom.net
alt=
Matthias
@matthias
5 years ago
15 posts
yes - that is what I was thinking about doing. Therefor I called the flowcenter company and the only interface they offer to manage an export is via the SOAP API. Therefor I do have a masterusername and password as well as a url within which I could export everything from the mysql database into any other MYSql database. But of course the scheme needs to be updated and therefor the wsdl file which I posted the link before helps really to solve the situation.
So actually all there needs to be done is to use the SOAP / PHP mod which is allready in PHP eversince and adapt it into the smartyphp format. So that all the parameters alike "getclip" request can be translated and rewritten into the database in JR. Same with getcliplist => to Playlist in JR etc ....

http://flowcenter1.flowworks.de/flowcenter.wsdl/flowcenter.wsdl.xml

My problem eversince is that I am still not really into smartyphp and since you both are great in programming JR I thought I might ask for help concerning this SOAP to JR module.

Thank you.
Best Matthias
paul
@paul
5 years ago
4,325 posts
Hi Matthias
We will discuss this next week at our team meeting to work out what can be done.
Will let you know asap.
Thanks
Paul


--
Paul Asher - JR Developer and System Import Specialist
alt=
Matthias
@matthias
5 years ago
15 posts
Oh great Paul,
I am looking forward to your results.
Have a nice weekend.
Best Matthias
paul
@paul
5 years ago
4,325 posts
Hi Matthias
Can you create a support ticket with details of your SOAPI endpoint and credentials along with details of how to use it to get some of your data that wants importing?
We need to get a feel for the job, the data format and how it might line up with the Jamroom formats in order to take this project further and to be able to quote you for it.
Thanks
Paul


--
Paul Asher - JR Developer and System Import Specialist
alt=
Matthias
@matthias
5 years ago
15 posts
Hi Paul,
well I am not able to create a ticket as far as I know since this feature requires a monthly VIP subscription which I do not have. Correct me if I am wrong. Also I do not have an testing instance so far from the flowworks company that drives the DAM where all the videos and photos are managed with and stored. Actually all they give me is that SOAPI. The database is in MySQL on their side. Also I did get the field definition paper (FlowCenter SOAP API) from them. They name it "Introduction and configuration". Since this paper is quite helpful I think I could send it to you. How can I transfer a file to you without getting it seen by the whole internet?

But actually all details are allready in the http://flowcenter1.flowworks.de/flowcenter.wsdl/flowcenter.wsdl.xml

Actually SOAPI works almost similar to a REST API. So what it does is it requires a specific URL where one can connect to another server that runs the SOAP API on a specific port. A user with read or write access and a password can then communicate with the MYSQL database.

Also SOAPI is completely integrated in PHP and can be run out of the box. A SOAP Interpreter can be found here: https://github.com/meng-tian/php-soap-interpreter


So all there needs to be done is an API integration into Jamroom (smartyphp-environment) via a "Module". The Module would need the following fields in my opinion:
- Path to the external Server
- username
- PW

There are SOAP testing programs for free that can read the WSDL to make example requests, e.g.:
http://sourceforge.net/projects/soapui/
Flow Center and SOAP can also be run with HTTPs and additional HTTP authentication by
configuring the apache webserver.

About the security aspect the following can be said:
There always should be a PHP or any other kind of CGI-script between the SOAP API and the
client browser. It should validate the requests before calling the SOAP API and make the SOAP
API 'invisible' for the client.
If there is a dummy user the password must not be inside the HTML/Javascript source codes in the
client browser! Otherwise the user can be able to access more functions then you wanted to offer in
your frontend.
It is recommended to use additional security measurements for the SOAP API e.g. HTTPs, Client
certificates, HTTP Auth or IP restrictions.

Custom data
For SOAP-Messages getclip, editclip, getuser, edituser, getcliplist, editcliplist it is necessary to
allow custom data which is not defined in WSDL because it differs with every project. This SOAP
parameter type is called „flowmetadata“.
For example a music website needs metadata like „title“, „artist“, „album“, whereas a commercial
database needs metadata like „product“, „title“, „client“.
You can use the parameter “custom_metadata” (or “custom_metadata_def”) in these functions to
load a configuration. Inside the configuration your custom data is defined.
Another part of this configuration is a filter for media files. Each clip is linked to multiple media
files. You can either see all of them or a filtered result. The parameter “purpose” inside the
mediafile details can be used to tell the SOAP client what you need this file for.
I do have the configuration data for name, custom data examples and media file
purposes. But would not like to share them here in the public form as well.

So the best would be I could email you the PDF document and we can take the route from there if you don`t mind. I should actually have your emailadress from a couple years ago. Once I am at home I will check my old computer.

I hope this helps allready.

Best Matthias

Tags