TheServerSide.com newsletters are designed to bring the most important news from the J2EE industry to your door, along with providing you with exclusive J2EE articles and advanced topics not found anywhere else. Our newsletters will also keep you informed with whats new on TheServerSide. Newsletter mailings will be infrequent, probably on a monthly basis. Instructions for unsubscribing are at the end of this newsletter. This newsletter is viewable online at: http://www.TheServerSide.com/resources/news3.html
Note: If you are recieving this email for the second time, we apologize. We experienced unforseeable technical difficulties with the first mailout.
IN THIS ISSUE:
* EJB Industry - What makes an application
server succeed?
* Conference watch - Sigs. Java Plus is next week
* Developers Corner - A pattern to solve the stale update problem
* New Application Server Reviews and Winners - Gemstone, IPlanet
* Latest News Headlines From the J2EE Industry
* A word from The Middleware Company
Newsflash: TheServerSide.com membership tops 40,000
________________________________________________________________
When the EJB
specification was first launched in early 1998, the event
wasakin to a gun firing. That was the day when the EJB
server race for dominance started. At that time, every
application server vendor had a fair chance for their product
to become the #1 product in the industry. But as we look
back on things today, midway through that race, some of these
vendors are doing better than others in the market. But
why? I find it facinating to explore the forces at play
that have shaped this market. From this, I hope that we learn lessons which
will help vendors compete in the future of this race, and
encourage best-of-breed products.
First, we must realize is that organizations do not really want 30+ EJB vendors in the market. No market can bear that many competing vendors. It's simply too difficult for an organization to choose which product to buy. And once a product is selected, the chances of finding developers that understand that product are slim to none. Society naturally wants a single leader within a small ring of 2-3 dominant EJB server vendors. Other vendors may exist, but will fill a much smaller need.
Once the ring of dominant vendors form, those vendors will have a much easier time competing. The reason is because an ecosystem of products, tools, and people begin to form around those vendors. Examples today include EJB testing tools, IDEs, and EJB components. This phenomenon of an 'ecosystem' forming around dominant vendors forms a powerful network which is hard to break in later stages of the race, because a network of businesses are helping the EJB server vendor to remain dominant. This means the dominant vendors in the early race will gain massive benefits later on, if they can hold on to their positions. And unfortunately, the rest of the pack will have a tougher time competing, because they don't have such an ecosystem. They will find it much more challenging to find other vendors to integrate with them, find professional services orgnizations to partner with them, to hire developers that understand their product, or to find customers to purchase their products. Thus the struggle to become dominant in the early race is of paramount importance.
So what are the key reasons why these vendors are positioned as they are?
* Existing, loyal customer base. IBM reigns king here, and this is the primary reason why IBM WebSphere is a contender today. They have massive market share with CICS, and those customers will be given a natural path to become WebSphere customers. Other vendors with strong existing customer bases include Iona (OrbixWeb), Inprise (Visibroker), iPlanet (Netscape Application Server / Kiva), and BEA Systems (Tuxedo).
* Word of mouth. This is the best form of advertising an application server vendor can hope to get. A classic example of this is GemStone's product. There is a cult of developers that are enamored with GemStone because of the high quality of their product. Orion has a noteworthy cult as well, because their EJB product was first to implement many of the J2EE API's and is free for developer use.
* Getting the product into the hands of developers. This is important to form a community of developers that understand an EJB product. After all, you will likely buy the product you are most familiar with. BEA has executed quite well here. They've bundled their product in many media, such as bundling a CD-ROM in books (including my own EJB book), bundling free CD-ROMs with Java magazines, giveaways at conferences, and free downloads of their product from their web site. Many other vendors were hesitant at first to offer free downloads of trial products, perhaps because they were concerned with intellectul property issues. Today, those vendors are paying gravely for that decision.
* Being compliant with the latest specs. BEA and Orion have shined here. BEA was 6 months ahead of the pack with their EJB 1.0 product, which positioned them extremely well. Orion has unofficially been supporting many of the latest J2EE specs (probably the first independant vendor to support EAR files). BEA and Orion are currently the market leaders in EJB 2.0 compliance. Both vendors have had EJB 2.0 beta features for months now, and are close to full support.
* Ease-of-use. Again, BEA and Orion get top marks here. Installing BEA application server on a Unix machine has been a simple process of unzipping a file. Deploying a complete J2EE application in Orion requires adding an EAR file and two lines to the Orion config files. Some other vendors have been much more complicated, which creates undue confusion for developers.
Today, the two products that are emerging as dominant are BEA WebLogic, followed by a more distant IBM WebSphere. Other vendors that still have a strong chance in the race include ATG, Inprise, IPlanet, Gemstone/Brokat, Allaire, Oracle, Persistence, Silverstream, Bluestone, Sybase, Orion, and jBoss (open source). Many of them have superior products, and still have a chance to enter that dominant ring. It is their challenge to execute perfectly over the next 6-12 months for that to happen. They will also need to show demonstrated value above-and-beyond simple EJB servers, by offering solutions that are either industry-specific, or provide additional value, such as personalization or workflow support.
I don't know about you, but I can't wait to see who's left standing when the dust settles. The end-game of this race will be interesting indeed.
By Ed Roman, CEO The Middleware Company, author of the book "Mastering
Enteprise Java Beans and the Java 2 Platform, Enterprise Edition".
________________________________________________________________
The SIGS JavaPlus Conference (Oct 29 - November 1) is returning to Silicon Valley next week for the 6th straight year in a row. This excellent conference features a wide range of enterprise Java sessions and and expert speakers, along with some of the most important vendors participating on the exhibitors floor.
URL: http://www.javapluscon.com/index.asp?tss
Some of the not-to-be-missed talks include:
Monday, October 30
9-11am
Java Data Objects
David Jordan
11:15 - 12
Keynote Address
Java and Emerging
Technologies Drive the Future of e-Business
Dr. Scott
Dietzen, CTO, BEA Systems
2-3:30pm
Developing Dynamic Web Sites with JavaServer
Pages
John Zukowski
6-8pm
Using JSP and XML Together
Alex Chaffee
Teusday, October 31
9-11:30am
What's New in JSP 1.1 and Servlets 2.2?
Mischa Davidson
2-3:30pm
Building A Unifying Enterprise - The Service
Based Architecture
Robert Abate
3:45 - 4:45 pm
Expert Panel With Ken North: Scaling
with Application Servers, Middleware and Databases
Complete program information can be found at http://www.javapluscon.com/index.asp?tss
________________________________________________________________
In our last newsletter (http://www.theserverside.com/resources/news1.jsp), we introduced the concepts of pessimistic and optimistic concurrency. One problem was mentioned that developers must face whether their app. server/ database utilizes pessimistic or optimistic concurrency is dealing with stale reads / updates.
Pattern: Long-Lived Optimistic
PseudoTransactions
(aka. Version Numbering)
Motivational Scenerio:
A user goes of the website goes to edit his user profile. Naturally, the user profile is represented as an entity bean in the back end. So the web tier looks up the user profile and obtains a value object copy of the entity bean, and populates the edit profile webpage with it. Meanwhile, some other part of the system changes that user profile, so the copy used to populate the webpage is now old. Then the user finishes entering his changes and clicks submit. It would be desirable to detect that there is a transactional collision (T1 reads, T2 reads, T1 writes, T2 writes over T1's changes...hence we have a race condition). Once we detect the collision, we can allow our application, and in turn the user, to handle the case appropriately. No problem, this is what transactions are designed for. Only, there is a problem... the "transaction" representing the users update through the webpage could potentially live 15 minutes or more since there is no guarantee how low the user will take to enter his changes. Therefore, JTA is not appropriate for this. We need a way to detect the transactional collision without requiring the transaction live longer than a few milliseconds.
General Idea of the Pattern:
To trap the collision we simply need to recognize that the version of the data loaded by the user during the page display is not the same version as what the user is overwriting during the submit update operation. So we add a new integer field, version, to both the entity bean and the database to do just this. Everytime a change is made to the entity bean, the version number is incremented. Now in our scenerio, the user loads version 4 in a transaction that lasts just a few milliseconds. Then elsewhere in the system, someone updates the database so it now contains version 5. When the application goes to enter an update on behalf of the user based on version 4 in another transaction (which lasts just a few milliseconds), we can discover that version 5 is already in the database, trap the error, and handle it appropriately, perhaps by asking the user "The data in the database has changed since you last loaded it. Are you sure you want to overwrite?". This is very similar to when two text editors are editing the same text file, and one notices that the other has saved and asks the user if he wants to reload.
How it works:
+ In the entity bean (and in the database) add a new
integer field called version.
This number starts at zero and increases monotonically (we'll
talk about when this happens later).
+ This field also shows up in the
value object copy of the entity bean. For simplity sake,
we'll make getValueObject and setValueObject be the only two business methods on the bean
(although this isn't required.)
+ Whenever getValueObject() is called on the entity bean, all fields are copied over to the value object, including the version number.
+ Whenever setValueObject() is called,
several things can happen:
1) if (valueObject.getVersion() !=
this.getVersion()) an exception is thrown indicating the state
of the entity bean has changed since the value object was obtained from the entity
bean.
2) if (valueObject.getVersion() == this.getVersion()), the
state of the entity bean is updated and this.version is
incremented by one.
+ Both getValueObject() and
setValueObject() require the transaction attribute
TX_REQUIRED.
Why it works:
+ If getValueObject() and setValueObject() occur within the same transaction, then the app server already guarantees us the appearance isolated view of the entity bean, so we don't have to worry about collisions.
+ If getValueObject() and
setValueObject() occur in seperate transactions, and the
version counter in the database is incremented from 4 to 5 by
another process occuring between the get and the set, during
the setValueObject method, we detect that
valueObject.getVersion() is 4 and entitybean.getVersion() is
5, and we know the collision occured and can handle it
properly.
Other possible implementations:
+ We could use a conditoinal update in the ejbStore() method, using something to the effect of "Update EntityBeanTable e .... Where e.id="myPrimaryKey" e.version=4". However, this requires bean managed persistence. I prefer the implementation above because it works for all types entity beans.
Assumptions:
This pattern makes the assumption that during the entity.setValueObject() transaction, ejbLoad() setValueObject() andejbStore() will all occur while there is a lock on the items in the database (Pessimistic Concurrency). If our app-server/database doesn't provide this guarantee then things break about 1% of the time (when two separate transactions are trying to write at the same time, see the last newsletter).
by Doug Bateman, Vice President, The Middleware
Company
The topic of how to recover from Optimistic Concurrency Collisions will be covered in the next newsletter.
________________________________________________________________
TheServerSide.com has been providing an application server review repository since its inception. This repository has helped developers learn from each others exerperiences, choose the right application servers and avoid the wrong ones. If you havn't posted a review of an application server yet, be sure to post one. Not only can you win $100 as part of our contest, but your review will help others learn more about application servers and help J2EE projects around the world by learning from your experiences.
Manikandan Chandrasekaran and Robert McIntosh are winners of the September Application Server review contest. Manikandan and Robert have each won $100 for their posts. The next contest has already began, and ends on November 31!
From "Gemstone/J
provides scalability and reliability", by Robert McIntosh:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
After an evaluation period of a few
months consisting of IBM's Websphere, BEA's Weblogic,
SilverStream and Gemstone/J, we chose Gemstone for several
reasons. It's two biggest technical advantages are it's scalability
using multiple VMs and it's object database.
Read the rest of the review at: http://theserverside.com/reviews/thread.tss?thread_id=741
From "IPlanet App. Server 6.0 review", by Manikandan
Chandrasekaran:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
My
experiences can be summarized in the following sentences:
a. After the
iPlanet app builder crashed a couple of times, I started
compiling and deploying the entire project using build files
and command line utilities. The build utility I used was ANT
(from Apache) for compiling and deploying the J2EE application. Once
the build files are created, the compiling and deploying
is good.
Read the rest of the review at: http://theserverside.com/reviews/thread.tss?thread_id=873
________________________________________________________________
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
EJB 2.0 Proposed Final Draft released
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sun has released the proposed final draft of the the EJB 2.0 specifications. The J2EE 1.3 and J2EE Connector Architecture 1.0 proposed drafts have also been posted.
http://theserverside.com/news/thread.tss?thread_id=1676
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
HP to acquire
Bluestone Software
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Hewlett-Packard
Company and Bluestone Software, Inc. today announced the companies have reached
a definitive agreement under which HP will acquire Bluestone in a
stock-for-stock strategic transaction. This is certainly good news for
Bluestone. This veteran among application server market will know be able to
compete against IBM, BEA and Sun, under the "HP" label!
http://theserverside.com/news/thread.tss?thread_id=1662
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SIGS JavaPlus Conference
(Oct 29 - November 1) fast approaching
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The SIGS JavaPlus Conference(Oct 29 - November 1) is
returning to Silicon Valley next week for the 6th straight year in a row. This
excellent conference features a wide range of enterprise Java sessions and and
expert speakers, along with some of the most important vendors participating on
the exhibitors floor.
http://theserverside.com/news/thread.tss?thread_id=1600
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
IBM releases HTML
to Wireless conversion tool
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
IBM Corp. is releasing WebSphere
Transcoding Publisher Version 3.5. This new offering is built
on a Java-based architecture and is designed to convert HTML
and XML data and applications to other formats, such as WML
HDML, and i-Mode, a packet-based information service for
mobile phones. WebSphere
Transcoding Publisher Version 3.5 will be available
Nov. 24. It will be priced at $30,000.
http://theserverside.com/news/thread.tss?thread_id=1614
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Microsofts Ballmer: Sun has no clue
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Microsoft Corp. CEO Steve Ballmer sparred
with Gartner Group Inc. executives over a wide range of issues
at yesterdays morning's "Mastermind Keynote" interview at
at the Gartner Group's IT Expo, but he reserved
his hardest jabs for rival Sun Microsystems Inc.
http://theserverside.com/news/thread.tss?thread_id=1582
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sybase EAServer 3.6.1
achieves J2EE certification
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sybase EAServer 3.6.1 (to be shipped in a
month) has passed Suns comprehensive J2EE compatibility test
suite again (they made the same announcement back on July 31,
but never shipped their app. server), adding Sybase to the list
of 4 vendors that will soon be shipping J2EE compliant application
servers: BEA, IPlanet, Sybase and ATG.
http://theserverside.com/news/thread.tss?thread_id=1560
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Microsoft .Net is four
years behind Java
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Mark Driver, research director for
ebusiness technologies at Gartner, said Microsoft has failed
in its first battle to kill Sun
Microsystems' Java, but the war for control of
the multi-billion dollar application development market is not over.
http://theserverside.com/news/thread.tss?thread_id=1544
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Kawa 5.0 IDE now supports
JSP tags
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A favourite IDE among many developers,
the simple but powerful Kawa IDE from
Tek-Tools has added JSP support to their latest beta version
of the soon to be released Kawa 5.0.
http://theserverside.com/news/thread.tss?thread_id=1520
________________________________________________________________
Public classes will
soon be available for Enterprise Java Beans and Java 2, Enterprise Edition
The Middleware Company is proud to announce that we will soon be offering public courses in a city near you. Turning your developers into experts is important, but many companies don't have the resources to justify one week of onsite training. To help you get your key people ready and qualified to write your mission critical J2EE system, The Middleware Company is now providing our courses public venues in major cities across North America.
For more information, stay tuned to our website in the
coming weeks:
http://www.middleware-company.com/index.html?newsletter3
The Middleware Company has job positions available
How would you like a job where you can work with industry experts, where your companies mandate is to help you become an expert yourself? How would you like to write magazine articles, speak at conferences, and truly master EJB? The demand for J2EE training and consulting is exploding, and The Middleware Company needs your help to meet this demand. We now have job openings for ambitious, adaptable professionals interested in training and consulting with todays cutting edge technologies including Java, J2EE, XML and EJB.
For more information, visit:
http://www.middleware-company.com/jobs.html?newsletter3
To unsubscribe from TheServerSide.com's biweekly
newsletter go to:
http://www.theserverside.com/home/newsletter.jsp
TheServerSide.com J2EE community is brought to you by The
Middleware Company. The
Middleware Company is an advanced
training and consulting company dedicated to server-side
Java. The Middleware Company offers onsite training
courses in Java 2, Enterprise
JavaBeans (EJB), the Java 2
Platform, Enterprise Edition (J2EE), and the Extensible
Markup Language (XML). They also aid in the design,
development, and deployment of
middleware solutions. Visit
The Middleware Company at:
http://www.middleware-company.com/jobs.html?newsletter3
© 2000 The Middleware Company.
Published on: