Understanding Service Component Architecture: Assembling and Deploying a Composite
The previous chapter introduced the four core SCA concepts: services, components, composites, and the domain. In this chapter, we explore these in practice by providing a walkthrough of creating a composite and deploying it to a domain. For those wanting to do hands-on development, this chapter also covers using the open source SCA runtime, Fabric3, to deploy and run the composite.
This chapter teaches you the basics of building an SCA application, including the following:
- How to create components that offer services
- How to configure those components and wire them together as part of a composite
- How to expose a service as a web service
- How to package and deploy the composite to a domain
During this exercise, we touch on key SCA design principles and introduce recommended development practices. Subsequent chapters will build on the examples presented here, including designing loosely coupled services, asynchronous communications, and conversational interactions. In these later chapters, we will also cover how to integrate SCA with presentation- and data-tier frameworks.
The LoanApplication Composite
Throughout the book, we use a fictitious bank—BigBank Lending—to construct an enterprise-class SCA application. The SCA application we ultimately will build is designed to process loan applications from customers submitted via a web front-end and by independent mortgage brokers via a web service. The high-level application architecture is illustrated in Figure 2.1.
Figure 2.1 The BigBank loan application architecture
The LoanApplication composite is the core of BigBank’s loan-processing system. It is responsible for receiving loan applications and coordinating with other services to process them. In this chapter, we will start simply by focusing on two Java-based components contained in the composite. LoanComponent receives and processes loan application requests from remote clients using web services. It in turn uses the CreditService interface implemented by CreditComponent to perform a credit check on the applicant (see Figure 2.2).
Figure 2.2 The LoanApplication composite
The other components—web-front end, data-tier, and integration with external systems—will be covered in later chapters.