5
The Orca Framework The standalone framework for producing enterprise level software. Abstract-- In this era of high technical and business globalization, producing an enterprise level application like ERP system is a critical mission. The problem arenas software industry generally face can be divided broadly in two parts: process level and product level. In the process level the problems can be further divided into following sections of analyzing, designing, development cycles, testing, build management, knowledge management, implementation and customer support. Whereas in the product management level the problems can be subdivided in the following areas of architecture, software quality, ability to customize software without changing the code, module integrations, common functional and nonfunctional features . To solve these problems we introduced a new framework called Orca. I. I NTRODUCTION 1(a). What made Orca framework come to existence. During 2012, we undertook some projects for developing and implementing enterprise level ERP systems for a group of factories and companies with versatility in their business perspective and employee strength, which made us understand the real time problems of software production line. This ERP contains around 60 modules, which should be implemented together accurately and must also be powerful enough to support high end feature level customization and flexibility without changing the code at the time of implementation. During the last decades of our experience of many custom development projects, we learned that architecture is one of the most important sections for any mission critical application. Continuous radical changes in the development process can be harmful for any development process flow. Another thing that we learned is that a bad quality in process flow and in product level can be a major cause for a project failure. It became an important necessity for us to investigate and select a proper way to solve these primary problems. In the first era of software development, the developers followed hard coded development process and rigid architecture. Where a requirement change can lead to a huge refraction in code is both time consuming and prone to bugs. During the second era, around 2000, the concept of BPMS (Business Process Management System) was introduced and made a revolution in software industry. It made the change in requirements and customization a comfort, and provided a solution to integrate legacy systems easily. But BPMS is unable to implement the core business process which makes it unsuitable for our mission. These investigations lead us to stay in middle way. Because our framework should develop the core business and must integrate all the existing and new software modules, and also should have some advance features to support for future changes and customizations. A. What is Orca Framework The ORCA Framework is a standalone framework for producing enterprise level software. It is written in Java, which follows the modelviewcontroller (mvc) architectural pattern. It solves all the major functional and nonfunctional issues of multi-customer systems. It operates on almost all the major areas of software development by combining different modules. B. Areas that Orca Framework serves. While creating Orca Framework we experienced that in software production, requirement change and customization for multi-customer system is related not just with technical issues. But a lot of other challenges should be taken under consideration. Orca Framework solves all these major problems and serves mission critical software development in the following areas:- Creating a game plan for using cloud computing to the advantage of multi company support which can reduce the cost at a great level. Supporting high volume concurrent users. Introducing the cutting edge concept of big data for controlling high volume data and batch processes. Mass customization support with minimal changing in the code. Easier 3 rd party integration Rock-solid system security Flexibility in the business process change management Flexibility in the business rule change management Easier and more efficient application life cycle management. Orca Framework also serves in different functional areas like security, logging, caching etc. and nonfunctional areas like reporting and dashboard, BPM, rule engine, notification, etc. Figure 1 shows the details of functional and nonfunctional areas Orca Framework serves. C. Uniqueness of Orca Framework Orca Framework introduces new concepts like Document, which can help in many sections including analyzing, designing, development, testing and implementation. Leave permission in HR module, sales invoice, employee information, purchase invoice, production plan are some examples of Documents. Each module of Orca Framework contains many documents which will be registered in the core platform of the framework. It also provides a lot of services and features for any registered document without any need of development. Fig. 1 shows some features provided by ORCA Framework for each document. This simple concept changes the approach for software development in each part of Software Production Line. Other than Documents Orca Framework introduces Orca Diagnostic which can automatically diagnose specific problems of the framework and makes it easy for the support team to maintain the stability of Orca Framework, Orca Notification module is also a unique feature of this framework. Notifications already are the way you know about everything that happens without having to open the system. Now a days Notification plays an important role in the enterprise software.

Orca White Paper

Embed Size (px)

Citation preview

Page 1: Orca White Paper

The Orca Framework The standalone framework for producing enterprise level software.

Abstract-- In this era of high technical and business globalization,

producing an enterprise level application like ERP system is a

critical mission. The problem arenas software industry generally

face can be divided broadly in two parts: process level and product

level. In the process level the problems can be further divided into

following sections of analyzing, designing, development cycles,

testing, build management, knowledge management,

