Novell, Java, and Voyager
Articles and Tips: article
Chief Architect
Java Technology Group
01 Dec 1999
Reprinted by premission of Distributed Computing. See the following site for more information:
Discusses how Novell development teams are combining Java and Voyager capabilities to make enterprise systems more robust and useful while reducing IT management tasks. Also shows how this combination will enable network programmability, and raise developer productivity.
- Introduction
- Why Java? Why Voyager?
- Migrating from Static to Dynamic Models
- Infrastructure Provides Varied Benefits
- Mobile Agents Enable Network Programmability
- Raising Developer Productivity
- Scaling to Global, Personalized Networks
- Achieving Four Objectives
- Greater Freedom to Connect
Introduction
As companies strive to operate more efficiently and leverage emerging opportunities such as E-commerce, they run into roadblocks: static code and static databases that have accumulated in huge, inflexible computing environments. To stay competitive, companies must integrate their information silos and other legacy structures with increasingly dynamic, distributed, object-oriented systems and do so without consuming programmer-years of effort. The goal is to gain strategic advantage by using stored and real-time data with equal facility.
Software development teams and network management teams each have urgent needs as well. Programmers require a stable platform that shortens development cycles by making it easier to develop, deploy, modify, and maintain large, distributed environments. And customers want to use directories as a platform from which to manage the way enterprise information is accessed and used.
Such requirements pose daunting challenges because static and dynamic infrastructures are based on largely incompatible programming paradigms. Developers can make them interwork through interfaces that demand a lot of manual programming, but until recently there seemed little hope of achieving a seamless, transparent environment. Directories and other enabling technologies have cracked the problem, opening an array of new enterprise solutions.
Why Java? Why Voyager?
For starters, broad-based industry support for Java virtually guarantees developers a stable platform. Novell, IBM, and Sun ship a large majority of the network servers used worldwide; all three are strongly committed to providing a standard Java runtime environment on their servers and on Windows platforms. Novell alone currently ships a million NetWare servers a year, all running Java.
Portability makes Java our platform of choice because it lets Novell, our customers, and industry partners rapidly develop network services and applications for heterogeneous, Internet-enabled environments.
Java offers a stable, comprehensive, standard set of APIs matched with a highly portable runtime environment, ensuring functionality at every node on the network.
Voyager, a dynamic infrastructure platform, adds value by unlocking the power of object-oriented technology and dynamic capabilities implicit in Java but not implemented in the JDK. It unites the far-reaching flexibility of object-oriented technology with the world's vast base of static data and logic.By bringing together emerging and legacy technologies, the infrastructure platform:
Makes the enterprise code base accessible beyond Java and beyond any single networking protocol.
Enables the network to inject life into static data structures and code by transforming them into distributed objects that can be used dynamically.
These capabilities are crucial to implementing Novell's technology roadmap.
Migrating from Static to Dynamic Models
Static code and data structures contain much of the logic and information that run businesses today. Probably half this code sits on disk in static structures. The rest is constrained by static bindings to network protocols, security mechanisms, and platform-dependent APIs that tie code to hardware and operating systems. All this results in pervasive inflexibility.
Companies make stored information more useful by accessing it in real time, but this means static information systems must somehow evolve from a data structure model to an object model. Today, programmers using dynamic Voyager capabilities readily create objects or object references to a company's static records, making these records look and behave like real, dynamic data objects that can be directory-programmable from Java, CORBA and, later in 1999, from COM.
There's a bonus. Today's emerging programmers who are being trained from the start in object technology can use a dynamic infrastructure platform to quickly and easily use structured legacy data. This solves a potentially large human resources challenge faced by enterprise IT organizations: how to bridge the industry's generation gap, in which older programmers can manipulate legacy data more readily than younger ones because their training matches the way these databases have been structured.
Infrastructure Provides Varied Benefits
Here are just a few examples of how Novell development teams are combining Java and Voyager capabilities to make enterprise systems more robust and useful while reducing IT management tasks.
Making Data More Useful
E-commerce is driving the need for Websites that customize themselves to the individuals' unique needs and interests. Dynamic platform capabilities will make it easier for Novell customers to use their legacy databases to populate Web pages with individualized information. The directory will provide the personalization; the infrastructure will deliver database records in real time by dynamically wrapping them. This in turn will make it easier and less costly to create sites that "sell" more effectively and enrich companies' relationships with their customers.
Simplifying Systems Administration
When the network management service needs to manage a workstation, IT professionals won't have to preinstall a network management agent on that client. Instead, the service will send a mobile object that knows how to get there and, upon arrival, how to unpack, install, and activate the service. The target device could also be a PDA or cell phone, enabling the device to readily consume network services such as accessing corporate address books, Web gateways and E-mail.
Making Networks More Flexible
When a console requires an alternative means of controlling a node on the network, for instance using ActiveX components for accessing network services, the infrastructure platform enables it by providing the service locally or delivering it remotely. This allows unequaled network-level diversity, opening up heterogeneous networks to all devices on the network.
Mobile Agents Enable Network Programmability
Programmability is important to achieving new, flexible, far-reaching networks, but how do we accomplish this? From our standpoint, the realistic way to achieve programmability at the NDS level is to take whatever representations of humans, products, and data that exist on the corporate backbone and wrap them with programmable objects.
Here's a foreseeable scenario. An IT administrator wants to distribute a piece of code say, a custom spreadsheet component to heterogeneous clients across the enterprise. Using any standard directory interface, the administrator makes choices about deploying the component. The infrastructure software transparently implements administration choices by encapsulating the component in a wrapper that is actually a mobile agent.
This "smart wrapper" knows what it has to do and how to do it. It knows how to interact with NDS, or other standards-based directories, navigate the network, and deliver the goods. The wrapper replicates itself and its cargo across the network to servers for deployment as specified by the administrator. The component being distributed might be a Windows executable, a Java class, and ActiveX component"just about anything. It could by specialized code for a handful of users or a software update going out to thousands of clients across disparate systems enterprisewide.
Throughout, the infrastructure remains transparent while giving the administrator tremendous flexibility and productivity. The administrator simply drops the code on the server and points to where it should go. NDS and Voyager do the rest.
The simplest, most immediate instance of this scenario will happen within the Novell server domain, which has its own security safeguards. And servers, not humans, will generate dynamic code.
Capabilities like these will let network servers and services automatically distribute code without requiring developers to target any particular networking infrastructure or protocol. As a result, we think IT productivity will rise because developers will be able to focus on solving specific business problems and on delivering interfaces to the resulting logic. People running the network will be free to focus on distributing and "networking" the objects these developers create.
Raising Developer Productivity
To satisfy customer requirements, Novell must apply easy-to-use tools that shorten our development cycles. A dynamic infrastructure, as described, presents an exceptionally clean user interface, enabling us to rapidly make the kind of sophisticated functionality described here available to customers through NDS and other products while controlling our development cost.
Our Java-based product development teams are thus enjoying extremely high productivity and are achieving a quick time-to-market. Our developers have been able to:
Instantly remote-enable any Java class without modification by generating proxies at runtimes. As a result, our people don't have to waste time and effort on stubs or helper classes.
Use regular Java syntax to build remote objects, invoke messaging, propagate objects around the network, and perform virtually all other development tasks.
Our programmers have full native CORBA support for IDL, IIOP, bidirectional IDL/Java conversions, and key RMI interfaces. So, for example, they write a single line of code to dynamically CORBA-enable Java objects at runtime, without modification.
Other powerful capabilities such as Dynamic Aggregation let us freely extend objects' characteristics and behavior on the fly.
Scaling to Global, Personalized Networks
Novell has over 80 million nodes on customer networks, an amount that exceeds the worldwide population of Internet nodes. Yet strategists believe today's scale of networking will soon be dwarfed by networks that are already evolving from corporate directories and enabling technologies.
Here's the scenario. Directory-based networks (LDAP, X.500, NDS, etc.) soon will be many times more vast and varied than they are today, thanks partly to a proliferation of Java-capable devices ranging from cell phones to smart cards. We believe compelling business advantages and consumer conveniences will spark explosive demand for integrating such Java-capable personal devices plus traditional computing clients and servers into fluid, pervasive, highly capable, and mostly transparent network environments.
These environments will readily identify and authenticate users and other network participants such as services, objects, and agents. Through NDS capabilities enabled by the distributed infrastructure platform, environments will access remote data resources to transparently mold themselves on the fly to a user's known behavior patterns, preferences, needs, and priorities. Novell strategists are convinced that technology will become personalized only as directories proliferate and are populated with resources and user identities.
Novell's technology roadmap reveals how these huge yet intensely personal networks of the near future, driven by today's market forces, are already evolving from existing network environments. In simplest terms, it shows computer-based intelligence migrating from static, fixed resources into dynamic, location-independent services running within or on top of directories. Driving this migration is distributed object computing as embodied in Java, Voyager, and related technologies.
Beyond that, we see intelligent networks dynamically interconnecting to various degrees and becoming to some extent a global, all-encompassing environment in which processing happens anywhere on whatever tier is most appropriate at any given moment. This vision will come to reality with the help of infrastructure platform capabilities such as dynamic proxy generation and mobile agents.
Achieving Four Objectives
To implement our vision, we are working with Novell's directory-based core technology, Java, and Voyager to achieve four key objectives:
Protect customers' investments in Novell platforms by extending the service life of this huge and growing installed base into future heterogeneous environments.
Tightly integrate legacy networks and data infrastructures with next-generation networks based on distributed object technology.
Embrace telephony, Jini, nontraditional networks, and other technologies through dynamic network support.
Integrate multiple infrastructures and transparently bring the result into people's lives by providing users with stable, secure, mobile identities on the network.
Novell believes that only Java, combined with a 100% Pure Java, standards-based infrastructure platform, make these objectives achievable today.
Networks will dynamically interact to whatever degree is permitted by their security features and user-defined setting. Within these constraints, users will be able to send out delegates as mobile agents to act on their behalf. These agents will not only roam the users' own enterprises but collaborate with networks worldwide. Voyager technology has the unique ability to easily provide mobile agents, making it a perfect fit for achieving dynamic network flexibility, not just across the enterprise, but on a truly global scale.
Greater Freedom to Connect
Novell strategists believe Jini will quickly become another important player in networking scenarios. Jini's auction-style capabilities will help us design more efficient networks with enormous flexibility.
ObjectSpace has already announced Voyager support for Jini. The Java-Voyager-Jini-Directory combination will give us and our customers even greater freedom to build dynamic networks that connect globally yet more personally than ever. That, after all, is what information technology is all about.
* 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.