tags: Java
, Web Services
, Ajax
, Architecture
, PHP
, GUI
, JSP
, XML
, J2EE
posted: Tuesday, April 12th, 2005
I still believe that Java is ideal for the back end portion of a web site or Internet application. When I say “back end”, I am referring to the data manipulation including the use of business rules and data persistence.
Its the use of Java on the front end, the web gui, that I’m not so sure I’m convinced of at this point. When JSP first came out, it seemed so simple, but then we began to get so concerned over separating roles and markup, content, and logic. Now creating a web site is just too much work. Lately, I’ve been using Word Press to do my blogs, and using Open Reports to create a reporting web site. Both of these are great examples of the simplicity in creating web sites. Open Reports creates forms to fill out with a simple web gui interface. Both of them require no “coding” in order to add further pages, change the look and feel, etc. They aren’t as custom as would be needed for most of the web applications I’ve worked on, but, I think we should be able to get to a point where the web front end is as simple as using Word Press, Open Reports, or any of the other CMS type web tools.
While at IBM, I co-designed a central billing application. To this day, that is my favorite architecture that I’ve ever created. I’ll explain it in another post in more detail, and you can read a bit about it on my projects page. The hub received xml and returned xml. Sort of a web service, though we didn’t have time to make it an official J2EE web service. It received XML messages, determined the type of message, and based upon that, followed a defined set of tasks on that XML. I am hoping that this code will soon be released as an open source project so I can continue to work on developing it into a backend framework solution.
To feed this back end app, we needed to create a web gui that would create XML. The front end really had to do nothing, except create XML, feed it to the hub, receive a result in XML, and render it to the user. The more I think about that, the more I think that’s how all front ends/web guis should be. If Java were used for a backend, and received XML and returned XML, as a web service, then the web gui portion could be written in any language: PHP or Java. The gui would simply be responsible for creating valid xml messages to be sent to the back end, and then rendering xml responses. This would give you the separation we crave, but would also allow for PHP to be used on a front end instead of Java. It would greatly simply the web gui. All the gui would need to do, is provide security, navigation, display forms, and render xml. When a user entered data into a form, the gui would create XML from it, and submit it to the backend.
Today we are, as Java developers very used to implementing n-tier architectures. But let’s take it one step further, and make it so separate that any web scripting language could be used on the front end, including CMS apps that already exist that are based on XML content. Those apps could be used to provide the entire front end, and be altered to receive the XML content from a web service instead of the database.
Comments (5)
Leave a Comment
The billing application I described is similiar to Cocoon, in some ways. The biggest difference is that its a back end only solution with no gui, and therefore was simplified and targeted toward that one specific goal.
I do like Cocoon, and used that for an application at IBM. Right now, for lack of my ideal solution, I would use Cocoon if I were doing an application from scratch, but I would use a very limited set of Cocoon features.
However, I am also in the brainstorming stages of working on a solution for the web side that hopefully will solve many of the problems that I’ve faced over my 11 years of web development. I’ll be posting more on that on my blog in the future.
I know there are a million solutions out there, but I think all of them are aimed at solving the wrong problem, and most have become too complex for their own good.
Thanks for the extra info..
I came here by seaching for a guide to develop full fledged websites via jsp (obviously html-javascript-css would be used)…..
php is a language made for webdesigning…many functions with in for doing many web related tasks…but in jsp we have some apis of java..core…i think….can’t a great website created using jsp instead of php…
Hello
I work for a Staffing Company located in Portsmouth, NH.
I have following job openings. If you are interested, please reply
with your resume and availability status.
Best regards
Milind Adkar
Technical Recruiter
—————————————————-
Job Title - Java Developer
Location - San Francisco, CA
Term - 6+ Months Contract
Pay rate - Open
Telecommute - no
Experienced Java developer.
Candidate should have Java scaling experience, should have JSP and
be strong on the database (mySQL) scaling side!
Must have Java, AJAX, SOAP & Javascript.
Looking for junior level 3-5 years.
—————————————–
Job Title - Java Software Engineer
Location - Merrimack, NH
Term - Permanent
Pay rate - Open
The client develops Java software servers to support their e-series
deep packet inspection network platforms. These software servers
provide configuration, subscriber identification, and usage data
processing for the e-series platform. The Clients Java Enterprise
Edition servers provide a high availability redundancy solution,
high performance computing, extreme transaction processing, and
multi-terabyte data warehouses using leading edge web-based
technologies.
Required Skills:
2-4 years of Java experience
1 year of Java Enterprise Edition experience
Experience with Spring
Experience with Hibernate
Experience in a model-based development environment is a plus
————————————————–
RSS feed for comments on this post. TrackBack
Brian
How would you compare the above approach to something like Cocoon: that essentially uses XML (in/out) on the backend, allows for e security, navigation, form display, and XML rendering (into different formats)? Are you proposing that a web scripting tool be developed to “simplify” website construction even more than that system already does… its hard for me to see how.