Archive for the ‘software’ Category

javax.ws.rest

Thursday, February 15th, 2007

The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 311

I’m sure this will receive a lot of criticisms because REST is the current untamed web stallion out there, but I believe this is a step in the right direction.  If REST proponents want to see an uplift of REST in the enterprise, they need to start standardizing the api’s.  Luckily, the author of RESTlets will be on the expert group.

Does language complexity lead to higher maintenance costs?

Monday, February 12th, 2007

I subscribe to the theory that increased language complexity leads to higher maintenance costs. If you want empirical evidence, Jussi Koskinen has complied some stunning figures when it comes to “legacy” code out in the field. The figure I like the most is:

Studies of software maintainers have shown that approximately 50% of their time is spent in the process of understanding the code that they are to maintain (Fjeldstad & Hamlen, 1983; Standish, 1984).

Anecdotally, I rarely seen the original team that authored the code actually maintain it. The 50% metric makes sense. I think this number is compounded by the feeling that code maintenance does not require a skill set that is equal to skill set that wrote the production release.

For this reason, I believe that adding new features to a language, like Java, will increase maintenance costs down the road. Java is know for be verbose, but it makes it much easier to understand what its intent is. Forsaking this advantage doesn’t make sense financially.

Does Governance equate to automated Event Correlation?

Tuesday, January 9th, 2007

A java profiler that I think offers the best feature/price ratio has pre-announced its new production: JINSPIRED JXInsight - JXInsight Govern. I’m always curious about governance products because the premise is that they’ll somehow make decisions for you.

Just to level set, governance is the process for presenting solutions and deciding which one should be implemented. As a quick tangent, organization specifies who gets to make the decision. I don’t believe these can be implement in computers, otherwise we’ll have a situation like Paul Proteus in Vonnegut’s novel Player Piano.

Getting back to JXInsight Govern, it is a product that does event correlation, plain and simple. It’s similiar to quite a few other products like EMC Smarts, and Jeff Jonas’s NORA, now IBM DB2 Identity Resolution. Esper is an open source library that provides and engine and I’m sure there are a few more (please feel free to leave a comment linking to your product). These are all tools that do event correlation, and yet they don’t govern, so JXInsight Govern is a nice title, but doesn’t necessarily do what it claims. So why allude to governance? What does event correlation and governance have to do with one another?

Data Analysis

Granted, its pre-canned data analysis based on a generalized case, but it saves a system analysts from having to dig into the data to find a trends that are worth reporting. In the hands of an expert system analyst, it provide a baseline analysis to check against. However, it doesn’t render a decision and really can’t be consider a replacement for governance.

Event correlation does not equate to governance, but it does provide additional information so the best decision can be made.

Want a career? Learn WS

Tuesday, November 28th, 2006

This is bound to raise some eyebrows, but I have to agree.  At a business level (unless you work for a technology company) why does one way have to be the “one to rule them all?”

Service Architecture - SOA: Want to be cool? Learn REST. Want a career? Learn WS
REST v WS is pointless from a technical perspective IMO, and will become more so as tooling sets improve.

“Working Backwards” and just plain “Works”

Thursday, November 2nd, 2006

I believe Vogals idea of working backwards falls in line with the SOA messaging about choosing tactical projects to bootstrap the a Service Orientated Architecture.

In the fine grained services approach that we use at Amazon, services do not only represent a software structure but also the organizational structure. The services have a strong ownership model, which combined with the small team size is intended to make it very easy to innovate.

Having a small, focused team provides the necessary drive to see the application completed. What I like about Werner Vogals’ steps for working backwards is that it has nothing to do with programming and everything to do with business justification.

# Start by writing the Press Release. Nail it.
# Write a Frequently Asked Questions document.
# Define the customer experience.
# Write the User Manual.

On the other side of the internet, Ted Neward, talks about the gap between programmers who bicker about interoperability or a single programming platform to rule the world (i.e. Java vs. .Net) when they’re missing the forest for the trees.

“Works” here is a nebulous term, but before the Marketing goons start spinning the term to their best advantage, let’s clarify: “Works” is a simple term, as defined by our customers, not us. “Works” means runs in a manner that’s genuinely useful to our clients and customers.

Architects, managers, and developers, need to realize that at the end of the day, the goal is to deliver software that helps the business accomplish their task more efficiently. Vogals provides some very clear steps to focus a teams objectives.

XQOM: Standing on the shoulders of giants

Thursday, November 2nd, 2006

Looks like Ilya Sterin had an agenda when he was surveying the existing XML database solutions out there.

Enterprise Java Community: Object To XML Persistence Frameworks: Interview with Ilya Sterin of Nextrials

The initial goal of XQOM is basically an abstraction layer that allows the mapping of XQuery expressions and their result sets to the object graph

