ICL Systems Journal
Total Page:16
File Type:pdf, Size:1020Kb
Volume 12 Issue 1 May 1997 Edition Journal ICL Systems Journal Editor Prof. V.A.J. Mailer ICL Professor Department of Computer Studies, Loughborough University, Loughborough, Leicestershire, LE11 3TU. Editorial Board V.A.J. Mailer (Editor) C.J. Mailer (Board Secretary) A.J. Boswell M.R. Miller (BT Laboratories) P.J. Cropper W. O'Riordan D.W. Davies FRS J.V. Panter G.E. Felton J.M.M. Pinkerton PFL Forbes E.C.P. Portman J. Flowlett A. Rowley N. Kawato (Fujitsu) M.J. Rigg M.H. Kay B. C. Warboys (Univ. of Manchester) F.F. Land P.G. Wharton All correspondence and papers to be considered for publication should be addressed to the Editor. The views expressed in the papers are those of the authors and do not nec essarily represent ICL policy. Published twice a year by Research and Advanced Technology, ICL, Bracknell. 1997 subscription rates (including postage & packing): UK and Europe Rest of World Annual subscription £72 $120 Single issues £43 $72 © 1997 International Computers Limited, Registered Office, ICL House, 1 High Street, Putney, London SW15 1SW. Registered in England 96056 ISSN 1364-310X ICL Systems Journal Volume 12 Issue 1 Contents Editorial i Java™—An overview 1 Nic Holt Mobile Agents—The new paradigm in computing 14 L. L. Thomsen and B. Thomsen The SY Node Design 41 G. Allt, P. DeSyllas, M. Duxbury, K. Hughes, K. Lo, J. Lysons and P.V. Rose Discovering associations in retail transactions using 73 Neural Networks O.V.D. Evans Methods for Developing Manufacturing Systems Architectures 89 S. Murgatroyd and R. Smethurst Demystifying Constraint Logic Programming 121 O.V.D. Evans Constraint Logic Programming 137 M. Wallace ECL'PS6—A Platform for Constraint Programming 159 M. Wallace, S. Novello and J. Schimpf Previous Issues 201 Guidance for Authors 211 ICL Systems Journal May 1997 i Front cover: Mobile Agents in action! See the paper, "Mobile Agents—The new paradigm in computing," in this issue. u ICL Systems Journal May 1997 Editorial The ICL Systems Journal normally avoids having issues devoted to a sin gle theme, except in exceptional circumstances. However, the practice of having a small number of papers on a related theme has been followed frequently, particularly when new fields of importance are emerging. In this issue, papers on three important areas are being published, namely, Java, Mobile Agents and Constraint Programming. The first two of these are, of course, related within the context of distributed computing and the Editor intends that papers on significant applications of these new technologies will follow in future issues. Constraint Programming, how ever, is not new and applications of it have been described in earlier issues. What makes a further set of papers timely is the development of a power ful new software platform, ECL'PS^, at IC-Parc, a research institute at Im perial College in London, of which ICL is one of the sponsors. This plat form enables the technology of Constraint Programming to be applied to a wide variety of difficult problems with much greater ease than hitherto. The Editor is aware that a number of people in the field of computing perceive the intellectual hurdle of Constraint Programming to be difficult to surmount. Consequently, two introductory papers have been invited from Owen Evans and Mark Wallace to provide readers with "a lift over this hurdle". These papers are followed by a comprehensive description of ECLiPSe, also written by Mark Wallace, together with some of his col leagues at IC-Parc. A paper on its application will follow in the next issue. V.A.J. Mailer ICL System s Journal May 1997 111 Java™ - an overview Nic Holt High Performance Systems, ICL, Manchester, UK Abstract The origins of Java can be traced back to the early 1990s when Sun engineers were investigating the requirements for cheap consumer devices capable of communicating with each other. In 1994, Sun rec ognised the potential of coupling Java technology with the World- Wide Web, paving the way for a new era of "Network Computing". Since then Java has become a cornerstone of Internet distributed com puting and all major IT industry suppliers have embraced Java tech nology in some form or other. This paper identifies the significant elements of Java technology, outlines the positioning of major IT sup pliers and discusses its potential influence on new business models based on distributed computing. 1. Introduction Java has become inextricably associated with the rapid evolution of Internet computing sparked by the introduction of the World-Wide Web and widely available Internet services. This vision is one of universally accessible on line information services supported by a global network infrastructure. Although the consumer market is likely to be more significant in the longer term, the immediate focus is on the potential business benefits of applying these technologies within organisations—the so-called Intranet. In the longer term, the distinction between Intranets and the Internet will become blurred. The emergence of commercial-strength secure distribution infrastructure overlaying the Internet will enable new models of inter- organisational collaboration and commerce, as well as intra-organisational operation. The question of the moment is whether the convergence of several technologies heralds a revolution in distributed computing, or whether the benefits of Java, relative to steady evolution of current approaches, are being over-hyped. There are major commercial issues at stake. In particular, the prevailing "WinTel" (Microsoft Windows/Intel) dominance of the (enterprise) desktop is under threat—a response to the massive perceived management costs of PCs, widely quoted as around $4,000 per PC per annum [Forrester, 1995]. ICL System s Journal May 1997 1 2. Background The origins of Java can be traced back to the early 1990s when Sun engineers started to investigate the requirements for cheap consumer devices with embedded processors, capable of communicating with each other. The short product life-cycle of the consumer market dictated that it should be possible to introduce upgraded products—including, significantly, the processors embedded within them—whilst maintaining previous investment in software and applications. Over the next two years a new language, "Oak" (later to be renamed Java), as well as an operating system (a precursor of JavaOS) and custom microprocessors (the Picojava architecture) were developed. In 1994, Sun recognised the potential of coupling the nascent Java technology with the burgeoning World-Wide Web, heralding the dawn of a new era of "Network Computing". Since then almost all major IT industry suppliers have embraced Java technology in some form or other. 3. What is Java? Java is a modem object-oriented programming language. The term "object- oriented" means that a program is written in terms of real-world objects and the actions that can be performed on them. This is rapidly becoming the preferred industry approach and is embodied in languages such as C++ and Visual Basic, as well as the distributed object architectures of Microsoft ActiveX and OMG CORBA. The emergence of self-contained objects offers the prospect of software "building-blocks" or components which can be simply integrated into sophisticated applications. Microsoft ActiveX, OpenDoc and Java Beans are examples of component software technologies. As a programming language, Java has several features which offer improvements over alternative languages. These include "safety features" which ensure more reliable programs, extensive libraries of useful services, a component-based approach to application construction and a natural fit with networked computing. Nonetheless, even with the benefits of Java it still requires skill and experience to write good software. Java's main distinguishing feature, however, is not in the language itself but in the means by which a Java program is executed on a computer. Normally, a program is issued in a (binary) form which is specific to the processor on which it is intended to run and, in some cases, specific to the combination of processor and operating system. Application vendors must make a separate investment in each target platform for each software product. This results in a huge barrier to entry into volume markets such as the desktop for alternatives to the Windows/Intel architecture. In contrast, Java is compiled to a machine-independent form known as Java byte-code. This can be thought of as the instruction set for an imaginary machine. A Java program is executed by a piece of software known as the Java VM (Virtual Machine), which interprets the byte-code form of the 2 ICL System s Journal May 1997 program. To achieve program portability, it is only necessary to ensure that the Java VM itself is available on each computer system—a once-off porting activity which can be undertaken independently. None of this approach is new. In the late 1970s, the University of California, San Diego, developed the UCSD Pascal system which made high- level programming feasible on personal computers. In the UCSD system, Pascal was compiled to a portable, interpreted form known as p-code. The limitations of Pascal, in particular its limited I/O features, eventually led to its demise at the hands of the C language. With aims similar to Java, the Royal Signals and Radar Establishment at Malvern (now DRA, Malvern) developed the Architecturally Neutral Distribution Format (ANDF) during the early 1990s, as a means of distributing software written in any source language in a machine independent form. Although technically sound, the concerns of software vendors that it would enable reverse engineering of programs distributed in ANDF prevented its widespread adoption. What distinguishes Java from its predecessors is the completeness of the "vision" promoted by SUN, including the language itself, a rich set of standard libraries, development tools, execution environments, inherent distribution & networking capabilities and, perhaps most importantly, a credible case.