implementation and customer support. Whereas in the product

management level the problems can be subdivided in the following

areas of architecture, software quality, ability to customize

software without changing the code, module integrations, common

functional and nonfunctional features . To solve these problems

we introduced a new framework called Orca.

I. INTRODUCTION

1(a). What made Orca framework come to existence.

During 2012, we undertook some projects for developing and implementing enterprise level ERP systems for a group of

factories and companies with versatility in their business

perspective and employee strength, which made us understand the real time problems of software production line. This ERP

contains around 60 modules, which should be implemented together accurately and must also be powerful enough to

support high end feature level customization and flexibility

without changing the code at the time of implementation. During the last decades of our experience of many custom

development projects, we learned that architecture is one of the

most important sections for any mission critical application. Continuous radical changes in the development process can be

harmful for any development process flow. Another thing that we learned is that a bad quality in process flow and in product

level can be a major cause for a project failure. It became an

important necessity for us to investigate and select a proper way to solve these primary problems. In the first era of software

development, the developers followed hard coded development

process and rigid architecture. Where a requirement change can lead to a huge refraction in code is both time consuming and

prone to bugs. During the second era, around 2000, the concept of BPMS (Business Process Management System) was

introduced and made a revolution in software industry. It made

the change in requirements and customization a comfort, and provided a solution to integrate legacy systems easily. But

BPMS is unable to implement the core business process which

makes it unsuitable for our mission. These investigations lead us to stay in middle way. Because our framework should

develop the core business and must integrate all the existing and new software modules, and also should have some advance

features to support for future changes and customizations.

A. What is Orca Framework

The ORCA Framework is a standalone framework for

producing enterprise level software. It is written in Java, which

follows the model–view–controller (mvc) architectural pattern.

It solves all the major functional and nonfunctional issues of

multi-customer systems. It operates on almost all the major

areas of software development by combining different

modules.

B. Areas that Orca Framework serves.

While creating Orca Framework we experienced that in

software production, requirement change and customization for multi-customer system is related not just with technical issues.

But a lot of other challenges should be taken under consideration. Orca Framework solves all these major

problems and serves mission critical software development in

the following areas:- • Creating a game plan for using cloud computing to the

advantage of multi company support which can reduce the cost at a great level.

• Supporting high volume concurrent users. • Introducing the cutting edge concept of big data for

controlling high volume data and batch processes. • Mass customization support with minimal changing in

the code. • Easier 3rd party integration • Rock-solid system security • Flexibility in the business process change management • Flexibility in the business rule change management • Easier and more efficient application life cycle

management. Orca Framework also serves in different functional areas like security, logging, caching etc. and nonfunctional areas like reporting and dashboard, BPM, rule engine, notification, etc. Figure 1 shows the details of functional and nonfunctional areas Orca Framework serves. C. Uniqueness of Orca Framework Orca Framework introduces new concepts like Document, which can help in many sections including analyzing, designing, development, testing and implementation. Leave permission in HR module, sales invoice, employee information, purchase invoice, production plan are some examples of Documents. Each module of Orca Framework contains many documents which will be registered in the core platform of the framework. It also provides a lot of services and features for any registered document without any need of development. Fig. 1 shows some features provided by ORCA Framework for each document. This simple concept changes the approach for software development in each part of Software Production Line. Other than Documents Orca Framework introduces Orca Diagnostic which can automatically diagnose specific problems of the framework and makes it easy for the support team to maintain the stability of Orca Framework, Orca Notification module is also a unique feature of this framework. Notifications already are the way you know about everything that happens without having to open the system. Now a days Notification plays an important role in the enterprise software.

Page 2: Orca White Paper

Fig. 1. features provided by ORCA Framework for each document.

(Document Features)

Orca supports the topnotch notification system required by any enterprise. Artificial Intelligence (A.I.) is a very broad research area that focuses on "Making computers think like people" and includes disciplines such as Neural Networks [1], Genetic Algorithms [2], Decision Trees [3], Frame Systems and Expert Systems. The process of developing with an Expert System [4] is Knowledge Engineering. Orca Rule Engine uses the rule-based approach to implement an Expert System and is more correctly classified as a Production Rule System. It provides several new features, such as workflow, constraint programming, and event programming, all of which significantly boost its usefulness as a decision management toolkit. But the main uniqueness of Orca Framework is it combines many modules to solve the problems of Enterprise SPL (Software Production Line) and thus makes software development faster and more stable.

E. Paper composition flow

We organized this paper in different sections for better

understanding of Orca Framework. In The Orca Framework

section we are going to describe different modules of Orca

Framework and the workflow of the framework. In Real-time

Exposure and Future section we will elaborate how Orca

Framework works in Application Lifecycle Management,

relevant implementations of Orca Framework, also the future

scope and development areas of Orca Framework.

II. The Orca Framework

A. Modules of Orca Framework

Orca Framework serves almost all the areas of software

development. So to keep it light weight and flexible we used

Object Oriented approach and agile methodology. For this

reason the framework is divided into different modules to

perform independently and rigorously in each area of software

development. Diagram 02 shows all the modules of Orca Frame

work.

1) ORCA Core: This is the heart of Orca Framework. It handles user interface in a model driven architecture which helps us to change the architecture of the UI easily without refactoring the codes in the modules. Orca Framework introduces many UI templates to generate the UI easily using the Orca Generator [5] from the models defined by the developers. The developers can also define new templates. Orca Framework separates UI presentation from data: All pages contain data and UI structure. By separating data from UI presentation other systems can call a RESTFUL API to exchange data with modules so that developers don’t have to develop any web services to cooperate with other systems. This framework supports Plugins: Developers can add extensions and plugins to develop new features to change and manipulate the behavior of the framework. With the plugins we can achieve to mass customization. If we have to do special customization for each customer, this process can help us to achieve our target without changing the kernel code of our modules.

Below are some key features of Orca Framework codes: Document Identifier: This is an xml file to define a

document and its properties for the Orca Framework. Plugin Identifier: This is an xml file to define plugin

properties. Create new Document Type: Implementer can define a

new object known as type of each document. It is very similar to add a new entity to the system. Each document type can have its own workflow, custom fields, fields and tabs configuration, serial management, custom rules, and access control and so on.

Attachment Management: End users can attach any file to

each document. Implementers can also configure the attachment policies and rules.

Comments: End users can write notes or comments on each document.

Document Grouping: Users and implementers can make groups and sub groups for their documents. Grouping can be used in rule engine and report engine and many other parts of ORCA.

Document Relation: One of the complex parts of information systems is when we produce a document based on another document. Viz. we issue a sales invoice from an inventory voucher. Persisting documents relations and calculating the items count between relations in different chains provided by Orca Framework.

2) ORCA Security: This is a simple implementation of RBAC

(Role Based Access Control). This module is responsible to authenticate and authorize both internal and external users. This module also supports for user access list, group access list, multi-administration, document access in many dimensions, row level security, and more. Also in custom projects

developers can add their own security module with ORCA Plugin [6] infrastructure. 3) ORCA Batch Process: Parallel processing and using hardware is always a tough job for developers. Designing

multi-threaded programs and distributed process on some other hardware can make developers troubled. The ORCA Batch

Page 3: Orca White Paper

Process can handle this issue in a simple and fast way. Jobs can be done in parallel, monitoring progress of job, pause/resume and stopping a job are other interesting features of this module.

4) ORCA Cache: I/O is a major performance fault and can cost us more. With the ORCA Cache, data will be cached on the application server. Also distributed cache in a clustered environment is supported by this module. Thus improves the application performance and reduces the overhead on the database.

5) ORCA Diagnostic: This is one of the best yet simple feature of Orca Framework. Nowadays when our car faces a problem and we understand something is wrong with it, we refer to a mechanic; he uses an Auto Car Diagnostic Tool to find the problem. This is the main concept behind this module. With the ORCA diagnostic, the support team can find the problems in much easier and efficient way. It checks the health of the data-structure and integrity of database. It uses different diagnostic criteria to check the integrity and keeps the logs for further analysis.

6) ORCA Notification: Notification is very important for

modern applications. The ORCA supports many notification channels including SMS, Email, XMPP [7], Skype [8] etc. Also

developers can implement a new channel for notification(s).

Notifications can be used in reports, workflows, events of a document and many other sections. Also users can schedule

some reminders for desired documents. For example a sales

employee wants to schedule a reminder to notify him 3 days later for a specific sales invoice.

7) ORCA Log: This module holds all the logs for all users and all system actives. Logging is absolutely configurable in this

