Middleware and Object Request Broker Architectures
28.1.5 Middleware and Object Request Broker Architectures
The c/s software subsystems discussed in the preceding sections are implemented An ORB enables an
by components (objects) that must be capable of interacting with one another within object that resides on a
a single machine (either client or server) or across the network. An object request bro- client to send a
ker is middleware that enables an object that resides on a client to send a message message to a method
to a method that is encapsulated by an object that resides on a server. In essence, encapsulated by an
the ORB intercepts the message and handles all communication and coordination object that resides on a
server. activities required to find the object to which the message was addressed, invoke its method, pass appropriate data to the object, and transfer the resulting data back to the object that generated the message in the first place.
WebRef Three widely used standards that implement an object request broker philosophy—
The latest information on CORBA, COM, and JavaBeans—were discussed briefly in Chapter 27. CORBA will be
component standards can used to illustrate the use of ORB middleware.
be obtained at The basic structure of a CORBA architecture is illustrated in Figure 28.3. When
www.omg.com,
CORBA is implemented in a client/server system, objects and object classes (Chap-
www.microsoft.com/
COM, and ter 20) on both the client and the server are defined using an interface description lan-
java.sun.com/beans
guage, a declarative language that allows a software engineer to define objects,
F I G U R E 28.3
The basic CORBA
Interface
Client
architecture repository
Server objects
Interface repository
attributes, methods, and the messages required to invoke them. In order to accom- modate a request for a server-resident method by a client-resident object, client and server IDL stubs are created. The stubs provide the gateway through which requests for objects across the c/s system are accommodated.
Because requests for objects across the network occur at run time, a mechanism for storing the object description must be established so that pertinent information about the object and its location are available when needed. The interface repository accomplishes this.
“Adoption of CORBA is a positive step,
When a client application must invoke a method contained within an object else- but it is not enough
where in the system, CORBA uses dynamic invocation to (1) obtain pertinent infor- to resolve the most
mation about the desired method from the interface repository, (2) create a data critical software
structure with parameters to be passed to the object, (3) create a request for the challenges.”
object, and (4) invoke the request. The request is then passed to the ORB core—an
Thomas Mowbray and Raphael
implementation-specific part of the network operating system that manages
Malveau
requests—and the request is fulfilled. The request is passed through the core and is processed by the server. At the server site, an object adapter stores class and object information in a server-resident inter- face repository, accepts and manages incoming requests from the client, and per- forms a variety of other object management functions [ORF99]. At the server, IDL stubs that are similar to those defined at the client machine are used as the interface to the actual object implementation resident at the server site.
CHAPTER 28 C L I E N T / S E R V E R S O F T WA R E E N G I N E E R I N G
Software development for a modern c/s system is object oriented. Using the CORBA architecture described briefly in this section, software developers can create an envi- ronment in which objects can be reused throughout a large network environment. For further information on CORBA and its overall impact on software engineering for c/s systems, the interested reader should refer to [HOQ99] and [SIE99].
28.2 S O F T WA R E E N G I N E E R I N G F O R C / S S Y S T E M S
A number of different software process models were introduced in Chapter 2. Although any of them could be adapted for use during the development of software for c/s sys- tems, two approaches are most commonly used: (1) an evolutionary paradigm that makes use of event-based and/or object-oriented software engineering and (2) component- based software engineering (Chapter 27) that draws on a library of COTS and in-house software components.
Client/server systems are developed using the classic software engineering activities— analysis, design, construction, and testing—as the system evolves from a set of gen- eral business requirements to a collection of validated software components that have been implemented on client and server machines.
28.3 A N A LY S I S M O D E L I N G I S S U E S
The requirements modeling activity for c/s systems differs little from the analysis modeling methods applied to more conventional computer architectures. Therefore, the basic analysis principles discussed in Chapter 11 and the analysis modeling meth- ods presented in Chapters 12 and 21 apply equally well to c/s software. It should be noted, however, that, because many modern c/s systems make use of reusable com- ponents, the qualification activities associated with CBSE (Chapter 27) also apply.
Because analysis modeling avoids specification of implementation detail, issues associated with the allocation of software components to client and server are con- sidered only as the transition is made to design. 3 However, because an evolutionary approach to software engineering is applied for c/s systems, implementation deci- sions on the overall c/s approach (e.g., fat client vs. fat server) may be made during early analysis and design iterations.
Parts
» The Concurrent Development Model
» SUMMARY Software engineering is a discipline that integrates process, methods, and tools for
» PEOPLE In a study published by the IEEE [CUR88], the engineering vice presidents of three
» THE PROCESS The generic phases that characterize the software process—definition, development,
» THE PROJECT In order to manage a successful software project, we must understand what can go
» METRICS IN THE PROCESS AND PROJECT DOMAINS
» Extended Function Point Metrics
» METRICS FOR SOFTWARE QUALITY
» INTEGRATING METRICS WITHIN THE SOFTWARE PROCESS
» METRICS FOR SMALL ORGANIZATIONS
» ESTABLISHING A SOFTWARE METRICS PROGRAM
» Obtaining Information Necessary for Scope
» An Example of LOC-Based Estimation
» QUALITY CONCEPTS 1 It has been said that no two snowflakes are alike. Certainly when we watch snow
» SUMMARY Software quality assurance is an umbrella activity that is applied at each step in the
» R diagram 1.4 <part-of> data model; data model <part-of> design specification;
» SYSTEM MODELING Every computer-based system can be modeled as an information transform using an
» Facilitated Application Specification Techniques
» Data Objects, Attributes, and Relationships
» Entity/Relationship Diagrams
» Hatley and Pirbhai Extensions
» Creating an Entity/Relationship Diagram
» SUMMARY Design is the technical kernel of software engineering. During design, progressive
» Data Modeling, Data Structures, Databases, and the Data Warehouse
» Data Design at the Component Level
» A Brief Taxonomy of Styles and Patterns
» Quantitative Guidance for Architectural Design
» Isolate the transform center by specifying incoming and outgoing
» SUMMARY Software architecture provides a holistic view of the system to be built. It depicts the
» The User Interface Design Process
» Defining Interface Objects and Actions
» D E S I G N E VA L U AT I O N
» Testing for Real-Time Systems
» Organizing for Software Testing
» Criteria for Completion of Testing
» The Transition to a Quantitative View
» The Attributes of Effective Software Metrics
» Architectural Design Metrics
» Component-Level Design Metrics
» SUMMARY Software metrics provide a quantitative way to assess the quality of internal product
» Encapsulation, Inheritance, and Polymorphism
» Identifying Classes and Objects
» The Common Process Framework for OO
» OO Project Metrics and Estimation
» Event Identification with Use-Cases
» SUMMARY Object-oriented analysis methods enable a software engineer to model a problem by
» Partitioning the Analysis Model
» Designing Algorithms and Data Structures
» Program Components and Interfaces
» SUMMARY Object-oriented design translates the OOA model of the real world into an
» Testing Surface Structure and Deep Structure
» Deficiencies of Less Formal Approaches 1
» What Makes Cleanroom Different?
» Design Refinement and Verification
» SUMMARY Cleanroom software engineering is a formal approach to software development that
» Structural Modeling and Structure Points
» Describing Reusable Components
» SUMMARY Component-based software engineering offers inherent benefits in software quality,
» Guidelines for Distributing Application Subsystems
» Middleware and Object Request Broker Architectures
» An Overview of a Design Approach
» Consider expert Web developer will create a complete design, but time and cost can be appropriate
» A Software Reengineering Process Model
» Reverse Engineering to Understand Data
» Forward Engineering for Client/Server Architectures
» SUMMARY Reengineering occurs at two different levels of abstraction. At the business level,
Show more