Enterprise Frameworks: Guidelines for Selection



Similar documents
Component Based Development in Software Engineering

Component Based Software Engineering: A Broad Based Model is Needed

ISSUES OF STRUCTURED VS. OBJECT-ORIENTED METHODOLOGY OF SYSTEMS ANALYSIS AND DESIGN

Application. Frameworks. Object-Oriented. Mohamed E. Fayad and Douglas C. Schmidt, Guest Editors

Elite: A New Component-Based Software Development Model

Three simple steps to effective service catalog and request management

Run-time Variability Issues in Software Product Lines

Adopting Service Oriented Architecture increases the flexibility of your enterprise

Portable Cloud Services Using TOSCA

Experience Business Success Invest in Microsoft CRM Today

Java Project Management: Agenda

From Business World to Software World: Deriving Class Diagrams from Business Process Models

A Study on Analysis and Implementation of a Cloud Computing Framework for Multimedia Convergence Services

A Management Tool for Component-Based Real-Time Supervision and Control Systems

Java Project Management. Java Project Management: Agenda. Extreme Java G

MIDDLEWARE 1. Figure 1: Middleware Layer in Context

IMPLEMENTATION OF SERVICE ORIENTED ARCHITECTURE USING ITIL BEST PRACTICES

Essential Ingredients for Optimizing End User Experience Monitoring

What Is the Java TM 2 Platform, Enterprise Edition?

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

Web Based e-commerce Shopping System Problem Statement

SharePoint Integration

Accelerating Time to Market:

EMC PERSPECTIVE. The Private Cloud for Healthcare Enables Coordinated Patient Care

A Guide to Web Content Management System Evaluation

An Object-Oriented Analysis Method for Customer Relationship Management Information Systems. Abstract

Technology. Accenture Data Center Services

Three simple steps to effective service catalog and request management

Chartis RiskTech Quadrant for Model Risk Management Systems 2014

Software Quality and Assurance in Waterfall model and XP - A Comparative Study

Structuring Product-lines: A Layered Architectural Style

Fundamentals of Web Programming a

GenericServ, a Generic Server for Web Application Development

A COMPONENT-BASED APPROACH TO ERP DESIGN IN A DISTRIBUTED OBJECT ENVIRONMENT

Distributed Objects and Components

IAAS CLOUD EXCHANGE WHITEPAPER

International Journal of Management (IJM), ISSN (Print), ISSN (Online), Volume 3, Issue 1, January- April (2012)

Insurance Company Improves Time-to- Market with Enhanced Rating Engine

EMA Service Catalog Assessment Service

Cross-Domain Service Management vs. Traditional IT Service Management for Service Providers

SOA for Healthcare: Promises and Pitfalls

MKS Integrity & CMMI. July, 2007

SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) SERVICE-ORIENTED SOFTWARE ARCHITECTURE MODEL LANGUAGE SPECIFICATIONS

How much do you pay for your PKI solution?

Introduction to Service Oriented Architectures (SOA)

How mobility improves the insurance sales process

Module 17. Client-Server Software Development. Version 2 CSE IIT, Kharagpur

Guiding SOA Evolution through Governance From SOA 101 to Virtualization to Cloud Computing

Agile Unified Process

Increasing Development Knowledge with EPFC

Service Oriented Manufacturing Ideation Session

Spreadsheet Programming:

Service Oriented Architecture (SOA) An Introduction

Ensim VoIP White Paper

Research on the Model of Enterprise Application Integration with Web Services

SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) SERVICE-ORIENTED BUSINESS INTEGRATION MODEL LANGUAGE SPECIFICATIONS

Service Management and Operations: A Data Center Perspective

GETTING THE MOST FROM THE CLOUD. A White Paper presented by

Data Sheets RMS infinity

The Recipe for Sarbanes-Oxley Compliance using Microsoft s SharePoint 2010 platform

A Comparison of SOA Methodologies Analysis & Design Phases

A Case Study in Test Management

How To Use Open Source Software For Library Work

What s New. Archive Attender 4 For Microsoft Exchange

Service Oriented Architecture (SOA) Architecture, Governance, Standards and Technologies

Cloud Computing Paradigm

E-Commerce: From Converging 'B2B versus B2C' Segments to Solutions for Different Product Groups

Taming the Data Center

Enterprise Application Designs In Relation to ERP and SOA

HP Service Manager software

Agile Software Development Methodologies and Its Quality Assurance

