Вы находитесь на странице: 1из 24

ORYX Editor and APROMORE Integration

Mehrad Agha Seyyed Sadegh n7030215

Contents
1. 2. Introduction ................................................................................................................... 3 Architecture ................................................................................................................... 4 2.1 Model 1 ....................................................................................................................... 4 2.2 Model 2 ....................................................................................................................... 6 2.3 Model 3 ....................................................................................................................... 7 3. 4. 5. 6. Versioning ..................................................................................................................... 9 Decoupling .................................................................................................................... 9 Testing ........................................................................................................................... 9 Upgrading .................................................................................................................... 10 6.1 Building and Compiling ............................................................................................ 10 6.2 Additional Java Sources ............................................................................................ 11 6.3 Modified Java Sources............................................................................................... 11 6.4 Additional Javascript Sources .................................................................................... 14 6.5 Modified Javascript Sources ...................................................................................... 14 6.6 APROMORE Settings File (APROMORE.properties) ............................................... 18 6.7 Modified Configuration Files..................................................................................... 18 6.8 Adding Edit Annotation Stencil Set ........................................................................... 21 6.9 Modifying Styles ....................................................................................................... 21 7. 8. 9. Assumptions ................................................................................................................ 23 Known Issues ............................................................................................................... 23 Conclusion ................................................................................................................... 24

1. Introduction
This document describes the integration of the ORYX Editor with the Advanced Process Model Repository (APROMORE). The document details how the ORYX and APROMORE are integrated with one another. Three possible architectures for conducting this task are discussed and the selected models have been described. In addition, steps necessary in upgrading, assumptions taken and known issues with the integration process have been discussed and described in detail. The document aims to justify the steps taken to implement and conduct this integration with the goal of clearly stating the modifications and necessary assumptions.

2. Architecture
Various approaches are available for integrating the ORYX Editor with the APROMORE framework. Three possible solutions, referred to as Model 1, Model 2 and Model 3, were considered, and Model 1 was selected as the architecture, this will be discussed in this section.

2.1 Model 1

GET Request

Portal

Oryx

Service Call Service Call

Manager

In the first model, ORYX will act as a client for the APROMORE exposed services portal. In addition, the portal cannot send ORYX any messages unless it is requested by ORYX. The steps required in implementing this approach are described below.

1. The user chooses a process to edit in the APROMORE portal. The portal then assigns a session code to this process, which can be any sequence of numbers.

2. The portal then opens a URL, e.g.: http://localhost:8080/oryx/openFromApromore?&sessionCode=242 in a new window.

3. ORYX then requests the process that was previously mapped to the session code, given in the URL parameters.

4. After that the OpenFromApromore servlet extracts the process name and version, and generates a URL, e.g.: http://localhost:8080/oryx/editor;bpmn?stencilset=/stencilsets/bpmn1.1/bpmn1.1.json &sessionCode=242&processName=testprocess&processVersion=1.2 to which the request is redirected. However, prior to this redirection, the native process is stored in the users session.

5. The APROMORELink.js plug-in then requests the native process that is mapped to the session code given in the URL parameters.

6. The APROMOREXPDLLinkServlet.java servlet then sends back the mapped native process in the form of an AJAX response to the APROMORELink.js plug-in.

7. The plug-in then displays the process. 8. Assuming that the user then chooses to utilize the Save or Save As option, a dialogue box appears, which then asks the user to enter the process name and process version. 9. After the user chooses the Save option the process information are sent to the APROMOREXPDLLinkServlet.java servlet in the form of a JSON object.

10. The APROMOREXPDLLinkServlet.java servlet then generates the native process using the JSON object and it sends it back to the APROMORE portal through a SOAP message.

To implement this, a mapping must be kept between the generated codes (242 in our example) and the real process (a candidate data structure is HashMap). This mapping should be kept in the whole lifecycle of the APROMORE portal, and one of the possible solutions is HTTPSession Object.

