Design of Application Framework for Multi-Tenant ...

2 downloads 3731 Views 599KB Size Report
to facilitate development of software applications that suit for customer needs. .... components that can be customized to produce user-specific applications [2].
International Conference on Computer System 2014

Design of Application Framework for Multi-Tenant Asset Management System M Reza Faisal, S.T, S.Si, M.T1, Dr. Ing. M. Sukrisno Mardiyanto2 

Abstract—A software framework is an abstraction in which software providing generic functionality can be selectively changed by additional user-written code, thus providing application-specific software. It is a universal, reusable software environment that provides particular functionality as part of a larger software platform to facilitate development of software applications that suit for customer needs. An application framework consists of a software framework used by software developers to implement the standard structure of an application. An application framework can facilitate development of specific application in a domain problem. An application framework for problem domain of asset management system, enables software developers to create a variety of specific applications based on the that an application framework, such as chemical plant assets management system or asset management system for managing telecommunications assets (eg. base transceiver station). This paper explains steps of application framework design for multi-tenant asset management system. Feature Oriented Domain Analysis (FODA) is used in analysis activity, and design patterns are implemented when creating class diagrams in design activity. The result of the design are artifacts as guidance to write codes for an application framework in development activity. These artifacts also provide information for software developers to know reusable parts (common spots) and parts that can be modified (hot spots) to develop a multi-tenant asset management system that specific to their needs. Applications that are developed base on this an application framework can be applied in Software as a Service environment.

Keywords— Application framework, asset management system, design pattern, FODA, SaaS, software framework. I. INTRODUCTION

S

development process consists of these activities : specification & analysis, design, development, validation and evolution [1]. Generally, after getting the user requirements in specification activity, then continue with design activity, artifact of this activity are classes, user interface and database design. The next activity is software development, in this activity program codes is written based on the results of the design. generally program codes is written from scratch. If there are many softwares that had been developed in same problem domain, then software developers OFTWARE

M Reza Faisal, S.T, S.Si, M.T1 is with the Lambung Mangkurat University, Banjarbaru, Kalimantan Selatan, Indonesia (e-mail: [email protected]). Dr. Ing. M. Sukrisno Mardiyanto2 is with STEI, Bandung Institute of Technology, Bandung, Jawa Barat, Indonesia (e-mail: [email protected]).

should known there are patterns that can be reused so that the design and development activities should not be done from scratch. And they can decrease time and cost in software development. Asset management system is one of the software which is widely used, because its function is essential to many companies or organizations. Asset management system is software to help keep records of assets, recording the condition of each asset and determine financial cost for management to ensure that assets are in the good condition. This system is needed by many organizations or institutions to manage their assets. Types of assets that it managed by each company or organization may vary, depend on their core business. Assets are managed by the telecom company will be different from assets are managed by the chemical production company. That is why there are many variations of a software of asset management system. Although software can help business processes in an organization or company, procurement and operation of the software requires a huge cost for purchase hardware and software, they also must pay salary for people those who manage both software and hardware. Today, there is new kind of software, that is called Software as a Service (SaaS) that has been widely used. SaaS is part of the Cloud Computing. This kind of software are not owned by users, they only can rent and pay what they had used. SaaS can reduce the cost for purchase hardware, software and salary for people who had to manage. Multi-tenant is one of SaaS’s characteristics, it is mean this software can be used by a lot of organizations, companies or users. This research is based on some of the problems outlined above. Purpose of this research is designing an application framework for problem domains those are mentioned above : asset management systems and SaaS. As well as software development in general, development process for an application framework also consists of these activities : (1) specification and analysis, (2) design, (3) development, (4) validation and (4) evolution. This paper only describes the specification activity, then continued with design activity. For specification activity will use Feature Oriented Domain Analysis (FODA) method to analyze those two problem domains to get an application framework’s requirements. In the design activity, class diagrams are designed with the concept of design pattern. This activity is also designing a sequence diagrams to describe the interactions between

