You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flex.apache.org by Fréderic Cox <co...@gmail.com> on 2016/10/27 08:56:59 UTC

AMFPHP support for FlexJS

Hi,

I have been following this list for quite a while now.
Thanks to Carlos his MDL efforts and post on Twitter I am considering to
start working with FlexJS in the coming days.

I am reading the FAQ's and hope to get everything set-up soon but there is
one big feature I used a lot in all my projects and that is AMFPHP via the
RemoteObject class.

Is AMFPHP technically possible with FlexJS? Our entire backend supports
AMFPHP so I would prefer not to change all of that to JSON.

AS3 code is like this:

var dataService:RemoteObject = new RemoteObject;

dataService.destination = "Crm";

dataService.source = "Crm";

dataService.endpoint = EnalityData.rootURL + "amfphp/gateway.php";

dataService.addEventListener(ResultEvent.RESULT,
companiesDataResultHandler, false, 0, true);

dataService.addEventListener(FaultEvent.FAULT, companiesDataFaultHandler,
false, 0, true);

dataService.getOperation("getCompaniesInfo").arguments=[EnalityData.userLogin,
EnalityData.userPassword, EnalityData.userId];

dataService.getOperation("getCompaniesInfo").send();


AMFPHP is superfast and easy to use. It would allow me to convert some, if
not all, of my applications to FlexJS. I'm a DIY programmer with 10+ year
of experience but never studied actual advanced programming studies (more
Communication & Multimedia). Been working with AS3 for over 10 years now.
Some concepts here are still over my head but I'm willing to learn it.

So basically my questions regarding AMFPHP for FlexJS are:

1) Is AMFPHP currently supported for FlexJS

2) If not supported, is it technically possible?

3) If not supported but technically possible, is anyone already working on
it?

4) If nobody is working on it, who has the experience/tips on how to get
this working for FlexJS?

Re: AMFPHP support for FlexJS

Posted by Carlos Rovira <ca...@codeoscopic.com>.
Hi Fréderic,

thanks for joining :)

AMF is currently not supported, but it was discussed several times in the
list.
Many of us agree that AMF is currently the best communication protocol out
there (I even don't understand the JSON success taking into account AMF is
open source specification and was implemented in almost every language out
there, but hey! world turned from Flash to HTML so I expect anything ;P).

In JS there's some basic protocol ports out there, but we need an high
level library that brings to FlexJS what old Flex SDK has with rpc.swc. We
basically need the *RemoteObject* implementation that eases the use of AMF
in JS as you posted.

As you, many of us would need this communication layer to avoid change any
server side code if we want support a FlexJS front end layer to our
applications.

Nobody is currently working on this, But Chris Dutz talked about contribute
to this. Chris is contributing with building tooling, maven, site, and
maybe you could talk with him in order to start looking at how to bring AMF
to FlexJS. Your help would be so much appreciated.

Without doubt for me is one of the key pieces that we need.

Thanks!



2016-10-27 10:56 GMT+02:00 Fréderic Cox <co...@gmail.com>:

> Hi,
>
> I have been following this list for quite a while now.
> Thanks to Carlos his MDL efforts and post on Twitter I am considering to
> start working with FlexJS in the coming days.
>
> I am reading the FAQ's and hope to get everything set-up soon but there is
> one big feature I used a lot in all my projects and that is AMFPHP via the
> RemoteObject class.
>
> Is AMFPHP technically possible with FlexJS? Our entire backend supports
> AMFPHP so I would prefer not to change all of that to JSON.
>
> AS3 code is like this:
>
> var dataService:RemoteObject = new RemoteObject;
>
> dataService.destination = "Crm";
>
> dataService.source = "Crm";
>
> dataService.endpoint = EnalityData.rootURL + "amfphp/gateway.php";
>
> dataService.addEventListener(ResultEvent.RESULT,
> companiesDataResultHandler, false, 0, true);
>
> dataService.addEventListener(FaultEvent.FAULT, companiesDataFaultHandler,
> false, 0, true);
>
> dataService.getOperation("getCompaniesInfo").arguments=[
> EnalityData.userLogin,
> EnalityData.userPassword, EnalityData.userId];
>
> dataService.getOperation("getCompaniesInfo").send();
>
>
> AMFPHP is superfast and easy to use. It would allow me to convert some, if
> not all, of my applications to FlexJS. I'm a DIY programmer with 10+ year
> of experience but never studied actual advanced programming studies (more
> Communication & Multimedia). Been working with AS3 for over 10 years now.
> Some concepts here are still over my head but I'm willing to learn it.
>
> So basically my questions regarding AMFPHP for FlexJS are:
>
> 1) Is AMFPHP currently supported for FlexJS
>
> 2) If not supported, is it technically possible?
>
> 3) If not supported but technically possible, is anyone already working on
> it?
>
> 4) If nobody is working on it, who has the experience/tips on how to get
> this working for FlexJS?
>



