white paper design goals and capabilities of infor …€¦ · rapid development of applications...

16
Table of contents 1 Overview 2 What is Mongoose? 3 Key features provided by Mongoose Rapid development of applications that leverage the power of databases Radical extensibility: Beyond user-defined fields Multi-faceted openness: SOA and more Wide range of client technology options Self-installing self-updating Internet- enabled smart client Access any form on the Web, with multi-device adaptability Super-simple deployment and configuration Outstanding monitoring and diagnostics tools 4 Summary Overview This paper describes the functional goals behind the Infor Mongoose framework and provides detailed information on the actual capabilities. Its descriptions are current with version 7.01 of Infor Mongoose. Mongoose is a software development framework. It provides for rapid development of applications that use relational databases. It allows users and customers to extend and adapt the application to a virtually unlimited extent to fit their business needs. Because of the architecture, development is done with minimal coding. User and customer extensions are done with no or minimal programming, and these changes automatically upgrade. This, together with other factors such as the simplicity of installation and configuration, support for a wide range of integrations, rich user-interface for end-user productivity, an automatic browser UI, multi-device features, and cloud or on-premise deployment options, make for unparalleled value. Mongoose is a core Infor technology, providing built-in support for other Infor core technologies like Workspaces and ION. What is Mongoose? The central defining goal of the Mongoose framework is to minimize the amount of program coding required (by original application developers, partners, and customers), in order to maximize a number of things. The most important are enabling rapid application development and enabling changes by users and customers that require no or minimal coding and which are automatically upgradeable. In addition, the minimization of program coding provides for rapid development, extreme code reuse, and insulation from underlying technology changes. To achieve the minimal coding goal, the framework itself must provide rich core functionality so that with Mongoose you start with a working application in a number of respects, and you add in the application-specific functionality with the development facilities provided by the framework. White Paper Design Goals and Capabilities of Infor Mongoose Version 2 Last updated 24 January 2012

Upload: vantuyen

Post on 05-Jun-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Table of contents1 Overview

2 What is Mongoose?

3 Key features provided by Mongoose

Rapid development of applications that leverage the power of databases

Radical extensibility: Beyond user-defined fields

Multi-faceted openness: SOA and more

Wide range of client technology options

Self-installing self-updating Internet-enabled smart client

Access any form on the Web, with multi-device adaptability

Super-simple deployment and configuration

Outstanding monitoring and diagnostics tools

4 Summary

OverviewThis paper describes the functional goals behind the Infor Mongoose

framework and provides detailed information on the actual

capabilities. Its descriptions are current with version 7.01 of

Infor Mongoose.

Mongoose is a software development framework. It provides for rapid

development of applications that use relational databases. It allows

users and customers to extend and adapt the application to a virtually

unlimited extent to fit their business needs. Because of the

architecture, development is done with minimal coding. User and

customer extensions are done with no or minimal programming, and

these changes automatically upgrade.

This, together with other factors such as the simplicity of installation

and configuration, support for a wide range of integrations, rich

user-interface for end-user productivity, an automatic browser UI,

multi-device features, and cloud or on-premise deployment options,

make for unparalleled value.

Mongoose is a core Infor technology, providing built-in support for

other Infor core technologies like Workspaces and ION.

What is Mongoose?The central defining goal of the Mongoose framework is to minimize

the amount of program coding required (by original application

developers, partners, and customers), in order to maximize a number

of things. The most important are enabling rapid application

development and enabling changes by users and customers that

require no or minimal coding and which are automatically

upgradeable. In addition, the minimization of program coding provides

for rapid development, extreme code reuse, and insulation from

underlying technology changes.

To achieve the minimal coding goal, the framework itself must

provide rich core functionality so that with Mongoose you start with

a working application in a number of respects, and you add in the

application-specific functionality with the development facilities

provided by the framework.

White Paper

Design Goals and Capabilities of Infor MongooseVersion 2

Last updated 24 January 2012

2 Infor Mongoose

