mercoledì 24 gennaio 2007

Web 2.0 vs Client/Server

Web 2.0 is the trend! Any application developed from 2-3 years to this part is web based; I've seen even intranet applications developed with a web based interface, even if this meant a drastic reduction of performance, and a even more drastic increase of development time. Web based application are, from the administrative point of view, maintenance free, as they don't need to be deployed over the clients: I think this is the most relevant feature, and the only reason why a intranet application should be development as a web application.

But there are some good news from the traditional client/server side too: technologies like Java Webstart can drastically decrease the administration effort in distributing/maintaining applications. And also, Java code can be run on different architectures, just like web pages can be view by browsers running on almost any machine; still, I believe that client/server systems are most efficient, easier to develop, most capable on the user interface.

Surely every time I need to develop a new system, I carefully analyze pros and cons of the two models.

sabato 20 gennaio 2007

Open Terracotta

Open source and the low cost of hardware capable of advanced features - such as main boards with integrated RAID controllers, multi core processors, faster and larger RAM modules (features that few years ago were offered only on high level systems), are now offering the chance to get impressive fault tolerance and clustering features on non-dedicated systems; lots of applications like web services could gain great benefit from this kind of features, and even new approaches to normal office applications became possible: with the reliability and performance of a high end system, it is possible to implement departmental web implementations of word processors or spreadsheet with a low enough cost to compete with the licensing cost of traditional office suites. Up to now I've been thinking of cluster able software as a clustering engine (an API) used in a custom designed application: something like an application with transactions or similar constructs used to keep consistency through the various nodes of the cluster. Up to now.
Yesterday, Jonas Boner from Terracotta Inc., presented in occasion of the Turin JUG meeting, gen. 2007, Open Terracotta. Please, have a look at it! terracotta.org.
One important thing Jonas was saying is that Open Terracotta is proposing a model of clustering/replication of enterprise Web 2.0 applications based on two layers: the usual database, which is responsible to maintain clustering/replication for the persistence layer - that is the data you usually store in the DB, and Terracotta, which is aimed to maintain consistency through cluster nodes for the Session Data – that is the data about the user logged in.
I think this kind of approach is the most effective, and fits perfectly in a Web 2.0 application. But what about other contests? First of all it's important to focus on the reasons that are leading to a clustering choice: it is a matter of scaling capability, fault tolerance, or both? It's very important to understand that in the case fault tolerance becomes a concern, a “software only” solution could not be sufficient, exposing for example the network layer as a SPOF; in this contest, software becomes part of the system (and not the system itself), so the whole system must be designed as a fault tolerant composition of software AND hardware. Assumed this, I still see in Terracotta a great and easy (for the developer) way to write software focusing on the business domain instead of having to deal with the technical detail of managing replication consistency.

Java was the first language I used with an integrated concurrency model (synchronized keyword, wait() and notify(), the new concurrent package): I thought this was such a leap forward for programmers, but yesterday we discussed the “what if” scenario in which Terracotta's heap consistency clustering approach is plugged inside the open source JVM; this could lead to new great applications! Imagine how easy could be to implement a chat system, or in general any kind of application (client based or web based) using shared informations. But personally I think that Sun doesn't want to plug into the free VM features that it's willing to sell to its customers!

giovedì 18 gennaio 2007

.NET Part 2

Some more on .NET: I've started the “build your first web application” part, and I'm quite impressed: ISS behaves like a servlet container, and can handle both C# and VB code behind. And it's quite responsive, at least in a “single-user developing and testing” situation. It integrates quite easily with Ms SQL Server, but the most impressive thing (at least for me, as I've always developed web apps with Java and with tons of frameworks or library not supported by the IDE) is the capability of editing web pages WYSIWYG. And still... all this with the “Express” editions, which are free... Naturally all this works well rendered with MS Internet Explorer, and the question is: “Will it work with other browser/OSes?”. Well... try going on “msdn.microsoft.com” with firefox and linux... guess what: it works!

venerdì 12 gennaio 2007

JUG gennaio 2007

Venerdi' 19 gennaio 2007 sera... da segnare in agenda: si va tutti al JUG! Vietato mancare!

http://www.jugtorino.it/vqwiki/jsp/Wiki?MeetingGennaio2007

lunedì 8 gennaio 2007

Imperdibile!

Ubuntu e' diventato obbligatorio!!!
Ubuntu Satanic Edition: Buzz, non hai piu' scuse, questo lo *DEVI* installare!

martedì 2 gennaio 2007

Wolfenstein: Enemy Territory

Ma che bel gioco aggratis!
Ecco qualche link:
Qui si puo' scaricare il gioco
Qui anche, e non dimenticate la patch 2.60

E poi il manuale

I bot per allenarsi
Ed infine, 62.149.202.164 per giocare con noi!!
Ricordatevi di aggiornare il PunkBuster (c'e' un'eseguibile nella directory pb - che sta per punk buster, non piciu bastard! ;)