Serge Blais

Wednesday Sep 09, 2009

Yet another exercise in the iep workshop...

Another small exercise for the iep workshop. You can get it here. It's about keeping only the last derived value of a stream, according to the need of the client of the process. Not something complex, and this can be considered to be a building block of the iep modeling. You can also get the wink file how to build the application...

Have fun!


Serge

Monday Aug 31, 2009

Update to the iep workshop...

Hi all!

A new example has been added the iep workshop. It's on how to map an exernal DB to a relation update. This way, we can keep the external DB table up to par with the internal state of IEP. Fairly simple to do, but nice to have in your back pocket...

So, to take a look, just click here!

 At the same time, thanks all for taking the time to learn about iep! Over a 1000 downloads for the samples included in the workshop to date!


Serge

Tuesday Feb 03, 2009

DatabaseBC not Connecting?

I though this might be of interest, so here it is. While using the database BC for the first time on a MySQL database, I ran into this strange error:

Caused by: java.sql.SQLException:

Error occured while executing

SQL.insert into firetable (Fire) values (?)

Reason: No database selected SQLState: 3D000 ErrorCode: 1046 at org.glassfish.openesb.databasebc.OutboundMessageProcessor. executeOutboundSQL(OutboundMessageProcessor.java:1377)  at org.glassfish.openesb.databasebc.OutboundMessageProcessor.  processInOut(OutboundMessageProcessor.java:611)

Which basically means what is says. It doesn't know which database to connect to to execute the sql statement. So, when this happens, prefix the name of the table with the name of the database in the WSDL with the database binding. In my case this meant to change the sql from

insert into firetable (Fire) values (?)

to

insert into cep.firetable (Fire) values (?)

Nothing more to it.

Now back to our regular programming...

Serge

Tuesday Aug 12, 2008

Need to increase IEP Performance?

Yesterday I started doing some performance testing for a project I am working on. By default, Glassfish is using org.apache.derby.jdbc.ClientDriver for the connection to Java DB. Well IEP is very (very) DB centric, so changing the jdbc driver from ClientDriver to  org.apache.derby.jdbc.EmbeddedDriver made my application go 8x faster. So keep this in mind!

To change the driver in Glassfish, you go to the admin screen (http://localhost:4848 for me);

  1. Select Application Server then
  2. Change the jvm option for the jdbc driver to org.apache.derby.jdbc.EmbeddedDriver
  3.  That's all there is to it!

Monday Jul 14, 2008

EDA on a personal level...

EDL an interesting acronym. Event Driven Life. That is what I live. From putting email reminders on my calendar for meetings, bill payments, soccer games, to emergency events like my wife calling me "Were you supposed to pick up the kids?" And me giving the standard ACK, "Oh s***, I forgot..."

Once I realized where I got, I had to ask myself, how did I get there? No, not having kids, I mean the event driven life. Then I realized, because I needed it, because it makes my life simpler. It too complex now, without using some level of event processing.

What happens if you don't have the event notifications? You have to have the discipline to poll your calendar at relevant times. When you wake up, before going out, checkin' in with your spouse... You have to actively go out and ask for information. Ask anyone, especially my wife, I tend to forget about things... (Including updating this blog)

So, I figure, when do you need EDA in an enterprise? As soon as polling becomes too complex to support, EDA can be the job saver. EDA is more costly, computing wise, than direct call. Always was, always will be. But EDA will provide for "Just In Time Computing" Processing resources are used only when needed.

Now, when does EDA breaks down? Well, if my wife were to call me every 5 minutes to remind me of things, I know I would break down. Too many events, something we call event flooding can break down an EDA system if flood gates are not in place, like turning a phone off... (a throttling system can be used to slow down the influx or an event filtering system to reduce the number of events).

So, should you go EDA? Only if it makes sense. Only if systemic complexity is too high, if one system being offline stops all other from processing. EDA is more complex than direct call systems, but there are tools to help. IEP is one of them. IEP can take an influx of events, and preprocess it for filtering, redirection, any types of event processing you need, that is not too business logic intensive. (It can't reject an account opening application for example).

So, how should you get started with IEP? Well, this blog is a good place, there is also the IEP site on java.net and the iep wiki on wikis.sun.com. At the moment, processing event as events is still new to most of us, but it will catch on. It has to, life has become too complex for us not to use it. Gotta stop this blog now, an event notification just got in, time for soccer practice for my son....

Later!

Wednesday Mar 05, 2008

IEP/cql Personal Discoveries...

A small list of one liners on "door opening" realizations about IEP...[Read More]

Monday Mar 03, 2008

Output Possibilities on Intelligent Event Processor

This is a small entry to show the differences in the possible outputs of a iep process...
[Read More]

Thursday Feb 28, 2008

iep for Message Ordering...

Ever wondered about the gapwindow and the event sequencing that can be done in iep? Well, a colleague of mine asked me if I ever worked with it. I have to admit I did not. But now I do! Read on, and see how simple this can be...[Read More]

Thursday Feb 21, 2008

CQL in iep, a fishy example....

This entry is a sample of a Intelligent Event Processing sample. It is based around a fictitious fisherman, who is using JBI to monitor a river... This has been done to provide for a sample that is business agnostic, and allow for the reader to fill in the gap to see how can this technology be applied to his/her business area.[Read More]

CQL, Great, yet another standard....

CQL, a great model for event processing. Take a look at this entry, this provides a tiny summary and some pointers to that new way (well at least for me!) of thinking about processing events in the enterprise....[Read More]

Monday Dec 10, 2007

4/4 XACML SE used from a BPEL process

This is the final entry in the introductory serie about creating service engines. In the first entry, the service engine was created. In the previous entry, we did a simple test.

In this entry, we will call the XACML service engine from a BPEL process, and see how multiple service engines can call each other. 

[Read More]

Wednesday Dec 05, 2007

3/4 - XACML JBI Deployment Module Creation

This entry focuses on the Service Unit creation.

  1. We go over the creation/coding of the JBI deployment module that is particular to the xacml service engine.
  2. Then we create a test JBI module for the xacml engine.
  3. We deploy a composite application that uses the xacml engine.
  4. Finally, we use the SOAP UI plugin in Netbeans 6.0 for testing the engine.
This is the third installment on the series of entries. For the previous entry, please check here.[Read More]

Tuesday Dec 04, 2007

2/4 - Using the SE Wizard of NB 6.0...

This is the second entry in the XACML SE creation. This entry describes the usage of the SE Wizard and the modifications that were done to the generated code. You can find the previous entry here.
[Read More]

Open ESB Acronyms...

Tags: , , ,

In multiple posts, I'll be using a lot of acronyms, most of which are relevant solely to JBI and Open ESB. So, to avoid duplication, I'll be maintaining a list here, of my own definitions. They are in no way, shape or form the real definitions, but they are close enough as working definitions.

  • SE = Service Engine
  • SU = Service Unit (This is also known as a JBI Module in Open ESB)
  • BC = Binding Component
  • NMR = Normalized Message Router
  • SA = Service Assembly (This is also known as a Composite Application in Open ESB)
  • JBI = Java Business Integration

Saturday Dec 01, 2007

1/4 - Getting involved in JBI, an XACML engine v1

Introduction to creating a Service Engine. This describes the initial motivation, and the roadmap ahead of creating an XACML SE. The XACML SE will be based on the jar file provided by the Sun Labs, that can be found at the sourceforge.

[Read More]