Infor is in no way committing to the development or delivery of any specified enhancement, upgrade, product or functionality. See “disclaimer” paragraph contained herein.

Code is still required of course, and another key goal of Mongoose is that when you write

code, you are using standard technologies and tools to do so.

Mongoose accomplishes these goals by defining metadata (data defining the application

behavior, stored in rows and columns in databases), for the user interface (forms), the mid-tier

business objects (IDOs, or Intelligent Data Objects), and the event handlers for the Application

Event System (AES). The form definitions are stored in the forms database, the IDO definitions

are stored in the objects database, and the AES event handlers are stored in the main

application database, along with application data.

Because metadata cannot be directly executed (it is not code), this means that Mongoose is

the runtime environment for the forms, IDOs, and AES event handlers. The forms are

executed by the WinStudio client engine, the IDOs are executed by the IDORuntime, and the

application event handlers are executed by the Application Event System.

This also means that Mongoose must provide design tools for the development and

extension of the metadata. The forms are designed in WinStudio, which is both the smart

client presentation engine and design environment for the forms.

There are a set of forms (themselves built on the framework) for editing the IDOs and

application event handlers.

Since automatic upgrade is a key goal for Mongoose, the metadata model (for the forms,

IDOs, and application event handlers) keeps the base application separate from extensions

made by customers, as well as those coming from addon modules (partner products

and localizations).

Client

Form definitions

Forms database

Business objects

IDO definitions

Objects database

Workflow, automation,

business processes

Events and handlers

Application database

Formsmetadata

IDOmetadata

AESmetadata

3Infor Mongoose

Infor is in no way committing to the development or delivery of any specified enhancement, upgrade, product or functionality. See “disclaimer” paragraph contained herein.

In the case of forms, customers and users can make changes to the original vendor version of

the form targeted to individual users, groups, or for all users in a site, and the changes they

make are marked accordingly in the forms database. The Mongoose framework includes

the FormSync tool to upgrade those changes into new vendor versions based on

customer policy.

In the case of the IDO and AES metadata, customers can extend base application IDOs and

event handlers or create their own. Regardless, their changes are kept separate and are

therefore automatically upgradeable.

AccessAs=<VendorApp>

AccessAs=Core

AccessAs=<partner>

AccessAs=<empty>

IDO metadata objects DB

AES metadata application DB

4 Infor Mongoose

Infor is in no way committing to the development or delivery of any specified enhancement, upgrade, product or functionality. See “disclaimer” paragraph contained herein.

One additional goal of Mongoose is driven by its core goal of metadata-driven development:

The framework must provide core functions to the application so that developers and

customizers do not need to write code to ensure they are properly implemented. So,

Mongoose automatically provides these functions, including the user interface for them

and more:

• Translation of string literals based on end-user default language, and the ability of end users to switch languages on the fly without restarting the application

• Security at the user, role, and site

• Licensing

• Documents and notes attached to any data, with no limit

• Several mechanisms for user-defined fields

• Data and process replication, supporting customer policy for both transactional and asynchronous XML options for sites in both your local intranet and across the Internet

• WebService and XML interfaces for integration (more below)

• Customer extensibility (more below)

• Background task execution

• Reporting interfaces

In addition to the metadata model, Mongoose targets a number of other critical capabilities.

The remainder of this document provides more detail on the business benefits these provide.

Key features provided by MongooseThere are a number of significant business benefits of the Mongoose framework. Some

benefits apply to organizations that need to build applications for their own use, whether

simple Web apps or large business applications. Others apply to organizations that want to

develop applications for sale to their customers. Many benefits apply to both cases.

Rapid development of applications that leverage the power of databases

A number of aspects of the Mongoose architecture combine to enable extremely rapid

development of applications. With Mongoose, you start with a working application, where you

can log in, set up users and permissions, and start your team creating your data maintenance

facilities and other application elements, all within the same user interface. The complexities

of managing relational databases are handled by core mechanisms within Mongoose and the

