Doorgaan naar hoofdcontent

Posts

Posts uit 2010 tonen

Oracle SOA Foundation Practioner exam

The Oracle Middleware Fusion 11g stack has a certification path for SOA: 1Z0-451 Oracle SOA Foundation Practitioner . When you pass this exam you may call yourself: Oracle Service Oriented Architecture Infrastructure Implementation Certified Expert. Today I passed the exam with 81% but I must say the questions were pretty detailed. 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. Suggested preparation: * Follow a SOA Suite 11g Bootcamp (or follow the book: Getting Started with Oracle SOA Suite 11gR1 ) * Play with the product at home * Follow the recommended learning path as mentioned here (for this you must be a registered Partner) The questions are of high level and detailed level, with Choose Applicable, True/False, and Select Correct type of questions. A CIBER colleague of mine also passed this exam: Michel Christianen . 

Do not use generated database webservices in Cordys

Introduction Cordys BOP4 has the great option (just like all other respected EAI tool) to generate webservices on top of your databases. In fact you can even generate a GUI on top of it, so that you can adapt data within your database through a GUI. Sounds great or not !? Watch out, because there can be a catch and this all has to do with a good SOA design! Using webservices In a project I work in, there has been decided to use generated webservices within the BPM processes. This can easily be done by generating the MetaData of the database and then generate webservices for it, or even customized webservices by using you own SQL statements. This all works fine, but .. 1) You have to catch exceptions within all the BPM processes that use these webservices 2) The data within the databases can change (types, extra data elements, data elements removed, partitioning of data, primary key changes) 3) This will impact all the BPM processes that use these generated webservices Defin

Cordys: Sharing Message Maps

Cordys has a handy feature and that is of sharing Message Maps. A main process can share its message map with child processes. The way to do this: 1) Select the sub process within your main process and select Properties 2) Check the Share Message Map 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 the message. 3) Goto the Mesage Map of the main process and select a Message and right click Show XML 4) Copy the XML 5) Goto subprocess and select Paste XML as Element This feature is handy when you want to use a generic Message within your process

Exception handling in Cordys BPM

A couple of days ago I was discussing the handling of all kinds of errors within your BPM. In this case within the Cordys BOP4 product. 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. We discussed ways to handle this: 1) Using different Views on your BPM (this is not (yet?) a feature in Cordys), so viewing your BPM with/without error handling) 2) Using different colors in your BPM 3) Using Embedded Subprocess   Example of option 2 Example of option 3

Cordys BOP External Services Configurator

Introduction For external webservices within the UDDI connector you have the possibility to configure the endpoints of the webservice. This way in each environment (Development, Test, Acceptance, Production) you have a way to configure the endpoint differently. You can use the External Service Configuration. However when I did this i ran into a problem. Import WSDL To use an external webservice you can import the WSDL. Goto Workspace Folder where you want to create the webservice (probably a Web Services Folder somewhere). Right-click New > Other > Web Service Select Import WSDL as the source, give it a name and description Next you have to give up the URL where the WSDL is located Note: This can be ackward but for the moment not the issue i got Give logical endpoint to the service When you look at the properties of the imported webservice by double click on it you will see: I advise to change the <serviceuri> into a more logical endpoint name instead of the

What to put in BPM?

Introduction 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. 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? This blog item is a first try. Put in a Service This is a list of items/functionality that I would put in a Service: Static calculations not dependant on business data (example: Fahrenheit to Celcius calculations) High performance / complex calculations on data (example: complex calculations over series of data) Technical orchestrations (example: Getting data out of several different databases) Sending messages (in a particular format) to another department or even another organization (B2B) (example: ebXML messages, HL7 messages) Adapters (example: database-, file-, mailadapters) These are always implementation specific in most cases and the implementation should be abstracted with a service. H

SOASchool: Module3

Friday I had my 3rd exam SOA Design & Architecture . In this exam you also get 50 questions and you need to have 80% right. This exam is about understanding the 8 principles of Service Orientation. It has strong resemblance with the first module, but this exam was more detailed. Up to module 8 of my SOA Architect Certification.

Service Orientation: Exception handling pattern

