Home > Store

Large-Scale Component-Based Development

Register your product to gain access to bonus material or receive a coupon.

Large-Scale Component-Based Development

  • By
  • Published May 30, 2000 by Pearson.

Book

  • Sorry, this book is no longer in print.
Not for Sale

Description

  • Copyright 2000
  • Edition: 1st
  • Book
  • ISBN-10: 0-13-088720-X
  • ISBN-13: 978-0-13-088720-7

"This book is very well written. I have never seen a book on the market that discusses these concepts as well as this book. Anyone involved with Information Technology should be familiar with this material. If not, they need to get this book ASAP and read it cover to cover."
—William H. Murray, author of many best-selling programming titles

The strategic guide to enterprise-class component and Web development

In this definitive book, the R&D leader at one of the world's top software companies presents a complete conceptual framework for Internet-centered, component-based development.

Alan W. Brown introduces "best practices" enterprise development techniques that deliver reduced cycle times, improved quality, and greater reuse. He offers holistic insights into leveraging technologies such as Enterprise JavaBeans, COM+, and CORBA/IIOP to enable distributed access at lower cost, with greater flexibility, responsiveness, and user-friendliness than ever before. Coverage includes:

  • Developing for the e-business revolution: business drivers and technological enablers
  • The role of middleware, application servers, and enterprise application integration
  • Selecting technologies, defining architectures, modeling applications, and managing component-based projects
  • New directions in component development: transforming advanced R&D into real-world enterprise solutions

Large-Scale, Component-Based Development offers a start-to-finish blueprint for managing the Web and component technologies that enable e-business. For every decision-maker involved with Internet-focused, multi-tiered enterprise systems, this is an invaluable resource.

Sample Content

Downloadable Sample Chapter

Click here for a sample chapter for this book: 013088720X.pdf

Table of Contents

I. E-BUSINESS AND THE CHANGING ROLE OF APPLICATION DEVELOPMENT.

1. Introduction.

Motivation. Software Development Challenges. The Key to the Future: Managing Complexity and Rapidly Adapting to Change. Managing Complexity. Adapting to Change. Business Drivers and IT Strategy. Summary.

2. The Evolution of Application Development.

Introduction. Evolution of Application Development Support. Past—Client/Server Applications. Present—N-Tier Distributed Systems. Future—Nomadic, Service-Oriented Solutions. Key Issues for Future Application Development. Representing Large-Scale Distributed Software Architectures. Modeling Reusable Pieces of a System. Improved Method Support for New Kinds of Applications. Pragmatic Concerns for Established Application Development Tool Vendors. Summary.

3. Enterprise-Scale Solutions in the Internet Age.

Introduction. The e-Business Revolution. Today's Critical IT Issues. The Importance of the Middle Tiers. From Client-Server to N-Tier Architectures. The Role of the Middle Tiers in Web-Based Systems. The Application Server. Enterprise Application Integration. Application Integration … the New View of Development. EAI Through Connectors. A Broader View of EAI. Components and Component Models. Designing with Components. Implementing for Components. Summary.

II. COMPONENTS AND COMPONENT-BASED APPROACHES.

4. Component-Based Development Fundamentals.

Introduction. The Goals of Component Approaches. Why Component-Based Development? What Is a Component? Components and Objects. Components and Distributed Systems. Elements of a Component. How are Applications Assembled Using CBD? Sources of Components. Interface-Focused Design. Applications and Component Architecture. What Is the Current Practice in CBD? Special Interest Groups. Vendor-Led User Groups. Specialist Component Service Providers. Experience Reports and Advice. Summary.

5. Component-Based Development Insights.

Introduction. Provision of Reusable Services. Independent Delivery of Services. A Deeper Understanding of Components. Packaging Perspective. Service Perspective. Integrity Perspective. An Illustrative Example: Microsoft Excel. The Importance of Component Specification. The Role of Interfaces. The Importance of Models. Collaborations and Roles. The Elements of a Component-Based Approach. Application Assembly from Components. Provision of Independent Services. A Common Component Infrastructure. Use of Common Services. Summary.

III. APPLYING COMPONENT TECHNIQUES.

6. CBD Technology and Standards.

Introduction. The Unified Modeling Language (UML). What Is the UML? Background to the UML. What Is Defined by UML? Supporting Component Modeling with UML. Advanced UML Concepts. The Microsoft Repository. Background. The Conceptual Design of the Repository. Information Models for CBD. Component Infrastructure Technology. Component Infrastructure Services. Component Infrastructure Implementations. Summary.

7. Approaches to Component-Oriented Modeling.

Introduction. The CBD Life Cycle. The Rational Unified Process. Sterling Software's Enterprise-CBD Approach. Interface-Focused Design Approaches. A UML-Inspired Component Modeling Approach. A Catalysis-Inspired Component Modeling Approach. Summary.

8. An Illustration of a Component-Based Method.

Introduction. Understand the Context. Requirements Definition. Use Case Modeling. Business Type Modeling. Define the Architecture. Component Architecture Modeling. Context Modeling. Interface Modeling. Interface Definition. Provision the Solution. Component Implementation. Component Wrapping. Component Assembly. System Deployment. Summary.

IV. A LOOK TO THE FUTURE.

9. The Business Imperative: Moving Quickly into the Digital Age.

Introduction. e-Anything and e-Everything. The End of Software Development? Summary.

10. The Technology Response: Flexible Services and Solutions.

Introduction. Infrastructure and Platform Technologies. Standards Activities. XML. EJB and the CORBA Component Model. Tool Directions. Enhanced Product Integration in Support of CBD. A New Generation of Component Design and Implementation Tools. Research Directions. Use of Patterns and Frameworks. More Rigorous Approaches to Component Specification. Enhanced Modeling for Software Architectures. Summary.

Appendix A: Useful Resources on Enterprise-Scale Application Development.

e-Business and e-Business Strategy. Components and Component-Based Approaches. Enterprise Application Integration. Distributed Systems Architectures. Technologies for Enterprise-Scale Solutions. Industry and Product Directions.

Appendix B: A Detailed CBD Modeling Example.

Introduction. Enterprise Component Architecture Design. Application Development. Requirements. Project Architecture. Specification. Implementation. Component Provisioning. Requirements. Project Architecture. Specification. Implementation.

Appendix C: References.
Index.

Preface

Preface

Software engineering is entering a new era. The Internet and its associated technologies are changing the way customers, suppliers, and companies interact to conduct business, communicate, and collaborate. The result is the creation of huge opportunities to expand existing businesses, the delivery of greater variety and depth of information in a timely manner to those who need it wherever they need it, and the rise of completely new forms of commerce unthinkable without the business and technology advances fostered by the onset of the Internet age. As succinctly stated by the U.S. Commerce Secretary William Daley:

"Technology is reshaping this economy and transforming businesses and consumers. This is more than e-commerce, or e-mail, or e-trades, or e-files. It's about the 'e' in economic opportunity."

This impact has been confirmed in a recent study conducted by the Economist Intelligence Unit (EIU) of Booz-Allen & Hamilton. They surveyed the opinions of more than 500 senior executives with respect to how the Internet is changing their corporate strategy. The results showed that more than 90 percent believed that the Internet will transform or have a major impact on their corporate strategy within the next three years. Furthermore, many of these executives recognized the need to restructure their businesses to take advantage of fundamental changes in their business environment.

However, with these changes come a number of threats. Many organizations are intimidated by the new technologies, unsure of how to take advantage of them, and wondering how these technologies will align with existing investments in skills and infrastructures. What they require is a conceptual framework for understanding software solutions in the Internet age, coupled with a realistic view of the technologies that will drive this revolution.

Components and Component-Based Development (CBD) are the approaches that satisfy these needs. More and more we see organizations turning to components as a way to encapsulate existing functionality, acquire third-party solutions, and build new services to support emerging business processes. The latest technologies for distributed systems support and encourage a component view of application integration and deployment. Furthermore, component-based development provides a design paradigm well suited to today's eclectic Internet-centric software solutions. This book examines components and component-based development, and their role in provisioning enterprise-scale solutions for the Internet age.

The Origins and Role of Component-Based Development

At its root, component-based development (CBD) is application development primarily carried out by composing previously developed software. Many people in the software industry are beginning to see CBD as an exciting new approach to application development which offers the promise of reducing cycle time for software development, and improving the quality of delivered applications.

Interest in reuse of previously developed components is nothing new. Ever since software was developed there have been efforts to reduce the amount of work involved in creating new software, ranging from small-scale efforts such as macro languages to large-scale efforts such as process asset libraries. While each of these efforts has had some impact on the reuse of software, none of them has had the overall impact expected or required.

Recently, however, a number of important advances in computer-based technologies have taken place. These have made the software industry rethink how software is developed, and offer new opportunities with respect to computer-based support for reuse of software artifacts. The impact of these advances is directly affecting everyone in the software industry. Three of these advances are of particular note.

First, the rapid evolution of hardware technologies has continued for more than a decade. The result has been a continuing improvement in the price/performance ratio of computer technologies. Organizations have much more computing power today than only a few years ago, embodied in a large number of desktop computers distributed throughout all levels of the organization.