power of relational databases are leveraged by infrastructure within Mongoose. Significant

application functionality can be built without any coding at all, and Mongoose manages the

code you do write much as databases manage trigger code.

To build a new data maintenance facility—including a user interface where end users can

access their data in a wide variety of ways and work with their data in a variety of formats—

takes minutes. To then build additional facilities where that data is available for lookup and

validation on other user interfaces again takes minutes.

5Infor Mongoose

Infor is in no way committing to the development or delivery of any specified enhancement, upgrade, product or functionality. See “disclaimer” paragraph contained herein.

The online tutorials for Mongoose walk through building an issue tracking system, which

includes data maintenance for supporting data like products, customers, and support reps, all

built with no coding. The resulting application features powerful query capabilities for end

users, including saved filters, filtering with query forms, and filter-in-place, shown here:

Users work with collections of data, where multiple changes are made before committing the

changes, including updates, inserts, and deletes.

Drop-down lists over data from the database can be filtered in place, eliminating the need to

jump out to special query user interfaces even for enterprise-sized data sets.

Users can work in a powerful grid mode, open to copy paste with spreadsheets, sorting, and

mass-change, all unique capabilities for database applications:

6 Infor Mongoose

Infor is in no way committing to the development or delivery of any specified enhancement, upgrade, product or functionality. See “disclaimer” paragraph contained herein.

Building the data relationship structure so users can navigate the application simply and

consistently is easy to build and easy for users to learn:

And of course you can build more hand-crafted and graphics-oriented UIs for novice users,

where you need to do so:

Whether the goal is a simple Web application, or a complex piece of enterprise software,

Mongoose makes development extremely efficient, and the resulting application provides

powerful and unique end-user capabilities.

Radical extensibility: Beyond user-defined fields

Because most software is hard-coded, apart from programming it can provide little in the way

of extensibility beyond the definition of user-defined fields and basic UI theming. Writing code

is expensive in terms of the time and resources required. Often, meaningful customer

extensions involve modifying the base application code, which makes upgrading the

application expensive and therefore postponed as long as possible. That in turn imposes the

cost on the customer of foregoing new features and fixes, and on the vendor for maintaining

many older versions of the application.

7Infor Mongoose

Infor is in no way committing to the development or delivery of any specified enhancement, upgrade, product or functionality. See “disclaimer” paragraph contained herein.

Because a Mongoose application is built with the same metadata-driven approach provided

to users and customers, the capabilities to extend and adapt the application are virtually

unlimited. Customers have access to the same tools that vendor developers used as they

built the base application. Users can be given the ability to use the WYSIWYG form designer

to tailor and adapt the screens for their own work.

The metadata model allows customers to get control at the key locations in the base

application, and their changes are marked so that at upgrade time they are automatically

migrated forward.

For example, if a customer wants to add additional processing to occur when a user pushes a

button on a screen or modifies data on a screen, they can insert their own form event

handlers, which can execute a wide variety of tasks without requiring coding, and which

automatically upgrade.

Customers can extend any portion of any screen (new tabs, new fields, validation logic,

enabling logic, etc.), because they are using the same tools that were used to build the base

application. This is an example of a customer maintenance screen, with customer additions of

a new notebook tab, new static text control, and edit field bound to a user-defined field

storing their customer’s Website address, and then a Web Browser control added

rendering the Website specified in that URL. No coding is required for this example, and it

automatically upgrades.

8 Infor Mongoose

Infor is in no way committing to the development or delivery of any specified enhancement, upgrade, product or functionality. See “disclaimer” paragraph contained herein.

Using the Application Event System (AES), customers can have their rules (application event

handlers) execute whenever an insert or update occurs to any IDO in the application, or when

trigger conditions they define become true. Those rules (event actions) can include updating

any data in the application, automating any process provided by the application, prompting a

user or group of users to approve the change, integrating to an external application, or simply

notifying users of the change, and much more. In this example, a notification is sent whenever

