Leveraging Web, client/server and O-O technologies.
Building advanced Web-based enterprise applications: a comprehensive, systematic approach.
Three technologies are converging to dramatically change the nature of application development: client/server, object-orientation, and the Internet. This book is a complete guide to successfully integrating all of these technologies in your new enterprise applications.
Expert consultant and project manager Dr. Amjad Umar shows how to establish data architectures, application architectures, and frameworks that enable successful Web-based software development. He presents a detailed methodology for using middleware to engineer new applications—or reengineer existing ones. He also offers a systematic approach to cope with legacy systems—including legacy data access, data warehousing and application migration/transition strategies.
For each major issue confronting developers, Umar considers the state of today's marketplace, as well as trends that will powerfully impact development projects in the near future. The book contains extensive guidelines, implementation examples and case studies, using a wide range of technologies, including:
The book includes short tutorials on object-oriented concepts, distributed objects, the World Wide Web, and client/server middleware. Each chapter is written as a self-contained tutorial—making the book a valuable resource not only for IT professionals, but also for trainers, teachers, and advanced students.
PART I. GETTING STARTED.1. Application (Re)Engineering--The Big Picture.
Introduction. Concepts and Definitions. General Framework. Application Concepts and Components. A Classification of Applications. Aligning IT with Business Needs. What is Application (Re)Engineering? Responding to Business Needs--Tying BPR to IT. Application Engineering--Building New Applications. Application Reengineering--Dealing with Legacies. Why This Book? State of the Practice: General Observations. State of the Market: General Observations. State of the Art: General Trends. Summary. A Case Study. Problems and Exercises. Additional Information.2. Object-Oriented Client/Server Internet Environments.
Introduction. Client/Server Fundamentals. Definitions. Client/Server--A Special Case of Distributed Computing. Client/Server Architectures. OSF DCE--A Client/Server Environment. Internet and the World Wide Web (WWW). Internet, Intranets, and Extranets. Overview of World Wide Web. A Simple Example. Objects and Distributed Objects. Core Object-Oriented Technologies. Distributed Objects for Enterprisewide Applications. CORBA and ActiveX--Middleware for Distributed Objects. Object-Oriented Client/Server Internet Environments. Client/Server Processes--The Applications. Middleware for OCSI Environments. Network Services. Local Software. State of the Practice: Typical Examples. State of the Market: Commercial Products. State of the Art: Standards and Trends. Summary. Case Study: XYZCorp Review of IT Infrastructure Architecture. Problems and Exercises. APPENDIX 2A: Object-Oriented Concepts. Key Concepts. Object-Based Versus Object-Orientation. Additional Information.3. Methodology Overview: Planning and Modeling.
Introduction. Application (Re)Engineering Methodology. Application Planning--The First Iteration. Overview. Step 1: Identify Business Drivers and Establish High-Level Requirements. Step 2: Investigate Application Architecture Approaches. Step 3: Assess and Plan Infrastructure Architectures. Step 4: Cost/Benefit Analysis. Object Modeling and Prototyping--Second Iteration. Overview. Object-Oriented Analysis--Building the Object Model. Architecture and Prototyping--Applying The Object Model. State of the Practice, Market and Art. Summary. Case Study: XYZCorp Embarks on Application (Re)Engineering. Problems and Exercises. Additional Information.
PART II. APPLICATION ENGINEERING--BUILDING WEB APPLICATIONS.4. Building New (Web-Based) Applications.
Introduction. Modern Web-Based Applications. Static HTML-Based Applications. Server-Side (CGI-Based) Applications. Client-Side (Java-Based) Applications. Object-Oriented Client/Server (OCSI) Applications. Promises and Pitfalls of OCSI Applications. An Approach to Building OCSI Applications. Overview. Analysis. Application Architectures. Implementation. Deployment and Support. Customizing the Methodology. Overview. Building Web-Based Decision Support Systems (DSSs). Building Web-Based Operational Support Applications. Real-Time Application Development. Application Development Environments. State of the Practice: Examples and Case Studies. State of the Market: Products and Standards. State of the Art: Research Notes. Summary. Case Study: XYZCorp Builds New Applications. Problems and Exercises. Additional Information.5. Enterprise Data Architectures.
Introduction. Concepts and Definitions. Enterprise (Corporate) Data. Data Life Cycle. Data Architecture. Step 1: Information Requirement Definitions. Step 2: Data Modeling. Step 3: Logical Database Design. Step 4: Data Partitioning and Clustering. Overview. Data Partitioning (Fragmentation). Clustering. Example of Partitioning (Fragmentation) and Clustering. Step 5: Data Allocation Strategies. Overview. Trade-offs in Data Duplication. Intuitive Data Allocation Analysis. Analytical Data Allocation. Step 6: Database Connectivity and Interoperability. Data Connectivity Strategies. Data Interoperability. State of the Practice: Case Studies and Examples. Short Case Studies (“Snippets”). A Detailed Example. State of the Market: Standards and Products. State of the Art: Research Notes. Summary. Case Study: Data Architecture for XYZCorp. Problems and Exercises. Appendix 5A: Two Analytical Data Allocation Method. Non-Redundant Best Fit Data Allocation Method. The Redundant Data Allocation Method. Additional Information.6. Web-Based Application Software Architectures.
Introduction. Software Architecture Concepts. Definition. A Software Architecture Approach. Organizational Notes. Step 1: Refine/Extend the Object Model. Step 2: Separate Concerns (Layers). Step 3: Decompose Application into Tiers. Single-Tiered Applications Architectures. Two-Tiered Application Architectures. Three-Tiered Application Architectures. Mixed Architectures (Hybrids). Choosing Number of Tiers--The “Tiering Debate”, Step 4: Evaluate/Choose an Infrastructure. General Considerations. Evaluate Middleware for Remote Message Support (RPC, RDA, MOM, COBRA, DCOM). Choose Enterprise Data Management Middleware (TP-Lite or TP-Heavy). Evaluate Internet and Special Application Support. Evaluate Management and Support Services. Analyze Network Support. Understand Operating System Support. Keep Business Reality in Mind. Step 5: Performance and Allocation Analysis. Overview. Client/Server Performance: Issues and Guidelines. Estimating Response Time Performance. Optimal Allocation Algorithms. State of the Practice: Examples and Case Studies. State of the Market: Standards and Products. State of the Art: Research Notes. Summary. Case Study: Application Software Architectures for XYZCorp. Problems and Exercises. Additional Information.7. Implementation Concepts and Examples (Web, CORBA, ActiveX, DCE, Encina, PowerBuilder).
Introduction. Implementation Issues: General Concepts. Overview. Implementation Approach. Step 1: Detailed Design. Step 2: Create Interface Definitions. Step 3: Build Server Programs. Step 4: Build Client Program(s). Step 5: Testing. A Sample Application. Developing Web-Based Applications. Overview. CGI-Based Application. Java-Based Applications. Object-Oriented Client/Server Internet (OCSI) Applications. COBRA for Developing OCSI Applications. Overview. Create COBRA Definitions. Build the Server. Build Client (Dynamic Invocation). Deploy and Run the Application. ActiveX for Developing OCSI Applications. OSF-DCE for Developing OCSI Applications. Overview. Create Interface Definitions. Build a DCE Server. Build a DCE Client. Deploy Application. Encina for Developing OCSI Applications. Overview. Construct a Transaction Model. Create Interface Definitions. Build an Encina Server. Build an Encina Client. Deploy Application. PowerBuilder for Developing OCSI Applications. Overview. Create an Application Object. Prepare the Server for Use. Build Client Application. Deploy the Application. State of the Practice: Case Studies. State of the Market: Standards and Products. State of the Art: Research Notes. Summary. Case Study: XYZCorp Implements Web-based Systems. Problems and Exercises. Additional Information.
PART III. APPLICATION REENGINEERING: DEALING WITH LEGACIES.8. Dealing With Legacy Systems: An Overview.
Introduction. Legacy Application Concepts. What Is a Legacy Application? Legacy Application Reengineering Dilemma. Categories of Legacy Applications. Legacy Application Reengineering Strategies. Overview. Strategy 1: Ignore the Legacy Applications. Strategy 2: Rewrite from Scratch (Cold Turkey). Strategy 3: Provide Access in Place (Access/Integration). Strategy 4: Data Warehousing. Strategy 5: Gradual Migration. Planning for Legacy Application Reengineering. Overview. Opportunity Analysis. Choose a Solution Architecture. Implementation Considerations. Cost/Benefit Analysis. Justification and Scheduling. State of the Practice: Case Studies. Off-Shore Reengineering. University of Florida Reengineers via the World Wide Web. Hewlett-Packard's Migration to Client/Server Architecture. United Nations' Personnel Information Systems. Burlington Coat Factory Information System Reengineering. Short Case Studies (“Snippets”). State of the Market: Reengineering Tools. State of the Art: Research Notes. Summary. Case Study: XYZCorp Embarks on Application Reengineering. Problems and Exercises. Additional Information.9. Access and Integration of Legacy Applications through the Web.
Introduction. Access and Integration Framework. The Basic Framework. Web Factor--Access/Integration through the Web. Legacy Information (Data) Access. Overview. Remote Data Access (RDA) Paradigm. Remote Function Access (RFA) Paradigm. Remote Presentation Access (RPA) Paradigm. Analysis of Paradigms for Legacy Information Access. Integration of Legacy Applications. What is Legacy Application Integration? Access versus Integration Trade-Off--An Example. Approaches to Integrate Legacy Application. Integration Technologies: Object Wrappers & Integration Gateways. Web Gateways--Enabling Access and Integration through the Web. Common Gateway Interface (CGI). Java-Based Gateways. Using Web Gateways. A Procedure for Legacy Application Integration. Step 1: Requirement Definition and Analysis. Step 2: Solution Architectures. Step 3: Implement and Test. Step 4: Deploy and Support. State of the Practice: Case Studies and Examples. Short Case Studies (“Snippets”). Example 1: Access/Integration of DB2 Applications. Example 2: Integration of an IMS Application. State of the Market: Products and Standards. State of the Art: Research Notes. Summary. Case Study: Access/Integration for XYZ Corp. Problems and Exercises. Additional Information.10: Data Warehouses.
Introduction. What is a Data Warehouse?. Overview. Definitions. Examples. Who Uses the Data Warehouse? Why Data Warehouses? Key Characteristics of a Data Warehouse. Data Characteristics. Tool Characteristics. Data Warehouse Architectures. Localized Functional Warehouses (“The Data Marts”). Centralized Data Warehouse. Distributed Data Warehouses (“The Virtual Warehouse”). Data Warehouse Design Issues. Granularity. Partitioning (Fragmentation). Data Structures. Technologies for Data Warehousing. Data Extraction and Loading Software. Database Engine. Metadata Software. Tools for Data Warehouse Access and Manipulation. Middleware to Access the Data Warehouse. A Procedure for Data Warehouse Planning and Development. Overview. Step 1: Management Planning. Step 2: Requirements Gathering. Step 3: Data Modeling. Step 4: Design and Implementation. Step 5: Deployment and Administration. State of the Practice - Case Studies and Examples. IBM Shifts to Data Marts. ReliaStar Financial Data Warehouse for Competitive Advantage. 3Com's Data Warehouse. British Telecom's Data Warehouse. Banc One's Transition to Data Warehousing. Short Case Studies (“Snippets”). State of the Market. State of the Art: Research Areas. Summary. Case Study: Data Warehouse for XYZCorp. Problems and Exercises. Additional Information.11. Migration Strategies.
Introduction. Migration Concepts and Strategies. User Interface Migration to Web. Data Migration. Overview. A Framework for Categorizing Data Migration. Data Migration Technologies. Complete Application Migration. Overview. Highly Structured (Decomposable) Application Migration. Semidecomposable (Program Decomposable) Applications. Unstructured (Monolithic) Applications. Migration Gateways--Technologies for Migration. System Migration - Mainframe Unplugs. System Migration Concepts. A Procedure for Migration. Step 1: Business Analysis and Migration Planning. Step 2: Develop and Justify a Migration Architecture. Step 3: Implementation. Step 4: Deployment and Support Considerations. State of the Practice: Examples and Case Studies. Short Case Studies (“Snippets”). A Detailed Example: Migration of a Project Management System. State of the Market: Products. State of the Art: Research Notes. Summary. Case Study: Migration for XYZCorp. Problems and Exercises. Additional Information.
This book explores the issues in building the new breed of Web-based applications that exploits object technologies, and deals with the large embedded base of legacy applications. The book is intended as a guide and a tutorial for the IT managers and practitioners who are involved in engineering of new applications and reengineering of existing (mostly legacy) applications.
The first part of the book reviews application (re)engineering issues, scans the IT infrastructure, and develops a general methodology for application (re)engineering. The second part concentrates on building Web-based object-oriented applications and explores enterprise- critical areas such as data architectures, application software architectures, and implementation issues (e.g., Web-Java, CORBA, ActiveX, OSF DCE). The third part presents critical examination of approaches to deal with legacy applications such as access/integration of legacy applications through the Web, data warehouses, and rearchitecture/migration strategies.
Several examples are presented and a single case study is developed throughout the book to illustrate the key points. Extensive references for additional information are provided.
Key Features of the Book
Focus on Applications. While many books are being written on the infrastructure (e.g., net- works, World Wide Web, Groupware, CORBA, etc.), this book concentrates on using the infrastructure to build applications for modern enterprises. In particular, application engineering as well as reengineering issues are discussed.
Web-Based Object-Oriented Applications View. We are interested in the class of enterprisewide applications that leverage powerful technologies such as the Web (e.g., Java, CGI), distributed objects (CORBA, ActiveX), and data access middleware (e.g., SQL gate- ways) to provide business value. These applications, termed object-oriented, client/server, Internet-based (OCSI) applications, are a special class of distributed applications for the enterprises of the 1990s and beyond. These three technologies are viewed as complementing each other to provide business value and not as replacements for each other.
Strategies to Deal with Legacy Applications. New applications must coexist with the large embedded base of existing (mostly legacy) applications. A systematic approach is suggested for dealing with legacy systems with discussion and analysis of legacy data access, data warehousing, and application migration/transition strategies.
Merging of Case Studies, Industrial Products, and Research Efforts. Each chapter is written as a self-contained tutorial with several case studies and examples to illustrate the key points throughout. State-of-the-market and state-of-the-art trends are noted in each chapter with numerous references for additional studies.
Integration with Infrastructure, in Particular Middleware, Issues. This book builds upon and uses the infrastructure and middleware discussed in the companion book ( “Object- Oriented Client/Server Internet Environments, ” A. Umar, Prentice Hall, 1997). Together, these two books form an invaluable source of information for modern enterprises.
Practical Hints, Guidelines, Checklists. Numerous practical hints, guidelines, and check- lists are highlighted throughout the book as sidebars for quick reference.
A Systematic Framework for Study. A framework for discussion and a general methodology is introduced early in the book to serve as a roadmap for study. The framework provides a basis for analysis and synthesis of the wide range of issues such as data architectures and application architectures.
In short, the reader of this book should develop a thorough understanding of how to engineer new applications and databases, and how to reengineer the existing terminal-host systems in an object-oriented client/server Internet world.
PART I: GETTING STARTED.
1: Application (Re)Engineering —The Big Picture.
2: Object-Oriented Client/Server Internet Environments.
3: Methodology Overview: Planning and Modeling.
PART II: APPLICATION ENGINEERING: BUILDING WEB APPLICATIONS.
4: Building New (Web-Based) Applications.
5: Enterprise Data Architectures.
6: Web-Based Application Software Architectures.
7: Implementation Concepts and Examples (Web, CORBA, ActiveX, DCE, Encina, PowerBuilder).
PART III: APPLICATION REENGINEERING: DEALING WITH LEGACIES.
8: Dealing with Legacy Applications: An Overview.
9: Access and Integration of Legacy Applications through the Web.
10: Data Warehouses.
11: Migration Strategies.
Intended Audience and Recommended Usage
This book is based on a synthesis of experience gained from three different sources. First, extensive project management, consulting, and system integration assignments in recent years in client/server systems, object-oriented technologies, Web-based applications, middleware evaluation, legacy data access, data warehousing, and data migration. Second, development and teaching of industrial training courses on client/server technologies and distributed systems that have been taught several times in the telecommunications industry and general IT community. Finally, teaching of graduate-level special topics courses in distributed systems for IT majors and computer-science students. This experience has indicated that this book should be useful as a reference for almost all IT managers and practitioners and also as a textbook for university courses and industrial training seminars. Specifically, this book should be of value to: