- Lombardi being a BPM solution of which some of my colleagues are quite enthusiatic.
- Sterling is more an "old" player in the B2B space with products such as Gentran for B2B communication and ConnectDirect for managed file transfer. But Sterling is also an Integration Service Provider (Garnter) or still call it a Value Added Network? IBM sold its VAN to GXS quite a while ago.
- Cast Iron Systems which is a new kid on the block, with a solution specificially targeting cloud integration. Also available as an appliance. And Cast Iron was rumoured to be developing a cloud based integration offering.
Tuesday, June 15, 2010
B2B market
IBM keeps acquiring other companies:
Monday, June 14, 2010
Devoxx 2010
Already confirmed speakers in the cloud area are Michael Coté, John M Willis and Georges Reese, author of the great book "Cloud Application Architectures", now at EnStratus.
Wednesday, May 26, 2010
Applications for the Google AppEngine
Google is creating a market place for applications running on the Google App Engine. See the recordings of the "Google Campfire One".
Note: very good video quality (720p) of the recordings
Note: very good video quality (720p) of the recordings
Friday, May 14, 2010
OODBMS and pre-EJB AppServer
The market keeps on moving: SAP acquires Sybase etc. But one name attracted my attention: GemStone being acquired by VMWare/SpringSource (next to RabbitMQ, Hyperic, ...).
Time flies: I remember Gemstone as a vendor of OODBMS and application server. On the OODBMS side there were also Versant, ObjectStore (eXelon --> Progress). The list of applicaton servers - just before EJB's took off - is much longer: Netscape Applicaton Server, Forté, Jaguar CTS (Sybase), Tengah (became WebLogic), IBM Component Broker, ATG Dynamo, Novell Silverstream, Novera, ... Had forgotten about most of them. Another such "hidden" company that I recently encountered is Pramati.
Time flies: I remember Gemstone as a vendor of OODBMS and application server. On the OODBMS side there were also Versant, ObjectStore (eXelon --> Progress). The list of applicaton servers - just before EJB's took off - is much longer: Netscape Applicaton Server, Forté, Jaguar CTS (Sybase), Tengah (became WebLogic), IBM Component Broker, ATG Dynamo, Novell Silverstream, Novera, ... Had forgotten about most of them. Another such "hidden" company that I recently encountered is Pramati.
Thursday, May 13, 2010
Flashmob - Ride your bike in Brussels
Sunday, April 18, 2010
Java: execute program without blocking
A long while ago that I had done some Java programming... How to run a program from within Java in a decent manner. While looking around for some sample code, most solutions use the Process.waitFor() method to wait for the process to terminate. But that will usually block forever as process writes data to stdout or stderr and nothing reads that output.
One option is to use a separate thread to read stdout/stderr. I opted for an even simpler approach: temporary files:
execCommand = execCommand + " > " + stdoutFile.getFileName();
execCommand = execCommand + " 2> " + stderrFile.getFileName();
// command/program > stdout-temp 2> sterr-temp
Process p = Runtime.getRuntime().exec(execCommand, null, currDir);
int exitValue = 0;
boolean isRunning = true;
int waitSeconds = 30;
while(isRunning && (waitSeconds > 0)) {
try {
exitValue = p.exitValue();
isRunning = false;
} catch(IllegalThreadStateException e) {
// process is still running, wait 1 second
try {
Thread.sleep(1000);
} catch (InterruptedException e1) {
// ignore
}
}
waitSeconds--;
}
if (isRunning) {
p.destroy();
exitValue = 9999;
}
stdoutFile.delete();
stderrFile.delete();
One option is to use a separate thread to read stdout/stderr. I opted for an even simpler approach: temporary files:
execCommand = execCommand + " > " + stdoutFile.getFileName();
execCommand = execCommand + " 2> " + stderrFile.getFileName();
// command/program > stdout-temp 2> sterr-temp
Process p = Runtime.getRuntime().exec(execCommand, null, currDir);
int exitValue = 0;
boolean isRunning = true;
int waitSeconds = 30;
while(isRunning && (waitSeconds > 0)) {
try {
exitValue = p.exitValue();
isRunning = false;
} catch(IllegalThreadStateException e) {
// process is still running, wait 1 second
try {
Thread.sleep(1000);
} catch (InterruptedException e1) {
// ignore
}
}
waitSeconds--;
}
if (isRunning) {
p.destroy();
exitValue = 9999;
}
stdoutFile.delete();
stderrFile.delete();
Saturday, April 17, 2010
Amazon pub/sub in the cloud
Amazon keeps extending its cloud offering. They have just added Amazon Simple Notification Service (SNS). SNS is a publish/subscribe mechanism.
Integration-As-A-Service
As explained in earlier posts, I expect Integration-As-A-Service to become more important. One of the larger players (Amazon, Google, EMC, Cisco, Microsoft, ...) may one day come up with a wonderful solution for Business-2-Business communication between organizations.
When I first learned about Simple Queuing Service of Amazon back in 2006, I intially thought that SQS could serve as a transport mechanism for B2B communication. But that didn't work out. As the message size of SQS was very limited, data first had to be stored on S3. Authentication and authorization were also very limited.
So I looked around in the SNS documentation to see what SNS actually is and see if it can serve as a basis for B2B communication. Amazon thinks SNS is usable for B2B or application integration:
Nice and interesting, but not good enough... In particular the message size remains a blocking factor.
Questions left:
Integration-As-A-Service
As explained in earlier posts, I expect Integration-As-A-Service to become more important. One of the larger players (Amazon, Google, EMC, Cisco, Microsoft, ...) may one day come up with a wonderful solution for Business-2-Business communication between organizations.
When I first learned about Simple Queuing Service of Amazon back in 2006, I intially thought that SQS could serve as a transport mechanism for B2B communication. But that didn't work out. As the message size of SQS was very limited, data first had to be stored on S3. Authentication and authorization were also very limited.
So I looked around in the SNS documentation to see what SNS actually is and see if it can serve as a basis for B2B communication. Amazon thinks SNS is usable for B2B or application integration:
Application integration: Amazon SNS can be used in workflow systems to relay events among distributed computer applications, move data between data stores, or update records in business systems. For example, in an order processing application, notification messages may be sent whenever a transaction occurs; a customer places an order, the transaction is forwarded to a payment processor for approval, and an order confirmation message is published to an Amazon SNS topic.
Some facts
Some facts
- Messages can be published over HTTP, HTTPS, E-mail or SQS
- Proprietary solution/mechanism, not based on any standard (no AS1, AS2, SFTP, WS-Notification, WS-Eventing, ...)
- Messages are (again) limited to 8KB. Just like SQS: too small.
- Authentication is based on AWS accounts, so also every subscriber requires an AWS account, hindering factor.
- Messages are pushed, not polled. This is good for performance. For polling, use SQS.
- But when pushing, the subscriber must expose a web service or mail account. How to secure this: no authentication from Amazon to endpoint receiving notifications; no basic auth, no support for client certs, ...
- Messages are signed by Amazon. This is good, very good. Signing is based on HmacSHA256.
Nice and interesting, but not good enough... In particular the message size remains a blocking factor.
Questions left:
- What happens if messages cannot be delivered for a longer periode of time? E.g. when a subscriber disappears?
- How does a message that is published over HTTP exactly look like (signed, JSON)? What parameters are passed in the URL?
- Can an SSL endpoint with self-signed cert receive notifications?
- What if SSL cert of endpoint is expired?
- Are mail messages signed and if yes, how?
- How and when are messages actually persisted?
- The publish service isn't idempotent it seems?
Subscribe to:
Posts (Atom)