Hosting Applications on External Web Servers
Custom client applications are functionally complete, standard J2EE web applications, packaged as WAR files. Although they are typically deployed to a Web Components BPM logical node, they can be deployed to other web servers.
You can deploy custom client applications to the following web servers:
Use Application Development to export the application as a ZIP file, then deploy it to your chosen web server.
If you want to host a custom client application on an external web server, there are a number of issues you need to take account of.
SSO
When an application is hosted outside of ActiveMatrix BPM, it has no inherent SSO capabilities. You must implement your own SSO mechanisms. As long as these conform to the SSO capabilities provided by ActiveMatrix BPM, the application will be able to participate in SSO.
Cross-Domain Calls
If an application hosted on an external server is in a different domain relative to the ActiveMatrix BPM services API, any service invocation from the custom client will encounter Same Origin Policy (SOP) violations. To overcome this issue, you must provide a suitable proxy that can be used to proxy the service calls to ActiveMatrix BPM.
- Install Apache HTTP Server Version 2.4 with the modules required for proxy servlets. See the documentation provided with Apache HTTP Server Version 2.4.
- Add suitable rules to the
httpd.conf file - for example:
<Location /apps/> ProxyPass http://<bpmserver>:<port>/apps/ nocanon </Location> ProxyPass "/bpm/" "http://<bpmserver>:<port>/bpm/" ProxyPass "/bpmresources/" "http://<bpmserver>:<port>/bpmresources/" ProxyPassreverse / http://<bpmserver>:<port>/ AllowEncodedSlashes NoDecode
- Export your custom client application from ActiveMatrix BPM Application Development. See the TIBCO ActiveMatrix® BPM Client Application Management Guide.
- Extract your application from <apache_config>\htdocs\appName.app where apache_config is the Apached HTTP Server configuration directory. See the documentation provided with Apache HTTP Server Version 4.2 for more information.
- Launch the URL for your custom client application.
Using a Load Balancer
If you want to use a load balancer, add appropriate entries to the httpd.conf file - for example:
<Location /apps/> ProxyPass http://<bpmserver1>:<port>/apps/ nocanon ProxyPass http://<bpmserver2>:<port>/apps/ nocanon </Location> ProxyPass "/bpm/" "http://<bpmserver1>:<port>/bpm/" ProxyPass "/bpmresources/" "http://<bpmserver1>:<port>/bpmresources/" ProxyPassreverse / http://<bpmserver1>:<port>/ ProxyPass "/bpm/" "http://<bpmserver2>:<port>/bpm/" ProxyPass "/bpmresources/" "http://<bpmserver2>:<port>:8080/bpmresources/" ProxyPassreverse / http://<bpmserver2>:<port>/ ProxyPass "/apps/" "http://<bpmserver1>:<port>/apps" ProxyPreserveHost On AllowEncodedSlashes NoDecode
where bpmserver1 and bpmserver2 are the IP addresses of the servers running AMX BPM.
Localization
If you have localized your application, the localized resource bundles must be deployed as a separate application and then you must register your application with the translation service. See "Localizing Applications" in TIBCO ActiveMatrix® BPM Client Application Management Guide.
BPMTranslationServiceConfig.registerApp("applicationname", "MyPrefix")", null);where
<div translate="MyPrefix.MyComponent.myKey"></div>