-- 

Carlos Rovira
Director General
M: +34 607 22 60 05
http://www.codeoscopic.com
http://www.avant2.es


Este mensaje se dirige exclusivamente a su destinatario y puede contener
información privilegiada o confidencial. Si ha recibido este mensaje por
error, le rogamos que nos lo comunique inmediatamente por esta misma vía y
proceda a su destrucción.

De la vigente Ley Orgánica de Protección de Datos (15/1999), le comunicamos
que sus datos forman parte de un fichero cuyo responsable es CODEOSCOPIC
S.A. La finalidad de dicho tratamiento es facilitar la prestación del
servicio o información solicitados, teniendo usted derecho de acceso,
rectificación, cancelación y oposición de sus datos dirigiéndose a nuestras
oficinas c/ Paseo de la Habana 9-11, 28036, Madrid con la documentación
necesaria.

Re: AMFPHP support for FlexJS

Posted by PKumar <pr...@gmail.com>.
I am digging in to AMFJS and tested it with AMFPHP & Blazeds. Currently i am
trying to use AMFJS functions  in FlexJS side. I am also looking the FlexSDK
RemoteObject implementation and registerclassAlias implementation, so that i
can get more information on this. 



--
View this message in context: http://apache-flex-development.2333347.n4.nabble.com/AMFPHP-support-for-FlexJS-tp56066p56086.html
Sent from the Apache Flex Development mailing list archive at Nabble.com.

Re: AMFPHP support for FlexJS

Posted by Alex Harui <ah...@adobe.com>.

On 10/27/16, 8:44 AM, "carlos.rovira@gmail.com on behalf of Carlos Rovira"
<carlos.rovira@gmail.com on behalf of carlos.rovira@codeoscopic.com> wrote:

>Hi Olaf, I think is more about efficiency and optimization. AMF is binary,
>more compacted and faster that any other method I known out there. in
>terms
>of usability is as well more easy to work with.
>
>I'm afraid that AMF could not be successful as JSON maybe due to people
>not
>know about the openness of the format and as well due to the way to work
>with it through typed objects. One of its advantages and maybe a
>disadventage since JSON is maybe more direct to work with (but very
>cumbersome in the end).
>

I hope to see someone, maybe Prashant, make a serious effort at porting
RemoteObject to FlexJS.  I'm not clear how much Flash-dependency there
really is other than NetConnection.  I think we've pretty much have a good
enough Reflection API in FlexJS.

I'm interested to see how efficient AMF will be in JS.  It certainly was
more efficient in Flash, but that's because the AMF conversion is done in
C code in the runtime.  For FlexJS in JS, it will be done in JS where as
JSON.parse() runs in browser code and not in JS.  So there is a chance
that JSON will be faster than AMF in JS.  JSON seems to support a
"reviver" which I think might be usable to have JSON efficiently create
the FlexJS equivalent of typed instances of Value Objects in JS.

IMO, this question will just keep being asked until we implement
RemoteObject and run some tests.

-Alex


Re: AMFPHP support for FlexJS

