Novell's Net2000: Bringing the Power of Networking to Developers
Articles and Tips: article
Product Manager, Net2000 Initiative
Developer Services Division
01 Nov 1996
Examines developer opportunities which are available today and those which will be available in the years to come as a result of Novell's Net2000. Also examines options for developers writing applications to run on IntranetWare.
- Introduction
- A Dilemma for the Developer
- Net2000 Validates IntranetWare as an Application Development Platform
- An Architectural View of How Novell Intends to Make it All Work
- Summary
Introduction
This DevNote examines developer opportunities which are available today, and more importantly, those which will be available during the years to come as a result of the initiative which Novell has code named Net2000. We will examine the various options developers might wish to consider as they begin writing applications which will run on Novell's newest-generation product, which Novell has named IntranetWare.
It is a well known fact that over the years many applications have been written specifically to run on NetWare. Today, as in the past, NetWare developers have the ability to create almost any program they would like as long as it is character based, written in C or C++, and will run as a NetWare loadable module on the server. So in the past if you asked the question is NetWare an application development platform, the answer was yes if you were a C or C++ programmer and enjoyed NLM development. Today there remains a substantial number of developers who develop applications using this scenario. Quite frankly there are good reasons for this; performance is one of the most important. If your application requires speed and raw efficiency there isn't an operating system and programming interface out there today which can out-perform a well written NLM running on NetWare.
A quick check of the market place for programming interfaces and developer tools, however, indicates that approximately 75 percent of the development community is authoring and developing programs using some other interface than C or C++ .
Having said all this, there is fairly general agreement among developers that Windows NT is an application server. I would hasten to add that by definition an application server implies a more limited or task-specific role. Once again, as long as you are programming with the Windows operating system in mind and are willing to restrict yourself to Win32 APIs and the world of ActiveX , also known as OLE and DCOM, and are willing to accept a fairly rigid client/ server model, then Windows NT is an application development platform. Did someone say what about my Macs and UNIX machines? OOPS! As in Object Oriented Programming and the ability to develop in today's brave new world of open standards and heterogeneous networks? There is also a rapidly emerging model for client/network computing and its ability to distribute objects in the more demanding environment of Intra and Internetworks.
Suddenly, today's developer is faced with a substantial number of new technologies which present a world of opportunity for development but raise numerous questions about flexibility and adaptability when projected out into the future. They include additional areas such as the Object Management Group's Common Object Request Broker Architecture (CORBA 2.0), Interface Definition Language (IDL), Hyper Text Transport Protocol and Hyper Text Markup Language (HTTP / HTML), Internet Inter-ORB Protocol (IIOP), and Java, a new programming language which offers the promise of hardware and operating-system independence and cross-platform interoperability. (See the article on page 89 for more information on OMG.)
It is critical that developers get a solid handle on these technologies and assess their long- and short-term implications. Much of the development opportunity in the years to come will revolve around development efforts which leverage a company's ability to effectively use this new client/network paradigm for building new generations of software applications. Without question, support for these new technologies and interfaces must necessarily be rolled into any definition which might be developed for an application development server. To ignore these areas would be to overlook the most important development opportunity available to developers for the future.
The initial explosion of Web activity was driven by document access combinations of graphics and text interlinked in interesting ways to stimulate a reader's interest and increase the eye appeal. Future efforts will involve adding additional functionality and performance, making it easier for users to create, search, share, and deal with documents. As we attempt to define a base set of services which an application server must provide, another critical area which must be addressed is the area of database services. This includes such critical functions as access to indexing, a sophisticated query engine, and the ability to offer strong administration, as well as other key components which constitute a database kernel.
A Dilemma for the Developer
As a result of the explosive growth generated by recent innovations in Internet and Intranet technologies there are huge opportunities awaiting the developer. The problem, however, is that there are so many technologies which are competing to fill the role of infrastructure provider in distributing large scale applications within this new market segment. Regardless of the distribution technology, programming interface or development tool selected, there is inherent within that selection a significant commitment to software, training, and operational constraints which represent a substantial investment to the developer. As a developer makes a commitment to a particular programming tool there is always the potential that the selection will be a limitation to the flexibility of his development efforts as the volatile Intranet and Internet industry continues to develop.
Novell, and in particular the Net2000 group, believes there will be no clear winner among today's competing technologies and standards. As developers have moved away from the traditional procedural approaches to programming and have begun to embrace the concept of component-based programming, one of the key issues has been the development of reusable components which can take advantage of a "software container."
Does Your Client Need the Services of a Jenny Craig Weight Loss Center?
Obviously, if we are looking at development objectives for the Internet and Intranets, the most important software container to consider in this object- oriented paradigm is the Web browser. Where the waters really get murky is when it becomes time to share components in a networked environment.
The component battle within a networked environment really revolves around two different options, each with substantially different perspectives and philosophies. There is the Java approach from Sun Microsystems, Inc., which offers an open standard involving architecturally neutral byte code running self contained but utilizing platform-specific interpreters on the client platforms when needed. If it makes more sense, running at the server is possible. The key here is the concept of writing the code once and then being able to run anywhere without changes to the base code structure.
The second alternative would be to implement Microsoft's ActiveX, which is really a repackaging of Microsoft's former OLE/COM and Distributed COM initiatives. Web browsers started out using the concept of plug-in technology. However, it was soon discovered the plug-in approach was not very flexible. This approach generally attempted to provide a specific service based exclusively on file type. As a result, technologies such as Java and ActiveX quickly became more popular in terms of the functionality they could offer.
Either approach offers pros and cons relative to their use by developers. ActiveX controls are really binaries, so like the plug-ins we mentioned previously, ActiveX controls must be compiled for each platform they are to be used on. Currently, there are no ActiveX controls for the UNIX or Macintosh platforms. In all fairness to the ActiveX technology, one of its advantages is that once it has been downloaded and installed it can be used repeatedly without redownload and shared among other OLE aware applications. On the negative side of the ledger, ActiveX controls which are downloaded or reside locally advertise their existence by using the Windows registry, making this a viable solution only for the Windows environment. Did someone say what about my Macs and UNIX machines?
Unlike ActiveX controls, Java applets take the form of machine independent byte code and do not require the services of a desktop registry as does Windows. There are some downsides, however: current implementations of the Java interpreters are still pretty slow. The other problem is that applets must be downloaded each time they are used. However, there is no need for installation expertise under this scenario because applets are automatically downloaded to the browser.
The key for developers is that Java code will run more efficiently on a thin-layered operating systems such as IntranetWare allowing it to execute much faster because of less overhead. The second consideration is Just-in-time compilers, which speed the execution of byte code by the interpreter by a factor of several times. Last but not least is the development of high-speed proxy servers which can cache applets based on the heuristics of size frequency of use and distance in hops from the execution target.
It seems fairly obvious that ActiveX is by definition less secure than Java, particularly if you consider that ActiveX is capable of performing pointer arithmetic as well as having access to the operating system's API sets.
If we are to discuss the actual distribution of objects as it relates to protocols and communication infrastructure within a heterogenous network environment (that is to say is running other platforms besides Windows) the discussion generally ends rather abruptly. DCOM is a Windows-only solution where CORBA offers cross true cross-platform communications. If we are discussing the merits of CORBA 2.0 and DCOM from Microsoft, once again the conversations ends rather abruptly if we measure the degree of maturity for either of these technologies. CORBA easily wins this battle.
The real point here is that Novell, through its Net2000 developer initiative, provides the developers who write applications designed to run on IntranetWare the freedom of choice in selecting programming interfaces, development tools and technologies. Novell clearly intends to support all approaches, and in most cases embrace and extend the baseline functionality of the various development alternatives.
Figure 1: Net2000 Developer Focus.
Net2000 Validates IntranetWare as an Application Development Platform
In September 1995, Novell announced a key initiative under the code name of Net2000. It had as its objective easier access to the underlying services of NetWare from a developer's perspective. Key to this objective was a strategy of embracing and extending existing and emerging programming interfaces as well as the developer tools to leverage them. In order to maximize the impact of this new initiative, Novell focused on its core competencies for distributing objects, sharing components, and its ability to manage applications across the network.
At BrainShare held in Salt Lake City, during March of 1996, Novell delivered to developers the first of several installments from the Net2000 initiative. So far this year, Net2000 has delivered three strong solutions which embrace existing standards for programming interfaces.
The first involved standard access to NetWare services through interfaces such OLE controls (OCX), Visual Basic controls (VBX) and Delphi controls (VCL). Through these controls, administrators and developers can more easily build applications using industry accepted authoring tools. At the same time, Novell announced an aggressive strategy to embrace and extend the capabilities of Java. Both of these efforts have focused on the developer's ability to build new generations of network-aware applications.
In September of this year, Novell delivered at Networld + Interop an early- access release on CD of new technologies. On that CD was an early Alpha version of the Java Virtual Machine running on NetWare 4.X. Novell continues to pursue and will soon announce a partnering agreement which will deliver a Just-in-time (JIT) compiler to speed the execution of Java classes running on the Java Virtual Machine for NetWare.
Included as part of the latest Alpha version of the Java Virtual Machine is a graphical user interface based on X-technology from the Unix world. This offers developers the flexibility to create graphical user interfaces on the server or remote them to a client station.
As a result of these efforts the capability now exists for Java byte code to be interpreted and executed as server-based logic on IntranetWare. This is a significant piece of Novell's vision for client/network computing, where logic is partitioned across the network facilitating server-based processing independent of client access. In the brave new world of distributed objects, a client which accesses the network should not be required to keep track of servers which execute logic, but should be able to dynamically bind to servers in order to transparently access logic when required.
Novell has also introduced through its Net2000 initiative full basic scripting capabilities which allow developers an easy way to build NetWare applications and utilities. Through the use of additional tools, developers can write basic scripts for NetWare and recompile them as high performance NLMs to run on NetWare. If preferable, they can also run as basic scripts directly on the server through the NetBasic interpreter now included as part of the IntranetWare release. With ever increasing demand, developers are looking for solutions which will help them design and create web page solutions for Intra and Internet projects. Once again the basic scripting capabilities of NetBasic and IntranetWare become crucial as developers can easily create sophisticated web pages using basic scripts that create dynamic HTML pages on the fly. (See the articles on pages 14 and 59 for more information on NetBasic.)
An Architectural View of How Novell Intends To Make it All Work
Several weeks ago, Novell announced its support for Oracle's Network Computing Architecture (see the article on page 19). Novell believes this initiative will help to insulate both developers and businesses from many of the risks which are associated with rapidly evolving technology. The Oracle Network Computing Architecture combines such web technologies as HTTP and HTML with the object technologies of CORBA 2.0 to form the basis for distributed computing in a networked environment.
Because NCA uses CORBA 2.0, other technologies such as IIOP for object interoperability and IDL which provides a language neutral interfaces are supported. ActiveX clients are supported through COM/CORBA interoperability specs ratified by the Object Management Group.
There are several key components which make up the Oracle Network Computing Architecture. There is a plug and play object called a cartridge which furnishes manageability and extensibility. There are also open protocols as well as standardized interfaces which enable communication between cartridges. This is accomplished through a software bus Oracle calls the Inter-Cartridge Exchange, which Oracle summarizes as follows:
"Oracle defines a cartridge as a manageable object. This object uses IDL (Interface Definition Language), a language-neutral interface which allows a cartridge to identify itself to other objects in a distributed system. Another aspect of cartridges is that they can be programmed using several different programming interfaces including Java, Visual Basic, C++ and even SQL.
The Inter-Cartridge Exchange serves as an object bus enabling cartridges which are interspersed throughout a network to communicate with each other. Both IIOP (Internet Inter-ORB Protocol) and HTTP (Hyper Text Transfer Protocol) are used for communication. Translations are made as required when crossing between differing environments. An example might be making a Java-based CORBA object appear as a DCOM object if accessed by an ActiveX PC applet. The Inter-Cartridge Exchange is set of service libraries which are present on various computers attached to the network. As a result ActiveX/COM clients can communicate with cartridges using bridge technology. Java applications are integrated into CORBA/IIOP through a Java language mapping for CORBA IDL. This is true for Java client or server implementations. JDBC is supported for open database access."
Summary
Net2000, in conjunction with the new Novell release of IntranetWare, validates NetWare as a true application development platform. The Net2000 initiative includes four programming interfaces to access IntranetWare functionality. Included is the Java Virtual Machine and Java class libraries running on IntranetWare. Scripting is supported through NetBasic and the basic scripting NMX engine running on IntranetWare. Rapid Application Development (RAD) which includes OCXs, VBXs and VCLs were delivered in March with additional OCXs schedule for release in December. C/C++ will continue to be supported as a programming interface for those wishing to develop NLMs improvements such as remote debugging.
In order to provide cross-platform compatibility and insure interoperability between the newly emerging object technologies, Novell has announced its support for Oracle's Network Computing Architecture. Under this architectural framework developers will be able to choose their preferred programming interface secure in the knowledge that their risk is minimal in being stranded by technological advances.
Novell will continue its strategy of embracing and extending the current industry standards for programming interfaces in its effort to expose the underlying services available through IntranetWare. The objective is to make it easier for developers to rapidly and easily develop applications which leverage the core competencies Novell is famous for. Net2000 will also continue to support the latest development tools for each programming interface. Net2000 has as one of its objectives a transition from the traditional client/server paradigm to the new client/network framework.
The end result will be an ability to more easily distribute objects, share components, and manage applications across the network. Novell will continue to offer solutions for developing directory-enabled applications which are network aware. Novell has and will continue to provide significant installments of new components from the Net2000 initiative. Developers will have an opportunity to review these components as a result of continued early access releases.
* 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.