The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Migrating to Java

I have an existing client server application in Delphi and PL-SQL.It is a standalone application which needs to be installed in all the client machines and a centralised database system acts as the server.Reports are generated using Adobe output designer.

Now i need to suggest a better design which will be followed for the java migration.Please let me know how to do it.I am new to s/w designing and have no idea about all these things.
Indra Banerjee Send private email
Monday, May 05, 2008
Why java?
Monday, May 05, 2008
I would agree why Java.  That said if you go to Java you can keep your pl/sql and just call that from Java.  It wouls save some of the rewrite and it would allow you to keep your unit tests of the pl/sql.
Jim Send private email
Monday, May 05, 2008
Why are people asking "why Java"? Don't we get enough second guessing around here already? This statement in the original post should have been enough to explain that Java is probably being mandated by someone else with more authority: "Now i need to suggest a better design which will be followed for the java migration.". The key words are "suggest a better design" which indicates that someone above is asking the OP to just "make it work".

Anyway, to answer the original question, I would implement it as a Java client communicating with a centralized server using web services. You mention that there will be multiple clients communicating with a centralized server. In this day and age you can't assume that clients will have the network connectivity required to be able to connect to a database directly with JDBC. So it is usually better to use something like web services for the communication.

But that is my best guess based on the very small amount of information that I could glean from your original post. If you give us more details we may be able to do better than giving you just a canned response of "java clients using web services".
Monday, May 05, 2008
What are you trying to achieve?
We need more information...
Monday, May 05, 2008
> Why are people asking "why Java"?

The better question is, why is OP being given a task that s/he is clearly not suited for?!
Monday, May 05, 2008
"The better question is, why is OP being given a task that s/he is clearly not suited for?! "

Come on... this happens all the time. Do you really think that they are going to go out and hire some Java guru instead of trying to use what they have on hand at the time?
Monday, May 05, 2008
Migrating to Java from Delphi could be tough if you don't know Java and its web capabilities well especially when you have to do the systems design. There may also be a steep learning curve in picking up Java especially its web frameworks. I would suggest you not to accept this job if it is possible to reject it.
Monday, May 05, 2008
Actually, I'd say it's a good opportunity to learn Java. If you already know how the existing application works, you won't need to think too much about the project's requirements, and can just focus on the porting. That's how I learned Java, in fact.
Monday, May 05, 2008
Thanks for so many answers...
but i think my question was not clear enough.
See I am working with the existing application for past 2 years.Its a loan origination process which involves complex logics and i know the system better than anyone else.
My client requirement is to migrate it to java since delphi is quite obsolete.
Let me tell you something more about the application.
All the phases of loan origination are covered withing it.It interacts with lots of Java web-services through xml.
but the core application frontend is designed in delphi.
Its a backend heavy application.
Anyway i have no scope to reject it as of now.
So let me try to learn something from you guys.
I really dont know how to proceed with the design with such a huge application.
suppose at various phases of loan life cycle user need to visit some screen and fiil up data.Those screens will be opened depending on some loan parameters and also the loan-user's rights.Presently it is handeled through backend.There is a table column that contains certain names e.g..'LOANCLOSE'.Now meaning of LOANCLOSE is defined in a particular file.This particular file is called everytime user comes back to fisrt screen after completing some job.If at that point menus are enabled depending on that table column.
Now this particular thing is not a part of loan life cycle.But the application menu enabling is handeled through this.I want to include this too in my design.
I dont know whether i am in the right track.
Please advice.
Indra Banerjee Send private email
Tuesday, May 06, 2008
This is a desktop application and not a web application?

You could implement it either way in Java if you desired, although as a web application you'd need a server.

It sounds like what you're describing is the state machine that defines where the user ends up in the application is managed by definitions stored in the database, is that correct?

i.e.: Access record for customer ABC, it has conditions that tell the application to display the LOANCLOSE screen.  Your application then looks up the definition of LOANCLOSE, displays the appropriate fields, waits for input

This sounds like a typical model-view-controller setup, which is an architecture used often in web applications but also applies to desktop applications.

The model would be your loan application database tables, the view would be determined by the state table entries (LOANCLOSE), and would be rendered by your frontend, the controller would be the code that processes the form or menu selection, and tells the database how to update or calls the appropriate backend services, and then starts the cycle over again by looking up the next view to take the user to and repeating.
Dan Fleet Send private email
Tuesday, May 06, 2008
It sounds like you are already an expert in both Delphi and PL/SQL, but you are nervous about rearchitecting a large application in an environment you don't know very well. That's a reasonable concern.

Although some people might shudder at this suggestion, you could conduct a refactoring project aimed at moving more of the logic into PL/SQL. One can imagine a situation in which the PL/SQL code does the heavy lifting and only a thin interface layer exists with each of the screens in your UI. Building these screens is not too hard then, since you don't need to decide what goes on them or how they connect to eachother---that's all done in PL/SQL.

Now, if your knowledge of the existing application architecture tells you this is a terrible idea, then you probably need to take a break and go to some Java courses.

This is a tough project. Good luck!
Robby Slaughter Send private email
Saturday, May 10, 2008
I'm also guessing that being a loan application, you have high user concurrency. You really need to learn the various Java patterns and frameworks especially relating to objects, Enterprise Java. Also, Struts and Hibernate. Then try some J2EE, EJB and Spring.

If you are going the web route, you should read Java Server Faces, JBoss and Apache/Tomcat.

For developing a desktop app in Java, you will need to master Swing which can be quite challenging.

As I said earlier, you need to build up on your Java knowledge first before thinking of restructuring and redesigning the app into an optimal Java solution.
Wednesday, May 21, 2008

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz