Happy New Year (2010), and testability of web services.
This post is about adding the ability to redirect web service calls. This can be used for testing applications, but also for making the web services machine independent.
There is a set of movies also, used to show how to do it, and the source code of the example is attached....
Enjoy!
[Read More]Posted at 09:59AM Jan 06, 2010 by sergeblais in Sun | Comments[0]
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
Posted at 04:09PM Sep 09, 2009 by sergeblais in OpenESB | Comments[4]
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
Posted at 03:12PM Aug 31, 2009 by sergeblais in OpenESB | Comments[0]
IEP now supported! At the platinum level...
Yeah!
Glassfish ESB is now a supported product! And with it, IEP is supported. If you want to see the details for it, take a look at the datasheet. Why is this important? It means that IEP is now a component that you can definitely consider for important enterprise applications. Being supported has a lot of nice aspects, which you can check on the Glassfish ESB site.
So, all IEP fans out there, keep at it.
Note: Thanks to Louis Polycarpou, for finding this information.
Thanks all,
This is a good day...
Posted at 11:51AM Feb 11, 2009 by sergeblais in MySQL | Comments[0]
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
Posted at 10:18AM Feb 03, 2009 by sergeblais in OpenESB | Comments[0]
CEP Example
Hi all,
Just a small note to let you know, as part of the iep introductory workshop that you can find on the open esb wiki, I've just added a small CEP example. In this example, we use two timed events which are confirmed with a third event to produce the output. Said otherwise? The example is two soldiers turning on the key to authorize a missile launch. With the authorization, they have to press the fire button for the out bound event to occur...
I'm definely playing way to many war games.... Well, have fun with it!
Serge
Posted at 12:02PM Jan 28, 2009 by sergeblais in MySQL | Comments[0]
Yahoo Geo Coder Sample...
Hi all,
I created a wink movie, on how to connect to the yahoo geo coder from BPEL in Open ESB. Please take the time to view it, it's only 10 min, and can provide a nice introduction on the development process for a BPEL SA from scratch. The key highlights:
Like I said, very simple and straightforward, provides a nice introduction to a BPEL project.
I hope you like it!
Serge
Posted at 12:44PM Jan 27, 2009 by sergeblais in MySQL | Comments[0]
Need a steaming output to the IEP process...
No, I didn't forget the "r".....
If you have started using IEP by now, You have probably found out that for a complete IEP process, you are required to have a stream output, even if your output is a DB table. When I started, I used to have just a file output for the stream, that I would use for logging.
Well, I found that that file can grow up pretty quickly. So I changed the file output to a JMS output. You can do that by manually editing the WSDL file that is generated by the IEP "compilation". Here is a summary of the modifications I do:
This allows for a decentralized logging of what is happening. The interesting part about using topic, is, if there is no one listening, there is no long log files to clean up.... But if you wish to have a real log, you can always have an MDB that will log the xml message in a database or some other place.
At the bottom of this post, you'll see a file that I keep as a Cheat Sheet for implementing JMS in the WSDL for IEP. Feel free to use it. I deleted parts that are not affected by the binding.... The elements to change/add are in bold...
<definitions targetNamespace="AppName_iep"
xmlns:jms="http://schemas.sun.com/jbi/wsdl-extensions/jms/">
<!-- deleted a bunch of stuff not needed here for this... -->
<!-- http output binding and service-->
<binding name="OutputBinding_SteamingStep" type="defns:OutputPt_SteamingStep">
<jms:binding/>
<operation name="SteamingTopic">
<jms:operation destination="SteamingTopic" destinationType="Topic" transaction="NoTransaction"/>
<input>
<jms:message messageType="TextMessage" textPart="output"/>
</input>
</operation>
</binding>
<service name="OutputService_SteamingOutput">
<port name="OutputPort_SteamingOutput" binding="tns:OutputBinding_SteamingOutput">
<jms:address connectionURL="mq://localhost:7676" username="guest" password="guest"/>
</port>
</service>
<!--end of http output binding and service -->
</definitions>
For the reference to the JMS Binding syntax, go here....
Posted at 04:24PM Aug 15, 2008 by sergeblais in MySQL | Comments[0]
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);
That's all there is to it!
Posted at 09:32AM Aug 12, 2008 by sergeblais in OpenESB | Comments[1]
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!
Posted at 03:00PM Jul 14, 2008 by sergeblais in OpenESB | Comments[0]
RESTing for a moment...
This is an entry into the REST world. I use it to create a MySQL monitoring application so that DB administrators can receive relevant event notifications on their cell phones. While the application still doesn't exist, the key elements in the application will be:
[Read More]
Posted at 11:30AM Jun 12, 2008 by sergeblais in MySQL | Comments[0]
IEP/cql Personal Discoveries...
A small list of one liners on "door opening" realizations about IEP...[Read More]
Posted at 10:30AM Mar 05, 2008 by sergeblais in OpenESB | Comments[1]
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]
Posted at 10:00AM Mar 03, 2008 by sergeblais in OpenESB | Comments[0]
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]
Posted at 10:30AM Feb 28, 2008 by sergeblais in OpenESB | Comments[0]
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]
Posted at 03:30PM Feb 21, 2008 by sergeblais in OpenESB | Comments[0]