Newi

Last updated

Newi is an acronym for NEw World Infrastructure, [1] a software architecture for software componentry, mostly known as Newi Business Objects which coined the term business object . [2] Newi was developed by Oliver Sims at the software engineering company Integrated Object Systems, England. It was one of the first implemented architectures for software components.

Contents

Overview

Newi was what today is called a component container. The concepts behind the Newi middleware can be found in Oliver Sims' book "Business Objects", McGraw-Hill 1994. In spite of the title, the book was about software components.

Newi components were language-neutral. That is, a Newi component could be written in one of a variety of languages that was supported by Newi. At its height, Newi supported software components written in Cobol, Ada, C, C++, Rexx, and Java. Platforms supported included Windows 3.1, Win95, WinNT, three varieties of Unix - and a prototype supporting components written in RPG was running on the AS400.

Newi components were intended to be "objects in the large". There was a form of sub/supertyping which was implemented by the infrastructure through an intelligent delegation mechanism. For example, a component written in C could be "subtyped" by a component written in Cobol. Component names (or types?) were separated from the code implementation module. Messages (both sync and async) were passed using a proprietary form of "tagged data" (a similar concept to today's XML). There was also a notification service. The various system services (including the GUI framework and communications subsystems) were implemented as Newi components. Throughout, there was a rigorous focus on making the programming of application components as simple as possible, with Newi providing many transparencies.

From the start, Newi was targeted at both front-end GUI systems and back-end server systems. The front-end version had a GUI run-time framework implemented as components. The component concept fitted very well with the object-based UI provided. Hence a designer/programmer used the same technical code structure to implement both front-end and back-end business function.

History

The initial concept behind Newi originated in 1989 when Oliver Sims, [3] then working for IBM, saw the need for an infrastructure whereby a given real-world business concept (process or entity) could be implemented as a software module that could be plugged into a running system. Applications would be created by composing an appropriate set of modules. IBM UK funded development of the concept through collaboration with Softwright, a UK bespoke software company.

After several successful prototypes, and an early AS400 production version, a joint venture called Integrated Object Systems (IOS) was created in 1993 to exploit the concept. The first version of Newi was announced and shipped in 1994.

In early 1996, IOS was bought by SSA (System Software Associates, Inc), who saw great potential in Newi. The software was significantly further developed within SSA, in particular in its back-end capability, as well as having its underlying communications function moved to a COTS Corba product that provided the communications "wet string" while maintaining the Newi programming model and loosely coupled component interaction. Tools were also significantly expanded. SSA also announced an early and proprietary form of web services, based on the re-developed Newi, called "Semantic Message Gateways", or SMG.

In 1998, for reasons other than their technology base, SSA had to downsize dramatically; Newi development was halted then abandoned, and the development team (around forty people in UK and US) was dispersed.

See also

Related Research Articles

<span class="mw-page-title-main">MVS</span> Operating system for IBM mainframes

Multiple Virtual Storage, more commonly called MVS, is the most commonly used operating system on the System/370, System/390 and IBM Z IBM mainframe computers. IBM developed MVS, along with OS/VS1 and SVS, as a successor to OS/360. It is unrelated to IBM's other mainframe operating system lines, e.g., VSE, VM, TPF.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

<span class="mw-page-title-main">Xerox Star</span> Early GUI-based computer workstation from Xerox

The Xerox Star workstation, officially named Xerox 8010 Information System, is the first commercial personal computer to incorporate technologies that have since become standard in personal computers, including a bitmapped display, a window-based graphical user interface, icons, folders, mouse (two-button), Ethernet networking, file servers, print servers, and e-mail.

<span class="mw-page-title-main">Taligent</span> Software company (1992–1998)

Taligent Inc. was an American software company. Based on the Pink object-oriented operating system conceived by Apple in 1988, Taligent Inc. was incorporated as an Apple/IBM partnership in 1992, and was dissolved into IBM in 1998.

<span class="mw-page-title-main">Library (computing)</span> Collection of non-volatile resources used by computer programs

In computer science, a library is a collection of non-volatile resources used by computer programs, often for software development. These may include configuration data, documentation, help data, message templates, pre-written code and subroutines, classes, values or type specifications. In IBM's OS/360 and its successors they are referred to as partitioned data sets.

<span class="mw-page-title-main">Eclipse (software)</span> Software development environment

Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in system for customizing the environment. It is the second-most-popular IDE for Java development, and, until 2016, was the most popular. Eclipse is written mostly in Java and its primary use is for developing Java applications, but it may also be used to develop applications in other programming languages via plug-ins, including Ada, ABAP, C, C++, C#, Clojure, COBOL, D, Erlang, Fortran, Groovy, Haskell, JavaScript, Julia, Lasso, Lua, NATURAL, Perl, PHP, Prolog, Python, R, Ruby, Rust, Scala, and Scheme. It can also be used to develop documents with LaTeX and packages for the software Mathematica. Development environments include the Eclipse Java development tools (JDT) for Java and Scala, Eclipse CDT for C/C++, and Eclipse PDT for PHP, among others.

ABAP is a high-level programming language created by the German software company SAP SE. It is currently positioned, alongside Java, as the language for programming the SAP NetWeaver Application Server, which is part of the SAP NetWeaver platform for building business applications.

Adabas, a contraction of “adaptable database system," is a database package that was developed by Software AG to run on IBM mainframes. It was launched in 1971 as a non-relational database. As of 2019, Adabas is marketed for use on a wider range of platforms, including Linux, Unix, and Windows.

VisualAge is a family of computer integrated development environments from IBM, which supports multiple programming languages. VisualAge was first released in October 1993 and was discontinued April 30, 2007 and its web page removed in September 2011. VisualAge was also marketed as VisualAge Smalltalk, and in 2005, Instantiations, Inc. acquired the worldwide rights to this product. IBM has stated that XL C/C++ is the followup product to VisualAge.

Enterprise application integration (EAI) is the use of software and computer systems' architectural principles to integrate a set of enterprise computer applications.

Modular programming is a software design technique that emphasizes separating the functionality of a program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality.

<span class="mw-page-title-main">Component-based software engineering</span> Branch of software engineering

Component-based software engineering (CBSE), also called component-based development (CBD), is a style of software engineering that aims to build software out of loosely-coupled, modular components. It emphasizes the separation of concerns among different parts of a software system.

<span class="mw-page-title-main">Uniface (programming language)</span> Low-code development platform

Uniface is a low-code development and deployment platform for enterprise applications that can run in a large range of runtime environments, including mobile, mainframe, web, Service-oriented architecture (SOA), Windows, Java EE, and .NET. Uniface is used to create mission-critical applications.

A software factory is a structured collection of related software assets that aids in producing computer software applications or software components according to specific, externally defined end-user requirements through an assembly process. A software factory applies manufacturing techniques and principles to software development to mimic the benefits of traditional manufacturing. Software factories are generally involved with outsourced software creation.

LINC is a fourth-generation programming language, used mostly on Unisys computer systems.

Service Component Architecture (SCA) is a software technology designed to provide a model for applications that follow service-oriented architecture principles. The technology, created by major software vendors, including IBM, Oracle Corporation and TIBCO Software, encompasses a wide range of technologies and as such is specified in independent specifications to maintain programming language and application environment neutrality. Many times it uses an enterprise service bus (ESB).

<span class="mw-page-title-main">.NET Framework</span> Software platform developed by Microsoft

The .NET Framework is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows. It was the predominant implementation of the Common Language Infrastructure (CLI) until being superseded by the cross-platform .NET project. It includes a large class library called Framework Class Library (FCL) and provides language interoperability across several programming languages. Programs written for .NET Framework execute in a software environment named the Common Language Runtime (CLR). The CLR is an application virtual machine that provides services such as security, memory management, and exception handling. As such, computer code written using .NET Framework is called "managed code". FCL and CLR together constitute the .NET Framework.

Oliver Sims was a British computer scientist, former IBM employee, and enterprise architecture consultant, known for his work on business objects Object-oriented programming, and service-oriented architecture (SOA).

References

  1. Journal of Object-oriented Programming Vol. 7. (1994) p. 79
  2. Erik Persson (2002) Shadows of cavernous shades: charting the chiaroscuro of realistic computing. p. 143
  3. Robert Orfali, Dan Harkey, Jeri Edwards (1996) The essential distributed objects survival guide. p. 325 stated:
    Oliver Sims is the designer of the New World Infrastructure (Newi) — a framework whose sole purpose is to create and run business objects. Newi — shipped by Integrated Objects in 1994 — is the first of a new generation of products that focus on the delivery of late-bound business objects...

Further reading