One of the drawbacks of this approach is that some security settings need to be passed through the URL to the editor (e.g. which plug-ins should be visible to the user?). This was solved by ensuring that ORYX would not be aware of the user credentials (e.g. author) and later adding this information to the native process in the APROMORE portal.

This approach is easy to implement as the ORYX editor requires minimal modification in comparison to the other models that will be discussed further in this section. In addition, an advantage of this model is that another context (a different server) can be considered for the ORYX editor and updates to ORYX can easily be applied to the customized ORYX editor.

2.2 Model 2

GET Request

Portal

Oryx

Service Call Service Call

Manager

This model is same as Model 1 but in this Model, ORYX communicates with the Manager instead of the Portal. The main disadvantage of this model is that it requires the user credentials to be passed to the ORYX editor via the URL. This problem was solved in Model 1 by first checking the user credentials in the APROMORE portal and then allowing the user to edit processes.

2.3 Model 3

Service Call Oryx

Portal

Service Call

Service Call Service Call

Manager

In this model, the ORYX editor acts both as a server and a client for APROMORE framework. Passing the model to ORYX will be through forwarding the request from the portal to the editor. Here are the possible steps:

1. APROMORE portal opens ORYX editor by derailing the request to the ORYX page (which is in the same context) and all parameters required can be passed as request attributes.

2. The ORYX editor will then appear and the user can edit the process.

3. The user can save the process by submitting it to the ORYX backend. The backend then works tightly with the portal through having the same session and same context. ORYX can then call the save services already available in APROMORE.

One of the drawbacks of this approach is that the ORYX source is required in the application and must be modified. Thus, updates in ORYX lead to more necessary changes in the application. Another disadvantage is that the developer needs to fully understand how the ORYX editor works in order to be able to integrate it with APROMORE. However, the advantage of this model is that we dont need to rely on GET requests or parameter passing through the URL.

3. Versioning
The APROMORE portal keeps track of all the versions of an edited process and does not replace the saved processes. To do this, each time the user selects Save As to save a process, ORYX provides the user with the option of modifying the process name and version, with the default process version set to 0.1. However, if the user selects the Save option, ORYX only allows the user to modify the process version, while the process name is kept unchanged. It must be noted that in the case of the Save option being selected, ORYX automatically increments the process version but this can yet be modified by the user.

4. Decoupling
Decoupling is necessary to provide independence between the frontend and backend of ORYX. This has been implemented in the latest version of ORYX currently available.

5. Testing
All process files beginning with INN693 in the WINBOX machine

(http://131.181.206.10:8080/Apromore-portal/) can be utilised for testing the Save and Save As options. The remaining files have not all been tested, however, it appears that no problems will be incurred in testing of these files.

6. Upgrading
The updated versions of ORYX will require necessary modifications in order to ensure compatibility with the APROMORE. This section describes the processes required to conduct these modifications, with the assumption that the latest version of ORYX has been checked out and available in the workspace. In this section, Building and Compiling, Additional Java Sources, Modified Java Sources

6.1 Building and Compiling The building and compiling processes are automatically conducted using a script in order to speed up the development phase, however not all of the steps conducted using this script are necessary and at the same time additional steps are required, for this reason modification of this script can contribute to further speeding up the development. The additional tags needed to modify the script (build.xml, located on the root of the ORYX workspace) are displayed below.

<target name="copywar" depends="deploy-all"> <delete dir="d:\Tomcat6\webapps\oryx"/> <copy todir='d:\Tomcat6\webapps'> <fileset dir='dist' includes='oryx.war'/> </copy> </target> <target name="tomcat-start"> <java jar="d:\Tomcat6\bin\bootstrap.jar" fork="true"> <jvmarg value="-Dcatalina.home=d:\Tomcat6"/> <jvmarg value="-Xdebug"/> <jvmarg value="-Xrunjdwp:transport=dt_socket,address=8009,server=y,suspend=n"/> </java> </target> <target name="tomcat-stop"> <java jar="d:\Tomcat6\bin\bootstrap.jar" fork="true"> <jvmarg value="-Dcatalina.home=d:\Tomcat6"/> <arg line="stop"/> </java> </target> <target name="deploy" depends="tomcat-stop, copywar, tomcat-start" /> <target name="mehrad" depends="build-editor,deploy_oryx_frontend,tomcat-start"/> <target name="deploy_oryx_frontend" depends="tomcat-stop"> <delete dir="d:\Tomcat6\webapps\oryx"/> <copy todir='d:\Tomcat6\webapps'> <fileset dir='dist' includes='oryx.war'/> </copy> </target>

10

In addition, the following tag (default="mehrad") must be added to the project tag.

<project name="Oryx Main Build Script" basedir="./" default="mehrad">

It is assumed that the Apache Tomcat is installed under the folder d:\Tomcat6\, otherwise this path must be modified accordingly.

6.2 Additional Java Sources In order to ensure the running of the process with the conducted amendments additional Java source files are required and must be made available in the current workspace. To do this, the au.edu.qut package and the entire source files within the package must be copied to the following address, editor/server/src.

6.3 Modified Java Sources In addition to adding the Java source files described in the previous section, modifications must also be made to the necessary source files.

a) The signatures of the two methods (constructResourceIdShapeMapping and filterXMLString) in the de.hpi.bpmn2xpdl.BPMN2XPDLConverter class must be modified. This modification only requires changing the access levels of both methods from private to protected. This is demonstrated below.

protected void constructResourceIdShapeMapping(JSONObject model, HashMap<String, JSONObject> mapping) protected String filterXMLString(String xml)

b) The next modification to take place, in order to ensure validation of the final generated xpdl file against the schema, requires that the attribute value of the graphConformance in the de.hpi.bpmn2xpdl.XPDLConformanceClass class be changed BLOCKED"; to "NON_BLOCKED";. This is displayed below. from "NON-

protected String graphConformance = "NON_BLOCKED";

11

c) Another modification required, for the same reason stated in b), is changing the order of the elements under package header in the generated xpdl

de.hpi.bpmn2xpdl.XPDLPackageHeader. The original order of the elements is shown below.

@Element("Created") protected XPDLCreated created; @Element("Documentation") protected XPDLDocumentation documentation; @Element("ModificationDate") protected XPDLModificationDate modificationDate; @Element("Vendor") protected XPDLVendor vendor = new XPDLVendor(); @Element("XPDLVersion") protected XPDLXPDLVersion xpdlVersion = new XPDLXPDLVersion();

This must then be modified in according to the ordering displayed below.

@Element("XPDLVersion") protected XPDLXPDLVersion xpdlVersion = new XPDLXPDLVersion(); @Element("Vendor") protected XPDLVendor vendor = new XPDLVendor(); @Element("Created") protected XPDLCreated created; @Element("ModificationDate") protected XPDLModificationDate modificationDate; @Element("Documentation") protected XPDLDocumentation documentation;

d) In the following file, /oryx/editor/server/src/de/hpi/bpmn2xpdl/XPDLAssociation.java, the line of code shown below:


@Attribute("Direction")

must be modified to:

@Attribute("AssociationDirection")

12

e) In the following file, /oryx/editor/server/src/de/hpi/bpmn2xpdl/XPDLPackage.java, the following attribute and setter/getter displayed below, must be added to the class. This is done to add the Autolayout attribute to the XPDLPackage. This is done to indicate when the Autolayout function should be called while loading a process (this is automatically set to true for Bizagi models).

protected Boolean needsAutolayout=false; public Boolean getNeedsAutolayout() { return needsAutolayout; } public void setNeedsAutolayout(Boolean needsAutolayout) { this.needsAutolayout = needsAutolayout; }

f) The final modification requires changing the definition of the implicitPool variable in the de.hpi.bpmn2xpdl.XPDLWorkflowProcess class. This definition is thus changed from the original:

public static String implicitPool = "{" + "\"resourceId\": \"oryx_00000000-0000-0000-0000-000000000000\"," + "\"properties\": {" + "\"adhoc\": \"\"," + "\"adhocordering\": \"Sequential\"," + "\"adhoccompletioncondition\": \"\"," + "}," + "\"dockers\": []" + "}";

