

Ask HN: Advice on an Idea - srid68

I am trying to create a web framework which assembles, configures and links independent components to create complex web applications.<p>Basically I find that if I have a meta data definition of a context, what components to load in that context and what properties to set on the components and the links between the components i can assemble any application.<p>The framework reads the above meta data and constructs the application.<p>Why is there no such framework to compose applications at component level instead of object level.<p>I have see vertical constrained applications like Popfly, Webbly or Wuffo implement similiar concept, only those are not generic component assembly framework.<p>Has any one come across such a framework?<p>Will not a Assembly oriented product development where there is a clean separation of Assembly from coding will make us do complex application.<p>Any advice would be much appreciated.
======
roam
Such frameworks do exist. Spring, amongst others, allows you to do that in the
Java world (<http://springframework.org/>).

Edit: because a simple link to the website won't tell you a whole lot about
the idea behind it, here's a shot at explaining the basic premise of the core
of the Spring framework.

Instead of hard wiring objects, you let Spring handle it for you through
dependency injection. You simply specify that you want an "authentication"
object and the framework will go ahead and look it up. Whether it's an LDAP
authentication object or something for a different backend is determined by
the context, which you can specify in XML or annotations.

------
jacquesm
I think that one of the major objections to such a framework would be that it
would be difficult to create a reliable system when the components are hosted
in so many different places with each of them being a point of failure.

I had an idea very similar to yours a while ago (I called it 'softbricks'),
but I never could find a way around the reliability issues.

You're basically constructing applications from widgets that can be hosted by
any number of parties, if you figure out a way to make it reliable I'm fairly
sure you have a winner here.

There are 'object brokering architectures' that come close but none give you
the kind of functionality that I think you are going for.

~~~
srid68
Sorry may be I did not explain it clearly. I am not try to do SOA, but more as
an enhancement to MVC.

What I want to build is a normal application, like suppose I want to build a
authentication system, I will have a display component, validation component
and a securit provider component, data store component. Each of these
components will be independent but the framework will load these components
and will connect them together to implement final functionality.

What will be the benefit for developing using this component approach will be
reusability and changeability.

Another advantage will be that I can change the Metadata and rewire the
components to implement different functionality for certain user groups.

Since the framework language of assembly is very simple, namely, Define a
Context, Add Components into that Context Configure Components in that Context
Link Components in that Context

I believe this will cleanly separate assembly from coding of the component but
increase the productivity and relibility of the final application feature.

What you have suggested is the components are distributed, which creats a
reliability and connectivity problem. What I am trying to do is developing
instead of a single monolithic application, why we cannot split the
application into individual components and only the framework will stitch this
together to give the final functionality.

Do you think such a framework will be useful?

