Xpoints: Extension Interfaces for Multilayered Applications

Xpoints: Extension Interfaces for Multilayered Applications

XPoints: Extension Interfaces for Multilayered Applications Mohamed Aly⇤†, Anis Charfi⇤, Sebastian Erdweg†, and Mira Mezini† ⇤Applied Research, SAP AG fi[email protected] †Software Technology Group, TU Darmstadt [email protected] Abstract—Extensibility is a key requirement in modern develop and integrate extensions. The extensions are likely software applications. In the context of business applications to interact with the core software (e.g. access internal data it is one of the major selection criteria from the customer resources) and can as well affect the main execution stream. perspective. However, there are some challenges concerning the specification and enforcement of extension interfaces. Extension In the case of business applications, especially those that interfaces define the resources of the base applications that are implement strict legal regulations (e.g. tax calculations), allowed to be extended, where and when the extension code will extensibility has to be controlled in a rigorous way. This is run, and what resources of the base application an extension is required for example to prevent undesirable system behavior, allowed to access. While concepts for such interfaces are still a data inconsistencies, and restrict access to sensitive system hot research topic for “traditional” software constructed using a single programming language, they are completely missing information. In our previous works [1], [2], we have outlined for complex consisting of several abstraction layers. In addition, the challenges and requirements for enabling extensibility state-of-the-art approaches do not support providing different for complex multilayered applications. extension interfaces for different stakeholders. With respect to applications that require a controlled This paper attempts to fill this gap by introducing XPoints, an approach and a language for specifying and enforcing form of extensibility, there are two perspectives that should extension interfaces in multilayered applications. An extension be considered: the software provider perspective and the interface in XPoints defines the available extension points extension developer perspective. From the perspective of the on the different abstraction layers, controls the access and software provider, the application consists of several logical visibility of the core application to the extension, and con- layers (e.g. user interface (UI), business process, business strains the interplay between extension points possibly from different abstraction layers. Several extension interfaces can object, database etc.) containing many artifacts that can be be overlaid over the same core application, hence, enabling made extensible for the extension developer. However, in multiple extender views to co-exist. Using an XPoints interface, the context of complex business applications, a software a software provider can automatically generate the extensibility provider can have several kinds of extension developer code infrastructure to provide the extension interface for the groups that can build extensions for the software (e.g. inter- core application. nal development teams and external partner companies). In all cases, the software provider has to develop the necessary I. INTRODUCTION mechanisms to support extensibility such that they express Applications targeted for a large scale and a wide range of and support the following for the extension developer. customers such as business applications typically support a set of standard business processes (e.g. sales order process- M1. Extension possibilities: the artifacts that are al- • ing, recruitment, etc.). Once an organization acquires such lowed to be extended (e.g. UI forms, business process an application, it has to customize and / or extend it to match activities, database tables, etc.). their specific needs. To achieve that, the software provider M2. Interdependencies: the relationships and con- • has to design the software system to support variability straints that exist between these extensible artifacts. and extensibility. In the context of this paper, we focus M3. Extension types: the types of extensions that are al- • on extensibility. We refer to extensibility as the addition lowed to be added to these artifacts (e.g. new methods, of new functionalities to a software system to support new attributes, UI elements, process artifacts, new columns requirements. in a database table, etc.). In most commercial business software systems, a software M4. Extension method: the required coding elements • provider does not give the source code of his applications and how to extend these artifacts (e.g. inheritance, plug- to the extension developers. However, the software provider ins etc.). gives the extension developers access to artifacts like, e.g., M5. Extension control: what underlying application • API libraries, frameworks, etc. along with documentation, resources are available for the extension code (e.g. tutorials, and other materials to help an extension developer variables, methods, etc.) as well as their access rights understand what extension possibilities exist, and how to and usage rules. M6. Extension integration and execution: when and of extension interfaces from their realization (e.g., using • where will the extension code run. design patterns or plug-ins). By decoupling the extension An extension interface specifies the extensibility of a interface from the application, XPoints enables different source code artifact according to M1–M6 above. The ex- extension interfaces for different groups of extension de- tension developer, on the other hand, has to understand the velopers. Moreover, a developer can realize the extensibility extension interface of the system as well as its correct usage interface of a software system by automatically generating to successfully develop and integrate his extension with the the extensibility supporting code from an XPoints interface core software. (Section III). Third, we report on one particular instantiation Turning to object-oriented languages (e.g. Java), there of the approach in business applications consisting of three are two kinds of mechanisms related to the implementa- layers: business object, UI, and business process. We also tion of extension interfaces: those geared towards enabling report on an implementation of XPoints in this context (Sec- extensibility (e.g. inheritance and overriding), and those tion IV). Finally, we discuss the advantages and limitations geared towards controlling extensibility, e.g., modifiers that of our approach (Section V) and compare our approach with enable the developer of a class to control what methods can related work (Section VI). be overridden or attributes that can be accessed(c.f. [3]). In addition to these mechanisms, a software provider can II. PROBLEM STATEMENT use advanced means (e.g. design patterns, aspect-oriented In this section, we first introduce an exemplary business programming, plug-in architectures, etc.) to implement the application that we use throughout the paper. Then, we required extension interface for the software system. analyze the limitation of current works with respect to In this paper we argue that the state-of-the-art approaches extensibility and extension interfaces. have several limitations for realizing the extension interfaces Example Business Application. We consider a business of complex multilayered applications. First, the technical application spanning three logical layers: the business pro- realization of the extension interface is coupled with the cess layer, the business object layer, and the UI layer. A busi- functional code of the core software. Second, these con- ness process defines the flow of activities that are required to ventional means for controlling extensibility e.g., via Java achieve a specific business objective such as creating a sales modifiers, are not expressive enough to enable fine-grained order, ordering goods, or hiring a new employee. Business control on what can be extended and how. Third, it is not objects [13] represent entities that are meaningful within a possible to provide different extension interfaces to different specific business process like sales order, invoice, customer, groups of extension developers. Fourth, software applica- and employee. A business object encapsulates attributes, tions are nowadays extremely complex and involve several behaviour, constraints, and relationships to other business architectural layers, demanding extension interfaces that cut objects. UIs provide means to support the end users to across these layers; support for the latter is also lacking. accomplish the different activities within a business process Moreover, most approaches focus on language or layer- via a graphical interface. specific extensibility mechanisms and thus do not support the needs of multilayered applications. Last but not least, to generate an extension interface of a complex software with many extensibility constraints, a developer has to be experienced with advanced development techniques. The need and the challenges related to providing well- defined extension interfaces for object-oriented systems are documented in the literature [4], [5], [6], [7]. As a variation Figure 1. Sales quotation business process on this theme, several proposals for aspect-based extension interfaces have been published recently [8], [9], [10], [11], We introduce a simple sales quotation management mod- [12]. Yet, as we will elaborate in related work, these

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    11 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us