Thursday, January 10, 2013

BPM Integration Days 2013 - das große Trainingsevent für BPM und Integration

Auch in diesem Jahr bieten die BPM Integration Days vom 28.02.2013 - 01.03.2013 wieder ein spannendes Programm für alle Teilnehmer, intensive Power Workshops / Sessions mit klarem Praxisbezug und Materialien in elektronischer Form zum bequemen Download. Natürlich ist auch für das leibliche Wohl gesorgt. In einer besonderen Wohlfühlatmosphäre wartet eine All-inclusive-Verpflegung mit Erfrischungen und Snacks in den Pausen, ein leckeres Mittagsbuffet sowie ein Come Together am Donnerstagabend mit Snacks und Freibier auf Sie - eine ideale Plattform für Erfahrungsaustausch und Networking mit Praktikern und erfahrenen Experten.


OPITZ CONSULTING ist auch wieder mit einigen Vorträgen vertreten. Besonders freue ich mich darauf, Ihnen - gemeinsam mit meinen Kollegen Sven Bernhardt und Benjamin Huskic - von den maritimen BPM-Abenteuern unserer Firmenkuh Robina Ruadh zu erzählen.


Misten Sie gemeinsam mit uns in "BPM abgegrast - eine Kuh geht auf Reisen" den Stall aus. Was ist bereits ausgeschlachtet? Was käuen wir gerne wieder? BPM, BI, Mobile, Cloud und ACM gehören ins Gepäck und machen die Reise zu einem unvergesslichen Erlebnis (inkl. Livedemo).      
   

Sunday, January 6, 2013

Connect to multiple SOA / BPM Virtual Machines from different computers in your network

Today I’d like to explain how to share instances of Oracle's Pre-built Virtual Machine for SOA Suite and BPM Suite across different computers in your network. Three requirements I had to address:
  1. Call of external services like GeoNames (http://www.geonames.org/postal-codes/) from within the BPM Suite VM
  2. Connection to multiple BPM Suite VMs from Host (e.g. JDeveloper and Browser)
  3. Connection to multiple BPM Suite VMs from different developer computers in the network 
  4. Share data between VMs and developer computers via FTP
The default options already support connections between host and client. However the target here was to address multiple independent VMs from different computers in the same network. The following settings worked in my environment:
 
1) Start the Oracle VM VirtualBox Manager and open network settings of the VM.
 
2) Select Bridged Adapter in “Attached to”. Bridged Networking is used when you want your vm to be a full network citizen, i.e. to be an equal to your host machine on the network (see Networking in VirtualBox for more details).
 
3) Select the name of your network adapter. Take into account that when you change your connection method (WIFI / Cable) a different network adapter is required. Get the appropriate name from the network settings of the host.
 
4) Specify the Adapter Type.
 
5) Start the VM.
 

6) Per default the VM receives the IP via DHCP method. Open a terminal window in the client and send the following command as root user to get the current IP address information of your VM. Instead of DHCP you could also change the connection method of your VM to a static address.

ifconfig <CONNECTION-NAME>  (e.g. ifconfig eth1) 


7) Another way to get the IP information is the network icon at the bottom of the Oracle VM VirtualBox window.

 
8) Connect or ping this IP address (here: 192.168.2.131) from the host or from a different computer in your network. I suggest adding the IP address to your etc/hosts-file in order to address the VM via names instead of a static IP addresses. If successful start the SOA / BPM Server and enjoy the remote development. If not please check your firewall and router settings. Good luck!
 

Friday, November 30, 2012

Undeploy multiple SOA composites with WLST or ANT

As part of our current project the Build Management team asked for a solution to undeploy multiple composites at one time. Of course you have the “Undeploy All From This Partition” menu option in Enterprise Manager but since we have a lot of deployments every day the guys wanted to have a script solution. It is even more important for the nightly deployments on our continuous integration environment – strange, we couldn’t find anybody who wants to do the undeployment via Enterprise Manager manually every night ;-)

However with WLST or ANT the SOA Suite comes with two options to undeploy composites via script. In this article I’d like to explain you both ways.

Undeployment with WLST

You can test the steps below on Oracle's Pre-built Virtual Machine for SOA Suite and BPM Suite 11g.

1) Change to the WLST directory under MIDDLEWARE_HOME/Oracle_SOA1/common/bin.

cd /oracle/fmwhome/Oracle_SOA1/common/bin/

2) Open WLST

./wlst.sh

3)  Connect to the SOA server

