The application server market has become relatively muddled in the last couple of years. As architectures
for the Web have grown larger and more complex, the need to simplify the integration of those architectures
has grown as well. BEA Systems' WebLogic Application Server addresses this need, and much more. It was
the first serious, pure Java app server on the market and it is easily one of the best currently available.
WebLogic (the company) appeared early on in the Java scene with a line of database connectivity solutions
and JDBC drivers. Its flagship Java-based app server, Tengah, turned heads when it was first released in
1996. BEA Systems, best known for its Tuxedo and TopEnd transaction processing software, acquired WebLogic
late in 1998. The merger reflects the direction of the industry, which is moving to integrate traditional
IT with the Web in an open, scalable fashion.
WebLogic is now the WebXpress division of BEA and Tengah has evolved into the WebLogic Application Server,
various versions of which may be downloaded from the company Website. The current version installs with
the Java Runtime Environment 1.1.7a, but also supports use with any 1.1.x JDK.
I tested the product on a 300 MHz Pentium NT Server machine with 128 MB of RAM. I used JDK 1.1.8 for the
tests. Installation in the NT environment was simple and relatively painless thanks to the installer,
which guides users through the process. I also installed the product on a Solaris machine, where I found
the documentation and install wizards sorely lacking. I got it done, but I had to figure it out for myself.
(If you plan to use the product outside a Windows environment, you'd better know the platform.)
WebLogic can be installed as an NT service using a tool that comes with the software. The service can be
started using the WebLogic console. This console tool is a Java application that provides an interface
for the starting and stopping of services, viewing open connections, users, transactions, timing, load,
along with a number of other features.
All product documentation is available online (BEA does not offer hardcopy versions) and comes in HTML
or PDF formats. I found the documentation to be above average, if not exceptional. The Website also
features an online tour of the product, including a demo application. It's really more marketing than
technical, but it does provide an overview of the product's capabilities.
One of the WebLogic server's greatest strengths is its rock-solid support for the Java Enterprise APIs.
Users will find here a truly comprehensive implementation, including Enterprise JavaBeans (EJB), Remote
Method Invocation (RMI), Java servlets, Java Naming and Directory Interface (JNDI), Java Transaction API
(JTA), and Java Database Connectivity (JDBC).
Particularly notable is WebLogic's support for EJB technology. It is one of a small handful of products
that provides full support for the EJB standard. Most products on the market that claim to provide EJB
support really were built on the draft and may not be compatible with all aspects of the standard. Also,
some other servers contain support only for session beans and not entity beans. I was very impressed with
WebLogic's support of both.
GUI Beans |
The following GUI beans are available in the current version of BEA's WebLogic Application Server:
Login—A non-GUI Bean for connecting to the server.
Workspace—Connects to a Workspace in the server.
WorkspaceValue—Accesses (store/fetch) a value in a Workspace.
EventTopic—Attaches to (or creates) a WebLogic EventTopic.
JfcButton—Outputs a change event when pressed.
JfcButtonAdapter—Adapter for a Swing JButton.
JfcComboBox—Displays a label and an option menu.
JfcComboBoxAdapter—Adapter for a Swing JComboBox.
JfcTextField—An input field that can trigger a change event.
JfcTextFieldAdapter—Adapter for a Swing JTextField.
JfcTextArea—Displays the output of a WebLogic Bean.
JfcTextComponentAdapter—Adapter for a Swing JTextComponent.
JfcTable—Displays query results in a grid.
JfcTableAdapter—Adapter for a Swing JTable.
DbConnection—Connects to a JDBC driver.
DbQuery—Executes a query.
DbRecord—Represents a record in a database.
DbButtons—A set of JfcButtons for use with a DbRecord.
Params—Used to send parameters to another Bean.
EventScheduler—For recurring actions in a client or a server.
Splitter—Passes on its InputEvent under a new name.
RemoteMethod—Calls an RMI object on the server.
|
EJB is a key component of the WebLogic server and a big part of its future direction. The product comes
with a GUI-based EJB Deployment Wizard. The console tools facilitate EJB viewing and management and the
product's architecture allows users to update EJBs and redeploy new business logic in a straightforward
fashion.
However, the Wizard needs some work. It's rather inflexible and provides very little functionality.
It'll deploy your EJBs readily enough if you've done everything right; if you make a mistake, you won't
find much help.
Database support on the WebLogic server is exceptional, which is no surprise given that JDBC drivers
were among the first WebLogic products. The installation feature provides step-by-step instructions
for setting up your database connection using the WebLogic drivers, as well as a tool called dbping,
which allows you to test the connection to a database. The connection-pooling classes and APIs are easy to
use and well documented. My guess is that WebLogic will be one of the first companies to support the new
JDBC 2.0 model that is being finalized at this time, which abstracts out the connection pooling for
implementation by third-party vendors.
The product's sophisticated, software-based clustering technology is exceptional also, and I predict
that this feature is going to be extremely important to a lot of users. This is where the product gets
its scalability. Clustering refers to the server's ability to replicate the presentation and business
logic of an application across multiple machines, which enables the load of the application to be spread
across all machines in the cluster. The WebLogic server is the only Web application server to provide
both Web page and EJB component clustering. The Web page clustering feature handles transparent replication,
load-balancing, and failover for the presentation logic that generates responses to Web clients
(say, the result of ordering the contents of a Web shopping cart). Component clustering handles the
complexities of replication, load balancing, and failover for EJBs (business logic) and provides
recovery of stateful objects like EJB entity beans.
WebLogic's Application Server console.
The WebLogic server integrates with a substantial number of Java IDEs, including Symantec's Visual
Café, IBM's VisualAge, Inprise/Borland's JBuilder, and Microsoft's Visual J++. It also supports
some name Web publishing tools, including Macromedia Dreamweaver, and it integrates with higher-level
tools, such as InLine Software's Assembly Line and The Object People's TOPLink.
The product includes a number of beans that can be imported into a variety of development environments,
which provides users with a nice set of building blocks for creating simple applications using these
tools. Importing these beans is a simple process detailed in the documentation. In particular, I was
glad to see the EventScheduler show up here. It requires some customization to make it work, but this
is a very powerful feature of WebLogic. Not many application servers have solid implementations of
publish/subscribe event mechanisms that are as simple to use as this.
As a 100% Java application, Web- Logic enjoys some distinct advantages when it comes to systems integration.
Because IBM has made a strong committment to providing Java APIs to legacy systems, such as mainframes,
CICs, and MVs, among others, integrating those into WebLogic should be extremely straightforward.
In addition, Java's simple networking support allows for fast prototyping of TCP/IP-based protocols.
The BEA WebLogic Application Server is a solid product that I heartily recommend. Unlike many of the
other application servers, BEA and the WebLogic people have not attempted to rebrand this product as
an "e-commerce server," which is where a lot of products are heading (with most failing to live up
to their hype). This is an application server that seems to have chosen its place and is looking
to be the best of what it is, instead of a mediocre version of something else.
Tony Rems is a Managing Architect at USWeb/CKS in Cupertino, CA. He is currently architecting
Java-oriented sites for some of the largest companies in the world.
He can be contacted at [email protected].
WebLogic App Server Ensures That Sparks.Com Customers Never Miss Another Mother's Day |
|
Jason Monberg is the CTO and founder of Sparks.com, which recently launched an Internet-based greeting card and retail Website (www.sparks.com). Users log onto the site to shop for real (as opposed to digital) greeting cards, to which they may add personal messages and which the company then mails directly to the designated recipients. Sparks.com also offers "relationship management services" that include reminder services, address books, user profiles, and calendar services.
The company is currently using version 4.0.3 of the BEA WebLogic Application Server to integrate all
areas of the site—catalog, checkout (purchasing), users accounts—and to handle all user
requests. Monberg recently talked with Java Report Product Editor John K. Waters about his experience
with the product.
Java Report: How long have you been using the BEA WebLogic Application Server?
Jason Monberg: We initially launched with some off-the-shelf software, but we quickly realized
that it just wasn't going to meet our needs. We relaunched with WebLogic [in late July '99].
JR: How are you using it?
JM: We use it as our front-end e-commerce Web system. We're also using it to develop tools
for our order-processing and reporting Middleware.
JR: Like it?
JM: We love it!
JR: What do you love about it?
JM: First and foremost, it's all Java-based. That's incredibly important to us. Java is just so
much faster to develop in. There's also a lot of momentum behind Java, and the people we're looking to
hire are super-psyched to come in and use Java.
JR: What about WebLogic specifically?
JM: The thing about WebLogic specifically is that it's leading in the implementation of the Java
APIs. The pieces we're using the most are the servlet API, the JDBC API, and the EJB components.
One of the reasons we decided to go with [the WebLogic server] initially was that the company had
implemented entity beans before just about everyone else. It is so committed [to Java].
JR: What about the company itself? Do you get the support you need?
JM: Yes, definitely. WebLogic is a great company to work with. It's put a lot of effort into
giving us good tech support and making sure that we have visibility within the company.
JR: Even a great product has its flaws. What would you put on your WebLogic wish list for
future versions?
JM: Certainly I could wish that all of this technology was more mature. We find things and it's
not always clear whether it's a bug in what we wrote, what WebLogic wrote, or what the API is supposed
to do. But there are some things I'd like to see-simple things that I think it's on the path to implementing.
JR: Such as?
JM: It really needs a good profiling tool. What it has now doesn't give you a lot of information.
You've spent all this time putting together this really cool, totally object-oriented system, it's fairly
complex, objects are bouncing around all over the place, and you have no idea what's going on inside.
JR: Anything else?
JM: The other thing would be an easier deployment mechanism for EJBs. It's got a decent system now,
but the stuff that's really automated doesn't work that well. I'm also anxiously awaiting an XML parser,
which I know is coming. XML is becoming a huge part of our system.
You can tell that its core focus has been the APIs. That technology is very tight. These additional
tools are things it's going to want to focus on for the future.
|
Review In A Nutshell: BEA Systems' WebLogic Application Server
Pros: A truly comprehensive implementation of the Enterprise Java APIs. Best EJB support in the
industry, including both session and entity beans. Sophisticated clustering software: the only Web
application server to provide both Web page and EJB component clustering. Provides integration with
the leading Java IDEs.
Cons: Weak profiling tool. Somewhat complicated to install on platforms other than Windows.
Limited support for dynamically generating personalized content.
Bottom line: A solid Web app server that enables developers to deliver high-performance,
highly scalable Web applications that leverage Java and EJB technologies. Anyone developing a
full-blown implementation of EJB for the Web should jump on this product.
A Java-based application server that enables scaleable n-tier Web architectures, simplifying access to
legacy systems and enterprise data sources and providing full Enterprise JavaBeans support.
System Requirements:
- 64 MB of RAM on Windows NT (128 recommended)
- 56 MB of disk space for the app server and related files
- JDK 1.1.x (did not support 1.1.8 at press time)
Platforms:
Runs on Solaris, HP, DEC, AS/400, SGI, OS/2, Mac, and other platforms running Java.
|
Quantity reprints of this article can be purchased by phone: 717.560.2001, ext.39 or
by email: [email protected].