CHAPTER 7 Software Configuration Management

Evaluating SaaS vs. on premise for ERP systems

White paper Reaping Business Value from a Hybrid Cloud Strategy

Evaluating Software Alternatives. Chapter 4 Methods of Software Acquisition. Advantages of Custom Developed Software. Custom Developed Software

How To Develop A Web Development Software For A Business

A Study on Service Oriented Network Virtualization convergence of Cloud Computing

Transcription:

Enterprise Frameworks: Guidelines for Selection Mohamed E. Fayad, University of Nebraska, Lincoln David S. Hamu, TRW fayad@cse.unl.edu, dhamu@acm.org An Enterprise Framework (EF) is a software architecture. Such frameworks expose a rich set of semantics and modeling paradigms for developing and extending enterprise applications. EFs are, by design, the cornerstone of an organization s systems development activities. EFs offer a streamlined and flexible alternative to traditional tools and applications which feature numerous point solutions integrated into complex and often inflexible environments. Enterprise Frameworks play an important role since they allow reuse of design knowledge and offer techniques for creating reference models and scalable architectures for enterprise integration. These models and architectures are sufficiently flexible and powerful to be used at multiple levels, e.g. from the integration of the planning systems of geographically distributed factories, to generate a global virtual factory, down to the monitoring and control system for a single production cell. These frameworks implement or enforce well-documented standards for component integration and collaboration. The architecture of an Enterprise framework provides for ready integration with new or existing components. It defines how these components must interact with the framework and how objects will collaborate. In addition, it defines how developers' work together to develop and extend enterprise applications based on the framework. Therefore, the goal of an Enterprise framework is to reduce complexity and lifecycle costs of enterprise systems, while ensuring flexibility. Key Words and Phrases: Enterprise Frameworks, Software Architecture, Distributed Computing, Object-Orientation, Aspect-Oriented Frameworks, Software Stability, Extensibility, Customization, and framework economics. --------------- Author s address: Computer Science and Engineering, University of Nebraska, 108 Ferguson Hall, Lincoln, NE 68588-0115; e-mail: fayad@cse.unl.edu. Permission to make digital/hard copy of part or all of this work for personal or classroom use is granted without fee provided that the copies are not made or distributed for profit or commercial advantage, the copyright notice, the title of the publication, and its date appear, and notice is given that copying is by permission of the ACM, Inc. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or a fee. 2000 ACM 00360-0300/00/0300es

1 M.E. Fayad, D.S. Hamu A TYPICAL FRAMEWORK Figure 1 depicts a portion of a framework from a sales order processing perspective. Functionally identical to the OMA Reference Model [Ben-Natan 1995], clients (or application objects) are developed to solve domain-specific Sales Processing Client Distributed Object Transport / Object Request Broker Sales Order Services Marketing Services Workflow Services problems. These objects make use of the Distributed Objects Transport and Object Services. In the example, a sales agent, while processing orders interacts with the framework through the sales processing client. The client retrieves workflow instructions via the Workflow Services, which triggers any data collection screens and provides relevant product availability and pricing lookups. Sales Order Objects Marketing Objects Workflow Objects Figure 1 Sales Order Processing View of Framework While sequencing through the workflow, the Sales Processing Client may also be prompted with information about special sales promotions retrieved via the Marketing Services. ENTERPRISE FRAMEWORK CHARACTERISTICS, CHALLENGES, AND CRITERIA Framework requirements are generally defined by an independent standards body (e.g., CORBA), a Software Vendor (e.g. Microsoft s MFC, COM and DCOM, FASTech s FACTORYworks, Taligent s CommonPoint) or a Systems Engineering Group (e.g., Motorola s CIM Baseline.) Frameworks combine the best features of state-of-the-art programming languages, development environments, and tools. In addition, frameworks provide an extensive library of business objects supporting the intended application domain [Fayad et al. 2000, Hamu- Fayad 1998]. Our studies of enterprise frameworks suggests the following characteristics, challenges, and criteria are commonly exposed in an Object-Oriented Enterprise Framework: 1. Mature run-time functionality 2. Support for extensibility, tailorability, and customizability 3. A catalog of business objects and enduring business themes (EBTs) 4. A workflow management metaphor and enduring business processes (EBPs) 5. Accomplishing software stability

2 M.E. Fayad, D.S. Hamu 6. A model for distributed objects 7. Support integration of multiple application frameworks and legacy components 8. Platform independence or portability 9. Mature framework documentation 10. Support for role object pattern and ease of use 11. Web- and E-business-ready 12. Support for separation of concerns 13. Sound investment framework economics 14. Framework adequacies Each of these characteristics, challenges and criteria is described in detail in [Fayad et al. 2000, Hamu 1999] THE MAKE VS. BUY DECISION Although some very successful enterprise frameworks may lack any number of the characteristics described above, a good framework will generally incorporate most if not all of these characteristics. In fact, we recommend evaluating frameworks against each of these characteristics during the selection process. Many organizations undertake the costs of developing application frameworks without first analyzing their need for acquiring a framework, without documenting the functional requirements of the framework, and without evaluating commercially available products. Still other organizations may select and purchase a commercially available framework without a thorough analysis. Deciding whether to make or buy a framework is a fundamental question for an organization. Unlike other software selection decisions, the selection of a framework is a decision that an organization must live with for 10 to 15 years, perhaps longer. The long life-span of frameworks relative to than that of legacy applications or traditional development tools is due to the fact that frameworks are more flexible and adaptable to changing needs. Therefore, frameworks are less susceptible to obsolescence than legacy products. However, the long life-span and rich functionality of frameworks does not come without costs, namely: Application frameworks require a considerable up-front cost vs. traditional applications or application development tools. This is due to the comprehensive development environment and the extensive set of domain-specific objects which are delivered with the framework. The investment in framework training and staff development is significantly higher and more specialized than traditional application development platforms. Therefore, this decision should not be made without first completing a thorough analysis of the business reasons for acquiring a framework. Moreover, it is essential that the selection process be applied to both make and buy options. Even when you are inclined to build a framework, other frameworks should be researched. In short, failing to plan is planning to fail. A rigorous systems engineering approach must be applied to framework projects as with any software project. Sound system analysis encompasses the following activities [Pressman 1987]:

3 M.E. Fayad, D.S. Hamu Statement of Need Feasibility Study Economic Analysis Technical Analysis Evaluation of Alternatives (Selection) With frameworks, it is recommended that a framework team be formed to conduct the analysis. Suggested by Goldberg and Rubin [Goldberg-Rubin 1995], a framework team is similar to the Joint Application Design (JAD) Team described by Martin [Martin 1991], and consists of the following resources: Executive Owner / Business Area Expert Project Manager / Systems Analyst Framework Designer/Evaluator Component Evaluators Object Expert/Coach. The first four analysis activities are generally completed by the project manager or systems analyst with input from the other members of the framework team. The evaluation of alternatives (also called the selection process) is performed jointly by all members of the framework team. In the case of frameworks for business applications, this team must include at least one representative of the end-user community; namely, the Business Area Expert. A clear understanding of the need for the framework is the first step in the analysis. High level functional requirements are then defined in during the feasibility study. These requirements along with the Economic Analysis and Evaluation of Alternatives provide the necessary inputs for the Make vs. Buy decision. DECISION FACTORS Other selection criteria which should be considered include supplier stability and support or service offerings. The latter are important, because when you buy a framework, you have effectively outsourced a portion of your software development. The framework team will not be responsible for support and maintenance except to the extent that they are developing extensions or plug-in components for the framework. ADVANTAGES AND DISADVANTAGES OF PURCHASING A FRAMEWORK Frequently the final selection comes down to a make vs. buy decision. Therefore, it is important to understand the relative advantages and disadvantages of these options. The primary advantage of purchasing a framework is that the development of commercial products or inhouse applications can begin almost immediately. This is particularly true when time-to-market and strategic advantage are key concerns. Framework vendors are generally be concerned about providing wide domain coverage and flexible modeling tools within the scope of their framework. These feature must be significantly broad to attract a majority of the potential customers in the target marketplace otherwise the product will be difficult to sell. Therefore, a purchased framework is likely to be sufficiently flexible for most customers in the target market and is likely to provide wide coverage of the characteristics of frameworks described above.