To the following:

public static String implicitPool = "{" + "\"resourceId\": \"oryx_00000000-0000-0000-0000-000000000000\"," + "\"properties\": {" + "\"adhoc\": \"\"," + // "\"adhocordering\": \"Sequential\"," + "\"adhoccompletioncondition\": \"\"," +

13

"}," + "\"dockers\": []" + "}";

6.4 Additional Javascript Sources In order to provide communication between ORYX and the APROMORE portal, the APROMORELink.js plug-in was developed. This plug-in must be added to the current workspace by copying the plug-in to the following path: /oryx/editor/client/scripts/Plugins/.

6.5 Modified Javascript Sources In addition to adding the Javascript source file described in the previous section, modifications must also be made to necessary Javascript source files.

a) The first modification necessary requires the addition of the following:

ORYX.CONFIG.EXPORT_TO_APROMORE = ORYX.CONFIG.ROOT_PATH + "export2apromore";

To the end of the Javascript file config.js located at the following path, /oryx/editor/client/scripts/.

b) In order to remove the export functionality from the default import/export plug-in, bpmn2xpdl20.js, supplied by ORYX, located at /oryx/editor/client/scripts/Plugins/, it is necessary to comment out a section of the plug-in source file. This section is displayed below:

// // // // // // // // // //

this.facade.offer({ 'name' : ORYX.I18N.BPMN2XPDL.xpdlExport, 'functionality' : this.transform.bind(this), 'group' : ORYX.I18N.BPMN2XPDL.group, dropDownGroupIcon : ORYX.PATH + "images/export2.png", 'icon' : ORYX.PATH + "images/page_white_gear.png", 'description' : ORYX.I18N.BPMN2XPDL.xpdlExport, 'index' : 1, 'minShape' : 0, 'maxShape' : 0});

14

c) In order to disable the file.js plug-in, located at /oryx/editor/client/scripts/Plugins/, it is necessary to comment out a section of this plug-in, as shown below.

// // // // // // // // // // // // // // // // // // // //

this.facade.offer({ 'name': ORYX.I18N.Save.save, 'functionality': this.save.bind(this,false), 'group': ORYX.I18N.Save.group, 'icon': ORYX.PATH + "images/disk.png", 'description': ORYX.I18N.Save.saveDesc, 'index': 1, 'minShape': 0, 'maxShape': 0 }); this.facade.offer({ 'name': ORYX.I18N.Save.saveAs, 'functionality': this.save.bind(this,true), 'group': ORYX.I18N.Save.group, 'icon': ORYX.PATH + "images/disk_multi.png", 'description': ORYX.I18N.Save.saveAsDesc, 'index': 2, 'minShape': 0, 'maxShape': 0 });

This plug-in cannot be disabled from the plug-in list, as is normally the case, as ORYX is internally dependent on this plug-in. The Save and Save As options can be disabled without disrupting this internal dependency by commenting out the section of the source displayed above. d) The final modification requires the amendment of additional lines of code to the translation_en_us.js javascript file, located at /oryx/editor/data/i18n/. The necessary code to be added is displayed below.

if(!ORYX.I18N.APROMORE) ORYX.I18N.APROMORE = {}; ORYX.I18N.APROMORE.save = "Save in APROMORE"; ORYX.I18N.APROMORE.save.desc= "Save"; ORYX.I18N.APROMORE.saveAs= "Save As in APROMORE"; ORYX.I18N.APROMORE.saveAs.desc="Save As...";

It is necessary to externalise the labels, messages, etc, in the future, as done above, in order to provide the option of translation to additional languages.

15

e) The colours in the Bizagi processes are in a signed decimal format. Hence, in order to convert this to a hexadecimal format that is consistent with ORYX, the file /oryx/editor/client/scripts/Core/shape.js, must be modified. Thus, in the said file, the following section:

if(property.fill()) { if (svgElem.tagName.toLowerCase() === "stop"){ svgElem.setAttributeNS(null, "stop-color", prop); // Adjust stop color of the others if (svgElem.parentNode.tagName.toLowerCase() === "radialgradient"){ ORYX.Utils.adjustGradient(svgElem.parentNode, svgElem); } } else { svgElem.setAttributeNS(null, 'fill', prop); } }

must be modified to:

var finalColor; if(property.fill()) {

if (svgElem.tagName.toLowerCase() === "stop"){ if (prop.startsWith("#")) finalColor = prop; else { try { var tempColor= parseInt(prop); if (tempColor < 0) { tempColor = 0xFFFFFFFF + tempColor + 1; } finalColor = "#"+tempColor.toString(16).toUpperCase(); } catch (e) { finalColor = "#ffffff"; } } svgElem.setAttributeNS(null, "stop-color", finalColor); // Adjust stop color of the others if (svgElem.parentNode.tagName.toLowerCase() === "radialgradient"){ ORYX.Utils.adjustGradient(svgElem.parentNode, svgElem); } } else { if (prop.startsWith("#")) finalColor = prop; else { try { var tempColor= parseInt(prop); if (tempColor < 0)

16

{ tempColor = 0xFFFFFF + tempColor + 1; } finalColor = "#"+tempColor.toString(16).toUpperCase(); } catch (e) { finalColor = "#ffffff"; } } svgElem.setAttributeNS(null, 'fill', finalColor); } }

f) The following file, /oryx/editor/client/scripts/Plugins/dragDocker.js, was modified. The following function was added:

getParameter:function ( queryString, parameterName ) { // Add "=" to the parameter name (i.e. parameterName=value) var parameterName = parameterName + "="; if (queryString.length > 0) { // Find the beginning of the string begin = queryString.indexOf(parameterName); // If the parameter name is not found, skip it, otherwise return the value if (begin != -1) { // Add the length (integer) to the beginning begin += parameterName.length; // Multiple parameters are separated by the "&" sign end = queryString.indexOf("&", begin); if (end == -1) { end = queryString.length } // Return the string return unescape(queryString.substring(begin, end)).replace(/\+/g," ") ; } // Return "null" if no parameter has been found return "null"; } }

In addition, in the same file, the following is added to the beginning of the handleMouseDown function:

if(this.getParameter(window.location.href, "notationsOnly")=="true" && uiObj.parent instanceof ORYX.Core.Edge && (uiObj.parent.dockers.first() == uiObj || uiObj.parent.dockers.last() == uiObj)) return;

This is done to limit the displacement of the start and end dockers while editing annotations only.

17

g) In the following file, /oryx/editor/client/scripts/Plugins/shapemenu.js, the function, showShapeMenu, was modified to contain the following at the beginning:

if(this.getParameter(window.location.href, "notationsOnly")=="true") return;

This is done to override the commands that follow the code above, which are responsible for displaying the menu around the objects that are added to the ORYX canvas.

6.6 APROMORE Settings File (APROMORE.properties) The APROMORE.properties file is utilised to provide the necessary setting modifications and ensure communication between ORYX and the APROMORE portal. The line of code, displayed below, is used to set the location of the APROMORE portal that is to communicate with ORYX.

APROMORE_WSDL_LOCATION=http://brahms0.imag.fr:8080/Apromore-portal/services/PortalOryx?wsdl

The line of code, displayed below, is used to generate a log of the processes that are to be sent to the APROMORE portal, on the file system. This setting can be set to either yes or no in order to conduct this log. However, this can only be conducted if the permission of writing to the file system exists.

LOG_GENERATED_PROCESSESS_TO_FILE=no

Finally, if the above option has been set to yes, the following line of code sets the path of the folder in which the log of processes will be stored.

LOG_FOLDER=c:/oryx_log/

6.7 Modified Configuration Files The modification of configuration files is necessary for enabling the APROMORELink.js plug-in to be compatible with ORYX.

18

