<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CkMCRXk4eyp7ImA9WhRUFEw.&quot;"><id>tag:blogger.com,1999:blog-82799045248352799</id><updated>2012-01-24T14:07:44.733+01:00</updated><category term="provisioning" /><category term="hermesjms" /><category term="bpm" /><category term="bpel" /><category term="galaxy" /><category term="xsl" /><category term="acl" /><category term="soa" /><category term="exalogic" /><category term="hermes2" /><category term="junit" /><category term="xpdl" /><category term="soa cdm" /><category term="nodemanager" /><category term="service" /><category term="10g" /><category term="ebxml" /><category term="bop4" /><category term="cordial" /><category term="reliable" /><category term="test" /><category term="module" /><category term="standard" /><category term="soap with attachments" /><category term="TDD" /><category term="workspace studio" /><category term="11g" /><category term="sca" /><category term="burndown" /><category term="endpoint" /><category term="eclipse" /><category term="business process" /><category term="soa principles" /><category term="mashup" /><category term="review" /><category term="training" /><category term="utility" /><category term="xa transactions" /><category term="an integration blueprint" /><category term="XSLT" /><category term="cordys process factory" /><category term="workshop" /><category term="apache webserver" /><category term="java" /><category term="authentication" /><category term="error handling" /><category term="security" /><category term="tracking" /><category term="service design" /><category term="example" /><category term="transformation" /><category term="soaschool" /><category term="external services configuration" /><category term="beehive" /><category term="cloud" /><category term="oracle" /><category term="adf" /><category term="wlst" /><category term="rest" /><category term="webservice" /><category term="message map" /><category term="custom" /><category term="mtom" /><category term="jpa" /><category term="short lived process" /><category term="book review" /><category term="saas" /><category term="ssl" /><category term="weblogic" /><category term="soapui" /><category term="ws-security" /><category term="jms" /><category term="xmlschema" /><category term="soa symposium 2009" /><category term="error" /><category term="w3c" /><category term="data service" /><category term="subversion" /><category term="oracle soa suite 11g" /><category term="data integrity" /><category term="nljug" /><category term="introduction" /><category term="jdbc" /><category term="mule" /><category term="invalid pad byte" /><category term="dynamic" /><category term="ESB" /><category term="terminologie" /><category term="10gR3" /><category term="CDM" /><category term="tomcat" /><category term="environment" /><category term="event" /><category term="owsm" /><category term="wsdl" /><category term="process factory" /><category term="peoplesoft" /><category term="basic authentication" /><category term="google app" /><category term="workspace" /><category term="contract first" /><category term="business event" /><category term="jdeveloper" /><category term="eai" /><category term="transactions" /><category term="xquery" /><category term="agile" /><category term="osb" /><category term="planning" /><category term="ws-*" /><category term="mindmap" /><category term="bea" /><category term="bpmn" /><category term="cordys" /><category term="entity service" /><category term="file" /><category term="database" /><category term="deploy" /><category term="soasuite" /><category term="hibernate" /><category term="soap" /><category term="tool" /><category term="kpn" /><category term="principles" /><category term="alsb" /><category term="book" /><category term="bpmsuite" /><category term="file connector" /><category term="Oracle SOA" /><category term="oc4j" /><category term="properties" /><category term="versioning" /><category term="certification" /><category term="energy" /><category term="scrum" /><category term="oracle fusion soa bpm jdeveloper" /><category term="XMLUnit" /><category term="fault" /><category term="sql" /><category term="service layering" /><category term="ccp" /><category term="service oriented principles" /><category term="adapter" /><category term="microsoft" /><category term="pattern" /><category term="authorisation" /><category term="soa suite" /><category term="error hospital" /><category term="social media" /><category term="authenticator" /><category term="fusion" /><category term="reuse" /><category term="problem" /><title>SOA, EAI, BPM, Oracle, Cordys</title><subtitle type="html">I use the blog to share my experience and personal opinion within the SOA/EAI/BPM domain.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://rogervdkimmenade.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://rogervdkimmenade.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Roger van de Kimmenade</name><uri>http://www.blogger.com/profile/04738763579441543087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-j-uva_ndKzs/ToQpGoZaRZI/AAAAAAAAN68/KlBIBFG90Tg/s220/Roger.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>130</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/SoaEaiBpmOracleAgile" /><feedburner:info uri="soaeaibpmoracleagile" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CkYMSX05fSp7ImA9WhdUGU0.&quot;"><id>tag:blogger.com,1999:blog-82799045248352799.post-2770094528787291</id><published>2011-09-28T20:46:00.000+02:00</published><updated>2011-10-06T13:23:08.325+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-06T13:23:08.325+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="file connector" /><category scheme="http://www.blogger.com/atom/ns#" term="bop4" /><category scheme="http://www.blogger.com/atom/ns#" term="cordys" /><category scheme="http://www.blogger.com/atom/ns#" term="ws-security" /><title>Struggling with File Connector</title><content type="html">&lt;span class="Apple-style-span" style="font-size: large;"&gt;Introduction&lt;/span&gt;&lt;br /&gt;
Today I was struggling with the File Connector in combination with CARS authentication and the multi-tenancy within Cordys. I really like the multi-tenancy concept, but some features in Cordys are not mature yet.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;Context&lt;/span&gt;&lt;br /&gt;
We have a project with a lot of Organizations using the same BPM processes. These processes are deployed within the System Organization. The Organizations (the number can be up to 2000 !) are provisioned using Cordys Cloud Provisioning (CCP). The (Cordys) Users are authenticated through WS-Security within the soap headers.&lt;br /&gt;
In one of the processes we want to do a call within the context of another Organization.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;Options&lt;/span&gt;&lt;br /&gt;
When I read the community blogs and asked some people they came up with&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;1 - UDDI Interceptor&lt;/b&gt;&lt;br /&gt;
In this case you call a webservice of Cordys through a UDDI connector and use an interceptor to add the WS-Security header. The user authenticated has been put within a default Organization, so this way the call is done within the context of that users Organization.&lt;br /&gt;
Note: There is a lot of information within the community to write such an interceptor.&lt;br /&gt;
Note2: It is not a very elegant solution, because you would expect this to be configurable within the UDDI connector itself (just like any other EAI/BPM tool)&lt;br /&gt;
&lt;br /&gt;
However there was a &lt;b&gt;&lt;u&gt;catch&lt;/u&gt;&lt;/b&gt;, so that this option did not work. All processes are deployed within System and the BPM process is deployed within a BPM Service Container with namespace N and operation OP. When this method is to be called from within a UDDI connector (and this UDDI connector is also in System Organization), this is done with the same namespace N and operation OP.&lt;br /&gt;
So Cordys has actually two Service Containers where to send the message to&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
2 -&amp;nbsp;&lt;b&gt;File Poller&lt;/b&gt;&lt;br /&gt;
Because the call has to be done after a file has been placed on some directory, the file poller would be another option. In this case the trigger of the file poller would be a call to the BPM webservice with another Organization as context.&lt;br /&gt;
&lt;br /&gt;
So the XML Poller configuration looks something like:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-HNUyMotG_HQ/ToNsAimrgAI/AAAAAAAAN60/WkxtsZPQ-GM/s1600/Untitled.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="296" src="http://4.bp.blogspot.com/-HNUyMotG_HQ/ToNsAimrgAI/AAAAAAAAN60/WkxtsZPQ-GM/s640/Untitled.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
However this time you ran into the problem that the trigger does not insert a WS-Security header.&lt;br /&gt;
(see also&amp;nbsp;&lt;a href="http://code.google.com/p/cordysfilecon/issues/detail?id=33"&gt;http://code.google.com/p/cordysfilecon/issues/detail?id=33&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
The way this could be solved was by using another soap request:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-Pf_DmYys73Q/To2Pd-TIFkI/AAAAAAAAN7Y/PHfgl9k1H4U/s1600/Untitled.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="323" src="http://4.bp.blogspot.com/-Pf_DmYys73Q/To2Pd-TIFkI/AAAAAAAAN7Y/PHfgl9k1H4U/s640/Untitled.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Thanks, Roger van de Kimmenade&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/82799045248352799-2770094528787291?l=rogervdkimmenade.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/a67Gh1YIxTV0vwApAQszTCxNf8A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a67Gh1YIxTV0vwApAQszTCxNf8A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/a67Gh1YIxTV0vwApAQszTCxNf8A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a67Gh1YIxTV0vwApAQszTCxNf8A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SoaEaiBpmOracleAgile/~4/7a2MX9xK1Kw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rogervdkimmenade.blogspot.com/feeds/2770094528787291/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://rogervdkimmenade.blogspot.com/2011/09/struggling-with-file-connector.html#comment-form" title="1 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/2770094528787291?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/2770094528787291?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SoaEaiBpmOracleAgile/~3/7a2MX9xK1Kw/struggling-with-file-connector.html" title="Struggling with File Connector" /><author><name>Roger van de Kimmenade</name><uri>http://www.blogger.com/profile/04738763579441543087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-j-uva_ndKzs/ToQpGoZaRZI/AAAAAAAAN68/KlBIBFG90Tg/s220/Roger.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-HNUyMotG_HQ/ToNsAimrgAI/AAAAAAAAN60/WkxtsZPQ-GM/s72-c/Untitled.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://rogervdkimmenade.blogspot.com/2011/09/struggling-with-file-connector.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUAGQn8ycCp7ImA9WhdWGEg.&quot;"><id>tag:blogger.com,1999:blog-82799045248352799.post-6412720188441359435</id><published>2011-09-12T20:53:00.000+02:00</published><updated>2011-09-12T20:55:23.198+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-12T20:55:23.198+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="cloud" /><category scheme="http://www.blogger.com/atom/ns#" term="bop4" /><category scheme="http://www.blogger.com/atom/ns#" term="ccp" /><category scheme="http://www.blogger.com/atom/ns#" term="provisioning" /><category scheme="http://www.blogger.com/atom/ns#" term="cordys" /><title>Provisioning: Defining an Application</title><content type="html">&lt;span class="Apple-style-span" style="font-family: inherit; font-size: large;"&gt;Introduction&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
This blog item shows an example on how to define an application that can be used by other Organisations. In this example we have a simple Cordys BOP4 setup. We have only the Default Cluster. In this example the ISV packages are made and it will show how to define the application within CCP. It will show how easy this is within CCP. After this you are able to Provision organisations to use applications within the Cloud.&lt;br /&gt;
An introduction to CPP was already given &lt;a href="http://rogervdkimmenade.blogspot.com/2011/06/cordys-cloud-provisioning.html"&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;Define the Business Partner&lt;/span&gt;&lt;br /&gt;
First you will have to define a business partner that developed the ISV. This business partner is needed when defining the Application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style="margin-top: 0in;" type="disc"&gt;
&lt;li class="MsoNormal" style="mso-list: l0 level1 lfo1;"&gt;&lt;span lang="NL"&gt;Goto System
     Organization&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="mso-list: l0 level1 lfo1;"&gt;&lt;span lang="NL"&gt;Open Global
     Business Partners&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-07P75ViBbMo/TmtuKQAs8tI/AAAAAAAAN6U/P2d0GLxO83o/s1600/Untitled.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-07P75ViBbMo/TmtuKQAs8tI/AAAAAAAAN6U/P2d0GLxO83o/s1600/Untitled.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-Q1pWmDT2Jug/TmtuWjHMqrI/AAAAAAAAN6Y/0csN4iPRm1A/s1600/Untitled.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/-Q1pWmDT2Jug/TmtuWjHMqrI/AAAAAAAAN6Y/0csN4iPRm1A/s1600/Untitled.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="177" src="http://4.bp.blogspot.com/-Q1pWmDT2Jug/TmtuWjHMqrI/AAAAAAAAN6Y/0csN4iPRm1A/s400/Untitled.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style="margin-top: 0in;" type="disc"&gt;
&lt;li class="MsoNormal" style="mso-list: l0 level1 lfo1;"&gt;Select
     +-sign&lt;/li&gt;
&lt;li class="MsoNormal" style="mso-list: l0 level1 lfo1;"&gt;&lt;span lang="NL"&gt;Fill in the
     details&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ul style="margin-top: 0in;" type="disc"&gt;
&lt;li class="MsoNormal" style="mso-list: l0 level1 lfo1;"&gt;Click Save&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;Define the Application&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
Note: A CCP application is NOT a synonym for a ISV package. An application can encompass several packages and a package can be used for the definition of several applications.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style="margin-top: 0in;" type="disc"&gt;
&lt;li class="MsoNormal"&gt;&lt;span lang="NL"&gt;Goto System
     Organization&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal"&gt;&lt;span lang="NL"&gt;Open Global
     ApplicationsClick +-sign&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal"&gt;Fill in the Application details:&lt;br /&gt;Application id: &lt;b style="mso-bidi-font-weight: normal;"&gt;com.ciber.utilityservices&lt;/b&gt;Application name: &lt;b style="mso-bidi-font-weight: normal;"&gt;CIBER Utility
     Services&lt;/b&gt;Note: Within ISV the CIBER Netherlands can be picked&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="MsoNormal"&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-fdMQaim9m8Y/Tmz45mLxASI/AAAAAAAAN6c/qJljtvJcjM8/s1600/Untitled.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="183" src="http://3.bp.blogspot.com/-fdMQaim9m8Y/Tmz45mLxASI/AAAAAAAAN6c/qJljtvJcjM8/s640/Untitled.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ul style="margin-top: 0in;" type="disc"&gt;
&lt;li class="MsoNormal" style="mso-list: l2 level1 lfo2;"&gt;&lt;span lang="NL"&gt;Click Save&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="mso-list: l2 level1 lfo2;"&gt;Now the following Tabs are shown at the bottom&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-yYI5qY-iOMY/Tmz5F31LwLI/AAAAAAAAN6g/szyRoyEZUZg/s1600/Untitled.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="80" src="http://3.bp.blogspot.com/-yYI5qY-iOMY/Tmz5F31LwLI/AAAAAAAAN6g/szyRoyEZUZg/s640/Untitled.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The Roles are used to define all the roles that are available for the application.&lt;/div&gt;
&lt;div&gt;
The X-forms are used for GUIs that are used during provisioning. Here you can add for example an input GUI each time a new Organisation is provisioned. For example to ask for extra attributes.&lt;/div&gt;
&lt;div&gt;
The BPMs are used during provisioning.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ul style="margin-top: 0in;" type="disc"&gt;
&lt;li class="MsoNormal" style="mso-list: l2 level1 lfo2;"&gt;&lt;span lang="NL"&gt;Select Roles
     tab&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="mso-list: l2 level1 lfo2;"&gt;Select the first Role as Role Id&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="MsoNormal"&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-wIHKiolxecY/Tmz5-wLunAI/AAAAAAAAN6k/Ztq6HprZkEM/s1600/Untitled.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="256" src="http://1.bp.blogspot.com/-wIHKiolxecY/Tmz5-wLunAI/AAAAAAAAN6k/Ztq6HprZkEM/s640/Untitled.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Tip: It is advised to put functional roles in a separate ISV package, maybe in a later blog item i will come back to this.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ul style="margin-top: 0in;" type="disc"&gt;
&lt;li class="MsoNormal" style="mso-list: l1 level1 lfo3;"&gt;&lt;span lang="NL"&gt;Fill in
     further details for the Role&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="mso-list: l1 level1 lfo3;"&gt;Click Save&lt;/li&gt;
&lt;li class="MsoNormal" style="mso-list: l1 level1 lfo3;"&gt;Do the same for&amp;nbsp;other Roles&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style="margin-top: 0in;" type="disc"&gt;
&lt;/ul&gt;
&lt;div class="MsoNormal"&gt;
Note: When an application is assigned to an Organisation each Role can be used within that Organisation. You have to be aware of this when defining the application. Sometimes you do not want some Organisations to have a certain Role. In that case it is best to define a separate Application.&lt;br /&gt;
&lt;br /&gt;
After that you have to define on which cluster the application runs.&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ul style="margin-top: 0in;" type="disc"&gt;
&lt;li class="MsoNormal"&gt;&lt;span lang="NL"&gt;Select
     Installed on clusters tab&lt;br /&gt;Click +-sign&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal"&gt;&lt;span lang="NL"&gt;Select the &amp;nbsp;Default Cluster&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal"&gt;&lt;span lang="NL"&gt;Click Save&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal"&gt;Click Validate (This is important, because then the state of the application
     becomes &lt;b style="mso-bidi-font-weight: normal;"&gt;In use&lt;/b&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;
&lt;li class="MsoNormal"&gt;&lt;span lang="NL"&gt;Click Back&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal"&gt;&lt;span lang="NL"&gt;Click Save&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="MsoNormal"&gt;
Before the application can be used it must be added to a Channel. A Channel in this case is the Global Channel that is defined when installing Provisioning.&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;Add Application to Default Channel&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style="margin-top: 0in;" type="disc"&gt;
 &lt;a href="http://3.bp.blogspot.com/-hE4xDEThF1I/Tmz9arlzcUI/AAAAAAAAN6o/TTiD8BSzC9s/s1600/Untitled.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/-hE4xDEThF1I/Tmz9arlzcUI/AAAAAAAAN6o/TTiD8BSzC9s/s1600/Untitled.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-hE4xDEThF1I/Tmz9arlzcUI/AAAAAAAAN6o/TTiD8BSzC9s/s1600/Untitled.png" /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/-hE4xDEThF1I/Tmz9arlzcUI/AAAAAAAAN6o/TTiD8BSzC9s/s1600/Untitled.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;
&lt;li class="MsoNormal" style="mso-list: l1 level1 lfo2;"&gt;&lt;span lang="NL"&gt;Goto System
     Organization&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="mso-list: l1 level1 lfo2;"&gt;&lt;span lang="NL"&gt;Open Global
     Channels&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ul style="margin-top: 0in;" type="disc"&gt;
&lt;li class="MsoNormal" style="mso-list: l1 level1 lfo2;"&gt;&lt;span lang="NL"&gt;Select Collection tab&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="mso-list: l1 level1 lfo2;"&gt;Open
     Collection&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-m8x0xW98qHY/Tmz94wCQqGI/AAAAAAAAN6s/UBNcWUUqucQ/s1600/Untitled.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="172" src="http://4.bp.blogspot.com/-m8x0xW98qHY/Tmz94wCQqGI/AAAAAAAAN6s/UBNcWUUqucQ/s320/Untitled.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ul style="margin-top: 0in;" type="disc"&gt;
&lt;li class="MsoNormal" style="mso-list: l1 level1 lfo2;"&gt;Click on +-sign to add an application to this collection&lt;br style="mso-special-character: line-break;" /&gt;
     &lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="mso-list: l1 level1 lfo2;"&gt;Within Application id select the &lt;b style="mso-bidi-font-weight: normal;"&gt;com.ciber.utilityservices&lt;/b&gt; application&lt;br style="mso-special-character: line-break;" /&gt;
     &lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="mso-list: l1 level1 lfo2;"&gt;&lt;span lang="NL"&gt;Click Save&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="MsoNormal"&gt;
Now you can assign Applications to Organisations.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/82799045248352799-6412720188441359435?l=rogervdkimmenade.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Qw9fUPgvUsxLQqsB7DC2Aoj72EE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Qw9fUPgvUsxLQqsB7DC2Aoj72EE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Qw9fUPgvUsxLQqsB7DC2Aoj72EE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Qw9fUPgvUsxLQqsB7DC2Aoj72EE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SoaEaiBpmOracleAgile/~4/t0EijOJwlUE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rogervdkimmenade.blogspot.com/feeds/6412720188441359435/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://rogervdkimmenade.blogspot.com/2011/09/provisioning-defining-application.html#comment-form" title="1 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/6412720188441359435?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/6412720188441359435?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SoaEaiBpmOracleAgile/~3/t0EijOJwlUE/provisioning-defining-application.html" title="Provisioning: Defining an Application" /><author><name>Roger van de Kimmenade</name><uri>http://www.blogger.com/profile/04738763579441543087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-j-uva_ndKzs/ToQpGoZaRZI/AAAAAAAAN68/KlBIBFG90Tg/s220/Roger.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-07P75ViBbMo/TmtuKQAs8tI/AAAAAAAAN6U/P2d0GLxO83o/s72-c/Untitled.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://rogervdkimmenade.blogspot.com/2011/09/provisioning-defining-application.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4HSHc-fyp7ImA9WhdTEU8.&quot;"><id>tag:blogger.com,1999:blog-82799045248352799.post-3316839195883315753</id><published>2011-07-08T14:20:00.004+02:00</published><updated>2011-07-08T14:25:39.957+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-08T14:25:39.957+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="bop4" /><category scheme="http://www.blogger.com/atom/ns#" term="short lived process" /><category scheme="http://www.blogger.com/atom/ns#" term="cordys" /><title>Cordys - Designing short lived processes</title><content type="html">&lt;h1&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small; font-weight: normal;"&gt;When designing short lived processes you have to watch out.&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small; font-weight: normal;"&gt;An example short lived process with several different types of activities.&lt;/span&gt;&lt;/h1&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-w7wtFHdgnhI/Thb2ri0-LcI/AAAAAAAANFQ/zxPxpM6a25o/s1600/pic1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="131" src="http://4.bp.blogspot.com/-w7wtFHdgnhI/Thb2ri0-LcI/AAAAAAAANFQ/zxPxpM6a25o/s640/pic1.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Arial;"&gt;Within a process you can use several Activities:&lt;/span&gt;&lt;br /&gt;
&lt;ol start="1" type="1"&gt;&lt;li&gt;&lt;span style="font-family: Arial;"&gt;Calling a subprocess within the same package&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial;"&gt;Calling a subprocess within another package&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial;"&gt;A webservice call:&lt;br /&gt;
- A runtime reference webservice call&lt;br /&gt;
- A UDDI webservice call&lt;br /&gt;
- A webservice call (drag-and-dropped from another package)&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="font-family: Arial;"&gt;Execution&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="font-family: Arial;"&gt;The short lived process is executed within a BPM service container and uses a thread for it. It holds the http connection for this call.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Arial;"&gt;However be aware that the runtime behavior of the 3 activities is different.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ol start="1" type="1"&gt;&lt;li&gt;&lt;span style="font-family: Arial;"&gt;Another BPM process can be executed within the same service container and on the same thread&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial;"&gt;Same as 1)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial;"&gt;A webservice call is done through the Bus again and Cordys does not know where the call will be executed eventually. Note that this can be the SAME service container as the one, where the current short lived process is executed. Another thread is needed and eventually (when doing more such webservices calls) the service container may use all threads. This can cause that the client gets a timeout and the next calls cannot be executed.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;span style="font-family: Arial;"&gt;A way to avoid case 3) is that extra service containers are defined to handle subsequent calls. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Arial;"&gt;For example:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial;"&gt;When you have 2 ISV packages that each contain different functionality, you can decide to have separate service containers at runtime. Another advantage is that you can stop the service container of one component without stopping the other service container, so that components can be stopped.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-sb_6XESnXD0/Thb20xLrPTI/AAAAAAAANFU/yrD-X-omoLA/s1600/pic2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-sb_6XESnXD0/Thb20xLrPTI/AAAAAAAANFU/yrD-X-omoLA/s1600/pic2.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-family: Arial;"&gt;Conclusion&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="font-family: Arial;"&gt;Be aware of the runtime consequences when designing short-lived processes.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/82799045248352799-3316839195883315753?l=rogervdkimmenade.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Fi0qj5LbtfWvMmroRkx2Buig6WM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Fi0qj5LbtfWvMmroRkx2Buig6WM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Fi0qj5LbtfWvMmroRkx2Buig6WM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Fi0qj5LbtfWvMmroRkx2Buig6WM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SoaEaiBpmOracleAgile/~4/86-HvJ7prio" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rogervdkimmenade.blogspot.com/feeds/3316839195883315753/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://rogervdkimmenade.blogspot.com/2011/07/cordys-designing-short-lived-processes.html#comment-form" title="0 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/3316839195883315753?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/3316839195883315753?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SoaEaiBpmOracleAgile/~3/86-HvJ7prio/cordys-designing-short-lived-processes.html" title="Cordys - Designing short lived processes" /><author><name>Roger van de Kimmenade</name><uri>http://www.blogger.com/profile/04738763579441543087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-j-uva_ndKzs/ToQpGoZaRZI/AAAAAAAAN68/KlBIBFG90Tg/s220/Roger.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-w7wtFHdgnhI/Thb2ri0-LcI/AAAAAAAANFQ/zxPxpM6a25o/s72-c/pic1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://rogervdkimmenade.blogspot.com/2011/07/cordys-designing-short-lived-processes.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYNRXY9fSp7ImA9WhZbFkU.&quot;"><id>tag:blogger.com,1999:blog-82799045248352799.post-7930086927127646601</id><published>2011-06-21T20:16:00.001+02:00</published><updated>2011-06-21T20:16:34.865+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-21T20:16:34.865+02:00</app:edited><title>Cordys: The value is not set for the parameter number</title><content type="html">&lt;div&gt;Today I ran into the following problem:&lt;/div&gt;&lt;br&gt;&lt;div&gt;&amp;lt;log4j:event logger=&amp;quot;com.cordys.xds.internal.transaction.query.XQYQuery&amp;quot; timestamp=&amp;quot;1308643015133&amp;quot; level=&amp;quot;ERROR&amp;quot; thread=&amp;quot;Monitor Stream Reader Thread&amp;quot;&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;log4j:message&amp;gt;&amp;lt;![CDATA[Failed to execute query. Error: + &amp;#39;&lt;/div&gt;&lt;div&gt;&amp;lt;error&lt;/div&gt;&lt;div&gt;TYPE=&amp;quot;Enumeration&amp;quot;&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;elem&amp;gt;Error :com.microsoft.sqlserver.jdbc.SQLServerException: The value is not set for the parameter number 1.&amp;lt;/elem&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;/error&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;#39;]]&amp;gt;&amp;lt;/log4j:message&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;log4j:MDC&amp;gt;&amp;lt;![CDATA[host=cvzlaca004 processid=1314]]&amp;gt;&amp;lt;/log4j:MDC&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;log4j:throwable&amp;gt;&amp;lt;![CDATA[com.cordys.xds.transaction.exception.DatabaseQueryException: Failed to execute query. Error: + &amp;#39;&lt;/div&gt;&lt;div&gt;&amp;lt;error&lt;/div&gt;&lt;div&gt;TYPE=&amp;quot;Enumeration&amp;quot;&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;elem&amp;gt;Error :com.microsoft.sqlserver.jdbc.SQLServerException: The value is not set for the parameter number 1.&amp;lt;/elem&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;/error&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;#39;&lt;/div&gt;&lt;div&gt;Trace:&lt;/div&gt;&lt;div&gt;at com.cordys.xds.internal.transaction.query.XQYQuery.executeQuery(XQYQuery.java:221)&lt;/div&gt;&lt;div&gt;at com.cordys.xds.internal.branch.BranchDataCache.prepareParentBranchHierarchy(BranchDataCache.java:325)&lt;/div&gt;&lt;div&gt;at com.cordys.xds.internal.branch.BranchDataCache.loadCacheValueInternal(BranchDataCache.java:134)&lt;/div&gt;&lt;div&gt;at com.eibus.util.cache.Cache.loadCacheValue(Cache.java:375)&lt;/div&gt;&lt;div&gt;at com.eibus.util.cache.Cache.get(Cache.java:264)&lt;/div&gt;&lt;div&gt;at com.cordys.xds.internal.branch.BranchDataCache.get(BranchDataCache.java:217)&lt;/div&gt;&lt;div&gt;at com.cordys.xds.internal.branch.BranchManagerImpl.getBranchDataValue(BranchManagerImpl.java:443)&lt;/div&gt;&lt;div&gt;at com.cordys.xds.internal.branch.BranchManagerImpl.getBranch(BranchManagerImpl.java:421)&lt;/div&gt;&lt;div&gt;at com.cordys.xds.internal.branch.BranchManagerImpl.getBranch(BranchManagerImpl.java:411)&lt;/div&gt;&lt;div&gt;at com.cordys.xds.internal.service.XDSServiceImpl.isValidBranch(XDSServiceImpl.java:353)&lt;/div&gt;&lt;div&gt;at com.cordys.xds.internal.service.XDSServiceImpl.getServer(XDSServiceImpl.java:329)&lt;/div&gt;&lt;div&gt;at com.cordys.task.xds.TaskUtil.createTaskBranch(TaskUtil.java:168)&lt;/div&gt;&lt;div&gt;at com.cordys.applicationconnector.task.TaskConnector.open(TaskConnector.java:56)&lt;/div&gt;&lt;div&gt;at com.eibus.soap.Processor.open(Processor.java:752)&lt;/div&gt;&lt;div&gt;at com.eibus.soap.Processor.startProcessor(Processor.java:1036)&lt;/div&gt;&lt;div&gt;at com.eibus.soap.ProcessStreamsHandler.startProcessor(ProcessStreamsHandler.java:681)&lt;/div&gt;&lt;div&gt;at com.eibus.soap.ProcessStreamsHandler$StreamReader.run(ProcessStreamsHandler.java:353)&lt;/div&gt;&lt;div&gt;]]&amp;gt;&amp;lt;/log4j:throwable&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;log4j:locationInfo class=&amp;quot;com.cordys.xds.util.XDSLogger&amp;quot; method=&amp;quot;exception&amp;quot; file=&amp;quot;XDSLogger.java&amp;quot; line=&amp;quot;242&amp;quot;/&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;/log4j:event&amp;gt;&lt;/div&gt;&lt;br&gt;The reason for this problem is that the user did not have enough privilage on the database to execute this query. So Cordys needs to have db_writer, db_reader AND db_owner rights on the database!&lt;br&gt;&lt;br&gt;&lt;div&gt;It took me half a day to figure this out, so hopefully this helps other Cordys developers !&lt;/div&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/82799045248352799-7930086927127646601?l=rogervdkimmenade.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/yWMIB_wdvGMmlofP51z6S0zsG7w/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yWMIB_wdvGMmlofP51z6S0zsG7w/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/yWMIB_wdvGMmlofP51z6S0zsG7w/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yWMIB_wdvGMmlofP51z6S0zsG7w/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SoaEaiBpmOracleAgile/~4/6KUhoQo7J2c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rogervdkimmenade.blogspot.com/feeds/7930086927127646601/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://rogervdkimmenade.blogspot.com/2011/06/cordys-value-is-not-set-for-parameter.html#comment-form" title="0 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/7930086927127646601?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/7930086927127646601?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SoaEaiBpmOracleAgile/~3/6KUhoQo7J2c/cordys-value-is-not-set-for-parameter.html" title="Cordys: The value is not set for the parameter number" /><author><name>Roger van de Kimmenade</name><uri>http://www.blogger.com/profile/04738763579441543087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-j-uva_ndKzs/ToQpGoZaRZI/AAAAAAAAN68/KlBIBFG90Tg/s220/Roger.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://rogervdkimmenade.blogspot.com/2011/06/cordys-value-is-not-set-for-parameter.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8NQH86eyp7ImA9WhZbFU0.&quot;"><id>tag:blogger.com,1999:blog-82799045248352799.post-9028902463651235633</id><published>2011-06-19T20:02:00.002+02:00</published><updated>2011-06-19T20:08:11.113+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-19T20:08:11.113+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="cloud" /><category scheme="http://www.blogger.com/atom/ns#" term="ccp" /><category scheme="http://www.blogger.com/atom/ns#" term="provisioning" /><category scheme="http://www.blogger.com/atom/ns#" term="cordys" /><title>Introduction to Cordys Cloud Provisioning</title><content type="html">&lt;h1&gt;&lt;span style="font-size: large;"&gt;Introduction&lt;/span&gt;&lt;/h1&gt;In my current Cordys project I am using the Cordys Cloud Provisioning (CCP) functionality of Cordys. I am very excited about this produkt and this blog item I will share my knowledge about it.&lt;br /&gt;
&lt;div&gt;First I will explain something about provisioning.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;What is Provisioning?&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;Provisioning is the process of managing Organizations (also called Tenants) and Users to let them use Applications. It manages the usage of applications that can be used as SaaS applications by tenants. It can be used to create new business models. Cordys has made a separate package for this, on top of BOP4 called CCP.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;With CCP it is possible (among others):&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Managing Cordys-Applications and non-Cordys applications&lt;/li&gt;
&lt;li&gt;Managing of Tenants&lt;/li&gt;
&lt;li&gt;Managing of Users and Roles&lt;/li&gt;
&lt;li&gt;Keeping track of the usage of the Applications (Metering)&lt;/li&gt;
&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-o9U2Ngz69MM/Tf46cPBWbaI/AAAAAAAAMxg/qyjjy7EHI10/s1600/CCP1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="236" src="http://2.bp.blogspot.com/-o9U2Ngz69MM/Tf46cPBWbaI/AAAAAAAAMxg/qyjjy7EHI10/s320/CCP1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large; font-weight: bold;"&gt;Some Terminology&lt;/span&gt;&lt;/div&gt;The next picture shows the Cordys-ecosystem.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-ztkNZCQ6pHQ/Tf46jsnJs2I/AAAAAAAAMxk/xIrMxXmZD3Y/s1600/CCP2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="155" src="http://4.bp.blogspot.com/-ztkNZCQ6pHQ/Tf46jsnJs2I/AAAAAAAAMxk/xIrMxXmZD3Y/s320/CCP2.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-left: 0px; margin-right: 0px;"&gt;A&amp;nbsp;&lt;b&gt;Tenant&lt;/b&gt;&amp;nbsp;makes use of&amp;nbsp;&lt;b&gt;SaaS&lt;/b&gt;&amp;nbsp;applications that are delivered by a&amp;nbsp;&lt;b&gt;PaaS&lt;/b&gt;. These applications are developed by&amp;nbsp;&lt;b&gt;Apps Provider (ISV)&lt;/b&gt;.&lt;/div&gt;&lt;div style="margin-left: 0px; margin-right: 0px;"&gt;A&amp;nbsp;&lt;b&gt;Tenant Admin&amp;nbsp;&lt;/b&gt;manages Users and Applications for a tenant. The&amp;nbsp;&lt;b&gt;End User&lt;/b&gt;&amp;nbsp;is a user that uses the applications. A&amp;nbsp;&lt;b&gt;Sales Channel&lt;/b&gt;&amp;nbsp;is a channel that sells applications for ISVs to other tenants.&lt;/div&gt;&lt;div style="margin-left: 0px; margin-right: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;h1&gt;&lt;span style="font-size: large;"&gt;Cordys is multi-tenant in the core&lt;/span&gt;&lt;/h1&gt;&lt;div style="margin-left: 0px; margin-right: 0px;"&gt;The nice part of Cordys is that the Cordys core is Tenant aware. This means that all usage of applications is done in the context of a tenant (in Cordys this is an Organization). Applications developed with Cordys must be made tenant aware. The result is that application data will have tenant info associated with it. In fact an Organization can be seen as a "container" with its own users, applications and security context.&amp;nbsp; This way tenants can not use data of other tenants. Users can only access an organization if it has a Role in that Organization.&amp;nbsp;&lt;/div&gt;&lt;div style="margin-left: 0px; margin-right: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-WSJYcgBHabQ/Tf46ssXSi9I/AAAAAAAAMxo/XQMis24mA58/s1600/CCP3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="157" src="http://2.bp.blogspot.com/-WSJYcgBHabQ/Tf46ssXSi9I/AAAAAAAAMxo/XQMis24mA58/s320/CCP3.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-left: 0px; margin-right: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-left: 0px; margin-right: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: large; font-weight: bold;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-left: 0px; margin-right: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: large; font-weight: bold;"&gt;CCP Applications&lt;/span&gt;&lt;/div&gt;Applications can be used by tenants and are defined in Cordys with CCP. Applications are defined with the use of ISV packages. For each Application the available Roles can be defined. You can define provisioning processes, properties and custom UIs that are being executed in case an organizations and/or users take a subscription.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-pL943XOuuaU/Tf46wfRJCTI/AAAAAAAAMxs/1xXGiO6jzaA/s1600/ccp4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="150" src="http://3.bp.blogspot.com/-pL943XOuuaU/Tf46wfRJCTI/AAAAAAAAMxs/1xXGiO6jzaA/s320/ccp4.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;Some example screens when defining a new Application through CCP.&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-ubBkfB7bMsU/Tf4606iDS0I/AAAAAAAAMxw/0JHRuy-vFf4/s1600/ccp5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="91" src="http://2.bp.blogspot.com/-ubBkfB7bMsU/Tf4606iDS0I/AAAAAAAAMxw/0JHRuy-vFf4/s320/ccp5.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;Defining Roles.&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-uu7dOtkokUs/Tf465EcBqZI/AAAAAAAAMx0/KSifLzNKwhs/s1600/ccp6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="91" src="http://3.bp.blogspot.com/-uu7dOtkokUs/Tf465EcBqZI/AAAAAAAAMx0/KSifLzNKwhs/s320/ccp6.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;h1&gt;Conclusion&amp;nbsp;&lt;/h1&gt;Cordys is the only BPM produkt I know of, that has SaaS features within the core of the produkt. CCP is a fairly new addon to the Cordys BOP4 platform, but I expect a lot from it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/82799045248352799-9028902463651235633?l=rogervdkimmenade.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gKYwFaBXMDYbuqywrUASIHAZAjg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gKYwFaBXMDYbuqywrUASIHAZAjg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gKYwFaBXMDYbuqywrUASIHAZAjg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gKYwFaBXMDYbuqywrUASIHAZAjg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SoaEaiBpmOracleAgile/~4/zSbFSor13eM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rogervdkimmenade.blogspot.com/feeds/9028902463651235633/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://rogervdkimmenade.blogspot.com/2011/06/cordys-cloud-provisioning.html#comment-form" title="0 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/9028902463651235633?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/9028902463651235633?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SoaEaiBpmOracleAgile/~3/zSbFSor13eM/cordys-cloud-provisioning.html" title="Introduction to Cordys Cloud Provisioning" /><author><name>Roger van de Kimmenade</name><uri>http://www.blogger.com/profile/04738763579441543087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-j-uva_ndKzs/ToQpGoZaRZI/AAAAAAAAN68/KlBIBFG90Tg/s220/Roger.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-o9U2Ngz69MM/Tf46cPBWbaI/AAAAAAAAMxg/qyjjy7EHI10/s72-c/CCP1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://rogervdkimmenade.blogspot.com/2011/06/cordys-cloud-provisioning.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8ERnw7eCp7ImA9WhZbE08.&quot;"><id>tag:blogger.com,1999:blog-82799045248352799.post-6307316517150874152</id><published>2011-06-17T16:25:00.002+02:00</published><updated>2011-06-17T16:26:47.200+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-17T16:26:47.200+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="bop4" /><category scheme="http://www.blogger.com/atom/ns#" term="error" /><category scheme="http://www.blogger.com/atom/ns#" term="cordys" /><title>Address already in use error</title><content type="html">During installation of Cordys BOP4 (CU17) we ran into the following problem.&lt;br /&gt;
&lt;br /&gt;
&lt;div id="m3or" style="text-align: left;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-VDc_8Qpc73o/TftkDbV8dgI/AAAAAAAAMwA/LQ5y-PFA1XQ/s1600/AddressUsage.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="236" src="http://2.bp.blogspot.com/-VDc_8Qpc73o/TftkDbV8dgI/AAAAAAAAMwA/LQ5y-PFA1XQ/s640/AddressUsage.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
I tried to change the client connection point address of the WebGateway, but still no success.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;Eventually it appeared to be an Apache Config problem.&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;In &amp;lt;Apache_Install_Dir&amp;gt;/conf/extra/httpd-mpm.conf there is a setting.&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;span style="font-family: 'Courier New';"&gt;# worker MPM&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New';"&gt;# StartServers: initial number of server processes to start&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New';"&gt;# MaxClients: maximum number of simultaneous client connections&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New';"&gt;# MinSpareThreads: minimum number of worker threads which are kept spare&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New';"&gt;# MaxSpareThreads: maximum number of worker threads which are kept spare&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New';"&gt;# ThreadsPerChild: constant number of worker threads in each server process&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New';"&gt;# MaxRequestsPerChild: maximum number of requests a server process serves&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;lt;IfModule mpm_worker_module&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp; &amp;nbsp; ServerLimit &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp; &amp;nbsp; ThreadLimit &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 200&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp; &amp;nbsp; StartServers &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp; &amp;nbsp; MaxClients &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;200&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp; &amp;nbsp; MinSpareThreads &amp;nbsp; &amp;nbsp; &amp;nbsp;25&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp; &amp;nbsp; MaxSpareThreads &amp;nbsp; &amp;nbsp; 200&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp; &amp;nbsp; ThreadsPerChild &amp;nbsp; &amp;nbsp; 200&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp; &amp;nbsp; MaxRequestsPerChild &amp;nbsp; 0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;lt;/IfModule&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
The important setting here is StartServers. This value MUST be "1".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/82799045248352799-6307316517150874152?l=rogervdkimmenade.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/UhULPyGL4JOTIpMwC2JVsxHBmAk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UhULPyGL4JOTIpMwC2JVsxHBmAk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/UhULPyGL4JOTIpMwC2JVsxHBmAk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UhULPyGL4JOTIpMwC2JVsxHBmAk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SoaEaiBpmOracleAgile/~4/UjLeL3Fr5RA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rogervdkimmenade.blogspot.com/feeds/6307316517150874152/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://rogervdkimmenade.blogspot.com/2011/06/address-already-in-use-error.html#comment-form" title="2 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/6307316517150874152?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/6307316517150874152?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SoaEaiBpmOracleAgile/~3/UjLeL3Fr5RA/address-already-in-use-error.html" title="Address already in use error" /><author><name>Roger van de Kimmenade</name><uri>http://www.blogger.com/profile/04738763579441543087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-j-uva_ndKzs/ToQpGoZaRZI/AAAAAAAAN68/KlBIBFG90Tg/s220/Roger.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-VDc_8Qpc73o/TftkDbV8dgI/AAAAAAAAMwA/LQ5y-PFA1XQ/s72-c/AddressUsage.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://rogervdkimmenade.blogspot.com/2011/06/address-already-in-use-error.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8GSH8zfyp7ImA9Wx9bE0o.&quot;"><id>tag:blogger.com,1999:blog-82799045248352799.post-5331857013103128211</id><published>2011-02-22T11:32:00.002+01:00</published><updated>2011-02-22T11:33:49.187+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-22T11:33:49.187+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="soa" /><category scheme="http://www.blogger.com/atom/ns#" term="oracle" /><title>ORA - Oracle SOA Foundation</title><content type="html">&lt;h1&gt;Service Oriented Architecture&lt;/h1&gt;&lt;div&gt;Issues todays IT:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Heterogeneity: no interoperable interfaces, now we have web services&lt;/li&gt;
&lt;li&gt;Business Focus&lt;/li&gt;
&lt;li&gt;Agility, reuse and cost reduction&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;div id="aap4" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_502f8cbnbhd_b" style="height: 330px; width: 463px;" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Benefits of SOA&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Reuse of Services (at the business unit level)&lt;/li&gt;
&lt;li&gt;Agility: respond quickly to changing business requirements&lt;/li&gt;
&lt;li&gt;Simpler integration (by using standards)&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;div&gt;&lt;b&gt;Architectural Principles&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Formal contracts (Thomas: Contract Standardization)&lt;/li&gt;
&lt;li&gt;Loose Coupling&lt;/li&gt;
&lt;li&gt;Abstraction&lt;/li&gt;
&lt;li&gt;Reusability&lt;/li&gt;
&lt;li&gt;Autonomy&lt;/li&gt;
&lt;li&gt;Statelessness&lt;/li&gt;
&lt;li&gt;Discoverability&lt;/li&gt;
&lt;li&gt;Composability&lt;/li&gt;
&lt;li&gt;(Durability)&lt;/li&gt;
&lt;li&gt;(Interoperability)&lt;/li&gt;
&lt;li&gt;(Standards compliance)&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;(First all from Thomas Erl's books, last three added by Oracle)&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;b&gt;Service Definition principles&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Service encapsulation - A Service must perform a complete unit of work&lt;/li&gt;
&lt;li&gt;Service loose coupling - Services maintain a relationship that minimizes dependencies between them&lt;/li&gt;
&lt;li&gt;Service contract - Services adhere to a contractual agreement, as defined collectively by one or more Service description documents&lt;/li&gt;
&lt;li&gt;Service abstraction - Beyond what is described in the Service contract, Services hide logic from the outside world&lt;/li&gt;
&lt;li&gt;Service reusability - Logic is divided into Services with the intention of promoting reuse&lt;/li&gt;
&lt;li&gt;Service composability - Collections of Services can be coordinated and assembled to form composite Services&lt;/li&gt;
&lt;li&gt;Service autonomy - Services have control over the logic they encapsulate&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Service optimization - All else equal, high-quality Services are generally considered preferable to low-quality ones (“quality” in this context is referring to business value, reuse, and other chosen measures of value)&lt;/li&gt;
&lt;li&gt;Service discoverability - Services are designed to be outwardly descriptive so that they can be found and assessed via available discovery mechanisms&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;b&gt;Oracle's definition of a Service&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;"A Service is a means of packaging reusable software building blocks to provide&lt;br /&gt;
&lt;div&gt;functionality to users, applications, or other Services; it is an independent,&lt;/div&gt;&lt;div&gt;self-sufficient, functional unit of work that is discoverable, manageable, measurable,&lt;/div&gt;&lt;div&gt;has the ability to be versioned, and offers functionality that is required by a set of&lt;/div&gt;&lt;div&gt;consumers. A Service may be shared, which means that the function offered by the&lt;/div&gt;&lt;div&gt;Service is intended for multiple consumers, some known, and others that have not yet&lt;/div&gt;&lt;div&gt;been identified."&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;A Service is comprised of three parts: the &lt;b&gt;implementation &lt;/b&gt;(deployed code and&lt;/div&gt;&lt;div&gt;configuration of infrastructure), the &lt;b&gt;interface &lt;/b&gt;(means by which the Service is invoked),&lt;/div&gt;&lt;div&gt;and the &lt;b&gt;contract&lt;/b&gt; (a description of what the Service provides and its constraints)&lt;/div&gt;&lt;br /&gt;
&lt;div id="ma2m" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_503f72zk2fz_b" style="height: 414.97192224622034px; width: 648px;" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h1&gt;Architectural Models&lt;/h1&gt;&lt;h2&gt;SOA Logical Architecture&lt;/h2&gt;&lt;/div&gt;Layering to achieve separations-of-concerns.&lt;br /&gt;
&lt;div id="ovun" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_504ccs97kdf_b" style="height: 488px; width: 637px;" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;b&gt;Service Layers&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Presentation&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Business Process and Business Activity&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;While Business Activity Services focus on static business functions, Business Process Services provide dynamic workflow orchestations of business functions. Business Services represent operations that either have a high likelihood of reuse, or a significant value to the organization.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Data (CDM)&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;Data Services are used to access data from various sources using many different technologies, and present data in a business-friendly form. Data Services offer a way to aggregate, transform, and synchronize data from multiple sources. They expose data in a format that best supports business Services and composite business applications.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Connectivity&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;They establish connectivity with legacy applications that do not inherently provide Service oriented interfaces. Services exposed at this layer are not intended to reflect business context in any way. Being context-neutral, they can be used in many different business scenarios.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Utility &lt;/b&gt;(Not containing business logic)&lt;br /&gt;
&lt;div&gt;Services generally perform infrastructure-related functions, such as security (credential mapping, access control, auditing), logging, notification, policy lookup, transaction watermarking, etc. This classification of IT functions is often referred to as "cross-cutting" and are, therefore drawn perpendicular to the other services in thisdiagram;&lt;/div&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;div id="cmrj" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_505gbd7tchf_b" style="height: 420.015132408575px; width: 648px;" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h3&gt;&lt;b&gt;Service Providers and Service Consumers&lt;/b&gt;&lt;/h3&gt;&lt;br /&gt;
&lt;div id="xy:w" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_506dff2kqcd_b" style="height: 228.27272727272728px; width: 648px;" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;b&gt;Service Provider&lt;/b&gt;&lt;/div&gt;&lt;div&gt;It is important to note that providing a Service is more than simply providing an interface to invoke a business function. The Service provider must ensure that qualities of Service are stated, offered, and adhered to. This is especially important for Services of an enterprise-class nature, i.e., Services advertised for use across departmental boundaries and/or Services that are leveraged by mission-critical solutions. Therefore the principles of Service enablement must be followed.&lt;/div&gt;&lt;div&gt;Architectural Principles&lt;/div&gt;&lt;div&gt;1. An interface must be provided that conforms to the reference architecture&lt;/div&gt;&lt;div&gt;2. A contract must be provided as specified in the reference architecture&lt;/div&gt;&lt;div&gt;3. Security policy must be defined and enforced&lt;/div&gt;&lt;div&gt;4. Versioning strategy must be adhered to&lt;/div&gt;&lt;div&gt;5. The Service must conform to infrastructure rules for discovery, management, monitoring, and governance&lt;/div&gt;&lt;div&gt;6. The Service must be classified according to layers and definitions of the reference architecture&lt;/div&gt;&lt;div&gt;7. The Service provider must ensure that the Service will satisfy the aggregate specifications of all related usage agreements&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;b&gt;Service Consumer&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Service consumers are, of course, consumers of Services, but more importantly they do not offer an SOA capabilities nor are they required to conform to SOA principles (assuming they are not also Service providers). Service consumers may be end-users, composite applications, or other systems in purely system-to-system interactions.&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;b&gt;Composite Applications&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Composite Applications is a term used to define applications built primarily of Services. These Services may belong to any of the Service layers previously described. Common examples of Composite Applications include portals and BPM processes.&lt;/div&gt;&lt;div&gt;Unlike Composite Applications, Composite Services do not provide complete, self-contained functionality to an end-user, but instead provide Services to other Services, systems, or applications. Composite Services are comprised of other Services and are hence, Service Consumers; since they provide Services they are also Service Providers.&lt;/div&gt;&lt;h2&gt;Service Scope&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Multi enterprise (Exposed Services)&lt;/li&gt;
&lt;li&gt;Enterprise Wide (only used within the Enterprise)&lt;/li&gt;
&lt;li&gt;Intra-line of Business (LOB) (Only used within a LOB)&lt;/li&gt;
&lt;li&gt;Intra-Application (Only used within an Application)&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;Service Meta Model&lt;/h2&gt;&lt;div id="fi1w" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_507c2wjzxf4_b" style="height: 486.6759388038943px; width: 648px;" /&gt;&lt;/div&gt;&lt;b&gt;Contract&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;A contract describes the Service in human-readable terms, enabling a solution designer to determine its capabilities and characteristics. It includes both functional and non-functional terms (such as invocation protocols, security requirements, semantics, transaction requirements, invocation style, quality of Service).&lt;/div&gt;&lt;div id="t9rj" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_508mm7s24gk_b" style="height: 544px; width: 564px;" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;Service policies are reusable, composeable descriptions of behavior used to specify Service contracts.&lt;/div&gt;&lt;div&gt;There are various policy types:&lt;/div&gt;&lt;div&gt;&lt;b&gt;Compliance&lt;/b&gt;&lt;/div&gt;Compliance policies can take the form of industry or enterprise standards, or regulatory and other legal mandates (example WS-I).&lt;br /&gt;
&lt;div&gt;&lt;b&gt;Quality-of-Service&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Mostly non-functional like availability, performance, transaction integrity. WS-ReliableMessaging, WS-Transactions, WS-Coordination, WS-AtomicTransaction and WS Business Activity Framework, WS-Security&lt;/div&gt;&lt;div&gt;&lt;b&gt;Message Exchange Pattern (MEP)&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Examples are request-response, one-way, asychronous (WS-Addressing), pub-sub, broadcast. Other considerations: transactional requirements, only once or idempotent.&lt;br /&gt;
&lt;b&gt;Security&lt;/b&gt;&lt;/div&gt;Following aspects play a role:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;message level security (WS-SecurityPolicy)&lt;/li&gt;
&lt;li&gt;transport level security&lt;/li&gt;
&lt;li&gt;authentication&lt;/li&gt;
&lt;li&gt;authorization.&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;Other security standards specified by OASIS:&lt;/div&gt;&lt;div&gt;■ WS-Security Core Specification;&lt;/div&gt;&lt;div&gt;■ Username Token Profile;&lt;/div&gt;&lt;div&gt;■ X.509 Token Profile;&lt;/div&gt;&lt;div&gt;■ SAML Token profile;&lt;/div&gt;&lt;div&gt;■ Kerberos Token Profile;&lt;/div&gt;&lt;div&gt;■ Rights Expression Language (REL) Token Profile;&lt;/div&gt;&lt;div&gt;■ SOAP with Attachments (SWA) Profile.&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Interface and Messaging&lt;/b&gt;&lt;br /&gt;
Interface often soap over HTTP, because:&lt;br /&gt;
&lt;div&gt;Platform independant, vendor support, standards support, firewall penetration.&amp;nbsp;&lt;/div&gt;&lt;div&gt;Disadvantages can be: verbose, reliability and security due to lack of security standards.&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;b&gt;Implementation&lt;/b&gt;&lt;/div&gt;&lt;div&gt;An implementation will often consist of deployable code as well as infrastructure configurations, security policies, management agents, etc. - all parts working together to fulfill the contract. The Service Infrastructure side typically provides the Service enablement capabilities for the implementation. These capabilities may include, exposing the interface as a Web Service, handling SLA enforcement, security, data formatting, and others. Service infrastructure should be utilized when possible, as it reduces the burden on Service providers, from an implementation standpoint.&lt;/div&gt;&lt;h2&gt;Separation of Concerns&lt;/h2&gt;&lt;div&gt;There must be a clear separation of concerns in terms of what they do from how they are used. Services should be written to accomplish their function regardless of what protocol is used to invoke them, where they physically exist, or on what type of hardware or operating system they run on. This provides for maximum reuse by allowing access through multiple types of interfaces. It also provides greater versatility in how they are deployed and what underlying technologies are used.&lt;/div&gt;&lt;div&gt;&lt;b&gt;Principle&lt;/b&gt;: Services must not be tied to any particular underlying technology, delivery channel, or physical location.&lt;/div&gt;&lt;h2&gt;Service Versioning&lt;/h2&gt;&lt;div&gt;Following the loose coupling principles of SOA, the impact to consumers should be minimized. For this reason changes should be handled as versions, ideally supporting the ability to have multiple versions running concurrently.&lt;/div&gt;&lt;div&gt;&lt;b&gt;Principles&lt;/b&gt;&lt;/div&gt;&lt;div&gt;1. Services must support multiple concurrent versions.&lt;/div&gt;&lt;div&gt;2. Service providers must be able to release new versions into production without waiting for consumers to certify on them.&lt;/div&gt;&lt;div&gt;3. Consumers must be able to test and certify on new Service versions before switching to the new version in &amp;nbsp;production.&lt;/div&gt;&lt;br /&gt;
&lt;h1&gt;Technologies and Standards&lt;/h1&gt;&lt;div&gt;SOA must be standards-based in order to achieve interoperability. Also for given Enterprise, technologies (in the form of platforms), tools, and engineering practices must adhere to selected standards.&lt;/div&gt;&lt;div&gt;Standards may originate from various sources:&lt;/div&gt;&lt;div&gt;■ IT industry standards (e.g. W3C XML, OASIS WS-*);&lt;/div&gt;&lt;div&gt;■ Business industry standards (e.g. HL7, …);&lt;/div&gt;&lt;div&gt;■ Enterprise standards (engineering standards).&lt;/div&gt;&lt;div&gt;The primary benefits of adopting standards are interoperability, technology, independence, and rapid integration.&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;Core SOA related standards recommended are:&lt;/div&gt;&lt;div&gt;■ Java API for XML Web Services (JAX-WS)&lt;/div&gt;&lt;div&gt;■ Business Process Execution Language (BPEL)&lt;/div&gt;&lt;div&gt;■ A collection of Web Services standards (WS-*)&lt;/div&gt;&lt;div&gt;■ Simple Object Access Protocol (SOAP) with attachments and Message Transmission Optimization Mechanism (MTOM) (implemented as SOAP with Attachments API for Java (SAAJ)&lt;/div&gt;&lt;div&gt;■ HyperText Transfer Protocol (HTTP)&lt;/div&gt;&lt;div&gt;■ Universal Description, Discovery and Integration (UDDI)&lt;/div&gt;&lt;div&gt;■ Service Component Architecture (SCA)&lt;/div&gt;&lt;div&gt;■ Apache's Web Service Invocation Framework (WSIF)&lt;/div&gt;&lt;div&gt;■ Web Service Interoperability (WS-I)&lt;/div&gt;&lt;br /&gt;
Industry specific standards are:&lt;br /&gt;
&lt;div&gt;■ HL7 (XML messaging standard for Healthcare)&lt;/div&gt;&lt;div&gt;■ HRXML (for support a variety of business processes related to human resource management)&lt;/div&gt;&lt;div&gt;■ Telecoms IMS (IP Multimedia Subsystem, 3GPP Technical Specification TS 22.228)&lt;/div&gt;&lt;div&gt;architectural strategy and standards for decoupling of the technical and organizational constraints of former telecommunications strategies)&lt;/div&gt;&lt;div&gt;■ OASIS ebXML work, such as, CPPA (Collaboration Protocol Profile and Agreement) which describes how trading partners engage in electronic business collaborations through the exchange of electronic messages&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;Standards for SOA can be categorized into five areas of concern:&lt;/div&gt;&lt;div&gt;1. Orchestration and composition;&lt;/div&gt;&lt;div&gt;2. Description and discovery;&lt;/div&gt;&lt;div&gt;3. Messaging;&lt;/div&gt;&lt;div&gt;4. Implementation.&lt;/div&gt;&lt;div&gt;5. Management&lt;/div&gt;&lt;div id="q30-" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_5096w7w2cd8_b" style="height: 364px; width: 637px;" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span style="font-size: medium;"&gt;&lt;b&gt;SOA Implementation Architectural Styles&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;b&gt;REST&lt;/b&gt;&lt;/div&gt;&lt;div&gt;HTTP provides a stateless, platform-independent protocol for the exchange of&lt;/div&gt;&lt;div&gt;information over a network; it is a standard for a request/response dialogue between&lt;/div&gt;&lt;div&gt;clients and servers.&lt;br /&gt;
&lt;div&gt;From the definition of HTTP (or more accurately its principle author, Roy Fielding) an architectural style emerged called Representational State Transfer (REST). Core to the concept of REST is a resource which it defines as any item of information or capability addressable on a network by a global identifier (its URI in HTTP terms). The REST architectural style describes any simple interface which transmits domain-specific data over HTTP without involving higher-level messaging, such as, SOAP.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Support for REST is also starting to appear in Web Services standards: WSDL 2.0&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;b&gt;RPC&lt;/b&gt;&lt;/div&gt;&lt;div&gt;RPC is a means of calling a method or function on another node in a distributed computing environment.&lt;/div&gt;&lt;div&gt;Early examples of standardized RPC's included Sun's RPC, Microsoft's DCOM, Java's RMI, OMG's SOA, CORBA, ODBC/JDBC, and SQL*Net. More recent RPC's include XML-RPC, and HTTP.&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;b&gt;Web Services Architecture&lt;/b&gt;&lt;/div&gt;&lt;div&gt;The World Wide Web Consortium's (W3C) Web Service Architecture (WSA) provides a definition of Web Services:&lt;/div&gt;&lt;div&gt;"A Web Service is a software system identified by a URI [RFC 2396], whose public interfaces and bindings are defined and described using XML. Its definition can be discovered by other software systems. These systems may then interact with the Web Service in a manner prescribed by its definition, using XML based messages conveyed by Internet protocols."&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;b&gt;Web Services Standards&amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;The second generation of Web Services specifications (commonly referred to as WS-*) has a large focus on enabling QoS within an SOA environment, which is one of the reasons Web Services has become the primary way to expose Services.&lt;/div&gt;&lt;div id="zufk" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_510cvgvp3cq_b" style="height: 426.5px; width: 648px;" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;Infrastructure&lt;/h2&gt;&lt;b&gt;Service Enablement&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;Service Enablement is a key differentiator of Service implementation (as opposed to application implementation).&lt;/div&gt;&lt;div&gt;Service enablement is&lt;/div&gt;&lt;div&gt;responsible for the following aspects of a Service:&lt;/div&gt;&lt;div&gt;■ Configuration based logic&lt;/div&gt;&lt;div&gt;– Routing&lt;/div&gt;&lt;div&gt;– Transformations&lt;/div&gt;&lt;div&gt;– Versioning Support&lt;/div&gt;&lt;div&gt;■ Composition&lt;/div&gt;&lt;div&gt;– The ability to compose a new Service through the composition of two or more&lt;/div&gt;&lt;div&gt;Services.&lt;/div&gt;&lt;div&gt;■ Change Control&lt;/div&gt;&lt;div&gt;– Audit support&lt;/div&gt;&lt;div&gt;– Configuration aggregation&lt;/div&gt;&lt;div&gt;– Configuration Rollback support&lt;/div&gt;&lt;div&gt;– Real-change application. Changes are applied without requiring a&lt;/div&gt;&lt;div&gt;redeployment or server restart.&lt;/div&gt;&lt;div&gt;■ Throttling&lt;/div&gt;&lt;div&gt;– Thread management&lt;/div&gt;&lt;div&gt;– Priority based resource management&lt;/div&gt;&lt;div&gt;– Consumption monitoring&lt;/div&gt;&lt;div&gt;■ Security&lt;/div&gt;&lt;div&gt;– Centralized Policy Management&lt;/div&gt;&lt;div&gt;– Distributed Enforcement&lt;/div&gt;&lt;div&gt;– Security Standards (WS-Security, WS-Policy, SAML, SSL, etc).&lt;/div&gt;&lt;div&gt;■ Interface exposure&lt;/div&gt;&lt;div&gt;– Using accepted interface protocols, transports, message types, and standards&lt;/div&gt;&lt;div&gt;– Service Discovery (published to a registry and/or repository)&lt;/div&gt;&lt;div&gt;– Service Definition (creation of a contract)&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Service Discovery&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;There are two sides to consider regarding Service discovery: design time discovery and run time discovery.&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Service Mediation&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;Among their many capabilities are:&lt;/div&gt;&lt;div&gt;■ Translate, or transform request and response messages&lt;/div&gt;&lt;div&gt;■ Accept requests via one transport or protocol and forward them on using a different transport or protocol&lt;/div&gt;&lt;div&gt;■ Route messages based on content within the request message (Content-based routing)&lt;/div&gt;&lt;div&gt;■ Route messages based on security policies&lt;/div&gt;&lt;div&gt;■ Translate (map) security credentials between different users/groups/roles or between different credential types&lt;/div&gt;&lt;div&gt;■ Add or remove security measures such as encryption and certificates&lt;/div&gt;&lt;div&gt;■ Invoke multiple Service providers as part of a single Service request&lt;/div&gt;&lt;div&gt;■ Audit and/or log requests&lt;/div&gt;&lt;div&gt;■ Deny requests based on access policies (SLAs, Usage Agreements)&lt;/div&gt;&lt;div&gt;■ Capture response time metrics and usage metrics&lt;/div&gt;&lt;div&gt;■ Monitor and report on error conditions&lt;/div&gt;Architectural principle:&lt;br /&gt;
&lt;div&gt;Services must be loosely coupled, e.g. they must always be accessed via an intermediary. Consumers must not directly access Service provider endpoints.&lt;/div&gt;&lt;br /&gt;
&lt;div id="t:q9" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_511gtjgq75v_b" style="height: 568px; width: 578px;" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h1&gt;Packaging and Deployment&lt;/h1&gt;&lt;div&gt;Service infrastructure brings its own complexities to the construction of deployable packages of Service capabilities.&lt;/div&gt;&lt;div&gt;Common types of deployable artifacts in a SOA environment generally include the following:&lt;/div&gt;&lt;div&gt;■ WSDL, XML Schema, XSLT, Xpath, various rules definitions, WS-* docs&lt;/div&gt;&lt;div&gt;■ Code (in the form of JAR, WAR, EAR)&lt;/div&gt;&lt;div&gt;■ Directory definitions&lt;/div&gt;&lt;div&gt;■ Access controls&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;b&gt;Services deployment&lt;/b&gt;&lt;/div&gt;&lt;div&gt;The approach, recommended by Oracle, to Services deployment is the separation of Services from applications and the grouping of Services with similar availability needs. To accomplish this, projects must be logically divided into shared and non-shared parts. The shared parts become Services, while the non-shared parts become ordinary applications.&amp;nbsp;&lt;/div&gt;&lt;div id="nzj3" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_512dh9g867x_b" style="height: 340.13458950201886px; width: 648px;" /&gt;&lt;/div&gt;&lt;div&gt;The illustration shows an application cluster used to host ordinary applications, and a Services cluster hosting Services. The clusters connect through the Services bus, allowing access to Services by the applications. Redundant hardware is used in both clusters to provide high availability.&lt;/div&gt;&lt;br /&gt;
Important considerations for grouping Services:&lt;br /&gt;
&lt;div&gt;■ Ownership of resources. This includes hardware and software ownership, and responsibility for management.&amp;nbsp;&lt;/div&gt;&lt;div&gt;■ Technology. Different technologies used for Service implementation will require different clustering strategies and may require different hardware platforms.&lt;/div&gt;&lt;div&gt;■ Service Level Agreements. Services that demand high availability and low downtime or maintenance windows should be separated from Services that do not share these requirements.&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;b&gt;Federated&lt;/b&gt;&lt;/div&gt;&lt;div id="syte" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_513dkc9pjgg_b" style="height: 390.5855338691159px; width: 648px;" /&gt;&lt;/div&gt;&lt;div&gt;Federation also applies to the level of autonomy each domain has with respect to processes and Services. Processes in one domain may leverage processes that are offered as shared Business Process Services in another domain, as illustrated above. Services that represent automated business activities (tasks) within a process may be deployed in the local domains. In this scenario each domain retains autonomy in terms&lt;/div&gt;&lt;div&gt;of how its processes are written, which tasks are fulfilled by Services, and how the Services are offered (interface, security, implementation specifications). It is most useful when a "black box" approach is desired, i.e., details of sub-process flows including current status, execution logic, etc., do not need to be known or managed at the enterprise level.&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;Another option for process federation is shown below. This method involves defining processes and sub-processes at the enterprise level. The Services that fulfill automated tasks may be offered in different locations, and accessed in different ways. This method is preferred when entire end-to-end process management and&lt;/div&gt;&lt;div&gt;monitoring is needed. Each process and sub-process can be controlled at the enterprise level, while Services are managed at the domain level.&lt;/div&gt;&lt;div id="hf92" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_5147688jwd3_b" style="height: 391.72446555819477px; width: 648px;" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/82799045248352799-5331857013103128211?l=rogervdkimmenade.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qbh2b_C3TfIyVmhdAJXJqj8ThbM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qbh2b_C3TfIyVmhdAJXJqj8ThbM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qbh2b_C3TfIyVmhdAJXJqj8ThbM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qbh2b_C3TfIyVmhdAJXJqj8ThbM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SoaEaiBpmOracleAgile/~4/kfrXy7BsE30" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rogervdkimmenade.blogspot.com/feeds/5331857013103128211/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://rogervdkimmenade.blogspot.com/2011/02/ora-oracle-soa-foundation.html#comment-form" title="0 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/5331857013103128211?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/5331857013103128211?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SoaEaiBpmOracleAgile/~3/kfrXy7BsE30/ora-oracle-soa-foundation.html" title="ORA - Oracle SOA Foundation" /><author><name>Roger van de Kimmenade</name><uri>http://www.blogger.com/profile/04738763579441543087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-j-uva_ndKzs/ToQpGoZaRZI/AAAAAAAAN68/KlBIBFG90Tg/s220/Roger.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://rogervdkimmenade.blogspot.com/2011/02/ora-oracle-soa-foundation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cGSHw_fip7ImA9Wx9UEUQ.&quot;"><id>tag:blogger.com,1999:blog-82799045248352799.post-3345940301710104354</id><published>2011-02-08T20:57:00.001+01:00</published><updated>2011-02-08T20:57:09.246+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-08T20:57:09.246+01:00</app:edited><title>Social Media a necessity for Consultants ?</title><content type="html">&lt;h1&gt;Introduction&lt;/h1&gt;I work as a Enterprise Application Integration / Service Oriented / Business Process Management consultant at a company. I started using &lt;a href="http://rogervdkimmenade.blogspot.com" id="xnh9" title="Blogger"&gt;Blogger&lt;/a&gt;, &lt;a href="http://nl.linkedin.com/in/rogervandekimmenade" id="e:7x" title="LinkedIn"&gt;LinkedIn&lt;/a&gt;, Facebook and &lt;a href="http://www.twitter.com/rvdkimmenade" id="ljw9" title="Twitter"&gt;Twitter&lt;/a&gt;&amp;nbsp;almost 2 years ago. I started with LinkedIn and almost a year later with my blog, recently i started using Twitter and Facebook. I also tried Plaxo and Hyves but I dropped them.&lt;div&gt;My first reaction to Twitter and Blogger was the same as the one I get today:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;I have no time to Blog&lt;/li&gt;&lt;li&gt;I do not know what to Blog&lt;/li&gt;&lt;li&gt;Why should I Blog?&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;And with Twitter:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;I do not know what to Tweet&lt;/li&gt;&lt;li&gt;I am not interested in what a person does in the bathroom&lt;/li&gt;&lt;li&gt;Too may Tweets to read&lt;/li&gt;&lt;li&gt;Stupid stuff&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;div&gt;Within this blog item i will try to explain why I think it is a necessity (or can be) for every consultant.&lt;/div&gt;&lt;h1&gt;Blogging&lt;/h1&gt;&lt;div&gt;I started blogging with knowledge storage in mind. When I found a solution for a particular problem or when I did not want to forget how I did some things, i started to make a Blog item for it. This way I could always look up how to do this. After a couple of Blogs i got some remarks/comments/questions on my Blog, so i started to realize that my blog was also good for&lt;b&gt; personal branding&lt;/b&gt;.&lt;/div&gt;&lt;br&gt;I also noted that it was also good &lt;b&gt;company branding&lt;/b&gt;, because at seminars and conferences, people started to &amp;quot;recognize&amp;quot; me, so it was very good for &lt;b&gt;networking &lt;/b&gt;as well.&lt;br&gt;&lt;br&gt;&lt;font size="5"&gt;&lt;b&gt;Twitter&lt;/b&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;div&gt;With Twitter the same story. I just wanted to know what it could mean for me, so i started using it out of curiosity. I use it almost only for b&lt;b&gt;usiness related tweets&lt;/b&gt;. I started to follow a lot of interesting people about interesting topics within my work field. And they follow me back as well. I use the Tweets to&lt;b&gt; promote my Blogging site.&lt;/b&gt;&amp;nbsp;I noticed that a lot of people started to read my blog and i started to read a lot of other interesting blogs.&lt;/div&gt;&lt;div&gt;So for me Twitter:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Brings me in contact with interesting people&lt;/li&gt;&lt;li&gt;It extends my knowledge within the field&lt;/li&gt;&lt;li&gt;It gives me personal exposure within the field&lt;/li&gt;&lt;li&gt;It gives me company exposure within the field&lt;/li&gt;&lt;li&gt;It gives me interesting insights in people&amp;#39;s mind and thoughts within the field&lt;/li&gt;&lt;li&gt;It keeps me up-to-date with the latest insights within the field of EAI/SOA/BPM/Cloud&lt;/li&gt;&lt;li&gt;It extends my virtual network of people within the field&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;font size="4"&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;font size="2"&gt;What to Tweet?&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Well Tweet about what keeps you busy as a consultant&lt;/li&gt;&lt;li&gt;Tweet about topics that you would read yourself&lt;/li&gt;&lt;li&gt;Interesting articles, blogs and websites&lt;/li&gt;&lt;li&gt;Tweet about a new Blog item you made&lt;/li&gt;&lt;li&gt;Tweet about an interesting project your company finished&lt;/li&gt;&lt;li&gt;Tweet about an interesting solution you advised for a customer&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;div&gt;When you follow a lot of people you can use the Twitter&amp;#39;s &lt;b&gt;List&lt;/b&gt; option. This way you can add people to a particular list, for example BPM, EAI, SOA, Oracle etc.&lt;/div&gt;&lt;br&gt;&lt;div&gt;&lt;b&gt;Who to Follow?&lt;/b&gt;&lt;/div&gt;I follow interesting people within my field but also people with other&lt;b&gt; interesting topics&lt;/b&gt;, like social media.&lt;div&gt;I also people follow people that have some interesting insights of what&amp;#39;s going on at a &lt;b&gt;customer&lt;/b&gt;. This can help me as a consultant what problems or thoughts customers have.&lt;/div&gt;&lt;br&gt;&lt;div&gt;&lt;font size="5"&gt;&lt;b&gt;LinkedIn&lt;/b&gt;&lt;/font&gt;&lt;/div&gt;I use LinkedIn as my personal CV and keep it up-to-date. This is a site that customers always will check and it also contains a link to my blog- and twitter site. It will give me leads to interesting projects.&lt;br&gt;&lt;br&gt;&lt;h1&gt;Conclusion&lt;/h1&gt;&lt;div&gt;I think that social media is a common good within the Consultancy profession. It will keep you up-to-date of the latest insights within the fields and you can track customers need.&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/82799045248352799-3345940301710104354?l=rogervdkimmenade.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/enoFfcQdp-L-VHtljXD2SDuZpuM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/enoFfcQdp-L-VHtljXD2SDuZpuM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/enoFfcQdp-L-VHtljXD2SDuZpuM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/enoFfcQdp-L-VHtljXD2SDuZpuM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SoaEaiBpmOracleAgile/~4/foN5JXXSnkY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rogervdkimmenade.blogspot.com/feeds/3345940301710104354/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://rogervdkimmenade.blogspot.com/2011/02/social-media-necessity-for-consultants.html#comment-form" title="0 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/3345940301710104354?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/3345940301710104354?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SoaEaiBpmOracleAgile/~3/foN5JXXSnkY/social-media-necessity-for-consultants.html" title="Social Media a necessity for Consultants ?" /><author><name>Roger van de Kimmenade</name><uri>http://www.blogger.com/profile/04738763579441543087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-j-uva_ndKzs/ToQpGoZaRZI/AAAAAAAAN68/KlBIBFG90Tg/s220/Roger.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://rogervdkimmenade.blogspot.com/2011/02/social-media-necessity-for-consultants.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUIGR3g6fip7ImA9Wx9UEUo.&quot;"><id>tag:blogger.com,1999:blog-82799045248352799.post-3951448613058339619</id><published>2011-02-08T14:57:00.002+01:00</published><updated>2011-02-08T14:58:46.616+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-08T14:58:46.616+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="bpmsuite" /><category scheme="http://www.blogger.com/atom/ns#" term="bpm" /><category scheme="http://www.blogger.com/atom/ns#" term="11g" /><category scheme="http://www.blogger.com/atom/ns#" term="oracle" /><title>Oracle BPM Suite 11g in Pictures</title><content type="html">&lt;h1&gt;&lt;span style="font-size: medium;"&gt;Overview&lt;/span&gt;&lt;/h1&gt;&lt;br /&gt;
&lt;div id="ua46" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_360c95pt8hd_b" style="height: 385.743px; width: 648px;" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Licencing&lt;/h2&gt;&lt;br /&gt;
&lt;div id="wb3e" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_361f36z59hk_b" style="height: 397.101px; width: 648px;" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;Modeling tools and Users&lt;/h2&gt;&lt;div id="t1ro" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_362g9zznnd8_b" style="height: 384.667px; width: 648px;" /&gt;&lt;/div&gt;&lt;b&gt;Business/Enterprise Architect&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Business Strategy&lt;/li&gt;
&lt;li&gt;Implement Business Architecture&lt;/li&gt;
&lt;li&gt;Process Analysis/documentation&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;Business User&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Understands the business&lt;/li&gt;
&lt;li&gt;High level business processes&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;b&gt;Process Analyst&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;BPMN 2.0 expert (business view)&lt;/li&gt;
&lt;li&gt;Understands the details of the business&lt;/li&gt;
&lt;li&gt;Make implementation decisions&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;b&gt;Process Developer&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;BPMN 2.0 expert (technical view)&lt;/li&gt;
&lt;li&gt;WebServices, XML&lt;/li&gt;
&lt;li&gt;Enterprise Apps&lt;/li&gt;
&lt;li&gt;Implement processes and UIs&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;Collaborative Design&lt;/h2&gt;&lt;div id="gnay" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_363hjq9tfck_b" style="height: 370.464px; width: 648px;" /&gt;&lt;/div&gt;&lt;div id="hcpr" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_369hpfcd6fk_b" style="height: 361.324px; width: 648px;" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;BPM Studio&lt;/h2&gt;&lt;div id="pgd4" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_3646fq5qfw_b" style="height: 399.425px; width: 648px;" /&gt;&lt;/div&gt;&lt;h2&gt;Process Analytics&lt;/h2&gt;&lt;div id="dyve" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_365dzrms3vr_b" style="height: 366.395px; width: 648px;" /&gt;&lt;/div&gt;&lt;h2&gt;Social BPM&lt;/h2&gt;&lt;div id="b9we" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_366fk45wxkc_b" style="height: 382.641px; width: 648px;" /&gt;&lt;/div&gt;&lt;h2&gt;SOA Platform&lt;/h2&gt;&lt;div id="a.pf" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_367dtmsp4f5_b" style="height: 484.711px; width: 648px;" /&gt;&lt;/div&gt;End-to-End instance and Flow checking due to integrated platform.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;b&gt;BPMN 2.0 support&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;Change with BPMN 1.1 :&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Model execution&lt;/li&gt;
&lt;li&gt;Models are interchangeable&lt;/li&gt;
&lt;li&gt;XPDL and BPEL were used to interchange and execute&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;div&gt;&lt;b&gt;Interactive task and workflow&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;div id="cfx4" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_368gtmnz8cz_b" style="height: 451.375px; width: 648px;" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;BPM Studio supports &lt;b&gt;Simulation&lt;/b&gt;.&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;BPM Studio Business Indicators&lt;/h2&gt;&lt;div id="nrf3" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_370djx2sndx_b" style="height: 391.209px; width: 648px;" /&gt;&lt;/div&gt;&lt;br /&gt;
Snapshots of business indicators must be added to the workflow and this is a little awkward because it blurs the process model.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;b&gt;Good integration with BAM&lt;/b&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_371c5xnwrfx_b" style="height: 271.286px; width: 648px;" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;h2&gt;Process Composer&lt;/h2&gt;&lt;div id="gcsx" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_372f7d74xc7_b" style="height: 317.28331688055283px; width: 648px;" /&gt;&lt;/div&gt;Within BPM Studio you design templates and there you set the constraints which changes can be made within Process Composer.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Unstructured Processes&lt;/h2&gt;&lt;div&gt;&lt;b&gt;End Users can&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Reassign, reroute, delegate tasks&lt;/li&gt;
&lt;li&gt;Add users for a task&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;h2&gt;Business Rules&lt;/h2&gt;&lt;div id="rxod" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_373gnfg7dd9_b" style="height: 380.3175965665236px; width: 648px;" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Decision tables&lt;/li&gt;
&lt;li&gt;If-then rules&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;Can be changed in &lt;b&gt;Process Composer&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;Participants lists can be dynamically assigned using a Rule.&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;Enterprise Manager&lt;/h2&gt;&lt;div id="vyma" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_374gphqbdf4_b" style="height: 381.52056168505516px; width: 648px;" /&gt;&lt;/div&gt;&lt;h2&gt;Unified Security&lt;/h2&gt;&lt;div id="ao9n" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_375d8qgb9vd_b" style="height: 272.9843587069864px; width: 648px;" /&gt;&lt;/div&gt;&lt;h2&gt;Clustering&lt;/h2&gt;&lt;div id="qt8o" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_376f67rm6d7_b" style="height: 389.66112956810633px; width: 648px;" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/82799045248352799-3951448613058339619?l=rogervdkimmenade.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/QKp7vwW028NhbJ3LfgPvK2yVbUM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QKp7vwW028NhbJ3LfgPvK2yVbUM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/QKp7vwW028NhbJ3LfgPvK2yVbUM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QKp7vwW028NhbJ3LfgPvK2yVbUM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SoaEaiBpmOracleAgile/~4/Q6v5N2prALo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rogervdkimmenade.blogspot.com/feeds/3951448613058339619/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://rogervdkimmenade.blogspot.com/2011/02/oracle-bpm-suite-11g-in-pictures.html#comment-form" title="0 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/3951448613058339619?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/3951448613058339619?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SoaEaiBpmOracleAgile/~3/Q6v5N2prALo/oracle-bpm-suite-11g-in-pictures.html" title="Oracle BPM Suite 11g in Pictures" /><author><name>Roger van de Kimmenade</name><uri>http://www.blogger.com/profile/04738763579441543087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-j-uva_ndKzs/ToQpGoZaRZI/AAAAAAAAN68/KlBIBFG90Tg/s220/Roger.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://rogervdkimmenade.blogspot.com/2011/02/oracle-bpm-suite-11g-in-pictures.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YFRnc-fyp7ImA9Wx9WEEw.&quot;"><id>tag:blogger.com,1999:blog-82799045248352799.post-7493111305145757295</id><published>2011-01-14T15:21:00.004+01:00</published><updated>2011-01-14T15:25:17.957+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-14T15:25:17.957+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="soaschool" /><category scheme="http://www.blogger.com/atom/ns#" term="certification" /><category scheme="http://www.blogger.com/atom/ns#" term="soa" /><title>SOASchool Certification: Module 8</title><content type="html">Today I had my &lt;a href="http://www.soaschool.com/" id="h-g9" title="SOASchool.com"&gt;SOASchool.com&lt;/a&gt; Module 8 exam for the &lt;a href="http://www.soaschool.com/certifications/architect" id="w1ji" title="SOA Certified Architect"&gt;SOA Certified Architect&lt;/a&gt; certification. &lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;Suggested preparation:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;You have to follow a course or buy the &lt;a href="http://soaschool.com/selfstudy/kit8" id="srvl" title="selfstudy kit"&gt;selfstudy kit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Read the chapters of the &lt;a href="http://www.soapatterns.com/" id="h5km" title="SOA Design Patterns"&gt;SOA Design Patterns&lt;/a&gt; book&lt;/li&gt;
&lt;li&gt;Read the reader of the selfstudy kit&lt;/li&gt;
&lt;li&gt;You really need to understand the Patterns and also the use of the patterns in relation to each other&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;div&gt;Questions&lt;/div&gt;&lt;ul&gt;&lt;li&gt;The questions are the same as the other exams&lt;/li&gt;
&lt;li&gt;Select All That Apply are the difficult ones and there were quite a lot&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;div&gt;Next is the final &lt;a href="http://soaschool.com/exams/exam9" id="o4z4" title="Module 9"&gt;Module 9&lt;/a&gt;&amp;nbsp;for me, and this is the Lab.&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;The Certification is valuable, because it shows that you know and understand the terms and challenges you face when working&lt;/div&gt;&lt;div&gt;within a Service Oriented Architecture. Or trying to work towards a SOA.&lt;/div&gt;&lt;div&gt;The nice thing about this certification is that it is Vendor Neutral. It does not mention a particular platform. It does however address&lt;/div&gt;&lt;div&gt;the SOA standards out there and that is a good thing of course.&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;The customers will also recognize this kind of certifications.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/82799045248352799-7493111305145757295?l=rogervdkimmenade.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mMbJTJCOpUeuv8oZLGRoHK6dgwI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mMbJTJCOpUeuv8oZLGRoHK6dgwI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mMbJTJCOpUeuv8oZLGRoHK6dgwI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mMbJTJCOpUeuv8oZLGRoHK6dgwI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SoaEaiBpmOracleAgile/~4/yx4z4nSu_3A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rogervdkimmenade.blogspot.com/feeds/7493111305145757295/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://rogervdkimmenade.blogspot.com/2011/01/soaschool-certification-module-8.html#comment-form" title="1 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/7493111305145757295?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/7493111305145757295?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SoaEaiBpmOracleAgile/~3/yx4z4nSu_3A/soaschool-certification-module-8.html" title="SOASchool Certification: Module 8" /><author><name>Roger van de Kimmenade</name><uri>http://www.blogger.com/profile/04738763579441543087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-j-uva_ndKzs/ToQpGoZaRZI/AAAAAAAAN68/KlBIBFG90Tg/s220/Roger.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://rogervdkimmenade.blogspot.com/2011/01/soaschool-certification-module-8.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EBRH8ycSp7ImA9Wx9XGU4.&quot;"><id>tag:blogger.com,1999:blog-82799045248352799.post-4202901946624088422</id><published>2011-01-13T16:12:00.002+01:00</published><updated>2011-01-13T16:14:15.199+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-13T16:14:15.199+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="bpmsuite" /><category scheme="http://www.blogger.com/atom/ns#" term="bpm" /><category scheme="http://www.blogger.com/atom/ns#" term="oracle" /><title>Oracle BPM Suite 11g overview</title><content type="html">&lt;h1&gt;Introduction&lt;/h1&gt;&lt;div&gt;This blog item gives a short overview of the Oracle BPM Suite 11g.&amp;nbsp;&lt;/div&gt;&lt;div&gt;If you as an architect, developer or sales person do no want to read all documentation, this can be a good starting point :-)&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;More thorough documentation can be found &lt;a href="http://download.oracle.com/docs/cd/E14571_01/soa.htm" id="ob_8" title="here"&gt;&lt;span style="color: red;"&gt;here&lt;/span&gt;&lt;/a&gt;.&lt;/div&gt;&lt;h1&gt;Component Overview&lt;/h1&gt;&lt;div&gt;The BPM Suite contains the following components.&lt;/div&gt;&lt;div id="w5kr" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_343c3bdvsgp_b" style="height: 493.991px; width: 648px;" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;As can be seen, the suite is layered on the Oracle SOA Suite and they share the following components&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.oracle.com/technetwork/middleware/business-rules/overview/index.html" id="iev6" title="Business Rules Engine"&gt;&lt;span style="color: red;"&gt;Business Rules Engine&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.oracle.com/technetwork/middleware/human-workflow/overview/index.html" id="o:rw" title="Human Workflow Engine"&gt;&lt;span style="color: red;"&gt;Human Workflow Engine&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Adapter Framework for integration&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;h2&gt;Oracle BPM Studio&lt;/h2&gt;Tool within JDeveloper to create and simulate business models using BPMN 2.0.&lt;br /&gt;
&lt;div id="gxu8" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_344fbsbbsc4_b" style="height: 172.444px; width: 320px;" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;Oracle Business Process Composer&lt;/h2&gt;&lt;div&gt;Web-base application that enables business users to collaborate with developers and designers.&lt;/div&gt;&lt;div id="aja6" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_3457rck5kd4_b" style="height: 150.549px; width: 320px;" /&gt;&lt;/div&gt;&lt;div&gt;A catalog of services, tasks and rules can be created in Studio and this catalog can be included in project templates, which can then be used to create new projects within&amp;nbsp;&lt;/div&gt;&lt;div&gt;Business Process Composer. Here Business Rules can be edited at run time.&lt;/div&gt;&lt;h2&gt;Oracle Metadata Service (MDS)&lt;/h2&gt;&lt;a href="http://download.oracle.com/otn_hosted_doc/jdeveloper/111demos/mds/mds.html" id="kglh" title="MDS"&gt;&lt;span style="color: red;"&gt;MDS&lt;/span&gt;&lt;/a&gt;&amp;nbsp;Repository used to store information about deployed applications, used to share projects and project templates.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;Oracle BPM projects are deployed as SOA Composite applications on the BPM Engine.&lt;/div&gt;&lt;h2&gt;Oracle BPM Engine&lt;/h2&gt;It runs BPMN and BPEL processes, which are separate components but they share the same process core (i.e. security, audit trails, invoke services, persistence).&lt;br /&gt;
&lt;h2&gt;Oracle Human Workflow&lt;/h2&gt;This component contains functionality for:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Task routing to users, groups or application roles&lt;/li&gt;
&lt;li&gt;Management of deadlines,escalations and notifications related to a task&lt;/li&gt;
&lt;li&gt;Task Forms (including workspace and portals)&lt;/li&gt;
&lt;li&gt;Organization,filtering, prioritization,dispatching rules&lt;/li&gt;
&lt;/ul&gt;&lt;div id="ua7g" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_346hgbhvh4x_b" style="height: 290px; width: 619px;" /&gt;&lt;/div&gt;&lt;a href="http://rogervdkimmenade.blogspot.com/2011/01/oracle-adf-and-fusion-middleware.html" id="jtoa" title="Oracle ADF"&gt;Oracle ADF&lt;/a&gt; can be used to develop custom Task Forms.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Oracle Business Rules&lt;/h2&gt;This &lt;a href="http://www.oracle.com/technetwork/middleware/business-rules/overview/index.html" id="zjj4" title="component"&gt;&lt;span style="color: red;"&gt;component&lt;/span&gt;&lt;/a&gt; lets you automate policies, computations and reasoning in an agile way.&lt;br /&gt;
&lt;div&gt;Of course it is the trick when to use this component to get that agility.&lt;/div&gt;&lt;div id="fl:0" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_347hcwfgjd4_b" style="height: 237.01px; width: 320px;" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;Oracle Enterprise Manager&lt;/h2&gt;&lt;div&gt;This &lt;a href="http://www.oracle.com/technetwork/oem/grid-control/overview/index.html" id="f7.n" title="web-based application"&gt;web-based application&lt;/a&gt;&amp;nbsp;is used to control and manager applications running on the SOA Suite.&lt;/div&gt;&lt;br /&gt;
&lt;h1&gt;Process Participants applications&lt;/h1&gt;&lt;div&gt;Oracle BPM Workspace and Oracle Process Spaces are used by process participants.&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;b&gt;&lt;u&gt;Workspace &lt;/u&gt;&lt;/b&gt;(old BEA) gives you the opportunity to:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;View running process instances&lt;/li&gt;
&lt;li&gt;Work/View task lists&lt;/li&gt;
&lt;li&gt;Out-of-the-box dashboards&lt;/li&gt;
&lt;li&gt;Custom made dashboards&lt;/li&gt;
&lt;li&gt;Manage organizations and roles&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;u&gt;&lt;b&gt;Process Spaces&lt;/b&gt;&lt;/u&gt;&amp;nbsp;is a collaborative workspace that gives you some Social Media, built on top of Web Center Spaces.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/82799045248352799-4202901946624088422?l=rogervdkimmenade.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qrCxE4DBI6ehfTSOyACp4Bhek-M/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qrCxE4DBI6ehfTSOyACp4Bhek-M/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qrCxE4DBI6ehfTSOyACp4Bhek-M/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qrCxE4DBI6ehfTSOyACp4Bhek-M/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SoaEaiBpmOracleAgile/~4/23zE20lyZO8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rogervdkimmenade.blogspot.com/feeds/4202901946624088422/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://rogervdkimmenade.blogspot.com/2011/01/oracle-bpm-suite-11g-overview.html#comment-form" title="2 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/4202901946624088422?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/4202901946624088422?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SoaEaiBpmOracleAgile/~3/23zE20lyZO8/oracle-bpm-suite-11g-overview.html" title="Oracle BPM Suite 11g overview" /><author><name>Roger van de Kimmenade</name><uri>http://www.blogger.com/profile/04738763579441543087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-j-uva_ndKzs/ToQpGoZaRZI/AAAAAAAAN68/KlBIBFG90Tg/s220/Roger.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://rogervdkimmenade.blogspot.com/2011/01/oracle-bpm-suite-11g-overview.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcESH48eyp7ImA9Wx9XGE4.&quot;"><id>tag:blogger.com,1999:blog-82799045248352799.post-7906771168605725327</id><published>2011-01-12T14:11:00.002+01:00</published><updated>2011-01-12T14:13:29.073+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-12T14:13:29.073+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="adf" /><category scheme="http://www.blogger.com/atom/ns#" term="fusion" /><category scheme="http://www.blogger.com/atom/ns#" term="soa" /><category scheme="http://www.blogger.com/atom/ns#" term="oracle" /><title>Oracle ADF and Fusion Middleware</title><content type="html">Today I browsed through some nice sessions&amp;nbsp;&lt;a href="http://www.oracle.com/technetwork/developer-tools/adf/learnmore/adfinsider-093342.html" id="rr87" title="documentation on the Oracle ADF Framework"&gt;on the Oracle ADF Framework&lt;/a&gt;. &lt;br /&gt;
&lt;div&gt;I heard from the framework but not know what I can expect from the Framework and how it is related to SOA and Fusion Middleware.&lt;/div&gt;&lt;div&gt;The Framework is actually quite big and implements the &lt;a href="http://en.wikipedia.org/wiki/Model%E2%80%93View%E2%80%93Controller" id="tqe4" title="Model-View-Controller"&gt;Model-View-Controller&lt;/a&gt;&amp;nbsp;architectural pattern which makes GUI development easier to develop and maintain.&lt;/div&gt;&lt;br /&gt;
Oracle sets it as "next generation" Web User Interfaces for&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Fusion Applications&lt;/li&gt;
&lt;li&gt;Middleware components like Enterprise Manager&lt;/li&gt;
&lt;li&gt;WebCenter Spaces&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;div&gt;The next picture shows an overview of the components of ADF.&lt;/div&gt;&lt;div id="wlfn" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_339f9c5x57t_b" style="height: 394.744px; width: 648px;" /&gt;&lt;/div&gt;&lt;br /&gt;
So I asked myself how is this Framework to be positioned with Oracle SOA Suite, Oracle BPM Suite and Oracle Service Bus?&lt;br /&gt;
&lt;div&gt;The next picture shows its place.&lt;/div&gt;&lt;br /&gt;
&lt;div id="dv2u" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_340qtxv6fds_b" style="height: 385.228px; width: 648px;" /&gt;&lt;/div&gt;&lt;br /&gt;
In my view within a SOA 5-layering architecture:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;ADF can perfectly be used within the development of the presentation layer.&lt;/li&gt;
&lt;li&gt;The OSB is generally used as an abstraction between all 5 layers. This means that all Services (Task Services, Entity Services and Utility Services) are exposed through OSB&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;div&gt;But as I said, I am not an ADF expert, so ADF experts out there, how do you place ADF within your SOA Architecture?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/82799045248352799-7906771168605725327?l=rogervdkimmenade.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/N0d-qRT6K-_KQ0IWZErKbgANz4o/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/N0d-qRT6K-_KQ0IWZErKbgANz4o/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/N0d-qRT6K-_KQ0IWZErKbgANz4o/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/N0d-qRT6K-_KQ0IWZErKbgANz4o/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SoaEaiBpmOracleAgile/~4/hjTXbovwaU8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rogervdkimmenade.blogspot.com/feeds/7906771168605725327/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://rogervdkimmenade.blogspot.com/2011/01/oracle-adf-and-fusion-middleware.html#comment-form" title="0 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/7906771168605725327?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/7906771168605725327?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SoaEaiBpmOracleAgile/~3/hjTXbovwaU8/oracle-adf-and-fusion-middleware.html" title="Oracle ADF and Fusion Middleware" /><author><name>Roger van de Kimmenade</name><uri>http://www.blogger.com/profile/04738763579441543087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-j-uva_ndKzs/ToQpGoZaRZI/AAAAAAAAN68/KlBIBFG90Tg/s220/Roger.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://rogervdkimmenade.blogspot.com/2011/01/oracle-adf-and-fusion-middleware.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UBRno-cSp7ImA9Wx9XGE4.&quot;"><id>tag:blogger.com,1999:blog-82799045248352799.post-8537359328914466261</id><published>2011-01-12T12:20:00.002+01:00</published><updated>2011-01-12T12:20:57.459+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-12T12:20:57.459+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="bpm" /><category scheme="http://www.blogger.com/atom/ns#" term="training" /><category scheme="http://www.blogger.com/atom/ns#" term="certification" /><category scheme="http://www.blogger.com/atom/ns#" term="oracle" /><title>Oracle working on BPM specialization</title><content type="html">Just like the SOA Suite specialization path, Oracle is working on a BPM specialization path for certification.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;Note: For the links used in this Blog item you need to have an Oracle Partner Account.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;The following information was already made available for Partners:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.oracle.com/partners/en/knowledge-zone/middleware/business-process-management-193883.html" id="e-2r" title="BPM knowledge zone"&gt;&lt;span style="color: red;"&gt;BPM knowledge zone&lt;/span&gt;&lt;/a&gt;, in which you can become a member of &lt;a href="https://mix.oracle.com/" id="epod" title="Oracle Mix"&gt;&lt;span style="color: red;"&gt;Oracle Mix&lt;/span&gt;&lt;/a&gt; which is a Social Network to share ideas and to ask questions.&lt;br /&gt;
You can become a member of Oracle BPM Suite and Oracle BPA Suite.&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;
&lt;div id="guc7" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_337fggkqssz_b" style="height: 306px; width: 618px;" /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;There is also a &lt;a href="http://www.oracle.com/partners/campaign/landing-pads/034443.pdf" id="ywmm" title="BPM Bootcamp"&gt;&lt;span style="color: red;"&gt;BPM Bootcamp&lt;/span&gt;&lt;/a&gt;, just like the SOA Suite 11g Bootcamp. This is a 4-day bootcamp and as a prerequisite follow 4 webcasts.&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.oracle.com/ocom/groups/secure/@partner_static_level_all/documents/webcontent/193651.pdf" id="cryi" title="BPM Sales Guidebook"&gt;&lt;span style="color: red;"&gt;BPM Sales Guidebook&lt;/span&gt;&lt;/a&gt; which can be used by the sales persons and contains some management summaries.&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;The implementation Certification is not ready yet but there are some assessments available for &lt;a href="https://competencycenter.oracle.com/opncc/full_glp.cc?group_id=15611" id="xq.e" title="PreSales Consultant"&gt;&lt;span style="color: red;"&gt;PreSales Consultant&lt;/span&gt;&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href="https://competencycenter.oracle.com/opncc/full_glp.cc?group_id=15631" id="g:eh" title="Sales"&gt;&lt;span style="color: red;"&gt;Sales&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;
You can test your knowledge after the &lt;span style="color: red;"&gt;BPM bootcamp &lt;a href="http://ilearning.oracle.com/ilearn/en/learner/jsp/offering_details_home.jsp?classid=596006410" id="vc:f" title="here"&gt;here&lt;/a&gt;&lt;/span&gt;&amp;nbsp;with an online assessment.&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/82799045248352799-8537359328914466261?l=rogervdkimmenade.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/n6MsyNHSNTmSBjI39SvT3vOupa8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/n6MsyNHSNTmSBjI39SvT3vOupa8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/n6MsyNHSNTmSBjI39SvT3vOupa8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/n6MsyNHSNTmSBjI39SvT3vOupa8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SoaEaiBpmOracleAgile/~4/_cUhidoRyXQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rogervdkimmenade.blogspot.com/feeds/8537359328914466261/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://rogervdkimmenade.blogspot.com/2011/01/oracle-working-on-bpm-specialization.html#comment-form" title="0 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/8537359328914466261?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/8537359328914466261?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SoaEaiBpmOracleAgile/~3/_cUhidoRyXQ/oracle-working-on-bpm-specialization.html" title="Oracle working on BPM specialization" /><author><name>Roger van de Kimmenade</name><uri>http://www.blogger.com/profile/04738763579441543087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-j-uva_ndKzs/ToQpGoZaRZI/AAAAAAAAN68/KlBIBFG90Tg/s220/Roger.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://rogervdkimmenade.blogspot.com/2011/01/oracle-working-on-bpm-specialization.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcHSHo-fCp7ImA9Wx9XFE8.&quot;"><id>tag:blogger.com,1999:blog-82799045248352799.post-4477831745633964779</id><published>2011-01-07T19:46:00.002+01:00</published><updated>2011-01-07T19:47:19.454+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-07T19:47:19.454+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="bpm" /><category scheme="http://www.blogger.com/atom/ns#" term="social media" /><title>Integrating BPM and Social Media</title><content type="html">I find it interesting to note that there are a lot of Social Media Tools out there. &lt;br /&gt;
&lt;div&gt;If you google on "social media tool" you get 2.650.000 hits.&amp;nbsp;&lt;/div&gt;&lt;br /&gt;
&lt;div id="h9lk" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_333fv4d8ddf_b" style="height: 457px; width: 500px;" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;When you do the same for "bpm tool" you get 14.600 hits.&lt;/div&gt;&lt;div id="z.sy" style="text-align: left;"&gt;&lt;img height="187" src="http://docs.google.com/File?id=dst7j4v_334crsx232f_b" style="height: 365px; width: 624px;" width="320" /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;You can say that there are of course a lot of small social media tools and that a BPM tool is a lot complexer.&lt;/div&gt;&lt;div&gt;Would it be wrong to ask myself if we could help business with (mostly free) social media tools instead of a (mostly more expensive) BPM tools?&lt;/div&gt;&lt;div&gt;Some arguments in favor of social media tools, i can think of:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Mostly for free&lt;/li&gt;
&lt;li&gt;There are a lot&lt;/li&gt;
&lt;li&gt;Mostly simple&lt;/li&gt;
&lt;li&gt;Fun to work with&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;There are also some disadvantages i can think of:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;How long will the tool exist?&lt;/li&gt;
&lt;li&gt;How secure is it?&lt;/li&gt;
&lt;li&gt;Can it handle a lot of users?&lt;/li&gt;
&lt;li&gt;Can it handle the performance that is sometimes required?&lt;/li&gt;
&lt;li&gt;What is the support?&lt;/li&gt;
&lt;li&gt;Integration with other tools?&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;So probably the disadvantages will block CIOs from using them in business critical business processes, but maybe they can be very valuable in using for other business processes.&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;Some arguments in favor of BPM tools:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;More secure because used on-premise&lt;/li&gt;
&lt;li&gt;More support and documentation&lt;/li&gt;
&lt;li&gt;More auditing information out-of-the-box&lt;/li&gt;
&lt;li&gt;BAM&lt;/li&gt;
&lt;li&gt;Better integration support with other systems&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;Some disadvantages:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Expensive&lt;/li&gt;
&lt;li&gt;Complex&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;div&gt;But how about a more Hybrid solution in which BPM and Social Media tools are used together or even integrated.&lt;/div&gt;&lt;div&gt;You already see this within the Cordys stack (integration with Google) and Oracle (uses collaboration tools).&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;I think we will see a lot more from this in 2011.&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;What are your thoughts on this?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/82799045248352799-4477831745633964779?l=rogervdkimmenade.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/oQfjm2g9YDK-6NPytr041y1aBhs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oQfjm2g9YDK-6NPytr041y1aBhs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/oQfjm2g9YDK-6NPytr041y1aBhs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oQfjm2g9YDK-6NPytr041y1aBhs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SoaEaiBpmOracleAgile/~4/nt81t5CMbgY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rogervdkimmenade.blogspot.com/feeds/4477831745633964779/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://rogervdkimmenade.blogspot.com/2011/01/integrating-bpm-and-social-media.html#comment-form" title="3 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/4477831745633964779?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/4477831745633964779?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SoaEaiBpmOracleAgile/~3/nt81t5CMbgY/integrating-bpm-and-social-media.html" title="Integrating BPM and Social Media" /><author><name>Roger van de Kimmenade</name><uri>http://www.blogger.com/profile/04738763579441543087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-j-uva_ndKzs/ToQpGoZaRZI/AAAAAAAAN68/KlBIBFG90Tg/s220/Roger.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://rogervdkimmenade.blogspot.com/2011/01/integrating-bpm-and-social-media.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcCRX06eip7ImA9Wx9XFE8.&quot;"><id>tag:blogger.com,1999:blog-82799045248352799.post-3112885454498864130</id><published>2011-01-05T13:44:00.002+01:00</published><updated>2011-01-07T19:47:44.312+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-07T19:47:44.312+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="exalogic" /><category scheme="http://www.blogger.com/atom/ns#" term="cloud" /><category scheme="http://www.blogger.com/atom/ns#" term="oracle" /><title>Oracle Exalogic: An introduction</title><content type="html">&lt;h2&gt;Introduction&lt;/h2&gt;&lt;div id="itev" style="text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Oracle has introduced the Oracle Exalogic Elastic Cloud system, but what is it and what can you do with it?&lt;/div&gt;&lt;div&gt;This blog item is a small excerpt of the full article that can be found &lt;a href="http://www.oracle.com/us/products/middleware/exalogic-wp-173449.pdf" id="afw3" title="here"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_328g96kn7r6_b" style="height: 151px; width: 200px;" /&gt;&lt;/div&gt;&lt;span style="font-size: medium;"&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span style="font-size: medium;"&gt;&lt;b&gt;The management summary&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
The Exalogic is: &amp;nbsp;"the first system specifically designed to provide enterprises with a foundation for secure, mission-critical private cloud capable of&lt;br /&gt;
virtually unlimited scale, unbeatable performance, and previously unimagined management simplicity".&lt;br /&gt;
In other words the first private cloud supermachine and datacenter of the 21rst century.&lt;br /&gt;
It can run all kinds of applications of Linux and Solaris and is optimized for &lt;a href="http://download.oracle.com/javaee/" id="bc1t" title="Enterprise Java"&gt;Enterprise Java&lt;/a&gt;, &lt;a href="http://www.oracle.com/us/products/middleware/index.html" id="tj:j" title="Oracle Fusion Middleware"&gt;Oracle Fusion Middleware&lt;/a&gt; and &lt;a href="http://www.oracle.com/us/products/applications/fusion/index.html" id="wdkf" title="Oracle's Fusion Applications"&gt;Oracle's Fusion Applications&lt;/a&gt;.&lt;br /&gt;
&lt;h2&gt;Overview&lt;/h2&gt;The next figure shows the hard- and software stack.&lt;br /&gt;
&lt;div id="epdv" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_329gb2q8nfq_b" style="height: 216px; width: 296px;" /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Hardware&lt;/b&gt;&lt;/div&gt;The &lt;a href="http://www.oracle.com/us/products/servers-storage/networking/infiniband/index.html" id="bly." title="InfiniBand"&gt;InfiniBand&lt;/a&gt;&amp;nbsp;I/O forms the hart of the horizontal scaling capabilities of the system. Fast connection to &lt;a href="http://www.oracle.com/us/products/database/exadata/index.html" id="l_c0" title="Exadata Database Machines"&gt;Exadata Database Machines&lt;/a&gt;.&lt;br /&gt;
There is a small, medium or full rack configuration with respectively:&lt;br /&gt;
&lt;div&gt;8, 16, 30compute nodes and 96, 192, 360 2.93 GHz XEON Cores.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;b&gt;Software&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;Java and the entire Fusion Middleware stack is designed for deployment on Exalogic, also the Fusion Apps will be deployable on Exalogic.&lt;/div&gt;&lt;div&gt;Exalogic is compatible with all standard Oracle Linux 5 and Solaris 11 applications.&lt;/div&gt;&lt;div&gt;The Oracle Enterprise Manager provides full management through &lt;a href="http://www.oracle.com/oms/enterprisemanager11g/index.html" id="uz5g" title="Grid Control and OpsCenter"&gt;Grid Control and OpsCenter&lt;/a&gt; in which every individual hardware component can be managed in real time.&lt;/div&gt;&lt;div&gt;There have been special performance optimizations made within the Exalogic &amp;nbsp;for WLS, Coherence and JRockit and Hotspot.&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;Exalogic can be directly integrated with Exadata using InfiniBand, the JDBC driver and WLS data source infrastructure can communicate natively using protocols available on InfiniBand.&lt;/div&gt;&lt;div&gt;Also the Active GridLink for &lt;a href="http://www.oracle.com/technetwork/database/clustering/overview/index.html" id="cx3x" title="RAC"&gt;RAC&lt;/a&gt; within WLS will improve the performance of &lt;a href="http://en.wikipedia.org/wiki/Online_transaction_processing" id="dfot" title="OLTP"&gt;OLTP&lt;/a&gt;&amp;nbsp;applications.&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;The WLS server also takes advantage of the underlying hardware in its thread pooling algorithm for optimal Java application performance.&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;&lt;div&gt;Exalogic is a high end, all in one "datacenter" for high performance and scalable private cloud specifically for Fusion Middleware, Fusion Apps and Oracle RAC.&lt;/div&gt;&lt;div&gt;It will probably also create a vendor lockin because the whole infrastructure and Fusion software is optimized for this system.&lt;/div&gt;&lt;div&gt;But for medium to large organizations this may be a perfect solution for their enterprise architecture and the management of it.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/82799045248352799-3112885454498864130?l=rogervdkimmenade.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/EYY4b5GRkdz2NzVMs8_cjWnk4Zo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EYY4b5GRkdz2NzVMs8_cjWnk4Zo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/EYY4b5GRkdz2NzVMs8_cjWnk4Zo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EYY4b5GRkdz2NzVMs8_cjWnk4Zo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SoaEaiBpmOracleAgile/~4/L21XetaiG8A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rogervdkimmenade.blogspot.com/feeds/3112885454498864130/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://rogervdkimmenade.blogspot.com/2011/01/oracle-exalogic-introduction.html#comment-form" title="0 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/3112885454498864130?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/3112885454498864130?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SoaEaiBpmOracleAgile/~3/L21XetaiG8A/oracle-exalogic-introduction.html" title="Oracle Exalogic: An introduction" /><author><name>Roger van de Kimmenade</name><uri>http://www.blogger.com/profile/04738763579441543087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-j-uva_ndKzs/ToQpGoZaRZI/AAAAAAAAN68/KlBIBFG90Tg/s220/Roger.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://rogervdkimmenade.blogspot.com/2011/01/oracle-exalogic-introduction.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4DQXs9fyp7ImA9Wx9XEUs.&quot;"><id>tag:blogger.com,1999:blog-82799045248352799.post-1566832564371765402</id><published>2011-01-04T20:22:00.001+01:00</published><updated>2011-01-04T20:22:50.567+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-04T20:22:50.567+01:00</app:edited><title>Oracle in 2011</title><content type="html">&lt;h2&gt;Introduction&lt;/h2&gt;This blog item highlights some points of Oracle for 2011 that will be be important for 2011.&lt;br&gt;&lt;br&gt;&lt;h2&gt;Cloud in a box&lt;/h2&gt;As Larry Ellison stressed out:&lt;div&gt;&lt;font face="arial, helvetica, sans-serif"&gt;The new competitive battleground in corporate IT will be centered on optimizing the performance of hardware-plus-software systems that have been specifically engineered for superior performance, speed of installation, and minimum of integration.&lt;/font&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;font face="arial, helvetica, sans-serif"&gt;He wants to fight IBM for the #1 position on the high end computing servers. Its about the&amp;nbsp;&lt;font face="arial, helvetica, sans-serif"&gt;&lt;a href="http://www.oracle.com/us/products/database/exadata/index.html" id="w9hs" title="Exadata"&gt;Exadata&lt;/a&gt;, &lt;a href="http://www.oracle.com/us/products/middleware/exalogic/index.html" id="hf0w" title="Exalogic"&gt;Exalogic&lt;/a&gt;, and &lt;a href="http://www.oracle.com/us/corporate/press/192208" id="zvjn" title="Sparc Superclusters machines"&gt;Sparc Superclusters machines&lt;/a&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;&lt;br&gt;&lt;div&gt;&lt;font face="arial, helvetica, sans-serif"&gt;For me as a Fusion Middleware guy I am curious in the Exalogic proposition and when I can first use it and develop on it here in the Netherlands.&lt;/font&gt;&lt;/div&gt;&lt;br&gt;&lt;h2&gt;Fusion Middleware Suite&lt;/h2&gt;Oracle has made a great step forward with the Middleware Fusion 11g stack, which is better integrated. The new 12c (c=Cloud) is on its way too !&lt;div&gt;The product is more integrated with fault management framework and security policy framework. It also contains the Event Delivery Network, with which you can&amp;nbsp;&lt;/div&gt;&lt;div&gt;define and use Business Events in a Publish-Subscribe model.&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;h2&gt;Conclusion&lt;/h2&gt;&lt;div&gt;Oracle will target at a full delivery from &lt;u&gt;hardware and software&lt;/u&gt;, in the public- or private &lt;u&gt;Cloud&lt;/u&gt;, on heavy machines and fully &lt;u&gt;integrated&lt;/u&gt;.&lt;/div&gt;&lt;div&gt;I am curious to see if the &lt;a href="http://www.oracle.com/us/products/applications/application-integration-architecture/index.html" id="q7gf" title="Oracle Application Integration Architecture"&gt;Oracle Application Integration Architecture&lt;/a&gt; will pay off in the Netherlands as well.&lt;/div&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/82799045248352799-1566832564371765402?l=rogervdkimmenade.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/uGbTRqBBAiiq9QfenQ58qcOrlsw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uGbTRqBBAiiq9QfenQ58qcOrlsw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/uGbTRqBBAiiq9QfenQ58qcOrlsw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uGbTRqBBAiiq9QfenQ58qcOrlsw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SoaEaiBpmOracleAgile/~4/JBBBJChOyfw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rogervdkimmenade.blogspot.com/feeds/1566832564371765402/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://rogervdkimmenade.blogspot.com/2011/01/oracle-in-2011.html#comment-form" title="0 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/1566832564371765402?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/1566832564371765402?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SoaEaiBpmOracleAgile/~3/JBBBJChOyfw/oracle-in-2011.html" title="Oracle in 2011" /><author><name>Roger van de Kimmenade</name><uri>http://www.blogger.com/profile/04738763579441543087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-j-uva_ndKzs/ToQpGoZaRZI/AAAAAAAAN68/KlBIBFG90Tg/s220/Roger.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://rogervdkimmenade.blogspot.com/2011/01/oracle-in-2011.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EBRHk7fCp7ImA9Wx9QF0w.&quot;"><id>tag:blogger.com,1999:blog-82799045248352799.post-4860253644643928902</id><published>2010-12-29T12:00:00.003+01:00</published><updated>2010-12-30T13:20:55.704+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-30T13:20:55.704+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="11g" /><category scheme="http://www.blogger.com/atom/ns#" term="certification" /><category scheme="http://www.blogger.com/atom/ns#" term="soasuite" /><category scheme="http://www.blogger.com/atom/ns#" term="oracle" /><title>Oracle SOA Foundation Practioner exam</title><content type="html">The Oracle Middleware Fusion 11g stack has a certification path for SOA: &lt;br /&gt;
&lt;a href="http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=41&amp;amp;p_exam_id=1Z0_451"&gt;1Z0-451 Oracle SOA Foundation Practitioner&lt;/a&gt;.&lt;br /&gt;
When you pass this exam you may call yourself: Oracle Service Oriented Architecture Infrastructure Implementation Certified Expert.&lt;br /&gt;
&lt;br /&gt;
Today I passed the exam with 81% but I must say the questions were pretty detailed.&lt;br /&gt;
So you really must have practical experience with the Oracle SOA Suite 11g, but this is a good thing because that is where Certification is for.&lt;br /&gt;
&lt;br /&gt;
Suggested preparation:&lt;br /&gt;
* Follow a SOA Suite 11g Bootcamp (or follow the book: &lt;a href="https://www.packtpub.com/getting-started-with-oracle-soa-suite-11g-r1/book" id="rcg:" title="Getting Started with Oracle SOA Suite 11gR1"&gt;Getting Started with Oracle SOA Suite 11gR1&lt;/a&gt;)&lt;br /&gt;
* Play with the product at home&lt;br /&gt;
* Follow the recommended learning path as mentioned &lt;a href="https://competencycenter.oracle.com/opncc/full_glp.cc?group_id=13304" id="wt-1" title="here"&gt;here&lt;/a&gt; (for this you must be a registered Partner)&lt;br /&gt;
&lt;br /&gt;
The questions are of high level and detailed level, with Choose Applicable, True/False, and Select Correct type of questions.&lt;br /&gt;
&lt;br /&gt;
A CIBER colleague of mine also passed this exam: &lt;a href="http://michelchristianen.blogspot.com/"&gt;Michel Christianen&lt;/a&gt;.&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/82799045248352799-4860253644643928902?l=rogervdkimmenade.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/vZTMBXLM55Wus9zNNfdDdcL4XZI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vZTMBXLM55Wus9zNNfdDdcL4XZI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/vZTMBXLM55Wus9zNNfdDdcL4XZI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vZTMBXLM55Wus9zNNfdDdcL4XZI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SoaEaiBpmOracleAgile/~4/xmxVRXmsgg4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rogervdkimmenade.blogspot.com/feeds/4860253644643928902/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://rogervdkimmenade.blogspot.com/2010/12/oracle-soa-foundation-practioner-exam.html#comment-form" title="3 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/4860253644643928902?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/4860253644643928902?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SoaEaiBpmOracleAgile/~3/xmxVRXmsgg4/oracle-soa-foundation-practioner-exam.html" title="Oracle SOA Foundation Practioner exam" /><author><name>Roger van de Kimmenade</name><uri>http://www.blogger.com/profile/04738763579441543087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-j-uva_ndKzs/ToQpGoZaRZI/AAAAAAAAN68/KlBIBFG90Tg/s220/Roger.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://rogervdkimmenade.blogspot.com/2010/12/oracle-soa-foundation-practioner-exam.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUIMRXo8fyp7ImA9Wx9TGUo.&quot;"><id>tag:blogger.com,1999:blog-82799045248352799.post-1234517059523037863</id><published>2010-11-28T20:43:00.002+01:00</published><updated>2010-11-28T20:46:24.477+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-28T20:46:24.477+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="soa principles" /><category scheme="http://www.blogger.com/atom/ns#" term="cordys" /><category scheme="http://www.blogger.com/atom/ns#" term="soa" /><title>Do not use generated database webservices in Cordys</title><content type="html">&lt;h1&gt;Introduction&lt;/h1&gt;Cordys BOP4 has the great option (just like all other respected EAI tool) to generate webservices on top of your databases.&lt;br /&gt;
In fact you can even generate a GUI on top of it, so that you can adapt data within your database through a GUI.&lt;br /&gt;
Sounds great or not !?&lt;br /&gt;
&lt;br /&gt;
Watch out, because there can be a catch and this all has to do with a good SOA design!&lt;br /&gt;
&lt;h1&gt;Using webservices&lt;/h1&gt;In a project I work in, there has been decided to use generated webservices within the BPM processes.&lt;br /&gt;
This can easily be done by generating the MetaData of the database and then generate webservices for it, or even customized webservices by&lt;br /&gt;
using you own SQL statements.&lt;br /&gt;
This all works fine, but ..&lt;br /&gt;
1) You have to catch exceptions within all the BPM processes that use these webservices&lt;br /&gt;
2) The data within the databases can change (types, extra data elements, data elements removed, partitioning of data, primary key changes)&lt;br /&gt;
3) This will impact all the BPM processes that use these generated webservices&lt;br /&gt;
&lt;h1&gt;Define Data Services&lt;/h1&gt;The advise I want to give is to encapsulate the generated database webservices in Data Services (sub processes).&lt;br /&gt;
This way:&lt;br /&gt;
* Define the interface of the Data Service within a WSDL and use Contract By Design&lt;br /&gt;
* Call the generated database webservices within the Data Service&lt;br /&gt;
* Handle all technical errors within the Data Service, or expose when needed&lt;br /&gt;
* Use this Data Service within the other BPM processes &lt;br /&gt;
&lt;br /&gt;
This way the changes of the database are encapsulated within the Data Service.&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;Conclusion&lt;/h1&gt;By using Service Oriented Principles within the Cordys BOP4 product it will increase the maintainability and usability.&lt;br /&gt;
&lt;br /&gt;
Principles:&lt;br /&gt;
* Abstraction (by using Contract By Design pattern and Data Service)&lt;br /&gt;
* Loose Coupling (by adding just an extra layer on top of your generated database services, so that database changes can be handled better)&lt;br /&gt;
&lt;br /&gt;
So actually use the generate webservices feature of Cordys !&lt;br /&gt;
But use it with care and keep the SOA principles in mind!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/82799045248352799-1234517059523037863?l=rogervdkimmenade.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Wzq2g52MyUbzKwDafwdoL2Z4ZnM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Wzq2g52MyUbzKwDafwdoL2Z4ZnM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Wzq2g52MyUbzKwDafwdoL2Z4ZnM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Wzq2g52MyUbzKwDafwdoL2Z4ZnM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SoaEaiBpmOracleAgile/~4/6urdPER3kR0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rogervdkimmenade.blogspot.com/feeds/1234517059523037863/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://rogervdkimmenade.blogspot.com/2010/11/do-not-use-generated-database_28.html#comment-form" title="0 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/1234517059523037863?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/1234517059523037863?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SoaEaiBpmOracleAgile/~3/6urdPER3kR0/do-not-use-generated-database_28.html" title="Do not use generated database webservices in Cordys" /><author><name>Roger van de Kimmenade</name><uri>http://www.blogger.com/profile/04738763579441543087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-j-uva_ndKzs/ToQpGoZaRZI/AAAAAAAAN68/KlBIBFG90Tg/s220/Roger.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://rogervdkimmenade.blogspot.com/2010/11/do-not-use-generated-database_28.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIFQng9eip7ImA9Wx5bEkg.&quot;"><id>tag:blogger.com,1999:blog-82799045248352799.post-8448423220277172202</id><published>2010-10-28T10:26:00.002+02:00</published><updated>2010-10-28T10:28:33.662+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-28T10:28:33.662+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="bpm" /><category scheme="http://www.blogger.com/atom/ns#" term="message map" /><category scheme="http://www.blogger.com/atom/ns#" term="cordys" /><title>Cordys: Sharing Message Maps</title><content type="html">Cordys has a handy feature and that is of sharing Message Maps. A main process can share its message map with child processes.&lt;br /&gt;
&lt;br /&gt;
The way to do this:&lt;br /&gt;
&lt;br /&gt;
1) Select the sub process within your main process and select Properties&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_mZrO8LIZJSs/TMk0Duf4VaI/AAAAAAAAKcU/LR0ppIGhtYY/s1600/ScreenShot075.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="179" src="http://3.bp.blogspot.com/_mZrO8LIZJSs/TMk0Duf4VaI/AAAAAAAAKcU/LR0ppIGhtYY/s320/ScreenShot075.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
2) Check the &lt;b&gt;Share Message Map&lt;/b&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_mZrO8LIZJSs/TMk0HDRy-OI/AAAAAAAAKcY/mFB43yQnA3A/s1600/ScreenShot076.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="102" src="http://2.bp.blogspot.com/_mZrO8LIZJSs/TMk0HDRy-OI/AAAAAAAAKcY/mFB43yQnA3A/s320/ScreenShot076.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
The Message Map is automatically copied to the subprocess. However sometimes this is not the case and the easiest way to do this is to copy&lt;br /&gt;
the message.&lt;br /&gt;
&lt;br /&gt;
3) Goto the Mesage Map of the main process and select a Message and right click &lt;b&gt;Show XML&lt;/b&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_mZrO8LIZJSs/TMk0KXMTcgI/AAAAAAAAKcc/CfCxJIahENQ/s1600/ScreenShot077.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="182" src="http://1.bp.blogspot.com/_mZrO8LIZJSs/TMk0KXMTcgI/AAAAAAAAKcc/CfCxJIahENQ/s320/ScreenShot077.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
4) Copy the XML&lt;br /&gt;
5) Goto subprocess and select &lt;b&gt;Paste XML as Element&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
This feature is handy when you want to use a generic Message within your process&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/82799045248352799-8448423220277172202?l=rogervdkimmenade.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/IzCo4kwnV40Szj6D36I6zdXJrWc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IzCo4kwnV40Szj6D36I6zdXJrWc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/IzCo4kwnV40Szj6D36I6zdXJrWc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IzCo4kwnV40Szj6D36I6zdXJrWc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SoaEaiBpmOracleAgile/~4/AO71KsRTDyk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rogervdkimmenade.blogspot.com/feeds/8448423220277172202/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://rogervdkimmenade.blogspot.com/2010/10/cordys-sharing-message-maps.html#comment-form" title="0 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/8448423220277172202?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/8448423220277172202?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SoaEaiBpmOracleAgile/~3/AO71KsRTDyk/cordys-sharing-message-maps.html" title="Cordys: Sharing Message Maps" /><author><name>Roger van de Kimmenade</name><uri>http://www.blogger.com/profile/04738763579441543087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-j-uva_ndKzs/ToQpGoZaRZI/AAAAAAAAN68/KlBIBFG90Tg/s220/Roger.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_mZrO8LIZJSs/TMk0Duf4VaI/AAAAAAAAKcU/LR0ppIGhtYY/s72-c/ScreenShot075.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://rogervdkimmenade.blogspot.com/2010/10/cordys-sharing-message-maps.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MGRn89fyp7ImA9Wx5UGUU.&quot;"><id>tag:blogger.com,1999:blog-82799045248352799.post-5186029982811850223</id><published>2010-10-22T11:32:00.004+02:00</published><updated>2010-10-25T07:43:47.167+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-25T07:43:47.167+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="bpm" /><category scheme="http://www.blogger.com/atom/ns#" term="error handling" /><category scheme="http://www.blogger.com/atom/ns#" term="cordys" /><title>Exception handling in Cordys BPM</title><content type="html">A couple of days ago I was discussing the handling of all kinds of errors within your BPM.&lt;br /&gt;
In this case within the Cordys BOP4 product.&lt;br /&gt;
To handle technical errors (like a webservice can not be reached due to system crash) and functional errors the "normal" BPM flow gets blurred with all these exceptions.&lt;br /&gt;
&lt;br /&gt;
We discussed ways to handle this:&lt;br /&gt;
1) Using different Views on your BPM (this is not (yet?) a feature in Cordys), so viewing your BPM with/without error handling)&lt;br /&gt;
2) Using different colors in your BPM&lt;br /&gt;
3) Using Embedded Subprocess &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" height="196" src="http://3.bp.blogspot.com/_mZrO8LIZJSs/TMFajFm9XOI/AAAAAAAAKcI/9176Rp7G5V0/s400/ScreenShot071.jpg" style="margin-left: auto; margin-right: auto;" width="400" /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Example of option 2&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_mZrO8LIZJSs/TMFajFm9XOI/AAAAAAAAKcI/9176Rp7G5V0/s1600/ScreenShot071.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/_mZrO8LIZJSs/TMFaUt6jraI/AAAAAAAAKcE/YznMoq63Y-g/s1600/ScreenShot070.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;br /&gt;
&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" height="126" src="http://2.bp.blogspot.com/_mZrO8LIZJSs/TMGYSlCtWJI/AAAAAAAAKcM/l48bJxCzo8s/s400/ScreenShot072.jpg" style="margin-left: auto; margin-right: auto;" width="400" /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Example of option 3&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_mZrO8LIZJSs/TMGYSlCtWJI/AAAAAAAAKcM/l48bJxCzo8s/s1600/ScreenShot072.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/82799045248352799-5186029982811850223?l=rogervdkimmenade.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pDUh_VyMEf9d0CgSfdcfkMROlFU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pDUh_VyMEf9d0CgSfdcfkMROlFU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pDUh_VyMEf9d0CgSfdcfkMROlFU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pDUh_VyMEf9d0CgSfdcfkMROlFU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SoaEaiBpmOracleAgile/~4/544zC1SnbnY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rogervdkimmenade.blogspot.com/feeds/5186029982811850223/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://rogervdkimmenade.blogspot.com/2010/10/using-colors-within-your-bpm.html#comment-form" title="0 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/5186029982811850223?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/5186029982811850223?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SoaEaiBpmOracleAgile/~3/544zC1SnbnY/using-colors-within-your-bpm.html" title="Exception handling in Cordys BPM" /><author><name>Roger van de Kimmenade</name><uri>http://www.blogger.com/profile/04738763579441543087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-j-uva_ndKzs/ToQpGoZaRZI/AAAAAAAAN68/KlBIBFG90Tg/s220/Roger.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_mZrO8LIZJSs/TMFajFm9XOI/AAAAAAAAKcI/9176Rp7G5V0/s72-c/ScreenShot071.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://rogervdkimmenade.blogspot.com/2010/10/using-colors-within-your-bpm.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMCSXgycSp7ImA9Wx5UFks.&quot;"><id>tag:blogger.com,1999:blog-82799045248352799.post-6265772512268234597</id><published>2010-10-21T14:15:00.002+02:00</published><updated>2010-10-21T14:17:48.699+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-21T14:17:48.699+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="bpm" /><category scheme="http://www.blogger.com/atom/ns#" term="external services configuration" /><category scheme="http://www.blogger.com/atom/ns#" term="cordys" /><title>Cordys BOP External Services Configurator</title><content type="html">&lt;h1&gt;Introduction&lt;/h1&gt;For external webservices within the UDDI connector you have the possibility to configure the endpoints of the webservice.&lt;br /&gt;
This way in each environment (Development, Test, Acceptance, Production) you have a way to configure the endpoint differently.&lt;br /&gt;
You can use the External Service Configuration. However when I did this i ran into a problem.&lt;br /&gt;
&lt;h1&gt;Import WSDL&lt;/h1&gt;To use an external webservice you can import the WSDL.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Goto Workspace Folder where you want to create the webservice (probably a Web Services Folder somewhere).&lt;/li&gt;
&lt;li&gt;Right-click New &amp;gt; Other &amp;gt; Web Service&lt;/li&gt;
&lt;li&gt;Select &lt;b&gt;Import WSDL&lt;/b&gt; as the source, give it a name and description&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Next you have to give up the URL where the WSDL is located&lt;br /&gt;
Note: This can be ackward but for the moment not the issue i got&lt;/li&gt;
&lt;/ul&gt;&lt;h1&gt;Give logical endpoint to the service&lt;/h1&gt;When you look at the properties of the imported webservice by double click on it you will see:&lt;br /&gt;
&lt;br /&gt;
&lt;div id="v2es" style="text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_mZrO8LIZJSs/TMAvNnzaIBI/AAAAAAAAKb4/jjMiGnADtVw/s1600/ScreenShot068.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="216" src="http://3.bp.blogspot.com/_mZrO8LIZJSs/TMAvNnzaIBI/AAAAAAAAKb4/jjMiGnADtVw/s320/ScreenShot068.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I advise to change the &amp;lt;serviceuri&amp;gt; into a more logical endpoint name instead of the one filled in after importing the WSDL.&lt;br /&gt;
This way you will be aware that the correct endpoint still has to be filled in within the External Services Configuration tool.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Goto External Services Configuration&lt;/li&gt;
&lt;li&gt;There you will see the logical service uri and the physical endpoint&lt;/li&gt;
&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_mZrO8LIZJSs/TMAvTTIIEjI/AAAAAAAAKb8/9NZUrjAbXww/s1600/ScreenShot067.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="170" src="http://4.bp.blogspot.com/_mZrO8LIZJSs/TMAvTTIIEjI/AAAAAAAAKb8/9NZUrjAbXww/s320/ScreenShot067.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id="bwcs" style="text-align: left;"&gt;&lt;/div&gt;&lt;h1&gt;Problem when test webservice&lt;/h1&gt;However when i tested the webservice I got the following error:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_mZrO8LIZJSs/TMAvYfD-o6I/AAAAAAAAKcA/-BySRKOKeHo/s1600/ScreenShot069.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_mZrO8LIZJSs/TMAvYfD-o6I/AAAAAAAAKcA/-BySRKOKeHo/s1600/ScreenShot069.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id="pufv" style="text-align: left;"&gt;&lt;/div&gt;So it appears that the logical endpoint is taken instead of the Service URL as defined within the External Services Configuration.&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;Solution&lt;/h1&gt;When you restart the UDDI connector it takes the correct endpoint.&lt;br /&gt;
&lt;h1&gt;Conclusions&lt;/h1&gt;&lt;ul&gt;&lt;li&gt;Use logical names within the webservice properties&lt;/li&gt;
&lt;li&gt;Define the real endpoint with &lt;b&gt;External Services Configuration&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Restart UDDI connector when the endpoint is changed&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/82799045248352799-6265772512268234597?l=rogervdkimmenade.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wzxmzGloPUk6gf7-OBoNe5icfuI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wzxmzGloPUk6gf7-OBoNe5icfuI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wzxmzGloPUk6gf7-OBoNe5icfuI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wzxmzGloPUk6gf7-OBoNe5icfuI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SoaEaiBpmOracleAgile/~4/pqgHYlN6E74" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rogervdkimmenade.blogspot.com/feeds/6265772512268234597/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://rogervdkimmenade.blogspot.com/2010/10/cordys-bop-external-services.html#comment-form" title="0 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/6265772512268234597?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/6265772512268234597?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SoaEaiBpmOracleAgile/~3/pqgHYlN6E74/cordys-bop-external-services.html" title="Cordys BOP External Services Configurator" /><author><name>Roger van de Kimmenade</name><uri>http://www.blogger.com/profile/04738763579441543087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-j-uva_ndKzs/ToQpGoZaRZI/AAAAAAAAN68/KlBIBFG90Tg/s220/Roger.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_mZrO8LIZJSs/TMAvNnzaIBI/AAAAAAAAKb4/jjMiGnADtVw/s72-c/ScreenShot068.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://rogervdkimmenade.blogspot.com/2010/10/cordys-bop-external-services.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMGR3gzfSp7ImA9Wx5UEEk.&quot;"><id>tag:blogger.com,1999:blog-82799045248352799.post-1365992860744813619</id><published>2010-10-12T20:04:00.003+02:00</published><updated>2010-10-14T10:53:46.685+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-14T10:53:46.685+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="bpm" /><category scheme="http://www.blogger.com/atom/ns#" term="soa" /><title>What to put in BPM?</title><content type="html">&lt;h1&gt;Introduction&lt;/h1&gt;When implementing a BPM or using a BPM tool I see a lot of functionality that (in my opinion) does not belong into that layer, but within a SOA Service.&lt;br /&gt;
But are there some general rules or guidelines that you use to decide what to put in BPM and what to put in a Service?&lt;br /&gt;
This blog item is a first try.&lt;br /&gt;
&lt;h1&gt;Put in a Service&lt;/h1&gt;This is a list of items/functionality that I would put in a Service:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Static calculations not dependant on business data (example: Fahrenheit to Celcius calculations)&lt;/li&gt;
&lt;li&gt;High performance / complex calculations on data (example: complex calculations over series of data)&lt;/li&gt;
&lt;li&gt;Technical orchestrations (example: Getting data out of several different databases)&lt;/li&gt;
&lt;li&gt;Sending messages (in a particular format) to another department or even another organization (B2B)&lt;br /&gt;
(example: ebXML messages, HL7 messages)&lt;/li&gt;
&lt;li&gt;Adapters (example: database-, file-, mailadapters)&lt;br /&gt;
These are always implementation specific in most cases and the implementation should be abstracted with a service.&lt;br /&gt;
However in most cases you will see these adapters used within the BPM tools.&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;h1&gt;Put in a BPM&lt;/h1&gt;This is a list items/functionality that I would put in a BPM:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;A step in a business process implemented in a Service operation or sub process.&lt;/li&gt;
&lt;li&gt;Scheduled triggers to execute a business process (example: every day execute a particular business process)&lt;br /&gt;
You can put the schedule in a business rule to make it flexible&lt;/li&gt;
&lt;li&gt;Steps / Activities that mean something to the business&lt;br /&gt;
Remark: Discuss in depth because even business people dive into technical details.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
You are invited to increase the list !&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;Conclusion&lt;/h1&gt;I think there will remain discussions where to put which functionality. With the BPM tools nowadays you can use integration software that you do not want in the BPM layer, like &lt;br /&gt;
a database adapter or file adapter. This should be put in a Service and abstracted. However time-to-market and ease of implementation is often a (maybe valid) argument to &lt;br /&gt;
do it like this. But hope you take a step back and think about it when you use a BPM tool because also with this tool you can make spaghetti !&lt;br /&gt;
And last but not least: &lt;b&gt;Do not use a BPM tool as just another visual programming tool&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/82799045248352799-1365992860744813619?l=rogervdkimmenade.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xYTF54hi90iu-9jMgNkai2ieN24/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xYTF54hi90iu-9jMgNkai2ieN24/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xYTF54hi90iu-9jMgNkai2ieN24/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xYTF54hi90iu-9jMgNkai2ieN24/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SoaEaiBpmOracleAgile/~4/8YJUcvrzAuM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rogervdkimmenade.blogspot.com/feeds/1365992860744813619/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://rogervdkimmenade.blogspot.com/2010/10/what-to-put-in-bpm.html#comment-form" title="2 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/1365992860744813619?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/1365992860744813619?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SoaEaiBpmOracleAgile/~3/8YJUcvrzAuM/what-to-put-in-bpm.html" title="What to put in BPM?" /><author><name>Roger van de Kimmenade</name><uri>http://www.blogger.com/profile/04738763579441543087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-j-uva_ndKzs/ToQpGoZaRZI/AAAAAAAAN68/KlBIBFG90Tg/s220/Roger.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://rogervdkimmenade.blogspot.com/2010/10/what-to-put-in-bpm.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08NSXc_cSp7ImA9Wx5VEUw.&quot;"><id>tag:blogger.com,1999:blog-82799045248352799.post-130036307072474907</id><published>2010-10-03T15:16:00.002+02:00</published><updated>2010-10-03T15:18:18.949+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-03T15:18:18.949+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="soaschool" /><category scheme="http://www.blogger.com/atom/ns#" term="certification" /><category scheme="http://www.blogger.com/atom/ns#" term="soa" /><title>SOASchool: Module3</title><content type="html">Friday I had my 3rd exam &lt;a href="http://soaschool.com/exams/exam3" id="btyw" title="SOA Design &amp;amp; Architecture"&gt;SOA Design &amp;amp; Architecture&lt;/a&gt;.&lt;br /&gt;
In this exam you also get 50 questions and you need to have 80% right.&lt;br /&gt;
This exam is about understanding the 8 principles of Service Orientation.&lt;br /&gt;
It has strong resemblance with the first module, but this exam was more detailed.&lt;br /&gt;
&lt;br /&gt;
Up to module 8 of my SOA Architect Certification.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/82799045248352799-130036307072474907?l=rogervdkimmenade.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/15asgr7O2KwcGazyp8IznuA8Z24/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/15asgr7O2KwcGazyp8IznuA8Z24/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/15asgr7O2KwcGazyp8IznuA8Z24/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/15asgr7O2KwcGazyp8IznuA8Z24/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SoaEaiBpmOracleAgile/~4/1ZZnU1-_pUI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rogervdkimmenade.blogspot.com/feeds/130036307072474907/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://rogervdkimmenade.blogspot.com/2010/10/soaschool-module3.html#comment-form" title="1 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/130036307072474907?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/130036307072474907?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SoaEaiBpmOracleAgile/~3/1ZZnU1-_pUI/soaschool-module3.html" title="SOASchool: Module3" /><author><name>Roger van de Kimmenade</name><uri>http://www.blogger.com/profile/04738763579441543087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-j-uva_ndKzs/ToQpGoZaRZI/AAAAAAAAN68/KlBIBFG90Tg/s220/Roger.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://rogervdkimmenade.blogspot.com/2010/10/soaschool-module3.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0AFQnk7eyp7ImA9Wx5WFko.&quot;"><id>tag:blogger.com,1999:blog-82799045248352799.post-697703861880432240</id><published>2010-09-27T10:16:00.002+02:00</published><updated>2010-09-28T14:08:33.703+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-28T14:08:33.703+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="pattern" /><category scheme="http://www.blogger.com/atom/ns#" term="error" /><category scheme="http://www.blogger.com/atom/ns#" term="soa" /><title>Service Orientation: Exception handling pattern</title><content type="html">&lt;h1&gt;Introduction&lt;/h1&gt;I am a great fan of the service orientation principles described by Thomas Erl:&amp;nbsp;&lt;a href="http://www.soaprinciples.com/" id="wepe" title="http://www.soaprinciples.com/"&gt;http://www.soaprinciples.com/&lt;/a&gt;&lt;br /&gt;
And also of its patterns:&amp;nbsp;&lt;a href="http://www.soapatterns.org/" id="gvg2" title="http://www.soapatterns.org/"&gt;http://www.soapatterns.org/&lt;/a&gt;&lt;br /&gt;
This will not be a sucking up story about Thomas, but the need for a pattern on error handling.&lt;br /&gt;
&lt;h1&gt;Layering&lt;/h1&gt;One of the patterns is that of Service Layering, in which the Services can be categorized in the following layers:&lt;br /&gt;
&lt;br /&gt;
&lt;div id="ty70" style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dst7j4v_294dqp7zjcz_b" style="height: 113px; width: 315px;" /&gt;&lt;/div&gt;&lt;br /&gt;
The Utility Service Layer consists of Services that are of agnostic functional nature and are not functional related to a business entity or business process.&lt;br /&gt;
The Entity Service Layer contains Services that are related to business entities and are usually also agnostic.&lt;br /&gt;
The Task Service Layer is more related to Services that are specific to a particular task or process.&lt;br /&gt;
Usually you also have a Orchestrated Task Service layer contains Services that orchestrates Services to fulfill a business process.&lt;br /&gt;
&lt;br /&gt;
My question is how to deal with errors in the separate layers?&lt;br /&gt;
&lt;h1&gt;Error Types&lt;/h1&gt;Let me first describe the type of errors we can have:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Technical Errors&lt;/b&gt;&lt;br /&gt;
Those are errors of technical nature, like database can not be reached, wrong message format. Mostly internal service errors that occur.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Capability Errors&lt;/b&gt;&lt;br /&gt;
Those are the errors due to the fact that a capability of a service can not be executed. These errors are more of a functional nature.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Business Process Errors&lt;/b&gt;&lt;br /&gt;
Those are errors that occur within the logic of a business process.&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
The next item you have to think about, is which errors you want to expose.&lt;br /&gt;
&lt;h1&gt;Expose errors?&lt;/h1&gt;The first option that comes to mind is that all errors remain internal, using the &lt;a href="http://www.soaprinciples.com/service_abstraction.php" id="c2gl" title="Abstraction Principle"&gt;Abstraction Principle&lt;/a&gt;.&lt;br /&gt;
However if you think deeper then:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Technical errors may kick off other processes that will deal with service errors, by sending mails to maintenance for example. Then technical errors are part of the service contract.&lt;/li&gt;
&lt;li&gt;A &lt;a href="http://www.soaglossary.com/composition_controller.php" id="f_0k" title="composite controller"&gt;composite controller&lt;/a&gt; may handle a capability error by trying it again or using an alternative path. &lt;br /&gt;
A service does (generally) does not know in which &lt;a href="http://www.soaglossary.com/service_activity.php" id="leda" title="activity"&gt;activity&lt;/a&gt; it participates, so the service can not decide what to do when something happens. Then the error is also part of the service contract.&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;h1&gt;How to expose errors?&lt;/h1&gt;When you decided to expose errors then you have to think about how to expose the errors.&lt;br /&gt;
When looking at webservice services you have several options:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Return an error within the output message&lt;/li&gt;
&lt;li&gt;Generate a soap fault&lt;/li&gt;
&lt;li&gt;Generate a business event that something happend&lt;/li&gt;
&lt;/ol&gt;I am more in favorite of the last two, because the first option always blurs your goodweather logic and this way the maintenance of your code can be more complex.&lt;br /&gt;
&lt;h1&gt;Conclusion&lt;/h1&gt;Hope this gives you some stuff to think about when designing your service contract.&lt;br /&gt;
Other suggestions are welcome !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/82799045248352799-697703861880432240?l=rogervdkimmenade.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Nmg1pWu0nySbT5MTOduEyFBiAtU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Nmg1pWu0nySbT5MTOduEyFBiAtU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Nmg1pWu0nySbT5MTOduEyFBiAtU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Nmg1pWu0nySbT5MTOduEyFBiAtU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SoaEaiBpmOracleAgile/~4/In7XJmVYuCk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rogervdkimmenade.blogspot.com/feeds/697703861880432240/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://rogervdkimmenade.blogspot.com/2010/09/service-orientation-exception-handling.html#comment-form" title="2 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/697703861880432240?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/697703861880432240?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SoaEaiBpmOracleAgile/~3/In7XJmVYuCk/service-orientation-exception-handling.html" title="Service Orientation: Exception handling pattern" /><author><name>Roger van de Kimmenade</name><uri>http://www.blogger.com/profile/04738763579441543087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-j-uva_ndKzs/ToQpGoZaRZI/AAAAAAAAN68/KlBIBFG90Tg/s220/Roger.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://rogervdkimmenade.blogspot.com/2010/09/service-orientation-exception-handling.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMBRn8_eSp7ImA9Wx5XGUs.&quot;"><id>tag:blogger.com,1999:blog-82799045248352799.post-455598213633869410</id><published>2010-09-20T09:07:00.001+02:00</published><updated>2010-09-20T09:07:37.141+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-20T09:07:37.141+02:00</app:edited><title>Cordys: Connectors open source</title><content type="html">&lt;div class="clearfix col1" id="yr_9"&gt;&lt;div class="wiki-content"&gt;&lt;p&gt;Taken from Cordys Wiki:&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Cordys has always had two types of connectors. The first group of connectors are developed and supported by the Cordys platform engineers. Examples include the E-mail and the FTP connector. The second group of the connectors are developed and supported by the former Cordys professional services group (a.k.a. COE). Examples include the JMS connector and Command Connector. &lt;/p&gt;&lt;p&gt;Some time ago the professional services group moved to CSC, leaving the status of the professional services connectors a bit unclear. People were still maintaining professional services connectors, but it became more difficult because they needed to focus on CSC projects. Not on maintaining the connectors. &lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Another development is the creation of alternatives for platform connectors. The development of platform alternative takes a lot of time and blocks the possibility of including the enhancements into the product since they were on a different code base. So Cordys had to revise its strategy. One particular idea that kept showing up, both within as outside of Cordys: &lt;b&gt;make the platform and professional services connectors open source&lt;/b&gt;. External developers will then be able to customize and enhance a connector instead of rebuilding it from scratch and Cordys will have the option to include a snapshot of the open source connector into the platform. Connectors shipped with Cordys will have support, which makes the customers happy. &lt;/p&gt;&lt;p&gt;The last two weeks this idea was validated with customers, partners and colleagues. All parties were positive about the overall idea. Thus Cordys decided to go forward with it.&lt;/p&gt;&lt;p&gt;The next step is creating a concrete proposal which includes details like timing, a definition of what Cordys support means, the location sources and a list of connectors to start with.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;This is a good idea and will hopefully increase the number of connectors and also the quality. Looking forward to it.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/82799045248352799-455598213633869410?l=rogervdkimmenade.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Hxt79WH-TkVVvtPOm6YmzsPuO7U/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Hxt79WH-TkVVvtPOm6YmzsPuO7U/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Hxt79WH-TkVVvtPOm6YmzsPuO7U/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Hxt79WH-TkVVvtPOm6YmzsPuO7U/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SoaEaiBpmOracleAgile/~4/HNJbrF2mP3o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rogervdkimmenade.blogspot.com/feeds/455598213633869410/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://rogervdkimmenade.blogspot.com/2010/09/cordys-connectors-open-source.html#comment-form" title="1 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/455598213633869410?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/82799045248352799/posts/default/455598213633869410?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SoaEaiBpmOracleAgile/~3/HNJbrF2mP3o/cordys-connectors-open-source.html" title="Cordys: Connectors open source" /><author><name>Roger van de Kimmenade</name><uri>http://www.blogger.com/profile/04738763579441543087</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-j-uva_ndKzs/ToQpGoZaRZI/AAAAAAAAN68/KlBIBFG90Tg/s220/Roger.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://rogervdkimmenade.blogspot.com/2010/09/cordys-connectors-open-source.html</feedburner:origLink></entry></feed>