4 M.E. Fayad, D.S. Hamu In addition, purchased frameworks promise higher quality because of the demands of a wide customer base and the fact that commercial frameworks will have successfully completed a lengthy beta software program. Maintenance is easier for a purchased framework, since the vendor will generally provide a technical support desk to field maintenance requests and trouble reports. Lifecycle costs are reduced as a result of the wide domain coverage and flexibility of the framework [FASTech 1995]. Scalability and adaptability are increased because you can add new objects to the system without modifying existing objects [Fayad et al. 1999a, 1999b, 1999c]. When building a framework, the process of designing and developing the framework may require a team of developers working from one to three years depending on the features supported by the framework. Additional time will be invested trouble-shooting the framework. Whereas, a framework vendor has already completed development of a commercial product and development and even trouble-shooting costs are distributed across the vendor s entire customer base. However, purchasing a framework is not always appropriate. Immature frameworks may not provide adequate coverage of the decision factors described above. This is particularly true in very specialized domains where the market potential for frameworks is limited. In such domains, it is generally advisable to build a framework. In fact, if the framework development effort is successful, an opportunity for commercialization of the newly built framework may present itself (although this prospect should not be factored into the make vs. buy decision, because it is a high-risk assumption.) The lack of fully adopted standards for frameworks also contributes to increased risk for developing a framework in house. Speed of execution can be an issue. Since object services may be very complex, there is often a risk of performance bottlenecks. Availability of qualified developers is also an important consideration and it is essential to obtain and evaluate the list of available consultants or partners working with the vendor company who have experience in development and deployment with the vendor s framework. Due to these considerations, it is difficult to estimate the cost of building an enterprise framework. Therefore, all other things being equal, in a domain with strong market opportunities and strong offerings from framework vendors, it is better to purchase a framework than to build. CONCLUSIONS This paper has presented detailed guidelines for selection of Object-Oriented Enterprise Frameworks. We have offered our recommendations for the make vs. buy decision as it applies to frameworks. We have shown that good Object-Oriented Enterprise Frameworks are characterized by support for the essential tools used in systems analysis, modeling, design, development, testing, maintenance, and administration. Therefore, although this is an emerging area in software engineering, it reflects the natural evolution in the development of software engineering tools and practice. Although we recommend purchasing vs. building these frameworks, it is also understood that this decision needs to be made in context and with the application of a formal systems analysis. While commercial software vendors have made fantastic strides in reflecting cutting edge research in products delivered to market, software engineers need to evaluate risk when selecting frameworks.

5 M.E. Fayad, D.S. Hamu Project managers will find very reliable and mature product offerings which are not truly object-oriented, because they are built on relational rather than object databases and use nonobject-based distribution mechanisms. This highlights that there is not yet widespread adoption of CORBA, DSOM or DCOM, and the fact that Relational Database Management Systems still dominate the commercial market for software products and tools. Nevertheless, it is likely to be cost effective to select a mature framework provider with an object-oriented strategy and roadmap even if the product is not fully object-oriented today. While the notion is in it s infancy today, it is our belief that Object-Oriented Enterprise Frameworks will be at the core of software engineering technology in the twenty-first century. REFERENCES Ben-Natan, Ron, CORBA: A Guide to the Common Object Request Broker Architecture, McGraw Hill 1995 FASTech Integration, Inc., Migrating to the Next Generation of Shop Floor Control Systems, FASTech Integration, Inc., 1995, http://www.fastech.com/ Fayad, M.E., Schmidt, D., and Johnson, R. Building Application Frameworks: Object-Oriented Foundations of Framework Design, John Wiley & Sons, New York, September 1999. Fayad, M.E., Schmidt, D., and Johnson, R. Implementing Application Frameworks: Object- Oriented Frameworks at Work, John Wiley & Sons, New York, Sept. 1999. Fayad, M.E. and Johnson, R. Domain-Specific Application Frameworks: Experience by Industry, John Wiley & Sons, New York, October 1999. Fayad, M.E., Hamu, D.S., & Brugali, D. The Three C s of Enterprise Frameworks: Characteristics, Challenges, Criteria, Communications of the ACM, Oct. 2000. Goldberg, Adele and Rubin, Kenneth S., Succeeding with Objects: Decision Frameworks for Project Management, Addison Wesley, 1995 Hamu, D.S., Fayad, ME. Achieving Bottom-Line Improvements with Enterprise Frameworks, CACM, Vol. 41, No. 8, August 1998, pp. 110-113 Hamu, D.S. Enterprise Frameworks, a sidebar in Building Application Frameworks: Object- Oriented Foundations of Framework Design, M.E. Fayad, D.C. Schmidt, and R.E. Johnson (Editors), John Wiley & Sons, September 1999. Martin, James, Rapid Application Development, McMillan Publishing Company 1991 Pressman, Roger S., Software Engineering: A Practitioner s Approach, Second Ed., McGraw Hill, 1987