International Conference on Computer System 2014 classes. In this paper will be described in detail what was done on each activity and any artifact that must be made.

Four activities in framework development process is ilustrated in this figure [3]:

II. THEORETICAL FOUNDATIONS This section describes the theoretical foundations of this research and provides general knowledge about the main aspects of this research. A. Application Framework Application framework or frameworks are generally targeted for a particular application domain, such as user interfaces, business data processing systems, telecommunications, or multimedia collaborative work environments. A framework is more than a class hierarchy. It is a semicomplete application containing dynamic and static components that can be customized to produce user-specific applications [2]. The benefit of application framework are [2]: 1. Modularity, framework modularity helps improve software quality by localizing the impact of design and implementation changes. This localization reduces the effort required to understand and maintain existing software. 2. Reusability, framework reusability leverages the domain knowledge and prior effort of experienced developers in order to avoid re-creating and re-validating common solutions to recurring application requirements and software design challenges. Reuse of framework components can yield substantial improvements in programmer productivity, as well as enhance the quality, performance, reliability and interoperability of software. 3. Extensibility, a framework enhances extensibility by providing explicit hook methods [Pree:94] that allow applications to extend its stable interfaces. Hook methods systematically decouple the stable interfaces and behaviors of an application domain from the variations required by instantiations of an application in a particular context. Framework extensibility is essential to ensure timely customization of new application services and features. 4. Inverson of Control, enables canonical application processing steps to be customized by event handler objects that are invoked via the framework's reactive dispatching mechanism. When events occur, the framework's dispatcher reacts by invoking hook methods on pre-registered handler objects, which perform application-specific processing on the events. Inversion of control allows the framework (rather than each application) to determine which set of applicationspecific methods to invoke in response to external events.

Fig. 1 Framework development process [3].

These are explanation of each activity that is shown at the figure above [3]: 1. Analysis, identify the key features that are to be included in the framework. 2. Design, after we have set the objectives for the application framework, the next phase is the design phase. The design phase for framework development involves two major tasks. First, we need to identity the common spots and the hot spots in both the domainspecific layer and the cross-domain framework layer. Second, we need to devise an architecture for the framework that will be used as a blueprint during the construction phase. 3. Construction, write code the application framework. 4. Stabilization, focuses on testing, bug fixing, developer feedback, documentation, and knowledge transfer. B. Asset Management System Asset management system is a system to record assets, recording the condition of assets at regular intervals and determining the burden financially of any assets that are managed to meet certain conditions. Recording of any assets under management is done in a systematic record. This system also define a planning for asset maintenance, repair and replacement if asset damaged [4]. There are two techniques that can be used to handling and recording assets : (1) In financial context, assets are viewed from the sale price, purchase price, and asset management in order to maintain or increase the price of the assets. (2) if viewed from physical context, assets are viewed from in order to operate and maintenance. Asset management that were examined in this research is viewed from the physical context. C. Software As A Service Software as a service (or SaaS) is a way of delivering applications over the Internet as a service. Instead of installing and maintaining software, you simply access it via the Internet, freeing user/customer from complex software and hardware

International Conference on Computer System 2014 management [5]. SaaS applications are sometimes called Web-based software, on-demand software, or hosted software. Whatever the name, SaaS applications run on a SaaS provider’s servers. The provider manages access to the application, including security, availability, and performance[5]. SaaS customers have no hardware or software to buy, install, maintain, or update. Access to applications is easy: user/customer just need an internet connection. These are SaaS characteristic [5] : 1. Multitenant architecture, a multitenant architecture, in which all users and applications share a single, common infrastructure and code base that is centrally maintained. Because SaaS vendor clients are all on the same infrastructure and code base, vendors can innovate more quickly and save the valuable development time previously spent on maintaining numerous versions of outdated code. 2. Easy customization, the ability for each user to easily customize applications to fit their business processes without affecting the common infrastructure. Because of the way SaaS is architected, these customizations are unique to each company or user and are always preserved through upgrades. That means SaaS providers can make upgrades more often, with less customer risk and much lower adoption cost. 3. Better access, improved access to data from any networked device while making it easier to manage privileges, monitor data use, and ensure everyone sees the same information at the same time. D. Feature Oriented Domain Analysis (FODA) Successful software reuse requires the systematic discovery and exploitation of commonality across related software systems. By examining related software systems and the underlying theory of the class of systems they represent, domain analysis can provide a generic description of the requirements of that class of systems and a set of approaches for their implementation [6]. Feature-Oriented Domain Analysis (FODA) is method that used to indetify of prominent or distinctive features of software systems in a domain. These features are user-visible aspects or characteristics of the domain [6]. FODA can determine common features and variations of the features that found in a problem domain. With FODA can define mandatory features, optional features and alternative features [6]. Figure 2 illustrates phases and products of domain analysis with FODA.