Posted by Carlos Rovira <ca...@codeoscopic.com>.
That sounds really cool. Is more info about reflection api?
I'm happy that register** support was already done and hope we could get
things like [RemoteClass] or [Transient] soon.

Thanks for doing this! :)

2016-10-27 22:20 GMT+02:00 Greg Dove <gr...@gmail.com>:

> As Alex mentioned, I think things should be ready to support AMF (and/or
> potential other serialization/deserialization approaches) via Reflection.
>
> I already added support for registerClassAlias,  getClassByAlias, and (new)
> getAliasByClass,in the reflection package - note that I did not put these
> in the network project (which would have been consistent with flash.net.*)
> because for js it seemed to me that they would always be used in
> conjunction with Reflection API. But if others feel strongly about this,
> feel free to change that.
>
> I have not checked whether falcon handles [RemoteClass] meta to generate
> registerClassAlias calls automatically. If it does then perhaps this needs
> to be considered for js to use the new reflection function for this same
> support.
>
> Current reflection support will also allow for checking for [Transient]
> metadata to exclude those readwrite accessors or variables from the set of
> fields determined for serialization via reflection.
>
> What we do not currently have is something analogous to IExternalizable,
> but perhaps that could be for later (I think I may have used this only once
> in the past, perhaps others use it more).
>
> cheers,
> Greg
>
>
>
> On Fri, Oct 28, 2016 at 7:38 AM, OK <po...@olafkrueger.net> wrote:
>
> > Hey Carlos,
> >
> >
> > Carlos Rovira wrote
> > > Hi Olaf, I think is more about efficiency and optimization. AMF is
> > binary,
> > > more compacted and faster that any other method I known out there.
> >
> > Yes, Flex/AMF is definately faster and I remember the discussions years
> ago
> > about AMF regarding performance. But even if it's faster I'm not sure if
> > you
> > really notice it cause often there're other bottle necks that slow down
> > things.
> > More over I think it depends on the use case to be really profit by the
> > performance lead of AMF.
> >
> > Don't get me wrong, it would be great if FlexJS will support AMF but I'd
> > also like to say that the current lack of AMF support is no show stopper
> > that makes it impossible to use FlexJS.
> > In best case people maybe could just add a facade on top of their current
> > backend to be able to speak JSON over http.
> >
> > Anyway, you are my MDL super hero, thanks again for working on it !!! ;-)
> >
> > Thanks,
> > Olaf
> >
> >
> >
> >
> >
> > --
> > View this message in context: http://apache-flex-
> > development.2333347.n4.nabble.com/AMFPHP-support-for-FlexJS-
> > tp56066p56087.html
> > Sent from the Apache Flex Development mailing list archive at Nabble.com.
> >
>



-- 

Carlos Rovira
Director General
M: +34 607 22 60 05
http://www.codeoscopic.com
http://www.avant2.es


Este mensaje se dirige exclusivamente a su destinatario y puede contener
información privilegiada o confidencial. Si ha recibido este mensaje por
error, le rogamos que nos lo comunique inmediatamente por esta misma vía y
proceda a su destrucción.

De la vigente Ley Orgánica de Protección de Datos (15/1999), le comunicamos
que sus datos forman parte de un fichero cuyo responsable es CODEOSCOPIC
S.A. La finalidad de dicho tratamiento es facilitar la prestación del
servicio o información solicitados, teniendo usted derecho de acceso,
rectificación, cancelación y oposición de sus datos dirigiéndose a nuestras
oficinas c/ Paseo de la Habana 9-11, 28036, Madrid con la documentación
necesaria.

Re: AMFPHP support for FlexJS

Posted by Greg Dove <gr...@gmail.com>.
As Alex mentioned, I think things should be ready to support AMF (and/or
potential other serialization/deserialization approaches) via Reflection.

I already added support for registerClassAlias,  getClassByAlias, and (new)
getAliasByClass,in the reflection package - note that I did not put these
in the network project (which would have been consistent with flash.net.*)
because for js it seemed to me that they would always be used in
conjunction with Reflection API. But if others feel strongly about this,
feel free to change that.

