[ieee 2013 third international conference on intelligent system design and engineering applications...

6
SaaS Template Evolution Model Based on Tenancy History Ren Xiaojun, corresponding author Zheng Yongqing , Kong Lanju School of Computer Science and Technology, Shandong University, Jinan, China [email protected] AbstractSaaS (Software as a Service) applications need to be customizable to fulfill the various specific business needs of individual tenants. A tenant may customize with the same application more than once, which commonly occur with changed functional and quality requirements as time goes. Preservation of history tenancy metadata can contribute to the tenant mistakes recovery or as a starting point for next customization. If SaaS applications maintain only the latest customization content for each tenant, it will be very inconvenience. In particular, tenancy history metadata can be used to adjust templates. Therefore, we propose importance of preservation for tenancy history metadata. In order to improve the convenience of on-demand customization and user experience, shorten the tenants’ customization time, improved QoS; we also propose a method for adjusting template objects dynamically based on XML structured features for tenancy metadata. This method can adjust according to the update of tenancy history metadata, when the requirements of tenants change, the template update accordingly by analyzing tenancy history metadata from Graphic User Interface (GUI), workflow, service, and data layer. The updated templates will support customization in a cost effective way, in addition, can be provided to the Independent Software Developers (ISV) as a reference in next application upgrade. Finally, experiments show that template adjustment algorithm in the application is feasible and efficient. Keywords-SaaS; tenancy history metadata; templates; customization; adjust template objects dynamically; ISV I. INTRODUCTION As the rapid development of Internet, SaaS has become a popular cloud computing delivery model with multi-tenancy architecture (MTA) where a copy of software can serve multiple tenants who have different specific business needs. The goal of SaaS is to allow multiple tenants to share a software services with a high level customization [1]. In order to gain huge profit, SaaS provider must be able to attract a large number of tenants, by means of Web, supports multi-tenant while running a single instance of application. Tenants don't buy software license, not local installation and maintenance. A maturity model for SaaS with four levels is proposed in [3], which emphasize that a well-designed SaaS application is scalable, configurable and with MTA. MTA also brings in new challenges in comparison with traditional software development, as need to meet functional requirements, e.g. custom needs, tenants’ isolation, parallel access. Therefore, to build the SaaS application still needs a great quantity of manpower and material resources, only less capable ISV [4] can develop SaaS applications. To solve this problem, PaaS (platform as a service) emerge as the times require, which shields implementation details of SaaS application multi-tenant feature. ISV can use tools provided by PaaS platform for rapid development, deployment of SaaS applications, as a consequence, various SaaS application are developed based on this PaaS platform. For tenants, through the PaaS platform provides a plurality of SaaS application, can be more convenient to construct their business application system. So that tenants can focus on their core business, which brings tenants' professional development. [3] As more and more software developers are devoted to the field, SaaS has obtained the huge development and made a series of success, at the same time, new requirements for SaaS customization solutions are raised. First, a tenant may customize with the same application more than once, which commonly occur with changed functional and quality requirements as time goes. Some SaaS applications maintain only the latest customization content for multiple customizations of each tenant. Unfortunately, tenants cannot switch between or back-off in these customizations because of mistakes, in this situation, they may need to perform customization from scratch. Secondly, it is difficult for tenants to form individual applications, especially when SaaS application on PaaS platform diversified. Template objects can be provided for tenants to assist SaaS customization which deal with the commonality of tenants [1]. Initial business application developed by ISV is commonly regarded as default template, and tenants tailor the template to individual business needs. Requirements change over time, a tenant may perform customization on the same SaaS application repeatedly to satisfy the changing business demands. When demands change frequently, the template is increasingly unable to meet the needs of tenants. So, we propose importance of preservation for tenancy history metadata. And, analyzing tenancy history metadata from Graphic User Interface (GUI), workflow, service, and data layer, we also propose a method for adjusting template objects dynamically. This method can adjust according to the update of tenancy history metadata, when the requirements of tenants change, the template update accordingly. The updated templates will support customization in a cost effective way, in addition, can be provided to the Independent Software Developers (ISV) as a reference in next application upgrade. If the later upgrade is based on the template dynamically adjusted, business system constructed by tenants can integrate with the upgraded application more easily. In the remainder of the paper, is organized as follow: in section2 discusses the related work in customization that has been achieved; in section3, we will introduce the template evolution model; in section4, we will introduce the importance of customization history content and a strategy to describe customization history content; in section 5, mapping customization history content to storage metadata; in section 6, we show the algorithm to adjust template dynamically, and in section 7 gives our experiment; at last we conclude the 2013 Third International Conference on Intelligent System Design and Engineering Applications 978-0-7695-4923-1/12 $26.00 © 2012 IEEE DOI 10.1109/ISDEA.2012.293 1242

Upload: kong

Post on 19-Dec-2016

213 views

Category:

Documents


1 download

TRANSCRIPT

SaaS Template Evolution Model Based on Tenancy History

Ren Xiaojun, corresponding author Zheng Yongqing , Kong Lanju School of Computer Science and Technology, Shandong University, Jinan, China

[email protected]

Abstract—SaaS (Software as a Service) applications need to be customizable to fulfill the various specific business needs of individual tenants. A tenant may customize with the same application more than once, which commonly occur with changed functional and quality requirements as time goes. Preservation of history tenancy metadata can contribute to the tenant mistakes recovery or as a starting point for next customization. If SaaS applications maintain only the latest customization content for each tenant, it will be very inconvenience. In particular, tenancy history metadata can be used to adjust templates. Therefore, we propose importance of preservation for tenancy history metadata. In order to improve the convenience of on-demand customization and user experience, shorten the tenants’ customization time, improved QoS; we also propose a method for adjusting template objects dynamically based on XML structured features for tenancy metadata. This method can adjust according to the update of tenancy history metadata, when the requirements of tenants change, the template update accordingly by analyzing tenancy history metadata from Graphic User Interface (GUI), workflow, service, and data layer. The updated templates will support customization in a cost effective way, in addition, can be provided to the Independent Software Developers (ISV) as a reference in next application upgrade. Finally, experiments show that template adjustment algorithm in the application is feasible and efficient.

Keywords-SaaS; tenancy history metadata; templates;customization; adjust template objects dynamically; ISV

I. INTRODUCTION

As the rapid development of Internet, SaaS has become a popular cloud computing delivery model with multi-tenancy architecture (MTA) where a copy of software can serve multiple tenants who have different specific business needs. The goal of SaaS is to allow multiple tenants to share a software services with a high level customization [1]. In order to gain huge profit, SaaS provider must be able to attract a large number of tenants, by means of Web, supports multi-tenant while running a single instance of application. Tenants don't buy software license, not local installation and maintenance. A maturity model for SaaS with four levels is proposed in [3], which emphasize that a well-designed SaaS application is scalable, configurable and with MTA.

MTA also brings in new challenges in comparison with traditional software development, as need to meet functional requirements, e.g. custom needs, tenants’ isolation, parallel access. Therefore, to build the SaaS application still needs a great quantity of manpower and material resources, only less capable ISV [4] can develop SaaS applications. To solve this problem, PaaS (platform as a service) emerge as the times require, which shields implementation details of SaaS application multi-tenant feature. ISV can use tools provided by

PaaS platform for rapid development, deployment of SaaS applications, as a consequence, various SaaS application are developed based on this PaaS platform. For tenants, through the PaaS platform provides a plurality of SaaS application, can be more convenient to construct their business application system. So that tenants can focus on their core business, which brings tenants' professional development. [3]

As more and more software developers are devoted to the field, SaaS has obtained the huge development and made a series of success, at the same time, new requirements for SaaS customization solutions are raised. First, a tenant may customize with the same application more than once, which commonly occur with changed functional and quality requirements as time goes. Some SaaS applications maintain only the latest customization content for multiple customizations of each tenant. Unfortunately, tenants cannot switch between or back-off in these customizations because of mistakes, in this situation, they may need to perform customization from scratch. Secondly, it is difficult for tenants to form individual applications, especially when SaaS application on PaaS platform diversified. Template objects can be provided for tenants to assist SaaS customization which deal with the commonality of tenants [1]. Initial business application developed by ISV is commonly regarded as default template, and tenants tailor the template to individual business needs. Requirements change over time, a tenant may perform customization on the same SaaS application repeatedly to satisfy the changing business demands. When demands change frequently, the template is increasingly unable to meet the needs of tenants. So, we propose importance of preservation for tenancy history metadata. And, analyzing tenancy history metadata from Graphic User Interface (GUI), workflow, service, and data layer, we also propose a method for adjusting template objects dynamically. This method can adjust according to the update of tenancy history metadata, when the requirements of tenants change, the template update accordingly. The updated templates will support customization in a cost effective way, in addition, can be provided to the Independent Software Developers (ISV) as a reference in next application upgrade. If the later upgrade is based on the template dynamically adjusted, business system constructed by tenants can integrate with the upgraded application more easily.

In the remainder of the paper, is organized as follow: insection2 discusses the related work in customization that has been achieved; in section3, we will introduce the template evolution model; in section4, we will introduce the importance of customization history content and a strategy to describe customization history content; in section 5, mapping customization history content to storage metadata; in section 6,we show the algorithm to adjust template dynamically, and in section 7 gives our experiment; at last we conclude the

2013 Third International Conference on Intelligent System Design and Engineering Applications

978-0-7695-4923-1/12 $26.00 © 2012 IEEE

DOI 10.1109/ISDEA.2012.293

1242

mentality of this paper and propose the additional work in the future.

II. RELATED WORK

In contrast to SaaS customization, traditional customization include parameterizations, AI rules, file-based customizations,and template-based customizations such as Template Method in OO design patterns[14].Customization can be done manually, automatically, and adaptively[15]. Customization may be based on software running history information, current workload state,or user experience such as user interaction. Customization in traditional way is commonly reflected in products offered in different packages. Service oriented architecture (SOA) offer a new way to customize as a new application can be re-composed from an existing application, which use different services.

Although, SaaS customization is a new issue, but it has been researched in many literatures. At data level customization, specifically data schema design, for example the data architecture of multi-tenant is debated [4], where data architecture is identified as three distinct approaches called Separate Databases, Shared Database Separate Schemas and Shared Database Shared Schemas. Also, [5] proposed a new schemas-mapping technique called Chunk Folding to deal with multi-tenant data. At service level, Zhang [6] proposed a novel SaaS customization policy and though design-time tooling and a runtime environment to support SaaS customization framework. Ralph Mietzner described notion of a variability descriptor which defines variability points for the process layer and related artifacts [7].

These existing researches either discussed solutions in certain layer of customization or did not refer to the relationship cross layers. A multi-granularity model is proposed [8], where multi-layer and cross layer relationship is fully considered. [1] Offers an intelligent customization framework, in which ontology is well integrated into customization. Also, recommendations are provided to tenants as the guide to customize. Multi-level customization model [13] put forward a novel data storage model, better supporting multi-level customization model. In the multi-level customization model, customization metadata can shared in tenant’s domain; to a certain extent, simplify the tenants’customization work.

III. SAAS TEMPLATE EVOLUTION MODEL

In SaaS, most custom operations are performed by the administrator of tenants, rather than by the software developer, so the custom operation must be simple and easy to understand. Template Objects [1] provide a flexible and helpful way to assist SaaS customization. Each layer (data layer, service layer, workflow layer, GUI layer) has its own template objects. Take the initial business applications developed by ISV as the default templates. Customization will be easier and be shortened by using template object as an initial starting point. So, we will discuss how to adjust the templates objects,produce new template object to further coincidence with business needs of the tenants ( new or old) in the next customization, what’ more , new templates can also be provided to ISV as references in the next upgrade.

A mature PaaS platform must provide the ability to support a high level of customization. Concerning customization, the SaaS application need to allow tenants perform customization in all aspects, including GUI, services, processes, and data. Tenants can upgrade their rented SaaS application dynamically by customizing with the same application more than once, sothe template should be constantly evolving to meet the changing business demands of tenant. The SaaS template evolution model is shown in Fig. 1.

Tenant2 Tenant3Tenant1

Basic TemplateRetrieve

UI WorkFlow Service Data

TemplateAdjustmentcustomization

V0

UI WorkFlow Service Data

customizationVm

Tenant5 Tenant7Tenant1

Basic TemplateRetrieve

V0

TemplateAdjustment

UI WorkFlow Service Data

customizationVm+1

TenantN TenantMTenanK

Basic TemplateRetrieve

Vk

V0

Vk

Vk+1

TemplateAdjustment

Vk+1

Customization History

Customization History

Template DB

Template DB

Template DB

Template DB

ISV

Delivery

ISV

Feedback

ISV

Feedback

Figure 1. The SaaS template evolution model

Tenants can upgrade their rented SaaS application dynamically by customizing with the same application more than once, and then they can choose one of customization history contents for tenancy mistakes recovery or as a starting point for next customization. So Service Providers should not only hold the latest customization content but also hold at least two customization history contents for tenant. Tenants can choose whether or not to save the customized content as customization history content. HCCDS is used to describe this. Analyzing tenancy history metadata from Graphic User Interface (GUI), workflow, service, and data layer, we also propose a method for adjusting template objects dynamically. This method can adjust according to the update of tenancy history metadata, when the requirements of tenants change, the template update accordingly. Customization operation step numbers of tenants based on new template will decrease obviously. In the following we will focus on HCCDS and template adjustment method.

IV. CUSTOMIZATION HISTORY CONTENT DESCRIPTION STRATEGY

HCCDS is used to describe the recent customization contents for each tenant with the same application, and also indicates the desire on whether to save this customization content or not. HCCDS contains four components: Customization Object (CO), Customization Type (CT), Customization Description (CD), and Preservation Desire (PD).

1243

In order to describe the customization better, define what we can customize as customization objects, which include data object, service object, business process (workflow) object, and GUI object. So objects can be expressed as a three-tuples (APPID, OBJECTTYPE, OBJECTID), where APPID and OBJECTID identify SaaS applications and customization objects respectively. OBJECTTYPE includes DATA, SERVICE, WORKFLOW and GUI. Each object contains a number of customizable attributes, and also has customization constraints.

CT means the operation which tenant will do during customization on CO. We define the following customization operation:

� Add a customization object. We define ADD as the CT.

� To delete a customization object. We define DELETE as the CT.

� Modify a customization object, including: delete anattribute, modify an attribute, and add a new attribute.We define DETELEATTR, UPDATEATTR, and ADDATTR as the CT respectively.

CD means the constraint information of customization process. It can describe the following information:

� A customization object can be deleted, modified, or add other new attributes;

� An attribute can be deleted, modified.

� PD describes if the tenant wants to keep this customization content as customization history content or not, if saved, it will be “Y”, else it is null.

The following is an example during a customization. Asample data table {employee} in application development process is shown in Fig.1, which has EmployeeID field,EmployeeName field, Address field and Phone field. In the customization, the tenant want to extend the table as shown in Fig.2, where add a new field to table {employee}. In addition,the tenant will contain this customization.

TABLE I. THE SCHEMA OF EMPLOYEE TABLE

EmployeeID EmployeeName Address Phone

TABLE II. THE LOGICAL SCHEMA AFTER CUSTOMIZATION

EmployeeID EmployeeName Address Phone Education

V. HCCDS MAPPING TO STORAGE

In the previous section, we present the HCCDS. When the SaaS platform receives the description, it should indentify the content and transform it into metadata tables. XML [12] because of its semi-structured flexibility, being used to store tenants’ extension data has a great advantages, more and more large commercial databases also have begun to support XML, such as: IBM pureXML. In this paper, we also use XML to realize the storage of multiple customization contents through inserting a XML data column into the table.

Figure 2. Example of an Example of XMLContent

In order to realize the storage of multiple customization contents, we need two separate new tables,His_tenancy_metadata and App_template_metadata. The schema of His_tenancy_metadata is shown in Fig. 2, and the schema of App_template_metadata is shown in Fig. 3.

Then we will define the mapping strategy in corresponding to the five customization types. The implementations are as the following:

� ADD: If the PD is not null, assign a physical row in the His_tenancy_metadata and App_template_metadata respectively, customization history metadata is generate from the CD and the CO. The value of “XMLContent” in App_template_metadata is set to “NULL”.

� DELETE: If the PD is not null, the His_tenancy_metadata is unchanged, metadata about the CO is deleted from tenancy metadata table.

� ADDATTR: If the PD is not null, get tenancy metadata on the CO from metadata table, insert related metadata about attribute into His_tenancy_metadata and update the related metadata in tenancy metadata table which is generate from the CD and the CO.

His_tenancy_metadata

RowIDPK

TenantID

ObjectID

AppID

ObjectType

TenancyObjectID

XMLContent

SystemIDApp_template_metadata

RowIDPK

ObjectID

AppID

ObjectType

TemplateID

XMLContent

Figure 3. Schema of table His_tenancy_metadata and table App_template_metadata

<Table>

<Columns>

<column name="ZMID" datatype="VARCHAR2" length="30" nullable="N" Usable ="Y" description="null" isCustom="N" num="0" />

<column name="SSJGID" datatype="VARCHAR2" length="30" nullable="Y" Usable ="Y" description="null" isCustom="N" num="1" />

<column name="CQ1" datatype ="BLOB" length="4000" nullable="Y" Usable="Y" description="null" isCustom="Y" num="2"/>

</Table>

1244

� DETELEATTR: If the PD is not null, get tenancy metadata on the CO from metadata table, delete related metadata about attribute from the tenancy metadata table which is generate from the CD and the CO. Table His_tenancy_metadata is unchanged.

� UPDATEATTR: If the PD is not null, get tenancy metadata on the CO from metadata table, update the related metadata in tenancy metadata table which is generate from the CD and the CO, and insert the metadata on the CO got from the updated tenancy metadata into Table His_tenancy_metadata.

Fig. 1 shows an example of XMLContent.

VI. METHOD FOR ADJUSTING TEMPLATE DYNAMICALLY

It is impossible to build generalized templates objects to fulfill all needs from diverse tenants in different domains. This paper proposes a dynamic method based on tree matching theory to adjust templates objects for a specific domain. Take the initial business applications developed by ISV as the default templates. As mentioned in the previous section, we use XML form to keep customization history content. Before we discuss the method for adjusting template dynamically, we will introduce some related definitions and formula.

According to the structural characteristics of XML description metadata, we can represent customization history metadata into metadata trees. Some definitions and formula are given as follows:

Definition 1(Metadata Tree) A XMLContent column of His_tenancy_metadata can be depicted as a rooted unordered tree, T= (V, E, L, ObjectID), where V is the set of nodes, E V V is the set of edges, L is the set of labels; ObjectID is the root of T which identifies a customization object. In Fig. 4,the left shows a UI object customization history metadata example; the right side is its metadata tree.

To make calculation conveniently, node preprocessing is necessary. Some node labels of metadata trees are commonly a combination of several words. So, node labels can be segmented into a set of words by using delimiters. E.g., “name of student” {name, of, student }.

We can use WordNet to calculate the similarity of two words: sim (t1, t2) [0, 1] (t1, t2 are words from the same customization objects to different metadata tree), the closer the value is to 1, the more similar the two words are. If WordNet returns a value of "IDK", which is illustrated “no relation”between the two words. Then we would need to use the formula (1) to calculate the syntactical similarity, where edit_dist (t1, t2) were calculated the cost in transforming a word into another word and through edit operation such as insertion, deletion or substitution. Length (t1) and length (t2)denote the length of t1 and t2. For example, the edit_dist between "address" and "addross" is “1”, and the syntactical similarity is “0.857”.

� ���

��

��

)(),(max),(_1),(

21

2121 tlengthtlength

ttdisteditttsim ���

UI

HBox

Canvas

ButtonText

DataGrid

Column

<UI> <Canvas> <HBox>

<Label text=”” fontSize=”” color=””/><Label text=”” fontSize=”” color=”” /><Button text=”” fontSize=””click=””/>

</HBox> <DataGrid>

<DataGridColumn field=””/><DataGridColumn field=””/>

</DataGrid> <Canvas>

<Button text=”” fontSize=””click=””/><Button text=”” fontSize=””click=””/>

</Canvas> </Canvas></UI>

Text Column

Canvas

Button Button

UI

HBox

Canvas

ButtonText

DataGrid

Column

<UI> <Canvas> <HBox>

<Label text=”” fontSize=”” color=””/><Label text=”” fontSize=”” color=”” /><Button text=”” fontSize=””click=””/>

</HBox> <DataGrid>

<DataGridColumn field=””/><DataGridColumn field=””/>

</DataGrid> <Canvas>

<Button text=”” fontSize=””click=””/><Button text=”” fontSize=””click=””/>

</Canvas> </Canvas></UI>

Text Column

Canvas

Button Button

Figure 4. Example of a UI Object

We can calculate the label similarity of node by using words similarity calculation method (semantic similarity or syntactic similarity). Assume that u and v is metadata tree node, T1 and T2 are words sets for label (u) and label (v), ti T1, tj

T2, (1 i k, 1 j l, k, l are the number of words in T1 and T2), The node label similarity of T1 and T2 is the average of the best similarity of each word with a word in the other set. The formula is illustrated as following [9, 10]:

||||

),(max),(max))(),((

21

1 212

TT

ttsimttsimvlabelulabelNsim Tt Tt

jiTtjiTti j

ij

���

����

��

�� �� � �� (2)

The value of the Nsim coefficient is in the range of [0, 1], we can set a threshold t [0, 1]. If Nsim (label (u), label (v))

t, we say node u and v matched.

Definition 2(Metadata Tree Structural Matching)Supposing two trees: T1= (V1, E1, L1, ObjectID0), T2= (V2,E2, L2, ObjectID0), T1 and T2 are two metadata tree with the same customization object. For V1’ V1 and V2’ V2, if there is a mapping f: V1’ V2’, making them meet the ancestral relationship according to some constraint (Child node is matched if and only if their parent node is matched), we say that T1 and T2 is metadata tree structural matching.

With comparison among all the metadata trees on the same customization object, we can find out the similarity among these metadata trees, which can be extracted as the new template. Comparison between two metadata trees is essentially to calculate the matching similarity between them. Also, metadata can be represented as a path set from the root node to a leaf nodes [11]. Two paths are matched if and only if the node is metadata tree structural matching with the node on another path.

The nature language description of template dynamically adjustment method (TDAM) as follow:

� Get matched node pairs in form of tree path by using algorithm in Fig. 5.

� And then through the equivalence partitioning [12], similar nodes classified together, dividing them into X classes, and calculate the number of elements in eachclass at the same time.

1245

Figure 5. Algorithm of calculating matched node pairs

� Define the customization objects customizing function S (x), its range is [0, 1], and calculate customizing degree of each elements. We can set a threshold “s”,finally according to the customizing degree and “s”, decide which elements can we use to edit the default template to get a new template.

� Template adjustment is not continuous, but periodically, we can set a trigger condition to make

adjustment algorithm, for example when customization on the same customization in multiple tenants occurred among more than a certain threshold, adjustment algorithm will be restarted to update the template.

VII. EXPERIMENT AND RESULTS ANALYSIS

To validate the effectiveness and performance of proposed TDAM, we did the experiments. Our experiment is implemented in Java 1.6.0. The database is oracle 10g and the application server is Apache Tomcat 6. Both of database and application server is deployed on a PC. The operating system is windows XP Professional, CPU is Intel Core2 Duo 2.93GHz, the memory is 4GB, and the hard disk is 500G. In our experiments, a SaaS application is mapped into our new data storage architecture.

Figure 6. The effects on customization after first adjustment byTDAM with different thresholds

We use TDAM to update the default template based on the tenancy history metadata with different thresholds (“t”) and we simulate 30 tenants for this application. They customize with the SaaS application based on default template and based on templates adjusted by our method separately. We compare the number of CT on different CO in these ways; their total number is shown below.

From the experiment results, we can see that, with adjusted templates by TDAM based on tenancy history metadata, the number of CT on the CO is reduced drastically in comparison with the default template. With different thresholds, the different results are shown in Fig. 6. But, the number of operations is all reduced in comparision with the number on default template. The Fig. 7 shows that the number of operations is reduced on the whole after the second adjustment with the threshold “50%”, despite the small proportion of the tenant's operation number is increased.

1. Algorithm for getting matched node pairs:2. Input: Table His_tenancy_metadata 3. Table App_template_metadata 4. Output: Matched node pairs: < pathi, pathj > maplist5. While (App_template_metadata.hasElement ()) {6. TempObject=7. App_template_metadata.nextElement (); 8. While (His_tenancy_metadata.hasElement ()) { 9. i=0;10. TempTenancyObject=11. His_tenancy_metadata.nextElement ();12. If(TempTenancyObject.ObjcetID=13. TempObject.ObjectID)14. TempTenancyObject.Content is transformed into

metadata Trees Ti;15. End if;16. i++; 17. if (Ti!=Tk)18. NodeLabel Ti.getNodeName() //get all the node;19. NodeLabel’ Tj.getNodeName ()//get all the node;20. Set the threshold “t” for the node Label similarity; 21. Nsim (NodeLabel (i), NodeLabel’ (j))22. // calculate the similarity;23. // 1 i m,1 j n,m,n is the number of nodes in Ti

and Tj.24. if(Nsim(NodeLabel (i),NodeLabel’(j)) t25. Insert this node pair into mapNode;26. Ti P{p1,p2,……,pr};

// represent Ti and Tj as path sets

27. Tj {q1,q2,…..,qs28. }29. for ( i=0 to r, j=0 to s)30. While (mapNode.hasElement())31. {32. pair<PNodei[g]),PNode ’j[h]>=33. mapNode.nextElement();34. if(pair<parent(PNodei[g]),parent(PNode’j[h])35. mapNode)36. insert pair<PNode i[g]),PNode ‘j[h]>into maplist37. End if; }38. End if;39. End if;40. End if;41. i--;42. }43. } }

