Hey guys,

With the first release out the door (incidentally, did everybody already check 
out the download page?), it's time to start working on some new features. One 
important thing is that I'd like to more tightly integrate ACE into development 
environments so you can start using it right away (instead of it just being 
used in production). Actually, I've been discussing this a bit off list with 
Bram, and I'd like to summarize the ideas we have and invite everybody here to 
provide feedback.

Using ACE during development basically means we want to make the development 
cycle the same as the one used later during testing and production. That means 
we want to run a local ACE server and a target that basically gets updated 
every time you "save some change" and "build new bundles". How you do that 
obviously depends on the IDE and build tooling you use and there's lots of 
different ones out there. In the end they all produce one or more bundles 
though, and we'd like ACE to import those immediately and deploy them to the 
local target.

We can already run an ACE server and target on localhost, so that's our 
starting point. The server could be launched independently of the IDE you use, 
the target we might want to launch inside the IDE to facilitate easy debugging 
and feedback inside the console of the IDE.

As your build cycle will already produce an artifact on the local machine, we 
don't really need an OBR in this case. From within the ACE server we can 
directly point to a file URL. That saves us one extra copy step. So as soon as 
bundles have been built, we want to push them into ACE. For that we'd like to 
provide a REST client API that can either be used alongside the web UI or 
instead of it. Integrating different build and IDE systems based on a REST API 
is probably pretty straightforward, so that's why I think this is a good choice 
here.

As soon as new or updated bundles have been added (and features and 
distributions defined) we can commit the changes and need to notify the target 
that there's something new to install. For that the server needs to send this 
notification (which for the general case might be troublesome since the server 
might not be able to reach the target, but in this case is no problem). The 
management agent on the target can then listen of these and poll for updates. 
It no longer needs to use the periodic scheduler, so we can disable that.

WDYT? Any thing we're forgetting, can we be even smarter? ;)

Greetings, Marcel

Reply via email to