On Sun, 2003-02-02 at 13:52, Anne Thomas Manes wrote: > A servlet container is a container within an application server that can > host Java servlets and JavaServer Pages (JSPs). All J2EE application > services include a servlet container. They also include an EJB container. > There are a number of application servers that provide a servlet container, > but not an EJB container. These app servers are generally referred to as a > servlet engine. Examples include Apache Tomcat, Jetty Server, Caucho Resin, > and Orion Server. Tomcat and Jetty are open source. Resin and Orion are very > low cost by comparison to J2EE app servers.
W/r/t Orion Server, this is completely false. Orion server is a full J2EE solution WITH an EJB container (and a pretty good one at that). > A servlet engine is a > lightweight app server that offers a bunch of resource optimization features > that support the 80/20 rule. Most people find that a servlet engine meets > their scalability requirements. An EJB container uses a different set of > optimization strategies that impose a lot more overhead, but turn out to be > extremely valuable when dealing with very high scalability requirements and > transaction and security management. (Note that the performance and > scalability features of an application server -- whether it's just a servlet > engine or a J2EE server -- varies dramatically by implementation. I really > like Jetty for its lean and mean performance. Orion is one of the best > scaling servlet engines. In my opinion, WebLogic offers the best scalability > for both servlets and EJBs.) > > There's no doubt that a C++ environment will offer higher performance than a > Java environment. Ask Systinet. WASP for C++ is a *lot* faster than WASP for > Java. The two environments use basically the same architecture, but C is > just faster than Java. Even so I suspect that it would be easier to make > WASP for Java support massive scalability than WASP for C++. All you have to > do is deploy it in WebLogic. There isn't an app server comparable to > WebLogic for the C++ world. (well -- there's Tuxedo -- but I don't know of > anyone who's developed a SOAP platform for Tuxedo yet). But since C++ is so > much faster than Java, the threshold at which you need a really high-end app > server is quite a bit higher. > > The first decision you need to make is whether you'd like to develop in Java > or C++. C++ offers better performance. Java offers huge productivity gains. > > Anne > > > -----Original Message----- > > From: Chuck Musser [mailto:[EMAIL PROTECTED]] > > Sent: Sunday, February 02, 2003 11:37 AM > > To: [EMAIL PROTECTED] > > Subject: Re: standalone vs. servlet > > > > > > Anne, > > > > Thanks for your response. As you probably suspected, when I said > > "native", I meant something written in C, C++ or some other language > > that gets compiled to machine code. Things of that nature are obviously > > faster, so I guess my question really boiled down to: what are the > > advantages of an application server such as Apache and Axis (lots of > > built-in functionality, scalability) and what are the disadvantages > > (complexity, possibly lower raw performance). > > > > Based on what you've said, I'm leaning more toward the server-based > > solution. I'd not taken that into consideration until you mentioned it, > > but my application would probably need multiple services. It looks like > > a simple standalone solution won't support that, at least not elegantly. > > I still don't know whether a given server is "fast enough", but that's > > something I'll have to mock up and test myself. > > > > A final question: is a servlet container the same thing as a J2EE server? > > > > Thanks, > > > > Chuck > > > > Anne Thomas Manes wrote: > > > > >I'm not sure that I understand what you mean by "native" versus > > Java. A SOAP > > >implementation provides language bindings for SOAP. Axis supports Java. > > >gSOAP supports C or C++. If your application is written in Java, then you > > >need a SOAP implementation that supports Java. If your application is > > >written in C or C++, then you need a SOAP implementation that > > supports C or > > >C++. If your application is written in Perl, then you need a SOAP > > >implementation that support Perl. If you use multiple progamming > > languages, > > >then you need multiple SOAP implementations. > > > > > >Assuming that your SOAP service communicates using HTTP, then > > you must have > > >an HTTP server associated with the SOAP service. Most SOAP > > implementations > > >take the easy route and rely on an existing HTTP server. > > > > > >The main component of a SOAP implementation is a SOAP message > > processor. The > > >SOAP message processor processes SOAP messages, identifies what > > to do with > > >the message (i.e. identify what application to invoke to process the > > >message), transforms the SOAP message body into native language > > objects, and > > >load/invoke the appropriate application. If the SOAP engine needs to load > > >the program, it generally uses an application server/container > > to host and > > >manage the applications. > > > > > >There are three basic configurations: embedded, standalone, server-based. > > >1 - The embedded option allows you to embed an HTTP server and the SOAP > > >message processor within your application. > > >2 - The standalone option essentially creates a dedicated > > application server > > >to load/manage your services. > > >3 - The server-based option allows you to run the environment in > > and rely on > > >the application management facilities of an existing application server. > > > > > >In general, if you have only one service, the embedded option is the most > > >efficient. Options 2 and 3 allow you to share resources, which > > is important > > >when you're dealing with multiple services and multiple clients. > > A high-end > > >application server often provides a number of features (clustering, > > >multithreading, resources pooling, etc.) that you need for high > > scalability. > > >So in general, you'll achieve your best raw performance (highest > > throughput > > >for one user) when using option #1 or #2. You achieve your best > > scalability > > >(highest throughput for many users) when using option #3 with a highly > > >scalable app server. > > > > > >C++ is faster than Java, so C++ SOAP is faster than Java SOAP -- > > in terms of > > >raw performance. > > > > > >I believe that gSOAP only supports the first option. If you have only one > > >service, it's a simple and easy way to implement a service. If > > you have lots > > >of services, it's not the most efficient use of system resources. One > > >caution about gSOAP is that it only supports RPC/encoded, which > > might cause > > >interoperability issues. Your other C++ options include Systinet WASP for > > >C++ and RogueWave LEIF. WASP supports all three options. For > > option #3, it > > >can be deployed within Apache Web Server, IIS, and Netscape Web > > Server. LEIF > > >only supports option #3 using RogueWave's C++ servlet-like engine. > > > > > >Axis doesn't provide a built-in HTTP server or application server, so it > > >assumes that you will use a servlet engine to host the > > environment. You can > > >create a dedicated server (#2) or you can deploy it in pretty > > much any J2EE > > >application server (#3). You have more than 20 Java SOAP > > implementations to > > >choose from. Most implementations assume that you will deploy using a > > >servlet engine or J2EE application server. Systinet WASP for Java and The > > >Mind Electric GLUE both support all three options. Killdara > > Vitiris supports > > >only the embedded option. > > > > > >As far as performance testing tools, I can recommend Mindreef SOAPscope. > > >It's really a diagnostic tool rather than a performance testing > > tool, but it > > >can measure throughput. > > > > > >Regards, > > >Anne > > > > > > > > > > > >>-----Original Message----- > > >>From: Chuck Musser [mailto:[EMAIL PROTECTED]] > > >>Sent: Saturday, February 01, 2003 12:26 AM > > >>To: [EMAIL PROTECTED] > > >>Subject: standalone vs. servlet > > >> > > >> > > >>I'm evaluating SOAP servers with an eye toward performance and ease of > > >>deployment. My instinct is to prefer a native SOAP implementation over a > > >>Java implementation and to prefer a standalone implementation over one > > >>that lives inside a servlet container. But I'm new to this stuff, so I > > >>really don't know. I do realize that Java has lots of built in > > >>networking and database connectivity that native implementations don't > > >>have. Has anyone evaluated these issues: > > >> > > >>1.) Are there advantages to deploying Axis inside a servlet container > > >>rather than using the standalone server? > > >>2.) How does the performance compare for servlet vs. standalone? > > >>3.) How does the throughput of Axis compare to a "native" > > >>implementation, like gSOAP. > > >>4.) What sort of testing tools are available for evaluating the > > >>throughput of various SOAP servers. > > >> > > >>Thanks, > > >> > > >>Chuck > > >> > > >> > > >> > > >> > > > > > > > > > > > > > > -- ======================================= Jess Sightler Senior Developer Exim Technologies 131 Falls Street Greenville SC 29601 Phone: 864-679-4651 =======================================