Skip to content

A sketch of Adobe Flex Architecture capabilities

I am evaluating Adobe Flex technology to do rich internet applications. Sometimes a picture is worth a thousand words: so in the following I sketched an overview of Flex programming capabilities.

Diagram focuses on how to create a Flash Application (compiling MXML and Actionscript files using the free Flex SDK) and on what kind of interactions a Flex-made application can perform with external systems.

Flash.png

Some starting (and incomplete) references:

  • Protocols
    • AMF (Action Message Format) used for serializing objects [link]
    • RTMP (Real Time Messaging protocol) used for messaging [link]
  • Project & Products
    • Adobe Flex Data Service (renamed in Adobe Lifecycle Services) [link]
    • Open AMF [link]
    • Red5 Flash Server [link]

Worth Printing #1: REST introduction

Worth Printing is a new series of posts dedicated to technical articles and blog stories which are worth of printing for easy reading and relaxed brainstorming. My goal is to propose some pills of good information from the whole mess of the Web.

In this first post I suggest an interesting introduction of REST made by Stefan Tilkov.

Link: http://www.infoq.com/articles/rest-introduction

Adopting OSGi as architectural asset for internal development

n this article I’ll explain how many benefits can be obtained using a component oriented approach for software development adopting the OSGi model as the enabling component model.

A lot of team practices from the software engineering community can be used to reduce and to ease software development. There is another set of practices that lies at the architectural level and can be also adopted successfully for daily software development. One of these practices is the adoption of a modular component-oriented approach to software development relying on a formal component model.

One interesting, complete and innovative component model is the OSGi (Open Service Gateway Initiative) service platform. It is lightweight in contrast with EJB, it supports the full software lifecycle: from development to deployment and it can be used as the basis component model for Java Development. There are several advantages that can be obtained through the adoption of OSGi

Enable truly component development. Building componentized software is a bizarre thing. It’s conceptually very simple, but in practice it is usually quite difficult. It requires forethought, discipline and consistency. This is certainly something that is more difficult to achieve in large systems. OSGi offers a component model that solves most of the basics problems related to components: dependency tracking, version tracking, service binding, …

Continue reading ›

Why Software Patterns are important

There is a sounding question that I started investigating many years ago. The question is: “How to design software?“. The hard side of this question is that software design and in general software development is fundamentally hard.

As Fred Brooks suggests in his book is: “Complexity of software is an essential property, not an accidental one“. In other words software development is about managing complexity and the goal of a team is to build the illusion of simplicity.

I agree with Grady Booch when he writes in his paper that the:

“difficulty of design lies in disclosing which design and architectural decisions should be used to best balance the technical, economical, business, political and emotional that swirl around every software intensive system”.

To put in other terms as Booch continues:

“the problem of design is NP-complete“. An optimal solution that balances forces exists but it is not computable. “So we have to accept a compromise and selecting then a good enough solution for our design problem“.

Continue reading ›