Re: Productivity in Delphi vs. Java/JSP

From: pnichols (paul_at_comp.net)
Date: 04/21/04


Date: Wed, 21 Apr 2004 17:18:23 -0400

John Kaster (Borland) wrote:

> pnichols in <4085c95c@newsgroups.borland.com> wrote:
>
>> Agreed, isn't that precisely what I said in the post you are
>> responding to?
>
> Sorry .. I thought you meant Struts compared favorably to ASP.NET.
>
>> Now that Java has JSF, does not that place them back on a level of
>> equality, User Interface development wise?
>
> Almost. Haven't looked at it enough yet, but I don't find quite as much
> flexibility there as I see in ASP.NET.
>
According to what you mean in flexibility I guess. I find JSF more flexible,
due to the fact that I can define my own Tag Libraries along with JSP or
inherit from the other taglibs. So I am never locked into a single mode
solution.

>> ADO.NET cannot compare with the abstraction layers available in J2EE.
>> How do you abstract Database calls to specific Databases in ADO.NET
>
> By implementing the IList interfaces on any kind of data you want to
> retrieve.
>
That's not the same thing John. I do not want to have to deal with what
objects are instantiated by whom and by what application, and when they are
released. I want the server to handle this functionality.

If I have to implement this layer of complexity myself in each application
or create and manage the Object pool(s) myself, the complexity of the
application increases a hundredfold. That is where EJBs excel. I do not
have to handle this. The user request the interface, retrieves it, and
transaction are based only when the object receives some type of
instruction. It is the servers responsibility to manage, track, and dispose
of the object(s) as soon as it processes the information, and the server
places it back into the pool. The object is not live or does not maintain
state, unless it is stateful. In other words, it is not held by the client
at all. That way I do not have to worry about one bad program bringing down
an object repository or simulating a buffer overrun on a server based
object repository.

Suppose I have an remote object repository numbering in the thousands. I may
not (and probably never would) use the entire object repository in all or
even in some of my applications, but others would be using the repository,
across the Enterprise. Now I must assume that everyone is instantiating
these objects correctly and freeing them on demand. If they do not, they
could crash those Objects they are holding, or overrun the Object buffer
pool on the server, knocking out our entire server based Object repository
on the server farm at worst, or at the least lock out objects they are
holding, since the pool or objects for that remote method(s) and Objects,
would not be released. That is a nightmare waiting to happen. That is why
up until Web Services and EJBs, were created, to remove this overwhelming
complexity. But Web Services are not geared toward data intensive or
processor intensive functionality. They are great for exposing more generic
or small to moderate services, but not when manipulating or managing great
amounts of data nor processing instructions. WS only provides exposure to
the methods and data retrieval, not core functionality.

>> interaces? Can I switch my specific calls from Oracle to say DB/2 or
>> Sybase, by simply changing connection parameters?
>
> Yes.
>
>> Statements, Prepared Statements, etc.? How do you do this in
>> ADO.NET?
>
> BDP.
>
Could you tell me where to find info on this?

> ECO extends it even further. But, ECO isn't well suited to large scale
> ASP.NET apps. Yet. ;-)
>
I cannot find any info on ECO. Could you suggest a good source?

>> How are these resources auto
>> managed in a pool of objects that after use will be freed and then
>> returned back to the Object pool?
>
> ASP.NET run-time. database connection pooling.
>
Database pooling is not object management. Database pooling is easy, I can
easily create my own using some type of array or hashmap structure. Not
interested in DB pooling, interested in Object Pooling.

> The full CMP isn't there yet for .NET. But it is certainly possible to
> create a highly scalable, reliable, flexible, and performant app using
> ASP.NET's run-time and ADO.NET.
>
Scalable in terms of the single app, of course. But what about a centralized
object repository where the rules are finely grained as to what constitutes
valid Enterprise business rules. Some business rules naturally will be
application specific. Many however, will overlap throughout the Enterprise.
For instance, what constitutes a valid Order, many rules will be the same.
What constitutes a valid payment, etc. I do not want application developers
to reinvent this wheel, nor do I want them to accidentally redefine these
methodologies in single applications. I simply want them to use the
predefined objects that define these rules, etc. and the data access that
deals with them.

It sounds as though we are looking on Enterprise development at two levels,
(1) Single application development and (2)Object Management Resources that
are Enterprise wide in scope. I am not worried about the former, but rather
the latter.

The former can be handled with Java, ASP.NET, ASP, traditional
Client/Server, or PHP. It is the latter where the complexity takes place
and there needs to be proven methodologies that will perform operations
similarly to the EJB or Corba model.
 
 
> Yup. Or a CORBA server.
>
Corba would work, but adds a very real mode of complexity in dealing with
Corba objects. But yes, Corba can give you many of the things that EJBs
provide, except CMP management. You could provide this yourself, and there
may be someone who creates something similar today, that I am unaware of. I
have not worked with Corba in some time.

BTW, thanks for the interchange.

 



Relevant Pages

  • Re: Is there a BEA Tuxedo equivalence in Java?
    ... The OMG (corba) define many services for:- Naming, Transactions, ... EJB but not in RMI. ... Rather than constantly creating new beans for each client a server may ...
    (comp.object)
  • Re: Making server object available through corbaloc URL?
    ... server to advertise its objects so they can be accessed though ... corbaloc specification thinking that such a capability would be useful ... to people who implement CORBA, but not be of much use to regular ... the lack of a standardized API means that each ...
    (comp.object.corba)
  • Re: CORBA ORB for C#.NET
    ... You might want to take a look at the mono project (its C#, supports CORBA, ... I`d like to create CORBA server with Borland Delphi ... and few client applications taht comunicate with serwer: ... use VisiBroker ORB, and Java client using ORB from JSDK. ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Global data concurrent access ?
    ... No pooling 1000 iterations. ... SqlConnection(String.Format(connStringPooling, server, database))) ...
    (microsoft.public.dotnet.framework)
  • Re: Learning CORBA
    ... your implementation language, ... yourself with implementation of interfaces server side. ... bad joke which you'll understand when you learn about the POA). ... models and other CORBA services such as transactions, ...
    (comp.object.corba)