a) The file plugins.xml, located at /oryx/editor/client/scripts/Plugins/, must be modified. To do this, the following lines of code must be appended to the file, as shown below.

<plugin source="APROMORELink.js" name="ORYX.Plugins.APROMORELink" />

b) The profiles.xml, located at /oryx/editor/client/scripts/Plugins/, must also be modified. This modification requires the addition of the following tag:

<plugin name="ORYX.Plugins.APROMORELink" />

To the specific stencilset, as shown below.

<profile name="bpmn" depends="default" stencilset="stencilsets/bpmn1.1/bpmn1.1.json"> <plugin name="ORYX.Plugins.APROMORELink" /> </profile>

c) A new profile is added with the following title APROMORE_bpmn_readonly that enables editing annotation and not the logic.

<profile name="APROMORE_bpmn_readonly" stencilset="stencilsets/bpmn1.1_readonly/bpmn1.1.json"> <!-- <plugin name="ORYX.Plugins.ShapeRepository"/>--> <plugin name="ORYX.Plugins.PropertyWindow"/> <plugin name="ORYX.Plugins.CanvasResize"/> <plugin name="ORYX.Plugins.DragDropResize"/> <!-- <plugin name="ORYX.Plugins.RenameShapes" /> --> <!-- <plugin name="ORYX.Plugins.ERDFSupport" /> <plugin name="ORYX.Plugins.JSONSupport"/>--> <plugin name="ORYX.Plugins.RDFExport" /> <plugin name="ORYX.Plugins.Feedback" /> <plugin name="ORYX.Plugins.Undo" /> <plugin name="ORYX.Plugins.Arrangement"/> <plugin name="ORYX.Plugins.Grouping"/> <plugin name="ORYX.Plugins.HighlightingSelectedShapes"/> <plugin name="ORYX.Plugins.DragDocker"/> <plugin name="ORYX.Plugins.AddDocker"/> <plugin name="ORYX.Plugins.SSExtensionLoader"/> <plugin name="ORYX.Plugins.SelectionFrame"/> <plugin name="ORYX.Plugins.ShapeHighlighting"/> <plugin name="ORYX.Plugins.Overlay"/> <!-- <plugin name="ORYX.Plugins.Edit"/> -->

19

<plugin name="ORYX.Plugins.KeysMove"/> <plugin name="ORYX.Plugins.RowLayouting"/> <plugin name="ORYX.Plugins.PluginLoader"/> <plugin name="ORYX.Plugins.File"/> <plugin name="ORYX.Plugins.Save"/> <plugin source="Layouter/containerLayouter.js" name="ORYX.Plugins.ContainerLayouter" /> <plugin source="Layouter/edgeLayouter.js" name="ORYX.Plugins.Layouter.EdgeLayouter"/> <plugin name="ORYX.Plugins.BPMN2XForms"/> <plugin name="ORYX.Plugins.ProcessLink"/> <plugin name="ORYX.Plugins.SimplePnmlexport"/> <plugin name="ORYX.Plugins.IBPMN2BPMN"/> <plugin name="ORYX.Plugins.SyntaxChecker"/> <plugin name="ORYX.Plugins.BPMNValidator"/> <plugin name="ORYX.Plugins.StepThroughPlugin"/> <plugin name="ORYX.Plugins.BPMN11"/> <plugin name="ORYX.Plugins.BPMN"/> <plugin name="ORYX.Plugins.QueryResultHighlighter"/> <plugin name="ORYX.Plugins.BpmnLayouter"/> <plugin name="ORYX.Plugins.PNExport"/> <!-<plugin name="ORYX.Plugins.BPMN2XPDL20"/> --> <plugin name="ORYX.Plugins.APROMORELink" /> <plugin name="ORYX.Plugins.BPMN2DTRPXMI"/> <plugin name="ORYX.Plugins.View"/> </profile>

d) The web.xml file, located at /oryx/editor/etc/, must be modified to define the servlet that is utilised by the plug-in. This modification requires the addition of the following.