the quantity on hand for a particular item falls below the defined safety stock. Again, no

programming is required, and the AES metadata upgrades automatically.

9Infor Mongoose

Infor is in no way committing to the development or delivery of any specified enhancement, upgrade, product or functionality. See “disclaimer” paragraph contained herein.

Customers can extend IDOs (Mongoose business objects) to create new relationships to

other IDOs in the base application, to add new calculated fields, to add new tables, and to

publish their columns as properties on the IDO, after which they can bind to them on forms.

And, of course, they can create their own IDOs over their own tables. All of these changes

upgrade automatically and require no coding. In this example, a customer-level extension of a

base IDO has been created, inheriting all the base IDO properties, tables, and methods, but

extending it by the addition of a new property defining a sub-collection relationship to the

customer order lines IDO.

In addition customers can build entirely new functionality writing no or minimal code, where

that functionality (new tables, IDOs, forms) is automatically deployed with the base application,

and automatically takes advantage of the other framework functions (translation, WebService

access, the AES, etc.).

In summary, IT and development organizations can build and deploy applications that

customers and users can extend and rapidly adapt to changes in the business environment

without comprising the upgrade path.

Multi-faceted openness: SOA and more

There are very many ways in which you need the applications you build to be open, easily

integrated to other systems. Today, applications cannot live in isolation and must participate in

business processes that involve other applications. And, in many cases, your customers must

be able to easily integrate the application themselves. Mongoose provides a number of

integration capabilities.

First, Mongoose provides built-in support for Infor ION. ION provides loosecoupling of

applications using BODs (Business Object Documents), and is the primary Infor application

integration technology. Mongoose provides metadatabased mapping of your application’s

IDOs and processes to ION BODs.

10 Infor Mongoose

Infor is in no way committing to the development or delivery of any specified enhancement, upgrade, product or functionality. See “disclaimer” paragraph contained herein.

In addition to ION, Mongoose provides a wide range of integration capabilities to respond to

the many kinds of requirements you may encounter. Integration capabilities need to operate

not only in “function call” scenarios, where one application calls another’s API, passing

parameters, and getting a result, but also full “set-oriented” operations, where, for example,

order information from an ERP system can be queried by an arbitrary set of filter criteria and

can include an arbitrary subset of fields. Ideally, you need not only integrations initiated by an

external application, but also the ability to set policy inside your application so that, when

certain end-user actions occur or certain processes execute, your application initiates the

interaction with the external system.

Integrations should be enabled not only at the back-end of the application but at the user

interface level as well, because in some cases, if you can’t unify the enduser experience of

multiple applications, the cost savings is lessened or erased.

All these integration capabilities must require no modification of the base application code, so

that you can continue to provide upgrades without expensive recoding.

Mongoose meets all these requirements.

Mongoose provides a simple, consistent interface to the middle tier, the business object

abstraction called IDOs (Intelligent Data Objects). This interface is provided using multiple

technologies: XML, SOAP WebService, COM, and .NET class library. This combination of

technologies makes the system open to common Enterprise Integration tools and can be

used by means of skill sets that are widely available.

The IDO interface supports not only “function call” (method invoke) capability, but the set-

oriented operations for LoadCollection (query) and UpdateCollection (insert, update, or

delete). LoadCollection and UpdateCollection calls can be very simple, but also support a

rich set of parameters to precisely control their behaviors, and support nesting via

parent/child relationships.

Since this interface is completely provided by the Mongoose IDO Runtime service, it is

automatically available for extensions that customers make to the base application IDOs, as

well as for IDOs they create. Once the metadata is updated in the objects database for an

IDO, the IDO Runtime is able to provide integration access through that IDO. Also, the

interface is completely consistent. Once you learn to address one IDO, you know how to

address any other IDO. This code snippet is of a C# application using the IDO WebService to

query customers into a .NET data grid view.

11Infor Mongoose

