FIND A SOLUTION AT Academic Writers Bay
G U N N , G E N N I S E 1 4 1 7 T S 04_0132344823_03.qxd 6/13/07 4:43 PM Page 25 Chapter 3 G U N N , G E N N I S E Service-Oriented Computing and SOA 1 4 3.2 Introduction to Service-Oriented Computing 1 7 3.3 Goals and Benefits of Service-Oriented Computing T 3.4 Case Study Background S 3.1 Design Fundamentals SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 4:43 PM Page 26 O ne of the most challenging aspects of writing about or discussing technology is using industry terminology. Many IT G terms suffer from wide-spread ambiguity, which sometimes makes having even the simplest conversation difficult. Take IT proU fessionals from different organizations, put them in the same room, and you’ll N very likely hear questions like, “What exactly do you mean by component?” or “What N favorite, “What kind of SOA are you is your definition of service?” or, my personal , referring to?” Fortunately, the primary subject matter of this book is very clear. We describe a distinct approach to designing solution logic. To ensure G that the descriptions of associated topics are easily understood, a communications Eframework needs to be established, comprised of a collection of terms with very explicit definitions. That is what this chapter is N dedicated to providing. N I 3.1 Design Fundamentals S Before we can begin exploring the details of service-oriented computing, we first need E to establish some basic design terminology. The books in this series use a common vocabulary comprised of the following design-related terms: • Design Characteristic • Design Principle • Design Paradigm • Design Pattern • Design Pattern Language 1 4 1 7 T S • Design Standard • Best Practice Depending on your sources, you will find differing definitions for these terms. More often than not, though, you will notice that they all are somewhat intertwined. The following sections explain each term and conclude with a section that illustrates how they form a common, fundamental design framework. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 4:43 PM Page 27 27 3.1 Design Fundamentals Design Characteristic A characteristic of something is simply an attribute or quality. An automated business solution will have numerous unique characteristics that were established during its initial design (Figure 3.1). Hence, the type of design characteristic we are interested in is a specific attribute or quality of a body of solution logic that we document in a design specification and plan to realize in development. G U N N , G E N N I S E 1 4 Figure 3.1 1 designs (A, B, C) are established, each with its In this simple exle, three distinct application own list of design characteristics. We will continue to reference these applications in the upcoming 7 units of solution logic, solid arrows sections. (Note that the small squares represent represent reuse or shared access, and dashed T arrows represent state data transfer.) S Service-orientation emphasizes the creation of very specific design characteristics, while also de-emphasizing others. It is important to note that almost every design characteristic we explore is attainable to a certain measure. This means that it is generally not about whether solution logic does or does not have a certain characteristic; it is almost always about the extent to which a characteristic can or should be realized. Although each system can have its own unique characteristics, we are primarily interested in establishing common design characteristics. Increased commonality ensures an SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 28 4:43 PM Page 28 Chapter 3: Service-Oriented Computing and SOA increased degree of consistency, making different kinds of solution logic more alike. When things are more alike they become more predictable. In the world of distributed, shareable logic, predictability is a good thing. Predictable design characteristics lead to predictable behavior. This, in turn, leads to increased reliability and the opportunity to leverage solution logic in many different ways. Much of this book is dedicated to providingG a means of establishing a specific collection of design characteristics that spread consistency, U predictability, and reliability on many levels and for different purposes. Design Principle N N , A principle is a generalized, accepted industry practice. In other words, it’s something others are doing or promoting in association with a common objective. You can compare a principle with a best practice in that bothGpropose a means of accomplishing someE acceptance. thing based on past experience or industry-wide When it comes to building solutions, a designNprinciple represents a highly recommended guideline for shaping solution logic in a certain N way and with certain goals in mind (Figure 3.2). These goals are usually associated with I establishing one or more specific design characteristics (as a result of applying the principle). S E 1 4 1 7 T S Figure 3.2 The repeated application of design principles increases the amount of common design characteristics. In this case, the coupling between solution logic units A and B has been loosened (as indicated by a reduction of connection points). SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 4:43 PM Page 29 29 3.1 Design Fundamentals For exle, we can have a principle as fundamental as one that states that solution logic should be distributable. Applying this principle results in the solution logic being partitioned into individually distributable units. This then establishes the distinct design characteristic of the solution logic becoming componentized. This is not only an exle of a very broad design principle, but it is also the starting point for service-orientation. The eight design principles documented G in this book provide rules and guidelines that help determine exactly how solution logic Ushould be decomposed and shaped into distributable units. A study of these principles further reveals what design characteristics N these units should have to be classified as “quality” services capable of fulfilling the N vision and goals associated with SOA and service-oriented computing. , Design Paradigm There are many meanings associated with Gthe term “paradigm.” It can be an approach to something, a school of thought regarding E something, or a combined set of rules that are applied within a predefined boundary. N A design paradigm within the context of business automation is generally considered a N governing approach to designing solution logic. It normally consists of a set of compleI mentary rules or principles that collectively define the overarching approach repreS sented by the paradigm (Figure 3.3). E 1 4 1 7 T S Figure 3.3 Because a design paradigm represents a collection of design principles, it further increases the degree of commonality across different bodies of solution logic. In the exle, the amount of reuse in A and B has increased. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 30 4:43 PM Page 30 Chapter 3: Service-Oriented Computing and SOA Object-orientation (or object-oriented design) is a classic exle of an accepted design paradigm. It provides a set of principles that shape componentized solution logic in certain ways so as to fulfill a specific set of goals. Along those very same lines, service-orientation represents its own distinct design paradigm. Like object-orientation, it is a paradigm that applies to distributed solution logic. However, because some of its principles G differ from those associated with objectorientation (as explained in Chapter 14), it can U result in the creation of different types of design characteristics. Design Pattern N N , We’ve established that service-orientation is a design paradigm comprised of a set of design principles, each of which provides a generalized rule or guideline for realizing certain design characteristics. The paradigmGitself sounds pretty complete, and it actuE real world requires more than just a theally is. However, to successfully apply it in the oretical understanding of its principles. N Service designers will be regularly faced with N obstacles and challenges when attempting to apply a design paradigm because the Irealization of desired design characteristics is frequently complicated by various factors, including: S • Constraints imposed by the technology being used to build and/or host the units E of solution logic. • Constraints imposed by technology or systems that reside alongside the deployed 1 units of solution logic. 4 • Constraints imposed by the requirements and priorities of the project delivering 1 the units of solution logic. 7 A design pattern describes a common problem and provides a corresponding solution T (Figure 3.4). It essentially documents the solution in a generic template format so that it S can be repeatedly applied. Knowledge of design patterns not only arms you with an understanding of the potential problems designs may be subjected to, it provides answers as to how these problems are best dealt with. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 4:43 PM Page 31 31 3.1 Design Fundamentals Figure 3.4 Patterns provide recommended solutions for common design problems. In this simplified exle, a pattern suggests we reduce external access to a database to increase application autonomy. G U N N , G Design patterns are born out of experience. E Pioneers in any field had to undergo cycles of trial and error and by learning from what didn’t work, approaches that finally did N achieve their goals were developed. When a problem and its corresponding solution Nbasis of a design pattern was formed. Design were identified as sufficiently common, the I patterns can be further combined into compound patterns that solve larger problems and a series of patterns can form the basisSof a pattern language, as explained next. E NOTE Appendix C provides cross-references of design principles and associ1as part of the pattern catalog ated design patterns documented published in SOA: Design Patterns 4. 1 Design Pattern Language 7 The application of one design pattern can T raise new issues or problems for which another pattern may be required. A collection of related patterns can establish a formalS ized expression of a design process whereby each addresses a primary decision point. Combining patterns in this manner forms the basis of a pattern language. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 4:43 PM Page 32 32 Chapter 3: Service-Oriented Computing and SOA A pattern language is essentially comprised of a chain of related design patterns that establish a configurable sequence in which the patterns can be applied (Figure 3.5). Such a language provides a highly effective means of communicating fundamental aspects of a given design approach because it supplies detailed documentation of each major step in a design process that shapes the design characteristics of solution logic. G U N N , G E N N I S E Figure 3.5 A sequence of related design patterns formalize the primary decision points of a design paradigm. In this exle, the logic in application design B is decomposed as a result of one pattern, and then further decomposed as a result of another. Subsequent fundamental patterns continue to shape the logic. 1 4 1 7 NOTE T philosophies of service-orienThe fundamental paradigm and underlying tation and SOA are expressed through Sa basic pattern language as part of SOA: Design Patterns. Design Standard For an organization to successfully apply a design paradigm, it will require more than an adherence to the associated design principles and a knowledge of supporting design patterns. Every organization will have unique strategic goals and unique enterprise environments. These form a distinct set of requirements and constraints that need to be accommodated within solution designs. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 4:43 PM Page 33 33 3.1 Design Fundamentals Design standards are (usually mandatory) design conventions customized to consistently pre-determine solution design characteristics in support of organizational goals and optimized for specific enterprise environments. It is through the use of internal design standards that organizations can consistently deliver solutions tailored to their environments, resources, goals, and priorities (Figure 3.6). Figure 3.6 In this case, a design standard requires that C’s original design be altered to remove access to a shared, external state database. G U N N , G E N N I of design standards results in the creation of As with design principles, the application specific design characteristics. As with S design patterns, design standards foster and refine these characteristics to avoid potential problems and to strengthen the overall E solution design. In fact, it is recommended for design standards to be based upon or even derived from industry design principles and patterns. 1 Can you have design standards without design principles? Yes, it is actually common to have many design standards. Only some4may need to relate back to principles in order 1 design paradigm. Different design stanto see through the application of the overall dards may also be created to simply support 7 other goals or compensate for constraints imposed by specific environmental, cultural, or technology-related factors. Although T some standards may have no direct association with accepted design principles, there S should always be an effort to keep all standards in relative alignment. Can you have design principles without design standards? It usually depends on how committed an organization is to the governing design paradigm. If it sees potential in only using a subset of the paradigm’s principles, then some principles may not be supported by corresponding design standards. However, this approach is not common. Essentially, as with design principles, through standardization we want to build consistency into specific design characteristics—consistency in the quality of the characteristics and in how frequently they are implemented. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 34 4:43 PM Page 34 Chapter 3: Service-Oriented Computing and SOA NOTE One point of clarification often worth making when discussing standards is the difference between design standards and industry standards. The former, as we just described, refers to internal or custom standards that apply to the design of solution logic and systems for a particular enterprise. The latter generally represents open technology standards, such as those that comprise the XML and Web services Gplatforms. Sometimes organizations assume that if they use industry standards, they will end up with a U standardized IT enterprise. While those XML and Web services specifications that have N do establish a level of technology stanbecome ratified and accepted industry standards dardization, it is still up to an organization to consistently position and apply these technoloN gies. Without design standards, industry standards can easily fail in achieving their potential. , Best Practice G or approach to solving or preventing A best practice is generally considered a technique certain problems (Figure 3.7). It is usually aEpractice that has industry recognition and has emerged from past industry experience.N N I S E 1 4 1 7 T S Figure 3.7 Best practices provide guidance in the form of general “lessons learned.” In the exle, it is suggested that the on-going maintenance of reusable solution logic units from all applications fall under a single custodian. How then is a best practice differentiated from a design principle? In this book we make a clear distinction in that a design principle is limited to design only. A best practice can relate SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 4:43 PM Page 35 35 3.1 Design Fundamentals to anything from project delivery to organizational issues, governance, or process. A design principle could be considered a best practice associated only with solution design. Note that several best practices are provided throughout this book in support of applying design principles. An additional set of more detailed practices is located in Chapter 15. G Each of the previous sections described aU piece of intelligence that can act as input into an overall design process. When designing N service-oriented solutions it is practically inevitable that some or all of these pieces be used together. It is therefore important to N understand how they relate to each other so that we can gain a foreknowledge of how , and where they are best utilized. A Fundamental Design Framework Figure 3.8 shows how some of the more common parts of a design framework typically G use of design principles can be. Figure 3.9 inter-relate and highlights how central the expands on this perspective by illustrating E how the use of design patterns can further support and extend a basic design framework. Finally, Figure 3.10 shows how the parts N of a design framework can ultimately help realize the application of the overarching N design paradigm. I S E 1 4 1 7 T S Figure 3.8 Fundamental design terms establish a basic taxonomy used throughout the upcoming chapters. This diagram hints at how some parts of a basic design framework can relate to each other. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 36 6/13/07 4:43 PM Page 36 Chapter 3: Service-Oriented Computing and SOA G U N N , G E N N Figure 3.9 I Design patterns provide additional intelligence that can enrich a design framework with a collection of S proven solutions to common problems. E 1 4 1 7 T S Figure 3.10 The purpose of applying a design paradigm is the achievement of certain goals. It is important to emphasize how design standards, design patterns, and best practices can all support the successful application of a design paradigm and, as a result, the attainment of its goals. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 4:43 PM Page 37 3.2 Introduction to Service-Oriented Computing 37 SUMMARY OF KEY POINTS • A design principle is an accepted design guideline or practice that, when applied, results in the realization of specific design characteristics. • A design paradigm represents a set of complementary design principles that are collectively applied in support of common goals. • A design pattern identifies a commonG problem and provides a recommended solution. U • A design standard is a convention internal N and specific to an enterprise that may or may not be derived from a design principle or pattern. N , 3.2 Introduction to Service-Oriented Computing G Service-oriented computing represents a new generation distributed computing platE form. As such, it encompasses many things, including its own design paradigm and N pattern languages, a distinct architectural design principles, design pattern catalogs, model, and related concepts, technologies, Nand frameworks. It sounds like a pretty big umbrella, and Iit is. Service-oriented computing builds upon past distributed computing platforms and Sadds new design layers, governance considerations, and a vast set of preferred implementation technologies. That’s why taking the E time to understand its underlying mechanics before proceeding to the actual design and construction phases of a delivery project is time well spent. 1 To better appreciate the fundamental complexion of a typical service-oriented computing 4 platform we need to describe each of its primary parts, which we’ll refer to as elements: • Service-Oriented Architecture • Service-Orientation • Service-Oriented Solution Logic 1 7 T S • Services • Service Compositions • Service Inventory The following sections define each of these elements and conclude with a section that explains how they can inter-relate conceptually and physically. The basic symbols introduced in these sections are used repeatedly within subsequent parts of this book. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 4:43 PM Page 38 38 Chapter 3: Service-Oriented Computing and SOA Service-Oriented Architecture SOA establishes an architectural model that aims to enhance the efficiency, agility, and productivity of an enterprise by positioning services as the primary means through which solution logic is represented in support of the realization of strategic goals associated with service-oriented computing. G On a fundamental basis, the service-oriented computing platform revolves around the service-orientation design paradigm and itsU relationship with service-oriented architecture. In fact, the term “service-oriented architecture” and its associated acronym have N been used so broadly by the media and within N vendor marketing literature that it has almost become synonymous with service-oriented computing itself. It is therefore very , important to make a clear distinction between what SOA actually is and how it relates to other service-oriented computing elements. Gimplementation can consist of a combinaAs a form of technology architecture, an SOA E infrastructure extensions, and various tion of technologies, products, APIs, supporting other parts (Figure 3.11). The actual face of N a deployed service-oriented architecture is unique within each enterprise; however it is typified by the introduction of new techN nologies and platforms that specifically support the creation, execution, and evolution I of service-oriented solutions. As a result, building a technology architecture around the S an environment suitable for solution service-oriented architectural model establishes logic that has been designed in compliance with E service-orientation design principles. 1 4 1 7 T S Figure 3.11 Container symbols are used to represent architectural implementation environments. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 4:43 PM Page 39 3.2 Introduction to Service-Oriented Computing 39 Service-Orientation, Services, and Service-Oriented Solution Logic Service-orientation is a design paradigm comprised of a specific set of design principles. The application of these principles to the design of solution logic results in serviceoriented solution logic. The most fundamental unit of service-oriented solution logic is the service. G Services exist as physically independent software programs with distinct design charUthe strategic goals associated with serviceacteristics that support the attainment of oriented computing. Each service is assigned N its own distinct functional context and is comprised of a set of capabilities relatedN to this context. Those capabilities suitable for invocation by external consumer programs are commonly expressed via a published , service contract (much like a traditional API). Figure 3.12 introduces the symbol used in this book to represent a service from an G Services section for an introduction to the endpoint perspective. See the SOA and Web E perspective of services implemented as symbols used to illustrate a physical design Web services. Note also that services and Nservice-orientation are explored in detail in Chapter 4. N I Figure 3.12 The yellow sphere symbol is used toS represent a service. Alternatively, the chorded circle symbol introduced in E Chapter 1 can also be used. 1 4 A service composition is a coordinated aggregate of services. As explained in the Effects of Service-Orientation on the Enterprise section 1 in Chapter 4, a composition of services (Figure 3.13) is comparable to a traditional application in that its functional scope is usually 7 associated with the automation of a parent business process. T Figure 3.13 S Service Compositions The symbol comprised of three connected spheres represents a service composition. Other, more detailed representations are based on the use of chorded circle symbols to illustrate which service capabilities are actually being composed. The consistent application of service-orientation design principles leads to the creation of services with functional contexts that are agnostic to any one business process. These agnostic services are therefore capable of participating in multiple service compositions. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 40 4:43 PM Page 40 Chapter 3: Service-Oriented Computing and SOA As further discussed in Chapters 13 and 16, the ability for a service to be naturally and repeatedly composable is fundamental to attaining several of the key strategic goals of service-oriented computing. Therefore, many of the design characteristics that distinguish a service enable it to effectively participate in service compositions. G U A service inventory is an independently standardized and governed collection of complementary services withinNa boundary that represents an enterprise or a meaningful segment of an enterprise. Figure N 3.14 establishes the symbol used to represent a service inventory in , this book. Service Inventory An IT enterprise may include a service inventory that represents GLarger initiatives may the extent to which SOA has been adopted. even result in the enterprise in its entiretyEbeing comprised of an enterprise-wide service inventory. Alternatively, N an enterprise environment can contain multiple service inventories, each of which can N be individually standardized, governed, and supported by its own service-oriented technology architecture. I Figure 3.14 The service inventory symbol is comprised of yellow spheres within a blue container. S Service inventories are typically created through top-down delivery processes that result E The subsequent application of servicein the definition of service inventory blueprints. orientation design principles and custom design standards throughout a service inventory is of paramount importance so as to establish a high degree of native inter-service 1 interoperability. This supports the repeated, agile creation of effective service composi4 tions. (Note that service inventory blueprints are explained later in this chapter.) 1 7 Elements Understanding Service-Oriented Computing T defined elements throughout this book. We’ll be making reference to the previously Understanding them individually is just asS important as understanding how they can relate to each other because these relationships establish some of the most fundamental dynamics of service-oriented computing. Let’s therefore revisit these elements with an emphasis on how each ties into others: • Service-oriented architecture represents a distinct form of technology architecture designed in support of service-oriented solution logic which is comprised of services and service compositions shaped by and designed in accordance with service-orientation. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 4:43 PM Page 41 3.2 Introduction to Service-Oriented Computing 41 • Service-orientation is a design paradigm comprised of service-orientation design principles. When applied to units of solution logic, these principles create services with distinct design characteristics that support the overall goals and vision of service-oriented computing. • Service-oriented computing represents a new generation computing platform that G encompasses the service-orientation paradigm and service-oriented architecture with the ultimate goal of creating and assembling one or more service inventories. U These relationships are further illustratedNin Figure 3.15. N , G E N N I S E 1 4 1 7 T S Figure 3.15 A conceptual view of how the elements of service-oriented computing can inter-relate. To fully appreciate how these elements are ultimately used we need to explore how they translate into the real world. To do so, we need to clearly distinguish the role and position of each element within a physical implementation perspective, as follows: SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 42 6/13/07 4:43 PM Page 42 Chapter 3: Service-Oriented Computing and SOA • Service-oriented solution logic is implemented as services and service compositions designed in accordance with service-orientation design principles. • A service composition is comprised of services that have been assembled to provide the functionality required to automate a specific business task or process. • Because service-orientation shapes many services as agnostic enterprise resources, G one service may be invoked by multiple consumer programs, each of which can U composition. involve that same service in a different service N • A collection of standardized services can form the basis of a service inventory that can be independently administeredN within its own physical deployment environment. , • Multiple business processes can be automated by the creation of service compositions that draw from a pool of existing agnostic services that reside within a service G inventory. E • Service-oriented architecture is a form of technology architecture optimized in supN port of services, service compositions, and service inventories. N This implementation-centric view brings toI light how service-oriented computing can change the overall complexion of an enterprise. Because the majority of services delivS ered are positioned as reusable resources agnostic to business processes, they do not E boundaries between applications, the belong to any one application silo. By dissolving enterprise is increasingly represented by a growing body of services that exist within an expanding service inventory (Figure 3.16). 1 4 1 7 T S Figure 3.16 A service inventory establishes a pool of services, many of which will be deliberately designed to be reused within multiple service compositions. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 4:43 PM Page 43 3.2 Introduction to Service-Oriented Computing 43 NOTE So far, an introductory perspective of service-oriented computing and its key elements has been established. However, when making reference to the service-oriented computing platform, we need to acknowledge the vast amounts of vendor development and runtime technologies that comprise its technology landscape. G It is the makeup of these platforms and their combined technology innovations that have helped drive the U in the mainstream IT industry. evolution of service-oriented computing N Service Models N When building various types of services, it , becomes evident that they can be categorized depending on: G • the extent of reuse potential this logicEhas N within the enterprise • how this logic relates to existing domains N As a result, there are three common classifications that represent the primary service models referenced throughout this book: I S • Entity Services E • the type of logic they encapsulate • Task Services • Utility Services 1 The use of these service models results in the creation of logical service abstraction 4 layers, as shown in Figure 3.17. 1 7 T S Figure 3.17 Common service abstraction layers established by service models, each of which is comprised of services shaped through the application of the service-orientation paradigm. Though these layers tend to form a natural composition hierarchy, there are no rules as to how services can be assembled. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 4:43 PM Page 44 44 Chapter 3: Service-Oriented Computing and SOA Each of these three service models is further explained in the following sections. Entity Services In just about every enterprise, there will be business model documents that define the organization’s relevant business entities. Exles of business entities include customer, employee, invoice, and claim. The entity service model (Figure 3.18) represents a businesscentric service that bases its functional boundary and context on one or more related business entities. It is considered a highly reusable service because it is agnostic to most parent business processes. As a result, a single entity service can be leveraged to automate multiple parent business processes. Entity services are also known as entitycentric business services or business entity services. Task Services A business service with a functional boundary directly associated with a specific parent business task or process is based on the task service model (Figure 3.19). This type of service tends to have less reuse potential and is generally positioned as the controller of a composition responsible for composing other, more process-agnostic services. When discussing task services, one point of clarification often required is in relation to entity service capabilities. Each G U N N , G E N N I Figure 3.18 Sexle of an entity service. Several of its capabilities are An reminiscent of traditional CRUD (create, read, update, delete) E methods. 1 4 1 7 T S Figure 3.19 An exle of a task service with a sole exposed capability required to initiate its encapsulated parent business process. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 4:43 PM Page 45 3.2 Introduction to Service-Oriented Computing 45 capability essentially encapsulates business process logic in that it carries out a sequence of steps to complete a specific task. An entity Invoice service, for exle, may have an Add capability that contains process logic associated with creating a new invoice record. How then is what a task service encapsulates different from what an entity service’s capabilities contain? The primary distinction has to do with the functional scope of the G is focused solely on the processing of an capability. The Invoice service’s Add capability invoice document. To carry out this process U may require that the capability logic interact with other services representing different business entities, but the functional scope N of the capability is clearly associated with the functional context of the Invoice service. N If, however, we had a billing consolidation process that retrieved numerous invoice and , PO records, performed various calculations, and further validated consolidation results against client history billing records, we would have process logic that spans multiple entity domains and does not fit cleanly G within a functional context associated with a business entity. This would typically constitute a “parent” process in that it consists of E processing logic that needs to coordinate the involvement of multiple services. N Services with a functional context defined N by a parent business process or task can be developed as standalone Web services or components—or—they may represent a busiI ness process definition hosted within an orchestration platform. In the latter case, the S design characteristics of the service are somewhat distinct due to the specific nature of the underlying technology. In this case, it E may be preferable to qualify the service model label accordingly. This type of service is referred to as the orchestrated task service. Task services are also known as task-centric 1 business services or business process services. Orchestrated task services are also known 4 as process services, business process services, or orchestration services. 1 7 NOTE T when referring to these types of There is a potential point of confusion services as “business process services” or when renaming the task S service layer to “business process layer.” Just about every capability within every business service encapsulates an extent of business process logic. Establishing a task service layer does not abstract or centralize all business process logic. Its purpose is primarily to abstract non-agnostic process logic in support of agnostic service models. If there’s a preference to incorporate the term “business process” within the title of this service layer, then it’s recommended that it be further qualified with “parent” (as in the “parent business process layer”). SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 4:43 PM Page 46 46 Chapter 3: Service-Oriented Computing and SOA Utility Services Each of the previously described service models has a very clear focus on representing business logic. However, within the realm of automation, there is not always a need to associate logic with a business model or process. In fact, it can be highly beneficial to deliberately establish a functional context that is non-business-centric. This essentially results in a distinct, technology-oriented service G layer. The utility service model (Figure 3.20) accomplishes this. It is dedicated to providing reusable, cross-cutting utility functionality, such as event logging, notification, and exception handling. It is ideally application agnostic in that it can consist of a series of capabilities that draw from multiple enterprise systems and resources, while making this functionality available within a very specific processing context. Utility services are also known as application services, infrastructure services, or technology services. U N N , G E N N 3.20 Figure An I exle of a utility service providing a set of capabilities associated with proprietary data format transformation. S E NOTE 1 Entity, task, and utility service models are intentionally generic in nature in 4 that they apply to just about any type of enterprise. Customized variations can be further derived to fulfill specific1types of domain abstraction. 7 T SOA and Web Services S as an architectural model that is agnostic It is very important to view and position SOA to any one technology platform (Figure 3.21). By doing so, an enterprise is given the freedom to continually pursue the strategic goals associated with service-oriented computing by leveraging future technology advancements. In the current marketplace, the technology platform most associated with the realization of SOA is Web services. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 4:43 PM Page 47 3.2 Introduction to Service-Oriented Computing 47 G U N N , Figure 3.21 Service-oriented solutions can be comprised of services built as Web services, components, or combinations of both. G E The Web services platform is defined through a number of industry standards that N are supported throughout the vendor community. This platform can be partitioned into N two clearly identifiable generations, each associated with a collection of standards and I specifications: S • First-Generation Web Services Platform E Web Services Standards The original Web services technology platform is comprised of the following core open technologies and specifications: Web Services Description Language (WSDL), 1 SOAP (formerly the Simple Object XML Schema Definition Language (XSD), Access Protocol), UDDI (Universal Description, Discovery, and Integration), and 4 the WS-I Basic Profile. 1 These specifications have been around 7 for some time and have been adopted across the IT industry. However, the platform they collectively represent seriously T lacks several of the quality of service features required to deliver mission critical, S enterprise-level production functionality. • Second-Generation Web Services Platform (WS-* extensions) Some of the greatest quality of service-related gaps in the first-generation platform lie in the areas of message-level security, cross-service transactions, and reliable messaging. These, along with many other extensions, represent the secondgeneration Web services platform. Consisting of numerous specifications that SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 4:43 PM 48 Page 48 Chapter 3: Service-Oriented Computing and SOA build upon the fundamental first-generation messaging framework, this set of Web services technologies (generally labeled as “WS-*”) provides a rich feature-set far more sophisticated both in technology and in design. An exle of a WS-* standard referenced throughout this book is WS-Policy. Web Services Architecture G A typical Web service is comprised of the following: U • A physically decoupled technical serviceN contract consisting of a WSDL definition, an XML schema definition, and possibly a WS-Policy definition. This service conN tract exposes public functions (called operations) and is therefore comparable to a , traditional application programming interface (API). • A body of programming logic. This logic may be custom-developed for the Web G is being wrapped by a Web service in service, or it may exist as legacy logic that E order for its functionality to be made available via Web services communication standards. In the case that logic is custom-developed, it generally is created as N components and is referred to as the core service logic (or business logic). N • Message processing logic that exists as a combination of parsers, processors, and I service agents. Much of this logic is provided by the runtime environment, but it S can also be customized. The programs that carry out message-related processing Ecan intercept a message subsequent to are primarily event-driven and therefore transmission or prior to receipt. It is common for multiple message processing programs to be invoked with every message 1 exchange. A Web service can be associated with temporary roles, depending on its utilization at 4 runtime. For exle, it acts as a service provider when it receives and responds to 1 request messages, but can also assume the role of service consumer when it is required 7 to issue request messages to other Web services. T When Web services are positioned within service compositions, it is common for them S consumer roles (additional composito transition through service provider and service tion-related roles are explained in Chapter 13). Note also that regular programs, components, and legacy systems can also act as Web service consumers as long as they are able to communicate using Web services standards. Figure 3.22 introduces the symbols used to illustrate physical representations of Web services in this book. Service-orientation principles can affect the design of all displayed parts. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 4:43 PM Page 49 3.2 Introduction to Service-Oriented Computing 49 G U N N , G E N N I S E 1 4 1 7 Web Services and Service-Oriented Computing T The popularity of Web services preceded that of service-oriented computing. As a result, S their initial use was primarily within traditional distributed solutions wherein they were Figure 3.22 Three variations of a single Web service showing the different physical parts of its architecture that come into play, depending on the role it assumes at runtime. most commonly used to facilitate point-to-point integration channels. As the maturity and adoption of Web services standards increased, so did the scope of their utilization. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 50 6/13/07 4:43 PM Page 50 Chapter 3: Service-Oriented Computing and SOA With service-oriented computing comes a distinct architectural model that has been positioned by the vendor community as one that can fully leverage the open interoperability potential of Web services, especially when individual services are consistently shaped by service-orientation. For exle, when exposing reusable logic as Web services, the reuse potential is significantly increased. Because service logic can now be accessed via a vendor-neutral communications G framework, it becomes available to a wider range of service consumer programs. U Additionally, the fact that Web services provide a communications framework based on N physically decoupled contracts allows each service contract to be fully standardized N independently from its implementation. This facilitates a potentially high level of serv, to fully decouple the service from any ice abstraction while providing the opportunity proprietary implementation details. As explored in Part II, all of these characteristics are desirable when pursuing key principles, such as Standardized Service Contracts, Service G Reusability, Service Loose Coupling, Service Abstraction, and Service Composability. E For exle, transformation avoidance is a key goal of Standardized Service Contracts. N As explained in Chapter 6, this principle advocates the standardization of the data model expressed by the service contract soN as to increase intrinsic interoperability by I reducing the need for transformation technologies. As illustrated in Figure 3.23, services delivered via disparate component platforms still require the transformation of technolS ogy regardless of whether data types are standardized. Services expressed through Web E service contracts have the potential to avoid transformation altogether. 1 NOTE 4 To learn more about first and second-generation Web services technologies, read the tutorials posted at www.ws-standards.com or visit 1 www.soaspecs.com and browse through the actual specifications. It is 7 also important to acknowledge service communication mediums that provide an alternative to SOAP-based messaging, such as Representational T State Transfer (REST) and Plain Old XML (POX). While these are not covS ered in this book, it would be worthwhile reading up on them to understand how they differ and where they are most commonly encountered. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 4:43 PM Page 51 3.2 Introduction to Service-Oriented Computing 51 G U N N , G E N N I S E 1 4 1 Figure 3.23 Three common data exchange scenarios demonstrating7the effect of transformation avoidance. T Service Inventory Blueprints S An ultimate goal of an SOA transition effort is to produce a collection of standardized services that comprise a service inventory. The inventory can be structured into layers according to the service models used, but it is the application of the service-orientation paradigm to all services that positions them as valuable IT assets in full alignment with the strategic goals associated with the SOA project. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 52 6/13/07 4:43 PM Page 52 Chapter 3: Service-Oriented Computing and SOA However, before any services are actually built, it is desirable to establish a conceptual blueprint of all the planned services for a given inventory. This perspective is documented in the service inventory blueprint. There are several common business and data models that, if they exist within an organization, can provide valuable input for this specification. Exles include business entity models, logical data models, canonical data and message models, ontologies, and other G information architecture models. A service inventory blueprint is also known U as a service enterprise model or a service inventory model. N N Service-Oriented Analysis and Service Modeling , To effectively deliver standardized services in support of building a service inventory, it is recommended that organizations adopt a methodology specific to SOA and consistG ing of structured analysis and design processes. E Within SOA projects, these processes are centered around the accurate expression of N business logic through technology, which requires that business analysts play a more active role in defining the conceptual designNof solution logic. This guarantees a higher degree of alignment between the documented I business models and their implementation as services. Agnostic business services especially benefit from hands-on involveS ment of business subject matter experts, as the improved accuracy of their business E once deployed. representation increases their overall longevity Service-oriented analysis establishes a formal analysis process completed jointly by busi1 ness analysts and technology architects. Service modeling, a sub-process of serviceoriented analysis, produces conceptual service 4 definitions called service candidates. Iterations through the service-oriented analysis and service modeling processes result in the 1 gradual creation of a collection of service candidates documented as part of a service 7 inventory blueprint. T While the collaborative relationship between business analysts and architects depicted at the lower half of Figure 3.24 may not beSunique to an SOA project, the nature and scope of the analysis process is. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 4:43 PM Page 53 3.2 Introduction to Service-Oriented Computing 53 G U N N , G E N N Figure 3.24 A look at how the collaboration between business analysts I and technology architects changes with SOA projects. S Service-Oriented Design The service-oriented design process uses a E set of predefined service candidates from the service inventory blueprint as a starting point from which they are shaped into actual physical service contracts. 1 When carrying out service-oriented design, 4 a clear distinction is made between service candidates and services. The former represents a conceptual service that has not been 1 implemented, whereas the latter refers to a physical service. 7 As shown in Figure 3.25, the traditional (non-standardized) means by which Web servT ice contracts are generated results in services that continue to express the proprietary S nature of what they encapsulate. Creating the Web service contract prior to development allows for standards to be applied so that the federated endpoints established by Web services are consistent and aligned. This “contract first” approach lies at the heart of service-oriented design and has inspired separate design processes for services based on different service models. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 54 6/13/07 4:43 PM Page 54 Chapter 3: Service-Oriented Computing and SOA G U N N , G E N N I Figure 3.25 Unlike the popular process of deriving WebS service contracts from existing components, SOA advocates a specific approach that encourages us to postpone development until after a custom designed,E standardized contract is in place. NOTE 1 Appendix B contains illustrations and brief descriptions of service-ori4 ented analysis and design processes for reference purposes. 1 7 “Service-Oriented Architecture: Concepts, Technology, and Design” T Descriptions of first and second-generation Web services technologies, service models, service layers and variations of SOA, as S well as a mainstream SOA methodology providing step-by-step process descriptions for service-oriented analysis, service modeling, and service-oriented design are explained in detail in the book Service-Oriented Architecture: Concepts, Technology, and Design. SOA is fundamental to all of the content in the remaining chapters and therefore a solid understanding of the concepts behind its architectural model and technologies commonly used for its implementation is recommended. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 4:43 PM Page 55 3.3 Goals and Benefits of Service-Oriented Computing 55 SUMMARY OF KEY POINTS • The service-oriented computing platform is comprised of a distinct set of elements, each of which represents a specific aspect of service-oriented computing, and all of which are collectively applied to achieve its goals. • Service models are used to establish service layers by categorizing services based on the type of logic they encapsulate. G • SOA represents an implementation-agnostic architectural model. However, U Web services currently provide the foremost means of implementing services. N N , 3.3 Goals and Benefits of Service-Oriented Computing It is very important to establish why both vendor and end-user communities within the G IT industry are going through the trouble of adopting the service-oriented computing platform and embracing all of the changeEthat comes with it. N is extremely ambitious and therefore also The vision behind service-oriented computing N in truly improving the effectiveness of its very attractive to any organization interested IT enterprise. A set of common goals and benefits has emerged to form this vision. These I establish a target state for an enterprise that successfully adopts service-orientation. S The upcoming set of sections describe each Eof these strategic goals and benefits (also displayed in Figure 3.26): • Increased Intrinsic Interoperability • • • • 1 Increased Federation 4 1 Increased Vendor Diversification Options 7 Increased Business and Technology Domain Alignment T Increased ROI S • Increased Organizational Agility • Reduced IT Burden It is beneficial to understand the significance of these goals and benefits prior to studying and applying service-orientation so that design principles are consistently viewed within a strategic context. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 4:43 PM Page 56 56 Chapter 3: Service-Oriented Computing and SOA G U N N , G E N N An important message of this book in general I is that there is a concrete link between successfully applying service-orientation designSprinciples and successfully attaining these specific goals and benefits (a point which is further detailed in Chapter 16). E Figure 3.26 The seven identified goals are inter-related and can be further categorized into two groups: strategic goals and resulting benefits. Increased organization agility, increased ROI, and reduced IT burden are concrete benefits resulting from the attainment of the remaining four goals. NOTE 1 has been used so much in the As previously explained, the term “SOA” media and within marketing literature 4 that it has become synonymous with what the entire service-oriented computing platform represents. There1 fore, the goals and benefits listed here are frequently associated with SOA 7 as well. T S Interoperability refers to the sharing of data. The more interoperable software programs Increased Intrinsic Interoperability are, the easier it is for them to exchange information. Software programs that are not interoperable need to be integrated. Therefore, integration can be seen as a process that enables interoperability. A goal of service-orientation is to establish native interoperability within services in order to reduce the need for integration (Figure 3.27). In fact, integration as a concept begins to fade within service-oriented environments (as further explained in the Effects of Service-Orientation on the Enterprise section in Chapter 4). SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 4:43 PM Page 57 3.3 Goals and Benefits of Service-Oriented Computing 57 G U N N , G E N N I Figure 3.27 S Services are designed to be intrinsically interoperable regardless of when and for which purpose they are delivered. In this exle, the intrinsic E interoperability of the Invoice and Timesheet services delivered by Project Teams A and B allow them to be combined into a new service composition by Project Team C. 1 Interoperability is specifically fostered through the consistent application of design 4 principles and design standards. This establishes an environment wherein services pro1 can be repeatedly assembled together into duced by different projects at different times a variety of composition configurations to 7help automate a range of business tasks. Intrinsic interoperability represents a fundamental goal of service-orientation that estabT lishes a foundation for the realization of other S strategic goals and benefits. Contract standardization, scalability, behavioral predictability, and reliability are just some of the design characteristics required to facilitate interoperability, all of which are addressed by the service-orientation principles documented in this book. How specifically service-orientation design principles foster interoperability within services is explained in the Service-Orientation and Interoperability section of Chapter 4. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 4:43 PM Page 58 58 Chapter 3: Service-Oriented Computing and SOA Increased Federation A federated IT environment is one where resources and applications are united while maintaining their individual autonomy and self-governance. SOA aims to increase a federated perspective of an enterprise to whatever extent it is applied. It accomplishes this through the widespread deployment of standardized and composable services each of which encapsulates a segment of the enterprise G and expresses it in a consistent manner. U In support of increasing federation, standardization becomes part of the extra up-front attention each service receives at design time. Ultimately this leads to an environment N where enterprise-wide solution logic becomes N naturally harmonized, regardless of the nature of its underlying implementation (Figure 3.28). , Figure 3.28 Three service contracts establishing a federated set of endpoints, each of which encapsulates a different implementation. G E N N I S E 1 4 1 7 T S SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 4:43 PM Page 59 3.3 Goals and Benefits of Service-Oriented Computing 59 When service-oriented solutions are built via the Web services technology platform, the level of attainable federation is further elevated because services can leverage the nonproprietary nature of the technologies themselves. However, even when using Web services the key success factor to achieving true unity and federation remains the application of design principles and standards. G Increased Vendor Diversification Options U Vendor diversification refers to the abilityNan organization has to pick and choose “bestof-breed” vendor products and technology innovations and use them together within N one enterprise. It is not necessarily beneficial for an organization to have a vendor, diverse environment; however, it is beneficial to have the option to diversify when required. To have and retain this option requires that its technology architecture not be tied or locked into any one specific vendor Gplatform. This represents an important state for an E enterprise in that it provides the constant freedom for an organization to change, extend, N and even replace solution implementations and technology resources without disrupting the overall, federated service architecture. N This measure of governance autonomy is attractive because it prolongs the lifespan and I solutions. increases the financial return of automation S By designing a service-oriented architecture in alignment with but neutral to major vendor SOA platforms and by positioning E service contracts as standardized endpoints throughout a federated enterprise, proprietary service implementation details can be abstracted to establish a consistent inter-service communications framework. This pro1 vides organizations with constant options by allowing them to diversify their enter4 prises as needed (Figure 3.29). 1 Vendor diversification is further supported by taking advantage of the standards-based, 7 vendor-neutral Web services framework. Because they impose no proprietary commuT decrease dependency on vendor platforms. nication requirements, Web services further As with any other implementation medium, S though, Web services need to be shaped and standardized through service-orientation in order to become a federated part of an SOA. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 60 6/13/07 4:43 PM Page 60 Chapter 3: Service-Oriented Computing and SOA G U N N , G E N N Figure 3.29 I A service composition consisting of three services, each of which encapsulates a different vendor automaS tion environment. If service-orientation is adequately applied to the services, underlying disparity will not inhibit their ability to be combined into effective compositions. E Increased Business and Technology Domain Alignment 1 The extent to which IT business requirements are fulfilled is often associated with the 4 accuracy with which business logic is expressed and automated by solution logic. 1 been designed to address immediate Although initial applications have traditionally and tactical requirements, it has historically 7 been challenging to keep applications in alignment with business needs when the nature and direction of the business changes. T Service-oriented computing introduces a design S paradigm that promotes abstraction on many levels. One of the most effective means by which functional abstraction is applied is the establishment of service layers that accurately encapsulate and represent business models. By doing so, common, pre-existing representations of business logic (business entities, business processes) can exist in implemented form as physical services. This is accomplished by incorporating a structured analysis and modeling process that requires the hands-on involvement of business subject matter experts in the actual definition of the conceptual service candidates (as explained in the Service-Oriented Analysis SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 4:43 PM Page 61 3.3 Goals and Benefits of Service-Oriented Computing 61 and Service Modeling section). The resulting service designs are capable of aligning automation technology with business intelligence on an unprecedented level (Figure 3.30). Furthermore, the fact that services areG designed to be intrinsically interoperableU directly facilitates business change. As N business processes are augmented in N response to various factors (business climate changes, new competitors, new, policies, new priorities, etc.) services can be reconfigured into new compositions G that reflect the changed business logic. E This allows a service-oriented technol- Figure 3.30 ogy architecture to evolve in tandemN Services with business-centric functional contexts are carefully modeled to express and encapsulate corresponding with the business itself. N business models and logic. I S Measuring the return on investment (ROI) E of automated solutions is a critical factor in Increased ROI determining just how cost effective a given application or system actually is. The greater the return, the more an organization benefits from the solution. However, the lower the 1 return, the more the cost of automated solutions eats away at an organization’s budgets 4 and profits. Traditional, silo-based applications tend 1 to get extended over time, resulting in potentially complex environments with effort-intensive maintenance requirements. Combined 7 with the emergence of ever-growing, non-federated integration architectures that can be T even more difficult to maintain and evolve, the average IT department can demand a sigS nificant amount of an organization’s overall operational budget. For many organizations, the financial overhead required by IT is a primary concern because it often continues to rise without demonstrating any corresponding increase in business value. Service-oriented computing advocates the creation of agnostic solution logic—logic that is agnostic to any one purpose and therefore useful for multiple purposes. This multipurpose or reusable logic fully leverages the intrinsically interoperable nature of services. Agnostic services have increased reuse potential that can be realized by allowing SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 62 6/13/07 4:43 PM Page 62 Chapter 3: Service-Oriented Computing and SOA them to be repeatedly assembled into different compositions. Any one agnostic service can therefore find itself being repurposed numerous times to automate different business processes as part of different service-oriented solutions. With this benefit in mind, additional up-front expense and effort is invested into every piece of solution logic so as to position it as an IT asset for the purpose of repeatable, G 3.31, the emphasis on increasing ROI long-term financial returns. As shown in Figure typically goes beyond the returns traditionally U sought as part of past reuse initiatives. This has much to do with the fact that service-orientation aims to establish reuse as a N common, secondary characteristic within most services. N , G E N N I S E 1 4 1 Figure 3.31 7 An exle of the types of formulas being used to calculate ROI for SOA projects. More is invested in T the initial delivery with the goal of benefiting from increased subsequent reuse. S It is important to acknowledge that this goal is not simply tied to the benefits traditionally associated with software reuse. Proven commercial product design techniques are incorporated and blended with existing enterprise application delivery approaches to form the basis of a distinct set of service-oriented analysis and design processes (as described earlier in the Service-Oriented Analysis and Service Modeling and ServiceOriented Design sections). SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 4:43 PM Page 63 3.3 Goals and Benefits of Service-Oriented Computing 63 Increased Organizational Agility Agility, on an organizational level, refers to the efficiency with which an organization can respond to change. Increasing organizational agility is very attractive to corporations, especially those in the private sector. Being able to more quickly adapt to industry changes and outmaneuver competitors has tremendous strategic significance. G An IT department can sometimes be perceived as a bottleneck, hering desired responsiveness by requiring too much time or U resources to fulfill new or changing business requirements. This is one of the reasons agile N development methods have gained popularity as they provide a means of addressing N immediate, tactical concerns more rapidly. Service-oriented computing is very much,geared toward establishing wide-spread organizational agility. When service-orientation is applied throughout an enterprise, it results in the creation of services that are highly standardized and reusable and therefore agnostic to parent business processesGand specific application environments. E As a service inventory is comprised of more and more of these agnostic services, an N logic belongs to no one application enviincreasing percentage of its overall solution N been positioned as reusable IT assets, they ronment. Instead, because these services have can be repeatedly composed into differentI configurations. As a result, the time and effort required to automate new or changed business processes is correspondingly reduced S because development projects can now be completed with significantly less custom E development effort (Figure 3.32). The net result of this fundamental shift in project delivery is heightened responsiveness and reduced time to market potential, all1 of which translates into increased organizational agility. 4 1 NOTE 7 Organizational agility represents a target state that organizations work T populate service inventories. The toward as they deliver services and organization benefits from increased responsiveness after a significant S amount of these services is in place. The processes required to model and design services require more up-front cost and effort than building the corresponding quantity of solution logic using traditional project delivery approaches. It is therefore important to acknowledge that service-orientation has a strategic focus that intends to establish a highly agile enterprise. This is different from agile development approaches that have more of a tactical focus due to an emphasis on delivering solution logic more rapidly. From a delivery perspective, service-orientation does not tend to increase agility. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 6/13/07 64 4:43 PM Page 64 Chapter 3: Service-Oriented Computing and SOA G U N N , G E N N Figure 3.32 Another exle of a formula used in SOA projects.IThis time, the delivery timeline is projected based on the percentage of “net new” solution logic that needs to be built. Though in this exle only 35% S of new logic is required, the timeline is reduced by around 50% because additional effort is still required to incorporate existing, reusable services from E the inventory. Reduced IT Burden 1 Consistently applying service-orientation results in an IT enterprise with reduced waste 4 cost (Figure 3.33), and reduced overhead and redundancy, reduced size and operational 1 Such an enterprise can benefit an organiassociated with its governance and evolution. zation through dramatic increases in efficiency 7 and cost-effectiveness. In essence, the attainment of the previouslyTdescribed goals can create a leaner, more agile IT department; one that is less of a burden on the organization and more of an S enabling contributor to its strategic goals. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 04_0132344823_03.qxd 66 6/13/07 4:43 PM Page 66 Chapter 3: Service-Oriented Computing and SOA 3.4 CASE STUDY BACKGROUND The Cutit ownership team has nowhere near the resources or in-house expertise to plan a transition toward an SOA-based automation environment. They therefore engage a local consulting firm to take charge of the planning and analysis effort. The goal is to complete this project within a month and then use the resulting G reports to decide on a delivery strategy. U The consultants spend the next few weeks invading Cutit’s environments to docN ument technology and business requirements. They look at service encapsulation N middleware platforms as part of a options for legacy systems and service-based marketplace survey but also perform some , analysis around the creation of custom services to replace the outdated automation hub. As part of the final analysis, a preliminary Gservice-oriented architecture is conceptualized and supplemented with a list of Web service-centric technology compoE nents required to establish it. Cutit reviews the reports and takes the consultants’ recommendations into consideration. TheNreport emphasizes the pursuit of reuse, but Cutit is more interested in leveragingN service-oriented computing to establish unity across its modest enterprise and toIachieve a state where solution logic can be more easily extended in response to unpredictable business demands. S Regardless, Cutit decides to proceed to the E next step. Before moving ahead and building actual services, they invest in the creation of a service inventory blueprint. Cutit cannot afford to wait more than three weeks before entering the devel1 be high-level and therefore somewhat opment stage, so this model will need to incomplete. 4 1 7 T S SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 17_0132344823_14.qxd 6/13/07 4:51 PM Page 445 Chapter 14 G U N N , G E N N I S E Service-Orientation and Object-Orientation: 1 A Comparison 4 of Principles and Concepts 1 7 14.1 A Tale of Two Design Paradigms T 14.2 A Comparison of Goals S 14.3 A Comparison of Fundamental Concepts 14.4 A Comparison of Design Principles 14.5 Guidelines for Designing Service-Oriented Classes SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 17_0132344823_14.qxd 6/13/07 4:51 PM Page 446 C hapter 4 established that one of the primary influences of service-orientation was G paradigm. There is much common the well established object-oriented design ground between these two design philosophies. U In fact, if it weren’t for the innovative design principles and patterns formalized by object-orientation, the service-oriented N architectural model and the Web services framework would not exist as they do today. N The following chapter explores this historical relationship by providing a comparative , study. It is worth noting that this comparison of service-orientation and object-orientation is not comprehensive. A thorough study would require a detailed analysis that takes numerous perspectives into account and would G therefore likely deserve a book of its own. This chapter simply provides a comparison E of concepts and principles (as well as underlying goals). The main purpose of this chapter is as an educational supplement to N Part II of this book. It is primarily intended for those already familiar with object-orientation and now interested in understandingN service-orientation. I As a result, this chapter does not explain object-oriented design in detail. If you are S benefit from reading an introductory unfamiliar with object-orientation, you would tutorial prior to studying the upcoming sections. Also note that in this chapter the E terms “object-oriented analysis and design” (OOAD) and “object-orientation” are used interchangeably. 1 4 NOTE It is very important to keep in mind that 1 object-orientation and service-orientation are complementary design paradigms that can be successfully 7 used separately and together. Even though this chapter contrasts conT to state that one design approach cepts and principles, the intention is not needs to be chosen over the other. AsSpreviously mentioned, this comparison is provided for educational purposes only so that service-orientation can be more clearly understood by those with an OOAD background. 14.1 A Tale of Two Design Paradigms Object-oriented analysis and design was responsible for popularizing the vision of building streamlined applications comprised of reusable, flexible software. Further supported by the sophisticated processes and conventions of the unified modeling language SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 17_0132344823_14.qxd 6/13/07 4:51 PM Page 447 447 14.1 A Tale of Two Design Paradigms (UML) and a set of classic design patterns that changed the face of distributed application design, object-orientation evolved into a well-rounded and mature design framework. OOAD originally grew out of a need to bring order to unstructured development processes that had resulted in various problems, including the creation of the notorious Gthat emerged from procedural programming spaghetti code. It drew from best practices approaches and combined these with a design U philosophy that aimed to shape software into units that more closely mirrored the real world. N Object-orientation aspires to maximizeN the fulfillment of business requirements throughout the lifespan of an application, including its post-deployment upgrades and , extensions. It provides numerous rules and guidelines that govern the careful separation of application logic and data into objects that can be individually maintained to help G minimize the impact of change on the application as a whole. E Many of the UML conventions and documentation techniques further provide a comprehensive means of expressing customerNrequirements and predictable runtime application behavior. Collectively, families ofN UML diagrams and specifications combined with established principles and practices help designers ensure that applications are I built to be both robust and flexible. Also on the agenda for object-oriented applications S is the fostering of reusable code. Key techniques, such as inheritance and polymorphism (discussed in the upcoming A ComparisonEof Principles section), are positioned to allow different software programs to benefit from logic already created for others. As established in the A Comparison of Goals 1 section, service-orientation shares many of the same goals as OOAD. It seeks to establish 4 a flexible design framework that allows for the agile accommodation of ever-changing business requirements. Much like 1 OOAD, service-orientation is very concerned with minimizing the impact of change 7 and in use. Principles such as Service Loose upon software programs already deployed Coupling and Service Composability, T for exle, address long-term governance requirements so as to allow implementedS services to continue to evolve in tandem with the business. A common distinction between the two design paradigms is one of scope (Figure 14.1). While object-orientation never explicitly limits the extent to which its principles can be applied, in real-world environments, they have commonly been realized within single applications or collections of related applications. When reuse was attained, it was often at the utility level resulting in libraries of “common components” shared by customdeveloped applications. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 17_0132344823_14.qxd 448 6/13/07 4:51 PM Page 448 Chapter 14: Service-Orientation and Object-Orientation: A Comparison of Principles and Concepts Figure 14.1 Historically, object-orientation has been applied to segments of the enterprise. Service-orientation aims to harmonize a larger amount of the enterprise or, ideally, the enterprise as a whole. G U N N , Additionally, several of the object-oriented design principles and patterns were developed during a time when the majority of IT enterprises were building componentized G or distributed applications using RPC technology. The reuse potential of any given object was typically limited to the boundary E of the RPC platform. In larger environments comprised of various technology platforms, an RPC implementation therefore N represented a specific architectural zone. To enable connectivity with other zones N required bridging or integration technologies. The increased demand for crossapplication and cross-platform connectivityI led to the emergence of EAI (which, incidentally, is another major influence on service-orientation). S E Although they have many roots in object-orientation, SOA and service-orientation owe their current mainstream status to the emergence and successful adoption of the Web services framework. Even though the feature-set 1 provided by the first generation Web services platform was primitive at best, it established the potential to break through 4 proprietary application and platform boundaries so as to inspire visions of true, crossenterprise inter-connectivity and federation.1 The architectural model that underlies SOA7and the principles behind service-orientaT As a result, they have a great deal of tion were all developed in support of this vision. synergy with the maturing second-generation S Web services platform. Figure 14.2 illustrates how OO, EAI, and Web services, along with BPM, comprise the major influences of service-orientation. Within service-orientation, solution logic designed as services is intentionally positioned as enterprise resources and sometimes even enterprise-wide resources. This enterprise-centric perspective is one of the main reasons that only a subset of objectorientation principles was carried over into service-orientation (as explained in the A Comparison of Principles section). SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 17_0132344823_14.qxd 6/13/07 4:51 PM Page 449 449 14.2 A Comparison of Goals G U N N , G E N N SUMMARY OF KEY POINTS I Much of service-orientation owes its existence to the concepts, principles, and S patterns that originated from object-orientation. E Service-orientation has several influences other than object-orientation, includFigure 14.2 While object-orientation evolved out of approaches that included procedural programming, service-orientation builds upon the object-oriented design paradigm and, together with additional influences, establishes a distinct paradigm of its own. • • ing BPM, EAI, and Web services. 1 together with additional influences • The increased scope of service-orientation explains why some of the original object-orientation principles are not part of 4 service-orientation. 1 7 T 14.2 A Comparison of Goals S Before comparing concepts and principles, it is important that we establish the fundamental objectives behind each of these design approaches. Chapter 3 described the strategic goals associated with service-oriented computing, several of which are in direct alignment with the original goals of object-orientation. Some, however, differ in that they are specific to service-orientation’s enterprise-centric scope. This section specifically explores the following common OOAD goals and discusses how they compare and relate to service-orientation principles and goals: SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 17_0132344823_14.qxd 450 6/13/07 4:51 PM Page 450 Chapter 14: Service-Orientation and Object-Orientation: A Comparison of Principles and Concepts • Increased Business Requirements Fulfillment • Increased Robustness • Increased Extensibility • Increased Flexibility G U To better understand how service-orientation relates to and supports these particular N to take a closer look at each. object-orientation goals (Figure 14.3), we need N Figure 14.3 , • Increased Reusability and Productivity ilit Or ga n Ag iza ilit tion y a l y s nes t bus Ro rat ion ex ib Fed e ility sib ten Ex Fl d an ess logy sin Bu chno ent Te ignm Al Reusab ility and Pro ductivity ess Busin ents irem Requ lfillFu ment G E N N I S E ROI IT ed uc en d d Re Bur Vendor Diversification Options Service-orientation inherits all of the primary OOAD goals (inner circle) but further increases their scope and adds others (outer circle). sic Intrin y 1 erabilit Interop 4 1 Increased Business Requirements Fulfillment 7 Through specialized analysis and design techniques (that include business-centric T the design and development of applideliverables such as use cases), OOAD advocates cations more capable of meeting specific business S needs. Increased business requirements fulfillment is also a priority for service-orientation and a primary design consideration for all of its principles. Many of the design characteristics fostered by these principles are geared toward enabling a design-time process that allows for the creation of sophisticated composition configurations in response to a range of envisioned business requirements. Strategic service-orientation goals, such as “increased vendor diversity options,” are intended to establish an environment that empowers an organization to continuously SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 17_0132344823_14.qxd 6/13/07 4:51 PM Page 451 451 14.2 A Comparison of Goals leverage technology innovation in support of maximizing the fulfillment potential of business requirements. Furthermore, OOAD’s emphasis on partitioning solution logic into units that more closely resemble real-world objects is in alignment with the “increased business and technology domain alignment” goal, which aims to incorporate real-world representation at domain and enterprise levels. G U Object-oriented solutions can be delivered Nto withstand a range of exception conditions because of extra design considerations applied to the various parts (objects) that comN prise the solution and due to the use of formal design-time deliverables, such as activ, out potential runtime usage scenarios. ity, sequence, and state diagrams, that map Increased Robustness Increased robustness is a goal of service-orientation from both short-term implementaG Service compositions are expected to work tion and long-term governance perspectives. E but are also designed to remain robust as as required in their immediate deployment their individual members are repurposed N in support of fulfilling different business requirements as part of different compositions. N Service Autonomy and Service Statelessness I represent two key principles dedicated to ensuring services are reliable and scalable during their runtime existence while concurS rently supporting the automation of multiple solutions. E Increased Extensibility 1 Once implemented and in use, an object-oriented solution’s functional scope can be 4 increased without requiring significant redevelopment by leveraging the componentized nature of its application design. 1 Several service-orientation principles aim7to establish the freedom for service compositions to be extended or recomposed in response to an increase in business requirements T scope. The fact that functional contexts are carefully modeled and defined for each servS ice allows for individual service contracts to be cleanly extended with new capabilities and without disruption to existing consumer programs. The goals of “increased federation” and “increased intrinsic interoperability” aim to harmonize an enterprise in which solutions comprised of service compositions can be modified and extended through the incorporation of new service capabilities with minimal impact (due to the native compatibility established by standardization in support of intrinsic interoperability). SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 17_0132344823_14.qxd 452 6/13/07 4:51 PM Page 452 Chapter 14: Service-Orientation and Object-Orientation: A Comparison of Principles and Concepts Increased Flexibility After an object-oriented solution is deployed, it can be further evolved and enhanced with minimal disruption to its users through the targeted application of key design techniques, such as encapsulation, abstraction, and inheritance. Enabling an organization to freely govern and evolve a service is a prime concern of the G Service Loose Coupling and Service Abstraction principles, both of which protect an U dependencies. This establishes an envienterprise from the proliferation of unhealthy ronment in which individual service capabilities can be refactored and enhanced as N required. N The flexibility to augment services individually , carries over to an increased flexibility to evolve a service inventory and the underlying service-oriented architecture itself. Flexibility, in fact, is at the heart of the “increased organizational agility” goal. G E Increased Reusability and Productivity N Object-oriented solution logic can be designed for reuse, thereby lowering the subseN the same type of logic. The Service quent effort to build applications that require Reusability principle clearly corresponds to Ithis goal, but it is worth mentioning that all of the other service-orientation design principles S are also positioned to fully support the widespread realization of reusable service logic. E As a result, reusability, as part of SOA, becomes more of an expected, secondary design characteristic than an actual objective. The goal of “increased ROI” is closely associated 1 with the successful application of this principle. • 4 SUMMARY OF1KEY POINTS Five of the common goals of OOAD are 7 increased business requirements fulfillment, increased robustness, increased T extensibility, increased flexibility, and increased reusability and productivity. S • Service-orientation supports all of these goals, only it does so with a broadened, enterprise-centric emphasis on long-term governance and strategic benefit. • While the realization of object-orientation goals is primarily associated with the use of component-based and RPC-based technology platforms, the attainment of service-orientation goals is more commonly related to the use of the Web services framework. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 17_0132344823_14.qxd 6/13/07 4:51 PM Page 453 14.3 A Comparison of Fundamental Concepts 453 14.3 A Comparison of Fundamental Concepts Conceptually, object-orientation and service-orientation have similarities, but they are not the same. This section establishes the terms and definitions used by each design approach in relation to both common and differential concepts. G NOTE The exles in the upcoming sections U use UML conventions. Various approaches have emerged for applying UML to the design of XML N schemas and Web services. The focus of this chapter is not on how to adapt UML conventions to expressNXML schema or WSDL definition structures. Unless otherwise indicated, , this comparison is specifically about fundamental service-orientation and object-orientation, which naturally raises issues as to how UML relates to services (regardless of G their implementation). E Classes and Objects N Object-orientation provides a means of N organizing solution logic into classes (Figure 14.4) that essentially act as containers for definitions of related behaviors and properties. I A runtime instance of a class is an object S (much like a runtime instance of a service is a service instance). Therefore, a class can beEseen as a design template from which various objects are spawned, each with their own unique runtime state and data. A class is comparable to but not equivalent to a technical service contract. A class can 1 define a combination of public access and private implementation details, whereas a 4 service contract only expresses public information. In this regard, a service contract 1 more closely resembles an interface implemented by a class (as explained in the Interfaces section). 7 Figure 14.4 The class symbol (left) and the chorded circle symbol (right) both establish a container and a functional context associated with invoice-related functionality. T S SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 17_0132344823_14.qxd 454 6/13/07 4:51 PM Page 454 Chapter 14: Service-Orientation and Object-Orientation: A Comparison of Principles and Concepts Methods and Attributes Object-oriented classes define methods and attributes so as to associate behavior and data with objects. Behaviors represent functionality the class is capable of carrying out. Each behavior is expressed and described by an individual method definition. Methods are sometimes also referred to as operations; however, the term operation has now become more synonymous with the use of Web services. G U state data associated with the class and Class properties represent a form of predefined are expressed through the definition of attributes. Attributes can also be referred to as N variables. N Methods and attributes can be declared as private or public to the class. It has become a , best practice to only allow the public access or modification of attributes via public methods (further qualified as “accessor methods”). G Services express behaviors as capabilities in abstract. A capability is the equivalent of a E method if a service is implemented as a component and an operation if the service is N deployed as a Web service. A Web service contract cannot define private operations. N Due to the emphasis on statelessness, service contracts are discouraged from defining I attributes, as shown in Figure 14.5. Figure 14.5 The class symbol (left) expresses an attribute and a method, whereas the service symbol (right) only defines a capability. Messages S E 1 4 1 7 T S an object Communication between the invoker of and the object whose method is invoked is carried out through the exchange of messages. This is an abstract term used as part of the OOAD vocabulary and therefore does not imply how a message is physically comprised in the real world. Because object-orientation is typically applied to components that rely on non-industry standard (often RPC-based) communication protocols, messages are most commonly expressed as binary units of communication that are exchanged synchronously. The SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 17_0132344823_14.qxd 6/13/07 4:51 PM Page 455 14.3 A Comparison of Fundamental Concepts 455 contents of a message depend on the data type of the input or output values defined as part of the method and the supporting technical platform. RPC platforms support a variety of data types including those that can represent objects themselves. Messages used by services implemented as Web services typically manifest themselves as text-based units of communication that can be exchanged synchronously or asynG in a more traditional sense (as used by echronously. In this context, they are messages mail systems or messaging-oriented middleware). U N operations are represented by messages that The input and output values of Web service are usually structured by XML schema complex types. They can have document-centric N complex type hierarchies comprised of numerous values, each with a different data , type. This is why the base chorded circle symbol expresses service contracts without specifying data types. G Object methods are frequently designed to exchange fine-grained parameter data. This E other objects (whether local or remote) is is because the connection they establish with generally persistent. Once in place, data exchange is efficient. N N HTTP protocol to exchange messages. Web services commonly rely on the stateless Because they do not have the benefit of a persistent, stateful connection, operations often I need to be designed to exchange document-centric messages; messages comprised of S larger amounts of data, such as entire business documents. As discussed in the precedE ing chapters, almost every service-orientation principle can impact the size of service messages by influencing capability, data, and validation granularity. Figure 14.6 illustrates how the design of a1class can be affected differently when shaped 4 by object-oriented and service-oriented principles and further contrasts this with a typical service contract. Note the differences1in method and operation granularity across these three sles; service-oriented design encourages the addition of coarse-grained 7 capabilities that are more message-centric and support the exchange of XML documents. T as well as the choice of data type. This affects both the granularity of capabilities S NOTE The last section in this chapter provides guidelines for designing serviceoriented classes in case you need to model services using the UML class notation. SOA Principles of Service Design, First Edition, by Thomas Erl. Published by Prentice Hall. Copyright © 2008 by Pearson Education, Inc. 17_0132344823_14.qxd 456 6/13/07 4:51 PM Page 456 Chapter 14: Service-Orientation and Object-Orientation: A Comparison of Principles and Concepts G U Figure 14.6 N An object-oriented class (left), a service-oriented class (middle), and a service contract (right). N are public. Note that the attributes omitted by the middle class , Interfaces Collections of related methods can be defined G (but not implemented) within interfaces (Figure 14.7). A class can then be designed to implement an interface, thereby establishE ing a …
- WE OFFER THE BEST CUSTOM PAPER WRITING SERVICES. WE HAVE DONE THIS QUESTION BEFORE, WE CAN ALSO DO IT FOR YOU.
- Assignment status: Already Solved By Our Experts
- (USA, AUS, UK ; CA PhD. Writers)
- CLICK HERE TO GET A PROFESSIONAL WRITER TO WORK ON THIS PAPER AND OTHER SIMILAR PAPERS, GET A NON PLAGIARIZED PAPER FROM OUR EXPERTS
QUALITY: ORIGINAL PAPER – NO PLAGIARISM - CUSTOM PAPER
- non-plagiarized Papers
- 24/7 /365 Service Available
- Affordable Prices
- Any Paper, Urgency, and Subject
- Will complete your papers in 6 hours
- On-time Delivery
- Money-back and Privacy guarantees
- Unlimited Amendments upon request
- Satisfaction guarantee
How It Works
- Click on the “Place Your Order” tab at the top menu or “Order Now” icon at the bottom and a new page will appear with an order form to be filled.
- Fill in your paper’s requirements in the "PAPER DETAILS" section.
- Fill in your paper’s academic level, deadline, and the required number of pages from the drop-down menus.
- Click “CREATE ACCOUNT ; SIGN IN” to enter your registration details and get an account with us for record-keeping and then, click on “PROCEED TO CHECKOUT” at the bottom of the page.
- From there, the payment sections will show, follow the guided payment process and your order will be available for our writing team to work on it.
AcademicWritersBay.comnbsp;is an easy-to-use and reliable service that is ready to assist you with your papers 24/7/ 365days a year. 99% of our customers are happy with their papers. Our team is efficient and will always tackle your essay needs comprehensively assuring you of excellent results. Feel free to ask them anything concerning your essay demands or Order.
AcademicWritersBay.com is a private company that offers academic support and assistance to students at all levels. Our mission is to provide proficient andnbsp;high quality academic servicesnbsp;to our highly esteemed clients. AcademicWritersBay.com is equipped with competent andnbsp;proficient writersnbsp;to tackle all types of your academic needs, and provide you with excellent results. Most of our writers are holders ofnbsp;master's degreesnbsp;ornbsp;PhDs, which is an surety of excellent results to our clients. We provide assistance to students all over the world.
We provide high quality term papers, research papers, essays, proposals, theses and many others. Atnbsp;AcademicWritersBay.com, you can be sure ofnbsp;excellent gradesnbsp;in your assignments and final exams.