module and implementers can determine what to log and what

not to. The ORCA Flight Recorder is another option of this module. Just like a black box of an airplane, this module

persists in each system activity to analyze them when an unexpected error has occurred.

8) ORCA Rule Engine: A RULE is a representation in the

system of some aspect of our daily business activities. Orca Rule Engine is a business rule management system (BRMS)

with a forward and backward chaining inference based rules

engine, more correctly known as a production rule system, using an enhanced implementation of the Rete algorithm. It

supports the JSR-94 standard for its business rule engine and enterprise framework for the construction, maintenance, and

enforcement of business policies in an organization,

application, or service.

9) ORCA BPM: It is a light-weight workflow and Business

Process Management (BPM) Platform targeted at business

people, developers and system admins. Its core is a super-fast and rock-solid BPMN 2 process engine written in Java.

10) ORCA Evaluation: With the help of this module of ORCA, implementers and end users can evaluate any document in

every module. The evaluation can be done with some KPIs

(Key Performance Indicators) or can be done manually with some EvaluationForm. For example in a workflow of sales

order confirmation we want to evaluate customer credit.

Customer credit contains the result of many KPIs. We can store results of KPIs for each document or use KPI result value for

validation. This is the main idea of Operation Intelligence instead of Business Intelligence which can benefit us by

intelligent decision making during the time of the operation

rather after it. 11) ORCA Report: Expert users know their data. But they

don’t know the structure of data in our system. There are many

good and advanced report generation tools available in the market. But the main disadvantage of these tools is that for

working with them the user should be fluent in design and data structure of that specific module. The ORCA helps users to

select the main view of a report, and then shows all related

documents automatically with the selected view of the report. Thus users can access to all data in all modules related to a

document in a single view. Also users can generate a report to

calculate a KPI value. They can also show a report inside a document. For example as a sales manager I want to see the last

month order of a customer in the sales order document. Also Pivot tables and some kind of charts and export data to excel

are some other interesting features of this module. Users can

make their own reports and share the reports with others. 12) ORCA Search: ORCA Search believes in getting immediate,

actionable insight from data matters. This Module is designed

to take data from any source and search, analyze, and visualize it in real time; the ORCA Search helps end users make sense of

data. This module indexes all documents registered in the ORCA. With the help of a search engine, user can easily search

any document in every module. In many information systems,

end user should open a menu and find his desired record and then do some actions on the records found. With the help of this

module the process becomes vice versa. Here first the user finds

the document after that, based on the user permission(s), he can select a relevant action for the document. This reduces the

educational time for users. And make complex systems very easy.

Fig. 2. Enterprise software lifecycle phases. (Orca ALM)

Page 4: Orca White Paper

III. Real-time Exposure and Future

A) How ORCA helps during ALM?

The ORCA Software Production Line uses combination of different modules and modern approaches to software development methodologies and new concepts like document,

Orca Batch, Orca Notification, Orca Rule Engine, etc., to add greater business value during the each phase of the lifecycle of an enterprise software Fig. 3, by implementing best practices and a stable approach.

When we talk about quality, we divide it into two broad phases: Product Quality and Process Quality. In this section we review the effects of ORCA Framework on ALM (Application Lifecycle Management). It consists of phases mentioned below:

1) Analyzing and Designing phase: With the concept of

Document, analyzers can focus more intensely on the business

logic of their modules. With templates, analyzing and designing

of each module can be similar and the output of this phase is a

ready to use product for easier development. The ORCA

Framework uses Confluence and its knowledge management

system. We believe if it is worth doing, it is worth documenting.

Therefore using a wiki can help the team to keep going hand on

hand with the documentation and code more than ever before.

According to scrum, output of this phase is user stories that are

ready to develop. The ORCA Framework has many best

practices to define DOD (Definition of Done) for each story.

Also in this phase UAT (User Acceptance Test) should be

prepared.

2) Development phase: In Development phase the developers should take tasks from the product backlog at the beginning of each sprint. The ORCA Framework helps the developers to estimate the time of their stories. The developers can complete the UATs in this phase. We customized some parts of Scrum to achieve better performance and quality. Team should hold standup meetings each day to identify problems as soon as possible and to have a plan for solving each problem. 3) Testing and code reviewing phase: After completion of

