What is the One Network SDK?
The One Network SDK gives developers the ability to create highly customized solutions based on the core capabilities of the One Network Platform. These core capabilities are based on fundamental requirements for any modern business solution. For example, there are One Network models to support user management, permissions, orders, business transactions, inventory, logistics, etc. These core models support features like audit trails, workflows, state machines, persistence, atomic transactions, schedule based execution, and integration. The SDK gives you a framework to extend these core models or make your own with the same features using a set of graphical design tools called One Network Studio.
These models are developed and woven together into a collection of scalable and re-usable modules. Each module contains data models, business logic, declarative user interfaces, workflows, and IXM engine code and may be designed to perform very specific business functions such as order processing or inventory management. Once developed and tested, modules are deployed to a Platform server called an instance. Modules within an instance are designed to communicate and work together in a grid-like fashion. Instances may be scaled up or out depending on need, and may be hosted in a traditional server environment or within One Developer Network, One Network's cloud computing infrastructure.
We can summarize the key components of the One Network SDK as consisting of:
One Network Studio—An Eclipse-based IDE for developing and deploying modules. Studio includes wizards and utilities for creating and modifying new business models, configuring workflows, state machines, transactions, views and permissibility on those models, developing application code, and deploying modules into a Platform instance.
Platform server—A local Platform server developers can use for prototyping and debugging modules and instances.
Server API's—A library of Java based utilities for accessing and extending the Platform's core capabilities, as well as provide a framework for creating custom models that match the capabilities of our core models.
Reporting API's—An XML based system for creating custom reports based on business data.
Declarative User Interface API—An XML based system for creating the most common user interface screens such as lists, data entry screens, search screens, etc.
User Interface API's—For going beyond the capabilities of the Declarative User Interface API, we include a library of JavaScript components for developing RESTful rich web interfaces which are compatible with multiple web browsers.
One Network Studio, or Studio for short, is based on the popular Eclipse IDE and is implemented as a plug-in. It provides some unique visual modeling and design tools that allow you to easily manipulate models and the way they work without writing a great deal of code. This is balanced with the normal features of the Eclipse IDE that give developers the level of control they crave. Common features like defining permissions can be done in a point and click interface, but you can extend nearly anything using Java code.
The SDK's Platform server allows developers to run a full instance on their local computer. The server can be run on commonly configured hardware including laptops.
Platform provides three primary means of creating user interface screens: reports, declarative UI screens, and custom JavaScript based screens. Declarative UI Screens are the simplest and are designed to facilitate create, read, update, and delete operations as well as list / detail views with searches, filters, and sorting on data models. Reports allow more functionality by allowing SQL based views that can join multiple models, provide aggregate and computed results, and present complex queries. Like declarative screens you still get searching, sorting, and the other capabilities in the declarative screens, you simply leverage the power of SQL to query your data. Finally, for screens that require custom user interactions we offer a Rich User Interface (RUI) capability in our Use Interface API. The API features a RESTful architecture and allows for JSON / AJAX operations against the core models and models created in Studio. The API is written purely in JavaScript and is based on the popular library ExtJs from Sencha. It is extensively tested against multiple browsers for full compatibility. Refer to the system requirements section for a list of compatible browsers.