One of the key tenets of enterprise architectures is that it needs to be sustainable. Being agile is not one of the tenets and in most cases goes against sustainability of an architecture at an enterprise level. Agile Enterprise Architecture is a myth and this is where I and Cay Hasselmann host of Critical Enterprise Architecture Netcast agree upon at least on one of his episodes (I don’t know if his POV had changed recently). Enterprises do not have to be agile especially if it is not sustainable.
Delivery on the other hand is better off being agile. Software project delivery methods such as scrum help get projects in a usable business friendly state vs less agile waterfall approaches that require big document up front and heavily access controlled and managed tool sets.
Unfortunately, most large organizations get sold on the idea that everything should be standardized down to the level of the tools. In fact SEI-CMM level 3 which the big service companies promote requires it.
Continue reading Delivery vs enterprise level tooling
The Curam Runtime has two things that it needs to have executed along with WebSphere: xmlserver and batchlauncher. In order to set this up in Windows we use the nssm and the Windows Task Scheduler.
Continue reading Curam Runtime on Windows
When developing using web services, we tend have different endpoint URLs for development, test and production. When developing Java EE apps, the best practice is to separate environment configuration from the application to the deployment process (a pattern I rarely see in practice unless already architected in like Curam).
In terms of facepalm moments is when I see an application try to manage the connections to the web services rather than letting the container do it.
Continue reading Setting the endpoint for web services
The process to set up Jazz Build Engine which is the continuous integration component to Rational Team Concert is much like setting up the Transient Name Server as a service. The advantage is that the JBE can start when the system restarts automatically. This post shows how to do this task.
Continue reading Running Jazz Build Engine as a service
In an earlier post, I had described how to disable SSL certificate checks for connecting to servers that may not have a properly signed certificate. This normally happens when you are connecting to enterprise development/test systems where they never bothered keeping the certificates in order or didn’t purchase from a well-known certificate authority. However, the process I had described will not work with JAX-RS Client API because JAX-RS (unlike JAX-WS) does not make use of the default connectors which is a good thing.
Continue reading SSL Certificate bypass for JAX-RS
In Programmers (a Stack Exchange site) they had posted a question Should we avoid object creation in Java?. Personally my gut feel is we should, though the most popular (and arrogant) answer which is the selected answer by the OP indicates that it’s pointless. He even has references on how the GC works and makes points on how it would work. I personally prefer real tests to indicate how things would work at a micro-level using Caliper just like I did for indenting strings for my Java Emitter Template NG project.
Continue reading Should we avoid object creation in Java?
Java EE 6 has been around since Dec 10, 2009 and has been supported by one of the slowest-to-implement-standards application servers, WebSphere since version 8 on 17 Jun 2011. That’s a good few years now and it is established even in the slowest to change enterprises. Every iteration of Java EE promotes the movement of code away from the application to the container to reduce the amount of code that needs to be managed by your development team.
Unfortunately, changing things around does take effort so for the most part I don’t really agree with taking advantage of the latest unless it’s a clear rewrite from scratch. However, that does not prevent people from still doing the same mistakes over and over again which will make me facepalm when I see things, here’s a compilation of them.
Continue reading Things that make me facepalm on JEE development
I use the Google Analyticator plugin to inject Google Analytics capabilities on my blog. Google Analytics provides an additional view for demographic data such as age and gender. To enable it is a a one line change that can be added to Google Analyticator settings.
Continue reading Enabling demographics data in Google Analyticator
In a corporate Windows environment you’re practically subjected to periodic reboots due to system updates. At the same time for Curam development, you need to use the Transient Name Server. It would be nice if it were running as a Windows service that starts up on boot so it’s one less thing to remember when you’re doing development. This provides instructions on how to do it.
Continue reading Running tnamesrv as a service
Among the tech-savvy peers is the notion of leaving traditional phone systems for cheaper VOIP systems. I am one of the hold-outs in that I still have a POTS (plain old telephone system) line at home, not even a Rogers Cable Home Phone. Why? 911.
Continue reading Why I still have a land line