Infor is in no way committing to the development or delivery of any specified enhancement, upgrade, product or functionality. See “disclaimer” paragraph contained herein.

Mongoose also provides several mechanisms by which you can set policy inside the

application that will cause it to initiate interactions with external systems.

This is often a much more efficient alternative, for example, to writing a program that

periodically polls the application to determine if an action needs to be taken. Mongoose’s

replication system allows you to define an external system using its Web address (URL), and

then define replication rules, so that when certain data changes or processes execute, the

application dispatches an XML message to the external system. Mongoose’s Application

Event System allows you to define rules (Event Handlers) which are executed when

messages are flowing through the IDO Runtime, when certain conditions are met, or when

you’ve added logic somewhere in the application to generate the event. Your event handler

can include event actions of type WebService or XML, which integrate with external systems.

Mongoose provides the ability for you to add .NET class libraries to IDOs which the IDO

Runtime service executes per your policy, and that .NET class library can then integrate to

external applications in a wide variety of ways.

Another key requirement is UI-level integration capability. Due to the radical tailorability of the

forms provided by Mongoose, you can tightly integrate external applications at the user

interface layer, to maximize end-user productivity. The types of integrations include

embedding Web applications into forms, storing data files for client side applications like CAD

systems, and then launching those applications from forms on those data files, and a wide

range of dynamic integrations with applications like MS Office from forms.

Mongoose’s integration capabilities are a critical component of the unparalleled value

proposition it provides.

12 Infor Mongoose

Infor is in no way committing to the development or delivery of any specified enhancement, upgrade, product or functionality. See “disclaimer” paragraph contained herein.

Wide range of client technology options

One of the unique and critical capabilities of the Mongoose framework is that the single UI

definition in the forms database is automatically accessible by means of a range of client

technology options, including Web browser with full application navigation, or Web browser

for standalone simple forms, or Windows “smart client.” The key point is that anything you

build, or any extensions your users or customers make, is automatically accessible with any of

these options. Each is described below in more detail.

Self-installing self-updating Internet-enabled smart client

One client technology option provided by Mongoose is the smart client, WinStudio, which

takes advantage of the native Windows platform and the power of the Internet.

The term “smart client” means a program that is installed on the end user’s computer to

provide the user interface of an application, but which itself contains a minimum of application

logic. It is neither a Web client, nor a “fat client.” Instead, smart clients use the Internet both to

obtain the logic of the application, and to access and update the application data.

Mongoose’s smart client component, WinStudio, provides both a run-time user interface, as

well as the forms design user interface. WinStudio uses Microsoft’s ClickOnce deployment

technology. End users are given a link (URL or UNC path), and they click this link once to

accomplish the initial deployment of the client. After the initial deployment, they can continue

to use that link, or they can use the Program Files short-cut created during initial deployment.

Each time the user runs the client, any changes that have accumulated on the server are

downloaded for them automatically, before the application launches. So WinStudio is a

self-installing, self-updating, Internet-enabled smart client.

Once it is running, since WinStudio communicates to the server via XML over Internet HTTP

or HTTPS, it provides wide reach, so that no VPN is required, and from a network standpoint

can go anywhere a browser UI can go.

The WinStudio client leverages the smart client advantages of network efficiency, minimal

client machine impact, and rich user interface to the fullest, particularly since it provides the

design mode as well as run mode for the user interface.

13Infor Mongoose

Infor is in no way committing to the development or delivery of any specified enhancement, upgrade, product or functionality. See “disclaimer” paragraph contained herein.

The combination of full Internet support, automatic installation and update, small size

and impact on the client machine, and rich user interface provide an incomparable

value proposition.

Access any form on the Web, with multi-device adaptability

Mongoose also provides Web rendering for every form automatically, sharing the same logic

of the WinStudio smart client to render the forms database metadata with no special

deployment, recoding, or code generation.

The Mongoose form model provides a rich set of widgets (called Form Components) that

target different device form factors, as well as other options for rendering forms and

surrounding toolbars and navigation that are optimized for various types of devices.

This technique of rendering form metadata across different environments and devices has

powerful implications. It brings the power and simplicity of the framework for you in quickly

building new screens for various needs, such as mobile user displays.

14 Infor Mongoose

Infor is in no way committing to the development or delivery of any specified enhancement, upgrade, product or functionality. See “disclaimer” paragraph contained herein.

Super-simple deployment and configuration

While Mongoose provides enterprise scalability and performance, it also provides the

very simple and straightforward installation and configuration expected of much smaller

software packages.

Your customers must be able to simply and reliably install and configure the application in

order to keep costs low, for events like the move of a business unit from one region to

another, the creation of a new test system, the need to add or remove hardware resources

from production, or the upgrade of the system to a new version.

Mongoose’s architecture maximizes simplicity because of the extraordinary concentration of

application elements in its databases, outstanding tooling provided over the remaining

configuration information, and its self-installing, self-updating, client component.

The initial installation (a classic setup) occurs on the utility server (or application server). From

there, the Configuration Wizard and Configuration Manager tools walk you through database

creation, database accessibility, and the preparation of the client deployment package. Once

these tasks are complete, the application is ready to use. The Configuration Manager tool

also lets you define a pool of utility servers, and the framework provides simple load

balancing across this pool so that as end-user machines connect to the system, the sessions

are distributed across that pool. This makes it easy to add or remove machines from that pool

without disrupting operations.

15Infor Mongoose

Infor is in no way committing to the development or delivery of any specified enhancement, upgrade, product or functionality. See “disclaimer” paragraph contained herein.

Outstanding monitoring and diagnostics tools

The ability to easily monitor activity in core enterprise applications is critical. In addition,

because Mongoose enables you to do full-blown development if you want to, you need the

ability to clearly track what is happening throughout the system. Mongoose includes tools that

provide deep monitoring capabilities, and, in terms of diagnostics, you receive the same set

of tools used by Infor during development of the base application.

The WinStudio smart client provides a highly-configurable diagnostics display.

On the utility server, Mongoose’s Log Monitor tool provides a consolidated view of all

Mongoose elements running there, including the IDO Runtime Service, the Event Service, and

TaskManager (the framework tool for execution of background tasks).

For a more detailed look, developers can temporarily stop the IDO Runtime and Event

services, and in their place run applications with user interfaces over them hosting the

same functionality.

641 Avenue of the AmericasNew York, NY 10011800-260-2640infor.com

About InforInfor is the world’s third-largest supplier of enterprise applications and services, helping more than 70,000 large and mid-size companies improve operations and drive growth across numerous industry sectors. To learn more about Infor, please visit www.infor.com.

DisclaimerThis document reflects the direction Infor may take with regard to the specific product(s) described in this document, all of which is subject to change by Infor in its sole discretion, with or without notice to you. This document is not a commitment to you in any way and you should not rely on this document or any of its content in making any decision. Infor is not committing to develop or deliver any specified enhancement, upgrade, product or functionality, even if such is described in this document.

Copyright© 2012 Infor. All rights reserved. The word and design marks set forth herein are trademarks and/or registered trademarks of Infor and/or related affiliates and subsidiaries. All other trademarks listed herein are the property of their respective owners. This document is provided for informational purposes only and does not constitute a commitment to you in any way. The information, products and services described herein are subject to change at any time without notice. www.infor.com.

INFDTP1285990-EN-US-1212-1

From these, you can capture all the XMLs passing between client sessions and

the server, the SQL generated to the databases by the IDO Runtime, and other

events occurring in these subsystems.

SummaryIn summary, Mongoose provides unparalleled value as a software development

platform for relational database applications. It enables you to rapidly build

software that is simple to deploy and configure. This software can also be

extended and adapted by your customers so they can fit the software to their

business and end-user needs, with no or limited coding. Mongoose supports

automatic upgrades and is further supplemented by a rich end-user experience,

and the ability to easily integrate with other software.