Discussions

General J2EE: Porting enterprise application from C# to Java

  1. Hello,
    I am new to this forum. I am working on porting C# application (involves multithreading, scalability, web services etc) to Java. It is expected that the new application will have better scalability and efficiency.

    I am good at Java but not very well verse with enterprise Java. I believe, EJB will provide scalabilty but it is quite slow.

    Which Java technologies would you recommed that I look at? Any pros and cons that you have for these technologies?

    Appreciate any help or pointers. Thanks!
    - Ashish
  2. Since you were using C#/web services for your enterprise application, I'm guessing that you were using ASP.NET backed with ADO.NET, et cetera? Is this a web application, with the browser as the client? Do you have any other clients (desktop apps, PDAs, et cetera) that are connecting with (and thus tying you to) web services? Have you identified the area (or areas) in your current .NET application that are causing the performance and scalability issues (i.e. is it the communication layer, the database layer, the presentation layer, et cetera)?

    Assuming that you're looking at a single type of client, you'll probably get better performance by dumping web services and going with something like ICE or RMI. ICE's is for solutions "...where echnologies such as SOAP or XML-RPC are too slow, or do not provide sufficient scalability or security." (quote from their web page).

    If you're used to ASP.NET, then you might look at JSF for the front-end of a web application. The designs are similar. Other frameworks you might look at include Struts, Tapestry, and Spring.
     
    If you're interested in a good O/RM service you should check out Hibernate.

    Without knowing details about what your application requirements, that's the best I can offer.
  3. On the same hardware, dont expect any significant difference in performance with J2EE. On the otherhand JSF, etc. are not upto the mark of ASP.NET as yet.
  4. There is no user interface as it can accept any request coming from SOAP client. Real task is poring the server. I have got more description of this application that might help in your evaluation.

    Characteristics of applications are:
    1. server hosts various business processes to execute(BPEL)
    1. Server process is invoked using SOAP over http
    2. uses in-memory database to keep track of long running business process
    3. Uses relational database to log request/response. However, it does not have to read this data to process a request.
    4. server has APIs to determine which process it listens
    5. Implements WS-Security, WS-addressing,and related standards to communicatie with client
    6. Doesn't require any transaction support

    Goal is:
    1. application should be able to run on Linux as well on windows
    2. Should be very fast and reliable
    3. Should be able to do clustering and load balancing


    My Question is,
    - is this application a good candidate for J2EE with Session beans
    - OR shouldO I use servlets with plain Java objects?

    As there is not persistence,transactions etc, I think, the performance bottle neck would be in middle layer only.
  5. to get it to run under *nix[ Go to top ]

    dude,
        i would go for MONO if i were you
    cant vouch for the speed though

    http://www.mono-project.com/about/index.html