|OMIX WHITE PAPER|
General Technology Environment – My overall view is that despite the fact that our industry is in a serious downturn right now and investment is not happening at nearly the levels of the last decade, innovation continues, and Moore's law continues. Computers are continuing to get faster and memory spaces are continuing to get larger, disk drives are continuing to expand and now you can create applications that weren't possible even a few years ago. So that is the good news, not necessarily for people who are running spreadsheets on desktops, but it certainly helps people who are pushing the limits of what the technology can supply, for example users of applications that are graphics intensive for example, or people with server side applications that need to support an expanding base of users. It is now possible to do more and more at less and less cost. The technology industry is alive and well, although it is seriously under funded right now.
Architecture – I think that what has happened in the last few years is that the technology that used to support Web applications has matured a bit. For example on the Java side of the equation, we continue to see the evolution in the code that supports the Java multi-tier architecture (i.e. Web server front end, application servers in the middle tier and a database in the backend tier) so Sun and all of its partners continue to put out Java APIs (application program interface, a way for programs to talk to one another) free that support application development that do a better and better job of being able to deliver HTML content to the desktop. It means that is possible to create applications that are more dynamic by building on top of APIs that are supported by the Java partnership community. And of course Microsoft is doing that on their side.
Web Services - On top of that we have the whole Web services trend that is going on that makes it possible for enterprises to exchange data more freely than ever before. Enterprise data has traditional been bottled up in individual silos. Web services make it possible to build on a set of standards that can be used to exchange information between these silos. So increasingly we should see the free flow of information within an enterprise and also between enterprises (the longer term hope). At this point much of the work going on in actually implementing Web services applications is going on within corporations and much of this work can be characterized as being experimental. The longer-term hope for Web services is that it will provide a mechanism for application discovery between enterprises and then the exchange of information. We are now seeing Web servers starting to expand outside of the enterprise on the open Internet. For example we are seeing that outfits like eBay and Amazon are beginning to make available application interfaces that are based on Web services for their environment.
J2EE Architecture - (Java 2 Enterprise Edition, software standard for building enterprise level applications) Continues to develop and evolve. For example, in the EJB world (Enterprise Java Beans, a standards based programming method for grouping business logic inside of a software object, or bean) has seen the emergence of EJB2 that makes it possible to develop containers (hosting environment for beans) that are smarter about how they interact with the database, so there are more compelling reasons to not write SQL code in your beans, but rather to have the container to manage interactions with the database. The performance is also getting better along with the intelligence on how the interaction ought to occur. More and more is being built into the container. In the EJB world, among the implementation groups, there is still debate about whether it is a better strategy to turn persistence over to the EJB container or whether it is better to handle this on your own. This debate will continue to go on. The good news is that a lot of thought has gone into making the container smarter and more efficient.
Web Services vs. J2EE Architecture – The way the Java community has handled this is they have developed a set of APIs that support Web services that write right on top of the J2EE architecture so it is not really a replacement for it. I do think that within Sun and within the Java community in general there is an understanding that there is a need for different kinds of applications. In other words, applications that don't require big time scalability may not require all of the tiers of the J2EE architecture. For example the EJB layer is a layer that works well for enterprise class applications or applications that need to scale to handle very large loads. However, that layer may not be appropriate for a whole other class of applications that are more modest in their demands. For example you can use the JAX Pack (a collection of APIs that Sun makes available for the implementation of Web services) API to implement Web services that are based on a servletts (Java code that resides on the server, but creates HTML pages on the client that can change depending on what is in a database) implementation and the servletts will communicating more directly with the database rather then working through a J2EE layer. If your application warrants the transfer of information to another server environment or to a data rich client (i.e. locally running desktop application) then it makes sense to look at using Web services for that, but depending on the scalability needs of the application, it may make sense to invest more or less in all of the tiers of the J2EE architecture.
XML - (eXtensible Markup Language which defines data format in a similar way that HTML defines the visual format of a Web page, except that XML can be expanded to define almost any kind of data used for any purpose) - XML is the basis for Web services. So when it comes down to what you are dealing with at the lowest data level, you are dealing with XML messages. XML is built into the other technologies (Web Services & J2EE) that we are talking about. There are extensions that are taking place with respect to XML technology. XML started to show up five or six years ago, I guess as a way to exchange data, and XML technology has taken its own arc in terms of its own evolution. So it continues to evolve and there are new facilities that are being built on top of it and new standards are being defined. At this point it has matured pretty well and it is used as a basis for technology that has been built on top of it.
JSP - (Java Server Pages, a standard way to write a Java server code to define HTML pages for browsers) - I think that the servlett architecture that underlies Java Server Pages technology is here to stay. It is a higher performance way to deliver content via HTML or Web services content than virtually anything else that is out there, so I don't see servlett technology or JSP being replaced. It is evolving however.
Struts – Struts is a really interesting architecture first of because it is based on a design pattern that goes back to some of the first object oriented work that was first done at Xerox PARC. So it is based on the Model-View-Controller architecture (the architecture that Xerox Smalltalk used which described software objects by what "controls" effect it like the keyboard our mouse and then by what processing the "model" performs and by the "View" which would be the visual output of the object) and what it does, is that it forces you to separate the presentation of data from the action that is being taken on the data and from the data model. This means you have three different things that you are dealing with and they are separated from each other. This makes it easier to maintain the code once it has been developed and it also makes it easier to add functionality because you can concentrate on the area that has been effected rather than deal with spaghetti code where business logic and presentation are all mixed together which is the world that existed as the Web was getting started. Struts is one innovation in this direction. Sun has its own initiation going, but at this point Struts will probably win out. The reason is Struts was first to market, Struts is an open source initiative that was put together by the Apache group, and because Struts has been out there longer, there is quite a bit of momentum behind it at this point. Now there has been a lot of applications and designs to use it.
Public Domain Operating Systems – This is really one of the most interesting trends going on in our whole industry right now. There is community process that allows highly skilled developers to organize themselves to create large bodies of work such as operating systems like LINUX, the Apache Web Server, the JBoss EJB Container, or the Tomcat servlett engine. These things are all examples of large code bases that have been developed in a community atmosphere and I think they pose a significant challenge to traditional commercial application development teams. You can see that LINUX has made significant inroads into the commercial world. It is just hard to compete with an operating system that is freely distributed for a very small charge. I think Microsoft and certainly Sun at this point have their hands full in finding a response. The thing that is saving Microsoft right now I think is their Office Suite. The fact that they basically have an application suite that everybody uses. So the way that we exchange documents with each other is by using this application suite and I think that is helping maintain a headlock on the whole software industry. They definitely don’t have [a headlock] on the server backend and Sun has given them a really good run for their money their. We are seeing that Sun has missed a really good opportunity with the appearance of LINUX verses their own Solaris X86 operating system. They really did not put much support behind Solaris X86 and so it has really died on the vine at this point and LINUX has taken off. All of the significant industry players are embarrassing it including Sun and IBM. At this point there is a tremendous momentum behind it. I have installed both Solaris X86 and LINUX. LINUX is pretty hardware tolerant, it goes in and installs within minutes on most any hardware combination you can buy, where as Solaris X86 is very picky about the combination of pieces that you use and that reflects that Sun has not put much energy into that product.
Open Source Servlett Engine - The same is true in the other realms. For example Sun has basically adopted Tomcat as its reference implementation. So even though Sun is responsible for defining the Java APIs (Application Programming Interface, the way programs communicate) for the server containers, it's been the open source that has really created the server container that has been adopted by Sun as its reference implementation. This is the kind of thing going on in all of these domains.
Open Source J2EE Application Servers - If we look at the EJB container world, JBoss has in some ways leapfrogged the commercial application servers. It was among the first in the market to introduce the concept of hot deployment of beans (introducing new business logic code without having to bring down the app server) and now the commercial guys have figured out how to do that too. It really is impressive to me that this group (some were from Sun) was able to put together an EJB container that is freely available and provides a pretty good set of APIs. The JBoss application server environment when paired with Tomcat would be enough to support most EJB applications. I think this should be a big concern of BEA with their WebLogic product. They were first to market with the WebLogic application server, which was really an excellent piece of technology then, but it was one of the few available in the marketplace. I think the application server marketplace has pretty much shaken out since its inception six years ago or so and there are only a few players that can really survive in that market but they are all being challenged by the open source guys.
Open Source Support - The knock on the open source guys is that support is an issue. I have to say after playing with all of these open source platforms that we have been talking about, the first time you bring them up and you start to deploy with them, you do spend some time trying to figure out how it all works. The documentation is often sparse that comes with the installation, but what I have found is that there are lots of developers that are doing the same thing out there and there is a whole community of developers that are posting questions and answering each others questions so that the support comes in a different form. Open source support does not necessarily come the people who created the open source product, but from the larger community. We love WebLogic and we love BEA, but I think they will have a significant challenge on their hands. They have got some very bright people and if you stack up their offerings against the open source offerings, I think that BEA is selling more. Certainly anyone who is looking at doing a highly scalable commercial application would do well to considering bringing in BEA's solution and paying for it. However, for the whole body of applications that don't require the volume and functional extensions that BEA is supplying and programmers can solve their problems without having to pay the tens of thousands of dollars for the application server. At this time, especially when so little money is available for the creation of applications, deploying on an open source application server can be pretty compelling. BEA has also added functional enhancements or layers on top of the application server and those are useful if your problem fits the profile of the solution they are providing, but there are many cases where you are faced with solving a problem that does not exactly match that profile. You don't get any source to work with, so what you get from them is what you get and you have limited capabilities to extend what they provide. If you are working with an open source platform you may have more work to do to produce a layer that solves your specific problem, but you own the source and you can do what ever you want with it.
.NET – Microsoft does not exactly compare to the application server world. With the next release of their server products they are introducing a multi-tier environment that supports the .NET software architecture, so I think their story is getting better. The big news is that they have developed a really interesting set of tools for creating Web services that makes rapid deployment a possibility and I think that's probably the most impressive part of the technology that they have developed. They have create a C# language which is obviously patterned after Java, it's not fair to call it a direct copy, but it is at least a clone of Java and one that they can use to their own purposes. It is clear that their orientation is to own all of the pieces of the puzzle. The Java community is a community and Sun does not own all of the pieces to it. When they want to develop a new API they need to go through a community process and Sun does not even get the last vote on how it turns out. The orientation of the two groups is radically different. In terms of the technology they are both offering, the good news is that the .NET technology plays well in providing Web services with same set of services that are being provided by the Java community. Regardless of whether a Web service application is developed in the Microsoft environment or whether it is developed in the Java environment, the two should play together. That is the most important thing about the Web services phenomena. At least in my view, the Java community has a better offering for supporting large-scale applications. If you look at the kind of virus attacks that are being launched, the most noticeable attacks are being launched against Microsoft products. I know this has become more of a concern for them and they talk about it more in their internal discussions, but it is still an ongoing problem for the folks who need to run Microsoft based sites.
IBM's WebSphere – It seems to me that IBM is winning market share and BEA's is decreasing. From what I know, my impression is the IBM's technology is about one half step behind what BEA is providing. On the other hand they make up for that in their massive representation. When they want to close an enterprise deal they bring to bear the resources required to close these deals.
Security – Certainly the whole world of security is of increasing focus, especially since 9/11. With our country it has become more and more of an urgent issue to be concerned about protecting their assets. What is happening in the firewall world is that firewalls are getting smaller and less expensive so it is possible for small businesses to install and maintain their own firewalls for a fraction of the cost that would have paid six or seven years ago, like $500 as apposed to $30,000. It has become more of a commodity item.
Wireless - The introduction of wireless has opened up a whole Pandora's box in the security world. Since I am doing work in that realm right now, I am seeing that wireless technology is just so compelling. People want to compute without being tethered and wonder through their businesses and have conversations with their laptops that continue to function regardless of where they go. That is so compelling and that is being adopted pretty broadly, although large enterprises seem to be taking a position much like they did when the Internet started to appear. They didn't want anything to do with it. In fact it is a technology that has taken off despite that fact we are in a miserable economic downturn, companies that are manufacturing and selling wireless are thriving. The other thing that is going on is that like all other hot technologies it is becoming a commodity business, so any one that is dealing with these products are making slimmer and slimmer margins over time and have to sell more and more of them. We are seeing these first generation products just fly off the shelves and they being installed everywhere and I am sure that there are a lot of clandestine installations within enterprises that officially have a policy against using them. The other thing about them is that the first generation products are often installed with encryption turned off which means that anyone within the region of one of these wireless access points can associate [connect] with the network and potentially tap into sensitive data. There is a lot work being done to plug these holes right now but at this point somewhere around 80% of these networks are going in with encryption turned off that anyone wondering in the vicinity can associate (connect to). Windows XP has a feature built into it that if your PC has a wireless adapter in it, it tries to go out and find networks that it can attach to. It will then bring up a little balloon that tells says, "I found a wireless network, do you want me to attach to it" and if it is open (non-encrypted) it will. Some people are just not caring whether their wireless network is secure are just using a laptop based firewall, however any other machines that are on the network and not using a local firewall are open. It does leave open the possibility that depending on how the firewall is configured, the machine itself may still be open to attack if it is still visible to the network. For example if file sharing is turned on, the firewall may or may not deal with that.
E-Commerce – Generally the volume of business of commerce on the net just continues to rise despite the fact that most physical retailers had a dismal Christmas season. The volumes for e-tailers that are still standing continue to increase. Its likely to continue to get better and better. The sad thing is that e-commerce is fundamentally a good idea, but the people who put money into this in the late 90’s did not have a long-term orientation. They wanted to make big returns on their money in a short period of time and when that was not happening they stopped funding these things and pulled money out. At this point the idea of starting and e-tailing business is just ridiculed and no one is doing it. The guys who are still in it, the survivors are continuing to watch the sales volume increase. It is a very mixed picture at this point.
Business to Business – The B2B world is going to be significantly impacted by Web services. Anyone that developed a B2B exchanged based on technology that was available three years ago is going to have to replace it. The emergence of Web services makes it possible to do B2B interactions in a whole new way and to develop applications much more rapidly that was possible with products that were developed three years ago or before. Companies will find that they can use Web services from companies such as eBay to rapidly develop of applications for enterprises that want to deal with excess inventory. This will shorten the development cycle for anyone who is interesting that kind of exchange.
Application Server Provider (ASP) – This was a concept that was compelling in terms of building a new business because it provided a subscription stream of revenue as apposed to developing new applications and selling them retail. I could see the compelling reason for putting up ASP services, but I am not sure that they have panned out very well for a number of reasons. There are concerns when one of these goes up about whether or not it will be there. An enterprise that is going to outsource their data like this is going to be relying on the service to be available. If it suddenly disappears because of financial failure, the enterprise is put into a very vulnerable position. This means there is a natural reluctance to take sensitive enterprise data and move it up to an ASP environment and that is one reason that these guys are struggling.
Broadband – The other trend that is important but going on slowly in the background is the emergence of broadband. It's till developing. The whole telecommunications industry has tanked and yet broadband services continue to trickle out to end-users. Although broadband services are imperfect in a lot of ways, it makes it possible to install high bandwidth pipes into homes at pretty reasonable rates, like $40 per month to get significant bandwidth at least in one direction. That makes it possible to deliver applications that weren’t really possible 6 or 8 years ago. I think we will see more and more happening in the broadband world. As broadband continues to rollout you really need to change how you think about delivering applications.
Hardware – I don’t see any radical changes at this point. I just see machines getting significantly less expensive and faster. I know that when we started our business in 1994 we bough top end desktop machines that were running at 200 MHz at that time and now the current top end machines are running at an excess of 3 GHz. So now we are here 8 years later and we are getting 15+ times the performance. The machines are now selling for $1,000 as apposed to $3,000. As far as Sun vs. the PC hardware, Sun really has an uphill battle to fight. As PC performance continues to improve, and LINUX becomes universally available, it becomes possible to build farms of machines at much less expense than buying a heavyweight Sun server. So I think Sun has a significant challenge on their hands.
IP Space – There has been concern for sometime that the IP (Internet Protocol which controls how packets are sent over the Internet and it uses numbers such as 22.214.171.124 to identify the nodes or machines), space is running out. If you look at the IP numbers assigned to individual machines (and sometimes multiple numbers assigned to machines) it is evident that the numbers will run out. At anytime when I am walking around, I may have three computers that I am carrying, so each one may have an IP address associated with it if it is going to do Internet activity and if you multiple 3 times the number of people in the world and the number of servers needed to supply the information to these people, then the size of the IP space becomes a concern. There is a new standard that expands the size of the IP space and it is being built into all of the new routing equipment that is being offered and it is being built into operating systems. At this point it is typically technology that is dormant that you can turn on as you like, but I would see a switch over to this extended IP space as time goes on. The guys making the equipment are trying to do this in such as way as to minimize the pain.
Recession Problems – The main problem is an economic problem right now. We have got to get through this terrible cycle that we are in where people are afraid to invest in technology. Technologies that are used to create the infrastructure are continuing to innovate. As the funding levels start to come up then I think that you will see a whole new set of applications based on those technologies begin to emerge. However, right now it is so hard to get anything funded, the VC firms have basically clamped way down.
After the Recession – What we will see is that as the whole economy begins to turn, we will see companies begin spending on their infrastructures again. They will be looking at what is possible with the technology that has been developed during this downturn and they will want to replace what they have. They also will want to begin to fund new kinds of applications. Many of these new applications will be built on Web services technology that will make it easier to exchange information between the information silos that they have now. When this turn around happens, there will be a significant opportunity for people who are positioned to take advantage of it.