3 Replies Latest reply on Nov 9, 2008 6:01 AM by ice9_us

    Back-End Choices

    kmurph92
      Hi Everyone,

      I am undertaking a project for college and am wondering exactly what I should use in conjunction with Flex to create the rich internet application. This RIA will analyze and report large volumes of data for the purpose of stat-tracking for post-deployment cellular network optimization. I know I would like to use Adobe Flex, due to its stellar graph and grid controls and overall GUI flow and appearance. Initially, I intended on using only Apache with PHP and MySQL because I am quite familiar with them, but the more I read from this development center, the less confident I became about this decision.

      Before I continue, let me point out that I am using Fedora Linux for the server. As far as internet applications and development go, I'm by no means a newbie, but nowhere close to a guru.

      I am greatly interested in the live data pushes from the server to the client. I understand that to do this, BlazeDS is needed. I read somewhere that a J2EE server (?) is needed to run BlazeDS. I read a couple of interesting tutorials by Sébastien Arbogast ( Link) and Maik Schumacher ( Link), which explained a lot, but due to my lack of experience, created more questions than answers for me. In these tutorials, the authors describe how to create a basic Flex RIA, one using Flex/BlazeDS/Spring/Hibernate/MySQL built with Maven, the other using Flex/BlazeDS/Hibernate JPA on Tomcat/MySQL. I have a general idea of what these technologies are (I think):

      - BlazeDS is a remoting and message passing module that allows for live pushing of data to clients?
      - Spring is some Java framework that provides a level of security and maybe some other things?
      - Hibernate is a Java framework that provides some sort of object oriented model for relational databases?
      - Maven is something like Apache but with some Java support functionality?
      - Tomcat is a lot like Maven?
      - I know what Flex and MySQL do, no questions here.

      This is what I *think* each does, but I'm not exactly sure. I have Wiki'd each and am just having a hard time figuring out what is the right combination for me and why. If you can provide a simple description of what each module does, or direct me to a web page that has simple examples of each in action, that would help me in deciding what I should use for this particular project.

      Any input on what *you* think is best for me to use is greatly appreciated as well. If you need more details on what exactly this RIA intends to do before you can recommend a particular back-end scheme, just ask, I will respond as promptly as I can.

      I appreciate anybody who took the time to read this, thank you.

      Regards,
      KMurph
        • 1. Re: Back-End Choices
          Karl_Sigiscar_1971 Level 3

          - BlazeDS is a remoting and message passing module that allows for live pushing of data to clients?

          Only the Flex Messaging service of Blaze DS allow for data push. You can push data from Java using JMS. LCDS, the pay version, adds the Data Management Service, which allows to connect the Flex server to the persistence layer and perform synchronization through push as well as conflict handling.

          - Hibernate is a Java framework that provides some sort of object oriented model for relational databases?

          Hibernate allows to map Java objects to database tables.

          - Maven is something like Apache but with some Java support functionality?
          Maven is akin to Ant, but has a different philosophy. Maven is strong when it comes to dependencies. Ant has commands to do many things with Flex like creating a SWC during the build.

          - Tomcat is a lot like Maven?
          Tomcat is an application server. Maven is a build automation tool.
          • 2. Re: Back-End Choices
            Peter Lorent Level 2
            And Spring is a framework you use to build your application.

            So, let's say we would start a new project, then Maven would be used to setup the basic structure of the project using the pom.xml (and have it check the dependencies), you use Spring and Hibernate to write the app in Java, make the app connect to the database using BlazeDS (which needs a J2EE server), and Maven can then build several versions of the project, like a development, test and live version. And run the thing on a Tomcat application server.

            For the application you have in mind this is certainly a good platform but at the same time a 'full blown' solution and if you still have to learn all these technologies... well, you're in for a bumpy ride.

            You intended to use PHP/MySQL and that is something totally different from the above mentioned technologies which are all in Java. You could consider a PHP/MySQL solution with the addition of a remoting layer like WebORB for PHP ( http://www.themidnightcoders.com/weborb/) - which also supports rtmp. You could use Propel ( http://propel.phpdb.org/trac/) as your database abstraction layer and Symfony ( http://www.symfony-project.org/) as the PHP Framework to build the backend. Pretty much the same as the Java solution but most likely in a technology you are already familiar with.
            • 3. Re: Back-End Choices
              ice9_us
              I am undertaking a project for college and am wondering exactly what I should use in conjunction with Flex to create the rich internet application. This RIA will analyze and report large volumes of data for the purpose of stat-tracking for post-deployment cellular network optimization.
              ----------------------------------------------------------------------------------------- ------------------------------------------------------------------
              For The best design so far your on the right track...


              I use C/C++ .. and have a large backend of functions for security and all kinds of junk.. I like to goof around with junk like that... I use C/C++ because it is so much faster than anything else... my compiler is free...

              Other stuff like:
              Java is a pig when it comes to memory usage. stuff like that
              Perl is to slow with large files when match with C/C++

              Nothing is a perfect science.. If your good with that stuff use it, i think it is all a matter of comfort..
              My thought is .. if your doing a project with a time line....it isn't what is best.. it is what do you know....

              you can take months or years learning C/C++ or whatever...
              if you know scripting.. use that..