If I understand what he’s trying to accomplish, then he’s replicating a BEA product called, AquaLogic Data Services Platform full-disclosure: I work for BEA professional services). Currently, BEA does this with XML and uses XmlBeans to create a generic wrapper around the output, but it can be any XML marshaling technology.

To Ilya’s credit, he is looking at the complete end to end solution beyond just database to XML service layer. He wants a complete XML data source to front an XQuery object mapper/model. It’s about time these XML databases had a chance to shine. Perhaps they’ll overcome the hurdles that object database could not.

One thing that is interesting is that XQOM will encapsulate the XML from a XML store to the java runtime. To some extent, Ilya falls into the very group that he attempts enlighten in his previous post.

I think most enterprise developers today look at XML as an intermediary transport format…

XQOM attempts to do just that. Getting back to ALDSP for a second, the XML expose by ALDSP comes from the underlying RDBMs, but really can come from any J2EE sources (RAR, WS, RDMBs) and be expressed in an XML shape or schema. This is essentially creating a virtual XML database. Add SDO to the mix and now there is a read/write runtime that does what Hibernate, JPA, and JDO do very well.

It appears that XQOM will attempt to tackle the “last three meters“. Even better, if XQOM creates the plugins to Hibernate or JDO* to communicate with SDO or an XQuery/XML backed data source, that would go a long way to promoting XML databases and first class, enterprise citizens.

* Update: Looks like the great minds at JPOX are a step ahead of me and it did not fall on deaf ears.

OSGi Alliance News: JSR 277 Review

Monday, October 23rd, 2006

OSGi is the leading framework for dynamic provisioning of modules. Eclipse is built on this foundation and BEA’s microArchitecture framework is built on OSGi as well. The java community wanted to build a standard around it and released it’s first public draft. Since OSGi was not on the initial group, it seems that JSR-277 missed some very valuable input.

Check it out: OSGi Alliance News: JSR 277 Review

More info on microArchitecture

More commentary on 277

RUP, Scrum and XP walk into a bar…

Wednesday, October 4th, 2006

What do all these have in common? They all are methods for delivering quality software. Rational Unified Process is very procedural with attention given to ceremony. Scrum is orientated towards agility. XP focuses on the developers perspective of a process. Either Scrum or RUP can feed this process.

RUP, OpenUP/Basic and Scrum describe processes (sorry XP, you’re bound by a set of principles where the emergent behavior results in quality code) that can be staffed and tracked. My previous post about CMMI, SixSigma and XP demonstrated that agile process can be measured. This is a good thing because businesses are measured on performance so tracking a project whether it is agile or ceremonious is important.

I recently came around the Eclipse Process Framework. At first I thought this is a framework for RUP, but digging in I found that it is a framework for describing methods. Scrum, OpenUP/Basic, and RUP can be modelled in the framework. Once modelled, one can create configurations of any of these models to create a process that suits the needs of the manager. Let me repeat, each model can be used to construct a configuration to suite the needs of the manager.

Let us say, I like Scrum, 5 of the 14 principals of XP and the formality of transition in RUP. I can create a process that encapsulates that configuration and run my project. Different projects can have different configurations. Very powerful stuff.

So EMF provides my models and configurations. Since each configuration is based on SPEM 2.0 (yet to be ratified by the OMG), I can use this as an input for running my projects with a project collaboration tool. Well, the last statement isn’t true…yet. I’ve tried to find a project collaboration software package that will take SPEM as an input without success.

It would be great to publish my method and then be able to track the input/outputs and execution of the method. I’ll either have to build it myself or keep looking.

JavaScript: The new BASIC

Monday, September 18th, 2006

Why Johnny can’t code : Salon Technology

This is a great article that talks about making programming more accessible. I think that today’s basic is JavaScript. With sites like Script.aculo.us and Dojo that provide ready to use, visual code samples, I think Johnny can approach basic and create some truly novel web-based applications.

J2EE Security: State of the Union

Monday, September 18th, 2006

A great discussion about J2EE Security.

Using JAAS in Java EE and SOA Environments by Denis Pilipchuk — Java Authentication and Authorization Service (JAAS) should unify security approaches in Java applications, but it has never integrated very well with Java EE, particularly where representing users is involved. Denis Pilipchuk looks at the current situation, the compounding issue of SOA, and assesses future directions for JAAS.

JAAS was originally intended for client authentication for the JavaSE platform. It has be hi-jacked by the application server vendors, for good reason, for use on the server side.

There is still a long way to go for J2EE security. It has the difficult task of taking on an enterprise’s security policies and enforcing them programmatically…a task that cannot be taken lightly. XACML and SAML go a great distance for describing a security model, but are relatively new. The J2EE specification needs to incorporate it as soon as possible so enterprise security can thrive.