Opportunities for Server-Side Java
Articles and Tips: article
01 Feb 1998
Defines the role of server-side Java in Novell's long-term strategy and in networking itself. Explains how server-based Java application development requires Java on the server that is fast and reliable, rich network services, consistent APIs, and user-friendly tools and interfaces.
- Introduction
- The Language of Electronic Commerce
- The Power of NetWare and Java
- Network-Aware Apps for an Extended Enterprise
Introduction
A decade ago Novell virtually invented networking by introducing the industry's first network operating system, NetWare. Today, the company is the world's largest provider of network software, and its name remains synonymous with the industry it helped to create.
With its roots firmly grounded in networking, Novell continuously seeks new ways to advance the businesses of its customers by developing advanced Internet/intranet software solutions. Everything Novell does is based upon providing secure, reliable and relevant networking solutions for businesses and institutions. In that spirit, the company has embraced industry-leading standards and protocols for enabling the world of electronic commerce.
The explosive growth and adoption rate of the Java platform and programming language and its extraordinary potential have prompted Novell to make Java a core element of its long-term strategy. This article defines the role of server-side Java in that strategy and in networking itself.
To gauge the growing impact of Java on the computing world, one needs only to notice the space devoted to it in the computing section of any bookstore or attend almost any information technology conference. There are good reasons why Java is becoming so popular, and that Java-powered applications are in the plans of most corporate IT departments and most major software companies. The near-perfect portability of Java applications is a great boon in a multi-platform world.
The ability to download Java applets and the close integration of Java with Web browsers make it an ideal medium for Web- and Internet-based development. And developers find Java easier to use than its popular object-oriented predecessor, C++, allowing them to develop Java-based applications faster. So, how, business people wonder, is Java going to help them make money?
The Language of Electronic Commerce
New phrases such as "distributed computing," "global networks," "mobile computing," "objects and components," "Internet commerce," and "information access devices" reflect the excitement and complexity of a new era of computing. We are rapidly moving closer to a world of ubiquitous computing, where everyone and everything is connected to a virtual network of information-specific information that is important to each person. "Virtual" because the network will be transparent, and "personal" because information can be made both individualized and location-independent.
Metcalfe's law says the value of a network increases exponentially with the number of users connected to it. Java accelerates this value proposition. If electronic commerce is to happen on networks, Java will be the new language of business. That's one tangible way Java will help businesses make money.
How to harness the power of the virtual network of personal information? Perhaps the answer is not in the technology, but in the tools to build applications and solutions that work the way we do and offer us the greatest flexibility in customization, mobility and universal access--tools that allow us easily to adapt to the dynamic change of information technology.
Java, along with Common Object Request Broker Architecture (CORBA), represents the new paradigm of distributed object computing--a language and platform that enable cross-platform, cross-device, cross-network applications and solutions that are ideally suited for a global network of computing devices. Java defines an object-oriented programming model to build heterogeneous applications and components. And CORBA defines an architecture for distributing component-based software across a heterogeneous computing environment.
When most computing professionals think of Java, they think about the programming virtues of Write Once, Run Anywhere security, cross-platform independence, object-oriented programming and universal support across a variety of Internet-enabled devices, including TVs, palm tops, network computers and other devices. Do non-programming users really care what language an application is written in, or that Java's late binding attributes offer tremendous flexibility in distributing logic across the network? Probably not.
Over the past decade of technological advancements, the fundamental needs of users haven't changed. Users just want applications and solutions that make their work easier and more productive. They want applications to work across myriad hardware and operating environments and are tired of building internal software organizations that deal with the problems inflicted upon them by external suppliers. The challenge users face is to keep up with the pace of change and take advantage of the future. They can do this with a new class of applications and solutions that work the way they want to work.
Applications and solutions must be easier to build and deploy so that, as the underlying technologies and computing infrastructure change, the logic (the things an application really does) and the intrinsic value of the application are preserved. Developers must have the flexibility to add incremental value and components to these applications, bringing them to life with the latest information for the user. Society is becoming very mobile, and users must have access to personal information through a panoply of computing devices.
This requires the applications working for us to understand us and how we work. It means that an application needs to be written to the network so when we move around, it can follow and deliver personal information in the way we want to receive it. This is the promise of Java and the promise of a new type of application that works across the network. So what does it mean to write the user's application to the network server?
To date, most Java application development and advancements have been on the client, but the real opportunity for this new class of network-aware applications is when Java is fully implemented on the server.
On the server, Java can benefit programmers via one of its strongest suits--platform independence. Java on the server allows faster performance and portability of applications. It enables development of network-aware applications, which is more important than raw processing power. Fully implementing Java on the server allows application logic to be partitioned across servers in the network--thus enabling mobility in gathering information and doing work for users.
When people log onto the network through whatever device they choose, it produces the required information in the way they want to receive it. This is one of the vast, untapped opportunities presented by Java--the building of intelligent, server-based applications that work together across the network, performing tasks automatically, spawning other applications and accessing information for us.
Information is then personalized and transparently managed in a way that removes the limitations of our personal computing devices--whether it is a PC, NC, palm top, Web-enabled TV or any other information access device.
To take advantage of this new opportunity, server-based Java application development requires several things:
Java on the server that is extremely fast, scalable, fault-tolerant and secure. Performance and scalability (clustering, multi-processor support, etc.) are paramount.
Rich network services built to open standards that not only allow Java applications to communicate and share information, but also associate Java application logic to users and personal information profiles.
A consistent set of APIs with interoperable implementations.
Easier tools and interfaces that reduce the challenges in building new server-based Java applications.
The Power of NetWare and Java
Novell's NetWare network operating system (NOS) is designed to optimize network communications and information access. It is the best platform to fully implement Java because the combination of NetWare and Java imbues server-based Java applications and solutions with optimal performance, reliability, fault tolerance and scalability.
All of the enhancements Novell is placing in the NOS can optimize Java-multi-processor kernel clustering, 64-bit instruction set, native IP and more. By repositioning its powerful NOS for the future of multi-tier computing, Novell can leverage its services better and offer its customers powerful, seamless migration to intranet and Internet computing--with no interruption to their business operations.
The performance and robustness of the NetWare NOS coupled with Java positions Novell as a key provider to support the new class of server-based Java applications that will quickly revolutionize the way people work and collaborate across the network. Currently, users derive value from the Internet primarily when using it, but that's soon to change in a dramatic fashion.
Picture, for example, a sales manager sleeping, his computer turned off. Before going to bed, he set for 2 a.m. a Java application to compile a report on sales leads for him and his staff for a meeting the next morning.
At 2 a.m., the Java server process is automatically triggered and the application goes out and compiles relevant sales data into a report. The software then finds the sales manager and his staff's user profiles through the directory and, after ensuring these individuals are authorized to receive the reports, distributes it to them through push technology to their pagers, E-mail or HTML page, depending on their preferred mode for receiving it.
The report is waiting for the sales people when they awake. The directory controls user access and determines how, and to whom, the report should be distributed.
Novell was first to license Java for the server, and the company believes it will be the first to fully implement and establish rich networking services in Java on the server to enable the creation of dynamic distributed server processes, such as the one illustrated in this sales staff example.
A leader in the rapidly growing network services market, Novell pioneered and established file and print services as the infrastructure in network computing. Today, its Novell Directory Service (NDS) offers many unique and powerful features that make it a de facto industry standard.
Novell has more than 15 network services that are vital for meeting customer demand for fast, reliable and rich intranet and Internet computing applications. Among them are GroupWise, the world's second most popular messaging product, NDS and BorderManager.
BorderManager is the industry's first integrated family of directory-based network services that manages, secures and accelerates user access to information at every point where any two networks meet; for example, where a company's intranet meets the Internet.
Shipping since August, 1997 to brisk customer demand, BorderManager underscores Novell's focus on building services that work and scale to meet the real needs of customers. Novell's strategy is to provide the best network services and the best platform for running them. Mindful of the many different systems customers have--and will continue to have--Novell's mission is to make all those systems work together. In short, to connect everything.
Network-Aware Apps for an Extended Enterprise
The networking industry faces a continuing crisis of rising maintenance costs and extremely high costs of integrating legacy systems. This has given rise to an entire sub-industry of software contraptions to facilitate connecting to a rigid, incompatible technology that organizations have become attached to, and don't want to give up, for fear of losing their entire office automation system investment.
The main reason that software becomes obsolete is not that it wears out, but because it doesn't adapt to the changing environment around it; it can't integrate with new applications and evolving technology. More specifically, software fails when a majority of its development effort was spent building the program, and not enough was spent building the program's interfaces to the rest of the world.
Historically, software development processes followed by the information technology world viewed applications as closed systems--large boxes of functionality to be filled with lines of code. Very little thought or effort was devoted to constructing or packaging applications as flexible, reusable components that could reside in the context of larger, changing computing systems. In short, software that fails isn't mobile. A needed component isn't downloadable or able to be separated from the entire application. This is a programming-oriented view of application architecture.
The future lies in an integration-oriented environment, where design efforts also focus squarely on the boundaries between elements of the system. The underlying interfaces, Java Virtual machine, Interface Definition Language, Internet Inter-ORB Protocol, Interface Repository, etc., are designed to make these boundaries flexible, adaptive, and as programming-technology-independent as possible.
This represents the tremendous business opportunity of Java on the server. This is a "software to go" approach, meaning only a piece, or component, of an application that a business or individual user needs can be downloaded and used, rather than the whole application, enabling faster, more productive work.
Real-world distributed object computing requires more than a communication mechanism; it requires infrastructure. Applications need to find objects migrating around the network that may be dormant and require activation. They need general property descriptions, rather than specific identities, to access services.
Applications need transactional integrity among groups of distributed objects. And software components that constitute a distributed system must be administered and managed through standard interfaces. The underlying mechanisms that support communication, location and other basic network services must be reliable, able to recover from errors and re-configure themselves as necessary to provide high availability.
Novell fully embraces Java and CORBA on its server platform. All of the company's rich networking services will employ Java to offer developers many more powerful ways to use their applications and solutions on the network. Over time, where appropriate, Novell will write all of its services in Java so they are mobile and portable across the network. The days (and nights) of the NetWare Loadable Module (NLM) as a cornerstone of the NetWare NOS are clearly numbered.
Novell is committed to making Java work on the server so that its services will continue to perform with optimum reliability. And Java will allow Novell to build new services in a much faster and cross-platform way. Novell will offer new and existing services to support server-based applications of the future: services for collaboration, telephony, software distribution, security, directory and more, and a set of basic services for easy configuration, installation and startup across a broad variety of platforms.
Novell is demonstrating its commitment to Java server-based applications through a broad array of partnerships, internal development efforts, third-party developer relationships and training. For example, the company and Sun Microsystems introduced a Java Naming and Directory Interface (JNDI) that offers full directory and naming services not only to NDS, but also Lightweight Directory Access Protocol (LDAP), Domain Name System (DNS), Open Federated Name Service (XFN) and other naming providers.
And Novell is working with JavaSoft on calendaring, messaging, telephony, management, internationalization and other Java interfaces. Without comprehensive networking services, users cannot realize the full promise of server-based Java applications. Novell intends to extend its networking leadership role by adding value to Java on the server through rich networking services that are fully expressed in Java.
Key to bringing the opportunities of Java to the server and server-based applications are the tools and interfaces to make building this new class of applications faster and easier. Novell is committed to preserving the integrity of Java by fully complying with the Java Developer Kit (JDK) interface releases. Additionally, the company is embracing and extending JDK interfaces by offering implementations that support its full range of services.
At the same time, Novell recognizes that new services are critical to enabling the development of server-based applications. Novell's goal is to preserve the cohesiveness of Java and enrich its functionality with the introduction of a new value proposition to developers. Later this year, Novell will introduce a service framework focused on server-based application development.
It will be compliant with the Java Server SDK and build upon the cohesiveness of the Java platform to offer services and interfaces that solve major problems facing application deployment and management across the network. This comprehensive service framework will provide unique services designed to meet customer needs and introduce developers to a revolutionary approach to fully leveraging Java on the server.
In summary, Novell's strategy with Java is to fulfill the vision and real opportunities that await it on the network and server. At Novell, where everything's connected, Java offers new links to the compelling world of electronic commerce. And Java is the language of electronic commerce.
* Originally published in Novell AppNotes
Disclaimer
The origin of this information may be internal or external to Novell. While Novell makes all reasonable efforts to verify this information, Novell does not make explicit or implied claims to its validity.