<servlet> <display-name> Export To APROMORE </display-name> <servlet-name>Export2ApromoreServlet</servlet-name> <servlet-class> au.edu.qut.apromore.server.APROMOREXPDLLinkServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>Export2ApromoreServlet</servlet-name> <url-pattern>/export2apromore</url-pattern> </servlet-mapping> <servlet> <display-name> Open Editor </display-name> <servlet-name>OpenFromApromore</servlet-name> <servlet-class> au.edu.qut.apromore.server.OpenFromApromoreServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>OpenFromApromore</servlet-name> <url-pattern>/openFromApromore</url-pattern> </servlet-mapping>

20

e) The bpmn1.1.json file, located at /oryx/editor/data/stencilsets/, must be modified to include the following changes made to the json file, this is done to prevent the user from changing the modification and create date of the process. This is shown below. It must be noted that the modified attribute-value pair is displayed in bold.

{ "id":"creationDate", "type":"Date", "title":"CreationDate", "title_de":"Erstellt am", "value":"", "description":"This defines the date on which the Diagram was created.", "description_de":"Datum an dem das Diagramm erstellt wurde.", "readonly":true, "optional":true, "dateFormat":"j/m/y" }, { "id":"modificationDate", "type":"Date", "title":"ModificationDate", "title_de":"Gendert am", "value":"", "description":"This defines the date on which the Diagram was last modified.", "description_de":"Datum der letzten nderung.", "readonly":true, "optional":true, "dateFormat":"j/m/y" ,

6.8 Adding Edit Annotation Stencil Set In order to add the required stencil set for editing annotations the bpmn1.1_readonly folder must be copied from the following address:

/oryx/editor/data/stencilsets/bpmn1.1_readonly

to its similar address in the new workspace that is employed.

6.9 Modifying Styles The background colour of the canvas was modified. This was done because the default background colour of the canvas in ORYX was similar to the default Task background colour of Bizagis exported processes. Hence, the following section:

21

.ORYX_Editor { /*background:url(../images/controls/background.bmp);*/ background: #EEF1FE; width:1200px; height:600px; border:5px double #99BBE8; }

Was modified to:

.ORYX_Editor { /*background:url(../images/controls/background.bmp);*/ background: #FCFCFC; width:1200px; height:600px; border:5px double #99BBE8; }

in order to accommodate this.

22

7. Assumptions
In order for ORYX to function correctly a series of assumptions were employed:

It is assumed that the process name and version fields of previously saved XPDL processes in APROMORE are not empty.

It is assumed that the author and ID will be placed in the native process generated by ORYX, in the APROMORE portal.

To this date, it is assumed that ORYX is only capable of correctly opening its own generated processes, and that the current modifications ensure that ORYX can generate a more valid XPDL processes. However, further testing is necessary to fully verify this assumption.

8. Known Issues
When the Save or Save As option is called, they cannot be called a second time. That is, the user must re-open the process to be able to save the process. This issue was raised with Prof. Fauvet and it was concluded that the problem was due to an issue with the APROMORE portal.

Should an error occur during the saving of a process no messages are received from the APROMORE portal to describe the cause of the error. Hence, the cause of the error cannot be displayed to the user.

It was mentioned that it is assumed that the author and ID are previously placed in the native process; however, this is not the case.

After a process is chosen to be Saved As and a new process name and version is entered, should the user then select the Save option, the process will then be saved on the original process name and version that existed prior to choosing Save As.

23

9. Conclusion
This document described the integration process of the ORYX editor with APROMORE. The document described three possible architecture models for conducting this process. Each model was described and the model selected was verified. The implemented architecture model was utilised and the necessary upgrading and modifications applied to the model were described. Furthermore, the testing process, assumptions and known issues with the integration were discussed. The document described and analysed this integration, and it can be concluded that further work is necessary to provide a reliable integration between ORYX and APROMORE. Finally, it is concluded and must be emphasised that in order to achieve further improvement in the project the following skills are necessary: Java development, Javascript and JSON, SVG and AJAX.

24

Вам также может понравиться