This is a discussion on What is an application server? within the Sun Solaris Administration forums, part of the Solaris Operating System category; --> Hi all, In simple terms, just what is an application server? I mean, taking some osrt of database driven ...
| |||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| Hi all, In simple terms, just what is an application server? I mean, taking some osrt of database driven web application (written in PHP or JSP, for example) as an example, I can see where one would need one or more web servers (for HTTP), and I can see that a separate database server is pretty much mandatory. I just don't understand how one can put another layer between these two. TIA for any illumination, -- Rich Teer, SCNA, SCSA President, Rite Online Inc. Voice: +1 (250) 979-1638 URL: http://www.rite-online.net |
| |||
| On Tue, 04 Nov 2003 00:01:26 GMT, Rich Teer <rich.teer@rite-group.com> wrote: >Hi all, > >In simple terms, just what is an application server? >I mean, taking some osrt of database driven web application >(written in PHP or JSP, for example) as an example, I can see >where one would need one or more web servers (for HTTP), and >I can see that a separate database server is pretty much >mandatory. I just don't understand how one can put another >layer between these two. > >TIA for any illumination, This should probably help you out: http://www.aceshardware.com/read.jsp?id=50000347 Josh |
| |||
| In article <Pine.SOL.4.58.0311031556240.6007@zaphod>, Rich Teer <rich.teer@rite-group.com> writes: |> Hi all, |> |> In simple terms, just what is an application server? |> I mean, taking some osrt of database driven web application |> (written in PHP or JSP, for example) as an example, I can see |> where one would need one or more web servers (for HTTP), and |> I can see that a separate database server is pretty much |> mandatory. I just don't understand how one can put another |> layer between these two. Back in the olden days (pre-web) there were just clients and servers, and sometimes database servers. The term "application server" came to describe where you ran your business logic. Now web servers run business logic via servlets and EJBs, so they're really application servers. You don't need another server unless you want to isolate business logic from web services. |
| |||
| On Tue, 4 Nov 2003, Josh McKee wrote: > This should probably help you out: > > http://www.aceshardware.com/read.jsp?id=50000347 Thanks; that's an interesting article - but not too helpful in defining what an app server is. Although I did gather that they replaced an Apache/PHP solution with an app server, I'm not sure how that would fit into the context of say a shopping cart or something. -- Rich Teer, SCNA, SCSA President, Rite Online Inc. Voice: +1 (250) 979-1638 URL: http://www.rite-online.net |
| |||
| On Tue, 4 Nov 2003, Keith Michaels wrote: > Back in the olden days (pre-web) there were just clients and > servers, and sometimes database servers. The term "application > server" came to describe where you ran your business logic. > Now web servers run business logic via servlets and EJBs, so > they're really application servers. You don't need another > server unless you want to isolate business logic from web services. OK, I've got that. I must be missing something here, because I still don't quite grok it. I'm thinking of a hyperthetical appliction, some sort of dynamic database driven site. I can visualise how one would implement this in say PHP: the PHP scripts get executed by Apache (performing SELECTs etc. with the database), which then outputs HTML which gets rendered by the user's browser. Would an application server sit "between" the Apache/PHP combo and the database, or would it be more accurate to say that in this example, Apache/PHP *is* the app server (albeit perhaps a crude one)? If that is the case, would it also be accurate to say that even Apache with CGI scripts would be (an ever cruder) application server? -- Rich Teer, SCNA, SCSA President, Rite Online Inc. Voice: +1 (250) 979-1638 URL: http://www.rite-online.net |
| |||
| In article <Pine.SOL.4.58.0311031934340.6007@zaphod>, Rich Teer wrote: > OK, I've got that. I must be missing something here, because > I still don't quite grok it. Well, a real-world (but not really great) example of a 3-tiered application I worked on: the California smog check 2 application: modem server - handled connections, messages back and forth to smog check machines. app server - accepted messages from modem server, reformatted and sent to database server. database server - database + business logic. In this case, the app server was really stupid, since all the business logic was implemented in the database. This is a many to fewer to one sort of tier. This was w/Oracle 6, and the database connections on the database server ate up a lot of memory on the DB server. So creating 48 persistent connections for each of the 5 modem servers was out of the question. They had not enough memory on an E1000 for the DB. This is fairly typical -- many connections, most of which are not busy, or are waiting for i/o. Fewer application servers to handle the requests and feed them to the database. > [...] > the database, or would it be more accurate to say that in this > example, Apache/PHP *is* the app server (albeit perhaps a crude > [...] Sure, this is a two-tiered app-server+database. The trouble is, as the application grows, so do the resources you need to run the web server. If you end up with a huge program running inside of each web server, you will end up using up a lot of resources just to deliver a picture or static web page over the web to a client browser. You want the web server to do what it does best. So you have the web server ask the application for the results. The web server could ask a different application engine for other information. And the database handles requests from both types of applications. Again, many connections, most of which are not busy, stuck in keep-alive state or waiting for i/o. -- Brad -- -- Brad Lanam bll@gentoo.com |
| |||
| Brad Lanam <bll@seer.gentoo.com> writes: > In this case, the app server was really stupid, since > all the business logic was implemented in the database. This is symptomatic of why the ideal of a 3-tier model collapses into two (or fewer!). In the ideal case you have the given three layers: - database - business logic - display each of which runs in its own suitably confined layer (whether the confinement is physically separate machines, firewalled, separate processes or whatever). This lets you change database or display mechanism or business logic with ease. The database runs on the database server, the business logic on your application server and the display on, say, the webserver. But it doesn't as the first thing to fail is the distinction between business logic and display as most systems are destined for a single display mechanism (HTML, say) and so assumptions about that display mechanism are buried in the business logic. The purists would have the business logic output some intermediate code (XML, say) suitable for translation into your favoured display mechanism. The standard business logic environments (J2EE, say) have plenty of friendly support for generating the display directly and it's all too easy to do it yourself rather than code for an intermediary form which the same-development-language display layer promptly has to decode to display. How inefficient is that? The second to go is the purity of the database as database guys have been quite properly trained to provide functionality in the DB by way of stored procedures. It doesn't take long for those stored procedures to support the application much more than ensuring data is committed to reliable backing store requires. A stored procedure that is clever about how it stores data quickly because it "knows" about the data and how it is manipulated becomes a vital part of the application. There are lots of good reasons for letting this happen as often as you can say efficient but it doesn't help clarity of design nor portability, modularity, supportability (and virtually everything else bar efficiency). However the result is that the goal of running your business logic on your application server is lost as you are really authoring a database helper cum display engine on your webserver. As the genre of n-tier models matures it's getting better especially with the opportunity to support more output media (mobile phone browsers as well as traditional browsers, say). Cheers, Ian |
| |||
| On Tue, 04 Nov 2003 03:35:04 GMT, Rich Teer <rich.teer@rite-group.com> wrote: >On Tue, 4 Nov 2003, Josh McKee wrote: > >> This should probably help you out: >> >> http://www.aceshardware.com/read.jsp?id=50000347 > >Thanks; that's an interesting article - but not too helpful >in defining what an app server is. Although I did gather >that they replaced an Apache/PHP solution with an app server, >I'm not sure how that would fit into the context of say >a shopping cart or something. Sorry Rich, I think that I gave you the wrong link. This one might be better: http://www.aceshardware.com/read.jsp?id=45000240 Josh |
| |||
| On Tue, 4 Nov 2003, Josh McKee wrote: > Sorry Rich, I think that I gave you the wrong link. This one might be > better: > > http://www.aceshardware.com/read.jsp?id=45000240 Yes, that one is better - thanks. -- Rich Teer, SCNA, SCSA President, Rite Online Inc. Voice: +1 (250) 979-1638 URL: http://www.rite-online.net |
| ||||
| Rich Teer wrote: > > Hi all, > > In simple terms, just what is an application server? > I mean, taking some osrt of database driven web application > (written in PHP or JSP, for example) as an example, I can see > where one would need one or more web servers (for HTTP), and > I can see that a separate database server is pretty much > mandatory. I just don't understand how one can put another > layer between these two. > > TIA for any illumination, > > -- > Rich Teer, SCNA, SCSA > > President, > Rite Online Inc. > > Voice: +1 (250) 979-1638 > URL: http://www.rite-online.net Is is a Microsoftism, so they can hire you software which you run from their 'application server'??? I always wanted to run my applications at Microsoft, rather than locally. It seems to make best use of the internet bandwidth!! I believe that is the way MS are trying to get people to head. -- "The day Microsoft makes something that doesn't suck is probably the day they start making vacuum cleaners." -Ernst Jan Plugge. Dr. David Kirkby Ph.D Author of 'atlc' http://atlc.sourceforge.net/ |