I have an application for customer/contract/product management developped by angularJS/Rest ws/Spring/ hibernate and postrgreSql, this app is called ERM Now I need to integrate doc management related to contracts and products The differents operation on docs are :
a) Upload, retreave docs -
b) Searching docs -
c) Opening doc office -
d) editing in real time doc office -
e) versioning docs -
f) archiving docs -
g) notifiction for any doc modif -
h) ocr to text -
i) design a bmp model workflow for contracts/product, docs can be attatched to any step of contract.
I have get the advice to add the repository server side of alfrescoo and call doc management by REST API from my application ERM. someone else tell me to call repository side via webscript
Q1) what are the different wetween REST API and webscript and which is the best method Q2) Is there an advantage to use only server alfresco without the front side ? Q3) is there some links presenting the same architecture and how install and to tune ? Q4) is the https://api-explorer.alfresco.com/api-explorer/ enough to manage doc (because I did't find for example upload pr retrieve doc) Q5) Which of the features described above are part of the server side ? Q6) Is bpm workflow part of front side ? Q7) I will use jbpm to manage workflow steps for contracts/products, but docs follow also the same workflow, with alfresco it is a must to use it's bpm (activity module), how can choose my bpm ? Q8) Is ocr of alfresco part of front side or server side ? Q9) Is there a solution to integrate front alfresco with my own front ? Q10) is there the necessity to remake from scratch my own work with alfresco to homogeneous developement ?
Re: integrate alfresco to existing java application
Q1) what are the different wetween REST API and webscript and which is the best method
See the web scripts tutorial for more info on web scripts. The REST API should be the first API to try to use. If you cannot find what you need there (unlikely) then you can look for out-of-the-box web scripts that are marked "public" or "draft public".
Web scripts are used to implement a RESTful API. Alfresco has more than 400 out-of-the-box and you can add your own.
The new REST API is where a lot of development is happening right now and it is always preferable to use what Alfresco is distributing versus develop your own.
Q2) Is there an advantage to use only server alfresco without the front side ?
You'll likely need some sort of front-end to help with administrative tasks.
Q3) is there some links presenting the same architecture and how install and to tune ?
Read the docs and then let us know if you are still stumped. In our discussion on ecmarchitect.com I described the architecture to you, so you should be able to diagram that yourself.
Client-side: Open doc in office, edit in real-time (you'll need an app that facilitates this), designing a process.
Q6) Is bpm workflow part of front side ?
Yes and no. BPM processes are typically designed on your workstation using a BPMN diagramming tool. However, there are web-based tools that also allow you to design BPM processes. Standalone Activiti allows you to do this, for example. Once you are done diagramming your process you'll deploy it to the server and it will run there inside the BPM engine.
Q7) I will use jbpm to manage workflow steps for contracts/products, but docs follow also the same workflow, with alfresco it is a must to use it's bpm (activity module), how can choose my bpm ?
Alfresco ships with Activiti, which was created by the same team that created jBPM. In older versions of Alfresco the engine was jBPM but in modern versions it is Activiti.
You have developed a custom app. If your custom app uses jBPM you can continue to use it in your custom app. There are a lot of ways you could implement workflow under this scenario. Without knowing what you need to do it is impossible to select the best. For example, your app could be entirely responsible for all workflows, even for docs stored in Alfresco. Your app (and your instance of jBPM) would just track node references or some other identifier.
Or, you could implement Activiti workflows within Alfresco and have your jBPM workflows kick those off. That might be a preferred option if you want your end-users to manage tasks within Alfresco instead of your custom app.
If you want your users to only use your custom app for all interactions with documents, then conceptually you should just treat Alfresco like a back-end "document database" and do as much as you can in your own application. Under this scenario I would use your jBPM for workflow and ignore Alfresco's workflow capabilities.
Q8) Is ocr of alfresco part of front side or server side ?
OCR is not included in Alfresco. But that is a server-side function. As I mentioned in our discussion on ecmarchitect.com you could find an OCR add-on for Alfresco. Then your scanner could store scanned images in Alfresco (or your custom app could store them in Alfresco) and the add-on would convert the images to machine-readable text which would also be stored in Alfresco and your application could retrieve that.
Q9) Is there a solution to integrate front alfresco with my own front ?
You could do some simple Alfresco Share Dashlets that communicate with your custom application. You could also write a custom front-end to Alfresco using Alfresco ADF. Your custom ADF front-end would have custom components that talk to your custom application.
Q10) is there the necessity to remake from scratch my own work with alfresco to homogeneous developement ?
No, absolutely not. That's the beauty of integrating with Alfresco via HTTP. Your app does not care that Alfresco is written in Java. Alfresco does not care that your app is written in whatever it is written in. The two communicate using a language they both understand, HTTP.