I have not checked whether falcon handles [RemoteClass] meta to generate
registerClassAlias calls automatically. If it does then perhaps this needs
to be considered for js to use the new reflection function for this same
support.

Current reflection support will also allow for checking for [Transient]
metadata to exclude those readwrite accessors or variables from the set of
fields determined for serialization via reflection.

What we do not currently have is something analogous to IExternalizable,
but perhaps that could be for later (I think I may have used this only once
in the past, perhaps others use it more).

cheers,
Greg



On Fri, Oct 28, 2016 at 7:38 AM, OK <po...@olafkrueger.net> wrote:

> Hey Carlos,
>
>
> Carlos Rovira wrote
> > Hi Olaf, I think is more about efficiency and optimization. AMF is
> binary,
> > more compacted and faster that any other method I known out there.
>
> Yes, Flex/AMF is definately faster and I remember the discussions years ago
> about AMF regarding performance. But even if it's faster I'm not sure if
> you
> really notice it cause often there're other bottle necks that slow down
> things.
> More over I think it depends on the use case to be really profit by the
> performance lead of AMF.
>
> Don't get me wrong, it would be great if FlexJS will support AMF but I'd
> also like to say that the current lack of AMF support is no show stopper
> that makes it impossible to use FlexJS.
> In best case people maybe could just add a facade on top of their current
> backend to be able to speak JSON over http.
>
> Anyway, you are my MDL super hero, thanks again for working on it !!! ;-)
>
> Thanks,
> Olaf
>
>
>
>
>
> --
> View this message in context: http://apache-flex-
> development.2333347.n4.nabble.com/AMFPHP-support-for-FlexJS-
> tp56066p56087.html
> Sent from the Apache Flex Development mailing list archive at Nabble.com.
>

Re: AMFPHP support for FlexJS

Posted by Fréderic Cox <co...@gmail.com>.
I have to disagree with Olaf here. In our company the entire backend is using AMFPHP. Changing that to JSON and changing the frontend code as well is not a viable option. If AMFPHP works in FlexJS there would not be any changed required on both ends. Just making a point here that use cases indeed differ but for some companies it might be a key point in deciding wether or not to go forward with FlexJS.

Verstuurd vanaf mijn iPhone

> Op 27 okt. 2016 om 20:38 heeft OK <po...@olafkrueger.net> het volgende geschreven:
> 
> Hey Carlos,
> 
> 
> Carlos Rovira wrote
>> Hi Olaf, I think is more about efficiency and optimization. AMF is binary,
>> more compacted and faster that any other method I known out there. 
> 
> Yes, Flex/AMF is definately faster and I remember the discussions years ago
> about AMF regarding performance. But even if it's faster I'm not sure if you
> really notice it cause often there're other bottle necks that slow down
> things.
> More over I think it depends on the use case to be really profit by the
> performance lead of AMF.
> 
> Don't get me wrong, it would be great if FlexJS will support AMF but I'd
> also like to say that the current lack of AMF support is no show stopper
> that makes it impossible to use FlexJS.
> In best case people maybe could just add a facade on top of their current
> backend to be able to speak JSON over http.
> 
> Anyway, you are my MDL super hero, thanks again for working on it !!! ;-)
> 
> Thanks,
> Olaf
> 
> 
> 
> 
> 
> --
> View this message in context: http://apache-flex-development.2333347.n4.nabble.com/AMFPHP-support-for-FlexJS-tp56066p56087.html
> Sent from the Apache Flex Development mailing list archive at Nabble.com.

Re: AMFPHP support for FlexJS

Posted by OK <po...@olafkrueger.net>.
Hey Carlos,


Carlos Rovira wrote
> Hi Olaf, I think is more about efficiency and optimization. AMF is binary,
> more compacted and faster that any other method I known out there. 

Yes, Flex/AMF is definately faster and I remember the discussions years ago
about AMF regarding performance. But even if it's faster I'm not sure if you
really notice it cause often there're other bottle necks that slow down
things.
More over I think it depends on the use case to be really profit by the
performance lead of AMF.