wls:/offline> connect('weblogic','welcome1','t3://soabpm-vm:7001')
Connecting to t3://soabpm-vm:7001 with userid weblogic ...
Successfully connected to Admin Server 'AdminServer' that belongs to domain 'dev_bpm'.
wls:/dev_bpm/serverConfig>

4) Run the delete command for the appropriate partition

wls:/dev_bpm/serverConfig> sca_deletePartition('test')
partitionName = test
Partition was successfully deleted.
wls:/dev_bpm/serverConfig>

Please take into account that the command deletes all composites as well as the partition itself. If you need the partition for future deployments just recreate it with the sca_createPartition WLST-command. Also check the Oracle Fusion Middleware WebLogic Scripting Tool Command Reference for a complete list of SOA Suite Custom WLST Commands.

Undeployment with ANT

Another option is to use ANT for the undeployment of multiple composites. The key here is to reference the file ant-sca-mgmt.xml within your custom ANT-target. The file comes with SOA Suite as well as JDeveloper. See my quick example below:

<target name="sca_deletePartition">
  <echo>Undeploy Composites</echo>      
  <ant antfile="/oracle/fmwhome/Oracle_SOA1/bin/ant-sca-mgmt.xml"
     inheritall="false" target="deletePartition">         
      <property name="host" value="soabpm-vm"/>         
      <property name="port" value="7001"/>         
      <property name="user" value="weblogic"/>         
      <property name="password" value="welcome1"/>         
      <property name="partition" value="testPartition"/>      
  </ant>   
</target>

Again this command deletes all composites of the given partition as well as the partition itself. See the Developer's Guide - Managing SOA Composite Applications with Script for more details.

Update: After reading this article Christoph Burmeister from our Build Management team created a pom-snippet for this to make the maven fans happy as well :-) Many thanks Christoph!!

Wednesday, October 10, 2012

OOW 2012: Oracle BPM / Oracle ADF Integration Best Practices

Unfortunately Oracle Open World 2012 is already the past. It was a great conference in a wonderful city. I am looking forward to meet all the interesting people and friends next year again. In this article I'd like to share the slides from my session with Andrejus Baranovskis. We really enjoyed to share our experiences from the last couple of years. The room was almost fully booked with interested BPM- and ADF-users and the feedback afterwards was very nice.

What was the target of our session? 

With this session we wanted to bring valuable practical experiences from the Oracle BPM / ADF integration field, based on our technical involvement into several Oracle Fusion projects. We shared different customer cases, where we applied Oracle BPM / ADF solutions. We focused on Oracle BPM Human Task reusability, Oracle BPM Data Control packaging and integration into ADF application - how to make it maintainable and reusable for large development teams and many human interactions.

Furthermore we introduced technical patterns for BPM / ADF applications developed in our projects. One of these patterns was the Generic Task Handler, which allows to minimize the number of BPM Human Task Definitions, especially in large BPM/ADF implementations. The pattern decouples the dependency between the Data Control related to the BPM Human Task and its consuming ADF UI application. As Andrejus described this is the key to develop more flexible ADF User Interfaces and to reduce the development time of human centric processes significantly.


Always having performance, maintenance and product or process migrations in mind - we additionally provided examples for the following Best Practices:
  • Decoupling of business data from process instance data
  • Customizing of BPM Workspace with ADF
  • Housekeeping for BPM and ADF (Purging, Monitoring)
  • Architecture based on multiple layers
  • Re-execution of processes (Fault Management, Replay, Entry Points, etc.)
  • ADF security integration
  • Useage of MDS to share metadata
If you have problems accessing the embedded slideshare presentation please let us know.

Sunday, September 16, 2012

Industrialized SOA – Thema des Business Technology Magazin 3.12

Auch wenn es ruhiger geworden ist um SOA, beerdigt ist das Konzept noch lange nicht. Ganz im Gegenteil, über die Jahre hat es einen neuen Maturity Level erreicht. Hype-Themen wie Cloud Computing oder Big Data haben SOA aus den Schlagzeilen verdrängt, aber "ersetzen die neuen Hype-Themen die Serviceorientierung nicht, sondern bauen darauf auf". 

Die Autoren dieses Magazins zählen im deutschsprachigen Raum zu den SOA-Pionieren. Für diese Ausgabe von Business Technology haben Sie ihr kollektives Wissen zusammengetragen und ein einzigartiges Bild des aktuellen Zustands von SOA geschaffen. Nach ihrer Überzeugung entwickelt sich SOA evolutionär weiter, in Richtung Fabrikansatz, in Richtung Industrialisierung, in Richtung "ganzheitliche Plattform" zu einer neuen Industrialized SOA.

