Newbound Software Library
The Newbound Software Library (NSL) originated in 1995 as jServe, a multiprotocol java based server application, written by EveryDay Objects. Since then the library has been continually refined and expanded, and now consists of a set of Java frameworks allowing encrypted, secure, peer-to-peer, client/server communications on scalable virtual computing environments, servers, desktops, and mobile devices.
Newbound is committed to maintaining and improving the NSL because it allows us to continually leverage pre-existing code in order to provide high quality solutions very quickly.
Core Components
The core components of the NSL provide a complete Model / View / Controller framework, which is broken out in detail in the interactive diagram on the left.
close
Data storage in the NSL is provided by an abstract layer which allows for multiple implementations of data storage. The default implementation uses the local file system to store and retrieve persistent data. Other implementations include relational databases and web services.

The Data Access API provides a standard set of function calls for storing and retrieving data. A user session is passed to all calls so security profiles can be implemented at the object and function levels as well as the application level.

The NSL provides extendable data classes which handle the mechanics of serializing data for storage or transport. By overriding the serialization routines you can create your own data formats. Default formats include our own compact binary format and XML.

Custom business logic can be added as functions to business objects. Business logic can also be grouped into aspect oriented libraries, which can be imported by any business object.

The NSL includes a complete Content Management System, which makes building complex AJAX web applications a snap. Rather than trying to provide a WYSIWYG editor, the Newbound App Publishing System provides an hierarchical view of DOM elements with an integrated instant preview option which makes debugging Javascript much easier. The three staging environments allow you to move content easily between development, test and production. Content can be extended on the server side with embedded java function calls or by including JSP.

Business objects can also have a three dimensional representation defined, which can provide access to business logic function calls when activated. The library includes standard controls for data input and activation. The NSL provides a scenegraph API which is based on Java3D. Complex 3D models can be imported or rendered procedurally using the NSL's powerful object definition APIs. Complex animation is made simple by adding event driven business logic.

The included webserver is built on top of the NSL's abstract protocol and server architectures. It is part of a suite of basic services which are supported by the NSL, including email and file transfer. Create your own custom protocols easily with the NSL's state machine framework.

The NSL includes a powerful servlet engine. The servlet engine is typically accessed either through the web server or mail server. As a core component of the NSL, it is available to any service including your own custom protocols. The NSL also includes APIs that cover many common business logic tasks such as preferences, logging, threading and access control.

The NSL contains many useful utility functions for common conversions and transformation of data. All system specific functionalities have been isolated into a set of small interchangeable libraries to maximize the portability of system content.
Hover over components for additional detail.

interactive diagram
The core of the NSL contains client and server implementations of most major internet protocols, including HTTP, FTP, POP3, IMAP, SMTP and DNS.
There is also an application server framework with common base services, including logging, preferencing, threading, security, messaging, session management, database connection manager, servlet container and state machine API.
The built-in data management system provides data persistence as well as automatic conversion between data objects, XML, RDBMS via SQL and our own ultra-compact file format for filesystem storage and i/o transmission.
The NSL core also provides an App Publishing System, that provides web based "snap-together" creation of dynamic AJAX web pages, page parts and JSP, as well as multiple staging environments for deployment.

static diagram
Application Programming Interfaces (APIs)
- Cryptography library with implementations based on PKI as well as our own highly optimized encryption algorithm
- Peer-To-Peer (P2P) communications framework allows for secure asynchronous communication via UDP or TCP/IP between devices running the NSL, even if they are behind different firewalls
- Spaminex Mail Transfer Agent (MTA) for email management including virus scanning, spam filtering and a servlet engine
- API for robotics and embeded electronics
- Data mining library including a web crawling engine for the automated collection of structured information
- 3D User Interface with standard interface components. Virtual World Engine based on textured procedural rendering, with collision detection, model editors, gravity, terrain, structures, user avatars, non-player characters, notification system and chat. 3D Scripting language allows the customization of functionality and development of applications through the graphical construction of a data-flow diagram