Upload
indranil-sinha
View
36
Download
1
Embed Size (px)
Citation preview
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.
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
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)
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]
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.