Second, distributed access to remote information is now less expensive to develop, less cumbersome to maintain, and more user-friendly and responsive. This is a consequence of a number of advances in distributed infrastructure technologies supporting client/server architectures, high throughput networks, and distributed data management. Many distributed infrastructure technologies are now commonplace, supporting a collection of underlying protocols and standards that includes transmission control protocol/Internet protocol (TCP/IP), remote procedure call (RPC), hypertext transmission protocol (HTTP), the Common Object Request Broker Architecture (CORBA), and the Internet inter-ORB protocol (IIOP).

Third, unbounded excitement in the World Wide Web, Internet, and intranet technologies has changed the way people think about information access and availability. This has led to many new tools, processes, techniques, and technologies to support this new way of thinking and working. What an end user expects from an application is quite different now than it was only a few years ago.

Building on these advances, a new approach to solution provisioning, called component-based development (CBD), is being promoted. In its purest form, CBD takes advantage of these advances to provide an infrastructure for future applications that increases the ease with which separately developed software artifacts can be connected. As a result, it provides greater opportunity for integrating available software artifacts within your own organization or anywhere in the world, and uses available computing power to implement intelligent assistance to reduce the burden of evaluating, converting, and integrating software artifacts acquired from many sources.

All aspects of software design, implementation, deployment, and evolution are affected when a CBD approach is followed. As a result, a software project can be transformed from a development-intensive grind of code writing and bug fixing, to a more controlled assembly process in which new code development is minimized and system upgrade becomes the task of replacement of well-bounded functional units of the system. This is the goal of a variety of approaches and technologies gaining a great deal of attention in the software industry, which is now being referred to collectively under the banner of Enterprise Application Integration (EAI).

The needs and the rewards of taking a component-based approach are compelling. However, as with any new software approach, there is currently a significant gap between the aspirations of CBD visionaries, and the tools, processes, and techniques that support their vision. CBD has many hurdles to overcome to be considered a well-tried, repeatable process for developing large-scale, robust solutions for every application domain.

The most pressing needs facing software practitioners at present is to understand the business drivers encouraging the move toward CBD, to obtain a grounding in the underlying technologies from which it is built, and to gain the insight needed to understand how and when to apply CBD technologies within their particular context. These are the needs addressed by this book.

Scope of this Book

This book provides the context necessary to understand CBD and to apply it successfully to enterprise-scale solutions. CBD is a new approach to software development that will significantly affect software development practices over the coming years. As a result, the goals of this book are threefold:

  • It provides an introduction to the fundamental technologies of CBD. There are a number of different technologies that contribute to this approach. Each of these is examined in terms of how that technology has come to be, its major strengths and weaknesses, and the directions in which it is likely to evolve.
  • Rather than simply enumerate individual technology advances, this book provides a holistic view of how each technology contributes to the larger goal of CBD. Readers can then put each technology advance into the context required for a more complete understanding of its relevance and impact.
  • While the academic background of these technologies is discussed, the book is predominantly practical in nature. Wherever possible, the technologies are discussed with respect to their impact on current and future software engineering practices as experienced by a wide range of practicing software engineers.

Having read this book, readers will understand the key technology advances in software engineering as they affect CBD, and therefore be in a better position to take advantage of them in their organization.

Target Audience for this Book

The primary audience for this book is Information Technology (IT) managers, practicing software engineers, and software project managers interested in improving software engineering practices within their organization. Additionally, students in advanced software engineering courses will gain a valuable perspective on modern software engineering practices and techniques. The book provides such readers with the background information necessary to understand the convergence of a wide range of technologies. Armed with this information, the reader will be better able to conduct detailed studies in individual technologies of relevance and interest.

The descriptive text is aimed at informing managers, analysts, and programmers alike. The book does not attempt to justify CBD using detailed business cases, nor does it produce coded examples to type in at your workstation. The book's approach is essentially discursive, providing ample material of interest to all classes of readers, and providing references to other documents that contain detailed material in each of these areas.

Outline of this Book

The book is organized into four parts. Each part has been designed so that it can be read independently by different audiences depending on their background and interests. The four parts are as follows:

  • Part 1 contains background information on e-Business, the driving force of enterprise-scale solutions in the Internet age. This part can be considered the foundation that should be useful to anyone interested in gaining a deeper understanding of current software engineering trends and technologies.
  • Part 2 reviews the key elements of component-based approaches and the role of CBD in the overall software solutions life cycle. Three basic questions are answered in this part: What is CBD? What is a component? How is component behavior defined?
  • Part 3 describes the practice of CBD. It considers various CBD technologies in more detail, provides an illustration of the application of CBD technique, and considers how these ideas will impact future enterprise-scale solutions.
  • Part 4 provides some final commentary and advice on enterprise-scale solutions in the Internet age. It contains a view of current and future directions in CBD, and provides final reference material for further reading on the topics of this book.

Updates

Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.