Don't get me wrong, it would be great if FlexJS will support AMF but I'd
also like to say that the current lack of AMF support is no show stopper
that makes it impossible to use FlexJS.
In best case people maybe could just add a facade on top of their current
backend to be able to speak JSON over http.

Anyway, you are my MDL super hero, thanks again for working on it !!! ;-)

Thanks,
Olaf





--
View this message in context: http://apache-flex-development.2333347.n4.nabble.com/AMFPHP-support-for-FlexJS-tp56066p56087.html
Sent from the Apache Flex Development mailing list archive at Nabble.com.

Re: AMFPHP support for FlexJS

Posted by Carlos Rovira <ca...@codeoscopic.com>.
Hi Olaf, I think is more about efficiency and optimization. AMF is binary,
more compacted and faster that any other method I known out there. in terms
of usability is as well more easy to work with.

I'm afraid that AMF could not be successful as JSON maybe due to people not
know about the openness of the format and as well due to the way to work
with it through typed objects. One of its advantages and maybe a
disadventage since JSON is maybe more direct to work with (but very
cumbersome in the end).




2016-10-27 11:58 GMT+02:00 OK <po...@olafkrueger.net>:

> There's a thread in the users list which might anser some your questions
> [1].
>
> From my perception REST with JSON is become some kind of de facto standard
> these days.
> Even if AMF is maybe technically the better choice, in times of API driven
> design it might be also important
> to provide reusable APIs that could be shared or consumed by anyone and
> anything.
>
> Creating a RESTful API is not so hard. In the PHP world one option to
> achive
> it with less effort is SLIM3 [2].
> Maybe you could "restify" yor current backend with reasonable effort.
>
> HTH,
> Olaf
>
> [1]
> http://apache-flex-users.2333346.n4.nabble.com/FlexJS-Support-in-BlazeDS-
> communication-td11562.html#a13951
>
> [2] http://www.slimframework.com/
>
>
>
> --
> View this message in context: http://apache-flex-
> development.2333347.n4.nabble.com/AMFPHP-support-for-FlexJS-
> tp56066p56069.html
> Sent from the Apache Flex Development mailing list archive at Nabble.com.
>



-- 

Carlos Rovira
Director General
M: +34 607 22 60 05
http://www.codeoscopic.com
http://www.avant2.es


Este mensaje se dirige exclusivamente a su destinatario y puede contener
información privilegiada o confidencial. Si ha recibido este mensaje por
error, le rogamos que nos lo comunique inmediatamente por esta misma vía y
proceda a su destrucción.

De la vigente Ley Orgánica de Protección de Datos (15/1999), le comunicamos
que sus datos forman parte de un fichero cuyo responsable es CODEOSCOPIC
S.A. La finalidad de dicho tratamiento es facilitar la prestación del
servicio o información solicitados, teniendo usted derecho de acceso,
rectificación, cancelación y oposición de sus datos dirigiéndose a nuestras
oficinas c/ Paseo de la Habana 9-11, 28036, Madrid con la documentación
necesaria.

Re: AMFPHP support for FlexJS

Posted by OK <po...@olafkrueger.net>.
There's a thread in the users list which might anser some your questions [1].

From my perception REST with JSON is become some kind of de facto standard
these days.
Even if AMF is maybe technically the better choice, in times of API driven
design it might be also important 
to provide reusable APIs that could be shared or consumed by anyone and
anything.

Creating a RESTful API is not so hard. In the PHP world one option to achive
it with less effort is SLIM3 [2].
Maybe you could "restify" yor current backend with reasonable effort.

HTH,
Olaf

[1]
http://apache-flex-users.2333346.n4.nabble.com/FlexJS-Support-in-BlazeDS-communication-td11562.html#a13951

[2] http://www.slimframework.com/



--
View this message in context: http://apache-flex-development.2333347.n4.nabble.com/AMFPHP-support-for-FlexJS-tp56066p56069.html
Sent from the Apache Flex Development mailing list archive at Nabble.com.