Monday, December 15, 2014

Memisahkan Deployment Composite BPM dan UI Project


Hello semua.
Dalam blog kali ini saya akan menjelaskan bagaimana cara memisahkan deployment Composite BPM dan UI-nya. Apabila anda familiar dengan Oracle BPM 11g, biasanya kita men-deploy Composite (Process) dan UI dari masing-masing human task pada Managed Server yang sama yaitu soa_server1. Disini, saya akan membantu anda apabila anda ingin memisahkan deployment composite dan UI agar berjalan pada Managed Server yang berbeda.

1. Buat Managed Server Anda (saya membuat MS yang bernama UI_server). Log in ke /em, lalu pilih MS tersebut dan klik Apply JRF Template. Restart MS anda.


2. Masuk ke weblogic /console. Pilih Services -> Datasource, lalu tambahkan target dari seluruh data source ini ke MS yang baru anda buat untuk UI.




3. Setelah selesai, pastikan seluruh target sudah benar mengarah ke UI_server juga, kemudian restart Admin server dan MS anda.


4. Lakukan tahap yang sama untuk library yang anda pakai dalam aplikasi anda. Untuk aplikasi ADF dan BPM, biasanya library adf.oracle, jsf, jstl, oracle.soa, oracle.bpm dsb. Error message akan muncul ketika deployment apabila library yang diperlukan tidak di-include dalam MS anda. Error message ini anda pakai untuk membantu memilih Library mana saja yang diperlukan, dan kemudian dapat ditambahkan dari /console -> Deployments.





5. Langkah terakhir adalah membuat ForeignJNDI. Define foreign JNDI anda dengan menambahkan detail berikut untuk Configurationnya.


Setelah ForeignJNDI terbentuk, pada tab link, definisikan Local dan Remote JNDI berikut:

Nameejb/bpel/services/workflow/TaskMetadataServiceBean
Local JNDI Name: ejb/bpel/services/workflow/TaskMetadataServiceBean_local
Remote JNDI Name: ejb/bpel/services/workflow/TaskMetadataServiceBean

Name: ejb/bpel/services/workflow/TaskServiceBean
Local JNDI Name: ejb/bpel/services/workflow/TaskServiceBean
_local
Remote JNDI Name: ejb/bpel/services/workflow/TaskServiceBean

Name: ejb/bpel/services/workflow/TaskServiceGlobal/TransactionBean
Local JNDI Name: ejb/bpel/services/workflow/TaskServiceGlobal/TransactionBean
_local
Remote JNDI Name: ejb/bpel/services/workflow/TaskServiceGlobal/TransactionBean

Name: ejb/bpm/services/BPMUserAuthenticationServiceBean
Local JNDI Name: ejb/bpm/services/BPMUserAuthenticationServiceBean
_local
Remote JNDI Name: ejb/bpm/services/BPMUserAuthenticationServiceBean

Name: ejb/bpm/services/InstanceManagementServiceBean
Local JNDI Name: ejb/bpm/services/InstanceManagementServiceBean
_local
Remote JNDI Name: ejb/bpm/services/InstanceManagementServiceBean

Name: ejb/bpm/services/InstanceQueryServiceBean
Local JNDI Name: ejb/bpm/services/InstanceQueryServiceBean
_local
Remote JNDI Name: ejb/bpm/services/InstanceQueryServiceBean

Name: ejb/bpm/services/ProcessDashboardServiceBean
Local JNDI Name: ejb/bpm/services/ProcessDashboardServiceBean
_local
Remote JNDI Name: ejb/bpm/services/ProcessDashboardServiceBean

Name: ejb/bpm/services/ProcessMetadataServiceBean
Local JNDI Name: ejb/bpm/services/ProcessMetadataServiceBean
_local
Remote JNDI Name: ejb/bpm/services/ProcessMetadataServiceBean

Name: ejb/bpm/services/ProcessModelServiceBean
Local JNDI Name: ejb/bpm/services/ProcessModelServiceBean
_local
Remote JNDI Name: ejb/bpm/services/ProcessModelServiceBean

Name: RuntimeConfigService
Local JNDI Name: RuntimeConfigService
_local
Remote JNDI Name: RuntimeConfigService

Name: TaskEvidenceServiceBean
Local JNDI Name: TaskEvidenceServiceBean
_local
Remote JNDI Name: TaskEvidenceServiceBean

Name: TaskQueryService
Local JNDI Name: TaskQueryService
_local
Remote JNDI Name: TaskQueryService

Name: TaskReportServiceBean
Local JNDI Name: TaskReportServiceBean
_local
Remote JNDI Name: TaskReportServiceBean

Name: UserMetadataService
Local JNDI Name: UserMetadataService
_local
Remote JNDI Name: UserMetadataService


Credit to: http://onkaroracle.blogspot.sg/2013/07/how-to-separate-bpm-11g-adf-task-page.html. I made the visual guide here to help on the text :)

6. Setelah konfigurasi server selesai, yang terakhir adalah tambahan untuk sisi aplikasi yang dibangun di JDeveloper. Ketika composite dan UI telah dicompile, masukkan file yang bernama wf_client_config dalam folder /classes seperti contoh berikut. Nama Project BPM saya adalah BPMLibTest dengan nama UI Project1UI.


wf_client_config.xml detilnya adalah sbb:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<workflowServicesClientConfiguration  xmlns="http://xmlns.oracle.com/bpel/services/client" clientType="REMOTE">
   <server default="true" name="default">
      <localClient>
         <participateInClientTransaction>false</participateInClientTransaction>
      </localClient>
      <remoteClient>
         <serverURL>t3://<hostname>:<port></serverURL>
         <initialContextFactory>weblogic.jndi.WLInitialContextFactory</initialContextFactory>
         <participateInClientTransaction>false</participateInClientTransaction>
      </remoteClient>
      <soapClient>
         <rootEndPointURL>http://<hostname>:<port></rootEndPointURL>
         <identityPropagation mode="dynamic" type="saml">
            <policy-references>
               <policy-reference enabled="true" category="security" 
                uri="oracle/wss10_saml_token_client_policy"/>
            </policy-references>
         </identityPropagation>
      </soapClient>
   </server>
</workflowServicesClientConfiguration>


That's it. Proses sudah selesai. Silahkan deploy Composite anda pada SOA server dan UI anda pada UI server. Ketika mengakses BPM workspace, semua UI akan diarahkan pada UI server anda.

Sekian, semoga membantu :)

No comments:

Post a Comment