1246

Figure 7. The effects on customization after the second adjustment by TDAM with the thresholds”50%”

VIII. CONCLUSION

Tenancy history metadata is very important. Therefore, we propose importance of preservation for tenancy history metadata. And, analyzing tenancy history metadata from Graphic User Interface (GUI), workflow, service, and datalayer, we propose a method for adjusting template objects dynamically. This method can adjust according to the update of tenancy history metadata, when the requirements of tenants change, the template update accordingly. The updated templates will support customization in a cost effective way, in addition, can be provided to the Independent Software Developers (ISV) as a reference in next application upgrade. In the future, we will considerate method for adjusting template between two upgrade of software.

REFERENCES

[1] W.-T. Tsai, Q. Shao, and W. Li. Oic: Ontology-based intelligent customization framework for saas. In International Conference on Service Oriented Computing and Applications (SOCA’10),Perth, Australia, Dec. 2010(To Appear), 2010.

[2] Zeeshan Pervez, Sungyoung Lee, Young-Koo Lee, “Multi-Tenant, Secure, Load Disseminated SaaS Architecture”, Feb. 7-10, 2010 ICACT2010.

[3] Frederick Chong,GianpaoloCarraro, Architecture strategies forcatching the long tail.2006.[4]Frederick Chong, GianpaoloCarraro, and Roger Wolter.Multitenantdata architecture. 2006.