each user story, the working packet should be tested and

accepted by the product owner. In this phase, product owners

deliver the story based on defined user acceptance tests.

Another important feature in this section is reviewing the code

for better quality. The ORCA Framework suggests SONAR for

automatic code review. Also SONAR is integrated with JIRA

for manual code review and assigns tasks to resolve issues on

the codes.

It also has a testing module to do a black box testing on the final

product. It supports test repositories which contains user

acceptance tests in code. Whenever a team wants to release a

product, all the tests in the test repository should be passed

successfully. With the help of RESTFull architecture of the

ORCA Framework we can do a black box testing on each part

of our software easily.

4) Build and Version Management phase: Building and

version management is not an easy task in ALM. In this

Software Production Line, we used Jenkins for CI (Continuous

Integration) and automatic build management. This Software

Production Line is fully configured for supporting multiple

versions of a module and making release notes. The ORCA

Framework has some best practices for developers and support

team to manage their software better.

5) Implementation phase: Software developed with the ORCA

Framework needs to be implemented on the customer site.

Implementation is a very important role for the applications

based on this framework. Many customizations should be done

by implementers, like creating types of documents, definitions

of rules and workflows and many other configurations. A team

can choose any implementation methodologies based on their

requirements and project type, but ORCA suggests AIM

methodology (Application Implementation Methodology) from

Oracle.

6) Support phase: The customer experience is the next competitive battleground in software industry. Supporting customer requirements and answering a customer in good time, can be a major distinction between companies. The ORCA Framework shows the version of each module installed for a customer so with an issue tracker system like JIRA, the support team can register issues on the right version. So developers and support team can have a good coordination of their projects.

B) Future scope and development areas of Orca Framework.

One of the first activities in designing a framework is to have

an approach that helps in arriving at the desired objective

systematically. There should be a clear vision and goal, a set of

core guiding principles, and a systematic process. Orca is a

concept that we implemented and continuously practicing as a

framework that we call Orca Framework. As mentioned before,

back then, in pre 2012 Orca Framework was introduced as a

standalone solution for creating Enterprise Software. This

concept of Orca improved over time and experience and as a

result made the Orca Framework stronger than before. Today

Orca Framework is a strong competitor in the market. Many

ERP (Enterprise Resource Planning) Modules are created with

Orca Framework and are implemented successfully to the client

side. Experience from continuous support of these ERP

Modules are also reflecting on Orca Framework and making it

stronger and a well-tested framework. Our research, analysis

and development teams are working continuously for ensuring

the future of this framework by its enhancement and releasing

new versions to keep it updated with the fast growing

technology and make it a perfect and easy framework for

developing high-tech Enterprise Software.

“Quality in a service or product is not what you put into

it. It is what the client or customer gets out of it.”– Peter

Drucker [9]

Page 5: Orca White Paper

REFERENCES [1] Natural Networks, In information technology, a neural network is a

system of programs and data structures that approximates the operation of the human brain. Aneural network usually involves a large number of processors operating in parallel, each with its own small sphere of knowledge and access to data in its local memory.

[2] Genetic Algorithm, In the field of artificial intelligence, a genetic algorithm(GA) is a search heuristic that mimics the process of natural selection. This heuristic (also sometimes called a metaheuristic) is routinely used to generate useful solutions to optimization and search problems.

[3] Decision Trees, A decision tree is a decision support tool that uses a tree-like graph or model of decisionsand their possible consequences, including chance event outcomes, resource costs, and utility. It is one way to display an algorithm.

[4] Expert System, a piece of software which uses databases of expert knowledge to offer advice or make decisions in such areas as medical diagnosis.

[5] Orca Generator, A small module of Orca Framework that generates necessary codes and classes for development of Orca Framework.

[6] Orca Plugin,.

[7] XMPP, Extensible Messaging and Presence Protocol (XMPP) is a communications protocol for message-oriented middleware based on XML (Extensible Markup Language). www.xmpp.org (references)

[8] Skype, IP telephony service provider that offers free calling between subscribers and low-cost calling to people who don't use the service. In addition to standard telephone calls, Skype enables file transfers, texting, video chat and videoconferencing. www.skype.com (references)

[9] Peter Drucker, “Quality in a service or product is not what you put into it…” Managing Markets and Customers, pp. 70.