- This is a very interesting story about the the converging of the concepts closely related concepts SOA and Web 2.0.
"The core principle of SOA is the decomposition of software into sets of
services which can be used and composed into new applications that have a very high level of integration and reuse.""Web 2.0 is more of a pragmatic extraction of what actually works best in online product design than a rigorous a priori engineering exercise."
A difference that is still there is that Web 2.0 sees data as the most important, in SOA services are the most important. The diagram in the post nicely shows the relationship between the two. It mentions also that it is interesting to see that the market chose REST as being web-oriented, not SOAP.
Related to this, note this interesting new tool from Microsoft: Astoria (download). It allows any ADO compliant database (e.g MS SQL Server) to be accessible via REST, thus web-enabling it. - Here is an interesting extract from Mark Hansen's book "SOA Using Java Web Services". It explains REST and SOAP and their differences. Then it describes the tools and techniques for implementing SOA Java components using the REST paradigm. As an example the integration of an Order Management System (e.g. SAP) with a Customer Service System (Siebel CRMA) is used. Both the client and server side are explained. The example is shown w/o JWS and then with JWS. For many decisions an explanation is given, some are very basic though (e.g why not to store redundant data). Data transformation via XSLT using the JAXP API is also described.
One major tip: even for REST, use XML Schema (XSD) to define the message structure interface, such that client applications can comply to the valid message structure. - A quick look at Guice , the dependency injection framework by Google. It discusses a google tech talk about Guice and then goes through some examples on how you would configure in Guice vs Spring. In Guice you configure everything with annotations instead of XML. The writer isn't convinced this is better, neither am I.
- A short description and list of 15 free SQL injection scanners. Amongst others for MySQL, MS SQLServer, Oracle.
The best articles and links to interesting posts for technical team leaders building sophisticated websites, applications and mobile apps. Think about: software architecture, hardware architecture, design, programming, frameworks, scalability, performance, quality assurance, security, resolving issues, fixing bugs and Android.
Saturday, May 26, 2007
Best of this Week Summary 20 - 26 May 2007
Tuesday, May 22, 2007
A perspective on Apollo vs Silverlight vs JavaFX vs Flash/Flex
Introduction
In the last few weeks, quite a few RIA framework announcements and/or rebrandings were announced:
- Apollo from Adobe, which is a runtime to be able to enable richer RIA applications on your desktop.
- Silverlight from Microsoft, which is a browser plugin to provide a richer RIA browser experience.
- JavaFX from Sun, which is also a a runtime to enable richer RIA applications on your desktop.


These three frameworks are all in some way also related to Flash/Flex from Adobe.
In this article, I'll be making a first stab at comparing these four frameworks. It should help you to get some perspective and initial understanding on the differences and the similarities.
The goal of all these frameworks is be able to build Rich Internet Applications more easily and to make the user experience as rich as possible. Currently a lot of this kind of functionality is being built with AJAX (asynchronous Javascript, CSS, DOM manipulation and XML) and Flash/Flex. Manual construction of applications with the four AJAX components is quite a pain, and thus companies are trying to create the silver bullet for easy creation of RIA applications. Creating applications with Flash/Flex is relatively easy and makes the applications really rich, but it is vendor-specific (Adobe). Note that recently Adobe made Flex open source (note that this is not the same as the Flash runtime, which stays closed source). Some of the newly announced frameworks are more open source (JavaFX) than others (Silverlight).
To make the comparison easier, I've created a table that lists different aspects of the frameworks I found interesting to have detailed out, and for each of those aspects, how the four frameworks fit in.
Apollo | Silverlight | JavaFX | Flash/Flex | |
---|---|---|---|---|
Definition |
|
|
|
|
Status |
|
|
|
|
Runtime |
|
|
|
|
Technologies |
|
|
|
|
Platform |
|
|
|
|
Licensing |
|
|
|
|
Interesting links | Sample Apollo apps: Apollohunter | Open source JavaFX wiki: wiki |
- Are users willing to wait for 4-6 MB downloads?
- Are we now again moving away from making the browser the platform? Notice that Mozilla is extending the browser even more via XUL to become one RIA platform. See here for some more info on that.
Finally, here are a few other interesting developments in this area:
- The Mono project is going to try to port Silverlight to Linux.
- MS just announced a new Silverlight app Popfly that allows users to create mashups (like Y! Pipes).
- A lightweight JRE for Java 6 is indeed not a rumor and thus the amount of runtime to download is significantly reduced.
- Rich Media Platform Comparison: : a table showing the comparison between Silverlight, .Net and Flash/Flex.
- Silverlight vs. Flash: The Developer Story: A lower level comparison of the two, with Silverlight being the winner for the author.
- JavaFX in perspective: some good points about JavaFX relative to Silverlight and Flash/Flex.
Update 02 June 2007:
- This week of course Google Gears came out. Here's shortly how it relates to Apollo and Dojo offline. Google is working with Adobe to get it integrated with Apollo. Together with Adobe and Mozilla it is also trying to make Gears an industry standard. Note that you can use each of the 3 components also seperately, you don't need to only use it for writing synchronzation software.
- Here's another overview of these three and how they relate: Apollo, Silverlight, Gears.
- Here's a good landscape overview of RIA tools and why Flex could be a good way of building user interfaces, even to Java developers.
Friday, May 18, 2007
Best of this Week Summary 12 - 19 May 2007
- A "Performance Evaluation of Virtualization Technologies for Server Consolidation" which compares Xen and OpenVZ virtualization. Published by the University of Michigan and HP labs. One of the tentative conclusions seems that OpenVZ is scaling better than Xen.
- The Java Performance Group homepage regarding the whole application stack: from hardware level via the desktop to grid level.
- A bit older this article which I discovered this week. It gives a good short overview of the Service Component Architecture (SCA) which is getting more and more attention these days, for example at JavaOne. This line summarizes it all:
"SCA emphasizes the decoupling of service implementation and of service assembly from the details of infrastructure capabilities and from the details of the access methods used to invoke services. SCA components operate at a business level and use a minimum of middleware APIs."
The specification supports implementations written in languages like Java and PHP, and also XML-like languages like BPEL and XSLT. Even SQL and XQuery are supported. The complete specifications are available here.
An open source runtime and Eclipse plugin are also listed. - The MS official final version of the IE toolbar has been released. Not as near as much possibilities as FF's Firebug and WebDeveloper, but it's a start! 624K so not that big. I managed to get IE7 crash 2 times in 60 seconds... This is not really workabable. This is the link to the blog, which contains a link to the download page.
Thursday, May 17, 2007
Comparison CSS cleanup tools
Wednesday, May 16, 2007
Sun announces JavaFX at JavaOne 2007
Most promising of it all looks the scripting language (code name was F3).
Here's the homepage of JavaFX btw.
This post is *not* so sure a new language is the way to go. I think an abstraction layer in some form (new language or library/components layer) is definitely needed. Maybe not in this combination as Sun proposes it, but we need more abstraction to be able to build RIAs more easily, less error prone.