[4] Craig D. Weissman and Steve Bobrowski. The design of the force.commultitenant internetapplication development platform. In SIGMOD ’09,pages 889–896, New York, NY, USA, 2009. ACM.

[5] Kuo Zhang anad Xin Zhang, Wei Sun, Haiqi Liang, Ying Huang,Liangzhao Zhen, and Xuanzhe Liu. A policy-driven approach forsoftware-as-services customization. IEEE Int. Conf. on, and EnterpriseComputing, E-Commerce, and E-Services, 0:123–130, 2007.

[6] Ralph Mietzner and Frank Leymann. Generation of bpel customizationprocesses for saas applications from variability descriptors. In SCC ’08,pages 359–366, Washington, DC, USA, 2008. IEEE Computer Society.

[7] Hongbo Li, Yuliang Shi, and Qingzhong Li. A multi-granularitycustomization relationshipmodelfor saas. In WISM ’09, pages 611–615,Washington, DC, USA, 2009. IEEE Computer Society.

[8] Feng, Xiuzhen and Chen, Ni. (2010). A study on tree matching model and algorithm towards metadata. 2010 2nd IEEE international conference on information management and engineering. Chengdu, China, April 16-18, 259-262

[9] R. Nayak, “Fast and effective clustering of XML data using structural information,” KnowlInfSyst, issue 14, pp. 197-215, 2008.

[10] Madhavan J, Bernstein PA, Rahm E (2001) Generic schema matching with cupid. In: 27th VLDB. Roma,Italy

[11] S. Joshi, N. Agrawal, and R.Krishnapuram, “A Bag of Paths Model for Measuring Structural Similarity in Web Documents,” SIGKDD ’03, pp. 577-582, 2003.

[12] http://en.wikipedia.org/wiki/Equivalence_class[13] Lanju Kong, Qingzhong Li, Xuxu Zheng, et al. A Novel Model

Supporting Customization Sharing in SaaS Applications[C]// 2011 International Conference on Multimedia Information Networking and Security, 2010.

[14] Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-oriented Software.Addison-Wesley Professional, 1995.

[15] M.O. McFaddin. Adaptive Customization: New Design Opportunities in Orthopedics, Driven by the Merging of Imaging and Surgery. In Masters Abstracts International, volume 45, 2007.

1247