Business Technology Magazin
 
Die Ausgabe 3.12 des BT Magazins bekommen Sie als iPAD-App, per Post oder am Kiosk! 

Weitere Informationen auf www.bt-magazin.de

Friday, March 23, 2012

Undeployment of composites when soa-infra is down

Did you already have the problem that you couldn’t restart your server because of a certain (maybe broken) composite? Did you ever wish to perform an undeployment of your composites while soa-infra is down? In some of our projects we already had this requirement. Below you’ll find an explanation with a step-by-step example of how-to get rid of your composites – even when the soa-infra is not reachable.

Enterprise Manager with a list of the deployed composites (relevant for this post: HelloWorld 1.0.0)

Problem

A restart of the Managed Server failed because one of the composites referred to a file that could not be found. Therefore we received the following error message:  

weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
Caused By: java.io.IOException: oracle.mds.exception.MDSException: MDS-00054: The file to be loaded oramds:/deployed-composites/default/HelloWorld_rev1.0.0/… does not exist.
        at oracle.mds.internal.net.AbstractOraMDSURLConnection.getPDocStream(AbstractOraMDSURLConnection.java:388)
        at oracle.mds.internal.net.AbstractOraMDSURLConnection.getInputStream(AbstractOraMDSURLConnection.java:176)
        at oracle.mds.internal.net.OraMDSURLConnection.getInputStream(OraMDSURLConnection.java:67)
        at java.net.URL.openStream(URL.java:1010)
        at oracle.fabric.common.metadata.MetadataManagerImpl.getInputStreamFromAbsoluteURL(MetadataManagerImpl.java:276)
        at oracle.integration.platform.common.MDSMetadataManagerImpl.getInputStreamFromAbsoluteURL(MDSMetadataManagerImpl.java:555)
        at oracle.integration.platform.common.MDSMetadataManagerImpl.transferFile(MDSMetadataManagerImpl.java:852)
        at oracle.integration.platform.common.MDSMetadataManagerImpl.transferFiles(MDSMetadataManagerImpl.java:839)
        at oracle.integration.platform.common.MDSMetadataManagerImpl.copyTree(MDSMetadataManagerImpl.java:820)
        at

How-to fix it?

Since redeployment is not possible because of a non-reachable soa-infra, we needed to look for the available options to delete the current deployment in an offline mode. This should help us to restart the server again. For this we did some research in the web but unfortunately most of the suggested solutions are only applicable when soa-infra is online. One of these examples is the export / import functionality for the MDS via Enterprise Manager - see the article Undeploy composites manually for more details. The functionality is very useful but it requires a running soa application. After that I tried to export the deployed-composites.xml as described in the above blog using WLST – unfortunately the result wasn’t satisfying:

Command:

wls:/domain/serverConfig> exportMetadata(application='soa-infra',server='<MY_MANAGED_ SERVER_SOA>',toLocation='<MY_TO_LOCATION>',docs='/deployed-composites/deployed-composites.xml')

 

Result:

Location changed to domainRuntime tree. This is a read-only tree with DomainMBean as the root.
For more help, use help(domainRuntime)
Executing operation: exportMetadata.

Traceback (innermost last):
  File "<console>", line 1, in ?
  File "/opt/oracle/Middleware/oracle_common/common/wlst/mdsWLSTCommands.py", line 237, in exportMetadata
  File "/opt/oracle/Middleware/oracle_common/common/wlst/mdsWLSTCommands.py", line 727, in executeAppRuntimeMBeanOperation
  File "/opt/oracle/Middleware/oracle_common/common/wlst/mdsWLSTCommands.py", line 697, in getMDSAppRuntimeMBean
UserWarning: MDS-91002: MDS Application runtime MBean for "soa-infra" is not available. "exportMetadata" operation failure.

Solution

Besides other options like direct access to MDS via Java (Full access to MDS Repository) or SQL (MDS_PATHS Table) we discovered a new and up-to-date Metalink-Note ([ID 1380835.1]) which described basically what we wanted. Thanks a lot to Markus Lohn (Oracle) for his support! We successfully followed the steps within the note and after that the server came up. Below I describe the approach with the above Hello World example. 