Introduction I am a great fan of the service orientation principles described by Thomas Erl:  http://www.soaprinciples.com/ And also of its patterns:  http://www.soapatterns.org/ This will not be a sucking up story about Thomas, but the need for a pattern on error handling. Layering One of the patterns is that of Service Layering, in which the Services can be categorized in the following layers: 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. The Entity Service Layer contains Services that are related to business entities and are usually also agnostic. The Task Service Layer is more related to Services that are specific to a particular task or process. Usually you also have a Orchestrated Task Service layer contains Services that orchestrates Services to fulfill a business process. My question is how to deal with errors in the separate layers? Error Types Let me fi

Cordys: Connectors open source

Taken from Cordys Wiki: 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. 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. 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

Cordial 2010

Introduction The 14th and 15th September I visited the Cordial 2010 event with 5 of my CIBER colleagues. This is a small overview of the event and my findings. Overview The subtitle of the event was Accelerate Time To Value. The whole message of the event was that the Cordys offerings will shorten your time to value, a promise of all BPM vendors, but I think Cordys can actually achieve it. The majority of the presentations were about Cloud computing, so the terms IaaS, SaaS, PaaS and  BPaaS were mentioned a lot. Cordys also has launched a new product in 2009 called Cordys Process Factory (CPF). This new product was built on top of BOP4 and will nicely integrate with BOP4. The product is meant to build dynamic MashUps in the Cloud with little effort. It abstracts the more complex features of BOP4, to make it simple to use. Cordys now can offer services on premise, in the cloud and both.   Per Jonsson was presenting on his first month as the new CEO of Cordys. Quiet, calm, s

Cordys BOP4 and SSL be aware

Introduction In one of my previous Blog item about Cordys BOP4, I described how Apache WebServer and Cordys BOP must be configured for using secure two-way-SSL. I discovered some behavior of this set-up which i want to share in this blog. Behavior When you configure two-way-SSL in Apache Webserver, the client certificate is used by the Apache WebServer to check whether this client may access the WebServer. However this certificate is also used by Cordys BOP4 for the identification of the User within BOP4. For this you have to configure a User that has the client certificate attached to it. * Goto User Manager > Users Roles * Select a User, Right click Edit * Select as Authentication Type: Certificate * Click Use Certificate and import the public certificate of the client (X.501 compliant) When you sent a soap message to the platform you must NOT use wsse:Security tags in the soap header anymore    Roger Password

Cordys in the Cloud

Introduction Cloud is one of the buzzwords today and Cordys also has a Cloud platform: The Cordys Process Factory (CPF). So what is it? It is a webbased integrated cloud environment for rapid Cloud Application Development. You can build forms, business processes, integration with other webservices and reporting. How does it work? A CPF Composer is used to design forms, business processes, business rules, using external webservices, reports and charts (PDF, HTML, MS Word, or MS Excel). SaaS There is a CPF marketplace where you can sell your cloud application as a SaaS product and where you can buy other products as well. A Simple example When you fill in you credentials the Cordys Explorer or MashupComposer is shown. * Select "Create a new application" and fill in the application information, click Save and go to Composer * The Composer is shown * Select Build Forms > New Form and fill in the following details * The Forms composer is shown. Drag

Book review: SOA: An Integration Blueprint

Introduction This describes a review of the book: Service-Oriented Architecture: An Integration Blueprint. The book is written by Guido Schmutz, Daniel Liebhart and Peter Welkenbach. The book is about successfully implementing your own enterprise integration architecture using the Trivadis Integration Architecture Blueprint (TIAB). The authors try to set a standard for integration problems that organisation face. Chapters The book contains 5 chapters, but unfortunately the subchapters are not numbered and sometimes it is difficult to see what belongs to what. Chapter 1: Basic Principles Chapter 2: Base Technologies Chapter 3: Integration Architecture Blueprint Chapter 4: Implementation scenarios Chapter 5: Vendor Products for Implementing the Trivadis Blueprint I will dive deeper into the chapters later on, but first some general remarks about the book. General remarks As sais before I missed the subchapter numbering. The book describes an integration blueprint, so the term

Cordys BOP4: Database connector