Fig. 2 Phases and Products of Domain Analysis [6]

For each of the three phases of the domain analysis process there will be a separate set of representations of the domain. These are description of each phase [6] : 1. Context analysis, the results of this phase provide the context of the domain. This requires representing the primary inputs and outputs of software in the domain as well as identifying other software interfaces. 2. Domain modelling, the products of this phase describe the problems addressed by software in the domain. They provide : features of software in the domain, standard vocabulary of domain experts, documentation of the entities embodied in software, generic software requirements via control flow, data flow, and other specification techniques. 3. Architecture modelling, this phase establishes the structure of implementations of soft- ware in the domain. The information can be made to perform domain analysis. are [6] : 1. Textbook. 2. Reference of domain standards. 3. Existing applications that relevant with domain. 4. Domain expert. Here is an example of a model feature diagram and description of each notation that is used in that diagram

Fig. 3 Feature model diagram.

International Conference on Computer System 2014 E. Design Patterns Design patterns are solutions to software design problems you find again and again in real-world application development. Patterns are about reusable designs and interactions of objects. There are three groups of design pattern [7] : 1. Creational patterns. - Abstract Factory, creates an instance of several families of classes. - Builder, separates object construction from its representation. - Factory Method, creates an instance of several derived classes. - Prototype, a fully initialized instance to be copied or cloned. - Singleton, a class of which only a single instance can exist. 2. Structural patterns. - Adapter, match interfaces of different classes - Bridge, separates an object’s interface from its implementation. - Composite, a tree structure of simple and composite objects. - Decorator, add responsibilities to objects dynamically. - Façade, a single class that represents an entire subsystem. - Flyweight, a fine-grained instance used for efficient sharing. - Proxy, an object representing another object. 3. Behavioral patterns. - Chain of Resp, a way of passing a request between a chain of objects. - Command, encapsulate a command request as an object. - Interpreter, a way to include language elements in a program. - Iterator, sequentially access the elements of a collection. - Mediator, defines simplified communication between classes. - Memento, capture and restore an object's internal state. - Observer, a way of notifying change to a number of classes. - State, alter an object's behavior when its state changes - Strategy, encapsulates an algorithm inside a class. - Template Method, defer the exact steps of an algorithm to a subclass. - Visitor, defines a new operation to a class without change.

Information source for this activity are applications of each domain. There are two applications that had been choosen to represented asset management system domain : 1. Plant Maintenance Information System (Plamis), This application is owned by PT Mitsubishi Chemical Indonesia (MCCI). This application serves to recording equipments (assets) data, reporting of damage equipments (assets), recording equipment (assets) repair and maintenance activities at the plant / factory. 2. Telecommunicatoin Infrastructures Maintenance System (TIMS), TIMS is owned by PT Rekatama Global Dimension (RGD). This application serves to manage telecommunications assets such as Base Transceiver Station (BTS). There are two applications that had been choosen to represented SaaS domain: 1. Sales Cloud, This application serves to enhance sales productivity, and as a communication tool with customers or Customer Relationship Management (CRM). 2. Office 365 is an online version of Microsoft Office is used by way of rent. This application has a all features of Microsoft Office plus features for file sharing, collaboration and communication. The first phase in FODA is context analysis and the following result of context analysis are : 1. Structure diagram. SaaS

Web Web Server Server

Web Browser

User’s machine

O/S O/S

Asset Asset Management Management System System Software Software

Database Database server server

O/S O/S

Client

Server

Fig. 4 Structure diagram.

2. Context diagram.

III. ANALYSIS This section contain results of the analysis activity that had been done. Method that we use in this activity is FeatureOriented Domain Analysis (FODA).

Fig. 5 Context diagram.

A. Domain Analysis In this section, we report the results of domain analysis for asset management system domain and SaaS domain.

The second phase in FODA is domain modelling and the result of this phase are feature model diagrams. This diagram is used to obtain feature model, these models provide an

International Conference on Computer System 2014 overview of similarities and differences features of the application domain. There are six feature model diagrams those have been produced. Here are some feature model : Application Framework for MultiTenant Asset Management System

Asset Management

about flexibility degree of hot-spots. This information is needed to design classes and to determine which design patterns to be used in each hot-spot. In this activity, we had produced five hot-spot cards, here are some examples of those hot-spot cards :

SaaS

...

Organization

Asset Registration

Asset Maintenance

Report

...

...

...

Asset Item

Template

Input

Display

Edit

Delete

OR

Chemical Production Equiment

Telecom Infrastructures

Other asset type

Form

File

Fig. 6 Feature model diagram for asset registration (Asset management system domain).

Fig. 8 Hot spot card for asset item input.

Application Framework for MultiTenant Asset Management System

Asset Management

Aplikasi SaaS

...

Tenant

Setup & Configuration

Service

Billing

Help & Communication

...

...

...

...

Fig. 9 Hot spot card for asset report service.

IV. DESIGN Registration

Profile management

Authentication

Authorization

User

Fig. 7 Feature model diagram for tenant (SaaS domain).

From the feature model diagrams those have been made, we can determine the common spots (features which are mandatory) and hot spots (features which are optional and alternative). These are common spots of this application framework: 1. User Authentication and authorization. 2. Data management that support multi-tenant characteristic. 3. Audit trail. 4. Tenant registration. 5. Organization management. 6. Service management. These are hot spots of this application framework: 1. Asset item. 2. Asset item input. 3. Notification sending procedure. 4. Provision of reports. 5. Calculation of using service. B. Hot-spot Cards Each hot-spots that have been obtained are analyzed by using the hot-spot cards. Hot-spot cards provide information

Products or artifacts that has been made at analysis activity are used to design application framework . The following are the results of design activity for application framework. A. Application Framework Architecture Architecture design of application framework provides an overview of the overall framework, which can be seen in the figure below. That figure explain as follow: 1. Microsoft .NET Framework is used as foundation framework. 2. Cross-Domain Component consist of generic functions that are often used in domain-specific component or application-specific. 3. Domain-Specific Component is a component that has the functions of the domain of asset management and SaaS applications. Hot-spots are on this layer.

International Conference on Computer System 2014 C. Class Design for Common Spots These are classes common spot’s classes :

Aplikasi Spesifik

Organization

Asset Registration

Asset Maintenance

Asset Report

Tenant

Service

Billing

Application Service

Domain Service

Domain-Specific Component Repository

Infrastructure

Data Model

Cross-Domain Component

.NET Framework Keterangan : hot-spot

Fig. 10 Architecture of Multi-Tenant Application Framework for Asset Management System.

B. Package Diagram Diagram showing packages contained on this application framework and their relationship between package to one another package. Domain-Spesific Component

ApplicationService

DomainService

Cross-Domain Component

Infrastructure

Repository

DataModel

Fig. 11 Package diagram of application framework for multi-tenant asset management system.

