Fwd: Amber + Aida?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Fwd: Amber + Aida?

Janko Mivšek
We have some email bouncing problems with Aida on GoogleGroups, so I'm
forwarding Sebastian's post here manually.

Janko


---------- Forwarded message ----------
From: Sebastian Sastre <[hidden email]>
Date: Mar 4, 5:11 pm
Subject: Amber + Aida?
To: Aida/Web Smalltalk Web Framework


Hi guys,

if I understand things right Aida is REST and Amber <http://amber-
lang.net/>[1] is hungry of a REST server-side counterpart.

There is also this Seaside REST<http://code.google.com/p/seaside/wiki/
SeasideRest>thing [2] and even
Kaliningrad<http://gemstonesoup.wordpress.com/2011/10/08/kaliningrad-
developing-w...>[3] for developing Amber and persist code in the
server side.

This all makes sense.

So, here my question is:

given that Aida is *a natural born REST server*, do we have an Aida
option
to work with Amber?

any experiences to share? ideas on how to do it? advantages found in
Aida
vs. SeasideRest for this goal?

sebatian

o/

[1]http://amber-lang.net/
[2]http://code.google.com/p/seaside/wiki/SeasideRest
[3]http://gemstonesoup.wordpress.com/2011/10/08/kaliningrad-developing-
w...

_______________________________________________
Aida mailing list
[hidden email]
http://lists.aidaweb.si/mailman/listinfo/aida
Reply | Threaded
Open this post in threaded view
|

Re: Amber + Aida?

Janko Mivšek
Hi Sebastian!

I think your question can be divided in two questions:

  1. REST API support in Aida
  2. Amber and Aida integration

1. REST API support
-------------------

Aida is REST-like framework respecting the Central principle of REST [1]:

"An important concept in REST is the existence of resources (sources of
specific information), each of which is referenced with a global
identifier (e.g., a URI in HTTP). In order to manipulate these
resources, components of the network (user agents and origin servers)
communicate via a standardized interface (e.g., HTTP) and exchange
representations of these resources (the actual documents conveying the
information)."

In Aida a Resource is a domain object, representation is by default an
HTML page done by object's App as presenter. And each domain object can
have its own URL.

Forthcoming Aida 6.5 is introducing presenters for JSON and XML and
adding support for building full RESTful web services to communicate
with Aida from REST clients using additional PUT and DELETE methods and
respecting current REST best practices.

As you said this is quite natural extension for Aida because of its
original REST-like architecture, so you'll be able to build full REST
APIs with Aida soon. A bit rethinking is needed to adopt REST practices
while preserving Aida philosophy by merging both as naturally as
possible. But recent work encouraged by Robert Calco was quite a step
forward!

[1] http://en.wikipedia.org/wiki/Representational_state_transfer


2. Amber and Aida
-----------------

REST is one way Amber can communicate with server. It has advantage that
it is loosely coupled and that server's REST API  can be used to other
REST clients as well. Disadvantage is that building REST API and
appropriate messages is quite some task.

Therefore I'm rather thinking to integrate Amber in Aida more tightly
and use Ajax and WebSocket communication between them. Idea is to build
web apps the usual Aida way then just emit this code to Amber to execute
it on the client. To put more execution to the client as Aida apps have
now. Even more: to decide in runtime, where actually execute your app:
fully on the client (if you are offline), fully on the server, or
partition it for a part on client part on server.

Recent JavaScript MVC frameworks are also to be watched because they are
introducing to the web apps what Smalltalk has in 80s already: full MVC
with dependencies, that is, when domain object changes, all dependent
views update automatically. Including web views of course and that's
also the main idea behind so called realtime web.

All this is still in very early stage of thinking, so any help with
brainstorming towards Amber integration is welcome!

Best regards
Janko


> ---------- Forwarded message ----------
> From: Sebastian Sastre <[hidden email]>
> Date: Mar 4, 5:11 pm
>
> Hi guys,
>
> if I understand things right Aida is REST and Amber <http://amber-
> lang.net/>[1] is hungry of a REST server-side counterpart.
>
> There is also this Seaside REST<http://code.google.com/p/seaside/wiki/
> SeasideRest>thing [2] and even
> Kaliningrad<http://gemstonesoup.wordpress.com/2011/10/08/kaliningrad-
> developing-w...>[3] for developing Amber and persist code in the
> server side.
>
> This all makes sense.
>
> So, here my question is:
>
> given that Aida is *a natural born REST server*, do we have an Aida
> option
> to work with Amber?
>
> any experiences to share? ideas on how to do it? advantages found in
> Aida
> vs. SeasideRest for this goal?
>
> sebatian
>
> o/
>
> [1]http://amber-lang.net/
> [2]http://code.google.com/p/seaside/wiki/SeasideRest
> [3]http://gemstonesoup.wordpress.com/2011/10/08/kaliningrad-developing-
> w...
>
> _______________________________________________
> Aida mailing list
> [hidden email]
> http://lists.aidaweb.si/mailman/listinfo/aida
>

--
Janko Mivšek
Svetovalec za informatiko
Eranova d.o.o.
Ljubljana, Slovenija
www.eranova.si
tel:  01 514 22 55
faks: 01 514 22 56
gsm: 031 674 565
_______________________________________________
Aida mailing list
[hidden email]
http://lists.aidaweb.si/mailman/listinfo/aida