1. Download and copy the ShareSoaInfraPartition.ear from Oracle to access the MDS offline (Download it from the Metalink note). 

2. Connect to WLST and deploy the above application on the AdminServer. Use the WLST under $MIDDLEWARE_HOME/ oracle_common/common/bin.

3. Run the below command to export the metadata from the AdminServer. Change the values appropriate to your environment.

Command:

wls:/domain/serverConfig> 
exportMetadata(application='ShareSoaInfraPartition',server='<MY_ADMIN_ SERVER>',toLocation='<MY_TO_LOCATION>',docs='/deployed-composites/deployed-composites.xml')

Result:

Executing operation: exportMetadata.
Operation "exportMetadata" completed. Summary of "exportMetadata" operation is:
List of documents successfully transferred:
/deployed-composites/deployed-composites.xml
1 documents successfully transferred.

4. Open the deployed-composites.xml within deployed-composites folder under <MY_TO_LOCATION>.

5. Delete the composite series or revision which is causing the problem and save the file.

<composite-series name="default/HelloWorld" default="default/HelloWorld!1.0.0">
  <composite-revision dn="default/HelloWorld!1.0.0" state="on" mode="active" location="dc/soa_09001e40-be6f-4bc4-8a96-201f3848c38d">
    <composite dn="default/HelloWorld!1.0.0*soa_09001e40-be6f-4bc4-8a96-201f3848c38d" deployedTime="2012-03-09T13:15:14.139+01:00"/>
  </composite-revision>
</composite-series>

6. Import the updated file under <MY_FROM_LOCATION> into MDS.

Command:

wls:/domain/serverConfig> importMetadata(application='ShareSoaInfraPartition',server='AdminServer',fromLocation='<MY_FROM_LOCATION>',docs='/deployed-composites/deployed-composites.xml')

Result:

Executing operation: importMetadata.

Operation "importMetadata" completed. Summary of "importMetadata" operation is:
List of documents successfully transferred:

/deployed-composites/deployed-composites.xml
1 documents successfully transferred.

7. Restart your SOA server or soa-infra.

Enterprise Manager with a list of the deployed composites (note that HelloWorld 1.0.0 is not available)

Monday, February 13, 2012

Oracle Partner Community Forum 2012 in short

Last week (07.02.2012 until 10.02.2012) I joined the Oracle Webcenter & SOA & BPM & Weblogic Partner Community Forum in Málaga. My overall conclusion: excellent, excellent excellent! For me it was already the 4th time and it is really impressive to see how Jürgen Kress an Hans Blaas organized an event that cannot be better! More than 200 people attended this time.

Impressions from the city of Málaga

My own goal was to get the latest information about Oracle Fusion Middleware products, to use the bootcamp for hands-on experience on the newest versions and to meet a lot of interesting people and old friends who are working in the same field.  

During the first two days we saw many interesting presentations about:
  • Oracle Fusion Middleware Strategy & Direction
  • ADF overview and roadmap
  • New features in Weblogic 12c
  • Live-Demo of Oracle Social Network
  • Whats new in BPM Suite
  • Oracle WebCenter
  • Strategy and Direction of Oracle SOA Suite     
  • and many more...

Below are some future topics and teasers:
  • Out of the box scheduler
  • Develeoper improvements like renaming of components and copy/paste of activities
  • Instance migration
  • Case management and improved task lists
  • Debugging and testing enhancements
  • OVAB support for WebLogic 12c
  • Simplified Deployment and Management with Virtualization
  • Exalogic support
  • EM-integration of SOA/BPM/OSB consoles
  • Support for Java EE 6 applications in Oracle Public Cloud

My own session was about SOA Suite migration from 10g to 11g. In 10 steps I descibed how we went through the upgrade in different projects, explained the problem of instance migration between 10g and 11g and talked about process architecture improvements for future migration scenarios and further developments. I had some very nice chats afterwards and of course I also enjoyed the speakers dinner :-)

WLS 12c Bootcamp

During the last two days I used the WLS 12c Bootcamp to put my fingers on the new version of the Weblogic Server. We learned a lot about new features like Seamless Upgrade, Much Higher Performance, Enhanced High Availability + Disaster Recovery and Integrated Traffic Management. One of our trainers - Jesús María Guerra - provided also some valuable links for us:

Additionally I would like to say special thanks to Simone Geib and Flavius Sana who have been very patient with me when I asked more than once for the latest product information and material ;-) Overall it was very exciting and I am looking forward to meet a lot of experts again in the near future!