Cross-domain component consist of these packages : 1. Infrastructure, in this package contains classes for managing the security, such as authorization and authentication. 2. DataModel, contains entity classes those are database’s tables representation. 3. Repository, contains data access classes those are used execute database’s operation functions. Domain-spesific component consist of these packages : 1. DomainService, contains entity classes for domain. 2. ApplicationService, contains classes those are use to display data on user interface.

TABLE 1 COMMON SPOT’S CLASSES

No Class Name Infrastructure Package 1 IAuthenticationAdapter 2 IAuthorizationAdapter 3 AuthenticationDefault 4 AuthorizationDefault 5 SecurityFacade Repository Package 1 AMSaaSDataContext 2 GenericRepository 3 UnitOfWork Paket DataModel 1 Tenant 2 Service 3 Billing 4 Organization 5 Asset 6 AssetPropertyValue 7 AssetReport 8 AssetReportPropertyValue 9 AuditTrailLog DomainService Package 1 OrganizationService 2 AssetRegistrationService 3 AssetMaintenanceService 4 AssetReportService 5 TenantService 6 ServService 7 BillingService ApplicationService Package 1 OrganizationAppService 2 AssetRegistrationAppService 3 AssetMaintenanceAppService 4 AssetReportAppService 5 TenantAppService 6 ServAppService 7 BillingAppService

Description Control Control Control Control Control Control Control Control Entity Entity Entity Entity Entity Entity Entity Entity Entity Control Control Control Control Control Control Control Control Control Control Control Control Control Control

The design of the interaction between classes can be seen in the sequence diagrams below :

Fig. 12 Security process.

International Conference on Computer System 2014 V. CONCLUSION

Fig. 13 Data operation process.

D. Class Design for Hot Spots The result of the design of hot-spots described by the class diagram. There are six class diagrams that had been made. Each class diagram using a design pattern so the flexibility of hot-spots that have been determined in the previous stage is reached. Here is the class diagram for some hot-spots.

This work has provided steps that had to followed to develope application framework. In this work, application framework built for the domain of asset management systems and SaaS to make application framework for multi-tenant asset management system. From the description above, FODA can be used to help determine requirements of the application framework. FODA also help determine which features those became common spots and hot-spots. Design pattern can be used to produce hot-spots in accordance with a predetermined degree of flexibility that had been determined in analysis. If the number of applications that are used quite a lot, it is possible to produce application framework with complete features and more flexible to fit to costumer’s requirements. ACKNOWLEDGMENT This research is part of my thesis report that I had been working when I am studying at STEI, Bandung Institute of Technology. The authors are grateful for the anonymous reviewers who made constructive comments. REFERENCES [1] I. Somerville, Software Engineering, Addison-Wesley, 2010. [2] M. E. Fayad , D. C. Schmidt and R. E. Johnson, Implementing Application Frameworks : Object-Oriented Frameworks at Work, Willey Computer Publishing, 1999. [3] X. Chen, Developing Application Frameworks in .NET, 2004: Apress. [4] R. F. Cagle, "Infrastructure Asset Management An Emerging Direction," AACE International Transactions, 2003.

Fig. 14 Class diagram for asset item input hot-spot.

Design pattern which is used in the design class diagram above is the strategy pattern. This design pattern is selected for its ability to select the desired algorithm dynamically at run time. Fig. 15 show, there are two methods that can be use to input data (input from application’s form or upload data in file).

Fig. 15 Class diagram for notification sending procedure.

Design pattern which is used in the design class diagram above is the template method. This is in accordance with the needs of a hot-spot, in order to deliver a notification can be easily adapted.

[5] S. Force, "salesforce," [Online]. Available: http://www.salesforce.com/saas/. [Accessed 30 January 2013]. [6] K. C. Kang, S. G. Cohen, W. E. Novak and A. S. Peterson, FeatureOriented Domain Analysis (FODA) Feasibility Study, Pittsburgh: Software Engineering Institute, 1990. [7] Data & Object Factory, LLC, ".NET Design Patterns," [Online]. Available: http://www.dofactory.com/net/design-patterns. [Accessed 9 November 2014].

Suggest Documents