white paper design goals and capabilities of infor …€¦ · rapid development of applications...
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.