Introduction Just like any other Enterprise Service Bus, Cordys BOP4 also has connectors like file, ftp, mail and database. This blog item shows how a database connector is configured within the product. Note: Within a Service Oriented Architecture that must be flexible and product independant I would advise not to use product specific database connectors. I would recommend to implement an abstraction layer around the database with for instance Hibernate and expose it as a webservice. Ws-AppServer Within the Cordys BOP4 platform a database connector is implemented with a so-called Ws-AppServer. This is a java layer between the database and can be used to implement some business logic and/or the place to react on database events. For this example I have used a MySql database instance (Test) with an Employee table. DROP TABLE IF EXISTS test.Employee; CREATE TABLE test.Employee ( EmployeeNumber varchar(255) NOT NULL DEFAULT '', FirstName varchar(255) NOT NULL DEFAU

Hermes ebXML SSL Configuration

Introduction This blog item describes how I setup End-2-End security ebXML communication using the Hermes2 framework. The ebMS client is on a Tomcat installation and it communicates with an Apache WebServer (running on Linux and redirecting ebms communication to Tomcat instance on the same server). Prerequisite: Hermes2 (client) and Tomcat installed Hermes2 (server) and Tomcat installed Server certificates generated (self signed) Configuring Hermes2 (corvus webbapplication within Tomcat) When you change the partner agreement to use the https:// protocol towards the receiver you will get the following error (look in the ebms.log of the ebMS sender). hk.hku.cecid.ebms.spa.task.DeliveryException: Cannot send the message     by hk.hku.cecid.piazza.commons.net.ConnectionException: Unable to send HTTP SOAP request     by javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderE

SSL: Tomcat and Apache some handy links

Introduction I know there has been written a lot already about SSL configuration on Tomcat and Apache, but for my own registration I store some links I used to setup SSL. It also contains some handy commands I used to generate certificates. Links Client Certificate Authentication with Apache Apache webserver and SSL configuration Nice overview of SSL and OpenSSL OpenSSL and PKCS#12 FQA Description of Java keytool Most common keytool commands Configuration of Hermes2 (ebXML framework) with SSL Configuration of SSL in Tomcat Terms X.509 In cryptography, X.509 is an ITU-T standard for a public key infrastructure (PKI) for single sign-on (SSO) and Privilege Management Infrastructure (PMI). X.509 specifies, amongst other things, standard formats for public key certificates , certificate revocation lists , attribute certificates , and a certification path validation algorithm. PKCS#12 PKCS#12 is a standard for storing private keys and certificates securely. It define

How to explain Cordys BPM?

Today I got a question from Anita one of my Twitter followers: "Most people just dont get the whole application, BPM, layered language, how do you explain Cordys to people? " So to get a discussion going i post this question to my Blog so that we can discuss here ! A few questions come to me: What do people don't get? The layering? The BPM language? Or the step towards Cordys? The whole thing about BPM is that you get a flexible business architecture that is abstracting the business processes from the technical implementation. This way you get technical flexibility as well as business flexibility. BPM brings business and IT together ! Cordys BOP4 is a platform that supports this notion of layering and processes with a service oriented architecture. It follows the principles as set by Thomas Erl's SOA Principles . Within the SOA patterns there is also the layering pattern : This is about layering your Services into three abstraction layers. Thomas ta

Cordys: Authenticator is not instantiated via the properties

I was testing Basic Authentication with soapUI and got the following error: "Authenticator is not instantiated via the properties". <soapenv:Envelope xmlns:def="http://schemas.cordys.com/default" xmlns:mes="http://www.cvz.nl/csp/message" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">    <soapenv:Body>       <soapenv:Fault>          <faultcode xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope/">ns0:Client</faultcode>          <faultstring xml:lang="en-US">User validation failed for: '5517'.</faultstring>          <detail>             <cordys:FaultDetails xmlns:cordys="http://schemas.cordys.com/General/1.0/">                <cordys:LocalizableMessage>                   <cordys:MessageCode>Cordys.ESBServer.Messages.userValidationFailed</cordys:MessageCode>                   <cordys:Insertion>5517</cordys:

Cordys: Contract First design

Introduction One of the principles of Service Design is Contract First . With this principle you first design the service contract of the service and then implement it. This blog item will show a small example within Cordys BOP4. Contract First First I will create a simple HRM Employee service first. The WSDL can be found here Before you can use this WSDL you have to import the WSDL. Create a Project with com/examples Folders Create new Web Service document in com/examples Folder Select Import WSDL and name the service, click Next Now you have to fill in the URL of the WSDL. I have installed Cordys on my Windows machine and put my EmployeeService within the <CordysInstallDir>/Web directory. This way the WSDL is accessable through a URL. Select Show Services to view the service defined within the WSDL. Check Interface WSDL , because it is just the interface and not the implementation we are importing. Now you are able to use this as a basis to define a Contract Bas