[Ilugc] Enterprise (business) architectures on Linux

  • From: nallu.ignacius@xxxxxxxxx (nallu ignacius)
  • Date: Mon Jul 10 08:16:16 2006

Hi Natrajan,

I have worked in one such project.
It is a J2EE architecture based application.


On 7/9/06, Natarajan V <rajanvn@xxxxxxxxx> wrote:


Hi all,

For quite some time now, I have been wondering if there are any
platforms/architectures available for enterprise business applications
on a Linux platform? (if none available, lets start one :-) )

I will try to explain what kind of enterprise application I am talking
about.

A business (lets say a bank) wants to build its software (may be from
scratch). It wants its software to be user friendly, scalable reliable
and future proof.

It should be possible to throw in some extra hardware to meet an
increase in usage, without modifying the software. It must also be
possible to add in new interfaces or business modules or change the
existing applications at will. Also the GUIs will be developed by
professional designers and ergonomics experts while the business
logic's will be done by geeks.

Certainly, we cannot put a Apache WS/PHP (alone) or LAMP for this
situation. Here in the corporate world, the database is HUGE. The
number of applications(modules) are also huge. Just as Mr. Umashankar
explained, in his application, the student councilors are interested
in the details of the students, while the Finance dept is interested
in the money that they have collected. The admin is more interested in
the courses/students statistics. We will be building separate
modules/applications for these. Some of these WILL NOT be web based,
while some WILL BE web based. Also, there are parts which are
accessible only to the employees while some are accessible to the
students.

Those who have worked with a Web Based application, would be familiar
with the number of fields that are available per screen and the number
of reports that are generated. A Discussion forum  application is
"NOT" an example for the kind of sophistication that I am quoting
here.

For this kind of applications, a few things are mandatory:
1. MVC 2 architecture
      The display logic should be independent of the business
implementation. a PHP code that writes out HTML output should not be
accessing the database directly.

2. Separation of Business Logic as a separate entity, which can be
accessed either though a desktop application or through a web
application or a B2B application. (may be through CORBA, for example).

3. A transaction manager which can do the work of Containers in a J2EE
environment or CICS in a IBM Main frame environment. (I don't want two
programs to access the same database. Don't even give an opportunity
even for two versions of the same program to access the same tables).

4. Message queuing.

5. Interface to other applications, across platforms and sometimes
across corporates (two companies have joined hands and so want their
softwares also to join hands).

6. Load balancing, clustering, distributed computing etc... as per
requirement or may be added in future.

The above list is NOT exhaustive, but these are essential.

The above features are available in a J2EE environment as well as in
M$ environments (though not as robust as in J2EE). Even IBM Z/OS by
means of CICS is able to handle such situations to a great extent.

I have seen people using Linux clustering and other frameworks as the
underlying platform, while using J2EE for their business
implementation. J2EE servers (such as WebSphere, WebLogic, Open Source
JBOSS), take care of the configuration issues (such as load balancing,
etc.,) and they also provide a separation between presentation and
business (Struts and EJB for example - slightly outdated)

Now to my actual question:
----------------------------------
Are there any "neatly packaged" platforms available in Linux which can
handle the above said situations?

-----------------------------------



I can very well use PHP.MVC for the presentation(v1 just released),
write a separate C/C++ program which has a CORBA interface for the
business logic, and connect them together. If some one wants to build
a desktop front end for the business, they can do so using CORBA. But
the process is too cumbersome. It is just not neatly packaged. I am
also not able to find any transaction managers for Linux from Google.
May be I did not use the correct key words.


The adoption of J2EE architecture can be like this

Client [HTML/CSS compliant browser] ==>
Web tier [PHP running on a Apache server acting as Business delegate] ==>
Axis Web service ==>
Business Tier [ EJBs deployed in a JBoss App Server] ==> Hibernate for OR
mapping ==>
Information Tier [MySQL with InnoDB or Postgres]

The advantage is that you can open up your web services through Axis. Web
services compliant applications can access the needed web service based on
proper authentication.


regards,
Ignacius

You can try this http://www.spikesource.com/products/corestack.html if you
want to setup the environment without much trouble[but I haven't tried
this].

----------------------
I am not expecting any out of the box answers to the question. But any
constructive discussion is welcome. If you want me to describe any of
the points, please do not hesitate to shoot your questions :-).

PS: My answers will be a little delayed due to  mail accessibility.


with regards,
Natarajan.
_______________________________________________
To unsubscribe, email ilugc-request@xxxxxxxxxxxxx with
"unsubscribe <password> <address>"
in the subject or body of the message.
http://www.ae.iitm.ac.in/mailman/listinfo/ilugc

Other related posts: