NexJ Architectural Overview

32
NexJ Architectural Overview

Transcript of NexJ Architectural Overview

NexJ Architectural Overview

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary i

Table of Contents

Overview .................................................................................................................... 1

About NexJ Systems ........................................................................................................................... 1

NexJ Contact ....................................................................................................................................... 1

Solution Background .......................................................................................................................... 2

Architectural Goals ............................................................................................................................. 2

Model Driven Engineering .................................................................................................................. 4

Layered Model Architecture ........................................................................................ 5

Business Domain Model Layer ............................................................................................................ 6

Integration Layer ................................................................................................................................ 6

Persistence Layer ................................................................................................................................ 8

Presentation Layer ........................................................................................................................... 10

Security ............................................................................................................................................ 10

Application Security ....................................................................................................................... 11

User Interface Security ................................................................................................................... 11

Data Security .................................................................................................................................. 12

Security Standards ......................................................................................................................... 12

Deployment Layer ............................................................................................................................ 12

Resources ......................................................................................................................................... 13

Documentation................................................................................................................................. 13

Development, Deployment and Runtime .................................................................. 13

Development Environment............................................................................................................... 13

Model Customization ....................................................................................................................... 14

Model Upgrades ............................................................................................................................... 15

Deployment ...................................................................................................................................... 15

Relationship Between the Client and Server Frameworks ............................................................. 17

Scalability ....................................................................................................................................... 18

Fault Tolerance ............................................................................................................................... 19

Data Management and Business Intelligence............................................................. 19

Contact Import with Data Matching ................................................................................................. 19

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary ii

Customer Data Management ............................................................................................................ 19

Data Virtualization and Integration .................................................................................................. 19

Data Federation ............................................................................................................................. 20

Business Intelligence ...................................................................................................................... 20

Enterprise Customer View ................................................................................................................ 20

Client Platforms and User Interface ........................................................................... 21

Portal Server Architecture ................................................................................................................ 21

User Experience Platform ................................................................................................................. 23

Desktop Integration .......................................................................................................................... 24

NexJ Desktop Adapter .................................................................................................................... 24

NexJ Enterprise Synchronization for Microsoft Exchange.............................................................. 24

NexJ Add-Ins for Microsoft Office .................................................................................................. 26

Mobile Solutions .............................................................................................................................. 26

Internationalization and Localization................................................................................................ 27

Appendix: Supported Clients and Configurations ....................................................... 28

Servers ............................................................................................................................................. 28

Operating Systems ......................................................................................................................... 28

Application Servers ........................................................................................................................ 28

Web Servers ................................................................................................................................... 28

Database Servers ............................................................................................................................ 28

Communication Servers ................................................................................................................. 29

Clients .............................................................................................................................................. 29

Browsers ......................................................................................................................................... 29

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 1

Overview

About NexJ Systems

NexJ Systems Inc. is a leading provider of enterprise private cloud software, delivering customer relationship management (CRM) solutions for the financial services, insurance, and healthcare industries. Built on a modern, model-driven engineering platform, NexJ Contact provides:

Significant pre-built line-of-business functionality for the financial services, insurance, and healthcare industries that can be tailored to meet an organization’s unique and specific requirements

Flexible integration capabilities with multiple integration channels and protocols for seamless interoperability with existing systems and data

Consistent performance at scale in high volume, highly complex, integrated environments

NexJ Contact combines industry-specific functionality with data from multiple applications and data stores to provide a comprehensive view of customer information without requiring local copies or replication of legacy data. Customers can implement NexJ Contact as their CRM solution or leverage it to implement an integrated desktop delivering a customer-centric view of front, middle, and back-office information. NexJ also integrates enterprise data stores and applications, such as portfolio management or financial planning, within a unified user interface. It combines this information with best-of-breed CRM functionality in a flexible portal container and presents it to users as single, seamless application. In all cases, this Whether using NexJ Contact as the solution or as part of a larger solution, the single customer view promotes a better, more complete understanding of the customer and enables organizations to maximize the value of their existing data and systems.

Customers use NexJ Contact integrated desktop solutions to simplify and standardize customer-centric processes to improve efficiencies, attract and retain critical staff, improve customer loyalty, and drive product cross-sell and up-sell.

NexJ Contact

NexJ Contact is a client-centric relationship management solution designed specifically for the finance and insurance industries.

Organizations can use NexJ’s integrated desktop to view client profiles, financial accounts, policies, portfolio reports, households, and relationships. In addition, NexJ Contact provides essential CRM functionality that automates business processes, helps

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 2

manage relationships more effectively, improves marketing and loyalty programs, supports team-based selling, and improves the overall customer and user experience.

This seamless integration of profile, account, and portfolio data combined with best-of-breed CRM functionality supports business growth by driving client loyalty, generating referrals, managing leads, increasing productivity, and leveraging cross-sell and upsell enterprises across the enterprise.

Solution Background

NexJ Systems invested significant time in building solutions that would deliver strategic functionality, while still allowing them to be tailored to address the unique requirements of customers.

We recognized the need to integrate existing IT systems, and perform at scale. Once deployed, the architecture needed to be flexible to allow firms to continue to evolve the solution as their requirements changed over time.

Building on years of experience delivering enterprise software, NexJ Systems has pre-built significant line-of-business functionality into its solution. This provides a better starting point for getting each organization’s solution up and running, providing faster time-to-market.

NexJ has adopted a model-driven engineering approach for its development. This approach isolates the business logic and application definition from the technical complexities of the execution framework. At the same time it allows the logical data structures to be defined independent of the databases systems that will ultimately be used.

This separation allows the solution designers, architects, and developers to concentrate on their areas of expertise and focus on their core competencies. Solution designers and architects focus on the model without worrying about the delivery mechanisms; database designers have tools to design the database structure; UI designers can focus on the user interface and task flow.

This model-driven architecture provides simplicity in deployment, facilitates faster upgrades and maintenance, and enables customer-specific development through customization of already-existing business models.

Architectural Goals

The NexJ Architecture is differentiated by its ability to deliver on seven critical goals while providing users a consolidated, comprehensive customer view, and driving proactive interactions based on an intelligent service model.

Robust Integration Capabilities Goal: The architecture must allow for integration with a wide variety of legacy and

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 3

modern platforms. At the same time, the end user should remain unaware of the diversity of data sources, experiencing a unified view of all the data. Solution developers must similarly be able to design the business logic and UI of the model without needing to worry about integration issues.

Solution: NexJ provides support for flexible integration approaches and techniques with pervasive integration points. NexJ’s integration technology usually provides more than one way to solve any given problem. This flexibility allows the best option for any given situation to be selected and, if issues arise during the project, the approach can be changed to allow the project to continue and remain on track.

Multiple approaches: accessing data at source, messaging, data synchronization, etc.

Multiple technologies: database connectors, security adapters, message adapters, messaging protocols, etc.

Integration points embedded throughout the architecture: business object lifecycle, data persistence, SQL Hooks, user interface and portal server events

Integrated data is immediately available to every aspect of the system:

Integrated data is part of the common business model and behaves natively in the architecture

Integrated data is used by federated searches, integrated workflows, on mobile devices, and security entitlements

The Portal Server provides a superior platform for desktop integration:

Multiple context buses for orchestrating application integration

Messaging events across workspaces and portlets

Delivers a seamless user experience

Full Customization Capabilities Goal: Solutions must be easy to customize, allowing customers to build on the comprehensive business models and logic provided by the NexJ base models.

Solution: NexJ solutions are fully customizable using NexJ Studio – the same tool NexJ uses to build applications. Separation of business logic considerations from implementation concerns enables powerful and complex customizations in-house by client resources.

Ease of Upgrade Goal: Upgrades should be simple.

Solution: NexJ's model-driven architecture and tools facilitate upgrades, including customizations and integration. The NexJ approach to model inheritance allows upgrades of the base model to take place with relative ease. This is true even when comprehensive customization has taken place. This greatly simplifies the process of upgrading both base and customized models.

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 4

Ease of Deployment Goal: Deployment must be simple, and the running model must be highly scalable, reliable, and run on a variety of open source and common enterprise software platforms.

Solution: UI adapters must allow users easy access on both desktop and mobile devices.

The NexJ Systems solution uses a layered architecture implemented with model driven engineering in order to meet these goals.

Customizable Security Goal: Support robust and complex security models.

Solution: NexJ's flexible and sophisticated security capabilities enable firms to customize the security model to exactly match their requirements.

Seamless User Experience Goal: Enable firms to increase adoption and productivity by delivering a fully-integrated, single application for end users.

Solution: All NexJ functionality is exposed at portlets. The NexJ Portal Server enables firms to create role- and line of business-specific workspaces with any combination of NexJ Portlets and available third party portlets to provide a seamless user experience.

Mobile Support Goal: Provide mobile access to data and functionality.

Solution: NexJ's enterprise mobility support allows secure, consistent access to data and key CRM functionality wherever a mobile device is used.

Model Driven Engineering

Model Driven Engineering and Model Driven Design are practices that use abstract representations of the knowledge and activities that govern a particular application domain to create software solutions. Often, RUP or UML is used as a tool for capturing and communicating the project requirements and expectations to all involved parties. This allows designers to focus on the business problems, while developers focus on implementation details.

In Model Driven Design, after the models are agreed to, the task of solving the technical complexities are passed to a development team who works to implement the agreed-to model. In the process of solving those complexities, problems may arise as the solution drifts from the original vision of the model.

Model Driven Engineering solves this problem of solution drift by removing the step of model implementation. It allows for direct deployment and execution of the model,

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 5

without intervening code development effort. With Model Driven Engineering, the design is the code.

The NexJ solutions make use of comprehensive model driven engineering across all of their application layers, simultaneously capturing and implementing the solution design.

NexJ uses Model Driven Engineering to aggregate data from multiple back office systems into a common business model on the server tier through an abstracted data layer. Services are defined against the common business model to automate business processes and enable cross-functional workflows across backend systems. Those services are then exposed to users through the UXP, portal components, Rich Web applications and mobile devices, or to developers and systems via service interfaces using a variety of protocols including XML/SOAP.

Layered Model Architecture

Using Model Driven Engineering, the NexJ Application Framework leverages the accumulated knowledge and subject matter expertise of NexJ Systems to streamline the development and customization of solutions.

The architecture separates each set of related modeling considerations into its own distinct layer. These layers are inter-related, but functionally independent. The separation into layers allows development teams to efficiently focus their attention and skills on the dimension of the solution under consideration at a given time.

Models in this architecture are stored as a collection of XML files. These files are then visualized through editors using NexJ’s development environment, NexJ Studio. For example, properties of business model classes can be edited and viewed in the class editor or through interactive UML diagrams.

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 6

Business Domain Model Layer

The central layer of the NexJ Application Framework is the business domain model, where business logic is modeled using a powerful object-oriented system. In NexJ, the model is the application. The model is deployed and executed directly on the Model Server, so the running solution runs exactly as the business logic was designed.

Some key features of this layer include:

Business Class Development The comprehensive set of development tools allows full design, edit, and customization of all aspects of the business model classes. These classes support all important object-oriented concepts such as encapsulation, inheritance, and polymorphism. Business logic and events are a key part of the business model. Additional behaviors and logic can be defined around the create, read, update, and delete actions that govern the behavior of object instances. The model can be developed in and reviewed using standard UML class diagrams.

Workflow Design The workflow editor allows implementation of long running business processes in workflows and workflow queues. These capabilities provide an extensible infrastructure for hosting, managing and scheduling stateful server processes. Examples of such processes include workflow management, real time alert handling, resource scheduling, and reporting services.

Business Rule Support Rule sets can be used to model complex business rules, which can then additionally be made runtime-editable.

Unit Test Environment An integrated unit-test environment allows developers to design, save, and run unit tests to ensure the quality of the business model.

Scripting Facilities NexJ Studio’s editors fully support and integrate a powerful scripting language, which can be used to implement business logic, run unit tests, and enhance model classes and workflows.

Integration Layer

The NexJ Integration Layer enables seamless integration with applications and data sources using pre-built, industry-standard adapters. It synchronizes information between modern and legacy systems and accesses data from multiple data stores. This allows organizations to service-enable existing business processes and applications quickly and with minimal risk, as part of an overall SOA strategy.

Using the Integration Layer, developers can:

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 7

Model how the solution will integrate with external messaging systems

Create messages to define the structure of the information to exchange

Define the channels to send and receive the messages

Use services to orchestrate the message workflow

Use transformations to map between messages

The NexJ Integration Layer is unique in that it delivers a flexible approach to integration to enterprise systems, providing many different ways to access and expose data:

Direct SQL integration – shared data at the data tier through the NexJ virtual Persistence Layer allows high performance data sharing

NexJ RPC web services – all public methods and attributes in NexJ Contact are exposed via NexJ RPC and SOAP and accessible in any appropriate development tool such as .NET Studio

Integration Layer services - flexible integration tooling for message definition, transformation, and orchestration to define services with complete flexibility using many protocols and formats

SOA Layer – firms can define web services to expose domain model data and functions that exactly match their enterprise SOA standards

Bulk data extraction – BI Models and ETL activities allow efficient extraction of data through the model, leveraging all integration and security rules

Context sharing in the UI Layer – NexJ Portlets implement a context bus API to share multiple data contexts and exchange events and notifications with other portlets and applications on the desktop

All communication within the architecture is message enabled. This allows messages from and to any layer of the architecture to be sent and received by any external systems. At runtime, the Integration Layer coordinates these communications between the running model and the external world. Its messaging interface and data transformation capabilities allow external messages to be mapped to internal message formats.

The messaging and communication services provide object location transparency, allowing the objects and processes to communicate with each other without caring where they each reside.

A wide number of message types are supported, including:

CSV

Flat Files

HL7

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 8

vCard

XML

ZIP

Supported channels include:

File

HTTP/HTTPS

Mail

TCP

MLLP V1/V2

Message Queues

Some common supported service standards include:

SOAP and other web services

Message Queuing/JMS

XML

Persistence Layer

The NexJ Persistence Layer is another important mechanism used by the NexJ Framework to provide external data integration. It facilitates integration with multiple data sources and enables create, read, update and delete operations against an unlimited number of enterprise data stores.

The framework treats all data sources integrated through the Persistence Layer the same way, including the core data sources used by the NexJ solution. This allows any NexJ Client, whether running on desktop or mobile device, to gain full access to the data and present it to the end user.

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 9

The Persistence Engine provides an object-to-anything persistence mapping layer that is a data-source-independent interface to the business model. Within the Persistence Layer a developer can:

Define the logical structures of all data sources

Define the mapping of the business model — including all entities, attributes, and relationships — to their appropriate data sources

The Persistence Layer supports pluggable adaptors for different types of data sources, including:

Relational Databases A variety of databases are supported, such as SQL Server, Oracle, DB2, MySQL and others.

XML Files

NexJ Services NexJ Service adapters are used to convert the create, read, update, and delete operations of persistence into send and receive calls associated with services or integration messaging.

At runtime, this layer manages the retrieval and storage of data. Some key features of the runtime behavior of the layer include:

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 10

Object-Oriented Interface The Business Model makes data requests in an object-oriented fashion using selection criteria with associations between classes, logical and arithmetic expressions.

On-Demand Data Retrieval Partial data can be requested for efficiency reasons, with the business logic able to proceed as if all data had been retrieved. Additional data is retrieved as required through explicit requests of the Persistence Layer.

Presentation Layer

The Presentation Layer models the forms, screens, and applications that allow users to interact with the business model. Navigation, UI elements, keyboard shortcuts, menus and display elements are all brought together in this layer.

Each business model can support multiple different applications, depending on business needs. In NexJ, a number of different client types are supported.

Additionally, organizations can use the presentation layer to define portlets for use in conjunction with our portal server technology, increasing the flexibility of design and access for system administrators and end users.

At runtime, the Presentation Layer communicates with the clients; provides the information required to render the application; and acts as intermediary for communication between the client and the business model.

Security

NexJ’s flexible enterprise security model includes different levels of security to ensure data and user security. NexJ can consume existing security models or be configured to exactly match the customer's security model. Security rules are enforced by the NexJ Model Server and are centrally defined and fully configurable in the Business Model Layer. These unique, centralized, and extensible security features allow our clients to customize the visibility and accessibility of all of the data and functions in the system using dynamic rules based on user roles, user attributes, data attribution, legal entities, or even external sources of information.

Security in a NexJ model is implemented through the use of privileges, privilege groups, and access control list (ACL) functionality.

This functionality allows organizations to:

Design and implement a security model for all aspects of the solution

Coordinate multiple security entitlement models

Enforce rule-based security on the business model

Attach permission levels to the system functionality at design time

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 11

Assign permissions to users at run time

This provides flexibility in the granting of permissions and ongoing management.

Key areas of security considerations include:

Application Security

Before being able to interact with the model, users must sign on and be authenticated. Options for authentication include validation against profiles stored in the database, in Active Directory, through invoking a custom-built authentication plug-in module, or by

leveraging existing SSO solutions in use by the client.

In addition, we allow enablement of a timeout feature, which logs out users automatically after a configurable period of inactivity.

During the design of the model, any number of privileges and privilege groups can be defined and associated with parts of the business model.

System administrators can then associate privileges with the users and user groups who will be using the solution. The roles and relationships that users have with each other can also affect the privileges that they possess, depending on the logic defined in

the business model.

More complex security relationships can also be modeled and implemented. For example, it is possible to create business rules that dictate access to data or actions depending on the relationship between users, or the roles that they have. Thus, a user may have one type of access to a client’s records, while the user’s assistant may have more restricted access to the same records.

At runtime, whenever access is required to a particular data record, class, method, action, or attribute, the system checks to see if the user has the required permissions to be able to execute the function, and acts appropriately, such as showing or hiding specific query results, or allowing data to be edited.

User Interface Security

Because the Presentation Layer is aware of the business model, it can control the access to screens, forms, and even individual controls based on a user’s profile, group, or role.

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 12

For example, certain buttons may be inaccessible or certain fields only editable by users with particular roles.

Data Security

Flexible security mechanisms protect the individual class instances on object, method, and attribute levels.

For example, advisors might only be able to access the records of the clients they advise, and may not even have the ability to see a listing of other client names within an organization. On a more granular scale, a client’s contact information and calendar might be available, even editable, to an administrative assistant, but not the client’s portfolio information.

Security Standards

The framework uses the following standards which relate to security:

JAAS (Java Authentication and Authorization Service) authentication and authorization in the Java EE infrastructure

SSL (Secure Socket Layer) to protect the communications over a network

Deployment Layer

Deployment capabilities of NexJ Studio streamline model deployment by isolating all the complexities of dealing with each data storage and application server vendor. It allows the definition of any number of environments, each of which acts to bind the model to a different configuration of physical servers, databases, and channels. Based on the selected environment, the layer can configure the systems appropriately for running the model.

Features of the Deployment Layer include:

Encapsulation of all the connection information for each data source, and exposure of a well-defined interface to each source for the Persistence Layer to invoke.

Management of the data adapters that implement those interfaces.

Database connection pooling, which allows all database requests to share a pool of pre-existing database connections. Database connections can have large overhead in terms of connection times, and database server resources. By allowing each object or process to have a pre-established database connection just for the duration of the request, scaling issues related to these overheads are avoided.

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 13

Resources

The Resources Layer consolidates useful libraries for easy access during model development.

Script and Action Libraries Libraries of scripts and actions, as well as scripting scratch pads, allow customized scripts to be incorporated into the model, or used for test purposes.

String Files and Locales String files and locales manage the model’s internationalized display text and formatting. When modeling the UI, strings are added through references to the string libraries in the resources layer. This facilitates translation and localization of the UI. At runtime, the model server accesses translated and localized string information based on the client’s language settings.

Documentation

The Documentation Layer allows for the creation of comprehensive documentation sets to complement the solution. Authors working with the Documentation Layer use an industry-standard semantic markup language (DITA) to tag their content. Content is organized for delivery in both PDF and Eclipse Help formats, and structured for easy of customization. The image library allows graphics to be consolidated into a single location for easy access and reuse.

Development, Deployment and Runtime

Development Environment

All model development, customization, and model configuration is done using NexJ Studio. NexJ Studio is an Eclipse-based application providing extensive capabilities for model development, testing, and deployment.

NexJ Studio is designed to work hand-in-hand with layers of a NexJ model. NexJ Studio provides a complete set of editors for working with each layer within a model. NexJ Studio organizes the model’s components clearly by the layers of the NexJ Framework’s architecture. This helps support best-practices derived from our extensive CRM and Model Driven Engineering experience.

In addition to providing an editing environment for the model layers, NexJ Studio provides a number of supporting tools to facilitate the testing and management of solutions.

As an Eclipse-based product, NexJ Studio integrates easily with a wide range of version control systems, allowing easier development and maintenance of customized models.

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 14

Model Customization

NexJ provides comprehensive pre-built business functionality on an extensible platform designed for customization and integration.

Model customization enables fast delivery of solutions built on the pre-existing model functionality. This allows new solutions to leverage the expertise and work that has gone into base models, tailoring functionality to the specific needs of the business.

Model customization works by allowing new models to use existing models as a base or starting point for development. The new model automatically inherits all of the functionality of its base, which it can expand through the addition of new model elements, or modify through the customization of existing elements. The mechanism of customization is to make a copy of a base model element in the working model. This copy can then be edited as needed for the solution being developed.

The concept of model inheritance greatly increases the speed with which solutions can be created, but also the speed at which they can be expanded and maintained over time to meet new requirements.

The following diagram illustrates how models inherit from one another. For example, a customer-specific solution might inherit the functionality of the finance and insurance model, which was built on the CRM model, which in turn inherited the functionality of the enterprise model. Any one of these models is complete within itself and able to run on a NexJ Model Server.

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 15

Model Upgrades

The process of upgrading models is streamlined by the fact that model customizations do not affect the base model. NexJ has architected the underlying structure of the XML files that store the model to minimize collisions between model versions, even when models have been significantly customized.

When a base model is upgraded, NexJ Studio’s integrated three-way comparison tools allow quick classifications of the base changes and how they affect the working model.

Conflicts between customizations and incoming base changes are clearly identified, allowing developers to focus quickly on affected customizations and take appropriate actions.

Because upgrades affect conceptual model elements, and not code snippets, changes in the models are more easily identified, itemized, and reviewed than changes to traditional executable code. This significantly reduces the complexity of upgrading, decreasing the time to upgrade, and increasing the speed with which the value of the upgrade can be realized.

Deployment

To deploy the solution, NexJ support both Ant integration as well as a one-button deploy from within NexJ Studio. Deployments are directly to the Model Server; no intermediary code is required. The Model Server coordinates the direct execution of the model.

The model servers execute the model in a tiered deployment, as shown in the following diagram.

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 16

The NexJ Model Server runs in Java EE based application servers, which provide cost-effective services for deploying massively scalable, fault tolerant, high-performance distributed enterprise solutions on a variety of industry standard web platforms.

Key capabilities of the server include:

Direct Model Execution The model is the solution and is directly executed on the Model Server – no intermediate code generation required.

Distributed Transaction Management Data storage and retrieval of business objects is coordinated, even across multiple disparate systems. Units of work are used for the execution of batches of requests in a single transaction. Alternatively, transactional behavior can be specified declaratively in the model classes.

Reporting Engine Support is provided for report generation using predefined templates, as well as end user-driven ad hoc reporting.

Workflow Engine The workflow engine manages the complexities of long or short running processes with full awareness of the activity in the running business model. These processes will be persisted for future continuation when a wait state is encountered.

Debugging Full featured debugging enables breakpoints to be set in the model, which can then be stepped through, allowing inspection of state and variable values as the model executes.

Security and Authentication Security, audit and authentication services mediate the interactions between the running business model and the other layers of the architecture.

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 17

Scripting Engine The scripting engine allows for the execution of scripts incorporated into the solution model.

Logging The solution provides diagnostic logging of all server activities for monitoring and troubleshooting purposes. Logging levels can be dynamically changed to allow greater or lesser levels of detail.

Audit Trail Business model objects can be marked for auditing to allow a complete history of changes to the data to be tracked.

Relationship between the Client and Server Frameworks

NexJ provides a number of client-side rendering components which use a generic data-driven framework that mediates all user interactions and coordinates them with the server and other client side applications.

When the client first connects to the server, it retrieves the Presentation Layer model. This includes the user interface layout; it sets up the client side controls, event handlers, and screens for presentation to the user; it then renders them appropriately on the client device.

Ongoing tracking of the client state is maintained by the client. This state includes information such as the currently active screen, the location of sliders, and any information entered in fields. Serialization of this client state is communicated to the server for storage from time to time. Overall, this strategy reduces the amount of data sent between the client and server, reduces response time, and improves the scalability of the system.

The solution maintains user session affinity with a particular cluster node to improve caching performance. A user session may be re-balanced to a more available node when necessary.

A set of connectors manage the communication between the client and the server and between the servers themselves in a protocol- and location-independent manner. Both synchronous and asynchronous requests are supported. There are several distinct types of communication requests:

Metadata requests to obtain repository metadata definitions

Data requests to query for, or update, data

Command requests to execute business logic on the server

Event requests to send and receive events to and from the server

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 18

Additionally, data caching and internal scripting is used to improve performance and reduce network traffic when possible.

The framework supports numerous zero-footprint client platforms, including web and mobile devices, and takes advantage of the latest UI controls and development techniques.

Scalability

NexJ’s server architecture provides advanced linear horizontal scalability. As demands on any of the system tiers increases, capacity is raised by increasing the number of machines in the appropriate cluster.

The ability for NexJ to scale horizontally and vertically to meet transactional demands is made possible via:

Stateless model server architecture

Efficient cluster wide caching

Advanced load balancing across cluster nodes, which dynamically monitors server health and load, keeps requests on the same server as much as possible to maximize cache utilization, and dynamically forces requests to under-utilized servers if the server utilization passes a load threshold

Many tuning options and hooks

The NexJ Application Framework has been certified by an independent testing lab under a load of over 65,000 users on the following hardware:

4 Dell R900 Quad processor Quad core servers running Suse Enterprise Server 10 SP 1 with 32 GB RAM

8 Web servers

Oracle RAC 10g database with 50,000,000 entities (contacts and households) and over 150,000,000 activities.

During this testing, the NexJ solution:

Maintained sub-second response times while processing over 85,000 business transactions per hour.

Maintained responsiveness up to 3 times the load – to approximately 250,000 transactions per hour.

Exhibited linear scalability on the application tier across CPU-cores and physical servers.

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 19

Fault Tolerance

The same architecture that allows for ease of system growth allows for high fault tolerance. If a server outage is detected, work requests are automatically transferred to the least utilized server available. Meanwhile, the stateless server architecture allows a transparent failover. Existing work requests can be taken up immediately by the remaining operating machines until the downed server can be brought back online.

Data Management and Business Intelligence

The NexJ architecture provides robust data management capabilities. Incorporated into our CRM model are capabilities to enable the following features:

Contact Import with Data Matching

NexJ provides a set of tools to import contact information from other data sources, consolidating them through NexJ Contact into a single data source. This functionality includes matching technology to identify possible duplication between the existing system records and those being imported. It then allows a user to make intelligent decisions about which records to merge, import, or discard.

Customer Data Management

The NexJ CDM platform provides the keys to access the detailed data that comprises your comprehensive customer view. NexJ’s CDM platform integrates customer information at source without the need for replication and synchronization. The CDM platform uses the normalized Business Intelligence model for real-time publishing to data marts and warehouses, which can be accessed for ad hoc queries and data analysis. The CDM platform is supported by real-time, server-side synchronization of contacts, schedule items, and tasks with Microsoft Exchange.

Data Virtualization and Integration

Large enterprise customers have significant investments in their existing IT infrastructure and require flexible ways to capitalize on the valuable information in their back office systems. To fully leverage existing system investments while maintaining a custom and adaptive solution approach, separation of CRM application business logic from physical data storage is necessary.

NexJ’s model-driven engineering platform provides loosely coupled components and services, a fully abstracted data model, and flexible integration capabilities, which allows our customers to bring together data from multiple, disparate systems, so customers can effectively leverage their existing IT investments by virtualizing their data.

The NexJ architecture separates data storage considerations from business model considerations. As a result, it is possible to assemble a single view of client data, even

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 20

when that data is physically stored across multiple disparate data stores. This ‘virtualized’ logical business model is flexible and adaptive, without having to be reconnected to the underlying data and external systems each time the business logic or the underlying systems change. Once this virtualized customer view is established, business intelligence and best practices can be applied to encourage proactive action to maximize customer value.

To the end user, all of the data is available in a single consolidated view, and the complexities of the actual storage are hidden. This facilitates the implementation of a NexJ solution across legacy systems. It also allows a single system of record to be kept in one system, enriching it without duplication with information from other systems.

Data Federation

The same architecture that enables the creation of a single view of client data also allows a single path to update that data. End users interact with the data as if it is all stored in a single system. The business model, likewise, treats the data logically as attributes of the business objects in the model. When data changes need to be persisted, the Persistence layer determines which Create, Read, Update, and Delete calls need to be made to which data stores and drives the required operations.

Business Intelligence

The NexJ architecture includes technology that creates a BI (Business Intelligence) model out of the business model data. The BI model contains a snapshot of the data structures and values contained by the business model with the content optimized for data extraction purposes.

This model is then synchronized in real time, maintaining an accurate representation of the operational (business) model and its data.

The NexJ reporting engine uses this BI model to enable ad-hoc reporting using the Ad Hoc Report functionality within NexJ. This enables solution administrators to create sets of predefined reports that make use of the BI model information when they are run.

Enterprise Customer View

An enterprise view of customer information is fundamental to enabling cross-bank initiatives and supporting customer value maximization, such as cross-sell, up-sell, and enterprise-wide compliance initiatives.

NexJ Enterprise Customer View is created using data integration, quality and conversion services, together with a technology platform designed for flexible integration. This view aggregates data from across lines of businesses, including the customer profile, interactions, and transactional information.

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 21

Firms can use NexJ Data Governance to build an Enterprise Customer View. NexJ Data Governance is a comprehensive toolset that performs data provisioning, discovery, routing, auditing, monitoring, and archiving services across disparate systems. NexJ Data Governance consists of two main components, the Data Governance Server and the Data Services & ETL Toolkit. Data exchange between integrated systems is managed using the Data Governance Server and the Data Services & ETL Toolkit provides run-time process control for data import and export processes on an ad hoc or scheduled basis.

NexJ Data Governance provides data virtualization, data federation, and data location services to deliver a logical view of key customer data elements from different lines of business, regionals, and channels. This enables firms to share current enterprise data without introducing the potential of working from conflicting copies of data or violating regional data residency requirements.

NexJ Data Governance and NexJ's advisory services in Master Data Management are critical to establishing data policies to control which data is and is not shared across lines of business. These policies are then enforced by NexJ’s Security Model. In addition, it allows integration with existing master data management and customer data hub technologies.

The Enterprise Customer View is associated with dashboards and reports which are delivered through all available client platforms and user interfaces. These tools integrate with existing analytics solutions to apply the appropriate business intelligence that is critical to delivering enterprise-wide solutions.

Client Platforms and User Interface

Portal Server Architecture

The NexJ Portal Server delivers a superior platform for integrated desktops that enables:

multiple context passing to ensure a seamless experience across integrated applications

easier integration with external systems and third-party portlets

configurable user interface by roles and lines of business

desktop and mobile device support

NexJ has adopted a portal server architecture for delivering its UI to browsers to meet the need for an integrated agent or advisor desktop portal. Under this architecture, the business model is still deployed and run by the NexJ Model Server. However rather than serving up an application as defined in the presentation layer, a separate portal server enables the composition of an application as a set of one or more workspaces, each of which appears to the user as a tab in a browser-based application.

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 22

Each workspace can contain any number of portlets. Each portlet is registered with the portlet library, which is contained in the enterprise component registry.

Portlets are self-contained user interface components which display application information to end users. Portlets can be used to gather user input and submit it to other portlets through the use of context variables and events, or supply the information back to the model server.

Additionally, these portlets can contribute buttons to the application’s toolbar. These buttons will be available to users whenever the workspace containing the portlet becomes active. In this way, only the functions applicable to the current workspace are visible to the end user.

A special portlet, the broker portlet, does not appear in any workspace. Its purpose is to contribute toolbar items in support of portal-wide events and provide portal-level orchestration.

Coordination of portlet and workspace actions is moderated by the context bus, which stores and passes context within each workspace, and by the event bus, which broadcasts notifications of events across the entire application.

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 23

The NexJ portal architecture allows the inclusion of third party portlets as well as portlets designed in the NexJ presentation layer. Third party portlets are able to make use of the NexJ bus infrastructure through use of an API, providing powerful integration across applications in the user interface. Alternatively, the portlets can stand on their own, providing supplemental UI elements to the main application.

Workspace context provides users the ability to “dock” information into new workspace tabs. For example, if an advisor is reviewing the information for a particular client and receives a call from a second client, she can “dock” what she was doing into its own workspace; turn her attention to the client on the phone without losing her place in the work; and return to reviewing the first client’s information when she is done.

Runtime flexibility is also provided through a set of runtime administration tools that allow portal administrators to manage the composition of applications, including the available workspaces and their contents after deploying the application. Administrators can also be given the ability to customize workspaces for specific user types.

Finally, solution administrators are able to register new portlets with the portlet library, and start making use of them without needing to redeploy the solution.

User Experience Platform

The NexJ User Experience Platform refers to the unifying set of technology and services that drive our application delivery. By unifying the vision and delivery of technology into a holistic vision, NexJ is able to deliver context-aware applications to agents, advisors, and customers on any channel, including desktop and mobile.

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 24

The guiding principal of the UXP is to streamline and consolidate user interactions by providing a single point of entry for carrying out tasks and achieving meaningful business goals. For example, by eliminating a need to toggle between multiple applications, advisors task paths become simplified and their ability to serve and satisfy their customers increases.

The UXP also fosters greater collaboration between users and customers by enabling features such as secure messaging, service team management, and controlled content delivery. This collaboration helps firms extend their brand to consumers through mobile and online platforms. This allows consumers a heightened level of engagement, improving their access to the information, products, and services they desire.

Desktop Integration

NexJ Desktop Adapter

The NexJ Desktop Adapter is an ActiveX component that allows the NexJ Portal running in Microsoft IE to interact with Desktop Application through a .NET / COM interface.

Any applications that can talk to the NexJ Desktop Adapter Component via .NET can be connected to with this adapter. One of the key areas of its current use is in integrating the NexJ Portal applications with CTI applications.

Using a CTI application as an example, this integration might allow full contact records to be brought up based on the phone number of an incoming call. Alternatively, it could enable users to initiate phone calls to their clients directly from the application.

NexJ Enterprise Synchronization for Microsoft Exchange

NexJ Enterprise Synchronization for Microsoft Exchange enables real-time, bi-directional server-side synchronization of contacts, schedule items and tasks between NexJ Contact and Microsoft Exchange or other Microsoft-Exchange enabled applications, such as smart phone or tablet applications. Smart conflict detection and resolution ensures data accuracy and completeness. This enables users to access the same view of tasks

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 25

and schedule items in both NexJ Contact and Microsoft Outlook and view detailed contact information from NexJ Contact in Microsoft Outlook.

Server-side integration provides several key benefits, including:

No user interaction required to synchronize items

Automatic synchronization is independent of client (Outlook, smartphone, tablet)

Efficient synchronization of large amounts of data through bulk execution

Customization and upgrades are facilitated through the centralized synchronization engine, eliminating the need to upgrade client-dependent plug-ins

NexJ provides administrative tools and a centralized console to support large enterprise deployments. Organizations can customize rules to tailor synchronization to unique business needs.

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 26

NexJ Add-Ins for Microsoft Office

The NexJ Add-in for Microsoft Outlook enables users to save both sent and incoming emails to the NexJ Contact Journal of the contact(s) with a matching email address. It further allows the creation of follow-up tasks using the contents of a selected email. This feature uses the subject of the email as a task description, and the body as task notes.

The NexJ Add-in for Microsoft Word allows the creation of documents with NexJ merge fields, so documents can be personalized for different entities in the application.

Mobile Solutions

Presentation models can be designed to allow access through any number of different devices. The framework provides an optimized rendering for each supported device. Different types of mobile clients, such as iPad, Playbook, and Android devices can all work with the NexJ web client by accessing the application through a web browser.

Mobile devices access the running model through the presentation layer in the same way as desktop clients. This means mobile users have the same direct, real-time access to company data, on the same databases and through the same application servers as desktop users. Mobile users can view all integrated customer information, including financial accounts and holdings information, while in the field and gain real-time access to comprehensive knowledge of the customer.

NexJ mobile solutions use modern, mobile-first responsive design leveraging HTML5 and CSS3 technologies. This approach adapts to the device and is optimized for each type of form factor. NexJ's mobile strategy is to write the application once and use it several times through a web-based application that runs on multiple platforms, and a light-weight native device wrapper that tightly integrates with native applications and multi-media features of the mobile devices, such as the ability to capture voice notes and

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 27

automatically distribute them to team members.

Internationalization and Localization

NexJ’s models are fully translation-ready and support internationalization and localization at many levels of the architecture.

The NexJ solutions work with Unicode to support multiple languages and character sets. The NexJ Presentation layer and operational database support the localization of Western, European, Middle-Eastern, and Asian languages. NexJ is already using the UTF-8 encoding type for other locales implemented, such as French. Additionally, locale-specific formatting is supported for dates, currency, and numbers.

When configured to do so, the NexJ solutions automatically present user interface labels, currencies and other elements according to the specified language and locale of the user without needing additional presentation-layer modeling.

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 28

Appendix: Supported Clients and Configurations

Servers

The NexJ Model Server is designed to work with the following operating systems, databases, and servers. Each release of the product is comprehensively tested and certified on a number of configurations, which are detailed in the release notes for that release.

Operating Systems

Enterprise distributions of Linux (including CentOS, OpenSUSE and Red Hat)

IBM AIX

Microsoft Windows

Oracle Solaris for SPARC

Application Servers

IBM WebSphere Application Server

JBoss Application Server

Web Servers

Apache HTTP Server

IBM HTTP Server

Microsoft Internet Information Services (IIS)

Database Servers

IBM DB2

Microsoft SQL Server

Oracle Database

Note: In addition, SAP Sybase Adaptive Server Enterprise, Oracle MySQL, and PostgreSQL

are supported as data sources for integration purposes. Using SAP Sybase ASE, MySQL, or PostgreSQL as the main system data source for NexJ Contact is currently not supported.

NexJ Systems Architectural Overview

©2015 NexJ Systems Inc. Confidential and Proprietary 29

Communication Servers

Microsoft Exchange Server

Clients

The framework is client independent. The same application functionality is delivered to any platform capable of Web browsing.

Browsers

Microsoft Internet Explorer

Mozilla Firefox

Google Chrome

Apple Safari