← Back to team overview

acmeattic-devel team mailing list archive

The Web Frontend, the native application Client, the middleware and The Backend

 

Well, I couldn't make the subject as interesting as something like
'The lion, the witch and the wardrobe :P

Please bear with repetition and blunders.

I will be discussing what might be the practices/design-patterns I
have been following for sometime and what I have observed at many
places for an web application backends. Also since I am seeing a lot
of jargon, let me make assumptions of initial jargon by broadly
classifying the four components as per my understanding so far.

1) The Core request processor or the core, which lives on the server
side. The main functionality is to handle disk operations, handles
revisions. Please add more stuff here like how we are going to handle
versioning for binary format and so on . This would be in python

2) The Middleware: Irrespective of the client platform/application, we
hit this layer, which essentially is a API layer to delegate all calls
made to it to the core after enough security checks, gracious error
handling and so on. This is the end point that is available to all the
clients, one web application that can take any related request and
serve back. This could be in Django.

3) The native application or the client app , is the one written in
python handling multiple platforms. Has rich funtionality like
automatic file sync closely tied with the native platform.

4) The Frontend Browser UI or the FE simply, is a browser based thin
client to be a minimal substitute for the native application with as
much features that can be supported by browser predominantly
javascript based.

Features I see in the approach:
1) One middleware layer means better tested code, lot of refactoring
and code reuse which are all good
2) FE can also be a trusted as javascript can locally encrypt and
decrypt on the client browser instead of temporary file decryption on
the server.
3) FE and native application development can be independent of each
other which is true for the earlier approach as well
4) Making the middleware as Django means we have a really cool
framework which can throw html, xml or json as we please whenever
required
5) Authentication either from client or browser will happen outside
the middleware, keeping the middleware safe from vulnerabilities with
login security later

Please go ahead and divide the work among the components accordingly
as you see fit. I have only listed as far as I have understood.

Thanks

-- 
regards
Suren

http://twitter.com/suren
http://flickr.com/suren_m



Follow ups