Brian began developing applications for the Internet in 1995, and has continued to architect, design and develop Internet software for the last 11 years, including projects for IHG, IBM, Brighthouse, and Cox Target Media (Valpak).

Here he shares his thoughts and opinions on Internet Software Architecture and Development, chronicles his current projects and areas of research, and give tips and tricks he discovers along the way.

Architecture



What type of data should an Ajax call return?

This is a good post on The Ajax Response, discussing if it should be XML, HTML, or JSON. I personally think under no circumstances should it be HTML, or anything that includes markup. That violates the principle of separating the content from the style and it prevents reuse, by yourself and others.

I think deciding between JSON and XML is going to depend on your situation. XML is much more universal. With XML, you can create Web Services from your back end, and call them for display in PHP, JSP, and with Ajax. That Ajax call you are making today maybe a non-Ajax call you make later.

Google Suggest is a prime example of silliness. That data response is completely unusable in any other scenario. Perhaps, knowing Google, they have done this on purpose to prevent others from using that feed as freely, but it could be a handy service to offer and implement in other locations. The way Google has chosen to implement it, would require Google to have many versions of that response, for multiple uses.

With the rare exception, when you serve up data from your back end, think in big picture terms of making that data available to all your front end applications, and then apply style (HTML, CSS, etc) to it, once the data is in the front end.

UPDATE: Ignore my reservations about HTML in AJAX responses and see my followup post: AJAX Returning HTML (change of opinion).

Can an Enterprise Architect innovate simply?

Ironically, the very existence of an Enterprise Architect may result in your company’s IT system being anything but innovative and simple. Is it innovative to use AJAX because it’s cool? Is it simple to use EJB’s because your IDE has a nifty wizard for them?

I’m not down on the need for an Enterprise Architect - that is how I would describe myself. Yet, companies need to be really careful when they hire one of these that they don’t end up with architects who are so up with the latest technologies, that they become consumed with using them at every turn, even when not necessary (and I would classify most of the new technologies as unnecessary for the vast majority of projects.)

See my post on the costs and overhead of adopting new technologies. Far too many companies have had their software over architected, never benefiting from it, and in many cases having it re-designed when the next architect is hired.

I don’t disagree with anything in the original post, but I’ve seen this technology abuse so much in this field, and seen first hand how much it costs companies, that I also have to add my word of warning.

So the answer to the question of this post, is most definitely yes, that’s the entire reason for hiring one, however, with a big condition added, which is, the company should not qualify the candidate simply for their knowledge of all the technologies out there. There needs to be a sound and conservative approach to software architecture that will prevent the architect from over complicating the solution.

Andreessen: PHP succeeding where Java isn’t

While I’ve been working in Java for the past 7 - 8 years, I definitely do not label myself as a Java -loyalist. I’m an Internet Application loyalist, and I want to do whatever it takes to get the apps done right and done fast. I agree with Andreessen’s statement that Java’s complexity has grown by leaps and bounds. The learning curve has become too steep, and many IT departments are finding it difficult to train an employee in all the technologies needed to go in and make a simple change to a module on their web site. When you have to know Spring, Hibernate, Struts, Tiles, SQL/RDBMS, and make edits within all these technologies in order to add one field per the client, it becomes utterly ridiculous.

It may be fun for us developers, and we love all the separation of the various layers of the application, but it’s no good for the client, and that’s who pays us. So we as Architects, Analysts, Designers, and Developers better come up with something that provides for much faster turnaround time.

« Previous PageNext Page »


Close
E-mail It