

No More Middle Ground for Middleware
May 17, 1999
By Richard Hoffman
New paradigms of software design, implementation, deployment and management are taking hold in the enterprise. Middleware products are developing robust feature sets and complete IDEs (integrated development environments), Java is maturing and faces an uncertain future, e-commerce is embracing more and more standards, and the Open Source movement is charging ahead.
As a result of these changes, IT managers must make development decisions that affect the underlying architecture for the entire IT infrastructure. They must decide which platforms and OSes to support, whether to develop traditional client-server models or move to an n-tier/thin-client architecture, and whether to embrace distributed object technologies (which influence OS decisions).
Power of the Middle Class
Middleware once meant "products that help you connect something to something else." Most middleware products still do that. Now, however, many middleware vendors are moving into the application-server space. Products such as Allaire Cold Fusion and SilverStream Application Server are adding features and producing not just robust communication and connectivity services but an IDE complete with source-code control, deployment and management features, and debuggers. System-level services--such as the failover, load-balancing, security and performance monitoring services found in Apple's WebObjects and Bluestone Sapphire/ Web--add robustness and manageability.
The use of dedicated application servers is part of a movement to n-tier architectures and distributed component technologies such as CORBA, DCOM and Enterprise JavaBeans (EJB). In some respects, these trends simplify development. If "business logic" resides on the semi-centralized middle tier instead of on client machines, it's easier to update, distribute and synchronize code, and more tightly manage version control. Using browser-based or other thin clients allows applications to be deployed across a heterogeneous client base without rewriting or recompiling. And centralized or semi-centralized middle-tier logic makes it easier to manage data-source connections and provide robust system-level services.
But there's a cost for such so-called simplicity. CORBA users have known for a long time that implementing distributed systems involves trade-offs in performance and complexity. A good middleware infrastructure must simplify development by providing a coherent, clean execution environment, as well as an integrated application development environment.
Whither Java?
Java received lots of well-deserved attention this year. It has evolved from a programming language with an attractive "write once, run anywhere" promise to a middleware infrastructure, thanks to the addition of services, such as Java Transaction Services (JTS), the Java Naming and Directory Interface (JNDI), Java Messaging Service (JMS) and the Java Management API (JMAPI). Where attention had originally focused on client-side and browser-based Java applets, server-side components and system-level services have taken the spotlight.
Still, Java faces some uncertainty because of its sometimes-rocky development process, and conflict between Sun Microsystems and other vendors--most notably Microsoft. The Redmond giant has attempted to "embrace and extend" Java, and, not coincidentally, dilute and reduce its usefulness as a true cross-platform tool. With recent court decisions generally supporting Sun, Microsoft has stated that it may drop support for Java altogether in favor of its alternative object-oriented language code-named "Cool." Such a move could seriously affect Java's future, but could be preferable to the alternative of fragmentation from within.
Despite the uncertainty, the next year promises major development and increasing maturity in the Java environment, features and services, along with a growing number of large-scale implementations. EJB will, in conjunction with elements of the CORBA infrastructure, provide a solid alternative to Microsoft's COM/DCOM, and that competition will be a victory for application developers.
Getting the Business
As more companies put their businesses on the Internet, important trends in e-commerce are emerging for both electronic storefronts and in supply-chain, distribution and other business-to-business applications.
First is the continued move toward standards-based solutions. Almost no company can guarantee that all of its customers, suppliers and distributors use a particular software package, so interoperability and standards support is critical. The use of OBI (Open Buying over the Internet), EDI (Electronic Data Interchange), SET (Secure Electronic Transaction), the SSL (Secure Sockets Layer) protocol and widespread interest in the XML specification all indicate maturation and standardization in e-commerce. IBM's Net. Commerce and Netscape Communications Corp.'s Xpert family of products are particularly strong in this area.
Second, business rules are beginning to be decoupled from program logic. A few new e-commerce and application server packages, such as Vision Software's Jade and Apple Computer's WebObjects, allow business rules to be monitored and modified by business managers instead of programmers and IT staff. When these tools are implemented in a robust manner that doesn't undermine the system's integrity, IT staff can take care of programmatic and development issues, and business managers can deal with business processes and rules.
Source Spots
Development is also affected by the strength of the Open Source movement, exemplified by the success of Linux. This has a huge impact on vendors, but what does it mean for most enterprise IT shops? What happens if application servers, databases and development tools begin following the commoditized, open-source model?
On the upside, IT shops can have greater impact on the feature set and functionality of their infrastructures. And product features can become more diverse without becoming bloated monsters.
If Open Source's progress continues, component-based programming will take a big leap forward, too. No longer will a single vendor team develop monolithic software packages; a core open-framework architecture will exist, and the software market will consist of bite-sized components written by scattered teams and individuals. IT shops will have their pick of "standard" bundles of components to create, for instance, a database system. Customization for individual needs should be as easy as picking some specialized third-party components and plugging them into the package, or writing your own modules.
On the downside, building an application by component is more complex than having a single team develop the product. If there's a flaw in the architecture, or if teams don't adhere tightly to the spec, hard-to-trace errors can creep in. Furthermore, if "standard" applications used within a single organization feature dozens of configurations, configuration management becomes far more complicated.
Killer Apps and Other Myths
Finally, what is the "killer app" in the development area right now? One possibility is the application server, which is making inroads throughout the market, and changing the face of the development environment. Judging by the number of companies jumping into the market, application servers are being seen as a potential cash cow.
But the biggest problem facing developers and IT managers in the next year is a familiar one: complexity. N-tier, distributed component, object-oriented, Web-enabled, fault-tolerant, asynchronous, back-end legacy-data connecting systems will become more complicated to develop, deploy and manage, and that simply is not practical. Budgets won't spontaneously grow, skilled staff won't magically appear and the computing infrastructure won't suddenly become homogeneous, so tools to minimize complexity are a must.
That's where these technologies--CORBA, DCOM, EJB, e-commerce, Java, n-tier and business-rule modeling--will succeed or fail. IT shops need more tools and better ones to manage code distribution and versioning (especially when dealing with distributed, component-based systems), performance/Quality of Service measurement and development team collaboration, distributed object creation, Web-to-database and other RAD (Rapid Application Development) tools. The vendors who provide the most manageable products and technologies will be the heroes of IT shops.
|